7  Zweidimensionale diskrete Modelle

7.1 Fibonacci und die Kaninchen

Leonardo da Pisa, auch Fibonacci (Leonardus filius Bonacij, Sohn des Bonacci, geboren ca. 1170) genannt, war italienischer Mathematiker und gilt als der bedeutendste Mathematiker des Mittelalters. Er brachte das arabische Zahlensystem nach Europa. Bekannt sind heute vor allem die nach ihm benannten Fibonacci-Zahlen.

Die Fibonacci-Zahlen sind eine Zahlenfolge, die sich daraus ergibt, dass eine Zahl jeweils die Summe ihrer beiden Vorgänger ist. Begonnen wird hierbei mit 1 1:

1 1 2 3 5 8 13 21 34 55 ...

Das Bildungsgesetz kann man wie folgt formalisieren:

\[x_{n+1}=x_{n-1}+x_n\]

wobei \(x_0=1\) und \(x_1=1\) die sogenannten Anfangswerte sind.
In seinem “Buch der Rechenkunst” (ca. 1202) beschreibt er die Zahlenfolge anhand des Beispiels eines Kaninchenzüchters der herausfinden will, wie viele Kaninchenpaare innerhalb eines Jahres aus einem einzigen Paar entstehen, wenn jedes Paar ab dem zweiten Lebensmonat ein weiteres Paar pro Monat zur Welt bringt. Er kann somit als Begründer der mathematischen Modellierung angesehen werden.

Fibonacci veranschaulichte diese Folge durch die mathematischen Modellierung des Wachstums einer Kaninchenpopulation:

  1. Zu Beginn gibt es ein Paar geschlechtsreifer (reproduktiver) Kaninchen.

  2. Jedes neugeborene Paar wird im zweiten Lebensmonat geschlechtsreif.

  3. Jedes geschlechtsreife Paar wirft pro Monat ein weiteres Paar.

  4. Es kommen keine Tiere von außen in die Population oder verlassen diese

Das erste Paar erzeugt seinen Nachwuchs im ersten Monat. Jeden Folgemonat kommt dann zu der Anzahl der Paare, die im letzten Monat gelebt haben, eine Anzahl von neugeborenen Paaren hinzu, die gleich der Anzahl der Paare ist, die bereits im vorletzten Monat gelebt haben, da genau diese geschlechtsreif sind und sich nun vermehren (Abbildung 7.1).

Abbildung 7.1:
Kaninchenwachstum nach Fibonacci.

Festlegung der Zustandsvariabelen

Die Kaninchenpaare (im folgenden kurz Kaninchen genannt) unterscheiden sich durch die Eigenschaft der Reproduktivität. Es gibt Neugeborene, die sich noch nicht vermehren können, und bereits Reproduktive. Da wir Aussagen über die Anzahl der Kaninchen von Monat zu Monat bestimmen wollen, liegt es Nahe die Zeit in Monatsschritten zu betrachten. Somit liegt es nahe, als Zustandsvariablen die Neugeborenen zur Zeit (\(N_n\)) und die Reproduktiven zur Zeit t (\(R_n\)) zu beschreiben. Wir erhalten also die Zustandsvariablen

\(N_n, \qquad n\in\mathbb{N}_0 \qquad\) die Anzahl der Neugeborenen(paare)
\(R_n, \qquad n \in \mathbb{N}_0\qquad\) die Anzahl der Reproduktiven(paare)

Die Gesamtzahl der Kaninchen(paare) \(F_n\) ergibt sich dann zu

\[F_n=N_n+R_n\]

\(F_n\) ist keine Zustandsvariable, sondern eine abgeleitete Größe.

Prozessbeschreibungen

Gesucht ist eine Funktion \(f\) (hier eine Folge), die zu jeder Zeit \(n\) die Werte \(N_n\) und \(R_n\) angibt:

\[\begin{aligned} \label{funktion} f:\mathbb{N}&\longrightarrow& \mathbb{N}\times \mathbb{N}\\ n&\mapsto& (N_n,R_n)\nonumber \end{aligned}\]

Die Prozesse, die \(f\) bestimmen, sind:
Reproduktion: Reproduktive Kaninchen bringen Neugeborene hervor
Altern: Neugeborene Kaninchen werden reproduktiv
Man erhält folgende Gleichungen

\[\begin{array}{lll} N_{n+1} &= N_n + R_n - N_n &=R_n\\ R_{n+1} &= R_n + N_n &= R_n +N_n \end{array}\]

Diese Gleichungen sind nun die Vorschrift, wie man aus den Kaninchenzahlen zur Zeit \(n\) die Zahl zur Zeit \(n+1\) bestimmt. Zusammen mit der Anfangsbedingung \(N_0=1\), \(R_0=0\) hat man das System nun vollständig beschrieben.

Das Modell “arbeitet” mit diskreten Zeitschritten. Mathematisch handelt es sich daher um ein Differenzenmodell.

7.2 Das Fibonacci-Modell als zweidimensionales Modell

Das Modell kann man nun auch als zweidimensionales Modell auffassen, bei dem die Zustände \(N\) und \(R\) nun zu einem Zustandsvektor zusammengefasst werden:

\[ {N_{n+1} \choose R_{n+1}} = {R_{n} \choose R_{n}+N_{n}} =\left ( \begin{array}{cc} 0 & 1 \\ 1 & 1 \end{array} \right ) \cdot {N_n \choose R_n} \tag{7.1}\]

Der Zustand zur Zeit \(n+1\) wird also aus dem Zustand zur Zeit \(n\) durch Multiplikation mit einer Matrix mit konstanten Elementen erreicht. Solche Modelle nennt man lineare Modelle. Informationen zu Vektoren und Matrizen sind in Anhang E zusammengefasst. Weitere Informationen zu Matrizen als lineare Abbildungen findet man in Anhang F.

7.3 Lösung des Systems

Viele einfache Modelle kann man noch analytisch lösen. Dies bedeutet, dass man eine Funktion findet, die den Systemzustand für jeden Zeitpunkt explizit angibt. Bei größeren Modellen ist dies meistens nicht mehr möglich. Man löst sie iterativ, d.h. man berechnet den Verlauf von Schritt zu Schritt. Wenn man dies für das Kaninchenmodell tut, stellt man fest, dass die abgeleitete Größe \(F_n=N_n+R_n\), die die Gesamtzahl der Kaninchen angibt, gerade die Fibonacci-Zahlen sind.

n 0 1 2 3 4 5 ...
N 1 0 1 1 2 3 ...
R 0 1 1 2 3 5 ...
F 1 1 2 3 5 8 ...

 

 

 
Abbildung 7.2: Das Kaninchenmodell nach Fibonacci. Die ersten Schritte, links linear, mitte logarithmisch, rechts Phasenraum.

Wie Abbildung 7.2 (Mitte) zeigt, besteht ein linearer Zusammenhang, wenn man den Logarithmus der Ergebnisse betrachtet:

\[\log F_n \sim n \qquad \mbox {resp.} \qquad \log F_n = r\cdot n \qquad \mbox {resp.} \qquad F_n = 10^{r \cdot n}\]

Es handelt sich also um ein exponentielles Wachstum mit der Proportionalitätskonstanten r (hier nicht weiter bestimmt).

Iterativ bestimmt man die Lösung des Fibonacci-Modells, indem man die Fibonacci-Matrix

\[A=\begin{pmatrix} 0 & 1 \\ 1 & 1 \end{pmatrix}\]

immer wieder auf den Vektor \(x=\begin{pmatrix} N \\ R \end{pmatrix}\) anwendet, wobei mit \(x_0=\begin{pmatrix} 1 \\ 0 \end{pmatrix}\) gestartet wird:

\[\begin{aligned} x_1&=&A \cdot x_0= \begin{pmatrix} 0 & 1 \\ 1 & 1 \end{pmatrix} \cdot \begin{pmatrix} 1 \\ 0 \end{pmatrix} = \begin{pmatrix} 0 \\ 1 \end{pmatrix}\\ x_2&=& A \cdot x_1= \begin{pmatrix} 0 & 1 \\ 1 & 1 \end{pmatrix} \cdot \begin{pmatrix} 0 \\ 1 \end{pmatrix} = \begin{pmatrix} 1 \\ 1 \end{pmatrix}\\ &\ldots&\\ x_{n} &=& A \cdot x_{n-1}=A^n \cdot x_0 \end{aligned}\]

Man erhält so die Lösung

\[\left [ \begin{pmatrix} 1 \\ 0 \end{pmatrix} , \begin{pmatrix} 0 \\ 1 \end{pmatrix}, \begin{pmatrix} 1 \\ 1 \end{pmatrix}, \begin{pmatrix} 1 \\ 2 \end{pmatrix} , \cdots \right ]\]

Wir haben hier also allgemein betrachtet ein lineares System der Form

\[ x_{n+1} = A \cdot x_n \tag{7.2}\]

wobei A eine Matrix und \(x_n\) resp. \(x_{n+1}\) Vektoren sind.

Trägt man \(N_n\) und \(R_n\) des Fibonacci-Modells 7.1 im sogenannten Phasenraum auf (Abbildung 7.2, rechts), so sieht man, dass sich das System nach kurzer Einschwingphase nur noch in eine Richtung bewegt, also dass das Verhältnis von Neugeborenen zu Reproduktiven konstant wird. Dieses Verhältnis bzw. Richtung kann man bestimmen. Wenn sich das System nur noch in eine Richtung bewegt, bedeutet das, das ein Vektor unter Anwendung der Matrix seine Richtung nicht ändert, also nur gestreckt oder gestaucht wird. Einen solchen Vektor nennt man auch Eigenvektor, den Streckungs- bzw. Stauchungswert Eigenwert (siehe Anhang E und Anhang F). Wenn wir diese Richtung, in die das System läuft bestimmen wollen, müssen wir also Eigenwerte und Eigenvektoren bestimmen. Man sucht also eine Zahl \(\lambda\), den Eigenwert, und einen Vektor \(v\), den Eigenvektor, für die gilt

\[A\cdot v = \lambda \cdot v\]

Dies bedeutet, dass die Matrix A den Eigenvektor \(v\) gerade um den Eigenwert \(\lambda\) streckt1.

Um die Eigenwerte zu bestimmen, löst man die sogenannte charakteristische Gleichung (siehe auch Anhang F):

\[\det (A-\lambda \cdot I)= \det \left ( \begin{pmatrix} 0-\lambda & 1 \\ 1 & 1-\lambda \end{pmatrix}\right ) = -\lambda\cdot(1-\lambda)-1 =0\]

Im Falle der Fibonacci-Matrix erhält man 2 verschiedene reelle Eigenwerte mit ihren zugehörigen Eigenvektoren:

\[\lambda_1=\frac{1+\sqrt{5}}{2}=1.618 \qquad v_1 = c_1 \cdot \begin{pmatrix} 1 \\ \lambda_1 \end{pmatrix}, c_1 \ne 0\]

In die Richtung von \(v_1\) findet eine Streckung um den Faktor \(\lambda_1\) statt.

\[\lambda_2=\frac{1-\sqrt{5}}{2}= -0.618 \qquad v_2 = c_2 \cdot \begin{pmatrix} 1 \\ \lambda_2 \end{pmatrix}, c_2 \ne 0\]

In die Richtung von \(v_2\) findet eine alternierende Stauchung um den Faktor \(\lambda_2\) statt, die Bedeutung dieser Richtung wird also immer kleiner. Nach einer gewissen Zeit “wirkt” nur noch \(\lambda_1\). Letztlich gilt also näherungsweise \(x_{n+1}=\lambda_1\cdot x_n\).

7.4 Überlagerung von Lösungen – Anfangswertproblem *

Die Mathematik liefert uns einen weiteren sehr weitreichenden Aspekt. Wenn man verschiedene Lösungen eines linearen Systems gefunden hat, dann ist jede Linearkombination dieser Lösungen auch eine Lösung. Wir haben bisher zwei Lösungen gefunden, die das Systemverhalten beschreiben, nämlich

\[ x_n = \lambda_1^n\cdot v_1 \tag{7.3}\]

und

\[ x_n = \lambda_2^n\cdot v_2 \tag{7.4}\]

Welche Lösung ist denn nun die “Richtige”? Diese Frage kann man nur beantworten, wenn man nach einer bestimmten Lösung zu einem bestimmten Anfangswert sucht. Hierbei ist natürlich zu berücksichtigen, dass ein Anfangswert hier ein Anfangsvektor ist (Anzahl neugeborener und Anzahl Reproduktiver).

Die bisherigen gefunden Lösungen sagen bisher folgendes aus: Startet man mit einem Verhältnis von Neugeborenen zu Reproduktiven, dass dem eines Eigenvektors \(v_1\) zum ersten Eigenwert \(\lambda_1\) entspricht, so bleibt dieses Verhältnis bestehen. Die Lösung zu diesem Anfangswert \(v_1\) ist dann (7.3). Das gleiche gilt für einen Eigenvektor \(v_2\) zum zweiten Eigenwert \(\lambda_2\). Die Lösung ist dann (7.4). Es handelt sich jeweils um eine spezielle Lösung zu einem gegebenen Anfangswert. Zu Anfangswerten, die nicht dem Verhältnis der Eigenwerte entsprechen, ergibt sich die spezielle Lösung aus der Überlagerung der Lösungen (7.3) und (7.4), da es sich um ein lineares Modell handelt. Man nennt dies auch Superposition. Seien \(v_1\) und \(v_2\) nun Eigenvektoren zu \(\lambda_1\) und \(\lambda_2\), so heißt

\[ x_n = a_1 \cdot \lambda_1^n\cdot v_1 + a_2 \cdot \lambda_2^n\cdot v_2 \tag{7.5}\]

für beliebige \(a_1, a_2 \in \mathbb{R}\) eine allgemeine Lösung.

Um eine spezielle Lösung zu einem bestimmten Anfangswert zu erhalten, muss man \(a_1\) und \(a_2\) bestimmen.

Angenommen, wir haben den Anfangswert \(x_0\) gegeben, dann setzt man in Gleichung 7.5 n=0 und erhält2:

\[x_0 = a_1 \cdot \lambda_1^0\cdot v_1 + a_2 \lambda_2^0\cdot v_2 = a_1 \cdot v_1 + a_2\cdot v_2\]

Man hat so ein Gleichungssystem mit den zwei Unbekannten \(a_1\) und \(a_2\), das zu lösen ist.

7.5 Fibonacci und der goldene Schnitt *

Zwei aufeinanderfolgende Fibonacci-Zahlen stehen im Verhältnis \(\lambda_1:1\) zueinander: \(F_{n+1}=\lambda_1\cdot F_n\), also \(F_{n+1}:F_n=\lambda_1=\frac{1+\sqrt{5}}{2}\approx1.618\). Dieses Verhältnis ist eine berühmte Zahl und beschreibt in Kunst und Architektur ein Verhältnis, das als besonders harmonisch empfunden wird. Es heißt auch goldener Schnitt und findet sich z.B. bei Bilderrahmen: Ein Rechteck mit den Seitenlängen \(a\) und \(b\) (\(a>b\)) genügt dem goldenen Schnitt wenn, gilt:

\[(a+b) : a = a:b\]

Zum Beweis setzt man b=1 und löst nach a auf.


  1. Eigenwerte werden in der Literatur fast ausnahmslos mit dem griechischen Buchstaben \(\lambda\) (Lambda) bezeichnet.↩︎

  2. Haben wir zum Beispiel zu Beginn ein paar Neugeborene und keine Reproduktiven, so lautet der Anfangsvektor \(x_0=\begin{pmatrix} 1 \\ 0 \end{pmatrix}\)↩︎