Найти корни функции на заданном интервале методом хорд (линейной интерполяции) Sin ( x - ln(x) ) [ 0.01,2]
Категория: Delphi/Pascal
2012-01-19 20:08:18
В программе предусмотреть ввод границ интервала.
code: #pascal
program PascalGuru; uses crt; { Вычисление значения функции в заданной точке } function f(x : real) : real; begin f := sin(x - ln(x)); end; { Поиск корня функции a, b - пределы хорды, eps - необходимая погрешность } function Calc(a, b, eps : real) : real; var c, fa, fb : real; begin repeat fa := f(a); fb := f(b); c := a + (b - a)*fa/(fa-fb); if fa*fb < 0 then b := c else a := c; until abs(f(c)) < eps; Calc := c; end; var a, b, c, eps : real; begin ClrScr; WriteLn('Поиск корней функции на заданном интервале [a, b] методом хорд'); WriteLn; Write('a: '); ReadLn(a); Write('b: '); ReadLn(b); Write('Точность eps: '); ReadLn(eps); c := Calc(a, b, eps); WriteLn; WriteLn('На интервале [', a:1:2, ', ', b:1:2, ']'); WriteLn(' корень функции sin(x - ln(x)) равен: ', c:1:4); WriteLn; Write('Для выходна нажмите Enter ...'); ReadLn; end.
Поделиться: