In diesem Artikel werden für zwei Folgen [1]
und
die Gleichheit ihres rekursiven und eines expliziten Bildungsgesetzes bewiesen.
Vorausgesetzt werden
und
sowie
. Die rekursiven Definitionen sind:


Dabei sind
und
die beiden reellwertigen Lösungen der quadratischen Gleichung
:

Im Anhang findet sich eine Veranschaulichung des Problems anhand einer Umsetzung in der Programmiersprache PHP.
Unter den gegebenen Voraussetzungen gilt:
Beweis:

Zuerst wird bewiesen, dass die Behauptung für das konkrete
gilt:

So weit, so gut. Nun nehmen wir an, dass die Behauptung für ein konkretes
bewiesen wurde, und zeigen, dass sie dann auch für
gilt:

Folglich gilt die Behauptung für alle
.
Zuerst wird bewiesen, dass die Behauptung für das konkrete
gilt:

Nun nehmen wir an, dass die Behauptung für ein konkretes
bewiesen wurde, und zeigen, dass sie dann auch für
gilt:

Folglich gilt die Behauptung für alle
. Tada!
Die Folgen
und
sind eng verwandt, was ihrer Definitionen wegen auch nicht verwunderlich ist. Aus den Bildungsgesetzen folgen direkt:
Ebenso wie
und
sind die Graphen der Folgen demnach Spiegelungen an
. Schaut man sich außerdem die folgenden Verallgemeinerungen
mit
und
mit
an,

… stellt man fest: Diese Folgen sind unter den obigen Voraussetzungen genau dann für alle natürlichen Zahlen definiert, wenn
und
. Exakt jene Werte, die als Startwert
die Rekursion
irgendwann zur Division durch null führen würden, gibt also
an.
gibt genau all jene Werte an, die als Startwert
die Rekursion
irgendwann zur Division durch null führen würden. Beweis: trivial. ;-)
In Kürze werde ich in einem zweiten Artikel Konvergenz und Grenzwerte der Folgen herleiten.
Rekursive und explizite Bildungsgesetze lassen sich gut an einem einfachen Beispiel illustrieren: Die Folge der Kerzenzahlen auf der Geburtstagstorte.
Rekursiv nennt man solche Bildungsgesetze von Folgen, die auf die Folge selbst Bezug nehmen: „Zum ersten Geburtstag ist eine Kerze auf der Torte, zu jedem anderen Geburtstag ist eine Kerze mehr als im Vorjahr auf der Torte“ – die Zahl der Kerzen wird über die Zahl der Kerzen des Vorjahres bestimmt. Nicht immer ist so eine Definition praktisch. Möchte man etwa wissen, wie viele Kerzen zum achtzehnten Geburtstag auf die Torte sollen, muss man sich erst bis zum ersten Geburtstag zurückwühlen und von dort an dann für jedes Jahr eine Kerze hinzunehmen, bis man beim achtzehnten Geburtstag ankommt und weiß: Es sind 18 Kerzen.
Explizit nennt man solche Bildungsgesetze, die zu einer gegebenen Nummer direkt das entsprechende Glied der Folge ermitteln. Im Kerzenbeispiel: „Zum n-ten Geburtstag sind n Kerzen auf der Torte.“ Man weiß dann sofort: Zum 18-ten Geburstag müssen 18 Kerzen auf die Torte.
Es ist allerdings nicht immer einfach, von einem rekursiven Bildungssgesetz auf ein explizites Bildungsgesetz zu schließen. Oft haben einfache rekursive Gesetze aufwendige explizite Darstellungen.
Man kann das in diesem Artikel behandelte Problem gut in einer Programmiersprache nachvollziehen, was die Aufgabe manchem Programmierer sicherlich leichter zugänglich macht. Ich wähle dafür PHP. Man möge mir verzeihen, dass die Beispiele weder bestmöglich optimiert sind noch ungültige Parameter abfangen.
Beim Ausprobieren ist zu beachten, dass Rechner mit Fließkommazahlen nur bedingt genau rechnen und weiteren Beschränkungen unterworfen sind, weshalb die mathematisch äquivalenten Funktionen im Grenzbereich in PHP ggf. abweichende Ergebnisse liefern können.
Los geht’s – gegeben ist ein rekursive Funktion:
<?php
// p und q sind Fließkomma-Konstanten mit p * p > 4 * q und p * q != 0
// $n ist eine Ganzzahl mit $n >= 1
function alpha ($n) {
return ($n == 1)? 0: -q / (p + alpha ($n - 1));
}
?>
Rekursive Funktionen können sehr elegant sein, sind allerdings bei der Berechnung selten die effizienteste Variante. Man kann dieselbe Aufgabe mit einer iterativen Lösung angehen, die aus technischen Gründen weniger Arbeitsspeicher beansprucht und meist schneller ist:
<?php
// p und q sind Fließkomma-Konstanten mit p * p > 4 * q und p * q != 0
// $n ist eine Ganzzahl mit $n >= 1
function alpha ($n) {
$z = 0;
for ($i = 1; $i < $n; $i++) {
$z = -q / (p + $z);
}
return $z;
}
?>
Prinzipiell unterscheiden sich rekursive und iterative Varianten jedoch nicht. In beiden Fällen wird das Ergebnis durch wiederholte Ausführung derselben Berechnung ermittelt, wobei angefangen mit null jedes Zwischenergebnis immer wieder als Eingabe der Berechnung des nächsten Zwischenergebnisses verwendet wird. Möchte man alpha von 50 ausrechnen, wird in der rekursiven Variante 50-mal die Funktion alpha aufgerufen, in der iterativen Variante 50-mal die for-Schleife durchlaufen.
Schöner wäre die Berechnung des Ergebnisses nach einer expliziten Formel: Man gibt n ein, die Funktion wird ohne Wiederholungen einmal durchlaufen und spuckt das Ergebnis aus. Eine solche Funktion gibt es:
<?php
// p und q sind Fließkomma-Konstanten mit p * p > 4 * q und p * q != 0
// $n ist eine Ganzzahl mit $n >= 1
function alpha ($n) {
$a = -p / 2 - sqrt (p * p / 4 - q);
$b = -p / 2 + sqrt (p * p / 4 - q);
return q * (pow ($b, $n - 1) - pow ($a, $n - 1)) / (pow ($b, $n) - pow ($a, $n));
}
?>
pow (x, m) berechnet dabei die m-te Potenz von x („x hoch m“) während sqrt die Quadratwurzel ergibt.
Zu zeigen, dass diese explizite Funktion tatsächlich dasselbe errechnet wie die rekursive Variante, ist genau, worum es in dem Beweis geht.