1.) Der Körper der komplexen Zahlen

Werbung
1.) Der Körper der komplexen Zahlen
Aufbauend auf: "Gruppen- und Körperaxiome", "Der Körper der reellen Zahlen"(,
"Restklassenkörper der Polynomalgebra
" - nur der freiwillige Teil)
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
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
I
für
reproduziert Maple diese Regeln. Achtung: Maple benutzt ein großes I , anstatt wie
sonst üblich ein kleines :
> Complex(1,3);
(1.1.1)
MAPLE: Parameter werden vom e v a l c-Kommando immer als reelle Parameter interpretiert!
> evalc((a+b*I)+(c+I*d));
(1.1.2)
> evalc((a+b*I)*(c+I*d));
(1.1.3)
Das Geheimnis dieser komplizierten Multiplikation offenbart sich, wenn man an das
Distributivgesetz denkt und an
> I^2;
(1.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(%=%%);
(1.1.5)
true
(1.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.
Komplexe Konjugation
MATH: Es ist klar, dass der Körper nicht angeordnet werden kann, denn sowohl I
als
auch
I 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));
(1.2.1)
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);
(1.2.2)
> is(evalc(%));
true
(1.2.3)
> conjugate((a+b*I)*(c+d*I))=conjugate(a+b*I)*conjugate(c+d*I);
(1.2.4)
> is(evalc(%));
true
(1.2.5)
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});
(1.2.6)
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});
(1.2.7)
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));
(1.2.8)
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));
(1.2.9)
(1.2.9)
> normal(evalc(w*(a+b*I)));
1
(1.2.10)
1
(1.2.11)
> 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)));
(1.2.12)
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
(1.2.13)
Dazu existiert in MAPLE das Kommando Re:
> evalc(Re(a+b*I));
a
(1.2.14)
Entsprechend definiert man den Imaginärteil der komplexen Zahl
I:
> evalc((a+b*I)-conjugate(a+b*I))/(2*I);
b
(1.2.15)
Dazu existiert im MAPLE das Kommando Im:
> evalc(Im(a+b*I));
b
(1.2.16)
> Re(3+5*I), Im(3+5*I);
(1.2.17)
ÜBUNG [01]:
Sei
Zeige:
eine Funktion und
ihr komplex Konjugiertes.
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
I
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
I
mit
eine feste komplexe Zahl, die von Null verschieden ist, so induziert die Multiplikation mit eine
Drehstreckung.
Hierbei ist der Drehwinkel
gleich
und der Streckfaktor gleich dem
Absolutbetrag von .
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 vissum 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 ) und
kann man sich am besten als
für wie oben beschrieben, vorstellen).
Was passiert in diesen beiden Fällen?
MATH: Jede komplexe Zahl
kann in eindeutiger Weise als Produkt einer positiven reellen
Zahl (dem Absolutbetrag von a) 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);
`*`(%);
(1.3.1)
Der rechte Ausdruck kann in MAPLE auch durch das Kommando signum bestimmt werden:
> signum(3+5*I);
(1.3.2)
ÜBUNG [02]:
Benutze die Polarzerlegung, um
in zwei Stufen zu visualisieren:
Erst durch
und dann durch
. 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);
und reelle Polynome
MATH: Die komplexen Zahlen wurden aus den reellen Zahlen und einer Lösung von
konstruiert.
> solve(x^2+1=0,x);
(1.4.1)
> solve(x^2+3*x+5=0,x);
(1.4.2)
ÜBUNG [03]:
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?
3) Sei nun ein Polynom beliebigen Grades mit reellen Koeffizienten und
eine
Nullstelle von . Zeige: , das komplex Konjugierte von ist ebenfalls eine Nullstelle von .
Hinweis zu 1): Hier ist ein guter Zeitpunkt, die HiWis nach Ansätzen zu fragen.
> discrim(x^2+a*x+b,x);
(1.4.3)
Weitere Konstruktionen der Komplexen Zahlen (freiwillig - basiert
auf linearer Algebra)
MATH: Wegen
/
definieren kann.
sieht man schnell ein, dass man
als
freiwillig ÜBUNG:
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.)
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);
(1.6.1)
> factor(x^2+I*x+1,sqrt(5));
(1.6.2)
> factor(x^2-2*x+1+2*I);
(1.6.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 Hilfe der Polarzerlegung.
2) Beschreibe die Fasern der obigen Abbildung
.
3) Folgere aus Teil 1, dass jedes komplexe quadratische Polynom
mit
mindestens eine Nullstelle in C hat und damit in ein Produkt von zwei Linearfaktoren zerfällt.
2.)Definition von Folgen und einige wichtige Beispiele
Aufbauend auf den Abschnitten: "Rekursion und Induktion: Rechnen mit natürlichen Zahlen", "Der
Körper der reellen Zahlen", "Der Körper der komplexen Zahlen"
Aufgaben: 6
Hinweis: Am Ende des Abschnittes sollen die Begriffsbildungen nochmals unter dem Aspekt der
Vektorräume und linearen Abbildungen betrachtet werden. Möglicherweise ist es eine Hilfe, dies
direkt zu tun, möglicherweise ist es aber besser, du gehst diesen Abschnitt zweimal durch.
> restart;
Grundlegende Definitionen
Folgen haben diverse außermathematische Anwendungen, z. B. bei Zeitreihen;
innermathematisch spielen sie an vielen Stellen eine Rolle. Sie sind ein grundlegendes
mathematisches Konzept, welches sich natürlich unter das Funktionenkonzept subsummiert.
MATH: Folgen, genauer unendliche -wertige Folgen, sind Abbildungen von der Menge
der natürlichen Zahlen in eine Menge . Sie werden oft geschrieben als
, womit gemeint ist
.
Für uns sind zunächst reellwertige Folgen interessant, d. h.
ist die Menge der reellen
Zahlen. Die Menge der -wertigen Folgen bezeichnen wir mit .
MAPLE: Das MAPLE-Kommando seq lässt nur endliche Folgen zu. Deshalb werden wir
Folgen als Abbildungen in MAPLE definieren, wobei uns klar sein muss, dass der
Definitionsbereich ; ist. MAPLE weiß das nicht! Man kann es MAPLE mitteilen, bekommt aber
dann bei gewissen Operationen Schwierigkeiten, die wir erst später sehen werden:
> a:=(i::posint)->i^2;
(2.1.1)
> a(12);
144
(2.1.2)
> map(a,[$1..20]);
(2.1.3)
Da diese Folge natürliche Zahlen als Werte annimmt, kann man sie mit sich selber komponieren
(im Sinne von zweimal hintereinander anwenden) und bekommt wieder eine Folge:
> (a@a)(2);
16
(2.1.4)
> map(a@a,[$1..10]);
(2.1.5)
Man sieht, dass die Folge der 4. Potenzen aus der Folge der Quadrate als Teilfolge konstruiert
werden kann, wobei man sich bei einer Teilfolge vorstellt, dass Glieder der ursprünglichen Folge
weggelassen wurden.
MATH: Eine reellwertige Folge heißt streng monoton steigend, falls
für alle
gilt. (Entsprechend definiert man die Begriffe "monoton steigend", "streng
monoton fallend" und "monoton fallend", indem man
durch
,
bzw.
ersetzt.)
Eine Teilfolge einer Folge ist die Komposition
Folge mit Wertebereich .
> g:=(i::posint)->2*i+3;
von mit einer streng monoton steigenden
(2.1.6)
> map(a@g,[$1..20]);
(2.1.7)
> g(i);
Error, invalid input: g expects its 1st argument, i, to be
of type posint, but received i
An dieser Stelle bezahlen wir, dass wir Maple verraten haben, dass wir nur die natürlichen
Zahlen als Input für g erlauben: Auf der Ebene der Programminputüberprüfung merkt Maple
nicht, dass hier für eine natürliche Zahl steht.
> g:=i->2*i+3;
(2.1.8)
> g(i);
(2.1.9)
Differenzenoperator, arithmetische und geometrische Progressionen
MATH: Zum Analysieren von Folgen ist der (Rückwärts-)Differenzenoperator von
grundlegender Wichtigkeit. In der Analysis ist man nämlich an sehr feinen
Wachstumseigenschaften von Folgen interessiert. Ist
eine Folge (in zwei verschiedenen Schreibweisen), so ist die (erste) Differenzenfolge von
definiert durch:
> Delta:=proc(f::procedure)
local i;
unapply(f(i+1)-f(i),i)
end proc;
(2.2.1)
MAPLE: Hier steht unapply(f(i+1)-f(i),i) anstelle von i -> f(i+1)-f(i), damit die Differenz f(i+1)f(i) bereits vor dem Einsetzen von i schon ausgewertet bzw. vereinfacht wird, was bei der PfeilSchreibweise nicht der Fall wäre. Man beachte weiter, dass wir oben den Wertebereich der Folge
nicht angegeben haben. Es sollte natürlich ein Bereich sein, in dem man Differenzen bilden
kann, etwa ein Körper, z. B. .
Sei wieder
> g:=i->2*i+3;
(2.2.2)
dann ist
> Delta(g);
(2.2.3)
Also ist das Ergebnis eine konstante Folge mit Wert 2. Insbesondere war streng monoton
steigend, denn
ist positiv, d. h.
für alle
.
MATH: Eine Folge mit konstanter Differenzenfolge heißt arithmetische Progression.
ÜBUNG [01]:
Gib arithmetische Progressionen allgemein in Abhängigkeit von und
an.
MATH: Die nächst schwierigeren Folgen sind diejenigen, deren Differenzenfolge eine
arithmetische Progression ist.
> Del2:=Delta@Delta;
(2.2.4)
Sei wieder:
> a:=(i::posint)->i^2;
(2.2.5)
Wir werden also Schiffbruch erleiden:
> Del2(a);
Error, (in Delta) invalid input: a expects its 1st argument,
i, to be of type posint, but received i+1
Wir setzen wieder
> a:=i->i^2;
(2.2.6)
und erhalten nun:
> Del2(a);
(2.2.7)
Damit sind wir aber immer noch nicht zufrieden. Wir verbessern unser Programm Delta ein
wenig:
> Delta:=proc(f::procedure)
local i;
unapply(expand(f(i+1)-f(i)),i)
end proc:
und erhalten schließlich:
> Del2(a);
(2.2.8)
Man kann sich vorstellen, wie das weitergeht. Hier eine Wiederholung der Rechenoperationen
von Folgen, die aus denen von Abbildungen folgen:
MATH: Da man reelle Zahlen addieren und multiplizieren kann, kann man dies auch für reelle
Folgen machen, nämlich werteweise. Z. B. bei der Multiplikation von Folgen und :
.
Ebenso lassen sich Folgen mit reellen Zahlen (Konstanten) multiplizieren. Die reellwertigen
Folgen bilden also einen Ring, wie man nachrechnen kann.
Hier einige Beispiele:
> (a+g)(12);
171
(2.2.9)
2300
(2.2.10)
17
(2.2.11)
> (a*g)(10);
> (13+a)(2);
> (13*a)(2);
52
(2.2.12)
MAPLE: Dem letzten Beispiel liegt ein konstruktiver Trick von Maple zugrunde, nämlich:
.
Überzeuge dich:
> 13(2);
13
(2.2.13)
Das bedeutet, dass MAPLE 13 sowohl als die Zahl 13 , als auch als die konstante Abbildung
interpretiert (für eine nicht näher definierte Menge ).
MATH: Eine Folge , deren Differenzenfolge
Progression.
> b:=i->5*3^i;
ein Vielfaches von ist, heißt geometrische
(2.2.14)
> Delta(b)(i);
(2.2.15)
Vergleiche mit:
> (2*b)(i);
(2.2.16)
ÜBUNG [02]:
Schreibe alle geometrischen Progressionen in Abhängigkeit von
und der Zahl hin, wobei
durch
definiert ist.
DENKANSTOSS: Wie kann man einfache Zinsrechnung mit arithmetischen Progressionen
simulieren? Was haben geometrische Progressionen mit Zinseszinsrechnung zu tun? Vergleiche
die beiden.
Eine alternative Datenstruktur
MAPLE: Die letzte Rechnung hat gezeigt, dass unsere Datenstruktur für Folgen als Funktionen
aufgefasst manchmal etwas umständlich ist. Falls für
ein geschlossener Ausdruck wie
etwa
bei arithmetischen Progressionen oder
bei geometrischen Progressionen
existiert, so genügt es, diesen anzugeben. Man muss dann aber die Disziplin haben, immer
(oder einen anderen fest gewählten Variablennamen) zu benutzen und sich daran zu erinnern,
dass für diesen nur natürliche Zahlen eingesetzt werden dürfen.
> A:=a(n);
(2.3.1)
> subs(n=12,A);
144
(2.3.2)
> map(i->subs(n=i,A),[$1..20]);
(2.3.3)
MAPLE: Man kommt zu der alten Datenstruktur zurück durch:
> unapply(A,n);
(2.3.4)
> G:=g(n);
(2.3.5)
Komposition und Differenzenoperator in der neuen Datenstruktur:
> tA:=subs(n=G,A);
(2.3.6)
> delta:=proc(a::algebraic)
expand(subs(n=n+1,a)-a)
end proc:
> delta(A);
(2.3.7)
> delta(delta(A));
2
> expand(delta(binomial(n,3))-binomial(n,2));
0
(2.3.8)
(2.3.9)
MATH: Man kann nicht erwarten, dass die gerade diskutierte Datenstruktur für Folgen immer
angewendet werden kann. Ist z. B. die Folge rekursiv definiert, so ist nicht klar, ob man einen
geeigneten Ausdruck findet.
> h:=proc(i)
if i=1 then return 1 end if;
>
return (i^2+1)*h(i-1);
end proc:
> map(n->h(n),[$1..10]);
(2.3.10)
> h(n);
Error, (in h) too many levels of recursion
In diesem Fall ist es fatal, die p o s i n t-Abfrage in der Funktionsdefinition wegzulassen.
Jedenfalls erwartet man im vorliegenden Fall keinen geschlossenen Ausdruck für
, oder
zumindest keinen, den Maple sofort hinschreiben kann.
> h:=proc(i::posint)
if i=1 then
return 1;
end if;
return (i^2+1)*h(i-1);
end proc:
> h(n);
Error, invalid input: h expects its 1st argument, i, to be
of type posint, but received n
Will man die Fehlermeldung oben vermeiden, muss man beim Programmieren ein wenig
aufpassen:
> h:=proc(i::{posint,symbol})
if i::symbol then
return 'procname(args)'
end if;
if i=1 then
return 1
end if;
return (i^2+1)*h(i-1);
end proc:
> S:=h(i);
(2.3.11)
> i:=3; S;
50
(2.3.12)
22100
(2.3.13)
> i:=5; S;
> i:='i';S;
(2.3.14)
ÜBUNG [03]:
Sei
fest gewählt. Was liefert der Differenzenoperator angewandt auf die Folge
?
(Hinweis: Benutze den Maple-Befehl binomial. Mache zunächst Experimente für kleine ,
wobei der Befehl expand hilfreicher ist als der Befehl s i m p l i f y. Beweise dann deine
Vermutung.)
>
Der Summenoperator: Reihen
MATH: Der Differenzenoperator ist als Abbildung
surjektiv, denn es gibt ein
Rechtsinverses: den Summenoperator, wie unten programmiert. Man nennt die neu entstandene
Folge die zugehörige Reihe. (Wir unterscheiden uns etwas von der gewöhnlichen Nomenklatur,
weil bei unseren Reihen nur bis
summiert wird und sonst bis .)
> Sigma:=proc(f::procedure)
local i;
unapply(sum(f(i),i=1..n-1),n)
end proc:
> a:='a';
(2.4.1)
> a:=i->i^2;
(2.4.2)
> Sigma(a)(n);
(2.4.3)
> as:=Sigma(a);
(2.4.4)
> map(as,[$1..20]);
(2.4.5)
> Delta(a);
(2.4.6)
> aa:=Delta(Sigma(a));
(2.4.7)
> simplify(aa(n));
(2.4.8)
Hier ist die entsprechende Funktion für die vereinfachte Datenstruktur:
> sigma:=proc(A::algebraic)
local k;
subs(k=n-1,sum(A,n=1..k))
end proc:
> A;
(2.4.9)
> sigma(A);
(2.4.10)
> delta(sigma(A));
(2.4.11)
MAPLE: Es ist in Maple zwischen den Befehlen sum und add zu unterscheiden: Bei sum sucht
Maple symbolisch eine Formel und setzt eventuell danach konkrete Werte ein. Bei add werden
konkrete Zahlen aufaddiert. Insbesondere kann man bei add nicht mit unbestimmten
Summationsgrenzen arbeiten.
ÜBUNG [04]:
1) Rechne die Summenformel für die arithmetische Reihe, also die Reihe zu der in Aufgabe 01
bestimmten arithmetischen Progression, aus.
2) Benutze Maple um die Summenformel für die geometrische Reihe auszurechnen, also die zur
in Aufgabe 02 bestimmten geometrischen Progression zugehörige Reihe.
Vorsicht! Bei unserem Operator wird bis
Formeln für die Summe bis n.
DENKANSTOSS:
summiert. In der Literatur findet man die
. (Teleskopsumme)
Komplexwertige Folgen
MATH: Bislang haben wir uns auf reellwertige Folgen beschränkt. Außer dem Konzept der
Monotonie übertragen sich alle Konzepte, die wir gerade kennengelernt haben. Wir geben nur
ein Beispiel, wo man mit Hilfe der komplexwertigen Folgen gewisse reellwertige besser
verstehen kann.
> f:=proc(n)
if n=1 then return 2 end if;
if n=2 then return 0 end if;
return 2*f(n-1)-2*f(n-2)
end proc:
> map(f,[$1..20]);
(2.5.1)
Später werden wir lernen, dass diese Folge etwas mit dem Polynom
zu tun hat. Und
in der Tat, diese reelle Folge ist Summe von zwei komplexwertigen geometrischen
Progressionen :
> fn:=n->(1+I)^n+(1-I)^n;
(2.5.2)
> map(fn,[$1..20]);
(2.5.3)
ÜBUNG [05]:
Zeige
. (Beachte: es genügt nicht, nur die ersten 10 oder 20 Glieder der Folgen zu
vergleichen. (Warum nicht?))
Quotienten- und Produktoperator
MATH: Für - oder -wertige Folgen, also reell- oder komplexwertige Folgen, die niemals
den Wert Null annehmen, ergibt es Sinn, in Analogie zum Differenzen- und Summenoperator
den Quotienten- und den Produktoperator einzuführen. (Schließlich ist
bzw.
zusammen mit der Multiplikation eine abelsche Gruppe, genau wie bzw. mit
der Addition.)
Wir begnügen uns mit der ersten Datenstruktur:
> QuO:=proc(a::procedure)
unapply(simplify(a(n+1)/a(n)),n);
end proc:
> QuO(n->12);
(2.6.1)
Also eine konstante Folge.
Die geometrische Folge wird konstant bei Anwendung des Quotientenoperators:
> QuO(n->a*q^n);
(2.6.2)
MATH: Eine Folge mit positiven Werten ist genau dann monoton steigend, wenn
Werte
liefert.
BEISPIEL:
nur
ist eine monoton steigende Folge:
> a:=n->(1+1/n)^n;
(2.6.3)
Dies ist sicher eine positive Folge, so dass wir mit dem Quotientenoperator versuchen können,
die Monotonie zu entscheiden:
ist genau dann monoton steigend, wenn
> QuO(a);
(2.6.4)
größer als 1 ist.
> simplify(((n+2)/(n+1))*(n/(n+1)));
(2.6.5)
Also bekommt man mit Hilfe der Bernoulli-Ungleichung:
.
> aa:=simplify((1-n/(n+1)^2)*(1+1/(n+1)));
(2.6.6)
> expand(numer(aa));expand(denom(aa));
(2.6.7)
(2.6.7)
also
. Damit ist
monoton steigend.
ÜBUNG [06]:
Zeige, dass die Folge monoton fallend ist.
> b:=n->(1+1/n)^(n+1);
(2.6.8)
DENKANSTOSS: Der folgende Produktoperator ist rechtsinvers zum Quotientenoperator:
> PrO:=proc(a::procedure)
unapply(product(a(i),i=1..n-1),n);
end proc:
> PrO(n->2);
(2.6.9)
> PrO(n->n);
(2.6.10)
Vektorraumaspekt (freiwillig - basiert auf linearer Algebra)
MATH: Die bisherigen Ausführungen über Folgen waren elementar in dem Sinne das meistens
nur einzelne Folgen betrachtet oder untersucht wurden und kein Gebrauch davon gemacht
wurde, dass
ein -Vektorraum ist, sofern
ein Körper ist. Sicher wirst du gemerkt haben,
dass viele der Operatoren lineare Abbildungen waren und dass einige Begriffsbildungen in der
Linearen Algebra bereits allgemeiner angesprochen worden sind.
Wir gehen in der folgenden Aufgabe der Einfachheit halber von einem Körper aus, für den
für alle
gilt.
freiwillige ÜBUNG:
Gehe den gesammten Abschnitt unter dem Vektorraumaspekt durch. Insbesondere:
1.) Ist der Differenzenoperator
eine lineare Abbildung?
2.) Wie heißen die Elemente von
und die von
?
3.) Was ist die Dimension von
für
? Kennst du eine Basis? Kennst du sogar eine
besonders schöne Basis?
4.) Wie heißen die Eigenvektoren zum Eigenwert
von ?
5.) Was ist die Dimension des Eigenraumes
für
?
6.) Ist der Summenoperator
eine lineare Abbildung?
7.) Sind Produkt und Quotientenoperatoren auch linear?
Antworte kurz, aber mit Verständnis (außer bei 3., dort kann die Antwort lang sein, aber
dennoch mit Verständnis)!
freiwillige ÜBUNG:
Betrachte die Folge aus dem Unterabschnitt komplexwertige Folgen:
1.) Mache dir klar, dass
gilt. Der Teilraum
ist also -invariant.
2.) Gib die Matrix der Einschränkung von auf diesen Teilraum bzgl. der Basis
an.
3.) Erkläre hiermit, warum die angegebene Zerlegung der Folge in die Summe zweier
Folgen in existiert, nicht aber in .
Herunterladen