metoda Bairstowa
W analizie numerycznej metoda Bairstowa jest skutecznym algorytmem znajdowania pierwiastków wielomianu rzeczywistego dowolnego stopnia. Algorytm pojawił się po raz pierwszy w dodatku do książki Applied Aerodynamics z 1920 roku autorstwa Leonarda Bairstowa . [ potrzebne źródło inne niż podstawowe ] Algorytm znajduje pierwiastki w zespolonych parach koniugatów, używając tylko arytmetyki rzeczywistej.
Zobacz algorytm wyszukiwania korzeni dla innych algorytmów.
Opis metody
Bairstow polega na użyciu Newtona do dostosowania współczynników u i v w kwadracie , rozwiązywanego wielomianu. Następnie można określić pierwiastki kwadratu, a wielomian można podzielić przez kwadrat, aby wyeliminować te pierwiastki. Proces ten jest następnie powtarzany, aż wielomian stanie się kwadratowy lub liniowy, a wszystkie pierwiastki zostaną określone.
Długie dzielenie wielomianu do rozwiązania
przez daje iloraz i reszta taka, że
Drugi podział przez przez jest wykonywany w celu uzyskania ilorazu + z
Zmienne { są funkcjami i . Można je znaleźć rekurencyjnie w następujący sposób.
Kwadrat równomiernie dzieli wielomian kiedy
Wartości i , dla których to występuje wartości początkowe i iterując metodę Newtona w dwóch wymiarach u {\
aż nastąpi zbieżność. Ta metoda znajdowania zer wielomianów może być zatem łatwo zaimplementowana za pomocą języka programowania, a nawet arkusza kalkulacyjnego.
Przykład
Zadanie polega na wyznaczeniu pary pierwiastków wielomianu
Jako pierwszy wielomian kwadratowy można wybrać wielomian znormalizowany utworzony z trzech wiodących współczynników f ( x ),
Następnie iteracja tworzy tabelę
Nr | u | w | długość kroku | korzenie |
---|---|---|---|---|
0 | 1.833333333333 | −5,500000000000 | 5.579008780071 | −0,916666666667±2,517990821623 |
1 | 2.979026068546 | −0,039896784438 | 2.048558558641 | −1,489513034273±1,502845921479 |
2 | 3.635306053091 | 1.900693009946 | 1.799922838287 | −1,817653026545±1,184554563945 |
3 | 3.064938039761 | 0,193530875538 | 1.256481376254 | −1,532469019881±1,467968126819 |
4 | 3.461834191232 | 1.385679731101 | 0,428931413521 | −1,730917095616±1,269013105052 |
5 | 3.326244386565 | 0,978742927192 | 0,022431883898 | −1,663122193282±1,336874153612 |
6 | 3.333340909351 | 1.000022701147 | 0,000023931927 | −1,666670454676±1,333329555414 |
7 | 3.333333333340 | 1.000000000020 | 0,000000000021 | −1,666666666670±1,3333333333330 |
8 | 3.333333333333 | 1.0000000000000 | 0,0000000000000 | −1,666666666667±1,3333333333333 |
Po ośmiu iteracjach metoda dała współczynnik kwadratowy, który zawiera pierwiastki -1/3 i -3 w ramach reprezentowanej precyzji. Długość kroku od czwartej iteracji pokazuje nadliniową prędkość konwergencji.
Wydajność
Algorytm Bairstowa dziedziczy lokalną zbieżność kwadratową metody Newtona, z wyjątkiem przypadków czynników kwadratowych o krotności większej niż 1, gdy zbieżność do tego czynnika jest liniowa. Szczególny rodzaj niestabilności obserwuje się, gdy wielomian ma nieparzysty stopień i tylko jeden pierwiastek rzeczywisty. Czynniki kwadratowe, które mają małą wartość przy tym pierwiastku rzeczywistym, mają tendencję do rozchodzenia się do nieskończoności.
Obrazy przedstawiają pary . Punkty w górnej połowie płaszczyzny > 0 czynnikowi liniowemu z czyli . Punkty w dolnej połowie płaszczyzny t <0 odpowiadają czynnikom kwadratowym z x , więc ogólnie . Punkty są kolorowe zgodnie z końcowym punktem iteracji Bairstow, czarne punkty wskazują rozbieżne zachowanie.
Pierwszy obraz jest demonstracją pojedynczego rzeczywistego przypadku głównego. Drugi wskazuje, że można zaradzić rozbieżnemu zachowaniu, wprowadzając dodatkowy pierwiastek rzeczywisty, kosztem spowolnienia szybkości zbieżności. Można również w przypadku wielomianów nieparzystych stopni najpierw znaleźć pierwiastek rzeczywisty za pomocą metody Newtona i/lub metody zmniejszania przedziałów, tak aby po deflacji pozostał lepiej zachowujący się wielomian parzystych stopni. Trzeci obraz odpowiada powyższemu przykładowi.
Odniesienie
Linki zewnętrzne
- Algorytm Bairstowa w Mathworld
- Przepisy numeryczne w Fortran 77 Online
- Przykład rozwiązania pierwiastka wielomianowego (deg ( P ) ≤ 10) przy użyciu metody Bairstowa
- LinBairstowSolve , implementacja metody Lin-Bairstow typu open source w języku C ++ dostępna jako metoda biblioteki VTK
- Znajdowanie pierwiastków online wielomianu - metoda Bairstowa autorstwa Farhada Mazlumi