aboutsummaryrefslogtreecommitdiffstats
path: root/buch/chapters/110-elliptisch
diff options
context:
space:
mode:
Diffstat (limited to 'buch/chapters/110-elliptisch')
-rw-r--r--buch/chapters/110-elliptisch/Makefile.inc4
-rw-r--r--buch/chapters/110-elliptisch/agm/Makefile15
-rw-r--r--buch/chapters/110-elliptisch/agm/agm.cpp75
-rw-r--r--buch/chapters/110-elliptisch/agm/agm.m20
-rw-r--r--buch/chapters/110-elliptisch/agm/agm.maxima26
-rw-r--r--buch/chapters/110-elliptisch/agm/sn.cpp52
-rw-r--r--buch/chapters/110-elliptisch/chapter.tex8
-rw-r--r--buch/chapters/110-elliptisch/dglsol.tex193
-rw-r--r--buch/chapters/110-elliptisch/ellintegral.tex499
-rw-r--r--buch/chapters/110-elliptisch/elltrigo.tex13
-rw-r--r--buch/chapters/110-elliptisch/experiments/KK.pdfbin0 -> 23248 bytes
-rw-r--r--buch/chapters/110-elliptisch/experiments/KK.tex66
-rw-r--r--buch/chapters/110-elliptisch/experiments/KN.cpp177
-rw-r--r--buch/chapters/110-elliptisch/experiments/Makefile15
-rw-r--r--buch/chapters/110-elliptisch/images/Makefile52
-rw-r--r--buch/chapters/110-elliptisch/images/ellall.pdfbin0 -> 22593 bytes
-rw-r--r--buch/chapters/110-elliptisch/images/ellall.tex215
-rw-r--r--buch/chapters/110-elliptisch/images/ellcommon.tex24
-rw-r--r--buch/chapters/110-elliptisch/images/ellpolnul.pdfbin0 -> 130369 bytes
-rw-r--r--buch/chapters/110-elliptisch/images/ellpolnul.tex69
-rw-r--r--buch/chapters/110-elliptisch/images/ellselection.pdfbin0 -> 165928 bytes
-rw-r--r--buch/chapters/110-elliptisch/images/ellselection.tex141
-rw-r--r--buch/chapters/110-elliptisch/images/jacobiplots.pdfbin56975 -> 56975 bytes
-rw-r--r--buch/chapters/110-elliptisch/images/kegelpara.pdfbin0 -> 202828 bytes
-rw-r--r--buch/chapters/110-elliptisch/images/kegelpara.pov329
-rw-r--r--buch/chapters/110-elliptisch/images/kegelpara.tex41
-rw-r--r--buch/chapters/110-elliptisch/images/lemnispara.cpp126
-rw-r--r--buch/chapters/110-elliptisch/images/lemnispara.pdfbin0 -> 25749 bytes
-rw-r--r--buch/chapters/110-elliptisch/images/lemnispara.tex94
-rw-r--r--buch/chapters/110-elliptisch/images/rechteck.cpp31
-rw-r--r--buch/chapters/110-elliptisch/images/rechteck.pdfbin91639 -> 94300 bytes
-rw-r--r--buch/chapters/110-elliptisch/images/rechteck.tex2
-rw-r--r--buch/chapters/110-elliptisch/images/slcl.pdfbin28233 -> 31823 bytes
-rw-r--r--buch/chapters/110-elliptisch/images/torusschnitt.pdfbin0 -> 312677 bytes
-rw-r--r--buch/chapters/110-elliptisch/images/torusschnitt.pov308
-rw-r--r--buch/chapters/110-elliptisch/images/torusschnitt.tex41
-rw-r--r--buch/chapters/110-elliptisch/lemniskate.tex462
-rw-r--r--buch/chapters/110-elliptisch/mathpendel.tex38
-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
43 files changed, 3393 insertions, 137 deletions
diff --git a/buch/chapters/110-elliptisch/Makefile.inc b/buch/chapters/110-elliptisch/Makefile.inc
index 639cb8f..4e2644c 100644
--- a/buch/chapters/110-elliptisch/Makefile.inc
+++ b/buch/chapters/110-elliptisch/Makefile.inc
@@ -12,4 +12,8 @@ CHAPTERFILES += \
chapters/110-elliptisch/mathpendel.tex \
chapters/110-elliptisch/lemniskate.tex \
chapters/110-elliptisch/uebungsaufgaben/1.tex \
+ chapters/110-elliptisch/uebungsaufgaben/2.tex \
+ chapters/110-elliptisch/uebungsaufgaben/3.tex \
+ chapters/110-elliptisch/uebungsaufgaben/4.tex \
+ chapters/110-elliptisch/uebungsaufgaben/5.tex \
chapters/110-elliptisch/chapter.tex
diff --git a/buch/chapters/110-elliptisch/agm/Makefile b/buch/chapters/110-elliptisch/agm/Makefile
new file mode 100644
index 0000000..8dab511
--- /dev/null
+++ b/buch/chapters/110-elliptisch/agm/Makefile
@@ -0,0 +1,15 @@
+#
+# Makefile
+#
+# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+#
+all: sn
+
+sn: sn.cpp
+ g++ -O -Wall -g -std=c++11 sn.cpp -o sn `pkg-config --cflags gsl` `pkg-config --libs gsl`
+
+
+agm: agm.cpp
+ g++ -O -Wall -g -std=c++11 agm.cpp -o agm `pkg-config --cflags gsl` `pkg-config --libs gsl`
+ ./agm
+
diff --git a/buch/chapters/110-elliptisch/agm/agm.cpp b/buch/chapters/110-elliptisch/agm/agm.cpp
new file mode 100644
index 0000000..8abb4b2
--- /dev/null
+++ b/buch/chapters/110-elliptisch/agm/agm.cpp
@@ -0,0 +1,75 @@
+/*
+ * agm.cpp
+ *
+ * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+ */
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+#include <iostream>
+#include <gsl/gsl_sf_ellint.h>
+
+inline long double sqrl(long double x) {
+ return x * x;
+}
+
+long double Xn(long double a, long double b, long double x) {
+ double long epsilon = fabsl(a - b);
+ if (epsilon > 0.001) {
+ return (a - sqrtl(sqrl(a) - sqrl(x) * (a + b) * (a - b)))
+ / (x * (a - b));
+ }
+ long double d = a + b;
+ long double x1 = 0;
+ long double y2 = sqrl(x/a);
+ long double c = 1;
+ long double s = 0;
+ int k = 1;
+ while (c > 0.0000000000001) {
+ c *= (0.5 - (k - 1)) / k;
+ c *= (d - epsilon) * y2;
+ s += c;
+ c *= epsilon;
+ c = -c;
+ k++;
+ }
+ return s * a / x;
+}
+
+int main(int argc, char *argv[]) {
+ long double a = 1;
+ long double b = sqrtl(2.)/2;
+ long double x = 0.7;
+ if (argc >= 3) {
+ a = std::stod(argv[1]);
+ b = std::stod(argv[2]);
+ }
+ if (argc >= 4) {
+ x = std::stod(argv[3]);
+ }
+
+ {
+ long double an = a;
+ long double bn = b;
+ long double xn = x;
+ for (int i = 0; i < 10; i++) {
+ printf("%d %24.18Lf %24.18Lf %24.18Lf %24.18Lf\n",
+ i, an, bn, xn, a * asin(xn) / an);
+ long double A = (an + bn) / 2;
+ xn = Xn(an, bn, xn);
+ bn = sqrtl(an * bn);
+ an = A;
+ }
+ }
+
+ {
+ double k = b/a;
+ k = sqrt(1 - k*k);
+ double K = gsl_sf_ellint_Kcomp(k, GSL_PREC_DOUBLE);
+ printf(" %24.18f %24.18f\n", k, K);
+ double F = gsl_sf_ellint_F(asinl(x), k, GSL_PREC_DOUBLE);
+ printf(" %24.18f %24.18f\n", k, F);
+ }
+
+ return EXIT_SUCCESS;
+}
diff --git a/buch/chapters/110-elliptisch/agm/agm.m b/buch/chapters/110-elliptisch/agm/agm.m
new file mode 100644
index 0000000..dcb3ad8
--- /dev/null
+++ b/buch/chapters/110-elliptisch/agm/agm.m
@@ -0,0 +1,20 @@
+#
+# agm.m
+#
+# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+#
+format long
+
+n = 10;
+a = 1;
+b = sqrt(0.5);
+
+for i = (1:n)
+ printf("%20.16f %20.16f\n", a, b);
+ A = (a+b)/2;
+ b = sqrt(a*b);
+ a = A;
+end
+
+K = pi / (2 * a)
+
diff --git a/buch/chapters/110-elliptisch/agm/agm.maxima b/buch/chapters/110-elliptisch/agm/agm.maxima
new file mode 100644
index 0000000..c7facd4
--- /dev/null
+++ b/buch/chapters/110-elliptisch/agm/agm.maxima
@@ -0,0 +1,26 @@
+/*
+ * agm.maxima
+ *
+ * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+ */
+
+S: 2*a*sin(theta1) / (a+b+(a-b)*sin(theta1)^2);
+
+C2: ratsimp(diff(S, theta1)^2 / (1 - S^2));
+C2: ratsimp(subst(sqrt(1-sin(theta1)^2), cos(theta1), C2));
+C2: ratsimp(subst(S, sin(theta), C2));
+C2: ratsimp(subst(sqrt(1-S^2), cos(theta), C2));
+
+D2: (a^2 * cos(theta)^2 + b^2 * sin(theta)^2)
+ /
+ (a1^2 * cos(theta1)^2 + b1^2 * sin(theta1)^2);
+D2: subst((a+b)/2, a1, D2);
+D2: subst(sqrt(a*b), b1, D2);
+D2: ratsimp(subst(1-S^2, cos(theta)^2, D2));
+D2: ratsimp(subst(S, sin(theta), D2));
+D2: ratsimp(subst(1-sin(theta1)^2, cos(theta1)^2, D2));
+
+Q: D2/C2;
+Q: ratsimp(subst(x, sin(theta1), Q));
+
+Q: ratsimp(expand(ratsimp(Q)));
diff --git a/buch/chapters/110-elliptisch/agm/sn.cpp b/buch/chapters/110-elliptisch/agm/sn.cpp
new file mode 100644
index 0000000..9e1b047
--- /dev/null
+++ b/buch/chapters/110-elliptisch/agm/sn.cpp
@@ -0,0 +1,52 @@
+/*
+ * sn.cpp
+ *
+ * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+ */
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+#include <iostream>
+#include <gsl/gsl_sf_ellint.h>
+#include <gsl/gsl_sf_elljac.h>
+
+static const int N = 10;
+
+inline long double sqrl(long double x) {
+ return x * x;
+}
+
+int main(int argc, char *argv[]) {
+ long double u = 0.6;
+ long double k = 0.9;
+ long double kprime = sqrt(1 - sqrl(k));
+
+ long double a[N], b[N], x[N+1];
+ a[0] = 1;
+ b[0] = kprime;
+
+ for (int n = 0; n < N-1; n++) {
+ printf("a[%d] = %22.18Lf b[%d] = %22.18Lf\n", n, a[n], n, b[n]);
+ a[n+1] = (a[n] + b[n]) / 2;
+ b[n+1] = sqrtl(a[n] * b[n]);
+ }
+
+ x[N] = sinl(u * a[N-1]);
+ printf("x[%d] = %22.18Lf\n", N, x[N]);
+
+ for (int n = N - 1; n >= 0; n--) {
+ x[n] = 2 * a[n] * x[n+1] / (a[n] + b[n] + (a[n] - b[n]) * sqrl(x[n+1]));
+ printf("x[%2d] = %22.18Lf\n", n, x[n]);
+ }
+
+ printf("sn(%7.4Lf, %7.4Lf) = %20.24Lf\n", u, k, x[0]);
+
+ double sn, cn, dn;
+ double m = sqrl(k);
+ gsl_sf_elljac_e((double)u, m, &sn, &cn, &dn);
+ printf("sn(%7.4Lf, %7.4Lf) = %20.24f\n", u, k, sn);
+ printf("cn(%7.4Lf, %7.4Lf) = %20.24f\n", u, k, cn);
+ printf("dn(%7.4Lf, %7.4Lf) = %20.24f\n", u, k, dn);
+
+ return EXIT_SUCCESS;
+}
diff --git a/buch/chapters/110-elliptisch/chapter.tex b/buch/chapters/110-elliptisch/chapter.tex
index e05f3bd..21fc986 100644
--- a/buch/chapters/110-elliptisch/chapter.tex
+++ b/buch/chapters/110-elliptisch/chapter.tex
@@ -35,11 +35,15 @@ wieder hergestellt.
\input{chapters/110-elliptisch/lemniskate.tex}
-\section*{Übungsaufgabe}
-\rhead{Übungsaufgabe}
+\section*{Übungsaufgaben}
+\rhead{Übungsaufgaben}
\aufgabetoplevel{chapters/110-elliptisch/uebungsaufgaben}
\begin{uebungsaufgaben}
%\uebungsaufgabe{0}
\uebungsaufgabe{1}
+\uebungsaufgabe{2}
+\uebungsaufgabe{3}
+\uebungsaufgabe{4}
+\uebungsaufgabe{5}
\end{uebungsaufgaben}
diff --git a/buch/chapters/110-elliptisch/dglsol.tex b/buch/chapters/110-elliptisch/dglsol.tex
index 7eaab38..8a638a7 100644
--- a/buch/chapters/110-elliptisch/dglsol.tex
+++ b/buch/chapters/110-elliptisch/dglsol.tex
@@ -228,6 +228,7 @@ Nach Multiplikation mit $\operatorname{qp}(u,k)^4$ erhält man den
folgenden Satz.
\begin{satz}
+\index{Satz!Differentialgleichung von $1/\operatorname{pq}(u,k)$}%
Wenn die Jacobische elliptische Funktion $\operatorname{pq}(u,k)$
der Differentialgleichung genügt, dann genügt der Kehrwert
$\operatorname{qp}(u,k) = 1/\operatorname{pq}(u,k)$ der Differentialgleichung
@@ -339,12 +340,204 @@ y(u) = F^{-1}(u+C).
Die Jacobischen elliptischen Funktionen sind daher inverse Funktionen
der unvollständigen elliptischen Integrale.
+%
+% Numerische Berechnung mit dem arithmetisch-geometrischen Mittel
+%
+\subsubsection{Numerische Berechnung mit dem arithmetisch-geometrischen Mittel}
+\begin{table}
+\centering
+\begin{tikzpicture}[>=latex,thick]
+
+\begin{scope}[xshift=-2.4cm,yshift=1.2cm]
+\fill[color=red!20]
+ (-1.0,0) -- (-1.0,-2.1) -- (-1.8,-2.1) -- (0,-3.0)
+ -- (1.8,-2.1) -- (1.0,-2.1) -- (1.0,0) -- cycle;
+\node[color=white] at (0,-1.2) [scale=7] {\sf 1};
+\end{scope}
+
+\begin{scope}[xshift=2.9cm,yshift=-1.8cm]
+\fill[color=blue!20]
+ (0.8,0) -- (0.8,2.1) -- (1.4,2.1) -- (0,3.0) -- (-1.4,2.1)
+ -- (-0.8,2.1) -- (-0.8,0) -- cycle;
+\node[color=white] at (0,1.2) [scale=7] {\sf 2};
+\end{scope}
+
+\node at (0,0) {
+\begin{tabular}{|>{$}c<{$}|>{$}c<{$}>{$}c<{$}|>{$}c<{$}>{$}l<{$}|}
+\hline
+n & a_n & b_n & x_n &
+\mathstrut\text{\vrule height12pt depth6pt width0pt}\\
+\hline
+0 & 1.0000000000000000 & 0.4358898943540673 & 0.5422823228691580 & = \operatorname{sn}(u,k)%
+\mathstrut\text{\vrule height12pt depth0pt width0pt}\\
+1 & 0.7179449471770336 & 0.6602195804079634 & 0.4157689781689663 & \mathstrut\\
+2 & 0.6890822637924985 & 0.6884775317911533 & 0.4017521410983242 & \mathstrut\\
+3 & 0.6887798977918259 & 0.6887798314243237 & 0.4016042867931862 & \mathstrut\\
+4 & 0.6887798646080748 & 0.6887798646080740 & 0.4016042705654757 & \mathstrut\\
+5 & 0.6887798646080744 & 0.6887798646080744 & 0.4016042705654755 & \mathstrut\\
+6 & & & 0.4016042705654755 & = \sin(a_5u)
+\mathstrut\text{\vrule height0pt depth6pt width0pt}\\
+\hline
+\end{tabular}
+};
+\end{tikzpicture}
+\caption{Berechnung von $\operatorname{sn}(u,k)$ für $u=0.6$ und $k=0.$2
+mit Hilfe des arithmetisch-geo\-me\-tri\-schen Mittels.
+In der ersten Phase des Algorithmus (rot) wird die Folge der arithmetischen
+\index{Algorithmus!arithmetisch-geometrisches Mittel}%
+und geometrischen Mittel berechnet, in der zweiten Phase werden die
+Approximationen von $x_0=\operatorname{sn}(u,k)$.
+Bei $n=5$ erreicht die Iteration des arithmetisch-geometrischen Mittels
+Maschinengenauigkeit, was sich auch darin äussert, dass sich $x_5$ und
+$x_6=\sin(a_5u)$ nicht unterscheiden.
+\label{buch:elliptisch:agm:table:snberechnung}}
+\end{table}
+In Abschnitt~\ref{buch:elliptisch:subsection:agm} auf
+Seite~\pageref{buch:elliptisch:subsubection:berechnung-fxk-agm}
+wurde erklärt, wie das unvollständige elliptische Integral $F(x,k)$ mit
+Hilfe des arithmetisch-geometrischen Mittels berechnet werden kann.
+\index{Algorithmus!arithmetisch-geometrisches Mittel}%
+\index{arithmetisch-geometrisches Mittel!Algorithmus}%
+Da $\operatorname{sn}^{-1}(x,k) = F(x,k)$ die Umkehrfunktion ist, kann
+man den Algorithmus auch zur Berechnung von $\operatorname{sn}(u,k)$
+verwenden.
+Dazu geht man wie folgt vor:
+\begin{enumerate}
+\item
+$k'=\sqrt{1-k^2}$.
+\item
+Berechne die Folgen des arithmetisch-geometrischen Mittels
+$a_n$ und $b_n$ mit $a_0=1$ und $b_0=k'$, bis zum Folgenindex $N$,
+bei dem ausreichende Konvergenz eintegreten ist.
+\item
+Setze $x_N = \sin(a_N \cdot u)$.
+\item
+Berechnet für absteigende $n=N-1,N-2,\dots$ die Folge $x_n$ mit Hilfe
+der Rekursionsformel
+\begin{equation}
+x_{n}
+=
+\frac{2a_nx_{n+1}}{a_n+b_n+(a_n-b_n)x_{n+1}^2},
+\label{buch:elliptisch:agm:xnrek}
+\end{equation}
+die aus \eqref{buch:elliptisch:agm:subst}
+durch die Substitution $x_n = \sin t_n$ entsteht.
+\item
+Setze $\operatorname{sn}(u,k) = x_0$.
+\end{enumerate}
+Da die Formel \eqref{buch:elliptisch:agm:xnrek} nicht unter den
+numerischen Stabilitätsproblemen leidet, die früher auf
+Seite~\pageref{buch:elliptisch:agm:ellintegral-stabilitaet}
+diskutiert wurden, ist die Berechnung stabil und sehr schnell.
+Tabelle~\ref{buch:elliptisch:agm:table:snberechnung}
+zeigt die Berechnung am Beispiel $u=0.6$ und $k=0.2$.
+
+%
+% Pole und Nullstellen der Jacobischen elliptischen Funktionen
+%
+\subsubsection{Pole und Nullstellen der Jacobischen elliptischen Funktionen}
+\begin{figure}
+\centering
+\includegraphics{chapters/110-elliptisch/images/ellpolnul.pdf}
+\caption{Werte der grundlegenden Jacobischen elliptischen Funktionen
+$\operatorname{sn}(u,k)$,
+$\operatorname{cn}(u,k)$
+und
+$\operatorname{dn}(u,k)$
+in den Ecken des Rechtecks mit Ecken $(0,0)$ und $(K,K+iK')$.
+Links der Definitionsbereich, rechts die Werte der drei Funktionen.
+Pole sind mit einem Kreuz ($\times$) bezeichnet, Nullstellen mit einem
+Kreis ($\ocircle$).
+\label{buch:elliptisch:fig:ellpolnul}}
+\end{figure}
+\begin{figure}
+\centering
+\includegraphics{chapters/110-elliptisch/images/ellall.pdf}
+\caption{Pole und Nullstellen aller Jacobischen elliptischen Funktionen
+mit den gleichen Darstellungskonventionen wie in
+Abbildung~\ref{buch:elliptisch:fig:ellpolnul}
+\label{buch:elliptisch:fig:ellall}}
+\end{figure}
+\begin{figure}
+\centering
+\includegraphics{chapters/110-elliptisch/images/ellselection.pdf}
+\caption{Auswahl einer Jacobischen elliptischen Funktion mit bestimmten
+Nullstellen und Polen.
+Nullstellen und Pole können in jeder der vier Ecken des fundamentalen
+Rechtecks (gelb, oberer rechter Viertel des Periodenrechtecks) liegen.
+Der erste Buchstabe des Namens der gesuchten Funktion ist der Buchstabe
+der Ecke der Nullstelle, der zweite Buchstabe ist der Buchstabe der
+Ecke des Poles.
+Im Beispiel die Funktion $\operatorname{cd}(u,k)$, welche eine
+Nullstelle in $K$ hat und einen Pol in $K+iK'$.
+\label{buch:elliptisch:fig:selectell}}
+\end{figure}
+Für die Funktion $y=\operatorname{sn}(u,k)$ erfüllt die Differentialgleichung
+\[
+\frac{dy}{du}
+=
+\sqrt{(1-y^2)(1-k^2y^2)},
+\]
+welche mit dem unbestimmten Integral
+\begin{equation}
+u + C = \int\frac{dy}{\sqrt{(1-y^2)(1-k^2y^2)}}
+\label{buch:elliptisch:eqn:uyintegral}
+\end{equation}
+gelöst werden kann.
+Der Wertebereich des Integrals in \eqref{buch:elliptisch:eqn:uyintegral}
+wurde bereits in
+Abschnitt~\ref{buch:elliptisch:subsection:unvollstintegral}
+auf Seite~\pageref{buch:elliptische:subsubsection:wertebereich}
+diskutiert.
+Daraus können jetzt Nullstellen und Pole der Funktion $\operatorname{sn}(u,k)$
+und mit Hilfe von Tabelle~\ref{buch:elliptisch:fig:jacobi-relationen}
+auch für $\operatorname{cn}(u,k)$ und $\operatorname{dn}(u,k)$
+abgelesen werden:
+\begin{equation}
+\begin{aligned}
+\operatorname{sn}(0,k)&=0
+&&\qquad&
+\operatorname{cn}(0,k)&=1
+&&\qquad&
+\operatorname{dn}(0,k)&=1
+\\
+\operatorname{sn}(iK',k)&=\infty
+&&\qquad&
+\operatorname{cn}(iK',k)&=\infty
+&&\qquad&
+\operatorname{dn}(iK',k)&=\infty
+\\
+\operatorname{sn}(K,k)&=1
+&&\qquad&
+\operatorname{cn}(K,k)&=0
+&&\qquad&
+\operatorname{dn}(K,k)&=k'
+\\
+\operatorname{sn}(K+iK',k)&=\frac{1}{k}
+&&\qquad&
+\operatorname{cn}(K+iK',k)&=\frac{k'}{ik}
+&&\qquad&
+\operatorname{dn}(K+iK',k)&=0
+\end{aligned}
+\label{buch:elliptische:eqn:eckwerte}
+\end{equation}
+Abbildung~\ref{buch:elliptisch:fig:ellpolnul} zeigt diese Werte
+an einer schematischen Darstellung des Definitionsbereiches auf.
+Daraus lassen sich jetzt auch die Werte der abgeleiteten Jacobischen
+elliptischen Funktionen ablesen, Pole und Nullstellen sind in
+Abbildung~\ref{buch:elliptisch:fig:ellall}
+zusammengestellt.
+
+
+
+
%
% Differentialgleichung des anharmonischen Oszillators
%
\subsubsection{Differentialgleichung des anharmonischen Oszillators}
Wir möchten die nichtlineare Differentialgleichung
+\index{Differentialgleichung!das anharmonischen Oszillators}%
\begin{equation}
\biggl(
\frac{dx}{dt}
diff --git a/buch/chapters/110-elliptisch/ellintegral.tex b/buch/chapters/110-elliptisch/ellintegral.tex
index 3acce2f..466aeb7 100644
--- a/buch/chapters/110-elliptisch/ellintegral.tex
+++ b/buch/chapters/110-elliptisch/ellintegral.tex
@@ -179,6 +179,7 @@ Da im Integral nur $k^2$ auftaucht, wird sich $K(k)$ als
hypergeometrische Funktion von $k^2$ ausdrücken lassen.
\begin{satz}
+\index{Satz!vollständiges elliptisches Integral als hypergeometrische Funktion}%
\label{buch:elliptisch:satz:hyperK}
Das vollständige elliptische Integral $K(k)$ lässt sich durch die
hypergeometrische Funktion $\mathstrut_2F_1$ als
@@ -355,9 +356,9 @@ K(k)
dies beweist die Behauptung.
\end{proof}
-
-
-
+%
+% Umfang einer Ellipse
+%
\subsubsection{Umfang einer Ellipse}
\begin{figure}
\centering
@@ -430,7 +431,7 @@ Für $\varepsilon=1$ ist $a=0$, es entsteht eine Strecke mit Länge $E(1)=1$.
\begin{satz}
\label{buch:elliptisch:satz:hyperE}
-Das volständige elliptische Integral $E(k)$ ist
+Das vollständige elliptische Integral $E(k)$ ist
\[
E(k)
=
@@ -451,13 +452,331 @@ Hilfe einer Entwicklung der Wurzel mit der Binomialreihe gefunden
werden.
\end{proof}
-\subsubsection{Komplementäre Integrale}
+Die Darstellung von $E(k)$ als hypergeometrische Reihe ermöglicht
+jetzt zum Beispiel auch die Berechnung der Ableitung nach dem
+Parameter $k$ mit der Ableitungsformel für die Funktion $\mathstrut_2F_1$.
+
+
+%
+% Berechnung mit dem arithmetisch-geometrischen Mittel
+%
+\subsection{Berechnung mit dem arithmetisch-geometrischen Mittel
+\label{buch:elliptisch:subsection:agm}}
+Die numerische Berechnung von elliptischer Integrale mit gewöhnlichen
+numerischen Integrationsroutinen ist nicht sehr effizient.
+Das in diesem Abschnitt vorgestellte arithmetisch-geometrische Mittel
+\index{arithmetisch-geometrisches Mittel}%
+liefert einen Algorithmus mit sehr viel besserer Konvergenz.
+Die Methode lässt sich auch auf die unvollständigen elliptischen
+Integrale von Abschnitt~\eqref{buch:elliptisch:subsection:unvollstintegral}
+verallgemeinern.
+Sie ist ein Speziallfall der sogenannten Landen-Transformation,
+\index{Landen-Transformation}%
+welche ausser für die elliptischen Integrale auch für die
+Jacobischen elliptischen Funktionen formuliert werden kann und
+für letztere ebenfalls sehr schnelle numerische Algorithmen liefert
+(siehe dazu auch die
+Aufgaben~\ref{buch:elliptisch:aufgabe:2}--\ref{buch:elliptisch:aufgabe:4}).
+Sie kann auch verwendet werden, um die Werte der Jacobischen elliptischen
+Funktionen für komplexe Argument zu berechnen.
+Eine weiter Anwendung ist die Berechnung einer grossen Zahl von
+Stellen der Kreiszahl $\pi$, siehe Aufgaben~\ref{buch:elliptisch:aufgabe:5}.
+
+%
+% Das arithmetisch-geometrische Mittel
+%
+\subsubsection{Das arithmetisch-geometrische Mittel}
+Seien $a$ und $b$ zwei nichtnegative reelle Zahlen.
+Aus $a$ und $b$ werden jetzt zwei Folgen konstruiert, deren Glieder
+durch
+\begin{align*}
+a_0&=a &&\text{und}& a_{n+1} &= \frac{a_n+b_n}2 &&\text{arithmetisches Mittel}
+\\
+b_0&=b &&\text{und}& b_{n+1} &= \sqrt{a_nb_n} &&\text{geometrisches Mittel}
+\end{align*}
+definiert sind.
+
+\begin{satz}
+\index{Satz!arithmetisch-geometrisches Mittel}%
+Falls $a>b>0$ ist, nimmt die Folge $(a_k)_{k\ge 0}$ monoton ab und
+$(b_k)_{k\ge 0}$ nimmt monoton zu.
+Beide konvergieren quadratisch gegen einen gemeinsamen Grenzwert.
+\end{satz}
+
+\begin{definition}
+Der gemeinsame Grenzwert von $a_n$ und $b_n$ heisst das
+{\em arithmetisch-geometrische Mittel} und wird mit
+\[
+M(a,b)
+=
+\lim_{n\to\infty} a_n
+=
+\lim_{n\to\infty} b_n
+\]
+bezeichnet.
+\index{arithmetisch-geometrisches Mittel}%
+\end{definition}
+
+\begin{proof}[Beweis]
+Zunächst ist zu zeigen, dass die Folgen monoton sind.
+Dies folgt sofort aus der Definition der Folgen:
+\begin{align*}
+a_{n+1} &= \frac{a_n+b_n}{2} \ge \frac{a_n+a_n}{2} = a_n
+\\
+b_{n+1} &= \sqrt{a_nb_n} \ge \sqrt{b_nb_n} = b_n.
+\end{align*}
+Die Konvergenz folgt aus
+\[
+a_{n+1}-b_{n+1}
+\le
+a_{n+1}-b_n
+=
+\frac{a_n+b_n}{2}-b_n
+=
+\frac{a_n-b_n}2
+\le
+\frac{a-b}{2^{n+1}}.
+\]
+Dies zeigt jedoch nur, dass die Konvergenz mindestens ein
+Bit in jeder Iteration ist.
+Aus
+\[
+a_{n+1}^2 - b_{n+1}^2
+=
+\frac{(a_n+b_n)^2}{4} - a_nb_n
+=
+\frac{a_n^2 -2a_nb_n+b_n^2}{4}
+=
+\frac{(a_n-b_n)^2}{4}
+\]
+folgt
+\[
+a_{n+1}-b_{n+1}
+=
+\frac{(a_n-b_n)^2}{2(a_{n+1}+b_{n+1})}.
+\]
+Da der Nenner gegen $2M(a,b)$ konvergiert, wird der Fehler für in
+jeder Iteration quadriert, die Zahl korrekter Stellen verdoppelt sich
+in jeder Iteration, es liegt also quadratische Konvergenz vor.
+\end{proof}
+
+%
+% Transformation des elliptischen Integrals
+%
+\subsubsection{Transformation des elliptischen Integrals}
+In diesem Abschnitt soll das Integral
+\[
+I(a,b)
+=
+\int_0^{\frac{\pi}2}
+\frac{dt}{\sqrt{a^2\cos^2 t + b^2\sin^2t}}
+\]
+berechnet werden.
+Es ist klar, dass
+\[
+I(sa,sb)
+=
+\frac{1}{s} I(a,b).
+\]
+
+Gauss hat gefunden, dass die Substitution
+\begin{equation}
+\sin t
+=
+\frac{2a\sin t_1}{a+b+(a-b)\sin^2 t_1}
+\label{buch:elliptisch:agm:subst}
+\end{equation}
+zu
+\begin{equation}
+\frac{dt}{\sqrt{a^2_{\phantom{1}}\cos^2 t + b^2_{\phantom{1}} \sin^2 t}}
+=
+\frac{dt_1}{\sqrt{a_1^2\cos^2 t_1 + b_1^2 \sin^2 t_1}}
+\label{buch:elliptisch:agm:dtdt1}
+\end{equation}
+führt.
+Um dies nachzuprüfen, muss man zunächst
+\eqref{buch:elliptisch:agm:subst}
+nach $t_1$ ableiten, was
+\[
+\frac{d}{dt_1}\sin t
+=
+\cos t
+\frac{dt}{dt_1}
+\qquad\Rightarrow\qquad
+\biggl(
+\frac{d}{dt_1}\sin t
+\biggr)^2
+=
+(1-\sin^2t)\biggl(\frac{dt}{dt_1}\biggr)^2
+\]
+ergibt.
+Die Ableitung von $t$ nach $t_1$ kann auch aus
+\eqref{buch:elliptisch:agm:dtdt1}
+ableiten, es ist
+\[
+\biggl(
+\frac{dt}{dt_1}
+\biggr)^2
+=
+\frac{a^2_{\phantom{1}} \cos^2 t + b^2_{\phantom{1}} \sin^2 t}{a_1^2 \cos^2 t_1 + b_1^2 \sin^2 t_1}.
+\]
+Man muss also nachprüfen, dass
+\begin{equation}
+\frac{1}{1-\sin^2 t}
+\frac{d}{dt_1}\sin t
+=
+\frac{a^2 \cos^2 t + b^2 \sin^2 t}{a_1^2 \cos^2 t_1 + b_1^2 \sin^2 t_1}.
+\label{buch:elliptisch:agm:deq}
+\end{equation}
+Dazu muss man zunächst $a_1=(a+b)/2$, $b_1=\!\sqrt{ab}$ setzen.
+Ausserdem muss man $\cos^2 t$ durch $1-\sin^2t$ ersetzen und
+$\sin t$ durch \eqref{buch:elliptisch:agm:subst}.
+Auch $\cos^2 t_1$ muss man durch $1-\sin^2t_1$ ersetzt werden.
+Dann kann man nach einer langwierigen Rechnung, die sich am leichtesten
+mit einem Computer-Algebra-System ausführen lässt finden, dass
+\eqref{buch:elliptisch:agm:deq}
+tatsächlich korrekt ist.
+
+\begin{satz}
+\index{Satz!Gauss-Integrale}%
+\label{buch:elliptisch:agm:integrale}
+Für $a_1=(a+b)/2$ und $b_1=\sqrt{ab}$ gilt
+\[
+\int_0^{\frac{\pi}2}
+\frac{dt}{a^2\cos^2 t + b^2 \sin^2 t}
+=
+\int_0^{\frac{\pi}2}
+\frac{dt_1}{a_1^2\cos^2 t_1 + b_1^2 \sin^2 t_1}.
+\]
+\end{satz}
+
+Der Satz~\ref{buch:elliptisch:agm:integrale} zeigt, dass die Ersetzung
+von $a$ und $b$ durch $a_1$ und $b_1$ das Integral $I(a,b)$ nicht ändert.
+Dies gilt natürlich für alle Glieder der Folge zur Bestimmung des
+arithmetisch-geometrischen Mittels.
+
+\begin{satz}
+\index{Satz!Iab@$I(a,b)$ und arithmetisch geometrisches Mittel}%
+Für $a\ge b>0$ gilt
+\begin{equation}
+I(a,b)
+=
+\int_0^{\frac{\pi}2}
+\frac{dt}{a^2\cos^2 t + b^2\sin^2t}
+=
+\frac{\pi}{2M(a,b)}
+\end{equation}
+\end{satz}
+
+\begin{proof}[Beweis]
+Zunächst folgt aus Satz~\ref{buch:elliptisch:agm:integrale}, dass
+\[
+I(a,b)
+=
+I(a_1,b_1)
+=
+\dots
+=
+I(a_n,b_n).
+\]
+Ausserdem ist $a_n\to M(a,b)$ und $b_n\to M(a,b)$,
+damit wird
+\[
+I(a,b)
+=
+\frac{1}{M(a,b)}
+\int_0^{\frac{\pi}2}
+\frac{dt}{\sqrt{\cos^2 t + \sin^2 t}}
+=
+\frac{\pi}{2M(a,b)}.
+\qedhere
+\]
+\end{proof}
+
+%
+% Berechnung des elliptischen Integrals
+%
+\subsubsection{Berechnung des elliptischen Integrals}
+Das elliptische Integral erster Art hat eine Form, die dem Integral
+$I(a,b)$ bereits sehr ähnlich ist.
+Im die Verbindung herzustellen, berechnen wir
+\begin{align*}
+I(a,b)
+&=
+\int_0^{\frac{\pi}2}
+\frac{dt}{\sqrt{a^2\cos^2 t + b^2 \sin^2 t}}
+\\
+&=
+\frac{1}{a}
+\int_0^{\frac{\pi}2}
+\frac{dt}{\sqrt{1-\sin^2 t + \frac{b^2}{a^2} \sin^2 t}}
+\\
+&=
+\frac{1}{a}
+\int_0^{\frac{\pi}2}
+\frac{dt}{\sqrt{1-(1-\frac{b^2}{a^2})\sin^2 t}}
+=
+K(k)
+\qquad\text{mit}\qquad
+k'=\frac{b^2}{a^2},\;
+k=\sqrt{1-k^{\prime 2}}
+\end{align*}
+
+\begin{satz}
+\index{Satz!vollständige elliptische Integrale und arithmetisch-geometrisches Mittel}%
+\label{buch:elliptisch:agm:satz:Ek}
+Für $0<k\le 1$ ist
+\[
+K(k) = I(1,\sqrt{1-k^2}) = \frac{\pi}{2M(1,\sqrt{1-k^2})}
+\]
+\end{satz}
-\subsubsection{Ableitung}
-XXX Ableitung \\
-XXX Stammfunktion \\
+%
+% Numerisches Beispiel
+%
+\subsubsection{Numerisches Beispiel}
+\begin{table}
+\centering
+\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|}
+\hline
+n& a_n & b_n & \pi/2a_n \mathstrut\text{\vrule height12pt depth6pt width0pt}\\
+\hline
+\text{\vrule height12pt depth0pt width0pt}%
+0 & 1.0000000000000000000 & 0.7071067811865475243 & 1.5707963267948965579 \\
+1 & 0.8535533905932737621 & 0.8408964152537145430 & 1.\underline{8}403023690212201581 \\
+2 & 0.8472249029234941526 & 0.8472012667468914603 & 1.\underline{8540}488143993356315 \\
+3 & 0.8472130848351928064 & 0.8472130847527653666 & 1.\underline{854074677}2111781089 \\
+4 & 0.8472130847939790865 & 0.8472130847939790865 & 1.\underline{854074677301371}8463 \\
+\infty& & & 1.8540746773013719184%
+\text{\vrule height12pt depth6pt width0pt}\\
+\hline
+\end{tabular}
+\caption{Die Berechnung des arithmetisch-geometrischen Mittels für
+$a=1$ und $b=\sqrt{2}/2$ zeigt die sehr rasche Konvergenz.
+\label{buch:elliptisch:agm:numerisch}}
+\end{table}
+In diesem Abschnitt soll als Zahlenbeispiel $E(k)$ für $k=\sqrt{2}/2$
+berechnet werden.
+In diesem speziellen Fall ist $k'=k$.
+Tabelle~\ref{buch:elliptisch:agm:numerisch} zeigt die sehr rasche
+Konvergenz der Berechnung des arithmetisch-geometrischen Mittels
+von $1$ und $\sqrt{2}/2$.
+Mit Satz~\ref{buch:elliptisch:agm:satz:Ek} folgt jetzt
+\[
+K(\!\sqrt{2}/2)
+=
+\frac{\pi}{2M(1,\!\sqrt{2}/2)}
+=
+1.854074677301372.
+\]
+Die Berechnung hat nur 4 Mittelwerte, 4 Produkte, 4 Quadratwurzeln und
+eine Division erfordert.
-\subsection{Unvollständige elliptische Integrale}
+%
+% Unvollständige elliptische Integrale
+%
+\subsection{Unvollständige elliptische Integrale
+\label{buch:elliptisch:subsection:unvollstintegral}}
Die Funktionen $K(k)$ und $E(k)$ sind als bestimmte Integrale über ein
festes Intervall definiert.
Die {\em unvollständigen elliptischen Integrale} entstehen, indem die
@@ -522,12 +841,18 @@ Die Abbildung~\ref{buch:elliptisch:fig:unvollstaendigeintegrale}
zeigt Graphen der unvollständigen elliptischen Integrale für verschiedene
Werte des Parameters.
+%
+% Symmetrieeigenschaften
+%
\subsubsection{Symmetrieeigenschaften}
Die Integranden aller drei unvollständigen elliptischen Integrale
sind gerade Funktionen der reellen Variablen $t$.
Die Funktionen $F(x,k)$, $E(x,k)$ und $\Pi(n,x,k)$ sind daher
ungeraden Funktionen von $x$.
+%
+% Elliptische Integrale als komplexe Funktionen
+%
\subsubsection{Elliptische Integrale als komplexe Funktionen}
Die unvollständigen elliptischen Integrale $F(x,k)$, $F(x,k)$ und $\Pi(n,x,k)$
in Jacobi-Form lassen sich auch für komplexe Argumente interpretieren.
@@ -538,10 +863,14 @@ Die Faktoren, die in den Integranden der unvollständigen elliptischen
Integrale vorkommen, haben Nullstellen bei $\pm1$, $\pm1/k$ und
$\pm 1/\sqrt{n}$
-XXX Additionstheoreme \\
-XXX Parameterkonventionen \\
+% XXX Additionstheoreme \\
+% XXX Parameterkonventionen \\
+%
+% Wertebereich
+%
\subsubsection{Wertebereich}
+\label{buch:elliptische:subsubsection:wertebereich}
Die unvollständigen elliptischen Integrale betrachtet als reelle Funktionen
haben nur positive relle Werte.
Zum Beispiel nimmt das unvollständige elliptische Integral erster Art
@@ -631,6 +960,9 @@ l({\textstyle\frac{1}{k}})=\int_1^{\frac1{k}}
\end{equation}
ausgewertet werden.
+%
+% Komplementärmodul
+%
\subsubsection{Komplementärmodul}
Im vorangegangen Abschnitt wurde gezeigt, dass der Wertebereicht des
unvollständigen elliptischen Integrals der ersten Art als komplexe
@@ -734,6 +1066,9 @@ in das blaue.
\label{buch:elliptisch:fig:rechteck}}
\end{figure}
+%
+% Reelle Argument > 1/k
+%
\subsubsection{Reelle Argument $> 1/k$}
Für Argument $x> 1/k$ sind beide Faktoren im Integranden des
unvollständigen elliptischen Integrals negativ, das Integral kann
@@ -780,7 +1115,141 @@ F(x,k) = iK(k') - F\biggl(\frac1{kx},k\biggr)
für die Werte des elliptischen Integrals erster Art für grosse Argumentwerte
fest.
-\subsection{Potenzreihe}
-XXX Potenzreihen \\
-XXX Als hypergeometrische Funktionen \url{https://www.youtube.com/watch?v=j0t1yWrvKmE} \\
-XXX Berechnung mit der Landen-Transformation https://en.wikipedia.org/wiki/Landen%27s_transformation
+%
+% AGM und Berechnung von F(x,k)
+%
+\subsubsection{Berechnung von $F(x,k)$ mit dem arithmetisch-geometrischen
+Mittel\label{buch:elliptisch:subsubection:berechnung-fxk-agm}}
+Wie das vollständige elliptische Integral $K(k)$ kann auch das
+unvollständige elliptische Integral
+\begin{align*}
+F(x,k)
+&=
+\int_0^x \frac{d\xi}{\sqrt{(1-\xi^2)(1-k^{\prime 2}\xi^2)}}
+=
+\int_0^{\varphi}
+\frac{dt}{\sqrt{1-k^2 \sin^2 t}}
+&&\text{mit $x=\sin\varphi$}
+\\
+&=
+a
+\int_0^{\varphi} \frac{dt}{a^2 \cos^2 t + b^2 \sin^2 t}
+&&\text{mit $k=b/a$}
+\end{align*}
+mit dem arithmetisch-geometrischen Mittel berechnet werden.
+Dazu muss die Substitution
+\eqref{buch:elliptisch:agm:subst}
+verwendet werden, um auch den Winkel $\varphi_1$ zu berechnen.
+Zunächst wird \eqref{buch:elliptisch:agm:subst} nach $x_1=\sin t_1$
+aufgelöst.
+Durch Multiplikation mit dem Nenner erhält man mit der Abkürzung
+$x=\sin t$ %und $x_1=\sin t_1$
+die quadratische Gleichung
+\[
+(a-b)x x_1^2
+-
+2ax_1
++
+(a+b)x
+=
+0,
+\]
+mit der Lösung
+\begin{equation}
+x_1
+=
+\frac{a-\sqrt{a^2-(a^2-b^2)x^2}}{(a-b)x}.
+\label{buch:elliptisch:unvollstagm:xrek}
+\end{equation}
+Der Algorithmus zur Berechnung des arithmetisch-geometrischen Mittels
+muss daher verallgemeinert werden zu
+\begin{equation}
+\left.
+\begin{aligned}
+a_{n+1} &= \frac{a_n+b_n}2, &\qquad a_0 &= a
+\\
+b_{n+1} &= \sqrt{a_nb_n}, & b_0 &= b
+\\
+x_{n+1} &= \frac{a_n-\sqrt{a_n^2-(a_n^2-b_n^2)x_n^2}}{(a_n-b_n)x_n}, & x_0 &= x
+\end{aligned}
+\quad
+\right\}
+\label{buch:elliptisch:unvollstagm:rek}
+\end{equation}
+Die Folge $x_n$ konvergiert gegen einen Wert $x_{\infty} = \lim_{n\to\infty} x_n$.
+Der Wert des unvollständigen elliptischen Integrals ist dann der Grenzwert
+\[
+F(x,k)
+=
+\lim_{n\to\infty}
+\frac{\arcsin x_n}{M(a_n,b_n)}
+=
+\frac{\arcsin x_{\infty}}{M(1,\sqrt{1-k^2})}.
+\]
+
+In dieser Form ist die Berechnung allerdings nicht praktisch durchführbar.
+Das Problem ist, dass die Differenz $a_n-b_n$, die in
+\eqref{buch:elliptisch:unvollstagm:rek}
+im Nenner vorkommt, sehr schnell gegen Null geht.
+Ausserdem ist die Quadratwurzel im Zähler fast gleich gross wie
+$a_n$, was zu Auslöschung und damit ungenauen Resultaten führt.
+\label{buch:elliptisch:agm:ellintegral-stabilitaet}
+
+Eine Möglichkeit, das Problem zu entschärfen, ist, die Rekursionsformel
+nach $\varepsilon = a-b$ zu entwickeln.
+Mit $a+b=2a+\varepsilon$ kann man $b$ aus der Formel elimineren und erhält
+mit Hilfe der binomischen Reihe
+\begin{align*}
+x_1
+&=
+\frac{a}{x\varepsilon}
+\left(1-\sqrt{1-\varepsilon(2a-\varepsilon)x^2/a^2}\right)
+\\
+&=
+\frac{a}{x\varepsilon}
+\biggl(
+1-\sum_{k=0}^\infty
+(-1)^k
+\frac{(\frac12)_k}{k!} \varepsilon^k(2a-\varepsilon)^k\frac{x^{2k}}{a^{2k}}
+\biggr)
+\\
+&=
+\sum_{k=1}^\infty
+(-1)^{k-1}
+\frac{(\frac12)_k}{k!} \varepsilon^{k-1}(2a-\varepsilon)^k\frac{x^{2k-1}}{a^{2k-1}}
+\\
+&=
+\frac{\frac12}{1!}(2a-\varepsilon)\frac{x}{a}
+-
+\frac{\frac12\cdot(\frac12-1)}{2!}\varepsilon(2a-\varepsilon)^2\frac{x^3}{a^3}
++
+\frac{\frac12\cdot(\frac12-1)(\frac12-2)}{3!}\varepsilon^2(2a-\varepsilon)^3\frac{x^5}{a^5}
+-
+\dots
+\\
+&=
+x\biggl(1-\frac{\varepsilon}{2a}\biggr)
+\biggl(
+1
+-
+\frac{\frac12-1}{2!}\varepsilon(2a-\varepsilon)\frac{x^2}{a^2}
++
+\frac{(\frac12-1)(\frac12-2)}{3!}\varepsilon^2(2a-\varepsilon)^2\frac{x^4}{a^4}
+-
+\dots
+\biggr)
+\\
+&=
+x\biggl(1-\frac{\varepsilon}{2a}\biggr)
+\cdot
+\mathstrut_2F_1\biggl(
+\begin{matrix}-\frac12,1\\2\end{matrix};-\varepsilon(2a-\varepsilon)\frac{x^2}{a^2}
+\biggr).
+\end{align*}
+Diese Form ist wesentlich besser, aber leider kann es bei der numerischen
+Rechnung passieren, dass $\varepsilon < 0$ wird.
+
+%\subsection{Potenzreihe}
+%XXX Potenzreihen \\
+%XXX Als hypergeometrische Funktionen \url{https://www.youtube.com/watch?v=j0t1yWrvKmE} \\
+%XXX Berechnung mit der Landen-Transformation https://en.wikipedia.org/wiki/Landen%27s_transformation
diff --git a/buch/chapters/110-elliptisch/elltrigo.tex b/buch/chapters/110-elliptisch/elltrigo.tex
index d600243..0ff9cdb 100644
--- a/buch/chapters/110-elliptisch/elltrigo.tex
+++ b/buch/chapters/110-elliptisch/elltrigo.tex
@@ -18,6 +18,14 @@ auf einer Ellipse.
\end{figure}
% based on Willliam Schwalm, Elliptic functions and elliptic integrals
% https://youtu.be/DCXItCajCyo
+Die Ellipse wurde in Abschnitt~\ref{buch:geometrie:subsection:kegelschnitte}
+als Kegelschnitt erkannt und auf verschiedene Arten parametrisiert.
+In diesem Abschnitt soll gezeigt werden, wie man die Parametrisierung
+eines Kreises mit trigonometrischen Funktionen verallgemeinern kann
+auf eine Parametrisierung einer Ellipse mit den drei
+Funktionen $\operatorname{sn}(u,k)$,
+$\operatorname{cn}(u,k)$ und $\operatorname{dn}(u,k)$,
+die ähnliche Eigenschaften haben wie die trigonometrischen Funktionen.
%
% Geometrie einer Ellipse
@@ -112,7 +120,7 @@ Punktes auf dem Einheitskreis interpretieren.
Für die Koordinaten eines Punktes auf der Ellipse ist dies nicht so einfach,
weil es nicht nur eine Ellipse gibt, sondern für jede numerische Exzentrizität
-mindestens eine mit Halbeachse $1$.
+mindestens eine mit Halbachse $1$.
Wir wählen die Ellipsen so, dass $a$ die grosse Halbachse ist, also $a>b$.
Als Normierungsbedingung verwenden wir, dass $b=1$ sein soll, wie in
Abbildung~\ref{buch:elliptisch:fig:jacobidef}.
@@ -161,7 +169,7 @@ x^2(k^2-1) + y^2 = 1.
an einer Ellipse mit Halbachsen $a$ und $1$.
\label{buch:elliptisch:fig:jacobidef}}
\end{figure}
-\subsubsection{Definition der elliptischen Funktionen}
+\subsubsection{Definition der Jacobischen elliptischen Funktionen}
Die elliptischen Funktionen für einen Punkt $P$ auf der Ellipse mit Modulus $k$
können jetzt als Verhältnisse der Koordinaten des Punktes definieren.
Es stellt sich aber die Frage, was man als Argument verwenden soll.
@@ -472,6 +480,7 @@ wählt, dass
Damit haben wir die grundlegenden Ableitungsregeln
\begin{satz}
+\index{Satz!Ableitungen der Jacobischen elliptischen Funktionen}%
\label{buch:elliptisch:satz:ableitungen}
Die Jacobischen elliptischen Funktionen haben die Ableitungen
\begin{equation}
diff --git a/buch/chapters/110-elliptisch/experiments/KK.pdf b/buch/chapters/110-elliptisch/experiments/KK.pdf
new file mode 100644
index 0000000..13a2739
--- /dev/null
+++ b/buch/chapters/110-elliptisch/experiments/KK.pdf
Binary files differ
diff --git a/buch/chapters/110-elliptisch/experiments/KK.tex b/buch/chapters/110-elliptisch/experiments/KK.tex
new file mode 100644
index 0000000..a3ae425
--- /dev/null
+++ b/buch/chapters/110-elliptisch/experiments/KK.tex
@@ -0,0 +1,66 @@
+%
+% KK.tex -- template for standalon tikz images
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{pgfplots}
+\usepackage{csvsimple}
+\usetikzlibrary{arrows,intersections,math}
+\begin{document}
+\def\skala{1}
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+
+\def\dx{10}
+\def\dy{3}
+\input{KKpath.tex}
+
+\draw[->] (-0.1,0) -- (10.3,0) coordinate[label={$k$}];
+\draw[->] (0,-0.1) -- (0,{2*\dy+0.3}) coordinate[label={right:$y$}];
+
+\node at (3,{1.2*\dy}) {$\displaystyle y = \frac{K(k)}{K(\!\sqrt{1-k^2})}$};
+
+\begin{scope}
+\clip (0,0) rectangle (10,{2*\dy});
+\draw[color=red,line width=1.4pt] \KKpath;
+\end{scope}
+
+\draw[line width=0.2pt] (10,0) -- (10,{2*\dy});
+
+\foreach \y in {0.0,0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,1.8,2.0}{
+ \draw (-0.05,{\y*\dy}) -- (0.05,{\y*\dy});
+ \node at (0,{\y*\dy}) [left] {$\y\mathstrut$};
+}
+
+\foreach \k in {1,...,9}{
+ \draw ({\k*\dx/10},-0.05) -- ({\k*\dx/10},0.05);
+ \node at ({\k*\dx/10},0) [below] {$0.\k\mathstrut$};
+}
+\node at (0,0) [below] {$0\mathstrut$};
+\node at (10,0) [below] {$1\mathstrut$};
+
+\draw[color=blue] ({\knull*\dx},0) -- ({\knull*\dx},{\KKnull*\dy});
+\foreach \y in {1,2,3,4}{
+ \draw[color=blue]
+ ({\knull*\dx-0.05},{\y*\KKnull*\dy/5})
+ --
+ ({\knull*\dx+0.05},{\y*\KKnull*\dy/5});
+}
+\draw[color=black,line width=0.1pt] (0,{\KKnull*\dy}) -- ({\knull*\dx},{\KKnull*\dy});
+\draw[color=black,line width=0.1pt] (0,{\KKnull*\dy/5}) -- ({\kone*\dx},{\KKnull*\dy/5});
+\node at ({0.6*\dx},{\KKnull*\dy}) [above] {$y=1.7732$};
+\node at ({0.6*\dx},{\KKnull*\dy/5}) [above] {$y=0.3546$};
+\draw[color=blue] ({\kone*\dx},0) -- ({\kone*\dx},{\KKnull*\dy/5});
+\draw[color=blue] ({\kone*\dx},{\KKnull*\dy/5}) -- ({\knull*\dx},{\KKnull*\dy/5});
+\fill[color=blue] ({\kone*\dx},{\KKnull*\dy/5}) circle[radius=0.05];
+\fill[color=blue] ({\knull*\dx},{\KKnull*\dy/5}) circle[radius=0.05];
+\fill[color=blue] ({\knull*\dx},{\KKnull*\dy}) circle[radius=0.05];
+\node[color=blue] at ({\knull*\dx},0) [left,rotate=90] {$k=0.97\mathstrut$};
+\node[color=blue] at ({\kone*\dx},0) [left,rotate=90] {$k_1=0.0477$};
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/buch/chapters/110-elliptisch/experiments/KN.cpp b/buch/chapters/110-elliptisch/experiments/KN.cpp
new file mode 100644
index 0000000..1dcca9e
--- /dev/null
+++ b/buch/chapters/110-elliptisch/experiments/KN.cpp
@@ -0,0 +1,177 @@
+/*
+ * KN.cpp
+ *
+ * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+ */
+#include <cstdlib>
+#include <cstdio>
+#include <cmath>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <getopt.h>
+#include <vector>
+#include <gsl/gsl_sf_elljac.h>
+#include <gsl/gsl_sf_ellint.h>
+
+namespace KN {
+
+bool debug = false;
+
+static struct option longopts[] {
+{ "debug", no_argument, NULL, 'd' },
+{ "N", required_argument, NULL, 'N' },
+{ "outfile", required_argument, NULL, 'o' },
+{ "min", required_argument, NULL, 'm' },
+{ NULL, 0, NULL, 0 }
+};
+
+double KprimeK(double k) {
+ double kprime = sqrt(1-k*k);
+ if (debug)
+ printf("%s:%d: k = %f, k' = %f\n", __FILE__, __LINE__, k, kprime);
+ double v
+ =
+ gsl_sf_ellint_Kcomp(k, GSL_PREC_DOUBLE)
+ /
+ gsl_sf_ellint_Kcomp(kprime, GSL_PREC_DOUBLE)
+ ;
+ if (debug)
+ printf("%s:%d: KprimeK(k = %f) = %f\n", __FILE__, __LINE__, k, v);
+ return v;
+}
+
+static const int L = 100000000;
+static const double h = 1. / L;
+
+double Kd(double k) {
+ double m = 0;
+ if (k < h) {
+ m = 2 * (KprimeK(k) - KprimeK(k / 2)) / k;
+ } else if (k > 1-h) {
+ m = 2 * (KprimeK((1 + k) / 2) - KprimeK(k)) / (1 - k);
+
+ } else {
+ m = L * (KprimeK(k + h) - KprimeK(k));
+ }
+ if (debug)
+ printf("%s:%d: Kd(%f) = %f\n", __FILE__, __LINE__, k, m);
+ return m;
+}
+
+double k1(double y) {
+ if (debug)
+ printf("%s:%d: Newton for y = %f\n", __FILE__, __LINE__, y);
+ double kn = 0.5;
+ double delta = 1;
+ int n = 0;
+ while ((fabs(delta) > 0.000001) && (n < 10)) {
+ double yn = KprimeK(kn);
+ if (debug)
+ printf("%s:%d: k%d = %f, y%d = %f\n", __FILE__, __LINE__, n, kn, n, yn);
+ delta = (yn - y) / Kd(kn);
+ if (debug)
+ printf("%s:%d: delta = %f\n", __FILE__, __LINE__, delta);
+ double kneu = kn - delta;
+ if (kneu <= 0) {
+ kneu = kn / 4;
+ }
+ if (kneu >= 1) {
+ kneu = (3 + kn) / 4;
+ }
+ kn = kneu;
+ if (debug)
+ printf("%s:%d: kneu = %f, kn = %f\n", __FILE__, __LINE__, kneu, kn);
+ n++;
+ }
+ if (debug)
+ printf("%s:%d: Newton result: k = %f\n", __FILE__, __LINE__, kn);
+ return kn;
+}
+
+double k1(int N, double k) {
+ return k1(KprimeK(k) / N);
+}
+
+/**
+ * \brief Main function for the slcl program
+ */
+int main(int argc, char *argv[]) {
+ int longindex;
+ int c;
+ int N = 5;
+ double kmin = 0.01;
+ std::string outfilename;
+ while (EOF != (c = getopt_long(argc, argv, "d:N:o:m:",
+ longopts, &longindex)))
+ switch (c) {
+ case 'd':
+ debug = true;
+ break;
+ case 'N':
+ N = std::stoi(optarg);
+ break;
+ case 'o':
+ outfilename = std::string(optarg);
+ break;
+ case 'm':
+ kmin = std::stod(optarg);
+ break;
+ }
+
+ double d = 0.01;
+ if (outfilename.size() > 0) {
+ FILE *fn = fopen(outfilename.c_str(), "w");
+ fprintf(fn, "\\def\\KKpath{ ");
+ double k = d;
+ fprintf(fn, " (0,0)");
+ double k0 = k/16;
+ while (k0 < k) {
+ fprintf(fn, "\n\t-- ({%.4f*\\dx},{%.4f*\\dy})", k0, KprimeK(k0));
+ k0 *= 2;
+ }
+ while (k < 1-0.5*d) {
+ fprintf(fn, "\n\t-- ({%.4f*\\dx},{%.4f*\\dy})", k, KprimeK(k));
+ k += d;
+ }
+ fprintf(fn, "}\n");
+
+ k0 = 0.97;
+ fprintf(fn, "\\def\\knull{%.4f}\n", k0);
+ double KK = KprimeK(k0);
+ fprintf(fn, "\\def\\KKnull{%.4f}\n", KK);
+ fprintf(fn, "\\def\\kone{%.4f}\n", k1(N, k0));
+
+ fclose(fn);
+ return EXIT_SUCCESS;
+ }
+
+ for (double k = kmin; k < (1 - d/2); k += d) {
+ if (debug)
+ printf("%s:%d: k = %f\n", __FILE__, __LINE__, k);
+ double y = KprimeK(k);
+ double k0 = k1(y);
+ double kone = k1(N, k0);
+ printf("g(%4.2f) = %10.6f,", k, y);
+ printf(" g'(%.2f) = %10.6f,", k, Kd(k));
+ printf(" g^{-1} = %10.6f,", k0);
+ printf(" k1 = %10.6f,", kone);
+ printf(" g(k1) = %10.6f\n", KprimeK(kone));
+ }
+
+ return EXIT_SUCCESS;
+}
+
+} // namespace KN
+
+int main(int argc, char *argv[]) {
+ try {
+ return KN::main(argc, argv);
+ } catch (const std::exception& e) {
+ std::cerr << "terminated by exception: " << e.what();
+ std::cerr << std::endl;
+ } catch (...) {
+ std::cerr << "terminated by unknown exception" << std::endl;
+ }
+ return EXIT_FAILURE;
+}
diff --git a/buch/chapters/110-elliptisch/experiments/Makefile b/buch/chapters/110-elliptisch/experiments/Makefile
new file mode 100644
index 0000000..fac4fbc
--- /dev/null
+++ b/buch/chapters/110-elliptisch/experiments/Makefile
@@ -0,0 +1,15 @@
+#
+# Makefile
+#
+# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschlue
+#
+all: KK.pdf
+
+KN: KN.cpp
+ g++ -O -Wall -std=c++11 KN.cpp -o KN `pkg-config --cflags gsl` `pkg-config --libs gsl`
+
+KKpath.tex: KN
+ ./KN --outfile KKpath.tex
+
+KK.pdf: KK.tex KKpath.tex
+ pdflatex KK.tex
diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile
index a7c9e74..7636e65 100644
--- a/buch/chapters/110-elliptisch/images/Makefile
+++ b/buch/chapters/110-elliptisch/images/Makefile
@@ -5,7 +5,8 @@
#
all: lemniskate.pdf ellipsenumfang.pdf unvollstaendig.pdf rechteck.pdf \
ellipse.pdf pendel.pdf jacobiplots.pdf jacobidef.pdf jacobi12.pdf \
- sncnlimit.pdf slcl.pdf
+ sncnlimit.pdf slcl.pdf torusschnitt.pdf kegelpara.pdf lemnispara.pdf \
+ ellpolnul.pdf ellall.pdf ellselection.pdf
lemniskate.pdf: lemniskate.tex
pdflatex lemniskate.tex
@@ -78,3 +79,52 @@ slcldata.tex: slcl
./slcl --outfile=slcldata.tex --a=0 --b=13.4 --steps=200
slcl.pdf: slcl.tex slcldata.tex
pdflatex slcl.tex
+
+KEGELSIZE = -W256 -H256
+KEGELSIZE = -W128 -H128
+KEGELSIZE = -W1080 -H1080
+kegelpara.png: kegelpara.pov
+ povray +A0.1 $(KEGELSIZE) -Okegelpara.png kegelpara.pov
+
+kegelpara.jpg: kegelpara.png Makefile
+ convert -extract 1080x1040+0+0 kegelpara.png \
+ -density 300 -units PixelsPerInch kegelpara.jpg
+
+kegelpara.pdf: kegelpara.tex kegelpara.jpg
+ pdflatex kegelpara.tex
+
+torusschnitt.png: torusschnitt.pov
+ povray +A0.1 -W1920 -H1080 -Otorusschnitt.png torusschnitt.pov
+
+torusschnitt.jpg: torusschnitt.png Makefile
+ convert -extract 1640x1080+140+0 torusschnitt.png \
+ -density 300 -units PixelsPerInch torusschnitt.jpg
+
+torusschnitt.pdf: torusschnitt.tex torusschnitt.jpg
+ pdflatex torusschnitt.tex
+
+lemnispara: lemnispara.cpp
+ g++ -O2 -Wall -g -o lemnispara `pkg-config --cflags gsl` \
+ lemnispara.cpp `pkg-config --libs gsl`
+
+lemnisparadata.tex: lemnispara
+ ./lemnispara
+
+lemnispara.pdf: lemnispara.tex lemnisparadata.tex
+ pdflatex lemnispara.tex
+
+ltest: lemnispara.pdf
+
+ellpolnul.pdf: ellpolnul.tex ellcommon.tex
+ pdflatex ellpolnul.tex
+ellall.pdf: ellall.tex ellcommon.tex
+ pdflatex ellall.tex
+
+rechteckpfade2.tex: rechteck Makefile
+ ./rechteck --outfile rechteckpfade2.tex --k 0.87 --vsteps=1
+ellselection.pdf: ellselection.tex rechteckpfade2.tex
+ pdflatex ellselection.tex
+
+rechteckpfade3.tex: rechteck
+ ./rechteck --outfile rechteckpfade3.tex --k 0.70710678118654752440 \
+ --vsteps=4
diff --git a/buch/chapters/110-elliptisch/images/ellall.pdf b/buch/chapters/110-elliptisch/images/ellall.pdf
new file mode 100644
index 0000000..fd0a5dd
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/ellall.pdf
Binary files differ
diff --git a/buch/chapters/110-elliptisch/images/ellall.tex b/buch/chapters/110-elliptisch/images/ellall.tex
new file mode 100644
index 0000000..b37fe12
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/ellall.tex
@@ -0,0 +1,215 @@
+%
+% ellpolnul.tex -- template for standalon tikz images
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{pgfplots}
+\usepackage{csvsimple}
+\usetikzlibrary{arrows,intersections,math,calc}
+\begin{document}
+\input{ellcommon.tex}
+\def\skala{1}
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+
+%\draw (-1,-1) rectangle (1,1);
+%\node at (-1,-1) [below left] {$0$};
+%\node at (1,-1) [below right] {$K$};
+%\node at (1,1) [above right] {$K+iK'$};
+%\node at (-1,1) [above left] {$iK'$};
+%\node at (0,0) {$u$};
+
+\fill[color=rot!10,opacity=0.5] (-5.5,-4.3) rectangle (7.3,-1.7);
+\fill[color=blau!10,opacity=0.5] (-5.5,-7.3) rectangle (7.3,-4.7);
+\fill[color=gruen!10,opacity=0.5] (-5.5,-10.3) rectangle (7.3,-7.7);
+
+\fill[color=rot!10,opacity=0.5] (-1.3,-10.5) rectangle (1.3,2.5);
+\fill[color=blau!10,opacity=0.5] (1.7,-10.5) rectangle (4.3,2.5);
+\fill[color=gruen!10,opacity=0.5] (4.7,-10.5) rectangle (7.3,2.5);
+
+\begin{scope}[xshift=1.5cm,yshift=2cm]
+\node at (0,0) {Zähler};
+\draw[<-] (-4.5,0) -- (-1,0);
+\draw[->] (1,0) -- (4.5,0);
+\node[color=black] at (-4.5,-0.4) {\Large n};
+\node[color=rot] at (-1.5,-0.4) {\Large s};
+\node[color=blau] at (1.5,-0.4) {\Large c};
+\node[color=gruen] at (4.5,-0.4) {\Large d};
+\end{scope}
+
+\begin{scope}[xshift=-5.1cm,yshift=-4.5cm]
+\node at (0,0) [rotate=90] {Nenner};
+\draw[<-] (0,-4.5) -- (0,-1);
+\draw[->] (0,1) -- (0,4.5);
+\node[color=gruen] at (0.4,-4.5) [rotate=90] {\Large d};
+\node[color=blau] at (0.4,-1.5) [rotate=90] {\Large c};
+\node[color=rot] at (0.4,1.5) [rotate=90] {\Large s};
+\node[color=black] at (0.4,4.5) [rotate=90] {\Large n};
+\end{scope}
+
+\begin{scope}[xshift=-3cm,yshift=0cm]
+\node at (0,0) {$1$};
+\draw[color=gray!20] (-1,-1) rectangle (1,1);
+\end{scope}
+
+\definecolor{sccolor}{rgb}{0.8,0.0,1.0}
+\definecolor{sdcolor}{rgb}{0.6,0.6,0.0}
+\definecolor{cdcolor}{rgb}{0.0,0.6,1.0}
+
+\begin{scope}[xshift=0cm]
+\rechteck{rot}{\operatorname{sn}(u,k)}
+\nullstelle{(-1,-1)}{rot}
+\pol{(-1,1)}{rot}
+\node at (-1,-1) {$0$};
+\node at (1,-1) {$1$};
+\node at (1,1) {$\frac1k$};
+\node at (-1,1) {$\infty$};
+\end{scope}
+
+\begin{scope}[xshift=3cm]
+\rechteck{blau}{\operatorname{cn}(u,k)}
+\nullstelle{(1,-1)}{blau}
+\pol{(-1,1)}{blau}
+\node at (-1,-1) {$1$};
+\node at (1,-1) {$0$};
+\node at (1,1) {$\frac{k'}{ik}$};
+\node at (-1,1) {$\infty$};
+\end{scope}
+
+\begin{scope}[xshift=6cm]
+\rechteck{gruen}{\operatorname{dn}(u,k)}
+\nullstelle{(1,1)}{gruen}
+\pol{(-1,1)}{gruen}
+\node at (-1,-1) {$1$};
+\node at (1,-1) {$k'$};
+\node at (1,1) {$0$};
+\node at (-1,1) {$\infty$};
+\end{scope}
+
+%
+% start row with denominator sn(u,k)
+%
+
+\begin{scope}[xshift=-3cm,yshift=-3cm]
+\rechteck{rot}{\operatorname{ns}(u,k)}
+\pol{(-1,-1)}{rot}
+\nullstelle{(-1,1)}{rot}
+\node at (-1,-1) {$\infty$};
+\node at (1,-1) {$1$};
+\node at (1,1) {$k$};
+\node at (-1,1) {$0$};
+\end{scope}
+
+\begin{scope}[xshift=0cm,yshift=-3cm]
+%\rechteck{gray}{1}
+\fill[color=white] (-1,-1) rectangle (1,1);
+\node[color=gray] at (0,0) {$1$};
+\end{scope}
+
+\begin{scope}[xshift=3cm,yshift=-3cm]
+\rechteck{sccolor}{\operatorname{cs}(u,k)}
+\pol{(-1,-1)}{sccolor}
+\nullstelle{(1,-1)}{sccolor}
+\node at (-1,-1) {$\infty$};
+\node at (1,-1) {$0$};
+\node at (1,1) {$\frac{k'}{i}$};
+\node at (-1,1) {$ $};
+\end{scope}
+
+\begin{scope}[xshift=6cm,yshift=-3cm]
+\rechteck{sdcolor}{\operatorname{ds}(u,k)}
+\pol{(-1,-1)}{sdcolor}
+\nullstelle{(1,1)}{sdcolor}
+\node at (-1,-1) {$\infty$};
+\node at (1,-1) {$k'$};
+\node at (1,1) {$0$};
+\node at (-1,1) {$ $};
+\end{scope}
+
+%
+% start row with denominator cn(u,k)
+%
+
+\begin{scope}[xshift=-3cm,yshift=-6cm]
+\rechteck{blau}{\operatorname{nc}(u,k)}
+\pol{(1,-1)}{blau}
+\nullstelle{(-1,1)}{blau}
+\node at (-1,-1) {$1$};
+\node at (-1,1) {$0$};
+\node at (1,-1) {$\infty$};
+\node at (1,1) {$\frac{ik}{k'}$};
+\end{scope}
+
+\begin{scope}[xshift=0cm,yshift=-6cm]
+\rechteck{sccolor}{\operatorname{sc}(u,k)}
+\nullstelle{(-1,-1)}{sccolor}
+\pol{(1,-1)}{sccolor}
+\node at (-1,-1) {$0$};
+\node at (1,-1) {$\infty$};
+\node at (-1,1) {$ $};
+\node at (1,1) {$\frac{i}{k'}$};
+\end{scope}
+
+\begin{scope}[xshift=3cm,yshift=-6cm]
+%\rechteck{gray}{1}
+\fill[color=white] (-1,-1) rectangle (1,1);
+\node[color=gray] at (0,0) {$1$};
+\end{scope}
+
+\begin{scope}[xshift=6cm,yshift=-6cm]
+\rechteck{cdcolor}{\operatorname{dc}(u,k)}
+\nullstelle{(1,1)}{cdcolor}
+\pol{(1,-1)}{cdcolor}
+\node at (-1,-1) {$1$};
+\node at (1,-1) {$\infty$};
+\node at (-1,1) {$k$};
+\node at (1,1) {$0$};
+\end{scope}
+
+%
+% start row with denominator dn(u,k)
+%
+
+\begin{scope}[xshift=-3cm,yshift=-9cm]
+\rechteck{gruen}{\operatorname{nd}(u,k)}
+\pol{(1,1)}{gruen}
+\nullstelle{(-1,1)}{gruen}
+\node at (-1,-1) {$1$};
+\node at (-1,1) {$0$};
+\node at (1,-1) {$\frac{1}{k'}$};
+\node at (1,1) {$\infty$};
+\end{scope}
+
+\begin{scope}[xshift=0cm,yshift=-9cm]
+\rechteck{sdcolor}{\operatorname{sd}(u,k)}
+\nullstelle{(-1,-1)}{sdcolor}
+\pol{(1,1)}{sdcolor}
+\node at (-1,-1) {$0$};
+\node at (1,-1) {$\frac{1}{k'}$};
+\node at (-1,1) {$ $};
+\node at (1,1) {$\infty$};
+\end{scope}
+
+\begin{scope}[xshift=3cm,yshift=-9cm]
+\rechteck{cdcolor}{\operatorname{cd}(u,k)}
+\pol{(1,1)}{cdcolor}
+\nullstelle{(1,-1)}{cdcolor}
+\node at (-1,-1) {$1$};
+\node at (-1,1) {$\frac1k $};
+\node at (1,-1) {$0$};
+\node at (1,1) {$\infty$};
+\end{scope}
+
+\begin{scope}[xshift=6cm,yshift=-9cm]
+%\rechteck{gray}{1}
+\fill[color=white] (-1,-1) rectangle (1,1);
+\node[color=gray] at (0,0) {$1$};
+\end{scope}
+
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/buch/chapters/110-elliptisch/images/ellcommon.tex b/buch/chapters/110-elliptisch/images/ellcommon.tex
new file mode 100644
index 0000000..cd3245d
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/ellcommon.tex
@@ -0,0 +1,24 @@
+%
+% ellcommon.tex -- common macros/definitions for elliptic function
+% values display
+%
+% (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\definecolor{rot}{rgb}{0.8,0,0}
+\definecolor{blau}{rgb}{0,0,1}
+\definecolor{gruen}{rgb}{0,0.6,0}
+\def\l{0.2}
+
+\def\pol#1#2{
+ \draw[color=#2!50,line width=3.0pt]
+ ($#1+(-\l,-\l)$) -- ($#1+(\l,\l)$);
+ \draw[color=#2!50,line width=3.0pt]
+ ($#1+(-\l,\l)$) -- ($#1+(\l,-\l)$);
+}
+\def\nullstelle#1#2{
+ \draw[color=#2!50,line width=3.0pt] #1 circle[radius=\l];
+}
+\def\rechteck#1#2{
+ \fill[color=#1!20] (-1,-1) rectangle (1,1);
+ \node[color=#1] at (0,0) {$#2\mathstrut$};
+}
diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.pdf b/buch/chapters/110-elliptisch/images/ellpolnul.pdf
new file mode 100644
index 0000000..d798169
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/ellpolnul.pdf
Binary files differ
diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.tex b/buch/chapters/110-elliptisch/images/ellpolnul.tex
new file mode 100644
index 0000000..dfa04d3
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/ellpolnul.tex
@@ -0,0 +1,69 @@
+%
+% ellpolnul.tex -- template for standalon tikz images
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{pgfplots}
+\usepackage{csvsimple}
+\usetikzlibrary{arrows,intersections,math,calc}
+\begin{document}
+\input{ellcommon.tex}
+\def\skala{1}
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+
+\input rechteckpfade3.tex
+
+\pgfmathparse{2/\xmax}
+\xdef\dx{\pgfmathresult}
+\xdef\dy{\dx}
+
+\begin{scope}[xshift=-1cm,yshift=-1cm]
+\clip (0,0) rectangle (2,2);
+\netz{0.4pt}
+\draw[line width=0.4pt] (-1,0) -- (1,0);
+\end{scope}
+\fill[color=white,opacity=0.7] (-1,-1) rectangle (1,1);
+\draw (-1,-1) rectangle (1,1);
+\node at (-1,-1) [below left] {$0$};
+\node at (1,-1) [below right] {$K$};
+\node at (1,1) [above right] {$K+iK'$};
+\node at (-1,1) [above left] {$iK'$};
+\node at (0,0) {$u$};
+
+\begin{scope}[xshift=4cm]
+\rechteck{rot}{\operatorname{sn}(u,k)}
+\nullstelle{(-1,-1)}{rot}
+\pol{(-1,1)}{rot}
+\node at (-1,-1) {$0$};
+\node at (1,-1) {$1$};
+\node at (1,1) {$\frac1k$};
+\node at (-1,1) {$\infty$};
+\end{scope}
+
+\begin{scope}[xshift=7cm]
+\rechteck{blau}{\operatorname{cn}(u,k)}
+\nullstelle{(1,-1)}{blau}
+\pol{(-1,1)}{blau}
+\node at (-1,-1) {$1$};
+\node at (1,-1) {$0$};
+\node at (1,1) {$\frac{k'}{ik}$};
+\node at (-1,1) {$\infty$};
+\end{scope}
+
+\begin{scope}[xshift=10cm]
+\rechteck{gruen}{\operatorname{dn}(u,k)}
+\nullstelle{(1,1)}{gruen}
+\pol{(-1,1)}{gruen}
+\node at (-1,-1) {$1$};
+\node at (1,-1) {$k'$};
+\node at (1,1) {$0$};
+\node at (-1,1) {$\infty$};
+\end{scope}
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/buch/chapters/110-elliptisch/images/ellselection.pdf b/buch/chapters/110-elliptisch/images/ellselection.pdf
new file mode 100644
index 0000000..7c98db1
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/ellselection.pdf
Binary files differ
diff --git a/buch/chapters/110-elliptisch/images/ellselection.tex b/buch/chapters/110-elliptisch/images/ellselection.tex
new file mode 100644
index 0000000..d8afeb1
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/ellselection.tex
@@ -0,0 +1,141 @@
+%
+% ellselection.tex -- Wahl einer elliptischen Funktion
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{pgfplots}
+\usepackage{csvsimple}
+\usetikzlibrary{arrows,intersections,math}
+\begin{document}
+\def\skala{1}
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+
+\input{rechteckpfade2.tex}
+
+\def\l{0.45}
+\pgfmathparse{\l*72/2.54}
+\xdef\L{\pgfmathresult}
+
+\pgfmathparse{4.1/\xmax}
+\xdef\dx{\pgfmathresult}
+\xdef\dy{\dx}
+
+\def\sx{4.1}
+\pgfmathparse{\sx*72/2.54}
+\xdef\Sx{\pgfmathresult}
+
+\pgfmathparse{\dx*\ymax}
+\xdef\sy{\pgfmathresult}
+\pgfmathparse{\sy*72/2.54}
+\xdef\Sy{\pgfmathresult}
+
+\pgfmathparse{\sx/2-\l}
+\xdef\linksx{\pgfmathresult}
+\pgfmathparse{\sy/2-\l}
+\xdef\linksy{\pgfmathresult}
+
+\pgfmathparse{\sx/2+2*\l}
+\xdef\rechtsx{\pgfmathresult}
+\pgfmathparse{\sy/2}
+\xdef\rechtsy{\pgfmathresult}
+
+\begin{scope}
+ \clip (-\sx,-\sy) rectangle (\sx,\sy);
+ \begin{scope}[xshift={-\Sx}]
+ \hintergrund
+ \netz{0.7pt}
+ \end{scope}
+ \begin{scope}[xshift={\Sx}]
+ \hintergrund
+ \netz{0.7pt}
+ \end{scope}
+\end{scope}
+
+\fill[color=red!14,opacity=0.7] ({-\sx},0) rectangle (\sx,\sy);
+\fill[color=blue!14,opacity=0.7] ({-\sx},{-\sy}) rectangle (\sx,0);
+\fill[color=yellow!40,opacity=0.5] (0,0) rectangle (\sx,\sy);
+
+\draw (-\sx,-\sy) rectangle (\sx,\sy);
+
+\draw[->] ({-1.4*\sx},0) -- ({1.4*\sx},0) coordinate[label={$\Re u$}];
+\draw[->] (0,{-\sy-1}) -- (0,{\sy+1}) coordinate[label={right:$\Im u$}];
+
+\definecolor{darkgreen}{rgb}{0,0.6,0}
+
+\draw[->,line width=1.9pt,color=darkgreen]
+ (\sx,0) to[out=180,in=-79] (\linksx,\linksy);
+\draw[->,line width=1.9pt,color=darkgreen]
+ (\sx,{\sy-\l}) to[out=-90,in=0] (\rechtsx,\rechtsy);
+
+\def\rect#1#2{
+ \fill[color=white] (-\l,-\l) rectangle (\l,\l);
+ #2
+ \draw (-\l,-\l) rectangle (\l,\l);
+ \node at (0,0) {\Huge #1\strut};
+}
+
+\def\kreuz{
+ \begin{scope}
+ \clip ({-\l},{-\l}) rectangle ({\l},{\l});
+ \fill[color=white] ({-2*\l},{-2*\l}) rectangle ({2*\l},{2*\l});
+ \draw[color=darkgreen!30,line width=3pt] (-\l,-\l) -- (\l,\l);
+ \draw[color=darkgreen!30,line width=3pt] (-\l,\l) -- (\l,-\l);
+ \end{scope}
+}
+
+\def\kreis{
+ \begin{scope}
+ \clip ({-\l},{-\l}) rectangle ({\l},{\l});
+ \fill[color=white] ({-2*\l},{-2*\l}) rectangle ({2*\l},{2*\l});
+ \draw[color=darkgreen!30,line width=3pt]
+ (0,0) circle[radius={\l*(\L-1.5)/\L}];
+ \end{scope}
+}
+
+\begin{scope}[xshift={0},yshift={0}]
+ \rect{s}{}
+\end{scope}
+
+\begin{scope}[xshift={\Sx},yshift={0}]
+ \rect{c}{\kreis}
+\end{scope}
+
+\begin{scope}[xshift={\Sx},yshift={\Sy}]
+ \rect{d}{\kreuz}
+\end{scope}
+
+\begin{scope}[xshift={0},yshift={\Sy}]
+ \rect{n}{}
+\end{scope}
+
+\node at ({-\l+0.1},{\sy+\l-0.1}) [above left] {$iK'\mathstrut$};
+\node at ({-\l+0.1},{-\l+0.1}) [below left] {$0\mathstrut$};
+\node at ({\sx+\l-0.1},{-\l+0.1}) [below right] {$K\mathstrut$};
+\node at ({\sx+\l-0.1},{\sy+\l-0.1}) [above right] {$K+iK'\mathstrut$};
+\node at ({-\sx},0) [below left] {$-K\mathstrut$};
+\node at (0,{-\sy+0.05}) [below left] {$-iK'\mathstrut$};
+\node at ({\sx-0.1},{-\sy+0.1}) [below right] {$K-iK'\mathstrut$};
+\node at ({-\sx+0.1},{-\sy+0.1}) [below left] {$-K-iK'\mathstrut$};
+\node at ({-\sx+0.1},{\sy-0.1}) [above left] {$-K+iK'\mathstrut$};
+
+\begin{scope}[xshift={-\L+0.5*\Sx},yshift={0.5*\Sy}]
+ \node at ({-\l},{\l-0.1}) [above] {Nullstelle\strut};
+ \kreis
+ \node[color=darkgreen] at (0,0) {\Huge c\strut};
+ \draw[line width=0.2pt] (-\l,-\l) rectangle (\l,\l);
+\end{scope}
+
+\begin{scope}[xshift={\L+0.5*\Sx},yshift={0.5*\Sy}]
+ \node at ({\l},{\l-0.1}) [above] {Pol\strut};
+ \kreuz
+ \node[color=darkgreen] at (0,0) {\Huge d\strut};
+ \draw[line width=0.2pt] (-\l,-\l) rectangle (\l,\l);
+\end{scope}
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/buch/chapters/110-elliptisch/images/jacobiplots.pdf b/buch/chapters/110-elliptisch/images/jacobiplots.pdf
index f0e6e78..eb9d7f1 100644
--- a/buch/chapters/110-elliptisch/images/jacobiplots.pdf
+++ b/buch/chapters/110-elliptisch/images/jacobiplots.pdf
Binary files differ
diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf
new file mode 100644
index 0000000..2bbd428
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/kegelpara.pdf
Binary files differ
diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pov b/buch/chapters/110-elliptisch/images/kegelpara.pov
new file mode 100644
index 0000000..13b66cc
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/kegelpara.pov
@@ -0,0 +1,329 @@
+//
+// kegelpara.pov
+//
+// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#version 3.7;
+#include "colors.inc"
+
+#declare O = <0,0,0>;
+
+global_settings {
+ assumed_gamma 1
+}
+
+#declare imagescale = 0.08;
+
+camera {
+ location <28, 20, -40>
+ look_at <0, 0.1, 0>
+ right x * imagescale
+ up y * imagescale
+}
+
+light_source {
+ <30, 10, -40> color White
+ area_light <1,0,0> <0,0,1>, 10, 10
+ adaptive 1
+ jitter
+}
+
+sky_sphere {
+ pigment {
+ color rgb<1,1,1>
+ }
+}
+
+
+//
+// draw an arrow from <from> to <to> with thickness <arrowthickness> with
+// color <c>
+//
+#macro arrow(from, to, arrowthickness, c)
+#declare arrowdirection = vnormalize(to - from);
+#declare arrowlength = vlength(to - from);
+union {
+ sphere {
+ from, 1.1 * arrowthickness
+ }
+ cylinder {
+ from,
+ from + (arrowlength - 5 * arrowthickness) * arrowdirection,
+ arrowthickness
+ }
+ cone {
+ from + (arrowlength - 5 * arrowthickness) * arrowdirection,
+ 2 * arrowthickness,
+ to,
+ 0
+ }
+ pigment {
+ color c
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+arrow(<-2.6,0,0>,<2.5,0,0>,0.02,White)
+arrow(<0,-2,0>,<0,2.3,0>,0.02,White)
+arrow(<0,0,-3.2>,<0,0,3.7>,0.02,White)
+
+#declare epsilon = 0.0001;
+#declare l = 1.5;
+
+#macro Kegel(farbe)
+union {
+ difference {
+ cone { O, 0, <l, 0, 0>, l }
+ cone { O + <epsilon, 0,0>, 0, <l+epsilon, 0, 0>, l }
+ }
+ difference {
+ cone { O, 0, <-l, 0, 0>, l }
+ cone { O + <-epsilon, 0, 0>, 0, <-l-epsilon, 0, 0>, l }
+ }
+ pigment {
+ color farbe
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#macro Kegelpunkt(xx, phi)
+ < xx, xx * sin(phi), xx * cos(phi) >
+#end
+
+#macro Kegelgitter(farbe, r)
+union {
+ #declare s = 0;
+ #declare smax = 2 * pi;
+ #declare sstep = pi / 6;
+ #while (s < smax - sstep/2)
+ cylinder { Kegelpunkt(l, s), Kegelpunkt(-l, s), r }
+ #declare s = s + sstep;
+ #end
+ #declare phimax = 2 * pi;
+ #declare phisteps = 100;
+ #declare phistep = phimax / phisteps;
+ #declare xxstep = 0.5;
+ #declare xxmax = 2;
+ #declare xx = xxstep;
+ #while (xx < xxmax - xxstep/2)
+ #declare phi = 0;
+ #while (phi < phimax - phistep/2)
+ cylinder {
+ Kegelpunkt(xx, phi),
+ Kegelpunkt(xx, phi + phistep),
+ r
+ }
+ sphere { Kegelpunkt(xx, phi), r }
+ cylinder {
+ Kegelpunkt(-xx, phi),
+ Kegelpunkt(-xx, phi + phistep),
+ r
+ }
+ sphere { Kegelpunkt(-xx, phi), r }
+ #declare phi = phi + phistep;
+ #end
+ #declare xx = xx + xxstep;
+ #end
+ pigment {
+ color farbe
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#macro F(w, r)
+ <r * cos(w), r * r/sqrt(2), r * sin(w) >
+#end
+
+#macro Paraboloid(farbe)
+mesh {
+ #declare phi = 0;
+ #declare phimax = 2 * pi;
+ #declare phisteps = 100;
+ #declare phistep = pi / phisteps;
+ #declare rsteps = 100;
+ #declare rmax = 1.5;
+ #declare rstep = rmax / rsteps;
+ #while (phi < phimax - phistep/2)
+ #declare r = rstep;
+ #declare h = r * r / sqrt(2);
+ triangle {
+ O, F(phi, r), F(phi + phistep, r)
+ }
+ #while (r < rmax - rstep/2)
+ // ring
+ triangle {
+ F(phi, r),
+ F(phi + phistep, r),
+ F(phi + phistep, r + rstep)
+ }
+ triangle {
+ F(phi, r),
+ F(phi + phistep, r + rstep),
+ F(phi, r + rstep)
+ }
+ #declare r = r + rstep;
+ #end
+ #declare phi = phi + phistep;
+ #end
+ pigment {
+ color farbe
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#macro Paraboloidgitter(farbe, gr)
+union {
+ #declare phi = 0;
+ #declare phimax = 2 * pi;
+ #declare phistep = pi / 6;
+
+ #declare rmax = 1.5;
+ #declare rsteps = 100;
+ #declare rstep = rmax / rsteps;
+
+ #while (phi < phimax - phistep/2)
+ #declare r = rstep;
+ #while (r < rmax - rstep/2)
+ cylinder { F(phi, r), F(phi, r + rstep), gr }
+ sphere { F(phi, r), gr }
+ #declare r = r + rstep;
+ #end
+ #declare phi = phi + phistep;
+ #end
+
+ #declare rstep = 0.2;
+ #declare r = rstep;
+
+ #declare phisteps = 100;
+ #declare phistep = phimax / phisteps;
+ #while (r < rmax)
+ #declare phi = 0;
+ #while (phi < phimax - phistep/2)
+ cylinder { F(phi, r), F(phi + phistep, r), gr }
+ sphere { F(phi, r), gr }
+ #declare phi = phi + phistep;
+ #end
+ #declare r = r + rstep;
+ #end
+ pigment {
+ color farbe
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#declare a = sqrt(2);
+#macro G(phi,sg)
+ < a*sg*sqrt(cos(2*phi))*cos(phi), a*cos(2*phi), a*sqrt(cos(2*phi))*sin(phi)>
+#end
+
+#macro Lemniskate3D(s, farbe)
+union {
+ #declare phi = -pi / 4;
+ #declare phimax = pi / 4;
+ #declare phisteps = 100;
+ #declare phistep = phimax / phisteps;
+ #while (phi < phimax - phistep/2)
+ sphere { G(phi,1), s }
+ cylinder { G(phi,1), G(phi+phistep,1), s }
+ sphere { G(phi,-1), s }
+ cylinder { G(phi,-1), G(phi+phistep,-1), s }
+ #declare phi = phi + phistep;
+ #end
+ pigment {
+ color farbe
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#declare a = sqrt(2);
+#macro G2(phi,sg)
+ a * sqrt(cos(2*phi)) * < sg * cos(phi), 0, sin(phi)>
+#end
+
+#macro Lemniskate(s, farbe)
+union {
+ #declare phi = -pi / 4;
+ #declare phimax = pi / 4;
+ #declare phisteps = 100;
+ #declare phistep = phimax / phisteps;
+ #while (phi < phimax - phistep/2)
+ sphere { G2(phi,1), s }
+ cylinder { G2(phi,1), G2(phi+phistep,1), s }
+ sphere { G2(phi,-1), s }
+ cylinder { G2(phi,-1), G2(phi+phistep,-1), s }
+ #declare phi = phi + phistep;
+ #end
+ pigment {
+ color farbe
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#macro Projektion(s, farbe)
+union {
+ #declare phistep = pi / 16;
+ #declare phi = -pi / 4 + phistep;
+ #declare phimax = pi / 4;
+ #while (phi < phimax - phistep/2)
+ cylinder { G(phi, 1), G2(phi, 1), s }
+ cylinder { G(phi, -1), G2(phi, -1), s }
+ #declare phi = phi + phistep;
+ #end
+ pigment {
+ color farbe
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#declare kegelfarbe = rgbf<0.2,0.6,0.2,0.2>;
+#declare kegelgitterfarbe = rgb<0.2,0.8,0.2>;
+#declare paraboloidfarbe = rgbf<0.2,0.6,1.0,0.2>;
+#declare paraboloidgitterfarbe = rgb<0.4,1,1>;
+
+//intersection {
+// union {
+ Paraboloid(paraboloidfarbe)
+ Paraboloidgitter(paraboloidgitterfarbe, 0.004)
+
+ Kegel(kegelfarbe)
+ Kegelgitter(kegelgitterfarbe, 0.004)
+// }
+// plane { <0, 0, -1>, 0.6 }
+//}
+
+
+Lemniskate3D(0.02, rgb<0.8,0.0,0.8>)
+Lemniskate(0.02, Red)
+Projektion(0.01, Yellow)
diff --git a/buch/chapters/110-elliptisch/images/kegelpara.tex b/buch/chapters/110-elliptisch/images/kegelpara.tex
new file mode 100644
index 0000000..8fcefbf
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/kegelpara.tex
@@ -0,0 +1,41 @@
+%
+% kegelpara.tex
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{times}
+\usepackage{amsmath}
+\usepackage{txfonts}
+\usepackage[utf8]{inputenc}
+\usepackage{graphics}
+\usetikzlibrary{arrows,intersections,math}
+\usepackage{ifthen}
+\begin{document}
+
+\newboolean{showgrid}
+\setboolean{showgrid}{false}
+\def\breite{4}
+\def\hoehe{4}
+
+\begin{tikzpicture}[>=latex,thick]
+
+% Povray Bild
+\node at (0,0) {\includegraphics[width=8cm]{kegelpara.jpg}};
+
+% Gitter
+\ifthenelse{\boolean{showgrid}}{
+\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw (-\breite,-\hoehe) grid (\breite, \hoehe);
+\fill (0,0) circle[radius=0.05];
+}{}
+
+\node at (4.1,-1.4) {$X$};
+\node at (0.2,3.8) {$Z$};
+\node at (4.0,1.8) {$Y$};
+
+\end{tikzpicture}
+
+\end{document}
+
diff --git a/buch/chapters/110-elliptisch/images/lemnispara.cpp b/buch/chapters/110-elliptisch/images/lemnispara.cpp
new file mode 100644
index 0000000..6f4d55d
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/lemnispara.cpp
@@ -0,0 +1,126 @@
+/*
+ * lemnispara.cpp -- Display parametrisation of the lemniskate
+ *
+ * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+ */
+#include <cstdio>
+#include <cstdlib>
+#include <cmath>
+#include <gsl/gsl_sf_elljac.h>
+#include <iostream>
+#include <fstream>
+#include <map>
+#include <string.h>
+#include <string>
+
+const static double s = sqrt(2);
+const static double k = 1 / s;
+const static double m = k * k;
+
+typedef std::pair<double, double> point_t;
+
+point_t operator*(const point_t& p, double s) {
+ return point_t(s * p.first, s * p.second);
+}
+
+static double norm(const point_t& p) {
+ return hypot(p.first, p.second);
+}
+
+static point_t normalize(const point_t& p) {
+ return p * (1/norm(p));
+}
+
+static point_t normal(const point_t& p) {
+ return std::make_pair(p.second, -p.first);
+}
+
+class lemniscate : public point_t {
+ double sn, cn, dn;
+public:
+ lemniscate(double t) {
+ gsl_sf_elljac_e(t, m, &sn, &cn, &dn);
+ first = s * cn * dn;
+ second = cn * sn;
+ }
+ point_t tangent() const {
+ return std::make_pair(-s * sn * (1.5 - sn * sn),
+ dn * (1 - 2 * sn * sn));
+ }
+ point_t unittangent() const {
+ return normalize(tangent());
+ }
+ point_t normal() const {
+ return ::normal(tangent());
+ }
+ point_t unitnormal() const {
+ return ::normal(unittangent());
+ }
+};
+
+std::ostream& operator<<(std::ostream& out, const point_t& p) {
+ char b[1024];
+ snprintf(b, sizeof(b), "({%.4f*\\dx},{%.4f*\\dy})", p.first, p.second);
+ out << b;
+ return out;
+}
+
+int main(int argc, char *argv[]) {
+ std::ofstream out("lemnisparadata.tex");
+
+ // the curve
+ double tstep = 0.01;
+ double tmax = 4.05;
+ out << "\\def\\lemnispath{ ";
+ out << lemniscate(0);
+ for (double t = tstep; t < tmax; t += tstep) {
+ out << std::endl << "\t" << "-- " << lemniscate(t);
+ }
+ out << std::endl;
+ out << "}" << std::endl;
+
+ out << "\\def\\lemnispathmore{ ";
+ out << lemniscate(tmax);
+ double tmax2 = 7.5;
+ for (double t = tmax + tstep; t < tmax2; t += tstep) {
+ out << std::endl << "\t" << "-- " << lemniscate(t);
+ }
+ out << std::endl;
+ out << "}" << std::endl;
+
+ // individual points
+ tstep = 0.2;
+ int i = 0;
+ char name[3];
+ strcpy(name, "L0");
+ for (double t = 0; t <= tmax; t += tstep) {
+ char c = 'A' + i++;
+ char buffer[128];
+ lemniscate l(t);
+ name[0] = 'L';
+ name[1] = c;
+ out << "\\coordinate (" << name << ") at ";
+ out << l << ";" << std::endl;
+ name[0] = 'T';
+ out << "\\coordinate (" << name << ") at ";
+ out << l.unittangent() << ";" << std::endl;
+ name[0] = 'N';
+ out << "\\coordinate (" << name << ") at ";
+ out << l.unitnormal() << ";" << std::endl;
+ name[0] = 'C';
+ out << "\\def\\" << name << "{ ";
+ out << "\\node[color=red] at ($(L" << c << ")+0.06*(N" << c << ")$) ";
+ out << "[rotate={";
+ double w = 180 * atan2(l.unitnormal().second,
+ l.unitnormal().first) / M_PI;
+ snprintf(buffer, sizeof(buffer), "%.1f", w);
+ out << buffer;
+ out << "-90}]";
+ snprintf(buffer, sizeof(buffer), "%.1f", t);
+ out << " {$\\scriptstyle " << buffer << "$};" << std::endl;
+ out << "}" << std::endl;
+ }
+
+ out.close();
+ return EXIT_SUCCESS;
+}
diff --git a/buch/chapters/110-elliptisch/images/lemnispara.pdf b/buch/chapters/110-elliptisch/images/lemnispara.pdf
new file mode 100644
index 0000000..16731d3
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/lemnispara.pdf
Binary files differ
diff --git a/buch/chapters/110-elliptisch/images/lemnispara.tex b/buch/chapters/110-elliptisch/images/lemnispara.tex
new file mode 100644
index 0000000..c6e32d7
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/lemnispara.tex
@@ -0,0 +1,94 @@
+%
+% lemnispara.tex -- parametrization of the lemniscate
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{amsmath}
+\usepackage{times}
+\usepackage{txfonts}
+\usepackage{pgfplots}
+\usepackage{csvsimple}
+\usetikzlibrary{arrows,intersections,math,calc}
+\begin{document}
+\def\skala{1}
+
+\begin{tikzpicture}[>=latex,thick,scale=\skala]
+\def\dx{4}
+\def\dy{4}
+\input{lemnisparadata.tex}
+
+% add image content here
+\draw[color=red!20,line width=1.4pt] \lemnispathmore;
+\draw[color=red,line width=1.4pt] \lemnispath;
+
+\draw[->] ({-1.6*\dx},0) -- ({1.8*\dx},0) coordinate[label={$X$}];
+\draw[->] (0,{-0.7*\dy}) -- (0,{0.7*\dy}) coordinate[label={right:$Y$}];
+
+\draw ({1.5*\dx},-0.05) -- ({1.5*\dx},0.05);
+\draw ({\dx},-0.05) -- ({\dx},0.05);
+\draw ({0.5*\dx},-0.05) -- ({0.5*\dx},0.05);
+\draw ({-0.5*\dx},-0.05) -- ({-0.5*\dx},0.05);
+\draw ({-\dx},-0.05) -- ({-\dx},0.05);
+\draw ({-1.5*\dx},-0.05) -- ({-1.5*\dx},0.05);
+\draw (-0.05,{0.5*\dy}) -- (0.05,{0.5*\dy});
+\draw (-0.05,{-0.5*\dy}) -- (0.05,{-0.5*\dy});
+
+\node at ({\dx},0) [above] {$1$};
+\node at ({-\dx},0) [above] {$-1$};
+\node at ({-0.5*\dx},0) [above] {$-\frac12$};
+\node at ({0.5*\dx},0) [above] {$\frac12$};
+\node at (0,{0.5*\dy}) [left] {$\frac12$};
+\node at (0,{-0.5*\dy}) [left] {$-\frac12$};
+
+\def\s{0.02}
+
+\draw[color=red] ($(LA)-\s*(NA)$) -- ($(LA)+\s*(NA)$);
+\draw[color=red] ($(LB)-\s*(NB)$) -- ($(LB)+\s*(NB)$);
+\draw[color=red] ($(LC)-\s*(NC)$) -- ($(LC)+\s*(NC)$);
+\draw[color=red] ($(LD)-\s*(ND)$) -- ($(LD)+\s*(ND)$);
+\draw[color=red] ($(LE)-\s*(NE)$) -- ($(LE)+\s*(NE)$);
+\draw[color=red] ($(LF)-\s*(NF)$) -- ($(LF)+\s*(NF)$);
+\draw[color=red] ($(LG)-\s*(NG)$) -- ($(LG)+\s*(NG)$);
+\draw[color=red] ($(LH)-\s*(NH)$) -- ($(LH)+\s*(NH)$);
+\draw[color=red] ($(LI)-\s*(NI)$) -- ($(LI)+\s*(NI)$);
+\draw[color=red] ($(LJ)-\s*(NJ)$) -- ($(LJ)+\s*(NJ)$);
+\draw[color=red] ($(LK)-\s*(NK)$) -- ($(LK)+\s*(NK)$);
+\draw[color=red] ($(LL)-\s*(NL)$) -- ($(LL)+\s*(NL)$);
+\draw[color=red] ($(LM)-\s*(NM)$) -- ($(LM)+\s*(NM)$);
+\draw[color=red] ($(LN)-\s*(NN)$) -- ($(LN)+\s*(NN)$);
+\draw[color=red] ($(LO)-\s*(NO)$) -- ($(LO)+\s*(NO)$);
+\draw[color=red] ($(LP)-\s*(NP)$) -- ($(LP)+\s*(NP)$);
+\draw[color=red] ($(LQ)-\s*(NQ)$) -- ($(LQ)+\s*(NQ)$);
+\draw[color=red] ($(LR)-\s*(NR)$) -- ($(LR)+\s*(NR)$);
+\draw[color=red] ($(LS)-\s*(NS)$) -- ($(LS)+\s*(NS)$);
+\draw[color=red] ($(LT)-\s*(NT)$) -- ($(LT)+\s*(NT)$);
+\draw[color=red] ($(LU)-\s*(NU)$) -- ($(LU)+\s*(NU)$);
+
+\CB
+\CC
+\CD
+\CE
+\CF
+\CG
+\CH
+\CI
+\CJ
+\CK
+\CL
+\CM
+\CN
+\CO
+\CP
+\CQ
+\CR
+\CS
+\CT
+\CU
+
+\fill[color=blue] (LA) circle[radius=0.07];
+\node[color=blue] at (LA) [above right] {$S$};
+
+\end{tikzpicture}
+\end{document}
+
diff --git a/buch/chapters/110-elliptisch/images/rechteck.cpp b/buch/chapters/110-elliptisch/images/rechteck.cpp
index c65ae0f..b5ad0ec 100644
--- a/buch/chapters/110-elliptisch/images/rechteck.cpp
+++ b/buch/chapters/110-elliptisch/images/rechteck.cpp
@@ -163,7 +163,7 @@ curvetracer::curve_t curvetracer::trace(const std::complex<double>& startz,
} catch (const toomanyiterations& x) {
std::cerr << "iterations exceeded after ";
std::cerr << result.size();
- std::cerr << " points";
+ std::cerr << " points" << std::endl;
maxsteps = 0;
}
}
@@ -230,7 +230,7 @@ void curvedrawer::operator()(const curvetracer::curve_t& curve) {
double first = true;
for (auto z : curve) {
if (first) {
- *_out << "\\draw[color=" << _color << "] ";
+ *_out << "\\draw[color=" << _color << ",line width=#1] ";
first = false;
} else {
*_out << std::endl << " -- ";
@@ -244,6 +244,7 @@ static struct option longopts[] = {
{ "outfile", required_argument, NULL, 'o' },
{ "k", required_argument, NULL, 'k' },
{ "deltax", required_argument, NULL, 'd' },
+{ "vsteps", required_argument, NULL, 'v' },
{ NULL, 0, NULL, 0 }
};
@@ -252,7 +253,8 @@ static struct option longopts[] = {
*/
int main(int argc, char *argv[]) {
double k = 0.625;
- double deltax = 0.2;
+ double Deltax = 0.2;
+ int vsteps = 4;
int c;
int longindex;
@@ -261,7 +263,7 @@ int main(int argc, char *argv[]) {
&longindex)))
switch (c) {
case 'd':
- deltax = std::stod(optarg);
+ Deltax = std::stod(optarg);
break;
case 'o':
outfilename = std::string(optarg);
@@ -269,6 +271,9 @@ int main(int argc, char *argv[]) {
case 'k':
k = std::stod(optarg);
break;
+ case 'v':
+ vsteps = std::stoi(optarg);
+ break;
}
double kprime = integrand::kprime(k);
@@ -293,15 +298,21 @@ int main(int argc, char *argv[]) {
curvetracer ct(f);
// fill
+ (*cdp->out()) << "\\def\\hintergrund{" << std::endl;
(*cdp->out()) << "\\fill[color=red!10] ({" << (-xmax) << "*\\dx},0) "
<< "rectangle ({" << xmax << "*\\dx},{" << ymax << "*\\dy});"
<< std::endl;
(*cdp->out()) << "\\fill[color=blue!10] ({" << (-xmax) << "*\\dx},{"
<< (-ymax) << "*\\dy}) rectangle ({" << xmax << "*\\dx},0);"
<< std::endl;
+ (*cdp->out()) << "}" << std::endl;
+
+ // macro for grid
+ (*cdp->out()) << "\\def\\netz#1{" << std::endl;
// "circles"
std::complex<double> dir(0.01, 0);
+ double deltax = Deltax;
for (double im = deltax; im < 3; im += deltax) {
std::complex<double> startz(0, im);
std::complex<double> startw = ct.startpoint(startz);
@@ -316,9 +327,9 @@ int main(int argc, char *argv[]) {
}
// imaginary axis
- (*cdp->out()) << "\\draw[color=red] (0,0) -- (0,{" << ymax
+ (*cdp->out()) << "\\draw[color=red,line width=#1] (0,0) -- (0,{" << ymax
<< "*\\dy});" << std::endl;
- (*cdp->out()) << "\\draw[color=blue] (0,0) -- (0,{" << (-ymax)
+ (*cdp->out()) << "\\draw[color=blue,line width=#1] (0,0) -- (0,{" << (-ymax)
<< "*\\dy});" << std::endl;
// arguments between 0 and 1
@@ -353,7 +364,8 @@ int main(int argc, char *argv[]) {
// arguments between 1 and 1/k
{
- for (double x0 = 1 + deltax; x0 < 1/k; x0 += deltax) {
+ deltax = (1/k - 1) / vsteps;
+ for (double x0 = 1 + deltax; x0 < 1/k + 0.00001; x0 += deltax) {
double y0 = sqrt(1-1/(x0*x0))/kprime;
//std::cout << "y0 = " << y0 << std::endl;
double y = gsl_sf_ellint_F(asin(y0), kprime,
@@ -389,8 +401,9 @@ int main(int argc, char *argv[]) {
// arguments larger than 1/k
{
+ deltax = Deltax;
dir = std::complex<double>(0, 0.01);
- double x0 = 1;
+ double x0 = 1/k;
while (x0 <= 1/k + 0.0001) { x0 += deltax; }
for (; x0 < 4; x0 += deltax) {
std::complex<double> startz(x0);
@@ -407,6 +420,8 @@ int main(int argc, char *argv[]) {
}
}
+ (*cdp->out()) << "}" << std::endl;
+
// border
(*cdp->out()) << "\\def\\xmax{" << xmax << "}" << std::endl;
(*cdp->out()) << "\\def\\ymax{" << ymax << "}" << std::endl;
diff --git a/buch/chapters/110-elliptisch/images/rechteck.pdf b/buch/chapters/110-elliptisch/images/rechteck.pdf
index 6209897..46f2376 100644
--- a/buch/chapters/110-elliptisch/images/rechteck.pdf
+++ b/buch/chapters/110-elliptisch/images/rechteck.pdf
Binary files differ
diff --git a/buch/chapters/110-elliptisch/images/rechteck.tex b/buch/chapters/110-elliptisch/images/rechteck.tex
index 622a9e9..12535ba 100644
--- a/buch/chapters/110-elliptisch/images/rechteck.tex
+++ b/buch/chapters/110-elliptisch/images/rechteck.tex
@@ -18,6 +18,8 @@
\def\dy{3}
\input{rechteckpfade.tex}
+\hintergrund
+\netz{0.7pt}
\begin{scope}
\clip ({-\xmax*\dx},{-\ymax*\dy}) rectangle ({\xmax*\dx},{\ymax*\dy});
diff --git a/buch/chapters/110-elliptisch/images/slcl.pdf b/buch/chapters/110-elliptisch/images/slcl.pdf
index c15051b..71645e3 100644
--- a/buch/chapters/110-elliptisch/images/slcl.pdf
+++ b/buch/chapters/110-elliptisch/images/slcl.pdf
Binary files differ
diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf
new file mode 100644
index 0000000..9b64ab2
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/torusschnitt.pdf
Binary files differ
diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pov b/buch/chapters/110-elliptisch/images/torusschnitt.pov
new file mode 100644
index 0000000..e5602df
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/torusschnitt.pov
@@ -0,0 +1,308 @@
+//
+// kegelpara.pov
+//
+// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#version 3.7;
+#include "colors.inc"
+
+#declare O = <0,0,0>;
+
+global_settings {
+ assumed_gamma 1
+}
+
+#declare imagescale = 0.060;
+
+camera {
+ location <28, 20, -40>
+ look_at <0, 0.55, 0>
+ right (16/9) * x * imagescale
+ up y * imagescale
+}
+
+light_source {
+ <30, 10, -40> color White
+ area_light <1,0,0> <0,0,1>, 10, 10
+ adaptive 1
+ jitter
+}
+
+sky_sphere {
+ pigment {
+ color rgb<1,1,1>
+ }
+}
+
+
+//
+// draw an arrow from <from> to <to> with thickness <arrowthickness> with
+// color <c>
+//
+#macro arrow(from, to, arrowthickness, c)
+#declare arrowdirection = vnormalize(to - from);
+#declare arrowlength = vlength(to - from);
+union {
+ sphere {
+ from, 1.1 * arrowthickness
+ }
+ cylinder {
+ from,
+ from + (arrowlength - 5 * arrowthickness) * arrowdirection,
+ arrowthickness
+ }
+ cone {
+ from + (arrowlength - 5 * arrowthickness) * arrowdirection,
+ 2 * arrowthickness,
+ to,
+ 0
+ }
+ pigment {
+ color c
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+
+#macro Ticks(tl, tr)
+union {
+ #declare s = 1;
+ #while (s <= 3.1)
+ cylinder { <-0.5*s-tl, 0, 0>, <-0.5*s+tl, 0, 0>, tr }
+ cylinder { < 0.5*s-tl, 0, 0>, < 0.5*s+tl, 0, 0>, tr }
+ #declare s = s + 1;
+ #end
+
+ #declare s = 1;
+ #while (s <= 4.1)
+ cylinder { <0, 0.5*s-tl, 0>, <0, 0.5*s+tl, 0>, tr }
+ #declare s = s + 1;
+ #end
+ #declare s = 1;
+ #while (s <= 2.1)
+ cylinder { <0,-0.5*s-tl, 0>, <0,-0.5*s+tl, 0>, tr }
+ #declare s = s + 1;
+ #end
+
+ #declare s = 1;
+ #while (s <= 4)
+ cylinder { <0, 0, 0.5*s-tl>, <0, 0, 0.5*s+tl>, tr }
+ #declare s = s + 1;
+ #end
+ #declare s = 1;
+ #while (s <= 3)
+ cylinder { <0, 0, -0.5*s-tl>, <0, 0, -0.5*s+tl>, tr }
+ #declare s = s + 1;
+ #end
+
+ pigment {
+ color White
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#declare epsilon = 0.001;
+#declare l = 1.5;
+
+#declare a = sqrt(2);
+#macro G2(phi,sg)
+ a * sqrt(cos(2*phi)) * < sg * cos(phi), 0, sin(phi)>
+#end
+
+#macro Lemniskate(s, farbe)
+union {
+ #declare phi = -pi / 4;
+ #declare phimax = pi / 4;
+ #declare phisteps = 100;
+ #declare phistep = phimax / phisteps;
+ #while (phi < phimax - phistep/2)
+ sphere { G2(phi,1), s }
+ cylinder { G2(phi,1), G2(phi+phistep,1), s }
+ sphere { G2(phi,-1), s }
+ cylinder { G2(phi,-1), G2(phi+phistep,-1), s }
+ #declare phi = phi + phistep;
+ #end
+ pigment {
+ color farbe
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#macro Projektion(s, farbe)
+union {
+ #declare phistep = pi / 16;
+ #declare phi = -pi / 4 + phistep;
+ #declare phimax = pi / 4;
+ #while (phi < phimax - phistep/2)
+ cylinder { G(phi, 1), G2(phi, 1), s }
+ cylinder { G(phi, -1), G2(phi, -1), s }
+ #declare phi = phi + phistep;
+ #end
+ pigment {
+ color farbe
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#macro Ebene(l, b, farbe)
+mesh {
+ triangle { <-l, 0, -b>, < l, 0, -b>, < l, 0, b> }
+ triangle { <-l, 0, -b>, < l, 0, b>, <-l, 0, b> }
+ pigment {
+ color farbe
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#macro Ebenengitter(l, b, s, r, farbe)
+union {
+ #declare lmax = floor(l / s);
+ #declare ll = -lmax;
+ #while (ll <= lmax)
+ cylinder { <ll * s, 0, -b>, <ll * s, 0, b>, r }
+ #declare ll = ll + 1;
+ #end
+ #declare bmax = floor(b / s);
+ #declare bb = -bmax;
+ #while (bb <= bmax)
+ cylinder { <-l, 0, bb * s>, <l, 0, bb * s>, r }
+ #declare bb = bb + 1;
+ #end
+ pigment {
+ color farbe
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#declare b = 0.5;
+#macro T(phi, theta)
+ b * < (2 + cos(theta)) * cos(phi), (2 + cos(theta)) * sin(phi) + 1, sin(theta) >
+#end
+
+#macro breitenkreis(theta, r)
+ #declare phi = 0;
+ #declare phimax = 2 * pi;
+ #declare phisteps = 200;
+ #declare phistep = phimax / phisteps;
+ #while (phi < phimax - phistep/2)
+ cylinder { T(phi, theta), T(phi + phistep, theta), r }
+ sphere { T(phi, theta), r }
+ #declare phi = phi + phistep;
+ #end
+#end
+
+#macro laengenkreis(phi, r)
+ #declare theta = 0;
+ #declare thetamax = 2 * pi;
+ #declare thetasteps = 200;
+ #declare thetastep = thetamax / thetasteps;
+ #while (theta < thetamax - thetastep/2)
+ cylinder { T(phi, theta), T(phi, theta + thetastep), r }
+ sphere { T(phi, theta), r }
+ #declare theta = theta + thetastep;
+ #end
+#end
+
+#macro Torusgitter(farbe, r)
+union {
+ #declare phi = 0;
+ #declare phimax = 2 * pi;
+ #declare phistep = pi / 6;
+ #while (phi < phimax - phistep/2)
+ laengenkreis(phi, r)
+ #declare phi = phi + phistep;
+ #end
+ #declare thetamax = pi;
+ #declare thetastep = pi / 6;
+ #declare theta = thetastep;
+ #while (theta < thetamax - thetastep/2)
+ breitenkreis(theta, r)
+ breitenkreis(thetamax + theta, r)
+ #declare theta = theta + thetastep;
+ #end
+ breitenkreis(0, 1.5 * r)
+ breitenkreis(pi, 1.5 * r)
+ pigment {
+ color farbe
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#macro Torus(farbe)
+mesh {
+ #declare phi = 0;
+ #declare phimax = 2 * pi;
+ #declare phisteps = 200;
+ #declare phistep = phimax/phisteps;
+ #while (phi < phimax - phistep/2)
+ #declare theta = 0;
+ #declare thetamax = 2 * pi;
+ #declare thetasteps = 200;
+ #declare thetastep = thetamax / thetasteps;
+ #while (theta < thetamax - thetastep/2)
+ triangle {
+ T(phi, theta),
+ T(phi + phistep, theta),
+ T(phi + phistep, theta + thetastep)
+ }
+ triangle {
+ T(phi, theta),
+ T(phi + phistep, theta + thetastep),
+ T(phi, theta + thetastep)
+ }
+ #declare theta = theta + thetastep;
+ #end
+ #declare phi = phi + phistep;
+ #end
+ pigment {
+ color farbe
+ }
+ finish {
+ specular 0.9
+ metallic
+ }
+}
+#end
+
+#declare torusfarbe = rgbt<0.2,0.6,0.2,0.2>;
+#declare ebenenfarbe = rgbt<0.2,0.6,1.0,0.2>;
+
+arrow(<-2,0,0>,<2,0,0>,0.02,White)
+arrow(<0,-1.1,0>,<0,2.2,0>,0.02,White)
+arrow(<0,0,-1.7>,<0,0,2.4>,0.02,White)
+Ticks(0.007,0.036)
+
+Lemniskate(0.02, Red)
+Ebene(1.8, 1.6, ebenenfarbe)
+Ebenengitter(1.8, 1.6, 0.5, 0.005, rgb<0.4,1,1>)
+Torus(torusfarbe)
+Torusgitter(Yellow, 0.005)
+
diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.tex b/buch/chapters/110-elliptisch/images/torusschnitt.tex
new file mode 100644
index 0000000..63351ad
--- /dev/null
+++ b/buch/chapters/110-elliptisch/images/torusschnitt.tex
@@ -0,0 +1,41 @@
+%
+% torusschnitt.tex
+%
+% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+%
+\documentclass[tikz]{standalone}
+\usepackage{times}
+\usepackage{amsmath}
+\usepackage{txfonts}
+\usepackage[utf8]{inputenc}
+\usepackage{graphics}
+\usetikzlibrary{arrows,intersections,math}
+\usepackage{ifthen}
+\begin{document}
+
+\newboolean{showgrid}
+\setboolean{showgrid}{false}
+\def\breite{6}
+\def\hoehe{4}
+
+\begin{tikzpicture}[>=latex,thick]
+
+% Povray Bild
+\node at (0,0) {\includegraphics[width=11.98cm]{torusschnitt.jpg}};
+
+% Gitter
+\ifthenelse{\boolean{showgrid}}{
+\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe);
+\draw (-\breite,-\hoehe) grid (\breite, \hoehe);
+\fill (0,0) circle[radius=0.05];
+}{}
+
+\node at (4.4,-2.4) {$X$};
+\node at (3.5,0.6) {$Y$};
+\node at (0.3,3.8) {$Z$};
+
+\end{tikzpicture}
+
+\end{document}
+
diff --git a/buch/chapters/110-elliptisch/lemniskate.tex b/buch/chapters/110-elliptisch/lemniskate.tex
index f750a82..61476a0 100644
--- a/buch/chapters/110-elliptisch/lemniskate.tex
+++ b/buch/chapters/110-elliptisch/lemniskate.tex
@@ -12,6 +12,9 @@ veröffentlich hat.
In diesem Abschnitt soll die Verbindung zu den Jacobischen
elliptischen Funktionen hergestellt werden.
+%
+% Lemniskate
+%
\subsection{Lemniskate
\label{buch:gemotrie:subsection:lemniskate}}
\begin{figure}
@@ -29,19 +32,26 @@ mit der Gleichung
\end{equation}
Sie ist in Abbildung~\ref{buch:elliptisch:fig:lemniskate}
dargestellt.
-Die beiden Scheitel der Lemniskate befinden sich bei $X_s=\pm a\sqrt{2}$.
+Der Fall $a=1/\!\sqrt{2}$ ist eine Kurve mit der Gleichung
+\[
+(x^2+y^2)^2 = x^2-y^2,
+\]
+wir nennen sie die {\em Standard-Lemniskate}.
+
+\subsubsection{Scheitelpunkte}
+Die beiden Scheitel der Lemniskate befinden sich bei $X_s=\pm a\!\sqrt{2}$.
Dividiert man die Gleichung der Lemniskate durch $X_s^2=4a^4$ entsteht
\begin{equation}
\biggl(
-\biggl(\frac{X}{a\sqrt{2}}\biggr)^2
+\biggl(\frac{X}{a\!\sqrt{2}}\biggr)^2
+
-\biggl(\frac{Y}{a\sqrt{2}}\biggr)^2
+\biggl(\frac{Y}{a\!\sqrt{2}}\biggr)^2
\biggr)^2
=
2\frac{a^2}{2a^2}\biggl(
-\biggl(\frac{X}{a\sqrt{2}}\biggr)^2
+\biggl(\frac{X}{a\!\sqrt{2}}\biggr)^2
-
-\biggl(\frac{Y}{a\sqrt{2}}\biggr)^2
+\biggl(\frac{Y}{a\!\sqrt{2}}\biggr)^2
\biggr).
\qquad
\Leftrightarrow
@@ -49,11 +59,13 @@ Dividiert man die Gleichung der Lemniskate durch $X_s^2=4a^4$ entsteht
(x^2+y^2)^2 = x^2-y^2,
\label{buch:elliptisch:eqn:lemniskatenormiert}
\end{equation}
-wobei wir $x=X/a\sqrt{2}$ und $y=Y/a\sqrt{2}$ gesetzt haben.
-In dieser Normierung liegen die Scheitel bei $\pm 1$.
+wobei wir $x=X/a\!\sqrt{2}$ und $y=Y/a\!\sqrt{2}$ gesetzt haben.
+In dieser Normierung, der Standard-Lemniskaten, liegen die Scheitel
+bei $\pm 1$.
Dies ist die Skalierung, die für die Definition des lemniskatischen
Sinus und Kosinus verwendet werden soll.
+\subsubsection{Polarkoordinaten}
In Polarkoordinaten $x=r\cos\varphi$ und $y=r\sin\varphi$
gilt nach Einsetzen in \eqref{buch:elliptisch:eqn:lemniskatenormiert}
\begin{equation}
@@ -71,12 +83,180 @@ Sie gilt für Winkel $\varphi\in[-\frac{\pi}4,\frac{\pi}4]$ für das
rechte Blatt und $\varphi\in[\frac{3\pi}4,\frac{5\pi}4]$ für das linke
Blatt der Lemniskate.
+%
+% Schnitt eines Kegels mit einem Paraboloid
+%
+\subsubsection{Schnitt eines Kegels mit einem Paraboloid}
+\begin{figure}
+\center
+\includegraphics{chapters/110-elliptisch/images/kegelpara.pdf}
+\caption{Leminiskate (rot) als Projektion (gelb) der Schnittkurve (pink)
+eines geraden
+Kreiskegels (grün) mit einem Rotationsparaboloid (hellblau).
+\label{buch:elliptisch:lemniskate:kegelpara}}
+\end{figure}%
+\index{Kegel}%
+\index{Paraboloid}%
+Schreibt man in der Gleichung~\eqref{buch:elliptisch:eqn:lemniskate}
+für die Klammer auf der rechten Seite $Z^2 = X^2 - Y^2$, dann wird die
+Lemniskate die Projektion in die $X$-$Y$-Ebene der Schnittkurve der Flächen,
+die durch die Gleichungen
+\begin{equation}
+X^2-Y^2 = Z^2
+\qquad\text{und}\qquad
+(X^2+Y^2) = R^2 = \!\sqrt{2}aZ
+\label{buch:elliptisch:eqn:kegelparabolschnitt}
+\end{equation}
+beschrieben wird.
+Die linke Gleichung in
+\eqref{buch:elliptisch:eqn:kegelparabolschnitt}
+beschreibt einen geraden Kreiskegel, die rechte ist ein Rotationsparaboloid.
+Die Schnittkurve ist in Abbildung~\ref{buch:elliptisch:lemniskate:kegelpara}
+dargestellt.
+
+\subsubsection{Schnitt eines Torus mit einer Ebene}
+\begin{figure}
+\centering
+\includegraphics{chapters/110-elliptisch/images/torusschnitt.pdf}
+\caption{Die Schnittkurve (rot) eines Torus (grün)
+mit einer zur Torusachse parallelen Ebene (blau),
+die den inneren Äquator des Torus berührt, ist eine Lemniskate.
+\label{buch:elliptisch:lemniskate:torusschnitt}}
+\end{figure}
+\index{Torus}%
+Schneidet man einen Torus mit einer Ebene, die zur Achse des Torus
+parallel ist und den inneren Äquator des Torus berührt, wie in
+Abbildung~\ref{buch:elliptisch:lemniskate:torusschnitt},
+entsteht ebenfalls eine Lemniskate, wie in diesem Abschnitt nachgewiesen
+werden soll.
+
+Der in Abbildung~\ref{buch:elliptisch:lemniskate:torusschnitt}
+dargestellte Torus mit den Radien $2$ und $1$ hat als Achse die
+um eine Einheit in $Z$-Richtung verschobene $Y$-Achse und die
+$X$-$Z$-Ebene als Äquatorebene.
+Der Torus kann mit
+\[
+(u,v)
+\mapsto
+\begin{pmatrix}
+(2+\cos u) \cos v \\
+ \sin u \\
+(2+\cos u) \sin v + 1
+\end{pmatrix}
+\]
+parametrisiert werden, die $u$- und $v$-Koordinatenlinien sind
+in der Abbildung gelb eingezeichnet.
+Die $v$-Koordinatenlinien sind Breitenkreise um die Achse des Torus.
+Aus $u=0$ und $u=\pi$ ergeben sich die Äquatoren des Torus.
+
+Die Gleichung $Z=0$ beschreibt eine achsparallele Ebene, die den
+inneren Äquator berührt.
+Die Schnittkurve erfüllt daher
+\[
+(2+\cos u)\sin v + 1 = 0,
+\]
+was wir auch als $2 +\cos u = -1/\sin v$ schreiben können.
+Wir müssen nachprüfen, dass die Koordinaten
+$X=(2+\cos u)\cos v$ und $Y=\sin u$ die Gleichung einer Lemniskate
+erfüllen.
+
+Zunächst können wir in der $X$-Koordinate den Klammerausdruck durch
+$\sin v$ ausdrücken und erhalten
+\begin{equation}
+X
+=
+(2+\cos u) \cos v
+=
+-\frac{1}{\sin v}\cos v
+=
+-\frac{\cos v}{\sin v}
+\qquad\Rightarrow\qquad
+X^2
+=
+\frac{\cos^2v}{\sin^2 v}
+=
+\frac{1-\sin^2v}{\sin^2 v}.
+\label{buch:elliptisch:lemniskate:Xsin}
+\end{equation}
+Auch die $Y$-Koordinaten können wir durch $v$ ausdrücken,
+nämlich
+\begin{equation}
+Y^2=\sin^2 u = 1-\cos^2 u
+=
+1-
+\biggl(
+\frac{1}{\sin v}
+-2
+\biggr)^2
+=
+\frac{-3\sin^2 v+4\sin v-1}{\sin^2 v}.
+\label{buch:elliptisch:lemniskate:Ysin}
+\end{equation}
+Die Gleichungen
+\eqref{buch:elliptisch:lemniskate:Xsin}
+und
+\eqref{buch:elliptisch:lemniskate:Ysin}
+zeigen, dass man $X^2$ und $Y^2$ sogar einzig durch $\sin v$
+parametrisieren kann.
+Um die Ausdrücke etwas zu vereinfachen, schreiben wir $S=\sin v$
+und erhalten zusammenfassend
+\begin{equation}
+\begin{aligned}
+X^2
+&=
+\frac{1-S^2}{S^2}
+\\
+Y^2
+&=
+\frac{-3S^2+4S-1}{S^2}.
+\end{aligned}
+\end{equation}
+Daraus kann man jetzt die Summen und Differenzen der Quadrate
+berechnen, sie sind
+\begin{equation}
+\begin{aligned}
+X^2+Y^2
+&=
+\frac{-4S^2+4S}{S^2}
+=
+\frac{4S(1-S)}{S^2}
+=
+\frac{4(1-S)}{S}
+=
+4\frac{1-S}{S}
+\\
+X^2-Y^2
+&=
+\frac{2-4S+2S^2}{S^2}
+=
+\frac{2(1-S)^2}{S^2}
+=
+2\biggl(\frac{1-S}{S}\biggr)^2.
+\end{aligned}
+\end{equation}
+Die Berechnung des Quadrates von $X^2+Y^2$ ergibt die Gleichung
+\[
+(X^2+Y^2)^2
+=
+16
+\biggl(\frac{1-S}{S}\biggr)^2
+=
+8 \cdot 2
+\biggl(\frac{1-S}{S}\biggr)^2
+=
+2\cdot 2^2\cdot (X^2-Y^2).
+\]
+Sie ist eine Lemniskaten-Gleichung für $a=2$.
+
+%
+% Bogenlänge der Lemniskate
+%
\subsection{Bogenlänge}
Die Funktionen
\begin{equation}
-x(r) = \frac{r}{\sqrt{2}}\sqrt{1+r^2},
+x(r) = \frac{r}{\!\sqrt{2}}\sqrt{1+r^2},
\quad
-y(r) = \frac{r}{\sqrt{2}}\sqrt{1-r^2}
+y(r) = \frac{r}{\!\sqrt{2}}\sqrt{1-r^2}
\label{buch:geometrie:eqn:lemniskateparam}
\end{equation}
erfüllen
@@ -91,7 +271,7 @@ r^4
=
(x(r)^2 + y(r)^2)^2,
\end{align*}
-sie stellen also eine Parametrisierung der Lemniskate dar.
+sie stellen also eine Parametrisierung der Standard-Lemniskate dar.
Mit Hilfe der Parametrisierung~\eqref{buch:geometrie:eqn:lemniskateparam}
kann man die Länge $s$ des in Abbildung~\ref{buch:elliptisch:fig:lemniskate}
@@ -101,9 +281,9 @@ Kettenregel berechnen kann:
\begin{align*}
\dot{x}(r)
&=
-\frac{\sqrt{1+r^2}}{\sqrt{2}}
+\frac{\!\sqrt{1+r^2}}{\!\sqrt{2}}
+
-\frac{r^2}{\sqrt{2}\sqrt{1+r^2}}
+\frac{r^2}{\!\sqrt{2}\sqrt{1+r^2}}
&&\Rightarrow&
\dot{x}(r)^2
&=
@@ -111,13 +291,13 @@ Kettenregel berechnen kann:
\\
\dot{y}(r)
&=
-\frac{\sqrt{1-r^2}}{\sqrt{2}}
+\frac{\!\sqrt{1-r^2}}{\!\sqrt{2}}
-
\frac{r^2}{\sqrt{2}\sqrt{1-r^2}}
&&\Rightarrow&
\dot{y}(r)^2
&=
-\frac{1-r^2}{2} -r^2 + \frac{r^4}{2(1-r^2)}
+\frac{1-r^2}{2} -r^2 + \frac{r^4}{2(1-r^2)}.
\end{align*}
Die Summe der Quadrate ist
\begin{align*}
@@ -136,7 +316,7 @@ Durch Einsetzen in das Integral für die Bogenlänge bekommt man
s(r)
=
\int_0^r
-\frac{1}{\sqrt{1-t^4}}\,dt.
+\frac{1}{\!\sqrt{1-t^4}}\,dt.
\label{buch:elliptisch:eqn:lemniskatebogenlaenge}
\end{equation}
@@ -149,11 +329,11 @@ $k^2=-1$ oder $k=i$ ist
\[
K(r,i)
=
-\int_0^x \frac{dt}{\sqrt{(1-t^2)(1-i^2 t^2)}}
+\int_0^x \frac{dt}{\!\sqrt{(1-t^2)(1-i^2 t^2)}}
=
-\int_0^x \frac{dt}{\sqrt{(1-t^2)(1-(-1)t^2)}}
+\int_0^x \frac{dt}{\!\sqrt{(1-t^2)(1-(-1)t^2)}}
=
-\int_0^x \frac{dt}{\sqrt{1-t^4}}
+\int_0^x \frac{dt}{\!\sqrt{1-t^4}}
=
s(r).
\]
@@ -180,6 +360,13 @@ $\varpi/2$.
% Bogenlängenparametrisierung
%
\subsection{Bogenlängenparametrisierung}
+\begin{figure}
+\centering
+\includegraphics{chapters/110-elliptisch/images/lemnispara.pdf}
+\caption{Parametrisierung der Lemniskate mit Jacobischen elliptischen
+Funktion wie in \eqref{buch:elliptisch:lemniskate:bogeneqn}
+\label{buch:elliptisch:lemniskate:bogenpara}}
+\end{figure}
Die Lemniskate mit der Gleichung
\[
(X^2+Y^2)^2=2(X^2-Y^2)
@@ -188,7 +375,7 @@ Die Lemniskate mit der Gleichung
kann mit Jacobischen elliptischen Funktionen
parametrisiert werden.
Dazu schreibt man
-\[
+\begin{equation}
\left.
\begin{aligned}
X(t)
@@ -201,11 +388,23 @@ Y(t)
\operatorname{cn}(t,k) \operatorname{sn}(t,k)
\end{aligned}
\quad\right\}
-\qquad\text{mit $k=\displaystyle\frac{1}{\sqrt{2}}$}
-\]
-und berechnet die beiden Seiten der definierenden Gleichung der
-Lemniskate.
-Zunächst ist
+\qquad\text{mit $k=\displaystyle\frac{1}{\sqrt{2}}.$}
+\label{buch:elliptisch:lemniskate:bogeneqn}
+\end{equation}
+Abbildung~\ref{buch:elliptisch:lemniskate:bogenpara} zeigt die
+Parametrisierung.
+Dem Parameterwert $t=0$ entspricht der Scheitelpunkt
+$S=(\!\sqrt{2},0)$ der Lemniskate.
+
+%
+% Lemniskatengleichung
+%
+\subsubsection{Verfikation der Lemniskatengleichung}
+Dass \eqref{buch:elliptisch:lemniskate:bogeneqn}
+tatsächlich eine Parametrisierung ist, kann dadurch nachgewiesen werden,
+dass man die beiden Seiten der definierenden Gleichung der
+Lemniskate berechnet.
+Zunächst sind die Quadrate von $X(t)$ und $Y(t)$
\begin{align*}
X(t)^2
&=
@@ -215,8 +414,8 @@ X(t)^2
Y(t)^2
&=
\operatorname{cn}(t,k)^2
-\operatorname{sn}(t,k)^2
-\\
+\operatorname{sn}(t,k)^2.
+\intertext{Für Summe und Differenz der Quadrate findet man jetzt}
X(t)^2+Y(t)^2
&=
2\operatorname{cn}(t,k)^2
@@ -248,54 +447,49 @@ X(t)^2-Y(t)^2
\bigr)
\\
&=
-2\operatorname{cn}(t,k)^4
-\\
+2\operatorname{cn}(t,k)^4.
+\intertext{Beide lassen sich also durch $\operatorname{cn}(t,k)^2$
+ausdrücken.
+Zusammengefasst erhält man}
\Rightarrow\qquad
(X(t)^2+Y(t)^2)^2
&=
4\operatorname{cn}(t,k)^4
=
-2(X(t)^2-Y(t)^2).
+2(X(t)^2-Y(t)^2),
\end{align*}
+eine Lemniskaten-Gleichung.
+
+%
+% Berechnung der Bogenlänge
+%
+\subsubsection{Berechnung der Bogenlänge}
Wir zeigen jetzt, dass dies tatsächlich eine Bogenlängenparametrisierung
der Lemniskate ist.
Dazu berechnen wir die Ableitungen
\begin{align*}
\dot{X}(t)
&=
-\sqrt{2}\operatorname{cn}'(t,k)\operatorname{dn}(t,k)
+\!\sqrt{2}\operatorname{cn}'(t,k)\operatorname{dn}(t,k)
+
-\sqrt{2}\operatorname{cn}(t,k)\operatorname{dn}'(t,k)
+\!\sqrt{2}\operatorname{cn}(t,k)\operatorname{dn}'(t,k)
\\
&=
--\sqrt{2}\operatorname{sn}(t,k)\operatorname{dn}(t,k)^2
+-\!\sqrt{2}\operatorname{sn}(t,k)\operatorname{dn}(t,k)^2
-\frac12\sqrt{2}\operatorname{sn}(t,k)\operatorname{cn}(t,k)^2
\\
&=
--\sqrt{2}\operatorname{sn}(t,k)\bigl(
+-\!\sqrt{2}\operatorname{sn}(t,k)\bigl(
1-{\textstyle\frac12}\operatorname{sn}(t,k)^2
-+{\textstyle\frac12}-{\textstyle\frac12}\operatorname{sn}(u,t)^2
++{\textstyle\frac12}-{\textstyle\frac12}\operatorname{sn}(t,k)^2
\bigr)
\\
&=
-\sqrt{2}\operatorname{sn}(t,k)
+\!\sqrt{2}\operatorname{sn}(t,k)
\bigl(
{\textstyle \frac32}-\operatorname{sn}(t,k)^2
\bigr)
\\
-\dot{X}(t)^2
-&=
-2\operatorname{sn}(t,k)^2
-\bigl(
-{\textstyle \frac32}-\operatorname{sn}(t,k)^2
-\bigr)^2
-\\
-&=
-{\textstyle\frac{9}{2}}\operatorname{sn}(t,k)^2
--
-6\operatorname{sn}(t,k)^4
-+2\operatorname{sn}(t,k)^6
-\\
\dot{Y}(t)
&=
\operatorname{cn}'(t,k)\operatorname{sn}(t,k)
@@ -310,6 +504,19 @@ Dazu berechnen wir die Ableitungen
\\
&=
\operatorname{dn}(t,k)\bigl(1-2\operatorname{sn}(t,k)^2\bigr)
+\intertext{und davon die Quadrate}
+\dot{X}(t)^2
+&=
+2\operatorname{sn}(t,k)^2
+\bigl(
+{\textstyle \frac32}-\operatorname{sn}(t,k)^2
+\bigr)^2
+\\
+&=
+{\textstyle\frac{9}{2}}\operatorname{sn}(t,k)^2
+-
+6\operatorname{sn}(t,k)^4
++2\operatorname{sn}(t,k)^6
\\
\dot{Y}(t)^2
&=
@@ -319,25 +526,28 @@ Dazu berechnen wir die Ableitungen
&=
1-{\textstyle\frac{9}{2}}\operatorname{sn}(t,k)^2
+6\operatorname{sn}(t,k)^4
--2\operatorname{sn}(t,k)^6
-\\
+-2\operatorname{sn}(t,k)^6.
+\intertext{Für das Bogenlängenintegral wird die Quadratsumme der Ableitungen
+benötigt, diese ist}
\dot{X}(t)^2 + \dot{Y}(t)^2
&=
1.
-\end{align*}
-Dies bedeutet, dass die Bogenlänge zwischen den Parameterwerten $0$ und $s$
-\[
-\int_0^s
-\sqrt{\dot{X}(t)^2 + \dot{Y}(t)^2}
-\,dt
-=
-\int_0^s\,dt
+\intertext{Dies bedeutet, dass die Bogenlänge zwischen den
+Parameterwerten $0$ und $t$}
+\int_0^t
+\sqrt{\dot{X}(\tau)^2 + \dot{Y}(\tau)^2}
+\,d\tau
+&=
+\int_0^s\,d\tau
=
-s,
-\]
-der Parameter $t$ ist also ein Bogenlängenparameter, man darf also
-$s=t$ schreiben.
+t,
+\end{align*}
+der Parameter $t$ ist also ein Bogenlängenparameter.
+%
+% Bogenlängenparametrisierung der Standard-Lemniskate
+%
+\subsubsection{Bogenlängenparametrisierung der Standard-Lemniskate}
Die mit dem Faktor $1/\sqrt{2}$ skalierte Standard-Lemniskate mit der
Gleichung
\[
@@ -345,19 +555,31 @@ Gleichung
\]
hat daher eine Bogenlängenparametrisierung mit
\begin{equation}
+\left.
\begin{aligned}
x(t)
&=
-\phantom{\frac{1}{\sqrt{2}}}
-\operatorname{cn}(\sqrt{2}t,k)\operatorname{dn}(\sqrt{2}t,k)
+\phantom{\frac{1}{\!\sqrt{2}}}
+\operatorname{cn}(\!\sqrt{2}t,k)\operatorname{dn}(\!\sqrt{2}t,k)
\\
y(t)
&=
-\frac{1}{\sqrt{2}}\operatorname{cn}(\sqrt{2}t,k)\operatorname{sn}(\sqrt{2}t,k)
+\frac{1}{\!\sqrt{2}}
+\operatorname{cn}(\!\sqrt{2}t,k)\operatorname{sn}(\!\sqrt{2}t,k)
\end{aligned}
+\quad
+\right\}
+\qquad
+\text{mit $\displaystyle k=\frac{1}{\!\sqrt{2}}.$}
\label{buch:elliptisch:lemniskate:bogenlaenge}
\end{equation}
+Der Punkt $t=0$ entspricht dem Scheitelpunkt $S=(1,0)$ der Lemniskate.
+Der Parameter misst also die Bogenlänge entlang der Lemniskate ausgehend
+vom Scheitel.
+%
+% der lemniskatische Sinus und Kosinus
+%
\subsection{Der lemniskatische Sinus und Kosinus}
Der Sinus berechnet die Gegenkathete zu einer gegebenen Bogenlänge des
Kreises, er ist die Umkehrfunktion der Funktion, die der Gegenkathete
@@ -365,42 +587,100 @@ die Bogenlänge zuordnet.
Daher ist es naheliegend, die Umkehrfunktion von $s(r)$ in
\eqref{buch:elliptisch:eqn:lemniskatebogenlaenge}
den {\em lemniskatischen Sinus} zu nennen mit der Bezeichnung
-$r=\operatorname{sl} s$.
+\index{lemniskatischer Sinus}%
+\index{Sinus, lemniskatischer}%
+$r=r(s)=\operatorname{sl} s$.
+\index{komplementäre Bogenlänge}
+%
+% die komplementäre Bogenlänge
+%
+\subsubsection{Die komplementäre Bogenlänge}
Der Kosinus ist der Sinus des komplementären Winkels.
Auch für die lemniskatische Bogenlänge $s(r)$ lässt sich eine
-komplementäre Bogenlänge definieren, nämlich die Bogenlänge zwischen
-dem Punkt $(x(r), y(r))$ und $(1,0)$.
-Da die Bogenlänge zwischen $(0,0)$ und $(1,0)$ in
-in \eqref{buch:elliptisch:eqn:varpi} bereits bereichnet wurde.
-ist sie $\varpi/2-s$.
+komplementäre Bogenlänge $t$ definieren, nämlich die Bogenlänge
+zwischen dem Punkt $(x(r), y(r))$ und dem Scheitelpunkt $S=(1,0)$.
+Dies ist der Parameter der Parametrisierung
+\eqref{buch:elliptisch:lemniskate:bogenlaenge}
+des vorangegangenen Abschnittes.
+Die Bogenlänge zwischen $O=(0,0)$ und $S=(1,0)$ wurde in
+\eqref{buch:elliptisch:eqn:varpi} bereits bereichnet,
+sie ist $\varpi/2$.
+Damit folgt für die beiden Parameter $s$ und $t$ die Beziehung
+$t = \varpi/2 - s$.
+
+\subsubsection{Der lemniskatische Kosinus}
+\begin{figure}
+\centering
+\includegraphics[width=\textwidth]{chapters/110-elliptisch/images/slcl.pdf}
+\caption{
+Lemniskatischer Sinus und Kosinus sowie Sinus und Kosinus
+mit derart skaliertem Argument, dass die Funktionen die
+gleichen Nullstellen haben.
+\label{buch:elliptisch:figure:slcl}}
+\end{figure}
Der {\em lemniskatische Kosinus} ist daher
-$\operatorname{cl}(s) = \operatorname{sl}(\varpi/2-s)$
+$\operatorname{cl}(s) = \operatorname{sl}(\varpi/2-s)$.
Graphen des lemniskatische Sinus und Kosinus sind in
-Abbildung~\label{buch:elliptisch:figure:slcl} dargestellt.
+Abbildung~\ref{buch:elliptisch:figure:slcl} dargestellt.
-Da die Parametrisierung~\eqref{buch:elliptisch:lemniskate:bogenlaenge}
-eine Bogenlängenparametrisierung ist, darf man $t=s$ schreiben.
-Dann kann man aber auch $r(s)$ daraus berechnen,
-es ist
+Die Parametrisierung~\eqref{buch:elliptisch:lemniskate:bogenlaenge}
+ist eine Bogenlängenparametrisierung der Standard-Lemniskate.
+Man kann sie verwenden, um $r(t)$ zu berechnen.
+Es ist
\[
-r(s)^2
+r(t)^2
=
-x(s)^2 + y(s)^2
+x(t)^2 + y(t)^2
+=
+\operatorname{cn}(\!\sqrt{2}t,k)^2
+\biggl(
+\operatorname{dn}(\!\sqrt{2}t,k)^2
++
+\frac12
+\operatorname{sn}(\!\sqrt{2}t,k)^2
+\biggr)
+=
+\operatorname{cn}(\!\sqrt{2}t,k)^2.
+\]
+Die Wurzel ist
+\[
+r(t)
+=
+\operatorname{cn}(\!\sqrt{2}t,{\textstyle\frac{1}{\!\sqrt{2}}})
+.
+\]
+Der lemniskatische Sinus wurde aber in Abhängigkeit von
+$s=\varpi/2-t$ mittels
+\[
+\operatorname{sl}s
=
-\operatorname{cn}(s\sqrt{2},k)^2
-\qquad\Rightarrow\qquad
r(s)
=
-\operatorname{cn}(s\sqrt{2},k)
+\operatorname{cn}(\!\sqrt{2}(\varpi/2-s),k)^2
+\]
+definiert.
+Der lemniskatische Kosinus ist definiert als der lemniskatische Sinus
+\index{lemniskatischer Kosinus}%
+\index{Kosinus, lemniskatischer}%
+der komplementären Bogenlänge, also
+\[
+\operatorname{cl}(s)
+=
+\operatorname{sl}(\varpi/2-s)
+=
+\operatorname{cn}(\!\sqrt{2}s,k)^2.
\]
+Die Funktion $\operatorname{sl}(s)$ und $\operatorname{cl}(s)$ sind
+in Abbildung~\ref{buch:elliptisch:figure:slcl} dargestellt.
+Sie sind beide $2\varpi$-periodisch.
+Die Abbildung zeigt ausserdem die Funktionen $\sin (\pi s/\varpi)$
+und $\cos(\pi s/\varpi)$, die ebenfalls $2\varpi$-periodisch sind.
+
+Die Darstellung des lemniskatischen Sinus und Kosinus durch die
+Jacobische elliptische Funktion $\operatorname{cn}(\!\sqrt{2}s,k)$
+zeigt einmal mehr den Nutzen der Jacobischen elliptischen Funktionen.
+
+
+
-\begin{figure}
-\centering
-\includegraphics[width=\textwidth]{chapters/110-elliptisch/images/slcl.pdf}
-\caption{
-Lemniskatischer Sinus und Kosinus sowie Sinus und Kosinus
-mit derart skaliertem Argument, dass die Funktionen die gleichen Nullstellen
-haben.
-\label{buch:elliptisch:figure:slcl}}
-\end{figure}
diff --git a/buch/chapters/110-elliptisch/mathpendel.tex b/buch/chapters/110-elliptisch/mathpendel.tex
index d61bcf6..39cb418 100644
--- a/buch/chapters/110-elliptisch/mathpendel.tex
+++ b/buch/chapters/110-elliptisch/mathpendel.tex
@@ -94,6 +94,24 @@ Für $E>2mgl$ wird sich das Pendel im Kreis bewegen, für sehr grosse
Energie ist die kinetische Energie dominant, die Verlangsamung im
höchsten Punkt wird immer weniger ausgeprägt sein.
+\begin{figure}
+\centering
+\includegraphics[width=\textwidth]{chapters/110-elliptisch/images/jacobiplots.pdf}
+\caption{%
+Abhängigkeit der elliptischen Funktionen von $u$ für
+verschiedene Werte von $k^2=m$.
+Für $m=0$ ist $\operatorname{sn}(u,0)=\sin u$,
+$\operatorname{cn}(u,0)=\cos u$ und $\operatorname{dn}(u,0)=1$, diese
+sind in allen Plots in einer helleren Farbe eingezeichnet.
+Für kleine Werte von $m$ weichen die elliptischen Funktionen nur wenig
+von den trigonometrischen Funktionen ab,
+es ist aber klar erkennbar, dass die anharmonischen Terme in der
+Differentialgleichung die Periode mit steigender Amplitude verlängern.
+Sehr grosse Werte von $m$ nahe bei $1$ entsprechen der Situation, dass
+die Energie des Pendels fast ausreicht, dass es den höchsten Punkt
+erreichen kann, was es für $m$ macht.
+\label{buch:elliptisch:fig:jacobiplots}}
+\end{figure}
%
% Koordinatentransformation auf elliptische Funktionen
%
@@ -160,24 +178,6 @@ $1$ sein muss.
% Der Fall E < 2mgl
%
\subsubsection{Der Fall $E<2mgl$}
-\begin{figure}
-\centering
-\includegraphics[width=\textwidth]{chapters/110-elliptisch/images/jacobiplots.pdf}
-\caption{%
-Abhängigkeit der elliptischen Funktionen von $u$ für
-verschiedene Werte von $k^2=m$.
-Für $m=0$ ist $\operatorname{sn}(u,0)=\sin u$,
-$\operatorname{cn}(u,0)=\cos u$ und $\operatorname{dn}(u,0)=1$, diese
-sind in allen Plots in einer helleren Farbe eingezeichnet.
-Für kleine Werte von $m$ weichen die elliptischen Funktionen nur wenig
-von den trigonometrischen Funktionen ab,
-es ist aber klar erkennbar, dass die anharmonischen Terme in der
-Differentialgleichung die Periode mit steigender Amplitude verlängern.
-Sehr grosse Werte von $m$ nahe bei $1$ entsprechen der Situation, dass
-die Energie des Pendels fast ausreicht, dass es den höchsten Punkt
-erreichen kann, was es für $m$ macht.
-\label{buch:elliptisch:fig:jacobiplots}}
-\end{figure}
Wir verwenden als neue Variable
@@ -234,6 +234,8 @@ Dies ist genau die Form der Differentialgleichung für die elliptische
Funktion $\operatorname{sn}(u,k)$
mit $k^2 = 2gml/E< 1$.
+XXX Verbindung zur Abbildung
+
%%
%% Der Fall E > 2mgl
%%
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)