\documentclass[12pt]{article}

\usepackage[T1]{fontenc} 
\usepackage[ngerman]{babel}
\usepackage{fullpage,amsmath,amsfonts}

\begin{document}

\title{Mathematisches Programmieren}
\author{Sommersemester 2022}
\date{27.04.2022, 04.05.2022 und 18.05.2022}
\maketitle

\begin{enumerate}
\item Schreiben Sie ein Programm, das die ersten $n$ Glieder der von
der logistischen Abbildung
\begin{equation}
  y_{n+1} = r \, y_n \, (1-y_n)
  \tag{*}
\end{equation}
erzeugten Zahlenfolge zum Anfangswert $y_0=0.5$ berechnet.  Probieren
Sie verschiedene Werte für $r$ im Intervall $[2.5,4]$ aus und stellen
Sie die Folge in einem Koordinatensystem dar.  Wählen Sie dabei $n$
und den dargestellten Abschnitt der Folge sinnvoll.

\item Zeigen Sie mathematisch, dass die logistische Abbildung (*) das
Intervall $[0,1]$ auf sich selbst abbildet, falls $r \in [0,4]$.

\item Teilen Sie das Interval $[0,1]$ in $M$ Teilintervalle.
Schreiben Sie ein Programm, das die logistische Abbildung viele Male
iteriert und erstellen Sie ein Histogramm über die Anzahl der
Folgenglieder, die in jedem Teilintervall liegen.

\item Modifizieren Sie ihr Programm so, dass die Berechnung der
Folgenglieder für einen Vektor von $N$ verschiedenen Werten für $r$
"`parallel"' erfolgt.  Das so erzeugte Histogram ist eine Matrix, die
Sie mit der Funktion \texttt{imshow} anzeigen lassen können.

\item Schreiben Sie ein Programm, das die fraktale Dimension im Sinne
der "`Box-counting Dimension"' des Attraktors der logistischen
Abbildung am kritischen Wert des Bifurkationsparameters,
$r=3.569945672$, berechnet.

\emph{Hinweise:} 

\begin{itemize}
\item Die "`Box-counting Dimension"' (oder auch "`Capacity
Dimension"') ist definiert als
\[
  d_{\text{capacity}} = \lim_{\varepsilon \to 0} 
  \frac{\log N(\varepsilon)}{\log \varepsilon^{-1}} \,,
\]
wobei $\varepsilon$ die Intervalllänge der Unterteilung aus Aufgabe~3
ist und $N(\varepsilon)$ die Anzahl der Intervalle bezeichnet, die von
der Lösungsfolge berührt werden.

Dieser Grenzwert kann numerisch nicht direkt berechnet werden.  Um
eine gute Näherung zu erhalten, tragen Sie $\varepsilon$ und
$N(\varepsilon)$ in ein doppelt-logarithmisches Koordinatensystem auf,
so dass die Dimension als Steigung der Ausgleichsgeraden abgelesen
werden kann.  Ggf.\ müssen Sie das Ablesen der Geradensteigung auf
einen kleineren Bereich beschränken, in denen die lineare Abhängigkeit
zwischen $\log \varepsilon$ und $\log N(\varepsilon)$ robust ist.

\item Um $N(\varepsilon)$ einfach zu berechnen, erstellen Sie zunächst
ein Histogramm wie in Aufgabe~2 für die feinste Einteilung mit
$N_{\text{bins}} = 2^k$ für $k \in \mathbb N$.  Dieses Histogramm
vergröbern Sie schrittweise, indem Sie benachbarte Einträge sukzessive
paarweise addieren.

\end{itemize}

\item Nachdem Sie in Aufgabe~5 einen geeigneten Bereich identifiziert
haben, in dem sich die Steigung der Geraden im doppelt-logarithmischen
Koordinatensystem robust ablesen lässt, modifizieren sie Ihren Code,
so dass diese Geradensteigung, also die Dimension
$d_{\text{capacity}}$, numerisch als Differenzenquotient berechnet
wird.  Führen Sie diese Rechnung, wie in Aufgabe~4, "`parallel"' für
verschiede Werte von $r$ in einem kleinen Intervall um den kritischen
Wert $r=3.569945672$ aus und stellen Sie $d_{\text{capacity}}$ in
Abhängigkeit von $r$ grafisch da.

\end{enumerate}

\subsection*{Zur Abgabe bis zum 27.05.2022:}

\begin{itemize}
\item Ihren lauffähigen Code zu den Aufgaben~4, 5~und 6.  Wählen Sie
dabei die verschiedenen Parameter so, dass der Code in angemessener
Zeit eine sinnvolle grafische Ausgabe erzeugt.  Achten Sie auf eine
angemessene Beschriftung der Koordinatenachsen und verwenden Sie ggf.\
eine Legende.

\item Die schriftliche Lösung zur Aufgabe~2.

\item Versuchen Sie, aus den Ergebnissen der Aufgabe~6 eine Vermutung
über das Verhalten der "`Box-counting Dimension"' in Abhängigkeit des
Parameters $r$ aufzustellen.

\item Beschreiben Sie die Unsicherheit Ihrer Ergebnisse in
unmittelbarer Nähe des kritischen Wertes des Parameters $r$.

\emph{Hinweis:} Sie können die Zuverlässigkeit ihrer Ergebnisse
abschätzen, in dem Sie numerischen Parameter, nämlich (a) die Anzahl
der Iterationen, die in das Histogramm einfließen, (b) die Anzahl der
Vor-Iterationen, die sie durchführen, bevor Sie das Histogramm
aufnehmen und (c) die Anzahl der Unterteilungen des Histogramms
verändern.  Idealerweise sollte sich das Ergebnis nicht wesentlich
ändern, aber ist das wirklich der Fall?


\end{itemize}

Abgabe der Codes gerne per Email, in einem ZIP-Archiv.  Die
schriftlichen Aufgaben können Sie als PDF beifügen oder am
25.05. persönlich abgeben.



\end{document}
