Polynomial Root Isolation

Werbung
Polynomial Root Isolation
by
Michael Arnold
Allgemeines zu Polynomen
• Ein Polynom vom Grad n hat die Form
i
a
x
i0 i
n
• Es besitzt bei reellen Koeffizienten a0 ,.., an genau r reelle und 2s
komplexe Nullstellen und es gilt: r + 2s = deg(P(x))
• Die Nullstellen eines Polynoms bezeichnet man auch als dessen
“Wurzeln”
Was wollen wir machen?
• Wir wollen alle reellen Nullstellen in getrennte Intervalle auf der xAchse einschließen.
• Jedes Intervall darf also höchstens eine reelle Nullstelle enthalten.
 


Uspensky’s Algorithmus
• Benötigtes Theorem:
– Descartes rule of sign (Definition, Beweis, Folgerungen)
• Algorithmus:
– Nullstellenisolierung eines Polynoms für Nullstellen im Intervall (0,1)
– Terminierungsbeweis des Approximationsalgorithmus
– Verallgemeinerung des Algorithmus für alle reellen Nullstellen
Definition von V(P) und pos(P)
n
ai  Q
• Sei P( x)   ai x i ein Polynom mit reellen Koeffizienten
i 0
• Eine Vorzeichenvariation von P ist ein Paar i, j mit 0  i  j  n
so dass
a  ...  a  0
i 1
und
j 1
ai a j  0
• Mit V(P) bezeichnen wir die Anzahl der Vorzeichenvariationen von P
• Mit pos(P) bezeichnen wir die Anzahl der reellen Nullstellen von P.
Dabei zählen wir mehrfache Nullstellen auch mehrfach.
Descartes rule of sign
• Sei P ein Polynom mit reellen Koeffizienten. Dann ist V(P) - pos(P)
ein gerade natürliche Zahl.
• Folgerungen:
» Wenn V(P)=0
=>
pos(P)=0
» Wenn V(P)=1
=>
pos(P)=1
Nullstellenisolierung im Intervall (0,1)
• Sei P(x) ein Polynom mit reellen Koeffizienten und Grad n.
• Wir betrachten nun folgendes Polynom:
 1 
Q ( x)  (1  x) n P

1 x 
• Für x betrachten wir nun die Werte (0,  ).
• 1/(1+x) bildet für x aus (0, ) auf (0,1) ab.
• Mit (1+x)^n wird dafür gesorgt, dass Q(x) auch ein Polynom ist.
• =>Zu allen reellen positiven Nullstellen von Q(x) gehört eine reelle
Nullstelle von P(x) im Intervall (0,1)
Beispiele
P( x)  x 3  3 x 2  2 x  1
•
 1 
Q( x)  (1  x)3 P

1 x 
V(Q)=0 => Die Funktion hat keine Nullstellen im Intervall (0,1)
Beispiele
P( x)  ( x  0.5)( x  3)
•
 1 
Q( x)  (1  x) 2 P

1 x 
V(Q)=1 =>Die Funktion hat genau eine Nullstelle im Intervall (0,1)
Nullstellenisolierung im Intervall (0,1)
• Wenn V(Q)=1 oder V(Q)=0 ist, sind wir also fertig, weil wir wissen ob
es genau eine oder keine reelle Nullstelle im von uns untersuchten
Intervall existiert.
• Was passiert aber wenn V(Q)>1 ist?
• Angenommen V(Q)=2, dann könnte nach Descartes rule of sign
pos(Q) = 0 oder 2 sein !
• Wenn V(Q)=3, dann könnte pos(Q)= 1 oder 3 sein!
• Usw....
Nullstellenisolierung im Intervall (0,1)
• Wenn V(Q)>1 ist prüfen wir zuerst ob P(1/2)=0 ist.
• Ist das der Fall, haben wir ein isoliertes Intervall gefunden, in dem eine
reelle Nullstelle ist (nämlich [1/2,1/2]).
• Als nächstes berechnen wir P1(x) und P2(x) wie folgt:
 x
P1 ( x )  P 
2
 x 1
P2 ( x)  P

2


• Die reellen Wurzeln von P1(x) in (0,1) haben eine zugehörige Wurzel
bei P(x) in (0,1/2).
• Die reellen Wurzeln von P2(x) in (0,1) haben eine zugehörige Wurzel
bei P(x) in (1/2,1).
• => Wir wenden diese Methode nun rekursiv auf P1(x) und P2(x) an
und können somit unsere gewünschten Intervalle berechnen.
Terminiert der Algorithmus?
• Der Algorithmus terminiert, wenn das Polynom P(x) keine mehrfachen
Nullstellen aufweist, es sei denn diese Wurzeln sind von der Form
i
2k
• Mit i,k

und
1  i  2k
• In diesem Fall werden die Nullstellen vom Algorithmus direkt
gefunden.
Lemmata
•
•
•
•
i i 1
Wir suchen Schritt für Schritt die Wurzeln von P(x) im Intervall I   k , k 
2 2 
Es gilt: i,k   und 0  i  2 k
ix
Wir bilden (0,1) auf I ab, indem wir x auf
abbilden.
k
2
i x
Sei A(x)= P 2  und Q(x)= (1  x) n  1 
k
1 x 
• Lemma 1: Falls Q(x) keine Wurzeln innerhalb des Radius von 1/2
zentriert um den Punkt (1/2, 0) besitzt, so gilt V(Q(x))=0.
• Lemma 2: Falls Q(x) genau eine reelle Wurzel in (0,1) und keine
1
i

komplexe Wurzeln in den offenen Scheiben um die Punkte 2 2 3
besitz und durch den Ursprung gehen, (also Radius 13 haben,) dann ist
V(Q(x))=1.
Terminierungsbeweis
• Wenn Lemma 1 oder Lemma 2 erfüllt sind, folgt aus Descartes rule of
sign die Terminierung des Algorithmus.
• Wir müssen also zeigen, dass wenn das Intervall I klein genug ist, die
Bedingungen für eines der Lemmata auf jeden Fall erfüllt sind.
Terminierungsbeweis
• Sei   min{| 1   2 |:  i  C, P( i )  0, 1   2 }
• Falls
2 k 

gilt für unser Polynom Q(x):
i 
min{| 1   2 |:  i  C , Q(  i )  0  P k i   P( i )  i  2 k  i  i , 1   2 }
2
 2

 min{| 2 k 1  i  2 k  2  i |:  i  C , P( i )  0, 1   2 }
 2k   2
• Somit haben die Wurzeln von Q(x) mindestens Abstand 2.
Terminierungsbeweis
• Falls Q(x) keine Wurzeln mit Radius 1/2 um den Punkt (1/2,0) besitzt,
ist die Bedingung für Lemma 1 erfüllt.
• Falls Q(x) genau eine Nullstelle in diesem Bereich besitzt, muss es
eine reelle Wurzel sein. Wären in diesem Bereich komplexe Wurzeln,
würden sie in konjugierten Paaren auftreten und müssten beide in dem
Bereich liegen. Somit sind die Bedingungen für Lemma 2 erfüllt.
• Der Fall das mehrere Nullstellen in dem Bereich auftreten ist nicht
möglich, da sonst der Abstand zwischen den Nullstellen zu klein wäre.
Dieser Fall kann also nicht eintreten.
• Wenn aber mehrfache Nullstellen auftreten, können die Bedingungen
der Lemmata nicht mehr erfüllt werden.
• => Terminierung des Algorithmus für Polynome ohne mehrfache
Nullstellen mit Außnahme mehrfacher Nullstellen die direkt gefunden
werden können (, also der Form i/(2^k)).
Verallgemeinerung des
Algorithmus
• Wir wollen zuerst ein B finden für das alle reellen Nullstellen des zu
untersuchenden Polynoms P vom Grad n im Intervall [-B,B] liegen
müssen.
• Wie bestimmen wir nun ein geeignetes B?
• Wir testen einfach für k=1,2,3,... Bis folgende Gleichung erfüllt ist:
n 1
 | an | (2 k ) n   | ai | (2 k ) i  0
i 0
• Unser gesuchtes B hat hier folgende Form: B=2^k
• Die Gleichung ist genau dann erfüllt, wenn die höchste x-Potenz alle
anderen x-Potenzen dominiert und deshalb keine Nullstellen mehr
auftreten können für x-Einsetzungen kleiner -B oder größer B.
P( x)  x  3 x  2 x  1
3
2
Verallgemeinerung des
Algorithmus
• Nun sei das Polynom Pa ( x)  P(4 Bx )
• Alle Wurzeln von Pa(x) liegen jetzt also im Intervall [-1/4,1/4]
• Eine reelleWurzel w von Pa(x) gehört also zu der reellen Wurzel 4Bw
von P(x)
Pa ( x)  P(4  4  x)  4096 x  768 x  32 x  1
3
2
Verallgemeinerung des
Algorithmus


1
2
• Nun sei das Polynom Pb ( x)  Pa  x  
• Alle Wurzeln von Pb(x) liegen jetzt also im Intervall [1/4, 3/4]
• Die reelle Wurzel w von Pb(x) gehört also zu der reellen Wurzel
1/2 von Pa(x)
w-
1

3
2
Pb ( x)  Pa  x    4096 x  6912 x  3808 x  687
2

Verallgemeinerung des
Algorithmus
• Wir können nun unseren Algorithmus auf Pb(x) anwenden und
erhalten nach der Korrektur unserer Intervallgrenzen die gewünschten
Intervalle für unser Polynom P(x).
Rekursionsübersicht für Intervallgrenzen
...
...
...
...
Herunterladen