Metoda sieczna
W analizie numerycznej metoda siecznych jest algorytmem znajdowania pierwiastków , który wykorzystuje kolejne pierwiastki siecznych linii , aby lepiej przybliżyć pierwiastek funkcji f . Metodę sieczną można traktować jako przybliżenie metody Newtona metodą różnic skończonych . Jednak metoda sieczna jest starsza niż metoda Newtona o ponad 3000 lat.
Metoda
Aby znaleźć zero funkcji f , metoda siecznych jest zdefiniowana przez relację powtarzalności .
Jak widać z tego wzoru, wymagane są dwie wartości początkowe x 0 i x 1 . Idealnie powinny być wybrane blisko pożądanego zera.
Wyprowadzenie metody
Zaczynając od wartości początkowych x 0 i x 1 , konstruujemy prostą przechodzącą przez punkty 00 ( x , f ( x )) i ( x 1 , f ( x 1 )) , jak pokazano na powyższym rysunku. W postaci nachylenia i punktu przecięcia równanie tej linii ma postać
Pierwiastek tej funkcji liniowej, czyli wartość x taka, że y = 0 wynosi
Następnie używamy tej nowej wartości x jako x 2 i powtarzamy proces, używając x 1 i x 2 zamiast x 0 i x 1 . Kontynuujemy ten proces, rozwiązując dla x 3 , x 4 itd., aż osiągniemy wystarczająco wysoki poziom precyzji (wystarczająco mała różnica między x n i x n −1 ):
Konwergencja
Iteracje metody siecznych zbiegają się do pierwiastka z , jeśli wartości początkowe i są wystarczająco blisko korzenia. Kolejność zbieżności to , gdzie
jest złoty podział . W szczególności zbieżność jest superliniowa, ale nie całkiem kwadratowa .
Wynik ten obowiązuje tylko pod pewnymi warunkami technicznymi, a mianowicie, aby był dwukrotnie różniczkowalny w sposób ciągły, a pierwiastek, o którym mowa, był prosty (tj. Z krotnością 1
Jeśli wartości początkowe nie są wystarczająco bliskie pierwiastkowi, nie ma gwarancji, że metoda sieczna jest zbieżna. Nie ma ogólnej definicji „wystarczająco blisko”, ale kryterium dotyczy tego, jak „falująca” jest funkcja w przedziale. . Na przykład, jeśli przedziale i istnieje punkt, w którym przedziale, to algorytm może nie być
Porównanie z innymi metodami wyszukiwania korzeni
Metoda siecznych nie wymaga, aby pierwiastek pozostawał w nawiasach, tak jak robi to metoda bisekcji , a zatem nie zawsze jest zbieżny. Metoda fałszywej pozycji (lub regula falsi ) wykorzystuje ten sam wzór, co metoda siecznych. nie stosuje jak na i na ostatniej iteracji tak, że mają inny znak. Oznacza to, że metoda fałszywej pozycji zawsze jest zbieżna; jednak tylko z liniowym rzędem zbieżności. Bracketing z superliniowym rzędem zbieżności jako metodą sieczną można osiągnąć dzięki ulepszeniom metody fałszywej pozycji (zob. Regula falsi § Ulepszenia w regula falsi ), takie jak metoda ITP lub metoda Illinois .
Wzór na powtarzalność metody siecznej można wyprowadzić ze wzoru na metodę Newtona
stosując przybliżenie różnic skończonych , dla małego: :
Metodę siecznych można interpretować jako metodę, w której pochodna jest zastępowana przybliżeniem, a zatem jest metodą quasi-Newtona .
Jeśli porównamy metodę Newtona z metodą sieczną, to zobaczymy, że metoda Newtona jest zbieżna szybciej (rząd 2 wobec φ ≈ 1,6). Jednak metoda Newtona wymaga oceny zarówno jej jak i jej pochodnej metoda siecznych wymaga jedynie oceny . Dlatego metoda siecznej może czasami być szybsza w praktyce. Na przykład, jeśli założymy, że ocena zajmuje tyle samo czasu, co obliczenie jego pochodnej i pomijamy wszystkie inne koszty, możemy wykonać dwa kroki metody siecznej (zmniejszając logarytm błędu o współczynnik φ 2 ≈ 2,6 ) za ten sam koszt, co jeden krok metody Newtona ( zmniejszając logarytm błędu o współczynnik 2), więc metoda siecznej jest szybsza. Jeśli jednak weźmiemy pod uwagę przetwarzanie równoległe do wyznaczania pochodnej, metoda Newtona sprawdza się, ponieważ jest szybsza w czasie, choć wciąż wymaga większej liczby kroków.
Uogólnienie
Metoda Broydena jest uogólnieniem metody siecznej na więcej niż jeden wymiar.
Poniższy wykres przedstawia funkcję f na czerwono, a ostatnią sieczną pogrubioną na niebiesko. Na wykresie sieczną wydaje się być dobrym przybliżeniem pierwiastka z f .
Przykład obliczeniowy
Poniżej przedstawiono metodę sieczną zaimplementowaną w języku programowania Python .
Następnie stosuje się go do znalezienia pierwiastka funkcji fa ( x ) = x 2 - 612 z początkowymi punktami i i
def secant_method ( f , x0 , x1 , iteracje ): """Zwróć pierwiastek obliczony metodą siecznych.""" dla i w zakresie ( iteracje ): x2 = x1 - f ( x1 ) * ( x1 - x0 ) / pływak ( fa ( x1 ) - fa (
x0 )) x0 , x1 = x1 , x2 # Zastosuj tutaj kryterium zatrzymania (patrz poniżej) return x2 def f_example ( x ): return x ** 2 - 612 root = secant_method ( f_example , 10 , 30 , 5 ) print ( f "Root: { root } " ) # Korzeń: 24.738633748750722
Bardzo ważne jest, aby mieć dobre kryterium zatrzymania powyżej, w przeciwnym razie, ze względu na ograniczoną precyzję numeryczną liczb zmiennoprzecinkowych, algorytm może zwracać niedokładne wyniki, jeśli działa przez zbyt wiele iteracji. Na przykład powyższa pętla może się zatrzymać, gdy jedno z poniższych zostanie osiągnięte jako pierwsze: abs(x0 - x1) < tol lub abs(x0-x1)/abs(x1) < tol lub abs(f(x1)) < tol .
Notatki
Zobacz też
- Avriel, Mordechaj (1976). Programowanie nieliniowe: analiza i metody . Sala Prentice'a. s. 220–221. ISBN 0-13-623603-0 .
- Allen, Myron B.; Isaacson, Eli L. (1998). Analiza numeryczna dla nauk stosowanych . John Wiley & Synowie . s. 188–195. ISBN 978-0-471-55266-6 .
Linki zewnętrzne
- Secant Method Notes, PPT, Mathcad, Maple, Mathematica, Matlab w Holistic Numerical Methods Institute
- Weisstein, Eric W. „Metoda sieczna” . MathWorld .