aboutsummaryrefslogtreecommitdiffstats
path: root/buch/chapters/110-elliptisch/uebungsaufgaben
diff options
context:
space:
mode:
authorHeadAndToes <55713950+HeadAndToes@users.noreply.github.com>2022-07-19 16:42:27 +0200
committerGitHub <noreply@github.com>2022-07-19 16:42:27 +0200
commitc4fd6a857d14abdcc91ce84237f542561520d15a (patch)
tree8465f77faf415379e84bd112e67cc4d27113201d /buch/chapters/110-elliptisch/uebungsaufgaben
parentKorrektur Feedback (diff)
parentmakefile fix (diff)
downloadSeminarSpezielleFunktionen-c4fd6a857d14abdcc91ce84237f542561520d15a.tar.gz
SeminarSpezielleFunktionen-c4fd6a857d14abdcc91ce84237f542561520d15a.zip
Merge branch 'AndreasFMueller:master' into master
Diffstat (limited to 'buch/chapters/110-elliptisch/uebungsaufgaben')
-rw-r--r--buch/chapters/110-elliptisch/uebungsaufgaben/1.tex1
-rw-r--r--buch/chapters/110-elliptisch/uebungsaufgaben/2.tex65
-rw-r--r--buch/chapters/110-elliptisch/uebungsaufgaben/3.tex135
-rw-r--r--buch/chapters/110-elliptisch/uebungsaufgaben/4.tex75
-rw-r--r--buch/chapters/110-elliptisch/uebungsaufgaben/5.tex59
-rw-r--r--buch/chapters/110-elliptisch/uebungsaufgaben/landen.m60
6 files changed, 395 insertions, 0 deletions
diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/1.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/1.tex
index 694f18a..af094c6 100644
--- a/buch/chapters/110-elliptisch/uebungsaufgaben/1.tex
+++ b/buch/chapters/110-elliptisch/uebungsaufgaben/1.tex
@@ -1,3 +1,4 @@
+\label{buch:elliptisch:aufgabe:1}
In einem anharmonische Oszillator oszilliert eine Masse $m$ unter dem
Einfluss einer Kraft, die nach dem Gesetz
\[
diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex
new file mode 100644
index 0000000..dbf184a
--- /dev/null
+++ b/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex
@@ -0,0 +1,65 @@
+\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'%
+\mathstrut\text{\vrule height12pt depth6pt width0pt}%
+\\
+\hline
+\mathstrut\text{\vrule height12pt depth0pt width0pt}%
+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%
+\mathstrut\text{\vrule height0pt depth6pt width0pt}\\
+\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/4.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex
new file mode 100644
index 0000000..8814090
--- /dev/null
+++ b/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex
@@ -0,0 +1,75 @@
+\label{buch:elliptisch:aufgabe:4}
+Es ist bekannt, dass $\operatorname{sn}(K+iK', k) = 1/k$ gilt.
+Verwenden Sie den Algorithmus von Aufgabe~\ref{buch:elliptisch:aufgabe:3},
+um dies für $k=\frac12$ nachzurechnen.
+
+\begin{loesung}
+\begin{table}
+\centering
+\renewcommand{\tabcolsep}{5pt}
+\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|}
+\hline
+ n & k_n & u_n & \operatorname{sn}(u_n,k_n)%
+\mathstrut\text{\vrule height12pt depth6pt width0pt}%
+\\
+\hline
+\mathstrut\text{\vrule height12pt depth0pt width0pt}%
+ 0 & 0.500000000000000 & 1.685750354812596 + 2.156515647499643i & 2.000000000000000 \\
+ 1 & 0.071796769724491 & 1.572826493259468 + 2.012056490946491i & 3.732050807568877 \\
+ 2 & 0.001292026239995 & 1.570796982340579 + 2.009460215619685i & 3.796651109009551 \\
+ 3 & 0.000000417333300 & 1.570796326794965 + 2.009459377005374i & 3.796672364209438 \\
+ 4 & 0.000000000000044 & 1.570796326794897 + 2.009459377005286i & 3.796672364211658 \\
+ N & 0.000000000000000 & 1.570796326794897 + 2.009459377005286i & 3.796672364211658%
+\mathstrut\text{\vrule height12pt depth6pt width0pt}%
+\\
+\hline
+\end{tabular}
+\caption{Berechnung von $\operatorname{sn}(K+iK',k)=1/k$ mit Hilfe der Landen-Transformation.
+Konvergenz der Folge $k_n$ ist bei $N=5$ eintegreten.
+\label{buch:elliptisch:aufgabe:4:table}}
+\end{table}
+Zunächst müssen wir mit dem Algorithmus des arithmetisch-geometrischen
+Mittels
+\[
+K(k)
+\approx
+1.685750354812596
+\qquad\text{und}\qquad
+K(k')
+\approx
+2.156515647499643
+\]
+berechnen.
+Aus $k=\frac12$ kann man jetzt die Folgen $k_n$ und $u_n$ berechnen, die innert
+$N=5$ Iterationen konvergiert.
+Sie führt auf
+\[
+u_N
+=
+\frac{\pi}2 + 2.009459377005286i
+=
+\frac{\pi}2 + bi.
+\]
+Jetzt muss der Sinus von $u_N$ berechnet werden.
+Dazu verwenden wir die komplexe Darstellung:
+\[
+\sin u_N
+=
+\frac{e^{i\frac{\pi}2-b} - e^{-i\frac{\pi}2+b}}{2i}
+=
+\frac{ie^{-b}+ie^{b}}{2i}
+=
+\cosh b
+=
+3.796672364211658.
+\]
+Da der Wert $\operatorname{sn}(u_N,k_N) = \sin u_N$ reell ist, wird auch
+die daraus wie in Aufgabe~\ref{buch:elliptisch:aufgabe:3}
+konstruierte Folge $\operatorname{sn}(u_n,k_n)$ reell sein.
+Die Werte von $\operatorname{cn}(u_n,k_n)$ und $\operatorname{dn}(u_n,k_n)$
+werden für die Iterationsformeln~\eqref{buch:elliptisch:aufgabe:3:gauss}
+für $\operatorname{sn}(u_n,k_n)$ nicht benötigt.
+Die Berechnung ist in Tabelle~\ref{buch:elliptisch:aufgabe:4:table}
+zusammengefasst.
+Man liest ab, dass $\operatorname{sn}(K+iK',k)=2 = 1/k$, wie erwartet.
+\end{loesung}
diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex
new file mode 100644
index 0000000..fa018ca
--- /dev/null
+++ b/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex
@@ -0,0 +1,59 @@
+\label{buch:elliptisch:aufgabe:5}
+Die sehr schnelle Konvergenz des arithmetisch-geometrische Mittels
+kann auch dazu ausgenutzt werden, eine grosse Zahl von Stellen der
+Kreiszahl $\pi$ zu berechnen.
+Almkvist und Berndt haben gezeigt \cite{buch:almkvist-berndt}, dass
+\[
+\pi
+=
+\frac{4 M(1,\!\sqrt{2}/2)^2}{
+\displaystyle 1-\sum_{n=1}^\infty 2^{n+1}(a_n^2-b_n^2)
+}.
+\]
+Verwenden Sie diese Formel, um Approximationen von $\pi$ zu berechnen.
+
+\begin{loesung}
+\begin{table}
+\centering
+\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|}
+\hline
+n & a_n & b_n & \pi_n%
+\mathstrut\text{\vrule height12pt depth6pt width0pt}\\
+\hline
+\mathstrut\text{\vrule height12pt depth0pt width0pt}%
+0 & 1.000000000000000 & 0.707106781186548 &
+\mathstrut\text{\vrule height12pt depth0pt width0pt}\\
+1 & 0.853553390593274 & 0.840896415253715 & 3.\underline{1}87672642712106 \\
+2 & 0.847224902923494 & 0.847201266746892 & 3.\underline{141}680293297648 \\
+3 & 0.847213084835193 & 0.847213084752765 & 3.\underline{141592653}895451 \\
+4 & 0.847213084793979 & 0.847213084793979 & 3.\underline{141592653589}822 \\
+5 & 0.847213084793979 & 0.847213084793979 & 3.\underline{141592653589}871%
+\mathstrut\text{\vrule height0pt depth6pt width0pt}\\
+\hline
+\infty & & & 3.141592653589793%
+\mathstrut\text{\vrule height12pt depth6pt width0pt}\\
+\hline
+\end{tabular}
+\caption{Approximationen der Kreiszahl $\pi$ mit Hilfe des Algorithmus
+des arithmetisch-geometrischen Mittels.
+In nur 4 Schritten werden 12 Stellen Genauigkeit erreicht.
+\label{buch:elliptisch:aufgabe:5:table}}
+\end{table}
+Wir schreiben
+\[
+\pi_n
+=
+\frac{4 a_k^2}{
+\displaystyle
+1-\sum_{k=1}^\infty 2^{k+1}(a_k^2-b_k^2)
+}
+\]
+für die Approximationen von $\pi$,
+wobei $a_k$ und $b_k$ die Folgen der arithmetischen und geometrischen
+Mittel von $1$ und $\!\sqrt{2}/2$ sind.
+Die Tabelle~\ref{buch:elliptisch:aufgabe:5:table} zeigt die Resultat.
+In nur 4 Schritten können 12 Stellen Genauigkeit erreicht werden,
+dann beginnen jedoch bereits Rundungsfehler das Resultat zu beinträchtigen.
+Für die Berechnung einer grösseren Zahl von Stellen muss daher mit
+grösserer Präzision gerechnet werden.
+\end{loesung}
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)