Ogólny opis metody siecznych (i metody reguła falsi)
Metoda siecznych wymaga od użytkownika podania dwóch przybliżeń xo i x1, dla których wartości funkcji mogą, ale nie muszą leżeć po przeciwnych stronach osi x (jak w metodzie bisekcji i w metodzie reguła falsi). Jeśli jednak te pierwsze, podane przez użytkownika przybliżenia, będą jednocześnie końcami przedziału, w którym funkcja ma miejsce zerowe, to konwergencja metody będzie wówczas wysoka. Przez te podane dwa punkty (użytkownik podaje wartości xo i x1, program oblicza wartości funkcji), prowadzona jest prosta, miejsce przecięcia tej prostej z osią x jest przybliżonym wynikiem szukanego miejsca zerowego, o ile bezwzględna wartość funkcji w tym punkcie jest mniejsza od założonej dokładności.Uwaga, niektórzy autorzy utożsamiają metodę siecznych z metodą reguła falsi, gdyż obliczenia w obu wypadkach przeprowadza się w ten sam sposób i według tego samego wzoru, jedyna różnica polega właśnie na warunku jaki spełnia wybrany do szukania miejsca zerowego przedział: w metodzie siecznych te dwa przybliżenia podane przez użytkownika są przedziałem w którym może znajdować się pierwiastek równania (lub w pobliżu tego przedziału), zaś w metodzie reguła falsi musi leżeć w nim ten pierwiastek, czyli należy sprawdzić, że f(x0) * f(x1) < 0. Porównaj [2] str. 173 i 176
Specyfikacja
Dane:- funkcja f(x) ciągła w przedziale domkniętym [x0,x1] i spełniająca f(x0) * f(x1) < 0 (ten drugi warunek oznacza, że tak naprawdę przyjmujemy założenia do metody reguła falsi, dla metody siecznej ważne jest, aby wartość f(x0) <> f(x1), by to były różne punkty startowe);
- epsilon - przyjęta dokładność obliczeń (epsilon>0)
- x2 przybliżenie miejsca zerowego funkcji f, spełniające warunki: |f(x2)| <= epsilon; wartość funkcji f powinna być liczona ze znacząco większą dokładnością liczb rzeczywistych niż epsilon.
Uwaga 2 na podstawie [3] str. 126 - "Przy stosowaniu metody siecznych jest niezbędne, aby pierwsza iteracja zaczynała się z punktów, w których funkcja ma różne znaki, w przeciwnym razie możemy wykryć nieistniejący pierwiastek, co jest szczególnie niebezpieczne przy obliczeniach prowadzonych na maszynach cyfrowych"
Algorytm:
- Pobierz wartości dwóch pierwszych przybliżeń [x0,x1]. Sprawdź czy f(x0) * f(1) < 0, jeśli nie pobierz inne przybliżenia. Sprawdzanie, czy podawane przez użytkownika dwa pierwsze przybliżenia są jednocześnie końcami przedziału, w którym znajduje się miejsce zerowe funkcji, następuje na początku algorytmu.
- Oblicz* x2 = x1 - f (x1) * (x1 - x0) / (f(x1) - f(x0)) .
- Policz f(x2).
- Jeśli |f(x2)| <= epsilon zakończ obliczenia - x2 jest szukanym miejscem zerowym funkcji, wpp podstaw jako nowe x0 = x1 i nowe x1 = x2. Wróć do polecenia 2 - to w metodzie siecznych; w metodzie reguła falsi należy podobnie jak w metodzie bisekcji wybrać przedział, w którym znajduje się szukany pierwiastek funkcji.
- x0 i x1 - dwa kolejne przybliżenia miejsca zerowego funkcji, zarazem końce przedziału, w którym to miejsce się znajduje,
- przez te dwa punkty prowadzimy sieczną o wzorze w(x) = a * x + b,
- wartości funkcji i siecznej są w tych punktach te same, czyli
w(x0) = f(x0) oraz
w(x1) = f(x1), zatem
f(x0) = a * x0 + b oraz
f(x1) = a * x1 + b - mając te dwa równania można wyliczyć a i b (odjąć stronami i
obliczyć a, następnie z jednego z równań policzyć b) - reszta jest dana,
- x2 jest to miejsce przecięcia siecznej z osią x, czyli
0 = a * x2 + b (a i b wcześniej policzone), stąd można wyliczyć x2, - x2 = x1 - f (x1) * (x1 - x0) / (f(x1) - f(x0))
Brak komentarzy:
Prześlij komentarz