Metoda Newtona

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania

Szablon:Inne znaczenia Szablon:Algorytm infobox 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 jednej zmiennej rzeczywistej, określona na przedziale [a,b]:

[a,b]xf(x)

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

f(x)=0,

tj. na znalezieniu liczby x*[a,b], takiej że f(x*)=0.

Opis metody

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

Założenia:

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

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

Krok 2: Wartość x2 wybierz jako nową wartość startową i powtórz obliczenia z kroku 1 – otrzymasz nową wartość przybliżoną x3.

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:

xk+1=xkf(xk)f(xk),k=1,2,....

Szacowanie błędu

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

|x*xk|f(xk)m

lub

|x*xk|M2m(x*xk1)2,

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

m=minx[a,b]|f(x)|

oraz

M=maxx[a,b]|f(x)|.

Warunek zakończenia obliczeń

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

1. wartość funkcji w wyznaczonym punkcie jest bliska 0:
|f(xk)|ϵ
2. odległość pomiędzy kolejnymi przybliżeniami jest dość mała:
|xk+1xk|ϵ
3. szacowany błąd jest dostatecznie mały:
M2m(xkxk1)2ϵ
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 M2m. 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 dla każdej liczby a+:

a=xa=x2x2a=0.

Funkcja f(x) ma postać:

f(x)=x2a,
f(x)=2x.

Wzór rekurencyjny ma postać:

xk+1=xkxk2a2xk,
xk+1=12(xk+axk).

Dla danych a=2 i x0=1 algorytm przebiega następująco:

x0=1,
x1=12(1+21)=1,5,
x2=12(1,5+21,5)1,416666,
x3=12(1,416666+21,416666)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 n oraz F:Un będzie funkcją różniczkowalną.

Zadaniem uogólnionej metody Newtona jest znalezienie punktu 𝐱*=[x1*,x2*,...,xn*], dla którego funkcja zeruje się, tj.

F(𝐱*)=𝟎,

gdzie 𝟎=[0,0,...,0]

Opis metody

Algorytm, podobnie jak dla przypadku jednowymiarowego, polega na wyborze punktu startowego 𝐱𝟎 (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:

𝐱𝐤+𝟏=𝐱𝐤(F(𝐱𝐤))1F(𝐱𝐤),

gdzie F jest pochodną (Frécheta) – jest to de facto macierz wielkości n×n.

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

F(𝐱𝐤)𝐝=F(𝐱𝐤),

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

𝐱𝐤+𝟏=𝐱𝐤+𝐝.

Warunek zakończenia obliczeń

Kryterium zakończenia obliczeń podobnie jak w metodzie jednowymiarowej może być (w zadanej normie oraz dokładności ϵ):

  1. wartość funkcji dostatecznie bliska wektorowi zerowemu:
    F(𝐱𝐤)ϵ
  2. dostatecznie mała odległość pomiędzy kolejnymi punktami w iteracji:
    𝐱𝐤+𝟏𝐱𝐤ϵ
  3. kryterium mieszane (punkty 1 oraz 2 jednocześnie)

Zbieżność

Jeśli funkcja F:

to dla punktu startowego 𝐱𝟎 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):
𝐆(𝐱)=F(𝐱),F(𝐱),
gdzie , oznacza iloczyn skalarny dwóch wektorów.
  • Dla równania nieliniowego – znalezienie pierwiastka odpowiedniej pochodnej f lub przeprowadzenie minimalizacji funkcji (f(x))2

Szablon:Commonscat

Zobacz też

Metody rozwiązywania równań nieliniowych:

Inne:

Przypisy

Szablon:Przypisy

Bibliografia

Linki zewnętrzne

Szablon:Kontrola autorytatywna

  1. Szablon:Otwarty dostęp Piotr Krzyżanowski, Grzegorz Łukaszewicz, Przez wieki z metodą Newtona, pismo „Delta”, wrzesień 2021 [dostęp 2021-09-03].