Метод Ньютона для розв’язання нелінійних рівнянь (метод дотичних)
Метод Ньютона • Використовується, якщо можна знайти значення ф-ції f(x) та її похідної f ’(x) у всіх точках інтервалу [a, b] • Лінеаризуємо f(x) в околі точки xc за допомогою частини ряду Тейлора:
Ітераційна ф-ла методу Ньютона
Геометричне пояснення
Перша ітерація: (x 1, f(x 1)) (x 2=x 1 -f(x 1)/f’(x 1), 0)
Друга ітерація (x 2, f(x 2)) (x 3=x 2 -f(x 2)/f’(x 2), 0) Наближаємося до кореня
Збіжність методу Ньютона Якщо вибрати стартову x 1 поблизу точки перегину. Тоді дотична буде перетинати вісь далеко від кореня! (x 1, f(x 1)) (x 2=x 1 -f(x 1)/f’(x 1), 0)
Збіжність методу Ньютона
Метод збігається
Метод не збігається
Покращення збіжності методу Ньютона, порівняно з іншими методами, досягається збільшенням витрат на виконання кожного кроку, оскільки на кожному кроці треба обчислювати не тільки значення функції f(x), але й значення її похідної f ′(x).
Модифікований метод Ньютона
Вибір початкового наближення x 0
Обчислення похідної • Аналітичним методом (створення підпрограми-функції); • Чисельним методом:
Program Newt; uses crt; var a, b, x, e: real; i: integer; const d=0. 001; N=1000; Function f(x: real): real; begin f: =sin(x); end; Програма до методу Ньютона Function fp(x: real): real; begin fp: =(f(x+d)-f(x))/d; end; Function fpp(x: real): real; begin fpp: =(f(x+d)-2*f(x)+f(x-d))/(d*d); end;
BEGIN a: =-1; b: =1; e: =0. 000001; if (f(a)*fpp(a)>0) then x: =a else x: =b; i: =0; while abs(f(x))>e do begin x: =x-f(x)/fp(x); i: =i+1; if i>N then begin writeln ('Korin ne znajdeno'); halt end; writeln('Korin x=', x, ' Znajdeno za ', i, ' iteracij'); writeln('F(x)=', f(x)); readln; END.
Метод січних У формулі методу Ньютона x(k+1) = x(k) - f(x(k))/f '(x(k)) , k = 0, 1, 2, . . . похідну f '(x(k)) заміняємо виразом: (f(x(k)) - f(x(k-1))) / (x(k) - x(k-1))
Метод січних
Метод простих ітерацій • Для використання цього методу вихідне нелінійне рівняння записується у вигляді
Метод простих ітерацій • Нехай відоме початкове наближення кореня • Підставляючи це значення у праву частину рівняння отримуємо нове наближення
Метод простих ітерацій • Підставляючи кожний раз нове значення кореня в рівняння отримуємо послідовність значень • Умова зупинки ітераційного процесу
Метод простих ітерацій
Метод збігається
Метод не збігається