logo
методичка_1_05_ВНУ

Метод дотичних

Нехай функція f(x) двічі неперервно диференційовна на проміжку [a,b], причому перша і друга похідні не дорівнюють нулеві і зберігають знак на цьому проміжку, а f(a)f(b)<0,

За методом дотичних (методом Ньютона) наближене значення кореня х знаходять як абсцису точки перетину дотичної до кривої y=f(x) в одній з точок (u; f (u)) чи (v; f(v)) з віссю Ох. При цьому змінна х наближається до кореня лише з одного боку. Оцінку близькості х до кореня х*, як і раніше, можна знайти за формулою

П ершу дотичну треба проводити в тій точці (u; f(u)) або (v; f(v)), для якої виконується умова:

f(u)f(u)>0 чи f(v)f(v)>0.

Нехай дотична проводиться в точці (v; f(v)). Тоді рівняння дотичної в цій точці матиме вигляд:

y – f(v) = f(v)(x-v).

Звідси знаходимо точку перетину дотичної з віссю Ох:

Якщо значення v вважати за початкове (нульове, позначимо його через х0) наближення до кореня х*, то значення х, знайдене за останньою формулою, вважатимемо новим наближенням (першим, позначимо його х1). Значення х1 можна уточнити, а саме: наступне наближення до кореня х* знову визначити як точку перетину дотичної до кривої у = f (x), проведеної в точці 1; f (х1)), з віссю абсцис. Отже, за методом Ньютона кожне наступне наближення до кореня х* знаходять за формулою

(k = 0, 1, 2, 3, …).

Приклад.

Методом дотичних знайти з точністю до 0,00005 корінь рівняння x3+1,76439x2+2,21584x – 3,31344 = 0, що лежить на проміжку [0;1].

Розв’язання.

f(x)=3x2+3,52878x+2,2158;

f(x)=6x+3,52878;

f(x)>0 i f(x)>0 при довільних х є [0;1].

Один з варіантів програми реалізації поставленої задачі може виглядати так:

program horda;

const e = 0,00005;

var b, x, d, y, у1: real;

begin

writeln (’ввести значення одного з кінців проміжка локалізації кореня’);

readln (b);

repeat

y:=b*b*b+1.76439*b*b+2.21584*b – 3,31344;

y1:=3*b*b+3.52878*b+2.21584;

x:=b-y/y1;

d:=x-b; b:=x;

until d >= e;

writeln (‘x*=’,x,’+-e’);

end.

Результатом розв’язку даної задачі буде х*=0,78544  0,00005;