1 Dragi polinom, kje so tvoje ničle? Vito Vitrih FAMNIT - Izlet v matematično vesolje 17. december 2010
Polinomi: 2 Polinom stopnje n je funkcija p(x) = a n x n + a n 1 x n 1 +... + a 1 x + a 0, a i R.
Polinomi: 2 Polinom stopnje n je funkcija p(x) = a n x n + a n 1 x n 1 +... + a 1 x + a 0, a i R. Zgledi: p(x) = a 0 p(x) = a 1 x + a 0 p(x) = a 2 x 2 + a 1 x + a 0 konstantna funkcija, premica, parabola.
Polinomi: 3 Polinomi so najenostavnejše nelinearne funkcije: preprosto odvajanje (odvod polinoma je polinom), preprosto integriranje (integral polinoma je polinom), preprost izračun vrednosti polinoma v neki točki Hornerjev algoritem: p(x) = (... ((a n x + a n 1 ) x + a n 2 ) x +... + a 1 ) x + a 0.
Polinomi: Fundamentalni izrek algebre: Polinom stopnje n z realnimi koeficienti ima natanko n ničel v C.
Polinomi: Fundamentalni izrek algebre: Polinom stopnje n z realnimi koeficienti ima natanko n ničel v C. Izrek: Kompleksne ničle nastopajo v konjugiranih parih (jih je vedno sodo mnogo).
Polinomi: 4 Fundamentalni izrek algebre: Polinom stopnje n z realnimi koeficienti ima natanko n ničel v C. Izrek: Kompleksne ničle nastopajo v konjugiranih parih (jih je vedno sodo mnogo). Posledica: Polinom lihe stopnje ima vsaj eno realno ničlo.
Kje so ničle polinoma? 5 Izrek [Descartes]: Število pozitivnih ničel polinoma je enako številu menjav predznakov v zaporedju neničelnih koeficientov polinoma, ali pa je enako temu številu minus nek večkratnik števila 2.
Kje so ničle polinoma? 5 Izrek [Descartes]: Število pozitivnih ničel polinoma je enako številu menjav predznakov v zaporedju neničelnih koeficientov polinoma, ali pa je enako temu številu minus nek večkratnik števila 2. Primer: p(x) = x 3 + x 2 x 1 = (x + 1) 2 (x 1).
Kje so ničle polinoma? 6 Naj bo p polinom s samimi enostavnimi ničlami. Definirajmo polinome: p 0 (x) := p(x), p 1 (x) := p (x), p 2 (x) := rem(p 0, p 1 ),..., p n (x) := rem(p n 2, p n 1 ), 0 = rem(p n 1, p n ). Polinomi p 0, p 1,..., p n tvorijo Sturmovo zaporedje.
Kje so ničle polinoma? 6 Naj bo p polinom s samimi enostavnimi ničlami. Definirajmo polinome: p 0 (x) := p(x), p 1 (x) := p (x), p 2 (x) := rem(p 0, p 1 ),..., p n (x) := rem(p n 2, p n 1 ), 0 = rem(p n 1, p n ). Polinomi p 0, p 1,..., p n tvorijo Sturmovo zaporedje. Izrek [Sturm]: Naj σ(ξ) označuje število menjav predznakov v zaporedju p 0 (ξ), p 1 (ξ),..., p n (ξ). Število različnih realnih ničel polinoma p na intervalu (a, b] je enako σ(a) σ(b).
Kje so ničle polinoma? Primer: p(x) = x(x 1)(x 2) = x 3 3x 2 + 2x, I = (0, 2]. p 0 = x 3 3x 2 + 2x p 1 = 3x 2 6x + 2 p 2 = 2 3 x 2 3 p 3 = 1
Kje so ničle polinoma? Primer: p(x) = x(x 1)(x 2) = x 3 3x 2 + 2x, I = (0, 2]. p 0 = x 3 3x 2 + 2x p 1 = 3x 2 6x + 2 p 2 = 2 3 x 2 3 p 3 = 1 p 0 (0) = 0, p 1 (0) = 2, p 2 (0) = 2 3, p 3(0) = 1. p 0 (2) = 0, p 1 (2) = 2, p 2 (2) = 2 3, p 3(2) = 1. σ(0) σ(2) = 2.
Kje so ničle polinoma? 8 Ničle polinoma stopnje 1: a 1 x + a 0 = 0 x = a 0 a 1 ničla je realna
Kje so ničle polinoma? 8 Ničle polinoma stopnje 1: a 1 x + a 0 = 0 x = a 0 a 1 ničla je realna Ničle polinoma stopnje 2: a 2 x 2 + a 1 x + a 0 = 0 x 1,2 = a 1± a 2 1 4a 0a 2 2a 2 obe ničli sta realni ali pa obe kompleksni
Kje so ničle polinoma? Cardano 9 Ničle polinoma stopnje 3: a 3 x 3 + a 2 x 2 + a 1 x + a 0 = 0 x 3 + a 2 x 2 + a 1 x + a 0 = 0 substitucija: t = x + a 2 3 t 3 + pt + q = 0 vstavimo t = u + v, v = p 3u u 3 in v 3 sta ničli enačbe z 2 + qz p3 27 = 0 imamo 3 realne ničle ali 1 realno in 2 kompleksni ničli
Kje so ničle polinoma? Ferrari 10 Ničle polinoma stopnje 4: x 4 + a 3 x 3 + a 2 x 2 + a 1 x + a 0 = 0 imamo 4, 2 ali 0 realnih ničel substitucija: t = x + a 3 4 t 4 + αt 2 + βt + γ = 0 prištejemo tej enačbi enakosti (t 2 + α) 2 t 4 2αt 2 = α 2 (t 2 + α + y) 2 (t 2 + α) 2 = (α + 2y)t 2 + 2yα + y 2 αt 2
Kje so ničle polinoma? Ferrari Dobimo: (t 2 + α + y) 2 = (α + 2y)t 2 βt + (2yα + y 2 + α 2 γ) (1) Želimo, da je desna stran popolni kvadrat in to določa y: Dobimo kubično enačbo za y, ki jo znamo rešiti y 3 + 5 ( α 2 αy 2 + (2α 2 3 γ)y + 2 αγ ) 2 β2 = 0. 8 Vzamemo poljubno rešitev za y in tako nam enakost (1) da dve kvadratni enačbi za t. Torej: imamo 4 rešitve za t 4 rešitve za x.
Kje so ničle polinoma? 12 Ničle polinoma stopnje več kot 4: Se v splošnem ne dajo izračunati z osnovnimi operacijami +,,, /,.
Kje so ničle polinoma? 12 Ničle polinoma stopnje več kot 4: Se v splošnem ne dajo izračunati z osnovnimi operacijami +,,, /,. V praktičnih aplikacijah smo običajno zadovoljni, če uspemo ničle poiskati dovolj natančno (poiskati dober približek).
Kje so ničle polinoma? 12 Ničle polinoma stopnje več kot 4: Se v splošnem ne dajo izračunati z osnovnimi operacijami +,,, /,. V praktičnih aplikacijah smo običajno zadovoljni, če uspemo ničle poiskati dovolj natančno (poiskati dober približek). Uporabljamo NUMERIČNE METODE.
13 Slika: Druga polovica 19. stoletja
Slika: Prva polovica 20. stoletja
15 Metode: bisekcija metoda regula falsi navadna iteracija tangentna metoda sekantna metoda Müllerjeva metoda
15 Metode: bisekcija metoda regula falsi navadna iteracija tangentna metoda sekantna metoda Müllerjeva metoda Te metode delujejo tudi za iskanje ničel bolj splošnih nelinearnih funkcij.
16 Bisekcija: Izrek: Izbrati moramo začetni interval [a, b], kjer je funkcija (polinom) v krajiščih različno predznačena. Če je f zvezna funkcija na [a, b] in velja f (a) f (b) < 0, potem obstaja ξ (a, b), tako da je f (ξ) = 0.
Bisekcija: Izrek: Izbrati moramo začetni interval [a, b], kjer je funkcija (polinom) v krajiščih različno predznačena. Če je f zvezna funkcija na [a, b] in velja f (a) f (b) < 0, potem obstaja ξ (a, b), tako da je f (ξ) = 0. Postopek: c := a+b 2 če je f (a)f (c) > 0, potem za novi a vzamemo a := c, sicer za novi b vzamemo b := c to ponavljamo, dokler interval [a, b] ni dovolj majhen rezultat je sredina zadnjega intervala 16
6 4 2 a c b 6 4 2 2 4 6 8 2 4 6
18 Slabosti: Metoda odpove pri ničlah sode stopnje. Na primer za funkcijo f (x) = x 2. Najde le eno ničlo na [a, b] (ne moremo vnaprej povedati katero). konvergenca je linearna (kar pomeni dokaj počasna).
18 Slabosti: Metoda odpove pri ničlah sode stopnje. Na primer za funkcijo f (x) = x 2. Najde le eno ničlo na [a, b] (ne moremo vnaprej povedati katero). konvergenca je linearna (kar pomeni dokaj počasna). Prednosti: Če začetni interval pravilno izberemo, potem je konvergenca zagotovljena.
19 Metoda Regula falsi: Ponovno moramo izbrati začetni interval [a, b], kjer je funkcija v krajiščih različno predznačena. Postopek: c := b f (b) b a f (b) f (a) če je f (a)f (c) > 0, potem za novi a vzamemo a := c, sicer za novi b vzamemo b := c to ponavljamo, dokler interval [a, b] ni dovolj majhen rezultat je sredina zadnjega intervala
Metoda Regula falsi: Ponovno moramo izbrati začetni interval [a, b], kjer je funkcija v krajiščih različno predznačena. Postopek: c := b f (b) b a f (b) f (a) če je f (a)f (c) > 0, potem za novi a vzamemo a := c, sicer za novi b vzamemo b := c to ponavljamo, dokler interval [a, b] ni dovolj majhen rezultat je sredina zadnjega intervala Lastnosti: podobne kot pri bisekciji. 19
0.5 Numerične metode: 20 0.5 1.0 1.5 2.0 2.5 6 4 2 a c b 6 4 2 2 4 6 8 2 4 6
21 Navadna iteracija (metoda negibne točke): Namesto ničle funkcije f iščemo negibno točko iteracijske funkcije g.
21 Navadna iteracija (metoda negibne točke): Namesto ničle funkcije f iščemo negibno točko iteracijske funkcije g. Veljati mora: f (x) = 0 g(x) = x.
21 Navadna iteracija (metoda negibne točke): Namesto ničle funkcije f iščemo negibno točko iteracijske funkcije g. Veljati mora: f (x) = 0 g(x) = x. Primer: f (x) = x 3 5x, g 1 (x) = x 3 5, g 2(x) = 3 5x.
Kako poiščemo negibno točko funkcije g?
Kako poiščemo negibno točko funkcije g? Izberemo si nek x 0 (začetni približek). Izvajamo iteracijo x r+1 = g(x r ), r = 0, 1,.... Iteracijo izvajamo dokler velja x r+1 x r > ε. Zaporedje x 0, x 1,... lahko konvergira proti neki negibni točki ali pa tudi ne. Z izbiro začetnega približka lahko deloma vplivamo na to, h kateri negibni točki bo zaporedje konvergiralo. Če na nekem intervalu [a, b] (ki vsebuje negibno točko) za vsak x [a, b] velja g (x) < 1, potem naše zaporedje zagotovo skonvergira k negibni točki.
23 2.5 2.0 1.5 1.0 0.5 0.5 1.0 1.5 2.0 2.5 6
Tangentna metoda: Če za iteracijsko funkcijo vzamemo g(x) = x f (x) f (x), potem jo imenujemo tangentna metoda. Iteracija: izberemo x 0, x r+1 = x r f (x r ) f, r = 0, 1,... (x r )
25 100 50 x r 1 x r 2 2 4 6 8 10 12
26 Slabosti: Metoda ne konvergira za vsak x 0. Poznati moramo tudi odvod funkcije.
26 Slabosti: Metoda ne konvergira za vsak x 0. Poznati moramo tudi odvod funkcije. Prednosti: Konvergenca je v bližini ničle kvadratična (precej boljša od bisekcije in metode regula falsi).
Sekantna metoda: Namesto tangente v točki (x r, f (x r )) vzamemo sekanto skozi točki (x r 1, f (x r 1 )) in (x r, f (x r )). V prvem koraku moramo izbrati dva začetna približka x 0 in x 1.
Sekantna metoda: Namesto tangente v točki (x r, f (x r )) vzamemo sekanto skozi točki (x r 1, f (x r 1 )) in (x r, f (x r )). V prvem koraku moramo izbrati dva začetna približka x 0 in x 1. Lastnosti: Metoda ne konvergira za poljubna x 0 in x 1. Konvergenca je malce počasnejša kot pri tangentni metodi (je superlinearna). V primerjavi s tangentno metodo tukaj ne potrebujemo odvodov.
28 100 80 60 40 20 2 2 4 6 8 10 20 x r 1 x r x r 1 6
29 Müllerjeva metoda: Potrebujemo tri začetne približke x 0, x 1 in x 2. Skozi točke (x r 2, f (x r 2 )), (x r 1, f (x r 1 )) in (x r, f (x r )) napeljemo parabolo. Za nov približek x r+1 vzamemo tisto ničlo parabole, ki je bližje zadnjemu približku. Ker ima parabola lahko tudi kompleksne ničle, so ti približki lahko tudi kompleksni.
29 Müllerjeva metoda: Potrebujemo tri začetne približke x 0, x 1 in x 2. Skozi točke (x r 2, f (x r 2 )), (x r 1, f (x r 1 )) in (x r, f (x r )) napeljemo parabolo. Za nov približek x r+1 vzamemo tisto ničlo parabole, ki je bližje zadnjemu približku. Ker ima parabola lahko tudi kompleksne ničle, so ti približki lahko tudi kompleksni. Metodo uporabljamo za iskanje kompleksnih ničel.
30 5 4 3 2 1 3 4 5 6 1 x 3 x 2 x 1 x 0
31 Poglejmo na kratko še nekaj metod, ki so posebej prirejene za delo s polinomi Laguerrova metoda Durand-Kernerjeva metoda Aberth-Ehrlichova metoda
32 Laguerrova metoda: Ponavljamo postopek: S 1 = p (z r ) p(z r ) S 2 = p (z r ) 2 p(z r )p (z r ) p(z r ) 2 n z r+1 = z r S 1 ± (n 1)(nS 2 S1 2)
33 Lastnosti: Če ima polinom p same realne ničle, potem je zagotovljena konvergenca k najbližji ničli za poljuben začetni približek z 0. Hitrost konvergence je kubična (hitreje kot tangentna metoda). Deluje tudi za kompleksne ničle.
34 Durand-Kernerjeva metoda: Metoda, ki naenkrat izračuna vse ničle polinoma!
34 Durand-Kernerjeva metoda: Metoda, ki naenkrat izračuna vse ničle polinoma! p(z) = (z α 1 )(z α 2 ) (z α n ). Naj bodo z 1, z 2,..., z n približki za ničle α 1, α 2,..., α n. Iščemo popravke z 1, z 2,..., z n, da bodo z 1 + z 1, z 2 + z 2,..., z n + z n prave ničle. Torej: (z (z 1 + z 1 )) (z (z n + z n )) = p(z).
34 Durand-Kernerjeva metoda: Metoda, ki naenkrat izračuna vse ničle polinoma! p(z) = (z α 1 )(z α 2 ) (z α n ). Naj bodo z 1, z 2,..., z n približki za ničle α 1, α 2,..., α n. Iščemo popravke z 1, z 2,..., z n, da bodo z 1 + z 1, z 2 + z 2,..., z n + z n prave ničle. Torej: (z (z 1 + z 1 )) (z (z n + z n )) = p(z). Uredimo po členih z i : n n p(z) = (z z j ) z j j=1 j=1 n (z z k )+ k=1 k j n z j z k j,k=1 j k n (z z l )+... l=1 l j,k
35 Če zanemarimo kvadratne in višje člene, bodo z i le približni popravki. Vstavimo še z = z i : n n p(z i ) = (z i z j ) z j j=1 j=1 n n (z i z k ) = z i (z i z k ), k=1 k j k=1 k i oziroma z i = p(z i ) n k=1 (z i z k ). k i
35 Če zanemarimo kvadratne in višje člene, bodo z i le približni popravki. Vstavimo še z = z i : n n p(z i ) = (z i z j ) z j j=1 j=1 n n (z i z k ) = z i (z i z k ), k=1 k j k=1 k i z (r+1) i oziroma Metoda: = z (r) i n k=1 k i p(z i ) z i = n k=1 (z i z k ). k i ( p z (r) i ( z (r) i ) ), i = 1, 2,..., n, r = 0, 1,... z (r) k
36 Lastnosti: Konvergenca v bližini ničel je kvadratična. Metoda konvergira skoraj za vsak začetni približek z (0) (le vse komponente vektorja z (0) morajo biti različne). Za komponente vektorja z (0) izberemo kar naključnih n kompleksnih števil.
Aberth-Ehrlichova metoda: Durand-Kernerjevo metodo lahko izboljšamo do kubične konvergence. Označimo p(z) R i (z) = n, i = 1, 2,..., n. k=1 (z z k ) k i Uporabimo tangentno metodo na funkciji R i (z) v točki z i : Metoda: z i = z i = R i(z) R i i = 1, 2,..., n. (z), p(z i ) n k=1 k i p(z i ) i = 1, 2,..., n. 1 z i z k p (z i ), 37
HVALA!