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: 8 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; (1.1.1) > a(12); 144 (1.1.2) > map(a,[$1..20]); (1.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 (1.1.4) > map(a@a,[$1..10]); (1.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 (1.1.6) > map(a@g,[$1..20]); (1.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; (1.1.8) > g(i); (1.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; (1.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; (1.2.2) dann ist > Delta(g); (1.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; (1.2.4) Sei wieder: > a:=(i::posint)->i^2; (1.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; (1.2.6) und erhalten nun: > Del2(a); (1.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); (1.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); (1.2.9) 171 (1.2.9) 2300 (1.2.10) 17 (1.2.11) > (a*g)(10); > (13+a)(2); > (13*a)(2); 52 (1.2.12) MAPLE: Dem letzten Beispiel liegt ein konstruktiver Trick von Maple zugrunde, nämlich: . Überzeuge dich: > 13(2); 13 (1.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 (1.2.14) > Delta(b)(i); (1.2.15) Vergleiche mit: > (2*b)(i); (1.2.16) ÜBUNG [02]: Schreibe alle geometrischen Progressionen in Abhängigkeit von durch und der Zahl hin, wobei 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); (1.3.1) (1.3.1) > subs(n=12,A); 144 > map(i->subs(n=i,A),[$1..20]); (1.3.2) (1.3.3) MAPLE: Man kommt zu der alten Datenstruktur zurück durch: > unapply(A,n); (1.3.4) > G:=g(n); (1.3.5) Komposition und Differenzenoperator in der neuen Datenstruktur: > tA:=subs(n=G,A); (1.3.6) > delta:=proc(a::algebraic) expand(subs(n=n+1,a)-a) end proc: > delta(A); (1.3.7) > delta(delta(A)); 2 > expand(delta(binomial(n,3))-binomial(n,2)); 0 (1.3.8) (1.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]); (1.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); (1.3.11) > i:=3; S; 50 (1.3.12) 22100 (1.3.13) > i:=5; S; > i:='i';S; (1.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'; (1.4.1) > a:=i->i^2; (1.4.2) > Sigma(a)(n); (1.4.3) > as:=Sigma(a); (1.4.4) > map(as,[$1..20]); (1.4.5) > Delta(a); (1.4.6) > aa:=Delta(Sigma(a)); (1.4.7) > simplify(aa(n)); (1.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; (1.4.9) > sigma(A); (1.4.10) > delta(sigma(A)); (1.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]); (1.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; (1.5.2) > map(fn,[$1..20]); (1.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); (1.6.1) Also eine konstante Folge. Die geometrische Folge wird konstant bei Anwendung des Quotientenoperators: > QuO(n->a*q^n); (1.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; (1.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); (1.6.4) größer als 1 ist. > simplify(((n+2)/(n+1))*(n/(n+1))); (1.6.5) Also bekommt man mit Hilfe der Bernoulli-Ungleichung: . > aa:=simplify((1-n/(n+1)^2)*(1+1/(n+1))); (1.6.6) > expand(numer(aa));expand(denom(aa)); (1.6.7) also . Damit ist monoton steigend. ÜBUNG [06]: Zeige, dass die Folge monoton fallend ist. > b:=n->(1+1/n)^(n+1); (1.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); (1.6.9) > PrO(n->n); (1.6.10) Vektorraumaspekt 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. ÜBUNG [07]: 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)! ÜBUNG [08]: 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 .