Metoda sieczna

Pierwsze dwie iteracje metody siecznej. Czerwona krzywa przedstawia funkcję f , a niebieskie linie to sieczne. W tym konkretnym przypadku metoda siecznej nie będzie zbieżna do widocznego pierwiastka.

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 .

Secant method example code result.svg

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ż

Linki zewnętrzne