Algebraische Zahlen: Exaktes Rechnen mit Wurzeln

Werbung
Algebraische Zahlen:
Exaktes Rechnen mit Wurzeln
Theorie und Praxis
geometrischer Algorithmen
Sascha El-Abed
Inhalt
1. Separation Bounds: Definition, Eigenschaften,
Verwendungszweck
2. Berechnung und Beispiele
3. Hauptungleichung
4. Hilfstheoreme und -lemmata
5. Beweis der Hauptungleichung
6. Abgeleitete Korollare
7. Anwendung
2
Was sind Separation Bounds...
Wir betrachten arithmetische Ausdrücke mit ganzen Zahlen
und den Operationen , -, *, /, k
Sei E ein arithmetischer Ausdruck, der den Wert   val(E )hat.
Ein Separation Bound sep(E) ist
• eine positive reelle Zahl
• mit der Eigenschaft   0  sep( E)  
3
...und wofür braucht man sie?
Zur exakten Bestimmung des Vorzeichens von
reellwertigen arithmetischen Ausdrücken, wie sie oft bei
geometrischen Berechnungen(z.B. an Kreis, Ellipse, ...)
auftreten, z.B.
5  3* 8
3
17  21 18  22

19
20
oder die Berechnung des Euklidischen Abstands von Punkten:
liegt P oder Q näher an R?
( px  rx ) 2  ( p y  ry ) 2  (qx  rx ) 2  (q y  ry ) 2
4
Berechnung & Bsp: dag
Man wandelt einen gegebenen Ausdruck entgegen den
Rechenregeln in einen dag (directed acylic graph) um:
die Operationen sind die inneren Knoten, die Zahlen sind
die Senken
E : 5  3 * 3 8
17  21 18  22
F :

19
20
5
Berechnung & Bsp: dag
Man wandelt einen gegebenen Ausdruck entgegen den
Rechenregeln in einen dag (directed acylic graph) um:
die Operationen sind die inneren Knoten, die Zahlen sind
die Senken
E : 5  3 * 3 8
17  21 18  22
F :

19
20
5
Berechnung & Bsp: U(E), L(E)
Man definiert nun induktiv folgende Regeln U(E), L(E)
E
U(E)
n
integer n
E1±E2 U(E1)*L(E2)±L(E1)*U(E2)
U(E1)*U(E2)
E1*E2
U(E1)*L(E2)
E1/E2
k
E1
k
U ( E1 )
L(E)
1
L(E1)*L(E2)
L(E1)*L(E2)
L(E1)*U(E2)
k
L( E1 )
U (E)
und berechnet E als Quotient
L( E )
indem man die Regeln von der Wurzel ausgehend auf die
Knoten anwendet und erhält somit den exakten Wert von E
6
Berechnung & Bsp: u(E), l(E)
Weiterhin definiert man nun nichtnegative reelle Zahlen
u(E) und l(E), die Abschätzungen zu den Werten U(E)
bzw. L(E) sind.
E
u(E)
|n|
integer n
E1±E2 u(E1)*l(E2)+l(E1)*u(E2)
E1*E2
u(E1)*u(E2)
u(E1)*l(E2)
E1/E2
k
E1
k
u( E1 )
l(E)
1
l(E1)*l(E2)
l(E1)*l(E2)
l(E1)*u(E2)
k
l ( E1 )
7
Eigenschaften und weitere Definitionen
Für die Regeln U(E), L(E), u(E), l(E) gilt:
•u(U(E)) = u(E)
•u(L(E)) = l(E)
•l(E) = 1
falls E keine Division enthält
8
weitere Definitionen
Die Zahl   val(E ) ist eine algebraische Zahl,
d.h. es gibt ein Polynom p  Z ( X ) mit p()  0.
Folglich gibt es auch ein Minimalpolynom m
mit Nullstelle .
Zur Erinnerung (Vortrag von Simon):
Das Minimalpolynom zu k a ist x k  a ;
dieses Polynom hat aber noch weitere Nullstellen ausser k a
Der Grad deg () von  ist definiert als der Grad des
Minimalpolynoms von  .
9
weitere Definitionen
Kommen in einem Ausdruck E r Wurzeln
r
k1, ..., kr, so definiert man D( E )   ki
i 1
(ki: die Grade der Wurzeln)
Es gilt: deg ()  D ( E )
10
Hauptungleichung
Für Ausdrücke E, die keine Division enthalten, und
für deren Wert   0 gilt, besteht folgender
Zusammenhang:
1
   u( E )
deg( ) 1
u(E)
Der rechte Teil der Ungleichung ist direkt ersichtlich.
Für den Beweis des linken Teils brauchen wir noch
etwas “Handwerkszeug”.
11
Hilfstheorem 1
Zuerst schauen wir uns an, dass   val(E ) eine
ganzalgebraische Zahl ist, wobei E keine Division
enthält, d.h. alle op  {,,*}.
12
Hilfstheorem 1
Zuerst schauen wir uns an, dass   val(E ) eine
ganzalgebraische Zahl ist, wobei E keine Division
enthält, d.h. alle op  {,,*}.
Seien die Polynome
m 1
n 1
p A ( X )   ai X  X
i
i 0
n
j
m
p
(
X
)

b
X

X
 j
und B
j 0
mit ganzzahligen Koeffizienten ai und bj gegeben.
12
Hilfstheorem 1
n 1
m 1
gegeben: p A ( X )   ai X  X und pB ( X )   b j X j  X m
i
n
i 0
j 0
Da ein Polynom vom Grad n bzw. m genau n bzw. m
komplexe Nullstellen hat, kann man pA und pB wie folgt
umschreiben:
m
n
pA ( X )   ( X  i )
i 1
pB ( X )   ( X   j )
j 1
13
Hilfstheorem 1
n 1
m 1
gegeben: p A ( X )   ai X  X und pB ( X )   b j X j  X m
i
n
i 0
j 0
Da ein Polynom vom Grad n bzw. m genau n bzw. m
komplexe Nullstellen hat, kann man pA und pB wie folgt
umschreiben:
m
n
pB ( X )   ( X   j )
pA ( X )   ( X  i )
j 1
i 1
Für op  {,,*} hat dann das Polynom
n
m
p AopB ( X )   ( X  ( i op  j ))
i 1 j  0
(=Produkt aller Konjugierten von pA und pB)
ebenfalls wieder ganzzahlige Koeffizienten.
13
Hilfslemma 1
Lemma: (gegeben: Ausdruck E mit Wert ξ)
Es gibt ein Polynom
pE ( X )   ( X  ei )  Z ( X )
i
so dass pE ()  0 und ei  u(E ) für alle Nullstellen ei
des Polynoms pE(X) gilt.
14
Hilfslemma 1
Lemma: (gegeben: Ausdruck E mit Wert ξ)
Es gibt ein Polynom
pE ( X )   ( X  ei )  Z ( X )
i
so dass pE ()  0 und ei  u(E ) für alle Nullstellen ei
des Polynoms pE(X) gilt.
Beispiel:
Sei E  2 2    val( E )  2 2 , u ( E )  2 2
Das Minimalpolynom zu  ist m ( X )  X 2  2  ( X  2 2 )( X  (2 2 ))
m hat nicht nur die Nullstelle 2 2 , sondern auch  2 2
m erfüllt die Bedingungen von pE(X), da:
 p E ( )  p E ( 2 2 )  0
 e1 
2
2  2 2  u( E )
 e2   2 2  2 2  u ( E )
14
Beweis von Lemma 1
durch strukturelle Induktion über den arithmetischen Ausdruck E:
1.Fall: E ist eine ganzzahlige Konstante: E = a
Dann erfüllt das Polynom pE ( X )  X  a
offensichtlich schon alle Bedingungen des Lemmas.
15
Beweis von Lemma 1
2.Fall: E hat die Form E = A op B, op  {,,*}
Nach Induktionsvoraussetzung existieren Polynome
n
pA ( X )   ( X  i )
m
pB ( X )   ( X   j )
und
i 1
j 1
mit (u.a.) Wurzeln (Nullstellen) val(A) bzw. val(B).
16
Beweis von Lemma 1
2.Fall: E hat die Form E = A op B, op  {,,*}
Nach Induktionsvoraussetzung existieren Polynome
n
pA ( X )   ( X  i )
m
pB ( X )   ( X   j )
und
i 1
j 1
mit (u.a.) Wurzeln (Nullstellen) val(A) bzw. val(B).
Wir wählen pE ( X )  p AopB ( X ); nach Theorem 1 hat pE (X )
wieder ganzzahlige Koeffizienten und u.a. die Wurzel
val(E) = val(A) op val(B).
Nach Induktionsvoraussetzung gilt:  i  u ( A) und  j  u ( B)
16
Beweis von Lemma 1
2.Fall: (Fortsetzung)
Nach Induktionsvoraussetzung gilt:  i  u ( A) und  j  u ( B)
17
Beweis von Lemma 1
2.Fall: (Fortsetzung)
Nach Induktionsvoraussetzung gilt:  i  u ( A) und  j  u ( B)
In Theorem 1 haben wir gesehen, dass
pE ( X )  PAopB ( X )
die Wurzeln  i op  j hat. Dann gilt:
IV
•für op  {,} : i op  j  i   j  u( A)  u( B)  u ( E )
•für
IV
op  * :
 i *  j   i *  j  u ( A) * u ( B)  u ( E )
17
Beweis von Lemma 1
3.Fall: E hat die Form E  k A
Nach Induktionsvoraussetzung existiert ein Polynom
n
p A ( X )   ( X   i ) mit (u.a.)Wurzel (Nullstelle) val(A).
i 1
18
Beweis von Lemma 1
3.Fall: E hat die Form E  k A
Nach Induktionsvoraussetzung existiert ein Polynom
n
p A ( X )   ( X   i ) mit (u.a.)Wurzel (Nullstelle) val(A).
i 1
Wir wählen
pE ( X )  p A ( X k ):
n
n
k 1
p A ( X )   ( X   i )   ( X   k k  i )  Z ( X )
k
k
i 1
i 1   0
wobei  k die k-te komplexe Einheitswurzel ist.
Somit gilt für die Wurzeln(Nullstellen):

k
k
i 
k
i 
IV
k
 i  k u ( A)  u ( E )
18
Beweis der Hauptungleichung
Wie wir im vorigen Lemma gesehen haben, kann man ein
Polynom pE(X) mit ganzzahligen Koeffizienten konstruieren,
das die Wurzel  hat.
Da jedes Polynom mit Wurzel  durch das Minimalpolynom m ( X )
geteilt werden kann, sind die Wurzeln des Minimalpolynoms
auch Wurzeln von pE(X).
D.h. m ( X ) hat die Form m ( X ) 
deg( )
(X  e
j 1
ij
) , wobei i1 ,..., ideg( )
die Indizes der Wurzeln des Minimalpolynoms sind, die auch in
pE(X) auftreten.
19
Beweis der Hauptungleichung(2)
Da m ( X ) das Minimalpolynom ist, enthält es keine Wurzeln
mit Wert 0 (sonst könnte man nochmal durch (X-0) teilen).
Sei nun o.B.d.A. ei   .
1
Desweiteren wissen wir aus Lemma 1: ei j  u(E )
Somit können wir nun schließen:
20
Beweis der Hauptungleichung(2)
Da m ( X ) das Minimalpolynom ist, enthält es keine Wurzeln
mit Wert 0 (sonst könnte man nochmal durch (X-0) teilen).
Sei nun o.B.d.A. ei   .
1
Desweiteren wissen wir aus Lemma 1: ei j  u(E )
Somit können wir nun schließen:



deg( )
e
j 1

ij
*

deg( )
e
j 2
ij
1
deg( )
e
j 2
1

u ( E ) deg( )1
ij
20
Abgeleitete Korollare(1)
Korollar 1:
Für Ausdrücke E, die keine Division enthalten, und
für deren Wert   0 gilt, besteht folgender
Zusammenhang:
1
   u( E )
D ( E ) 1
u( E )
r
Zur Erinnerung: D( E )   ki (ki: die Grade der Wurzeln)
i 1
deg ()  D( E )
21
Beweis Korollar 1
Es gilt: deg ()  D ( E )
u( E ) deg ( )1  u( E ) D ( E )1
1
1

D ( E ) 1
u( E)
u ( E ) deg (  ) 1
Dies setzen wir in unsere Hauptungleichung ein:
1
1

   u( E )
D ( E ) 1
deg( ) 1
u(E)
u( E)
22
Abgeleitete Korollare(2)
Korollar 2:
Für Ausdrücke E, für deren Wert   0 gilt, besteht
folgender Zusammenhang:
1
l ( E )u ( E )
D 2 ( E ) 1
   u ( E )l ( E )
D 2 ( E ) 1
23
Beweis Korollar 2
Wir wenden Korollar 1 auf U(E) statt auf E an:
1
   u (U ( E ))
D (U ( E )) 1
u (U ( E ))
24
Beweis Korollar 2
Wir wenden Korollar 1 auf U(E) statt auf E an:
1
 val(U ( E ))  u (U ( E ))
D (U ( E )) 1
u (U ( E ))
Wir schätzen D(U(E)) durch D2(E) nach oben ab, da sich die
Zahl der Wurzel erhöhen kann.
Da außerdem u(U(E)) = u(E) gilt, erhalten wir:
1
u( E)
D 2 ( E ) 1
 val(U ( E ))  u( E )
24
Beweis Korollar 2
Dies tun wir auch für L(E) statt E und erhalten unter Verwendung
von u(L(E)) = l(E) analog zu vorhin:
1
l (E)
D 2 ( E ) 1
 val( L( E ))  l ( E )
val(U ( E ))
Da   val( E ) 
gilt, können wir nun schließen:
val( L( E ))
25
Beweis Korollar 2(rechte Seite)
1
u( E ) D
1
2
( E ) 1
1
2
 val(U ( E ))  u ( E )
l (E)
D 2 ( E ) 1
3
4
 val( L( E ))  l ( E )
val(U ( E ))

val( L( E ))
26
Beweis Korollar 2(rechte Seite)
1
u( E) D
1
2
( E ) 1
1
2
   u( E )
val(U ( E )) 2,3


val( L( E ))
l (E) D
u(E)
1
l(E)
2
3
( E ) 1
4
   l (E)
 u ( E )l ( E )
D 2 ( E ) 1
D 2 ( E ) 1
26
Beweis Korollar 2(linke Seite)
1
u( E) D
1
2
( E ) 1
2
   u( E )
1
l (E) D
2
3
( E ) 1
4
   l (E)
val(U ( E ))

val( L( E ))
27
Beweis Korollar 2(linke Seite)
1
u( E) D
1
2
( E ) 1
2
   u( E )
1
l (E) D
2
3
( E ) 1
4
   l (E)
val(U ( E )) 1, 4
1
1
1


*

D 2 ( E ) 1
D 2 ( E ) 1
val( L( E )) u ( E )
l ( E ) l ( E )u ( E )
27
Beweis Korollar 2(linke Seite)
1
u( E) D
1
2
( E ) 1
1
2
   u( E )
l (E) D
2
3
( E ) 1
4
   l (E)
val(U ( E )) 1, 4
1
1
1


*

D 2 ( E ) 1
D 2 ( E ) 1
val( L( E )) u ( E )
l ( E ) l ( E )u ( E )
Insgesamt erhalten wir:
1
l ( E )u ( E )
D 2 ( E ) 1
   u ( E )l ( E )
D 2 ( E ) 1
27
Anwendung
Wie kann man nun das Vorzeichen eines Ausdrucks bestimmen?
Sei E ein reellwertiger Ausdruck und sep(E) ein separation
bound zu E.
28
Anwendung
Wie kann man nun das Vorzeichen eines Ausdrucks bestimmen?
Sei E ein reellwertiger Ausdruck und sep(E) ein separation
bound zu E.
Wir bestimmen nun ein Intervall I  , das die Länge ε hat,
0 < ε < sep(E), und in dem der Wert von E liegt.
Zur Erinnerung:   0  sep( E)  
Nun müssen wir uns ansehen, ob die Null in I  liegt oder
nicht.
28
Anwendung(2)
Die einzige Möglichkeit, dass 0 in unserem Intervall
liegen kann, ist dass E den Wert 0 hat; ansonsten
enthält das Intervall nur positive oder nur negative
Werte.
Das Vorzeichen unseres Ausdrucks E ist somit das
Vorzeichen der Werte, die in unserem Intervall liegen.
29
Anwendung(3)
C
D
M
A
B
Problem: Welche Punkte liegen innerhalb des Kreises?
->Vorzeichentest wichtig
(z.B. bei Abstandsberechnungen von Punkten)
30
Anwendung(4)
Aus Vortrag von Prof. K. Mehlhorn
Problem: Liegt ein Punkt der Linie l3 innerhalb des
Kreises?
31
The End
Herunterladen