aboutsummaryrefslogtreecommitdiffstats
path: root/buch/chapters/110-elliptisch/uebungsaufgaben
diff options
context:
space:
mode:
Diffstat (limited to 'buch/chapters/110-elliptisch/uebungsaufgaben')
-rw-r--r--buch/chapters/110-elliptisch/uebungsaufgaben/2.tex61
-rw-r--r--buch/chapters/110-elliptisch/uebungsaufgaben/3.tex135
-rw-r--r--buch/chapters/110-elliptisch/uebungsaufgaben/landen.m60
3 files changed, 256 insertions, 0 deletions
diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex
new file mode 100644
index 0000000..9a1cafc
--- /dev/null
+++ b/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex
@@ -0,0 +1,61 @@
+\label{buch:elliptisch:aufgabe:2}%
+Die Landen-Transformation basiert auf der Iteration
+\begin{equation}
+\begin{aligned}
+k_{n+1}
+&=
+\frac{1-k_n'}{1+k_n'}
+&
+&\text{und}&
+k_{n+1}'
+&=
+\sqrt{1-k_{n+1}^2}
+\end{aligned}
+\label{buch:elliptisch:aufgabe:2:iteration}
+\end{equation}
+mit den Startwerten $k_0 = k$ und $k_0' = \sqrt{1-k_0^2}$.
+Zeigen Sie, dass $k_n\to 0$ und $k_n'\to 1$ mit quadratischer Konvergenz.
+
+\begin{loesung}
+\begin{table}
+\centering
+\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|}
+\hline
+n & k & k' \\
+\hline
+0 & 0.200000000000000 & 0.979795897113271 \\
+1 & 0.010205144336438 & 0.999947926158694 \\
+2 & 0.000026037598592 & 0.999999999661022 \\
+3 & 0.000000000169489 & 1.000000000000000 \\
+4 & 0.000000000000000 & 1.000000000000000 \\
+\hline
+\end{tabular}
+\caption{Numerisches Experiment zur Folge $(k_n,k_n')$
+gemäss \eqref{buch:elliptisch:aufgabe:2:iteration}
+mit $k_0=0.2$
+\label{buch:ellptisch:aufgabe:2:numerisch}}
+\end{table}
+Es ist klar, dass $k'_n\to 1$ folgt, wenn man zeigen kann, dass
+$k_n\to 0$ gilt.
+Wir berechnen daher
+\begin{align*}
+k_{n+1}
+&=
+\frac{1-k_n'}{1+k_n'}
+=
+\frac{1-\sqrt{1-k_n^2}}{1+\sqrt{1-k_n^2}}
+\intertext{und erweitern mit dem Nenner $1+\sqrt{1-k_n^2}$ um}
+&=
+\frac{1-(1-k_n^2)}{(1+\sqrt{1-k_n^2})^2}
+=
+\frac{ k_n^2 }{(1+\sqrt{1-k_n^2})^2}
+\le
+k_n^2
+\end{align*}
+zu erhalten.
+Daraus folgt jetzt sofort die quadratische Konvergenz von $k_n$ gegen $0$.
+
+Ein einfaches numerisches Experiment (siehe
+Tabelle~\ref{buch:ellptisch:aufgabe:2:numerisch})
+bestätigt die quadratische Konvergenz der Folgen.
+\end{loesung}
diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/3.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/3.tex
new file mode 100644
index 0000000..a5d118f
--- /dev/null
+++ b/buch/chapters/110-elliptisch/uebungsaufgaben/3.tex
@@ -0,0 +1,135 @@
+\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}
+
+
diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/landen.m b/buch/chapters/110-elliptisch/uebungsaufgaben/landen.m
new file mode 100644
index 0000000..bba5549
--- /dev/null
+++ b/buch/chapters/110-elliptisch/uebungsaufgaben/landen.m
@@ -0,0 +1,60 @@
+#
+# landen.m
+#
+# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+#
+N = 10;
+
+function retval = M(a,b)
+ for i = (1:10)
+ A = (a+b)/2;
+ b = sqrt(a*b);
+ a = A;
+ endfor
+ retval = a;
+endfunction;
+
+function retval = EllipticKk(k)
+ retval = pi / (2 * M(1, sqrt(1-k^2)));
+endfunction
+
+k = 0.5;
+kprime = sqrt(1-k^2);
+
+EK = EllipticKk(k);
+EKprime = EllipticKk(kprime);
+
+u = EK + EKprime * i;
+
+K = zeros(N,3);
+K(1,1) = k;
+K(1,2) = kprime;
+K(1,3) = u;
+
+format long
+
+for n = (2:N)
+ K(n,1) = (1-K(n-1,2)) / (1+K(n-1,2));
+ K(n,2) = sqrt(1-K(n,1)^2);
+ K(n,3) = K(n-1,3) / (1 + K(n,1));
+end
+
+K(:,[1,3])
+
+pi / 2
+
+scd = zeros(N,3);
+scd(N,1) = sin(K(N,3));
+scd(N,2) = cos(K(N,3));
+scd(N,3) = 1;
+
+for n = (N:-1:2)
+ nenner = 1 + K(n,1) * scd(n, 1)^2;
+ scd(n-1,1) = (1+K(n,1)) * scd(n, 1) / nenner;
+ scd(n-1,2) = scd(n, 2) * scd(n, 3) / nenner;
+ scd(n-1,3) = (1 - K(n,1) * scd(n,1)^2) / nenner;
+end
+
+scd(:,1)
+
+cosh(2.009459377005286)