Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wstęp do metod numerycznych

Podobne prezentacje


Prezentacja na temat: "Wstęp do metod numerycznych"— Zapis prezentacji:

1 Wstęp do metod numerycznych
Wykład 7 Metody rozwiązywania równań i układów równań nieliniowych dr inż. Wojciech Bieniecki Instytut Matematyki i Informatyki

2 Wstęp Niels Henrik Abel (1802- 1829) matematyk norweski.
Pochodził z biednej rodziny. W wieku 15 lat Abel zaczął studiować matematykę wyższą, czytając dzieła Eulera, Lagrange'a i Laplace'a. W wieku lat 16 udało mu się udowodnić wzór dwumianowy dla dowolnego wykładnika rzeczywistego. W latach przebywał na koszt państwa w Berlinie i Paryżu. Od 1827 docent uniwersytetu w Chrystianii. Jeszcze w szkole Abel podjął badania nad rozwiązaniem równań piątego stopnia przez pierwiastniki, następnie zainteresował się równaniami całkowymi i całkami eliptycznymi, które doprowadziły go do funkcji eliptycznych. W 1824 podjął na nowo badania nad rozwiązalnością równań algebraiczych stopnia 5 i przy pomocy stworzonej niezależnie od Galois teorii grup udało mu się udowodnić, że w ogólnym przypadku równanie takie nie daje się rozwiązać przez pierwiastniki. Inne jego prace dotyczyły zbieżności szeregów liczbowych i potęgowych. W 1829 Uniwersytet Berliński, w uznaniu jego zasług zaproponował mu objęcie katedry matematyki. Niestety, kilka dni po otrzymaniu tej wiadomości, Abel zmarł na gruźlicę, której nabawił się wskutek złych warunków życia w dzieciństwie i młodości

3 Wstęp Pierwiastki równania nieliniowego f(x) = 0 (1)
na ogół nie dają wyrazić się za pomocą wzoru analitycznego. Abel podjął badania nad rozwiązaniem równań piątego stopnia przez pierwiastniki, udało mu się udowodnić, że w ogólnym przypadku równanie takie nie daje się rozwiązać przez pierwiastniki. Pierwiastnikiem nazywamy liczbę, którą można zapisać przy użyciu czterech działań arytmetycznych i działania pierwiastkowania. Dlatego duże znaczenie mają metody przybliżonego rozwiązywania równań. Są to metody kolejnych przybliżeń pierwiastka czyli metody iteracyjne.

4 Wstęp – metody iteracyjne
Oznacza to, że startując od jednego lub kilku przybliżeń początkowych pierwiastka konstruuje się ciąg x0, x1, x2 , ... zbieżny do tego pierwiastka. W metodach tych zadanie znalezienia pierwiastków uważamy za wykonane, jeśli potrafimy określić je z żądaną dokładnością i podać oszacowanie błędu. Trzeba jednak pamiętać, że większość metod przybliżonego rozwiązywania równań można stosować jedynie wtedy, gdy znany jest przedział, w którym znajduje się pojedynczy pierwiastek (przedział izolacji).

5 Metoda bisekcji Dane jest równanie (1), przy czym o funkcji f(x) zakładamy, że jest ciągła na przedziale domkniętym < a, b>, wewnątrz którego znajduje się dokładnie jeden pierwiastek i na którego końcach wartości funkcji f(x) mają przeciwne znaki, tzn. f(a)f(b)<0. Zadanie polega na znalezieniu przybliżonej wartości pierwiastka równania (1). W tym celu dzielimy przedział < a, b> na połowy punktem Jeżeli f(x1) = 0, to x1 jest szukanym pierwiastkiem. Jeśli zaś f(x1)  0, to z otrzymanych dwóch przedziałów < a, x1> i < x1, b> wybieramy ten, na końcach którego funkcja f(x) ma przeciwne znaki. Z kolei ten przedział dzielimy na połowy, ponownie badamy wartość funkcji f(x) w punkcie x2, znaki funkcji f(x) na końcach przedziałów itd.

6 Metoda bisekcji W wyniku takiego postępowania po pewnej liczbie kroków albo otrzymamy pierwiastek dokładny f(xn)=0, albo ciąg przedziałów takich, że f(xi)∙ f(xi+1) < 0, przy czym xi oraz xi+1 są odpowiednio początkiem i końcem i-tego przedziału, a jego długość wynosi: (2) Lewe końce ciągu przedziałów tworzą ciąg niemalejący i ograniczony z góry, a prawe końce ciąg nierosnący i ograniczony z dołu, więc z (2) wynika, że istnieje ich wspólna granica . Ze względu na stosowaną metodę obliczeniową, ten sposób znajdowania pierwiastków nazywamy metodą bisekcji (także metodą połowienia lub metodą równego podziału).

7 Algorytm odczytujemy krańce przedziału poszukiwań pierwiastka (xA, xB) i obliczamy wartość funkcji w punkcie fA = f(xA). Sprawdzamy, czy fA*f(xB)<0. Jeśli nie, to zgłaszamy błąd i przerywamy wykonywanie algorytmu. Obliczenia będziemy prowadzić w pętli. Liczbę iteracji oznaczymy przez i. i=1 Wewnątrz pętli obliczamy punkt środkowy przedziału x0 jako średnią arytmetyczną krańców oraz f0=f(x0). Sprawdzamy, czy |f0| < epsilon, czyli wpada w otoczenie zera. Jeśli tak, to punkt x0 jest przybliżonym pierwiastkiem funkcji i możemy zakończyć wypisując wyniki obliczeń W przeciwnym razie sprawdzamy, w której z dwóch połówek podzielonego przedziału argumentów funkcja zmienia swój znak na przeciwny. Może to być połówka <xA,x0> lub <x0,xB>. Właściwą połówkę przyjmujemy za nowy przedział poszukiwań pierwiastka i o ile pętla nie wykonała jeszcze maksymalnej ilości obiegów, kontynuujemy

8 Przykład Metodą bisekcji znaleźć rzeczywisty pierwiastek równania x3 + x ‑ 1 = 0. Łatwo sprawdzić, że pierwiastek ten znajduje się w przedziale < 0, 1 >. Mamy f(0) = -1 oraz f(1) = 1. Pochodna f ’(x) =3x2 + 1 = 0 jest w przedziale < 0 , 1 > dodatnia, więc jest to przedział izolacji pierwiastka. i xi f(xi) 0.0 -1.0 1.0 1 0.5 -0.375 2 0.75 3 0.625 4 0.6875 5 6

9 Metoda regula falsi Nazwa metody pochodzi od łacińskich słów: regula - linia i falsus - fałszywy. Jest to zatem metoda fałszywego założenia liniowości funkcji. Zakładamy, że w rozpatrywanym przedziale < a, b> równanie (1) ma dokładnie jeden pierwiastek pojedynczy i że f(a) f(b) < 0. Ponadto niech f(x) będzie w przedziale < a, b> funkcją klasy C2 i niech jej pierwsza i druga pochodna mają stały znak w tym przedziale. Z założeń tych wynika, że wykres funkcji y = f(x) może mieć jedną z czterech postaci przedstawionych na rysunkach

10 Metoda regula falsi Rozpatrzmy przypadek, gdy w przedziale < a, b> pochodne f’(x) i f”(x) są dodatnie. Przez punkty A(a, f(a)) i B(b, f(b)) prowadzimy cięciwę o równaniu: (3) Odciętą x1 punktu, w którym cięciwa AB przecina oś ox, przyjmuje się jako pierwsze przybliżenie szukanego pierwiastka równania f(x) = 0. Jeżeli f(x1) = 0, to oczywiście x1 jest szukanym pierwiastkiem  i zadanie jest zakończone. (Dla funkcji f(x) takiej, że f’(x) > 0 i f’’(x) < 0 w przedziale < a, b >, nieruchomy byłby punkt A). Jeżeli przybliżenie x2 jest nadal niewystarczające, to przez punkty B i D(x2,  f(x2)) prowadzimy trzecią cięciwę, co daje nam trzecie przybliżenie x3 itd.

11 Metoda regula-falsi Można wykazać, że przy przyjętych założeniach ciąg ten jest rosnący i ograniczony, a więc zbieżny, i że jego granicą jest szukany pierwiastek . (Jeśli nieruchomy jest punkt B, to kolejne wyrazy ciągu przybliżeń są mniejsze od  oraz f(xk ) < 0 dla każdego k). Przechodząc do granicy dla n   z równości (3) otrzymujemy przy czym Stąd f(g) = 0, a przy założeniu istnienia tylko jednego pierwiastka w przedziale < a, b > mamy g  .

12 Przykład Metodą regula falsi znaleźć rzeczywisty pierwiastek równania: 3x‑cos x-1=0 Badając funkcję występującą w równaniu możemy stwierdzić, że w przedziale < 0.25, 0.75 > ma ona dokładnie jedno miejsce zerowe (w badanym przedziale f’(x)>0 oraz f’’(x)>0. Kolejne jego przybliżenia obliczone według wzoru (3) znajdują się w tabeli xi  f(xi) a = 0.25 b = 0.75 x1  = x2  = x3  = x4  = x5  =

13 Cechy obu metod Podstawową zaletą metody bisekcji oprócz jej dużej prostoty jest pewność, że w każdej kolejnej iteracji szukany pierwiastek leży między dwiema wartościami zmiennej x, dla których funkcja f(x) zmienia znak. Wielokrotne powtarzanie obliczeń doprowadzić musi zatem do uzyskania wyniku z żądaną dokładnością. Metoda regula falsi jest zbieżna dla dowolnej funkcji ciągłej w przedziale < a, b > (oczywiście f(a)f(b) < 0), jeżeli tylko pierwsza pochodna tej funkcji jest ograniczona i różna od zera w otoczeniu pierwiastka. Jeżeli druga pochodna nie zmienia znaku w rozpatrywanym przedziale, to ten koniec przedziału, w którym f’’(x)*f’(x)>0 , jest stałym punktem iteracji - wszystkie cięciwy przechodzą przez ten punkt. Wadą metody jest jej stosunkowo powolna zbieżność.

14 Metoda siecznych Metodę regula falsi można znacznie ulepszyć, jeżeli zrezygnuje się z żądania, aby w punktach wytyczających kolejną cięciwę funkcja f(x) miała różne znaki (za wyjątkiem pierwszej iteracji). Musimy przyjąć założenie, że w przedziale <a,b> pierwsza pochodna f '(x) jest różna od zera. Nie istnieje zatem minimum lub maksimum lokalne. Ten warunek gwarantuje nam, iż sieczna nie będzie równoległa do osi OX, co uniemożliwiłoby wyznaczenie jej punktu przecięcia z tą osią. Do wyznaczenia (k+1)-szego przybliżenia wykorzysta się punkty xk oraz xk-1. Wzór (3) Przyjmie wówczas postać (4) Takie podejście do problemu znacznie przyspiesza znajdowanie pierwiastka funkcji

15 Przykład z interpretacją graficzną
Za początkowe punkty x1 i x2 przyjmujemy punkty krańcowe przedziału poszukiwań pierwiastka. Ponieważ funkcja zmienia znak w tym przedziale i jest określona oraz ciągła, mamy gwarancję istnienia pierwiastka. Z punktów wykresu funkcji dla x1 i x2 prowadzimy sieczną - na rysunku zaznaczoną kolorem czerwonym. Punkt przecięcia się tej siecznej z osią OX daje nam następny punkt x3.

16 Przykład z interpretacją graficzną
Drugą sieczną prowadzimy z punktów wykresu funkcji dla x2 oraz x3. Otrzymujemy punkt x4. Trzecia sieczna prowadzona jest z punktów wykresu funkcji dla x3 i x4. Otrzymujemy kolejny punkt x5. Już widać, iż leży on bardzo blisko rzeczywistego pierwiastka funkcji. Ostatnią sieczną prowadzimy z punktów wykresu funkcji dla x4 i x5. Otrzymany punkt x6 jest już dostatecznie blisko pierwiastka funkcji.

17 Zbieżność metody siecznych
Jej zbieżność jest znacznie szybsza, niż metody regula falsi. Niestety, zdarzają się przypadki, gdy może nie być zbieżna, np. gdy początkowe przybliżenia nie leżą dostatecznie blisko pierwiastka. Poprawnym warunkiem zakończenia algorytmu jest lub W metodzie tej istotne znaczenie ma maksymalna graniczna dokładność wynikająca z przyjętej arytmetyki. Gdy bowiem różnica xk+1 – xk jest tego samego rzędu, co oszacowanie błędu, jakim jest obarczona, następne przybliżenie może już być całkowicie błędne. Dlatego też za dodatkowe kryterium przerwania iteracji należy przyjmować wartości f(xk) tak, aby tworzyły one ciąg malejący (w końcowej fazie obliczeń).

18 Algorytm 1. Odczytujemy punkty x1 oraz x2 do wyznaczenia pierwszej siecznej. Nie muszą one obejmować przedziału, w którym funkcja zmienia znak, jednakże jest to wskazane. 2. Obliczamy wartości f1 i f2 dla tych punktów, oraz ustawiamy licznik pętli i na wartość max (ograniczenie iteracji) 3. Przetwarzamy pętlę a) Sprawdzamy warunki stopu b) Korzystając z wzoru (4) wyznaczamy x0 i f0. c) Sprawdzamy kolejny warunek stopu d) Podstawiamy wartości x1,x2, f1, f2 dla kolejnej iteracji e) Dekrementujemy licznik iteracji

19 Metoda Newtona - Raphsona
Metoda Newtona dla przypadku jednowymiarowego jest rozwinięciem metody siecznych Mamy daną funkcję f(x), która dla przedziału <a,b> spełnia warunki Jest określona Jest ciągła f’ 0 f(a)∙f(b)<0 Oznacza to, że funkcja f ma w przedziale <a,b> jeden pierwiastek Przyjmujemy punkt startowy x0<a,b> Jeśli we wzorze metody siecznych: (4) punkty xi-1 i xi-2 zaczną się do siebie zbliżać dążąc w granicy do równości, to ułamek tam występujący przejdzie w odwrotność pochodnej funkcji f(x) w punkcie xi-1:

20 Metoda Newtona - Raphsona
Punkty xi-1 i xi-2 zaczną się do siebie zbliżać dążąc w granicy do równości, to ułamek tam występujący przejdzie w odwrotność pochodnej funkcji f(x) w punkcie xi-1: Geometrycznie – sieczna stanie się styczną do wykresu funkcji w punkcie xi-1. (nachylenie stycznej do wykresu funkcji to wartość jej pochodnej) Do wyznaczenia kolejnego przybliżenia pierwiastka xi potrzebujemy tylko jednego punktu, który został wyznaczony w poprzednim obiegu - w metodzie siecznych potrzebne były dwa punkty. Zaletą metody Newtona jest bardzo szybka zbieżność. Wadą - we wzorze występuje pochodna, której obliczenie może być trudne dla niektórych funkcji.

21 Ilustracja geometryczna
Obliczenia rozpoczynamy od punktu xo. W przedziale pomiędzy punktem xo a docelowym pierwiastkiem funkcja musi posiadać niezerową pierwszą pochodną. Pożądane jest również, aby w punkcie xo druga pochodna miała ten sam znak, co funkcja f(x). W przeciwnym razie metoda Newtona zamiast zbliżać się do punktu pierwiastka ucieknie od niego. Obliczamy nowy punkt xo zgodnie ze wzorem i sprawdzamy, czy wartość funkcji w tym punkcie jest dostatecznie bliska 0. Jeśli tak, kończymy. W przeciwnym razie wyznaczony kolejny punkt xowykorzystując ostatnio wyliczony. Działania te prowadzimy dotąd, aż zbliżymy się dostatecznie do pierwiastka funkcji - różnica pomiędzy dwoma kolejno wyznaczonymi pierwiastkami będzie dostatecznie mała. Ponieważ metoda Newtona może być rozbieżna przy źle wybranym punkcie startowym, będziemy zliczali obiegi - jeśli rozwiązanie nie pojawi się po wykonaniu zadanej ich liczby, przerwiemy obliczenia.

22 Przykład Przykładem zastosowania metody Newtona jest rekurencyjne wyliczanie pierwiastka kwadratowego z danej liczby p. Wartość pierwiastka jest miejscem zerowym funkcji: Pochodna tej funkcji wyraża się wzorem: Przyjmijmy za punkt startowy pewną liczbę x0. Wtedy pierwsze przybliżenie otrzymamy wg wzoru: Kolejne przybliżenie otrzymamy podstawiając we wzorze za x0 otrzymane x1. Wg tej metody postępujemy dotąd, aż różnica dwóch ostatnich przybliżeń będzie mniejsza od pożądanej dokładności wyznaczenia pierwiastka.

23 Przykład Dla przykładu wyznaczmy tą metodą pierwiastek z liczby 5 z dokładnością do 0,01. Za punkt początkowy przyjmijmy 5.

24 Schemat blokowy Algorytm wyznaczania pierwiastka funkcji metodą Newtona rozpoczyna się od odczytu punktu startowego xo.  W następnym kroku ustalamy wartość punktu x1 - będzie on przechowywał poprzednie przybliżenie pierwiastka. Jednakże na początku "poprzednie" przybliżenie jeszcze nie zostało policzone, zatem zmiennej x1 nadajemy taką wartość, aby wykonała się pętla wyliczająca pierwiastek funkcji. Dodatkowo do zmiennej fo wpisujemy wartość funkcji w punkcie xo oraz ustalamy maksymalną liczbę obiegów pętli na 64 w zmiennej i.

25 Przykład – punkt startowy
Wybór punktu startowego x0 jest bardzo istotny i może decydować o zbieżności ciągu kolejnych przybliżeń. Zbadaj zależność rozwiązania równania metodą Newtona od wyboru punktu startowego x0. Wykres funkcji y(x) Przedstawia rysunek obok. Badana funkcja ma dwa rzeczywiste pierwiastki x1 > 0 oraz x2 < 0.

26 Przykład – punkt startowy
Wyniki obliczeń tych pierwiastków z różną dokładnością i dla różnych punktów startowych (niekiedy bardzo odległych od szukanych pierwiastków) zebrane są w tabeli. Z tabeli wynika, że osiągnięcie dokładności tysiąc razy większej wymaga tylko jednego kroku więcej. x0 -1.0 10.0 100.0 dokładność 0.001 liczba iteracji 4 5 6 7 10 11 -0.635 5.1 50.1 -0.534 -0.543 2.74 25.02 -0.537 1.71 12.5 1.36 1.369 6,35 1.31 1.317 3.33 1.3159 1.3169 1.95 1.43 1.32 1.315 Warto zwrócić uwagę na to, że wartość kolejnego przybliżenia najbardziej zmienia się w pierwszych iteracjach. Wybór punktu startowego ma także znaczenie - np. dla x0 = -1 potrzeba 4 iteracji, zaś 11 iteracji dla x0 = 100. W wyniku przeprowadzonych obliczeń stwierdzono, że wartość pochodnej f’(x) począwszy od drugiej iteracji zmienia się nieznacznie.

27 Dalsze rozważania Z wyrażenia na hk
wynika, że pochodną f’(x) można obliczać z taką dokładnością względną, z jaką oblicza się f(x). Można więc nie wyznaczać f’(x) w każdej iteracji. Znacznie przyspiesza to proces iteracyjny (szczególnie dla układów równań nieliniowych), nie wpływając znacząco na jego zbieżność. Uproszczony wzór przyjmuje postać

28 Dalsze rozważania Jeśli poszukujemy pierwiastka równania f(x) = 0 metodą Newtona w przedziale jego izolacji < a, b >, to warunkiem koniecznym zbieżności jest, aby punkt startowy x0 znajdował się w tym przedziale. Metoda Newtona zapewnia zbieżność procesu iteracyjnego wtedy, gdy w przedziale izolacji pierwiastka pierwsza i druga pochodna funkcji f(x) nie zmieniają znaku. Punkt startowy x0 należy wybierać następująco: x0 = a, jeśli f(x)∙f’(x)<0 – przypadek 2 i 3 x0 = b, jeśli f(x)∙f’(x)>0 – przypadek 1 i 4 Zwiększenie czasu obliczeń lub niemożność znalezienia pierwiastka ma miejsce wówczas, gdy wybierzemy punkt początkowy odwrotnie, niż wskazano powyżej

29 Dalsze rozważania Rysunek ilustruje przypadki niewłaściwego doboru punktu startowego x0 w metodzie Newtona, co może doprowadzić do znalezienia innego pierwiastka lub przerwać obliczenia na skutek znalezienia punktu x1 poza przedziałem określoności funkcji lub w nieskończoności.

30 Przykład porównawczy Stosując różne wzory iteracyjne rozwiązać równanie x + ln x = 0. Pokazać, że szybkość zbieżności zależy od zastosowanego wzoru. Metoda bisekcji Przyjmujemy: początek przedziału: 0.34, koniec przedziału: 0.98, dokładność: Znaleziony pierwiastek: x = , liczba iteracji: 13.

31 Przykład porównawczy Stosując różne wzory iteracyjne rozwiązać równanie x + ln x = 0. Pokazać, że szybkość zbieżności zależy od zastosowanego wzoru. Metoda regula falsi Przyjmujemy: początek przedziału: 0.34, koniec przedziału: 0.98, dokładność: Znaleziony pierwiastek: x = , liczba iteracji: 13.

32 Przykład porównawczy Stosując różne wzory iteracyjne rozwiązać równanie x + ln x = 0. Pokazać, że szybkość zbieżności zależy od zastosowanego wzoru. Metoda Newtona Przyjmujemy: punkt startowy: 1, dokładność: Znaleziony pierwiastek: x = , liczba iteracji: 4

33 Metoda Mullera Jest to metoda ekstrapolacji/interpolacji kwadratowej
Poprzednie metody siecznej i stycznej używały modelu liniowego funkcji w bieżącym punkcie dla predykcji (przez interpolację lub ekstrapolację) zera funkcji. Dla funkcji z dużą krzywizną w okolicy zera oznacza to wolną zbieżność algorytmu. Naturalne więc jest zastąpienie linii prostej parabolą co powinno skutkować lepszą zbieżnością. To właśnie realizuje algorytm Mullera.

34 Metoda Mullera Mając dane trzy punkty (x, f(x)) , można wyznaczyć parabolę o równaniu Jak to zrobić – patrz wykład 2. Dla przypomnienia Gdzie: Zero paraboli interpolującej daje oszacowanie zera funkcji:

35 Układy równań nieliniowych
W celu rozwiązania układu n równań nieliniowych metodę Newtona-Raphsona uogólnia się na n-wymiarów. Zbiór argumentów x1, x2, x3, ... rozpatrujemy jako n - wymiarowy wektor postaci: Analogicznie zbiór funkcji f1, f2, f3, ... traktujemy jako n-wymiarowy wektor Wtedy układ równań można zapisać w postaci

36 Metoda Newtona-Raphsona
Iteracyjny wzór Newtona-Raphsona dla układu równań przyjmie postać gdzie J(X) jest obliczoną dla X macierzą Jacobiego (tzw. Jakobian) W przypadku układu równań problem zbieżności jest trudniejszy, niż w przypadku pojedynczego równania. Dlatego bardzo ważne jest dobre przybliżenie startowe.

37 Przykład Znaleźć dwa pierwsze przybliżenia rozwiązania układu równań
Jako przybliżenie początkowe przyjmujemy wektor Obliczamy a następnie tworzymy macierz Jacobiego

38 Przykład W drugiej iteracji Dokładnym rozwiązaniem układu jest:

39 Metoda Newtona-Raphsona
Obliczenia kolejnych przybliżeń w metodzie Newtona znacznie się upraszczają, jeśli nie wyznacza się macierzy odwrotnej do macierzy Jacobiego. Pierwszy wzór można zapisać w postaci Oznaczając otrzymujemy: W przypadku braku zbieżności przerywamy wykonywanie algorytmu. Wskaźnikiem rozbieżności jest wzrost lub oscylacja Z w kolejnych iteracjach. Zwykle wystarcza wykonanie niewielkiej liczby iteracji w celu zorientowania się, czy kontynuacja obliczeń jest celowa. Jeśli nie, to należy zadać nowe warunki początkowe lub zastosować inną metodę.

40 Literatura: 1. Beata Pańczyk, Edyta Łukasik, Jan Sikora, Teresa Guziak
Metody numeryczne w przykładach, Politechnika Lubelska Lublin 2012 2. Jerzy Wałaszek Serwis Edukacyjny I LO Tarnów, Miejsca zerowe funkcji


Pobierz ppt "Wstęp do metod numerycznych"

Podobne prezentacje


Reklamy Google