Bairstowsova metoda - Bairstows method - Wikipedia

v numerická analýza, Bairstowova metoda je efektivní algoritmus pro nalezení kořeny skutečné polynomiální libovolného stupně. Algoritmus se poprvé objevil v příloze knihy z roku 1920 Aplikovaná aerodynamika podle Leonard Bairstow.[1][není nutný primární zdroj ] Algoritmus najde kořeny komplexní konjugát páry využívající pouze skutečnou aritmetiku.

Vidět algoritmus hledání kořenů pro další algoritmy.

Popis metody

Přístup společnosti Bairstow je použít Newtonova metoda upravit koeficienty u a proti v kvadratický dokud jeho kořeny nejsou také kořeny řešeného polynomu. Poté lze určit kořeny kvadratu a polynom lze rozdělit kvadratem, aby se tyto kořeny vyloučily. Tento proces je poté iterován, dokud se polynom nestane kvadratickým nebo lineárním, a nebyly stanoveny všechny kořeny.

Dlouhé dělení polynomu, který má být vyřešen

podle získá kvocient a zbytek takhle

Druhá divize podle se provádí, aby se získal kvocient a zbytek s

Proměnné a jsou funkce a . Lze je najít rekurzivně následujícím způsobem.

Kvadratik rovnoměrně rozděluje polynom, když

Hodnoty a pro které k tomu dojde, lze zjistit výběrem počátečních hodnot a iterací Newtonovy metody ve dvou dimenzích

dokud nedojde ke konvergenci. Tuto metodu pro nalezení nul polynomů lze tedy snadno implementovat pomocí programovacího jazyka nebo dokonce tabulky.

Příklad

Úkolem je určit dvojici kořenů polynomu

Jako první kvadratický polynom lze zvolit normalizovaný polynom vytvořený z předních tří koeficientů F(X),

Iterace pak vytvoří tabulku

Iterační kroky Bairstowovy metody
Čuprotidélka krokukořeny
01.833333333333−5.5000000000005.579008780071−0.916666666667±2.517990821623
12.979026068546−0.0398967844382.048558558641−1.489513034273±1.502845921479
23.6353060530911.9006930099461.799922838287−1.817653026545±1.184554563945
33.0649380397610.1935308755381.256481376254−1.532469019881±1.467968126819
43.4618341912321.3856797311010.428931413521−1.730917095616±1.269013105052
53.3262443865650.9787429271920.022431883898−1.663122193282±1.336874153612
63.3333409093511.0000227011470.000023931927−1.666670454676±1.333329555414
73.3333333333401.0000000000200.000000000021−1.666666666670±1.333333333330
83.3333333333331.0000000000000.000000000000−1.666666666667±1.333333333333

Po osmi iteracích způsobila metoda kvadratický faktor, který obsahuje kořeny −1/3 a −3 v rámci zobrazené přesnosti. Délka kroku od čtvrté iterace ukazuje superlineární rychlost konvergence.

Výkon

Bairstowův algoritmus zdědí lokální kvadratickou konvergenci Newtonovy metody, s výjimkou případu kvadratických faktorů multiplicity vyšších než 1, kdy je konvergence k tomuto faktoru lineární. Zvláštní druh nestability lze pozorovat, když má polynom lichý stupeň a pouze jeden skutečný kořen. Kvadratické faktory, které mají v tomto skutečném kořenu malou hodnotu, se obvykle rozcházejí do nekonečna.

Bairstow-fractal 1 0 0 0 0 m1 scale 03.pngBairstow-fraktál 1 0 0 0 0 m1 0 stupnice 3.pngBairstow-fractal 6 11 m33 m33 11 6 scale 03.png

Obrázky představují dvojice . Body v horní polovině roviny t > 0 odpovídá lineárnímu faktoru s kořeny , to je . Body v dolní polovině roviny t <0 odpovídá kvadratickým faktorům s kořeny , to znamená, , tedy obecně . Body jsou vybarveny podle posledního bodu iterace Bairstowa, černé body označují odlišné chování.

První obrázek je ukázkou jediného skutečného kořenového případu. Druhý naznačuje, že lze napravit odlišné chování zavedením dalšího skutečného kořene za cenu zpomalení rychlosti konvergence. Lze také v případě lichých stupňů polynomů nejprve najít skutečný kořen pomocí Newtonovy metody a / nebo metody zmenšování intervalů, takže po deflaci zůstane lépe vychovaný sudý polynom. Třetí obrázek odpovídá výše uvedenému příkladu.

Odkaz

  1. ^ Bairstow, Leonard (1920). „Dodatek: Řešení algebraických rovnic s numerickými koeficienty v případě, že existuje několik párů komplexních kořenů“. Aplikovaná aerodynamika. London: Longmans, Green and Company. str. 551–560.

externí odkazy