Metoda Newtona

Ten artykuł dotyczy wyznaczania przybliżonej wartości pierwiastka funkcji. Zobacz też: metoda Newtona (optymalizacja).
Metoda Newtona
ilustracja
Rodzaj

algorytm iteracyjny, wyznaczanie przybliżonej wartości pierwiastka funkcji

Metoda Newtona (zwana również metodą Newtona-Raphsona lub metodą stycznych) – algorytm iteracyjny prowadzący do wyznaczenia przybliżonej wartości miejsca zerowego funkcji jednej zmiennej lub wielu zmiennych[1].

Miejsce zerowe funkcji jednej zmiennej

Zadanie

Niech będzie dana funkcja ciągła f {\displaystyle f} jednej zmiennej rzeczywistej, określona na przedziale [ a , b ] : {\displaystyle [a,b]{:}}

R [ a , b ] x f ( x ) R {\displaystyle \mathbb {R} \supset [a,b]\ni x\mapsto f(x)\in \mathbb {R} }

Zadanie polega na wyznaczeniu miejsca zerowego (pierwiastka) równania

f ( x ) = 0 , {\displaystyle f(x)=0,}

tj. na znalezieniu liczby x [ a , b ] , {\displaystyle x^{*}\in [a,b],} takiej że f ( x ) = 0. {\displaystyle f(x^{*})=0.}

Opis metody

Ilustracja działania metody Newtona, pokazane zostały 4 pierwsze kroki.

Założenia:

  1. W przedziale [ a , b ] {\displaystyle [a,b]} znajduje się dokładnie jeden pierwiastek funkcji f . {\displaystyle f.}
  2. Funkcja ma różne znaki na krańcach przedziału, tj. f ( a ) f ( b ) < 0. {\displaystyle f(a)\cdot f(b)<0.}
  3. Pierwsza i druga pochodna funkcji mają stały znak w tym przedziale.

Krok 1: Wybierz dowolną wartość startową x 1 , {\displaystyle x_{1},} np. x 1 = a {\displaystyle x_{1}=a} (lub x 1 = b {\displaystyle x_{1}=b} ); następnie wyznacz równanie stycznej do wykresu funkcji w punkcie [ x 1 , f ( x 1 ) ] ; {\displaystyle [x_{1},f(x_{1})];} następnie wyznacz odciętą x 2 {\displaystyle x_{2}} punktu przecięcia tej stycznej z osią OX – odcięta x 2 {\displaystyle x_{2}} jest drugim przybliżeniem szukanego rozwiązania.

Krok 2: Wartość x 2 {\displaystyle x_{2}} wybierz jako nową wartość startową i powtórz obliczenia z kroku 1 – otrzymasz nową wartość przybliżoną x 3 . {\displaystyle x_{3}.}

Proces kontynuuj do chwili, gdy będzie spełniony warunek zapewniający uzyskanie wystarczającego przybliżenia, co kończy proces iteracyjny (warunki kończące proces opisano dalej).

Wzór rekurencyjny

Dowodzi się, że kolejne przybliżenia szukanego miejsca zerowego dane są wzorem rekurencyjnym:

x k + 1 = x k f ( x k ) f ( x k ) , k = 1 , 2 , . . . . {\displaystyle x_{k+1}=x_{k}-{\frac {f(x_{k})}{f'(x_{k})}},k=1,2,....}

Szacowanie błędu

Błąd k {\displaystyle k} -tego przybliżenia można oszacować poprzez nierówności:

| x x k | f ( x k ) m {\displaystyle |x^{*}-x_{k}|\leqslant {\frac {f(x_{k})}{m}}}

lub

| x x k | M 2 m ( x x k 1 ) 2 , {\displaystyle |x^{*}-x_{k}|\leqslant {\frac {M}{2m}}(x^{*}-x_{k-1})^{2},}

gdzie x {\displaystyle x^{*}} – dokładna wartość pierwiastka, zaś stałe m , M {\displaystyle m,M} zadają wzory:

m = min x [ a , b ] | f ( x ) | {\displaystyle m=\min _{x\in [a,b]}|f'(x)|}

oraz

M = max x [ a , b ] | f ( x ) | . {\displaystyle M=\max _{x\in [a,b]}|f''(x)|.}

Warunek zakończenia obliczeń

Stosowanych jest kilka kryteriów zakończenia obliczeń ( ϵ {\displaystyle \epsilon } to przyjęta dokładność obliczeń):

1. wartość funkcji w wyznaczonym punkcie jest bliska 0:
| f ( x k ) | ϵ {\displaystyle \left|f(x_{k})\right|\leqslant \epsilon }
2. odległość pomiędzy kolejnymi przybliżeniami jest dość mała:
| x k + 1 x k | ϵ {\displaystyle \left|x_{k+1}-x_{k}\right|\leqslant \epsilon }
3. szacowany błąd jest dostatecznie mały:
M 2 m ( x k x k 1 ) 2 ϵ {\displaystyle {\frac {M}{2m}}(x_{k}-x_{k-1})^{2}\leqslant \epsilon }
4. kryterium mieszane (punkty 1 i 2 jednocześnie)

Zbieżność

Metoda Newtona-Raphsona jest metodą o zbieżności kwadratowej – rząd zbieżności wynosi 2 (wyjątkiem są zera wielokrotne, dla których zbieżność jest liniowa i wynosi 1), zaś współczynnik zbieżności M 2 m . {\displaystyle {\frac {M}{2m}}.} Oznacza to, iż przy spełnionych założeniach błąd maleje kwadratowo wraz z ilością iteracji.

Metoda Newtona jest metodą rozwiązywania równań często używaną w solverach, ze względu na jej szybką zbieżność (w algorytmie liczba cyfr znaczących w kolejnych przybliżeniach podwaja się). Wadą jej jest fakt, iż zbieżność nie musi zawsze zachodzić. W wielu przypadkach metoda bywa rozbieżna, kiedy punkt startowy jest zbyt daleko od szukanego pierwiastka równania.

Profesjonalne solvery wykorzystują stabilniejsze, lecz mniej wydajne metody (jak np. metoda bisekcji) do znalezienia obszarów zbieżności w dziedzinie funkcji, a następnie używają metody Newtona-Raphsona do szybkiego i dokładniejszego obliczenia lokalnego pierwiastka równania. Dodatkowo solvery posiadają zabezpieczenia przed nadmierną liczbą wykonywanych iteracji (przekroczenie ustalonej liczby iteracji jest równoznaczne z niepowodzeniem algorytmu w zadanym przedziale).

Przykład

Za pomocą metody Newtona można obliczyć pierwiastek a {\displaystyle {\sqrt {a}}} dla każdej liczby a R + : {\displaystyle a\in \mathbb {R} ^{+}{:}}

a = x a = x 2 x 2 a = 0. {\displaystyle {\sqrt {a}}=x\iff a=x^{2}\iff x^{2}-a=0.}

Funkcja f(x) ma postać:

f ( x ) = x 2 a , {\displaystyle f(x)=x^{2}-a,}
f ( x ) = 2 x . {\displaystyle f\,'(x)=2x.}

Wzór rekurencyjny ma postać:

x k + 1 = x k x k 2 a 2 x k , {\displaystyle x_{k+1}=x_{k}-{\frac {x_{k}^{2}-a}{2x_{k}}},}
x k + 1 = 1 2 ( x k + a x k ) . {\displaystyle x_{k+1}={\frac {1}{2}}\left(x_{k}+{\frac {a}{x_{k}}}\right).}

Dla danych a = 2 {\displaystyle a=2} i x 0 = 1 {\displaystyle x_{0}=1} algorytm przebiega następująco:

x 0 = 1 , {\displaystyle x_{0}=1,}
x 1 = 1 2 ( 1 + 2 1 ) = 1 , 5 , {\displaystyle x_{1}={\frac {1}{2}}(1+{\frac {2}{1}})=1{,}5,}
x 2 = 1 2 ( 1 , 5 + 2 1 , 5 ) 1,416 666 , {\displaystyle x_{2}={\frac {1}{2}}(1{,}5+{\frac {2}{1{,}5}})\approx 1{,}416666,}
x 3 = 1 2 ( 1,416 666 + 2 1,416 666 ) 1,414 214. {\displaystyle x_{3}={\frac {1}{2}}(1{,}416666+{\frac {2}{1{,}416666}})\approx 1{,}414214.}

Miejsce zerowe funkcji wielu zmiennych

Przykład użycia metody Newtona do rozwiązywania układu równań nieliniowych

Metodę Newtona można uogólnić do przypadku wielowymiarowego, tj. użyć jej do rozwiązywania układów równań wielu zmiennych (liniowych lub nieliniowych).

Zadanie

Niech U będzie otwartym podzbiorem przestrzeni R n {\displaystyle \mathbb {R} ^{n}} oraz F : U R n {\displaystyle F\colon U\to \mathbb {R} ^{n}} będzie funkcją różniczkowalną.

Zadaniem uogólnionej metody Newtona jest znalezienie punktu x = [ x 1 , x 2 , . . . , x n ] , {\displaystyle \mathbf {x^{*}} =[x_{1}^{*},x_{2}^{*},...,x_{n}^{*}],} dla którego funkcja zeruje się, tj.

F ( x ) = 0 , {\displaystyle F(\mathbf {x^{*}} )=\mathbf {0} ,}

gdzie 0 = [ 0 , 0 , . . . , 0 ] {\displaystyle \mathbf {0} =[0,0,...,0]}

Opis metody

Algorytm, podobnie jak dla przypadku jednowymiarowego, polega na wyborze punktu startowego x 0 {\displaystyle \mathbf {x_{0}} } (często wybiera się wektor zerowy lub wektor jedynek), a następnie rekurencyjnym przekształcaniu tego wektora aż do momentu, gdy kolejne przybliżenia będą satysfakcjonujące. Wektory przekształcane są zgodnie z równaniem macierzowym:

x k + 1 = x k ( F ( x k ) ) 1 F ( x k ) , {\displaystyle \mathbf {x_{k+1}} =\mathbf {x_{k}} -\left(F'(\mathbf {x_{k}} )\right)^{-1}F(\mathbf {x_{k}} ),}

gdzie F {\displaystyle F'} jest pochodną (Frécheta) – jest to de facto macierz wielkości n × n . {\displaystyle n\times n.}

Przy implementacji metody, zamiast odwracania macierzy F , {\displaystyle F',} efektywniej jest rozwiązać układ równań (tożsamy z powyższym równaniem):

F ( x k ) d = F ( x k ) , {\displaystyle F'(\mathbf {x_{k}} )\mathbf {d} =-F(\mathbf {x_{k}} ),}

a następnie na podstawie obliczonego d wyznaczyć kolejne przybliżenie:

x k + 1 = x k + d . {\displaystyle \mathbf {x_{k+1}} =\mathbf {x_{k}} +\mathbf {d} .}

Warunek zakończenia obliczeń

Kryterium zakończenia obliczeń podobnie jak w metodzie jednowymiarowej może być (w zadanej normie {\displaystyle \|\cdot \|} oraz dokładności ϵ {\displaystyle \epsilon } ):

  1. wartość funkcji dostatecznie bliska wektorowi zerowemu:
    F ( x k ) ϵ {\displaystyle \|F(\mathbf {x_{k}} )\|\leqslant \epsilon }
  2. dostatecznie mała odległość pomiędzy kolejnymi punktami w iteracji:
    x k + 1 x k ϵ {\displaystyle \|\mathbf {x_{k+1}} -\mathbf {x_{k}} \|\leqslant \epsilon }
  3. kryterium mieszane (punkty 1 oraz 2 jednocześnie)

Zbieżność

Jeśli funkcja F:

  • F ( x ) = 0 {\displaystyle F(\mathbf {x^{*}} )=\mathbf {0} } dla pewnego x U , {\displaystyle \mathbf {x^{*}} \in U,}
  • pochodna F {\displaystyle F'} jest odwzorowaniem zwężającym i nieosobliwym,

to dla punktu startowego x 0 {\displaystyle \mathbf {x^{0}} } będącego dostatecznie blisko x*, wielowymiarowa metoda Newtona jest zbieżna oraz zbieżność ta jest kwadratowa.

Pierwiastki wielokrotne

Przy rozwiązywaniu równań nieliniowych kłopotliwymi dla metody Newtona mogą być pierwiastki wielokrotne, dla których zbieżność algorytmu staje się liniowa. Dla takich przypadków metoda Newtona może być dużo wolniejsza niż inne metody rozwiązywania równań o zbieżności liniowej.

Aby zaradzić tego typu problemom, w praktyce stosuje się następujące podejścia:

  • Dla układu równań – przeprowadzenie optymalizacji funkcji G (znalezienie minimum zadanej funkcji celu):
G ( x ) = F ( x ) , F ( x ) R , {\displaystyle \mathbf {G} (\mathbf {x} )=\langle F(\mathbf {x} ),F(\mathbf {x} )\rangle \in \mathbb {R} ,}
gdzie , {\displaystyle \langle \cdot ,\cdot \rangle } oznacza iloczyn skalarny dwóch wektorów.
  • Dla równania nieliniowego – znalezienie pierwiastka odpowiedniej pochodnej f {\displaystyle f} lub przeprowadzenie minimalizacji funkcji ( f ( x ) ) 2 {\displaystyle \left(f(x)\right)^{2}}


Zobacz multimedia związane z tematem: Metoda Newtona

Zobacz też

Metody rozwiązywania równań nieliniowych:

Inne:

Przypisy

  1. publikacja w otwartym dostępie – możesz ją przeczytać Piotr Krzyżanowski, Grzegorz Łukaszewicz, Przez wieki z metodą Newtona, pismo „Delta”, wrzesień 2021 [dostęp 2021-09-03].

Bibliografia

Linki zewnętrzne

  • Eric W.E.W. Weisstein Eric W.E.W., Newton’s Method, [w:] MathWorld, Wolfram Research [dostęp 2020-12-12]  (ang.).
  • Równania nieliniowe na wazniak.mimuw.edu.pl
  • LCCN: sh92005466
  • J9U: 987007536791105171