\label{buch:elliptisch:aufgabe:3}%
Aus der in Aufgabe~\ref{buch:elliptisch:aufgabe:2} konstruierten Folge
$k_n$ kann zu einem vorgegebenen $u$ ausserdem die Folge $u_n$
mit der Rekursionsformel
\[
u_{n+1} = \frac{u_n}{1+k_{n+1}}
\]
und Anfangswert $u_0=u$ konstruiert werden.
Die Landen-Transformation (siehe \cite[80]{buch:ellfun-applications})
\index{Landen-Transformation}%
führt auf die folgenden Formeln für die Jacobischen elliptischen Funktionen:
\begin{equation}
\left.\qquad
\begin{aligned}
\operatorname{sn}(u_n,k_n)
&=
\frac{
(1+k_{n+1})\operatorname{sn}(u_{n+1},k_{n+1})
}{
1 + k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2
}
\\
\operatorname{cn}(u_n,k_n)
&=
\frac{
\operatorname{cn}(u_{n+1},k_{n+1})
\operatorname{dn}(u_{n+1},k_{n+1})
}{
1 + k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2
}
\\
\operatorname{dn}(u_n,k_n)
&=
\frac{
1 - k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2
}{
1 + k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2
}
\end{aligned}
\qquad\right\}
\label{buch:elliptisch:aufgabe:3:gauss}
\end{equation}
Die Transformationsformeln
\eqref{buch:elliptisch:aufgabe:3:gauss}
sind auch als Gauss-Transformation bekannt.
\index{Gauss-Transformation}%
Konstruieren Sie daraus einen numerischen Algorithmus, mit dem sich
gleichzeitig die Werte aller drei Jacobischen elliptischen Funktionen
für vorgegebene Parameterwerte $u$ und $k$ berechnen lassen.

\begin{loesung}
In der ersten Phase des Algorithmus werden die Folgen $k_n$ und $k_n'$ 
sowie $u_n$ bis zum Folgenindex $N$ berechnet, bis $k_N\approx 0$
angenommen werden darf.
Dann gilt
\begin{align*}
\operatorname{sn}(u_N, k_N) &= \operatorname{sn}(u_N,0) = \sin u_N
\\
\operatorname{cn}(u_N, k_N) &= \operatorname{cn}(u_N,0) = \cos u_N
\\
\operatorname{dn}(u_N, k_N) &= \operatorname{dn}(u_N,0) = 1.
\end{align*}
In der zweiten Phase des Algorithmus können für absteigende
$n$ jeweils die Formeln~\eqref{buch:elliptisch:aufgabe:3:gauss}
angewendet werden um nacheinander die Werte der Jacobischen
elliptischen Funktionen für Argument $u_n$ und Parameter $k_n$
für $n=N-1,N-2,\dots,0$ zu bekommen.
\end{loesung}
\begin{table}
\centering
\begin{tikzpicture}[>=latex,thick]
\def\pfeil#1#2{
	\fill[color=#1!30] (-0.5,1) -- (-0.5,-1) -- (-0.8,-1)
		-- (0,-1.5) -- (0.8,-1) -- (0.5,-1) -- (0.5,1) -- cycle;
	\node[color=white] at (0,-0.2) [scale=5] {\sf #2\strut};
}
\begin{scope}[xshift=-4.9cm,yshift=0.2cm]
\pfeil{red}{1}
\end{scope}

\begin{scope}[xshift=-2.3cm,yshift=0.2cm]
\pfeil{red}{1}
\end{scope}

\begin{scope}[xshift=0.35cm,yshift=-0.3cm,yscale=-1]
\pfeil{blue}{2}
\end{scope}

\begin{scope}[xshift=2.92cm,yshift=-0.3cm,yscale=-1]
\pfeil{blue}{2}
\end{scope}

\begin{scope}[xshift=5.60cm,yshift=-0.3cm,yscale=-1]
\pfeil{blue}{2}
\end{scope}

\node at (0,0) {
\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|}
\hline
n & k_n & u_n & \operatorname{sn}(u_n,k_n) & \operatorname{cn}(u_n,k_n) & \operatorname{dn}(u_n,k_n)%
\mathstrut\text{\vrule height12pt depth6pt width0pt} \\
\hline
\mathstrut\text{\vrule height12pt depth0pt width0pt}%
%\small
0 & 0.90000000000 & 0.60000000000 & 0.54228232286 & 0.84019633556 & 0.87281338478 \\
1 & 0.39286445838 & 0.43076696830 & 0.41576897816 & 0.90947026163 & 0.98656969610 \\
2 & 0.04188568608 & 0.41344935827 & 0.40175214109 & 0.91574844642 & 0.99985840483 \\
3 & 0.00043898784 & 0.41326793867 & 0.40160428679 & 0.91581329801 & 0.99999998445 \\
4 & 0.00000004817 & 0.41326791876 & 0.40160427056 & 0.91581330513 & 1.00000000000 \\
5 & 0.00000000000 & 0.41326791876 & 0.40160427056 & 0.91581330513 & 1.00000000000 \\
%N & 0.00000000000 & 0.41326791876 & 0.40160427056 & 0.91581330513 & 1.00000000000%
N &               & 0.41326791876 & \sin u_N      & \cos u_N      & 1%
%0 & 0.900000000000000 & 0.600000000000000 & 0.542282322869158 & 0.840196335569032 & 0.872813384788490 \\
%1 & 0.392864458385019 & 0.430766968306220 & 0.415768978168966 & 0.909470261631645 & 0.986569696107075 \\
%2 & 0.041885686080039 & 0.413449358275499 & 0.401752141098324 & 0.915748446421239 & 0.999858404836479 \\
%3 & 0.000438987841605 & 0.413267938675096 & 0.401604286793186 & 0.915813298019491 & 0.999999984459261 \\
%4 & 0.000000048177586 & 0.413267918764845 & 0.401604270565476 & 0.915813305135699 & 1.000000000000000 \\
%5 & 0.000000000000001 & 0.413267918764845 & 0.401604270565476 & 0.915813305135699 & 1.000000000000000 \\
%N & 0.000000000000000 & 0.413267918764845 & 0.401604270565476 & 0.915813305135699 & 1.000000000000000 \\
\mathstrut\text{\vrule height12pt depth6pt width0pt} \\
\hline
\end{tabular}
};
\end{tikzpicture}
\caption{Durchführung des auf der Landen-Transformation basierenden
Algorithmus zur Berechnung der Jacobischen elliptischen Funktionen
für $u=0.6$ und $k=0.9$.
Die erste Phase (rot) berechnet die Folgen $k_n$ und $u_n$, die zweite 
(blau)
transformiert die Wert der trigonometrischen Funktionen in die Werte
der Jacobischen elliptischen Funktionen.
\label{buch:elliptisch:aufgabe:3:resultate}}
\end{table}


