Algoritm Bairstow
În matematică , în special în analiza numerică , metoda lui Bairstow este un algoritm eficient pentru găsirea rădăcinilor unui polinom real de grad arbitrar. Primul algoritm a apărut ca o apendice la cartea lui Leonard Bairstow, Aerodinamica aplicată , publicată în 1920 . Algoritmul localizează rădăcinile în perechi conjugate complexe folosind doar aritmetică reală.
Descrierea metodei
Abordarea lui Bairstow constă în aplicarea metodei tangente pentru a modifica coeficienții Și în ecuația de gradul doi până când rădăcinile acestei ecuații coincid cu rădăcinile polinomului de rezolvat. Rădăcinile ecuației pot fi apoi ușor calculate și polinomul inițial poate fi împărțit la polinomul de gradul doi pentru a elimina acele rădăcini. Acest proces este apoi iterat pentru a găsi toate celelalte rădăcini ale polinomului de pornire.
Prin împărțirea polinomului care trebuie luat în considerare,
pentru , veți obține un coeficient și o odihnă astfel încât
Apoi se împarte pentru , obținerea unui coeficient și o odihnă cu
Variabilele , si sunt funcții ale Și . Acestea pot fi calculate recursiv după cum urmează:
Polinomul pătratic se divide de sine
Puteți găsi valori de Și care satisfac aceste condiții luând valori de pornire și iterând metoda lui Newton în două dimensiuni
până când metoda converge.
Această metodă de găsire a zerourilor polinoamelor poate fi ușor implementată cu un limbaj de programare sau cu o foaie de calcul.
Exemplu
Determinați rădăcinile polinomului Ca primul polinom pătratic puteți alege polinomul normalizat format din primii trei coeficienți ai .
Iterația produce valorile
Nr | tu | v | lungimea pasului | rădăcini |
---|---|---|---|---|
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,333333333330 |
8 | 3.333333333333 | 1.000000000000 | 0,000000000000 | -1,666666666667 ± 1,333333333333 |
După opt iterații, metoda a produs un polinom pătratic cu rădăcini cu care în figurile reprezentate coincid Și . Lungimea pașilor care urmează a patra iterație arată că viteza de convergență este mai mult decât liniară.
Elemente conexe
linkuri externe
- Algoritmul lui Bairstow pe Mathworld , la mathworld.wolfram.com .
- Rețete numerice în Fortran 77 online , la library.lanl.gov .
- Exemplu de rezolvare a rădăcinilor polinomiale (deg (P) ≤10) folosind metoda Bairstow , la polarhome.com:793 . Adus la 27 iulie 2012 (arhivat din original la 3 iulie 2007) .
- LinBairstowSolve, o implementare open source C ++ a metodei Lin-Bairstow disponibilă ca metodă a bibliotecii VTK , la vtk.org .
- Descoperirea online a rădăcinii unui polinom - metoda lui Bairstow de către Farhad Mazlumi