1.) Der Körper der reellen Zahlen

Werbung
1.) Der Körper der reellen Zahlen
> restart;
Aufbauend auf: "Gruppen- und Körperaxiome"
Aufgaben: 4
Die reellen Zahlen bilden den Ausgangspunkt der Analysis und sind somit von grundlegender
Bedeutung.
BEZEICHNUNG: = Körper der reellen Zahlen.
Das Vollständigkeitsaxiom
MATH: Man definiert den Körper der reellen Zahlen als einen angeordneten Körper, für den
zusätzlich das folgende Vollständigkeitsaxiom gilt:
Vollständigkeitsaxiom: Jede nicht leere nach oben beschränkte Teilmenge von
Supremum.
besitzt ein
Unser Standpunkt ist: Wir konstuieren in diesem Stadium nicht, sondern nehmen an, dass
existiert und (in einem hier nicht zu präzisierenden Sinne) eindeutig festgelegt ist. (Vergl. auch
Schlussbemerkung dieses Absatzes "Vollständigkeitsaxiom"!)
Die natürlichen Zahlen, die ganzen Zahlen und die rationalen Zahlen liegen in , aber es gibt
auch reelle Zahlen, die nicht rational sind.
Für den Körper
der rationalen Zahlen ist das Vollständigkeitsaxiom nicht erfüllt.
MATH: Aus dem Vollständigkeitsaxiom kann man leicht das folgende
Intervallschachtelungsprinzip herleiten:
Ausgehend von zwei reellen Zahlen x und y mit
halbiert man das abgeschlossene Intervall
und geht zu genau einem der Intervalle
oder
über. Dieser Halbierungsschritt wird iteriert, so dass man zu einer Folge von Intervallen
kommt, die ineinander geschachtelt sind, d.h. jedes frühere umfasst jedes spätere. Der
Durchschnitt all dieser (unendlich vielen) Intervalle besteht aus genau einer reellen Zahl .
Beweis: Nach Konstruktion der Intervalle gilt
Schranken der Menge
.
Nach dem Vollständigkeitsaxiom existiert
M ist, gilt
für alle
,
und damit ist
. Andererseits gilt natürlich auch
für alle
. Damit sind alle
obere
, und da die kleinste obere Schranke von
für alle , d.h. s liegt im Durchschnitt all dieser Intervalle:
.
Damit gibt es mindestens eine reelle Zahl, die in all diesen Intervallen liegt.
ÜBUNG [01]:
Zeige (ohne Maple), dass es höchstens eine reelle Zahl gibt, die in allen derartigen
Intervallen liegt.
Hinweis: Folgende Aussagen darfst du benutzen:
1.)
.
2.) Ist
mit
für alle
.
Zwei Zusätze zum Intervallschachtelungsprinzip sind von Interesse:
1.) Oftmals kennt man schon Eigenschaften der Zahl . Dann benutzt man diese, um in jedem
Schritt zu entscheiden, ob man die erste (linke) oder die zweite (rechte) Intervallhälfte für das
neue Intervall nimmt.
2.) Nach n Schritten kennt man bereits mit der Genauigkeit
.
Hier ist eine Prozedur, die ausgehend von einem Intervall
mit
eine wie oben beschriebene Intervallfolge erzeugt mit
und
für alle .
Das Verfahren bricht ab, wenn die Intervalllänge kleiner als
wird.
> IntervSchaW2 := proc(a::And(rational,positive), b::And
(rational,positive), n::posint)
local fA, fB, r, s, t;
if not (a^2<2 and 2<b^2) then
error "Wrong arguments"
end if;
r:=a;
s:=b;
fA:=r;
fB:=s;
while (s-r >= 1/n) do
t:=(r+s)/2;
if t^2>2 then
fB:=fB, t;
fA:=fA, [fA][-1];
s:=t;
else
fA:=fA, t;
fB:=fB, [fB][-1];
r:=t;
end if;
end do;
return zip((a,b)->[a,b], [fA], [fB]);
end proc:
MAPLE: Auf das letzte Element einer Liste (oder Sequenz) L greift man mit L [ - 1 ] zu. Der
Befehl z i p fügt 2 Listen zu einer Liste zusammen. Für Details kann man wie immer die Hilfe
konsultieren.
Schauen wir uns das Programm im Einsatz an:
> IntervSchaW2(1,2,200);
(1.1.1)
Wir wissen, dass es genau ein
zwischen
und
gibt, das in allen Intervallen liegt. Diese Zahl muss
liegen. Wir kennen diese Zahl schon mit einem Fehler, der kleiner ist
als
> evalf(363/256-181/128);
0.003906250000
also ist z. B.
> evalf((363/256+181/128)/2);
1.416015625
eine halbwegs gute Näherung.
(1.1.2)
(1.1.3)
MATH: Nachdem wir eingesehen haben, dass existiert und eindeutig bestimmt ist, ist es leicht
zu sehen, dass
gilt, d.h. ist die eindeutige (positive) Quadratwurzel aus 2. Hier das
Argument:
c
Aus der ersten und der dritten Ungleichung folgt im Falle
=
und im Falle
:
=
Wir haben also in beiden Fällen
=
.
:
Wegen
,
und
und damit ebenfalls wie oben
MATH: Es gibt aber kein
c folgt wie in Übung 1
, d.h.
mit
.
. Damit gibt es reelle Zahlen, die nicht rational sind.
DENKANSTOSS: Wieso führt die eindeutige Primfaktorzerlegung ganzer Zahlen dazu, dass
keine rationale Zahl mit
existiert? (Hinweis: Mache die 2-Bilanz für Zähler und Nenner!)
ÜBUNG [02]:
1) Verstehe und kommentiere das Programm "IntervSchaW2".
2) Modifiziere das Programm so, dass man keine Quadratwurzeln von 2, sondern -te Wurzeln
einer beliebigen (positiven) rationalen Zahl approximiert werden für eine natürlich Zahl
.
3) Gebe unter Benutzung der Idee der Intervallschachtelung die Anzahl der Durchläufe der
w h i l e-Schleife abhängig von den Parametern , und an.
Hinweis: Wie groß ist der maximale Fehler im ersten Schritt und wie verändert er sich pro
Schleifendurchlauf?
Zur allgemeinen Orientierung noch eine Bemerkung:
MATH: Man kann zeigen, dass es wirklich einen angeordneten Körper gibt, der das
Vollständigkeitsaxiom erfüllt.
Man kann weiter zeigen, dass jeder weitere angeordnete Körper, der das Vollständigkeitsaxiom
erfüllt, mit dem von uns konstruierten identifiziert werden kann unter Benutzung einer bijektiven
Abbildung, die das Rechnen und die Anordnung überträgt.
Weiterhin hätten wir diesen Körper durch Vervollständigung von konstruieren können, was
aber momentan nicht Thema sein soll.
Wir wollen festhalten: Es gibt einen (im wesentlichen) eindeutigen angeordneten
vollständigen Körper, den Körper der reelen Zahlen .
Symbolisches Rechnen
Wir haben die Schwierigkeiten des numerischen Rechnens gesehen und wollen jetzt die
Möglichkeiten des symbolischen Rechnens an einem Beispiel andeuten.
MATH:
, die Quadratwurzel aus , kommt in gewissen Ausdrücken vor, die ansonsten nur
rationale Zahlen enthalten. Die Ausdrücke sollen (beispielsweise) quadriert werden.
MAPLE kommt nicht auf die Idee,
numerisch zu approximieren, sondern arbeitet nur mit
den definierenden Eigenschaften. Es benutzt die Körperaxiome der reellen Zahlen, schreibt 2
falls
auftaucht, und erweitert Brüche, so dass kein
animiert wird:
> a:=(3+sqrt(2))/(2-sqrt(2));
mehr im Nenner steht, falls es dazu
(1.2.1)
Ziel: Bestimme !
> a:=rationalize(a);
a:=expand(a);
(1.2.2)
> a^20;
(1.2.3)
> b:=expand(a^20);
(1.2.4)
Bis hier ist die Rechnung symbolisch, also fehlerfrei!
> evalf(b);
evalf(a)^20;
%%-%;
(1.2.5)
ÜBUNG [03]:
Bestimme eine genauere Approximation von
Verfahren verwendest.
> c:=1+sqrt(2)/100000;
evalf(c)^10000;
als die folgende, indem du obiges
1.151907196
Achtung: Es kann beim Bearbeiten dieser Aufgabe zu langen Ausgaben kommen sinnvollerweise sollte man die langen Terme nicht ausgeben.
Freiwilliger Zusatz: Berechne c
mit Hilfe von Square&Multiply.
(1.2.6)
MATH und MAPLE: Selbstverständlich trauen wir dem symbolischen Ergebnis etwas mehr als
dem numerischen, weil bei letzterem alles mit Gleitkommazahlen gerechnet wurde und bei dem
symbolischen nur der letzte Schritt. Es empfielt sich immer soweit wie möglich symbolisch zu
rechnen, um genauere Werte zu erhalten - soweit es die benötigte Rechenzeit zulässt.
MATH: Wurzeln sind besonders einfache Beispiele für das symbolische Rechnen. Die Zahl
erfüllt beispielsweise keine Polynomgleichung mit rationalen Koeffizienten. Trotzdem empfiehlt
es sich oftmals, auch da erst im letzten Schritt numerisch zu rechnen.
> Pi, evalf(Pi);
(1.2.7)
Das Archimedische Axiom
Bislang haben wir gesehen:
ist ein angeordneter vollständiger Körper. hat eine
weitere wichtige Eigenschaft, die wir schon gesehen haben, ohne sie besonders hervorgehoben
zu haben.
MATH: (Archimedes 287-212 v. Chr.): ist nicht nach oben beschränkt in :
Für jedes
gibt es ein
mit
.
Folgerung: Für
.
Folgerung: Es gibt keine unendlich kleine positive reelle Zahl:
.
Folgerung: Zwischen zwei verschiedenen reellen Zahlen gibt es immer eine rationale Zahl:
Für
.
All dies ist jetzt sehr leicht einzusehen. Wenn die zweite Folgerung in einem angeordneten
Körper gilt, sagt man auch, das Archimedische Axiom ist erfüllt. Die dritte Folgerung
umschreibt man meistens so: Die rationalen Zahlen liegen dicht in den reellen Zahlen. Hier ist
ein Programm, welches die dritte Folgerung umsetzt:
> Zwi:=proc(a::algebraic,b::algebraic)
local x, n, r;
if is(a < b) then
return Zwi(b,a);
fi;
x := a-b;
n := ceil(1/x);
r := (floor(n*a))/n;
return r;
end proc:
> Zwi(Pi,sqrt(10));
22
(1.3.1)
7
> evalf(Pi), evalf(22/7), evalf(sqrt(10));
(1.3.2)
MAPLE: Es ist anzunehmen, dass Maple bei der Abfrage auf
bereits eine Umrechnung auf
Gleitkommazahlen vornimmt, so dass das letzte Programm lediglich einen didaktischen Wert
hat.
DENKANSTOSS: Veranschauliche das Programm auf der Zahlengeraden.
ÜBUNG [04]:
1) Zeige: Zwischen zwei verschiedenen reellen Zahlen gibt es immer unendlich viele rationale
Zahlen.
2) Zeige: Jede unendliche Teilmenge von ist unbeschränkt.
Visualisierung auf der Zahlengeraden (freiwillig)
Bislang haben wir hauptsächlich von den mehr algebraischen Eigenschaften der reellen Zahlen
gesprochen, die ihre Manipulation betreffen. Von einem mehr geometrischen Standpunkt aus
können wir die reellen Zahlen zur Parametrisierung einer Geraden heranziehen: Jedem Punkt der
Geraden entspricht genau eine reelle Zahl und umgekehrt, so dass folgende Zusatzeigenschaften
gelten:
1) Der Addition mit einer festen reellen Zahl entspricht eine Translation (Verschiebung) auf der
Geraden.
2) Der Multiplikation mit einer festen positiven rellen Zahl entspricht eine Streckung auf der
Geraden, deren Zentrum gerade der Punkt ist, dem 0 entspricht.
3) Der Multiplikation mit -1 entspricht eine Spiegelung an 0.
4) < legt eine Orientierung auf der Geraden fest.
Geschichtlich gesehen hat die Multiplikation reeller Zahlen besonders große Schwierigkeiten
bereitet: Sind zwei positive reelle Zahlen , gegeben, so stellt man sich vor, dass sie die Länge
von Intervallen repräsentieren, etwa von bis bzw. von bis (immer auf der Zahlengeraden
gesehen). Hingegen stellt man sich unter dem Produkt
von und eher den Flächeninhalt
eines Rechtecks mit den Seitenlängen und vor. Warum sollte
wieder eine Zahl von der
Art sein, die Längen festlegt, wo sie doch einem Flächeninhalt entspricht?
DENKANSTOSS: Visualisiere
als Länge einer Strecke mit Hilfe des Strahlensatzes.
MAPLE: Leider sind die Möglichkeiten, die Zahlengerade mit Maple zu visualisieren, etwas
beschränkt, da der normale plot-Befehl eine reelle Zahl als konstante Funktion interpretiert:
> plot(1);
> plot({0,1/2,1},x=0..1,color=blue);
MAPLE: Etwas besser, aber immer noch nicht befriedigend, der pointplot-Befehl:
> plots[pointplot]([[0,0],[1/2,0],[1,0]],color=[red,green,
blue],axes=boxed,view=[-1..2, -1..1]) ;
2.) Restklassenkörper der Polynomalgebra
Aufbauend auf: "Polynome", "Der Körper der reellen Zahlen"
Aufgaben: 3
> restart;
> with(LinearAlgebra):
Restklassenkörper
MATH: Sei
Polynom
ein Körper und
schreiben als
mit eindeutigen
euklidischer Ring.
, wo
ein Polynom vom Grad
oder
. Dann lässt sich jedes
. In anderen Worten,
ist ein
BEISPIEL:
> p:=add(x^i,i=0..6);
(2.1.1)
> quo(x^10,p,x);
rem(x^10,p,x);
(2.1.2)
PROBE:
> x^10;
expand((x^4-x^3)*p+x^3);
(2.1.3)
Man erhält auch beide Polynome auf einmal:
> quo(x^10,p,x,'r');
r ;
(2.1.4)
> rem(x^10,p,x,'q');
q;
(2.1.5)
MATH: In der obigen Situation haben wir eine Zerlegung von
(innere) direkte Summe:
Insbesondere sind die beiden Vektorräume
natürliche Epimorphismus
und
als -Vektorraum in eine
isomorph, genauer: Der
schränkt sich zu einem Isomorphismus
ein. Richtig rechnen in
können wir aber erst, wenn wir den Inversen dieses
Isomorphismus auch haben. Klar: rem liefert uns diesen:
.
Wir nennen diesen Rest von kleinstem Grad auch den Standardvertreter der Restklasse
.
MATH: Es gibt eine zweite Möglichkeit diesen Standardvertreter zu konstruieren: Wir fassen
als einen Algorithmus auf, der darin besteht solange wie möglich mit Hilfe von den Grad von
zu erniedriegen, und zwar durch wiederholtes Einsetzen von
> re:=isolate(p,x^6);
(2.1.6)
> algsubs(re,x^10);
(2.1.7)
> algsubs(re,%);
(2.1.8)
> algsubs(re,%);
(2.1.9)
> algsubs(re,%);
(2.1.10)
> algsubs(re,%);
(2.1.11)
MATH: In
haben wir einen Euklidischen Algorithmus.
> gcdex(1-x^2+x^4,x+x^11,x,'a','b');
1
> a*(1-x^2+x^4) + b*(x+x^11);
expand(%);
(2.1.12)
1
(2.1.13)
> p:=1-x^2+x^4;
(2.1.14)
MATH: Stellen wir uns vor, wir würden in
rechnen, und zwar nicht nur als
Vektorraum über , denn da brauchten wir ja nur die Linearkombinationen der Restklassen von
zu betrachten, sondern als Ring - und später auch, wie wir sehen werden als Körper.
Einen Vektorraum, der gleichzeitig ein Ring ist, bezeichnet man übrigens auch als Algebra oder
genauer -Algebra.
Zunächst als Vektorraum: Den Standardvertreter der Restklasse von
> rem(x+x^11,p,x);
erhalten wir durch
(2.1.15)
Wollen wir die Restklasse hiervon quadrieren (Ringoperation), so rechnen wir vertreterweise,
erhalten aber nicht sofort den Standardvertreter (vom Grad
) als Vertreter:
> expand((2*x-x^3)^2);
(2.1.16)
> rem(%,p,x);
3
(2.1.17)
ÜBUNG [01]:
Rechne nach, dass eine gewisse Potenz von
gleich
ist.
Was wir beim Quadrieren gesehen haben, geht entsprechend für das Multiplizieren. Die
Wohldefiniertheit, also Vertreterunabhängigkeit dieser Operation sei nochmal zum intensiven
Studium empfohlen. Jetzt wollen wir invertieren. Dies tut der Euklidische Algorithmus: Wir
lesen
> gcdex(p,x+x^11,x,'a','b'):
a*p+b*(x+x^11)=%;
(2.1.18)
(2.1.18)
modulo und sehen, dass das Inverse der Restklasse von
durch
repräsentiert wird. Probe:
> rem((2*x-x^3)*b,p,x),rem((x+x^11)*b,p,x);
(2.1.19)
Wichtig war, dass 1 als größter gemeinsamer Teiler von und
immer der Fall, genau dann wenn irredzibel ist, was MAPLE über
> irreduc(p);
true
> factor(p);
herauskam. Dies ist
überprüfen kann:
(2.1.20)
(2.1.21)
MATH: Ist
ein irreduzibles Polynom, so ist
ein Körper und umgekehrt.
ÜBUNG [02]:
1) Zeige:
ist ein Körper, aber
2) Gib ein nicht invertierbares Element in
ist kein Körper.
an, das nicht ist.
Darstellung durch Matrizen
MATH: Es gibt noch eine andere Art die Algebra
darzusetellen: Offenbar ist
eine -Basis von
. Bezüglich dieser wird die Multiplikation mit dargestellt
durch
> P:=CompanionMatrix(p,x);
(2.2.1)
> a:='a':
Die Multiplikation mit
wird dargestellt durch
> subs([x=P,a[0]=a[0]*IdentityMatrix(4)],a[0]+a[1]*x+a[2]*x^2+a
[3]*x^3);
(2.2.2)
(2.2.2)
> eval(%);
(2.2.3)
DENKANSTOSS: Warum ist die Zuordnung ein Algebrenisomorphimus auf die -Algebra aller
Polynome in der Begleitmatrix von ?
ÜBUNG [03]:
Berechne im obigen Beipiel
durch eine Matrixinversion.
MATH: Anstatt die Matrix nur als Matrix der Multiplikation mit bezüglich der Basis
aufzufassen, kann man die Matrizen auch als die Elemente selber auffassen.
Man erhält so einen Isomorphismus zwischen
und
. Jede Algebra der Form
lässt sich somit als
Teilring eines Matrixrings
über
schreiben für entsprechendes .
3.) Der Körper der komplexen Zahlen
Aufbauend auf: "Gruppen- und Körperaxiome", "Der Körper der reellen Zahlen", "Restklassenkörper
der Polynomalgebra
"
Aufgaben: 4
> restart;
with(plots):
Die komplexen Zahlen runden unsere Einsichten über reelle Zahlen in sehr überraschender Weise ab
und bilden ihrerseits den Ausgangspunkt vieler analytischer, geometrischer und algebraischer
Theorien. Darüberhinaus finden sie viele Anwendungen auch außerhalb der Mathematik. Sie sind
von grundlegender Bedeutung.
BEZEICHNUNG: Körper der komplexen Zahlen.
Konstruktion von C aus =
MATH: Man kann die komplexen Zahlen als Paare reeller Zahlen einführen:
mit komponentenweiser Addition:
und etwas komplizierter Multiplikation:
An dieser Stelle brauchen wir keine Äquivalenzrelation.
MAPLE: Mit der Schreibweise
für
reproduziert Maple diese Regeln. Achtung: Maple benutzt ein großes , anstatt wie
sonst üblich ein kleines :
> Complex(1,3);
(3.1.1)
MAPLE: Parameter werden vom e v a l c-Kommando immer als reelle Parameter interpretiert!
> evalc((a+b*I)+(c+I*d));
(3.1.2)
> evalc((a+b*I)*(c+I*d));
(3.1.3)
Das Geheimnis dieser komplizierten Multiplikation offenbart sich, wenn man an das
Distributivgesetz denkt und an
> I^2;
(3.1.4)
MAPLE: Man kann die Körperaxiome für
mit Maple verifizieren. Zum Beispiel das
Assoziativgesetz der Addition:
> evalc(evalc((a+b*I)+(c+I*d))+(e+I*f));
evalc((a+b*I)+evalc((c+I*d)+(e+I*f)));
evalb(%=%%);
true
(3.1.5)
Freiwillige ÜBUNG:
1) Warum beweist dies bereits, dass das Assoziativgesetz für
gilt?
2) Verifiziere analog alle anderen Körperaxiome für
mit Maple.
MATH: Es ist klar, dass der Körper nicht angeordnet werden kann, denn sowohl
als
auch
führen sehr schnell zu Widersprüchen. Es gibt aber eine sehr interessante Abbildung
von in sich, die den Zusammenhang von mit dem angeordneten Körper der reellen Zahlen
ins Licht rückt: Das komplexe Konjugieren.
> evalc(conjugate(a+b*I));
(3.1.6)
Die wichtigsten Eigenschaften des komplexen Konjugierens sind seine Additivität und
Multiplikativität:
> conjugate((a+b*I)+(c+d*I))=conjugate(a+b*I)+conjugate(c+d*I);
(3.1.7)
> is(evalc(%));
true
(3.1.8)
> conjugate((a+b*I)*(c+d*I))=conjugate(a+b*I)*conjugate(c+d*I);
(3.1.9)
> is(evalc(%));
true
(3.1.10)
MATH: Die reellen Zahlen sind innerhalb der komplexen Zahlen dadurch gekennzeichnet, dass
sie beim komplexen Konjugieren fest bleiben:
> solve(evalc(conjugate(a+b*I))=a+b*I,{a,b});
(3.1.11)
MATH: Die reellen Vielfachen von heißen rein imaginäre Zahlen. Sie sind dadurch
gekennzeichnet, dass sie beim komplexen Konjugieren auf ihr Negatives abgebildet werden:
> solve(evalc(conjugate(a+b*I))=-(a+b*I),{a,b});
(3.1.12)
MATH: Das Produkt einer komplexen Zahl mit ihrer komplex Konjugierten heißt die Norm der
Zahl. Die Norm ist immer reell und nicht-negativ:
> evalc((a+b*I)*conjugate(a+b*I));
(3.1.13)
MATH: Man kann die letzte Gleichung auch so lesen, dass die komplex Konjugierte dividiert
durch die Norm gleich der Inversen ist:
> w:=evalc(1/(a+b*I));
(3.1.14)
> normal(evalc(w*(a+b*I)));
1
(3.1.15)
1
(3.1.16)
> normal(evalc((a+b*I)*w));
MATH: Die Wurzel aus der Norm heißt auch der Absolutbetrag der komplexen Zahl. Sie stellt
ein Maß für die "Größe" einer komplexen Zahl dar und ist als Funktion von nach eine
Fortsetzung des Absolutbetrags für reelle Zahlen:
> abs(2+6*I), sqrt(evalc((a+b*I)*conjugate(a+b*I)));
(3.1.17)
MATH: Die Summe einer komplexen Zahl mit ihrer komplex Konjugierten ist ebenfalls reell.
Die halbe Summe, also das arithmetische Mittel der beiden komplexen Zahlen, heißt der
Realteil der komplexen Zahl:
> evalc((a+b*I)+conjugate(a+b*I))/2;
a
(3.1.18)
Dazu existiert in MAPLE das Kommando Re:
(3.1.19)
> evalc(Re(a+b*I));
a
Entsprechend definiert man den Imaginärteil der komplexen Zahl
> evalc((a+b*I)-conjugate(a+b*I))/(2*I);
b
Dazu existiert im MAPLE das Kommando Im:
> evalc(Im(a+b*I));
b
> Re(3+5*I), Im(3+5*I);
(3.1.19)
:
(3.1.20)
(3.1.21)
(3.1.22)
MATH: Die komplexen Zahlen wurden aus den reellen Zahlen und einer Lösung von
konstruiert.
> solve(x^2+1=0,x);
(3.1.23)
> solve(x^2+3*x+5=0,x);
(3.1.24)
ÜBUNG [01]:
1) Zeige: Jedes quadratische Polynom mit reellen Koeffizienten hat eine komplexe Nullstelle
und zerfällt daher über den komplexen Zahlen in ein Produkt von Linearfaktoren.
2) Wie bekommt man aus einer Nullstelle die andere, falls sie nicht reell ist?
Hinweis: Bringe die quadratische Ergänzung bzw. die - -Formel in Zusammenhang mit der
Diskriminante.
> discrim(x^2+a*x+b,x);
(3.1.25)
MATH: Wegen
/
definieren kann.
sieht man schnell ein, dass man
als
ÜBUNG [02]:
1) Stelle wie im Abschnitt "Restklassenkörper der Polynomalgebra
" den Körper mit als
Teilring des
(für das richtige ) dar.
2) Wie sehen komplexe Konjugation, Realteil und Imaginärteil in dieser Darstellung aus?
(Hinweis: Benutze jeweils die oben angegebenen Definitionen und setze Matrizen ein.)
Die Gaußsche Zahlenebene
Wir wollen die komplexen Zahlen in der Ebene visualisieren. Ausgangspunkt ist ein
rechtwinkliges Achsenkreuz: Eine Achse (üblicherweise waagerecht gezeichnet) heißt reelle
Achse, weil darauf der Realteil der darzustellenden Zahl abgetragen wird. Die andere Achse
heißt imaginäre Achse, weil darauf der Imaginärteil abgetragen wird. Häufig verbindet man 0
mit durch eine Strecke, die dann die Diagonale in einem Rechteck ist, welches
als Ecken hat:
> complexplot([2+I], view=[-1..3,-1..2],scaling=constrained,
style=point, symbol=circle);
Hier ist noch eine Version, die auch das Rechteck einzeichnet:
> z:=2+I;
> re:=complexplot([0,Re(z),z,Im(z)*I,0],thickness=2,colour=
black):
za:=complexplot([0,z],thickness=2,colour=red):
display({za,re},view=[-1..3,-1..2],scaling=constrained);
Das folgende Programm gibt eine eine komplexe Zahl zusammen mit ihrer Konjugierten aus. Die
geometrische Interpretation der komplexen Konjugation ist die Orthogonalspiegelung an der
reellen Achse.
> PLO:=proc(z::complex)
local r,rc,za,zb;
r:=complexplot([0,Re(z),z,Im(z)*I,0],thickness=2,colour=
black):
rc:=complexplot([0,Re(z),conjugate(z),-Im(z)*I,0],
thickness=1,colour=black):
za:=complexplot([0,z],thickness=2,colour=red):
zb:=complexplot([0,conjugate(z)],thickness=1,colour=red):
display({r,rc,za,zb},scaling=constrained);
end proc:
> PLO(1+2*I);
MATH: Die Länge der Diagonalen des Rechtecks, also die Strecke von 0 nach z ist gerade der
Absolutbetrag von z, also die Quadratwurzel aus der Norm. Dies folgt sofort aus dem Satz von
Pythagoras.
MATH: Aus der Rechteck-Diagonal-Darstellung der komplexen Zahlen leitet man sofort die
geometrische Interpretation der Addition komplexer Zahlen gemäß der Parallelogrammregel her,
die wir hier kurz (ohne Rechtecke) visualisieren (SuduPar steht für "Summe durch
Parallelogrammregel") :
> SuduPar:=proc(a::complex,b::complex)
local r,s,t;
r:=complexplot([a,0,b],thickness=2, colour=blue);
s:=complexplot([a,a+b,b],thickness=2, colour=black);
t:=complexplot([0,a+b],thickness=2, colour=red);
display({r,s,t},view=[-1..3,-2..2],scaling=constrained);
end proc:
> SuduPar(1/2+I,2-3/2*I);
MATH: Eine bessere geometrische Einsicht, was es mit der Summe auf sich hat, erhält man,
indem man für eine feste komplexe Zahl a die Abbildung
betrachtet und diese visualisiert:
bedeutet geometrisch eine Verschiebung oder mathematischer gesprochen - eine Translation um . Dies visualisiert man am besten dadurch,
dass man
auf eine Teilmenge von , also eine ebene Figur, elementweise anwendet
(vissum steht für "visualisiere Summe"):
> vissum:=proc(a::complex)
local l,apl,figur;
figur:=[0,1/2,1+I/6,(1+I)/6,1/6+I,I,0];
l:=complexplot(figur,thickness=2,colour=red);
apl:=complexplot(map(z->z+a,figur),thickness=2,colour=blue)
;
display({l,apl},view=[-1..2,-1..2],axes=NORMAL,scaling=
constrained);
end proc:
> vissum((3-I)/5);
MATH: Die geometrische Interpretation der Multiplikation lautet wie folgt: Ist
mit
eine feste komplexe Zahl, die von Null verschieden ist, so induziert die Multiplikation mit eine
Drehstreckung, wobei der Drehwinkel gleich
und der Streckfaktor gleich dem
Absolutbetrag von ist.
Auf den Beweis verzichten wir an dieser Stelle, aber wir wollen analog zu
Multiplikation mit einer festen komplexen Zahl visualisieren als Abbildung
die
Hier ist ein Programm, welches analog zu dem Programm von
ist:
> visprod:=proc(a::complex)
local l,aml,figur;
figur:=[0,1/2,1+I/6,(1+I)/6,1/6+I,I,0];
l:=complexplot(figur,thickness=2,colour=red);
aml:=complexplot(map(z->z*a,figur),thickness=2,colour=blue)
;
display({l,aml},view=[-1..2,-1..2],axes=NORMAL,scaling=
constrained);
end proc:
> visprod((1-I));
DENKANSTOSS: Beim Experimentieren mit visprod setze man
1) positive reelle Zahlen ein und
2) komplexe Zahlen vom Absolutbetrag 1 (letztere erzeugt man aus durch z / a b s ( z )).
Was passiert in diesen beiden Fällen?
MATH: Jede komplexe Zahl
kann in eindeutiger Weise als Produkt einer positiven reellen
Zahl mit einer Zahl vom Absolutbetrag 1 dargestellt werden. Man nennt das auch
Polarzerlegung:
> PolZer:=proc(z::complex)
return abs(z),z/abs(z);
> end proc:
> PolZer(3+5*I);
`*`(%);
(3.2.1)
Der rechte Ausdruck kann in MAPLE auch durch das Kommando signum bestimmt werden:
> signum(3+5*I);
(3.2.2)
ÜBUNG [03]:
Benutze die Polarzerlegung, um
Erst durch
und dann durch
in zwei Stufen zu visualisieren:
. Also geometrisch gesprochen: Erst
eine Streckung, dann eine Drehung.
(Man kann auch in umgekehrter Reihenfolge vorgehen, da das Kommutativgesetz für die
Multiplikation komplexer Zahlen gilt. Allerdings bekommt man dann eine andere
Visualisierung: Erst die gedrehte, dann die drehgestreckte Figur.)
MATH: Eine weitere Art, die Abbildung
zu visualisieren, besteht darin, dass man sie
mehrmals auf eine feste Zahl anwendet, d. h. man betrachtet
, etc.
Wir sehen dann, dass bei immer wieder derselbe Drehwinkel auftaucht. Mit etwas Phantasie
erkennt man auch den konstanten Streckfaktor
an der Ähnlichkeit der entstehenden
Dreiecke ("itMult" steht für "iteriere Multiplikation von z mit a n-mal"):
> ItMult:=proc(z::complex,a::complex,n::posint)
local i,pl;
pl:=complexplot([0,z],colour=red);
for i from 1 to n do
pl:=pl,complexplot([0,a^i*z],colour=red);
pl:=pl,complexplot([a^(i-1)*z,a^i*z],colour=blue);
end do;
display({pl},view=[-1.5..1.5,-1.5..1.5],scaling=
constrained);
end proc:
> ItMult(1+I,(1+I/2)*5/6,20);
MATH: Übrigens werden wir später lernen, dass man auch komplexe Zahlen mit reellen
Exponenten potenzieren kann. Dann bekommen wir eine glatte Version (Version ohne Ecken)
des letzten Bildes:
> ItMultgla:=proc(z::complex,a::complex,n::posint)
local j,pl;
pl:=complexplot([0,z],colour=red);
for j from 1 to n do
pl:=pl,complexplot([0,a^j*z],colour=red);
end do;
pl:=pl,complexplot(a^i*z,i=0..n,colour=blue);
display({pl},view=[-1.5..1.5,-1.5..1.5],scaling=
constrained);
end proc:
> ItMultgla(1+I,(1+I/2)*5/6,20);
MATH: Der Körper der komplexen Zahlen ist algebaisch abgeschlossen. Das bedeutet, dass
jedes nichttriviale (d.h. von Grad
) komplexe Polynom eine komplexe Nullstelle hat.
Beispiele:
> factor(x^2+1);
factor(x^2+1,I);
(3.3.1)
> factor(x^2+I*x+1,sqrt(5));
(3.3.2)
> factor(x^2-2*x+1+2*I);
(3.3.3)
Ein Beweis, dass algebaisch abgeschlossen ist, liegt noch ausserhalb unserer Mittel. (Man
kann ihn zum Beispiel mit Hilfe von Galoistheorie, dem Abbildungsgrad oder holomorphen
Funktionen führen.) Wir wollen aber zumindest einen Spezialfall betrachten.
ÜBUNG [04]:
1) Zeige, dass die Abbildung
surjektiv ist.
Hinweis: Das bedeutet, dass man zeigen muss, dass eine Wurzel existiert. Am sinnvollsten
geht dies mit der Polarzerlegung.
2) Folgere aus Teil 1, dass jedes komplexe quadratische Polynom
mit
eine Nullstelle in C hat und damit in ein Produkt von zwei Linearfaktoren zerfällt.
Herunterladen