Пусть функция y=F(x) определена, непрерывна, монотонна и дифференцируема в некоторой окрестности корня.
Требуется найти корень на отрезке с точностью ε.
На k ой итерации проводится касательная к графику функции y=F(x) при x=ck и ищется точка пересечения касательной с осью абсцисс. При этом достаточно задать начальное приближение c0, а не указывать отрезок [ a,b ].
Уравнение касательной к графику функции y=F(x) в точке x0 имеет вид: . Пересечение с осью Ox находится из условия y= 0, откуда
Таким образом, получим формулу для нахождения последовательности c1, c2… точек пересечения касательных с осью абсцисс:
Условие окончания счета:
Корень уравнения: ci+1.
Программа уточнения корней методом касательных:
program met_kasat;
var c,e,g: real;
N:integer;
function f(x: real):real;
begin
{записать, функцию в виде f:=[математическое выражение]}
f:=x*x*x-x+4;
end;
function df(x: real):real;
begin {записать, производную функции f в виде df:=[математическое выражение]}
df:=3*x*x-1;
end;
begin
write('Введите начальное приближение - c: ');readln(c);
write('Введите требуемую погрешность - e:'); readln(e);
N:=0;
repeat N:=N+1;
g:=c;
c:=c-f(c)/df(c);
until abs(g-c)<e;
writeln('Приближенное значение корня - Х = ',c);
writeln('Число итераций - N = ',N);
readln
end.
Блок-схема метода касательных: | Результаты выполнения программы: | |||
| Введите начальное приближение - c: -2 Введите требуемую погрешность - e:.0001 Приближенное значение корня - Х = -1.7963219033E+00 Число итераций - N = 4 |