Citlivost kořenů polynomů Michal Šmerek Univerzita obrany v Brně, Fakulta ekonomiky a managementu, Katedra ekonometrie Abstrakt Článek se zabývá studiem citlivosti kořenů na malou změnu polynomu. Je všeobecně známo, jak získat kořeny polynomů, jak je získat s předepsanou přesností. Méně se ale klade důraz na přesné určení polynomu, resp. jeho koeficientů. Práce dokládá, že i malá nepřesnost, byť i jen v jednom koeficientu polynomu, může významným způsobem ovlivnit hodnoty kořenů. Je zde popsána závislost změny kořenů na malé změně některého z koeficientů polynomu. V souvislosti s tím je definován pojem špatně podmíněný polynom. 1 Úvod Problém řešení algebraických rovnic se může zdát zcela vyřešený. Známe algoritmy pro určení všech kořenů libovolného polynomu. Přesto i v této problematice existují dosud nepříliš probádané oblasti. Zájemcům o základní studium numerické matematiky lze doporučit publikace [1, 2, 4, 5, 11]. Příspěvek se zabývá problematikou špatně podmíněných polynomů, tj. polynomů, u nichž malá změna některého z koeficientů vede k velké změně v kořenech. Tomuto speciálnímu tématu se věnují práce [1, 3, 4, 6, 7, 10, 12]. 2 Podmíněnost polynomů Uvažujme polynom p stupně n 2 s reálnými koeficienty tvaru p(x) = a n x n + a n 1 x n 1 + + a 1 x + a 0. (1) Označme kořeny polynomu (1) ξ i, pro i = 1, 2,..., n. Platí tedy p(ξ i ) = 0, pro i = 1, 2,..., n. Budeme se zabývat tím, jak se změní kořeny polynomu, pokud se polynom (1) mírně změní. Budeme určovat kořeny polynomu p(x) + δp(x) p(x) + δa r x r, r = 0, 1, 2,..., n, (2) tj. uvažujeme pouze změnu koeficientu u mocniny x r, a to z a r na a r +δa r. Označíme-li δξ i změnu kořene ξ i při přechodu od polynomu (1) k polynomu (2), platí Odtud můžeme vyjádřit kde přibližný vztah je platný za podmínky δξ i ξ i. Taylorův rozvoj funkce p(x) v bodě x = ξ i je p(ξ i + δξ i ) + δa r (ξ i + δξ i ) r = 0. (3) p(ξ i + δξ i ) = δa r (ξ i + δξ i ) r = δar ξ r i, (4) p(ξ i + δξ i ) = p(ξ i ) + p (ξ (ξ i )δξ i + p i ) (δξ i ) 2 +. (5) 2! Platí p(ξ i ) = 0. Pokud ξ i je jednoduchý kořen, platí také p (ξ i ) 0. Jestliže δξ i 1, můžeme ostatní členy Taylorova rozvoje (5) zanedbat. Nyní, odtud porovnáním se vztahem (4) získáme vyjádření změny δξ i jednoduchého kořene ξ i δξ i = ξr i p (ξ i ) δa r. (6) Pokud u nějakého polynomu malá změna koeficientu (změna na vstupu) způsobí mnohem větší změnu jeho kořenů (změna na výstupu), nazýváme takový polynom špatně podmíněným polynomem. Vyjádřeme podíl absolutní změny δξ j kořene ξ j a absolutní změny δa r koeficientu a r. Tento podíl budeme nazývat absolutní koeficient podmíněnosti a označovat C jr. Tedy C jr = δξ j δa r pro j = 1, 2,..., n a r = 0, 1,..., n. (7)
Pro jednoduchý kořen, ze vztahu (6), platí ξr j C jr = δξ j = δa r p (ξ j ) pro j = 1, 2,..., n a r = 0, 1,..., n. (8) Podmíněnost polynomu lze definovat také jako podíl relativní změny na výstupu a relativní změny na vstupu. K tomu účelu definujme koeficient podmíněnosti k ir jakožto podíl relativní změny kořene ξ i (i = 1, 2,..., n) a relativní změny koeficientu a r (r = 0, 1,..., n), tzn. k ir = δξ i ξ i δa r pro i = 1, 2,..., n a r = 0, 1,..., n. (9) a r Vezmeme-li v úvahu vztah (6), můžeme (pro jednoduchý kořen) psát k ir = ξr 1 i p (ξ i ) a r pro i = 1, 2,..., n a r = 0, 1,..., n. (10) Číslo podmíněnosti C p polynomu definujeme jako maximum z absolutních hodnot všech koeficientů podmíněnosti, tj. C p = max k ir. (11) i,r Pomocí čísla podmíněnosti můžeme definovat špatně podmíněný polynom jako polynom, jehož číslo podmíněnosti je mnohem větší než jedna, tj. C p 1. Poznámka: Pojmy absolutní koeficient podmíněnosti, koeficient podmíněnosti a číslo podmíněnosti, i s použitým označením, byly poprvé užity autorem v pracech [8, 9]. 3 Příklady polynomů druhého stupně Příklad 1 Uvažujme jednoduchý polynom p(x) = x 2 3x + 2. (12) Jeho kořeny jsou ξ 1 = 1 a ξ 2 = 2, viz obr. 1. Prozkoumejme, jak bude vypadat polynom (12) a jeho kořeny, pokud změníme postupně všechny jeho koeficienty o hodnotu +0,1 resp. 0,1. Na obrázku 2 jsou grafy polynomů Obrázek 3 znázorňuje polynomy a obrázek 4 zobrazuje polynomy p + 0 (x) = x2 3x + 2,1 a p 0 (x) = x2 3x + 1,9. p + 1 (x) = x2 2,9x + 2 a p 1 (x) = x2 3,1x + 2 p + 2 (x) = 1,1x2 3x + 2 a p 2 (x) = 0,9x2 3x + 2. Vypočítejme kořeny takových polynomů a odchylky těchto kořenů od původních kořenů. Jejich přibližné hodnoty u všech těchto polynomů uvádí tabulka 1. Podobně můžeme uvažovat i změnu polynomu (12) např. desetkrát menší, tj. změnu koeficientu a r (r = 0, 1, 2) o hodnotu +0,01; resp. 0,01; viz tabulka 2. Aplikací vzorce (6) pro polynom (12) získáme ξr i δξ i = 2ξ i 3 δa r, pro i = 1, 2, r = 0, 1, 2. (13)
Obr. 1: p(x) = x 2 3x + 2 Obr. 2: δa 0 = ±0,1 Obr. 3: δa 1 = ±0,1 Obr. 4: δa 2 = ±0,1 Konkrétně 1r δξ 1 = 2 1 3 δa r = δa r, pro r = 0, 1, 2 ; (14) δa 0 δξ 2 = 2r 2 2 3 δa r = 2 r δa r = 2δa 1. (15) 4δa 2 Pro změnu δa 0 = ±0,1 dostáváme změny kořenů δξ 1 = ±0,1 a δξ 2 = 0,1. Podobně pro δa 1 = ±0,1 je δξ 1 = ±0,1 a δξ 2 = 0,2; resp. pro δa 2 = ±0,1 je δξ 1 = ±0,1 a δξ 2 = 0,4. Změně δa r = ±0,01 odpovídá změna kořenů úměrně menší. Není bez zajímavosti srovnání těchto teoretických výsledků (jejich první aproximace) s empirickými, viz srovnání výsledků (14) a (15) pro δa r = ±0,1; resp. δa r = ±0,01; s údaji v tabulce 1, resp. s údaji v tabulce 2. Ze vztahu (10) můžeme určit koeficienty podmíněnosti k ir pro i = 1, 2, r = 0, 1, 2 (viz tabulka 3). Číslo podmíněnosti je potom C p = 3, tzn. polynom (12) je dobře podmíněným polynomem. Příklad 2 Mějme polynom p(x) = x 2 201x + 10100, (16)
p(x) ξ 1 ξ 2 δξ 1 δξ 2 x 2 3x + 2 1 2 x 2 3x + 2, 1 1, 1127 1, 8873 0, 1127 0, 1127 x 2 3x + 1, 9 0, 9084 2, 0916 0, 0916 0, 0916 x 2 2, 9x + 2 1, 1298 1, 7702 0, 1298 0, 2298 x 2 3, 1x + 2 0, 9156 2, 1844 0, 0844 0, 1844 1, 1x 2 3x + 2 1, 1604 1, 5669 0, 1604 0, 4331 0, 9x 2 3x + 2 0, 9213 2, 4120 0, 0787 0, 4120 Tab. 1: Hodnoty kořenů a změn kořenů pro δa r = ±0,1 p(x) ξ 1 ξ 2 δξ 1 δξ 2 x 2 3x + 2 1 2 x 2 3x + 2, 01 1, 0101 1, 9899 0, 0101 0, 0101 x 2 3x + 1, 99 0, 9901 2, 0099 0, 0089 0, 0099 x 2 2, 99x + 2 1, 0102 1, 9798 0, 0102 0, 0202 x 2 3, 01x + 2 0, 9902 2, 0198 0, 0098 0, 0198 1, 01x 2 3x + 2 1, 0103 1, 9600 0, 0103 0, 0400 0, 99x 2 3x + 2 0, 9903 2, 0400 0, 0097 0, 0400 Tab. 2: Hodnoty kořenů a změn kořenů pro δa r = ±0,01 i/r 0 1 2 1 2 3 1 2 1 3 2 Tab. 3: Koeficienty podmíněnosti k ir pro polynom p(x) = x 2 3x + 2 viz obrázek 5. Jeho kořeny, ξ 1 = 100 a ξ 2 = 101, se liší opět o jedničku (jako v příkladu 1), jen jsou mnohem větší. Prozkoumejme, jak bude vypadat polynom (16) a jeho kořeny, pokud postupně nepatrně změníme všechny jeho koeficienty. Tyto změněné polynomy jsou graficky znázorněné na obrázcích 6, 7 a 8. V tabulce 4 jsou vypočteny koeficienty podmíněnosti k ir. Z tabulky můžeme zjistit hodnotu čísla podmíněnosti polynomu (16), C p = 201, a tudíž polynom (16) považujeme za špatně podmíněný polynom. i/r 0 1 2 1 101 201 100 2 100 201 101 Tab. 4: Koeficienty podmíněnosti k ir pro polynom p(x) = x 2 201x + 10100 i/r 0 1 2 1 151 301 150 2 150 301 151 Tab. 5: Koeficienty podmíněnosti k ir pro polynom p(x) = x 2 3, 01x + 2, 265 Příklad 3 Zkoumejme polynom p(x) = x 2 3,01x + 2,265. (17) Jeho kořeny, ξ 1 = 1,5 a ξ 2 = 1,51, jsou na rozdíl od příkladu 1 vzájemně mnohem bližší. Koeficienty podmíněnosti k ir jsou uvedeny v tabulce 5.
Obr. 5: p(x) = x 2 201x + 10100 Obr. 6: δa 0 = ±10 1 Obr. 7: δa 1 = ±10 3 Obr. 8: δa 2 = ±10 5 Z tabulky můžeme odečíst hodnotu čísla podmíněnosti polynomu (17), C p = 301, a tedy polynom (17) je špatně podmíněným polynomem. 4 Polynom vyššího stupně V následujícím příkladu budeme studovat podmíněnost polynomu osmého stupně. Příklad 4 Mějme polynom p(x) = 8 (x i) = x 8 36x 7 + 546x 6 4536x 5 + 22449x 4 + i=1 67284x 3 + 118124x 2 109584x + 40320. (18) Je to polynom osmého stupně s kořeny ξ 1 = 1, ξ 2 = 2,..., ξ 8 = 8, viz obr. 9. Pro vyjádření změn δξ j (viz vztah (6)) kořenů ξ j, j = 1, 2,..., 8, polynomu (18) si nejdříve vyjádříme hodnoty p (ξ j ), j = 1, 2,..., 8.
Obr. 9: Polynomy p, p 1, p 2 Obecně pro každý polynom s kořeny ξ 1, ξ 2,..., ξ n platí n p (x) = ξ i ), x R. i j(x j=1 Proto p (ξ j ) = i j(ξ j ξ i ), pro j = 1, 2,..., n, a konkrétně pro polynom (18) dostáváme p (ξ) = ( 1) ξ (ξ 1)!(8 ξ)! pro ξ = 1, 2,..., 8. Proto vztah (6) dává pro kořen ξ j, j = 1, 2,..., 8, polynomu (18) změnu ξ r j δξ j = ( 1) ξj 1 (ξ j 1)!(8 ξ j )! δa r. (19) Odtud, anebo přímo ze vztahu (8), můžeme vyjádřit hodnoty absolutních koeficientů podmíněnosti C jr = δξ j = ( 1) ξj 1 δa r (ξ j 1)!(8 ξ j )! Tyto hodnoty jsou obsaženy v tabulce 6. (Pouze z důvodu úspory místa jsou v tabulce zobrazeny absolutní koeficienty podmíněnosti C jr jen pro r = 0, 1, 3, 5, 7, 8.) ξ r j
j/r 0 1 3 5 7 8 1 0,0002 0,0002 0,0002 0,0002 0,0002 0,0002 2-0,0014-0,0028-0,0111-0,0444-0,1778-0,3556 3 0,0042 0,0125 0,1125 1,0125 9,1125 27,3375 4-0,0069-0,0278-0,4444-7,1111-113,7778-455,1111 5 0,0069 0,0347 0,8681 21,7014 542,5347 2712,6736 6-0,0042-0,0250-0,9000-32,4000-1166,4000-6998,4000 7 0,0014 0,0097 0,4764 23,3431 1143,8097 8006,6681 8-0,0002-0,0016-0,1016-6,5016-416,1016-3328,8127 Tab. 6: Absolutní koeficienty podmíněnosti C jr polynomu (18) j/r 0 1 3 5 7 8 1-8,000 21,743 13,350 0,900 0,007 0,000 2 28,000-152,200-373,800-100,800-3,200 0,178 3-56,000 456,600 2523,150 1530,900 109,350-9,113 4 70,000-761,000-7476,000-8064,000-1024,000 113,778 5-56,000 761,000 11681,250 19687,500 3906,250-542,535 6 28,000-456,600-10092,600-24494,400-6998,400 1166,400 7-8,000 152,200 4579,050 15126,300 5882,450-1143,810 8 1,000-21,743-854,400-3686,400-1872,457 416,102 Tab. 7: Koeficienty podmíněnosti k jr polynomu (18) Pokud vyčíslíme koeficienty podmíněnosti k jr podle vztahu (10), viz tabulka 7, snadno stanovíme číslo podmíněnosti C p polynomu (18), tj. C p = max j,r k jr = k 65 = 24494, 4. Polynom (18) je tedy špatně podmíněným polynomem. Uvažujme nyní dva další polynomy p 1 (x) = p(x) + 2.10 4 x 7, p 2 (x) = p(x) + 4.10 4 x 7, viz obrázek 9. Vzhledem k polynomu (18) se jedná pouze o relativně malou změnu v koeficientu a 7 (a 7 = 36, a tedy δa7 a 7 =. 5,6.10 6, resp. δa7 a 7 =. 1,1.10 5 ). Budeme se zajímat o to, jak se tato změna projeví na změně kořenů ξ j, j = 1, 2,..., 8. Tabulka 8 obsahuje aproximované hodnoty ξ j skutečných kořenů ξ j polynomů p 1 a p 2. Pro tyto hodnoty, viz vztah (7), platí ξ j (p i ) = ξ j (p) + C jr δa r (p i ), i = 1, 2, j = 1, 2,..., 8, r = 0, 1, 2,..., 8. Zde ξ j (p) značí kořeny polynomu p, δa r (p i ) značí změnu koeficientu a r polynomu p i a C jr jsou hodnoty absolutních koeficientů podmíněnosti. Srovnejme aproximované hodnoty ξ j (p i ), i = 1, 2, se skutečnými hodnotami kořenů ξ j (p 1 ) a ξ j (p 2 ) (viz tabulka 8). V případě polynomu p 1 je jeho změna vůči polynomu p natolik malá, že všechny kořeny zůstávají reálné a relativní chyba aproximovaných hodnot kořenů od skutečných hodnot je menší než 10 2. V případě polynomu p 2 je jeho změna vůči polynomu p již natolik závažná, že se dva kořeny změnily v komplexní.
j = ξ j (p) ξ j (p 1 ) ξ j (p 1 ) ξ j (p 2 ) ξ j (p 2 ) 1 1,0000 1,0000 1,0000 1,0000 2 2,0000 2,0000 1,9999 1,9999 3 3,0018 3,0018 3,0037 3,0036 4 3,9782 3,9772 3,9581 3,9545 5 5,1284 5,1085 5,4141 0,1151i 5,2170 6 5,7714 5,7667 5,4141 + 0,1151i 5,5334 7 7,2194 7,2288 7,5124 7,4575 8 7,9005 7,9168 7,6973 7,8336 Tab. 8: Skutečné hodnoty ξ j a aproximované hodnoty ξ j kořenů polynomů p 1 a p 2 5 Závěr V případě špatně podmíněných polynomů může i malá změna byť jen jednoho koeficientu způsobit velkou změnu v jeho kořenech. Je třeba mít toto na paměti při přibližném určování koeficientů polynomu, při jejich zaokrouhlování, apod. Domnívám se, že problematika špatně podmíněných polynomů může být vhodným tématem jako rozšiřující učivo i pro střední školy s rozšířenou výukou matematiky. Studium této problematiky umožní lépe si uvědomit krásu i záludnost polynomů. Literatura [1] BULIRSCH, R.; STOER, J. Introduction to Numerical Analysis. New York : Springer-Verlag, 1983. 604 s. ISBN 0-387-90420-4. [2] HOROVÁ, I. Numerické metody. 1. vyd. Brno : MU v Brně, 1999. 230 s. ISBN 80-210-2202-7. [3] ORTEGA, J. M.; RHEINBOLDT, W. C. Iterative Solution of Nonlinear Equations in Several Variables. New York : Academic Press, 1970. [4] RALSTON, A. Základy numerické matematiky. 1. vyd. Praha : Academia, 1973. 636 s. [5] ŠMEREK, M. Výpočet kořenů polynomu. In XIX. mezinárodní kolokvium o řízení osvojovacího procesu (sborník příspěvků). Vyškov : VVŠ PV, 2001. s. 399 402. ISBN 80-7231-071-2. [6] ŠMEREK, M. Špatně podmíněné polynomy. In XX. mezinárodní kolokvium o řízení osvojovacího procesu (sborník příspěvků). Vyškov : VVŠ PV, 2002. s. 421 423. ISBN 80-7231-090-9. [7] ŠMEREK, M. Citlivost polynomů a podmíněnost matic. XXI. mezinárodní kolokvium o řízení osvojovacího procesu : sborník abstraktů a elektronických verzí příspěvků na CD-ROMu. [CD-ROM]. Vyškov : VVŠ PV, 2003 [cit. 2003-05-22]. ISBN 80-7231-105-0. Adresář: /clanky/1sxmerem.pdf. [8] ŠMEREK, M. Citlivost kořenů polynomů. Učitel matematiky. 2005, roč. 13, č. 2, s. 100-108. ISSN 1210-9037. [9] ŠMEREK, M. Řešení nelineárních rovnic : závěrečná výzkumná zpráva projektu specifického výzkumu za rok 2004. Brno : Univerzita obrany, 2005. 11 s., 3 příl. [10] ŠMEREK, M. Numerické řešení nelineárních rovnic. Rigorózní práce. Brno : PřF MU, 2005. 58 s. [11] VITÁSEK, E. Numerické metody. Praha : SNTL, 1987. [12] WILKINSON, J. H. The evaluation of the zeros of ill-conditioned polynomials. Part I. Numerische Mathematik 1, 1959, vol. 1, s. 150 166.