From 9fb1f740b7d00b350a008e957d28ecf7daf53797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 14 Jun 2022 16:24:13 +0200 Subject: new image --- buch/chapters/110-elliptisch/images/Makefile | 11 ++ buch/chapters/110-elliptisch/images/kegelpara.pdf | Bin 0 -> 139626 bytes buch/chapters/110-elliptisch/images/kegelpara.pov | 225 ++++++++++++++++++++++ buch/chapters/110-elliptisch/images/kegelpara.tex | 41 ++++ 4 files changed, 277 insertions(+) create mode 100644 buch/chapters/110-elliptisch/images/kegelpara.pdf create mode 100644 buch/chapters/110-elliptisch/images/kegelpara.pov create mode 100644 buch/chapters/110-elliptisch/images/kegelpara.tex (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile index a7c9e74..7e4fa0c 100644 --- a/buch/chapters/110-elliptisch/images/Makefile +++ b/buch/chapters/110-elliptisch/images/Makefile @@ -78,3 +78,14 @@ slcldata.tex: slcl ./slcl --outfile=slcldata.tex --a=0 --b=13.4 --steps=200 slcl.pdf: slcl.tex slcldata.tex pdflatex slcl.tex + +POVRAYOPTIONS = -W1920 -H1080 +kegelpara.png: kegelpara.pov + povray +A0.1 -W1080 -H1080 -Okegelpara.png kegelpara.pov + +kegelpara.jpg: kegelpara.png Makefile + convert -extract 1080x1000+0+40 kegelpara.png \ + -density 300 -units PixelsPerInch kegelpara.jpg + +kegelpara.pdf: kegelpara.tex kegelpara.jpg + pdflatex kegelpara.tex diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf new file mode 100644 index 0000000..4b03119 Binary files /dev/null and b/buch/chapters/110-elliptisch/images/kegelpara.pdf 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..5d85eed --- /dev/null +++ b/buch/chapters/110-elliptisch/images/kegelpara.pov @@ -0,0 +1,225 @@ +// +// 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 to with thickness with +// color +// +#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,0,0>,<2,0,0>,0.02,White) +arrow(<0,-2,0>,<0,2,0>,0.02,White) +arrow(<0,0,-2>,<0,0,2>,0.02,White) + +#declare epsilon = 0.001; +#declare l = 1.5; + +#macro Kegel(farbe) +union { + difference { + cone { O, 0, , l } + cone { O + , 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 F(w, r) + +#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 + +#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 = rgbt<0.2,0.6,0.2,0.2>; +#declare paraboloidfarbe = rgbt<0.2,0.6,1.0,0.2>; + +Paraboloid(paraboloidfarbe) +Kegel(kegelfarbe) +Lemniskate3D(0.02, Blue) +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..5a724ee --- /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 (3.3,-1.0) {$X$}; +\node at (0.2,3.4) {$Z$}; +\node at (-2.5,-1.4) {$-Y$}; + +\end{tikzpicture} + +\end{document} + -- cgit v1.2.1 From fbcf8833aef79694e448010520f2253e93f2cd4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 14 Jun 2022 16:59:48 +0200 Subject: more info about the lemniskate --- buch/chapters/110-elliptisch/images/Makefile | 12 +- .../110-elliptisch/images/torusschnitt.pdf | Bin 0 -> 137159 bytes .../110-elliptisch/images/torusschnitt.pov | 185 +++++++++++++++++++++ .../110-elliptisch/images/torusschnitt.tex | 41 +++++ buch/chapters/110-elliptisch/lemniskate.tex | 162 ++++++++++++++++++ 5 files changed, 399 insertions(+), 1 deletion(-) create mode 100644 buch/chapters/110-elliptisch/images/torusschnitt.pdf create mode 100644 buch/chapters/110-elliptisch/images/torusschnitt.pov create mode 100644 buch/chapters/110-elliptisch/images/torusschnitt.tex (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile index 7e4fa0c..2a23d88 100644 --- a/buch/chapters/110-elliptisch/images/Makefile +++ b/buch/chapters/110-elliptisch/images/Makefile @@ -79,7 +79,6 @@ slcldata.tex: slcl slcl.pdf: slcl.tex slcldata.tex pdflatex slcl.tex -POVRAYOPTIONS = -W1920 -H1080 kegelpara.png: kegelpara.pov povray +A0.1 -W1080 -H1080 -Okegelpara.png kegelpara.pov @@ -89,3 +88,14 @@ kegelpara.jpg: kegelpara.png Makefile 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 1560x1080+180+0 torusschnitt.png \ + -density 300 -units PixelsPerInch torusschnitt.jpg + +torusschnitt.pdf: torusschnitt.tex torusschnitt.jpg + pdflatex torusschnitt.tex + diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf new file mode 100644 index 0000000..430447c Binary files /dev/null and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf 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..94190be --- /dev/null +++ b/buch/chapters/110-elliptisch/images/torusschnitt.pov @@ -0,0 +1,185 @@ +// +// 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 to with thickness with +// color +// +#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,0,0>,<2,0,0>,0.02,White) +arrow(<0,-1.1,0>,<0,2.2,0>,0.02,White) +arrow(<0,0,-1.6>,<0,0,2.4>,0.02,White) + +#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(farbe) +box { + <-1.8, 0, -1.4>, <1.8, 0.001, 1.4> + 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 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>; + +Lemniskate(0.02, Red) +Ebene(ebenenfarbe) +Torus(torusfarbe) diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.tex b/buch/chapters/110-elliptisch/images/torusschnitt.tex new file mode 100644 index 0000000..3053ac5 --- /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.4cm]{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..d76a963 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} @@ -71,6 +74,165 @@ 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 (blau) +eines geraden +Kreiskegels (grün) mit einem Rotationsparaboloid (hellblau). +\label{buch:elliptisch:lemniskate:kegelpara}} +\end{figure}% +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 Schnittmenge 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} +Schneidet man einen Torus mit einer Ebene, die zur Achse des Torus +parallel ist und den inneren Äquator des Torus berührt, entsteht +ebenfalls eine Lemniskate. +Die Situation ist in Abbildung~\ref{buch:elliptisch:lemniskate:torusschnitt} +dargestellt. + +Der Torus kann mit den Radien $2$ und $1$ mit der $y$-Achse als Torusachse +kann mit der Parametrisierung +\[ +(s,t) +\mapsto +\begin{pmatrix} +(2+\cos s) \cos t \\ +\sin s \\ +(2+\cos s) \sin t +\end{pmatrix} +\] +beschrieben werden. +Die Gleichung $z=1$ beschreibt eine +achsparallele Ebene, die den inneren Äquator berührt. +Die Schnittkurve erfüllt daher +\[ +(2+\cos s)\sin t = 1, +\] +was wir auch als $2 +\cos s = 1/\sin t$ schreiben können. +Wir müssen nachprüfen dass die Koordinaten +$X=(2+\cos s)\cos t$ und $Y=\sin s$ die Gleichung einer Lemniskate +erfüllen. + +Zunächst können wir in der $X$-Koordinate den Klammerausdruck durch +\begin{equation} +X += +(2+\cos s) \cos t += +\frac{1}{\sin t}\cos t += +\frac{\cos t}{\sin t} +\qquad\Rightarrow\qquad +X^2 += +\frac{\cos^2t}{\sin^2 t} += +\frac{1-\sin^2t}{\sin^2 t} +\label{buch:elliptisch:lemniskate:Xsin} +\end{equation} +ersetzen. +Auch die $Y$-Koordinaten können wir durch $t$ ausdrücken, +nämlich +\begin{equation} +Y^2=\sin^2 s = 1-\cos^2 s += +1- +\biggl( +\frac{1}{\sin t} +-2 +\biggr)^2 += +\frac{-3\sin^2 t+4\sin t-1}{\sin^2 t}. +\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 t$ +parametrisieren kann. +Um die Ausdrücke etwas zu vereinfachen, schreiben wir $S=\sin t$ +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} +Durch Berechnung des Quadrates von $X^2+Y^2$ kann man jetzt +die Gleichung +\[ +(X^2+Y^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-Y)^2. +\] +Dies ist eine Lemniskaten-Gleichung für $a=2$. + +% +% Bogenlänge der Lemniskate +% \subsection{Bogenlänge} Die Funktionen \begin{equation} -- cgit v1.2.1 From f62b44e41eb5d9afe46e56c335b96cb48ae3a492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 14 Jun 2022 17:02:23 +0200 Subject: finalize lemniscate as sections --- buch/chapters/110-elliptisch/images/Makefile | 2 +- .../chapters/110-elliptisch/images/jacobiplots.pdf | Bin 56975 -> 56975 bytes buch/chapters/110-elliptisch/images/kegelpara.pdf | Bin 139626 -> 139626 bytes .../110-elliptisch/images/torusschnitt.pdf | Bin 137159 -> 137159 bytes buch/chapters/110-elliptisch/lemniskate.tex | 4 ++-- 5 files changed, 3 insertions(+), 3 deletions(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile index 2a23d88..30642fe 100644 --- a/buch/chapters/110-elliptisch/images/Makefile +++ b/buch/chapters/110-elliptisch/images/Makefile @@ -5,7 +5,7 @@ # 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 lemniskate.pdf: lemniskate.tex pdflatex lemniskate.tex diff --git a/buch/chapters/110-elliptisch/images/jacobiplots.pdf b/buch/chapters/110-elliptisch/images/jacobiplots.pdf index f0e6e78..4c74a5c 100644 Binary files a/buch/chapters/110-elliptisch/images/jacobiplots.pdf and b/buch/chapters/110-elliptisch/images/jacobiplots.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf index 4b03119..6683709 100644 Binary files a/buch/chapters/110-elliptisch/images/kegelpara.pdf and b/buch/chapters/110-elliptisch/images/kegelpara.pdf differ diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf index 430447c..2f8c204 100644 Binary files a/buch/chapters/110-elliptisch/images/torusschnitt.pdf and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf differ diff --git a/buch/chapters/110-elliptisch/lemniskate.tex b/buch/chapters/110-elliptisch/lemniskate.tex index d76a963..f81f0e2 100644 --- a/buch/chapters/110-elliptisch/lemniskate.tex +++ b/buch/chapters/110-elliptisch/lemniskate.tex @@ -215,7 +215,7 @@ X^2-Y^2 2\biggl(\frac{1-S}{S}\biggr)^2. \end{aligned} \end{equation} -Durch Berechnung des Quadrates von $X^2+Y^2$ kann man jetzt +Die Berechnung des Quadrates von $X^2+Y^2$ ergibt die Gleichung \[ (X^2+Y^2) @@ -228,7 +228,7 @@ die Gleichung = 2\cdot 2^2\cdot (X-Y)^2. \] -Dies ist eine Lemniskaten-Gleichung für $a=2$. +Sie ist eine Lemniskaten-Gleichung für $a=2$. % % Bogenlänge der Lemniskate -- cgit v1.2.1 From 864b17ee949de5c14ebc3bbf50a90178b4b804f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Wed, 15 Jun 2022 20:25:27 +0200 Subject: fix some minor issues --- buch/chapters/110-elliptisch/images/Makefile | 7 +- .../chapters/110-elliptisch/images/jacobiplots.pdf | Bin 56975 -> 56975 bytes buch/chapters/110-elliptisch/images/kegelpara.pdf | Bin 139626 -> 202828 bytes buch/chapters/110-elliptisch/images/kegelpara.pov | 122 +++++++++++++++++++-- buch/chapters/110-elliptisch/images/kegelpara.tex | 6 +- .../110-elliptisch/images/torusschnitt.pdf | Bin 137159 -> 301677 bytes .../110-elliptisch/images/torusschnitt.pov | 88 ++++++++++++++- buch/chapters/110-elliptisch/lemniskate.tex | 12 +- 8 files changed, 211 insertions(+), 24 deletions(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile index 30642fe..c8f98cb 100644 --- a/buch/chapters/110-elliptisch/images/Makefile +++ b/buch/chapters/110-elliptisch/images/Makefile @@ -79,11 +79,14 @@ slcldata.tex: slcl 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 -W1080 -H1080 -Okegelpara.png kegelpara.pov + povray +A0.1 $(KEGELSIZE) -Okegelpara.png kegelpara.pov kegelpara.jpg: kegelpara.png Makefile - convert -extract 1080x1000+0+40 kegelpara.png \ + convert -extract 1080x1040+0+0 kegelpara.png \ -density 300 -units PixelsPerInch kegelpara.jpg kegelpara.pdf: kegelpara.tex kegelpara.jpg diff --git a/buch/chapters/110-elliptisch/images/jacobiplots.pdf b/buch/chapters/110-elliptisch/images/jacobiplots.pdf index 4c74a5c..c11affc 100644 Binary files a/buch/chapters/110-elliptisch/images/jacobiplots.pdf and b/buch/chapters/110-elliptisch/images/jacobiplots.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf index 6683709..2f76593 100644 Binary files a/buch/chapters/110-elliptisch/images/kegelpara.pdf and b/buch/chapters/110-elliptisch/images/kegelpara.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pov b/buch/chapters/110-elliptisch/images/kegelpara.pov index 5d85eed..13b66cc 100644 --- a/buch/chapters/110-elliptisch/images/kegelpara.pov +++ b/buch/chapters/110-elliptisch/images/kegelpara.pov @@ -67,11 +67,11 @@ union { } #end -arrow(<-2,0,0>,<2,0,0>,0.02,White) -arrow(<0,-2,0>,<0,2,0>,0.02,White) -arrow(<0,0,-2>,<0,0,2>,0.02,White) +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.001; +#declare epsilon = 0.0001; #declare l = 1.5; #macro Kegel(farbe) @@ -94,6 +94,54 @@ union { } #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) #end @@ -139,6 +187,50 @@ mesh { } #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)> @@ -215,11 +307,23 @@ union { } #end -#declare kegelfarbe = rgbt<0.2,0.6,0.2,0.2>; -#declare paraboloidfarbe = rgbt<0.2,0.6,1.0,0.2>; +#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 } +//} + -Paraboloid(paraboloidfarbe) -Kegel(kegelfarbe) -Lemniskate3D(0.02, Blue) +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 index 5a724ee..8fcefbf 100644 --- a/buch/chapters/110-elliptisch/images/kegelpara.tex +++ b/buch/chapters/110-elliptisch/images/kegelpara.tex @@ -31,9 +31,9 @@ \fill (0,0) circle[radius=0.05]; }{} -\node at (3.3,-1.0) {$X$}; -\node at (0.2,3.4) {$Z$}; -\node at (-2.5,-1.4) {$-Y$}; +\node at (4.1,-1.4) {$X$}; +\node at (0.2,3.8) {$Z$}; +\node at (4.0,1.8) {$Y$}; \end{tikzpicture} diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf index 2f8c204..11bd353 100644 Binary files a/buch/chapters/110-elliptisch/images/torusschnitt.pdf and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf differ diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pov b/buch/chapters/110-elliptisch/images/torusschnitt.pov index 94190be..43d50c6 100644 --- a/buch/chapters/110-elliptisch/images/torusschnitt.pov +++ b/buch/chapters/110-elliptisch/images/torusschnitt.pov @@ -123,9 +123,34 @@ union { } #end -#macro Ebene(farbe) -box { - <-1.8, 0, -1.4>, <1.8, 0.001, 1.4> +#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 { , , r } + #declare ll = ll + 1; + #end + #declare bmax = floor(b / s); + #declare bb = -bmax; + #while (bb <= bmax) + cylinder { <-l, 0, bb * s>, , r } + #declare bb = bb + 1; + #end pigment { color farbe } @@ -141,6 +166,59 @@ box { 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; @@ -181,5 +259,7 @@ mesh { #declare ebenenfarbe = rgbt<0.2,0.6,1.0,0.2>; Lemniskate(0.02, Red) -Ebene(ebenenfarbe) +Ebene(1.8, 1.4, ebenenfarbe) +Ebenengitter(1.8, 1.4, 0.5, 0.005, rgb<0.4,1,1>) Torus(torusfarbe) +Torusgitter(Yellow, 0.005) diff --git a/buch/chapters/110-elliptisch/lemniskate.tex b/buch/chapters/110-elliptisch/lemniskate.tex index f81f0e2..fceaadf 100644 --- a/buch/chapters/110-elliptisch/lemniskate.tex +++ b/buch/chapters/110-elliptisch/lemniskate.tex @@ -81,7 +81,7 @@ Blatt der Lemniskate. \begin{figure} \center \includegraphics{chapters/110-elliptisch/images/kegelpara.pdf} -\caption{Leminiskate (rot) als Projektion (gelb) der Schnittkurve (blau) +\caption{Leminiskate (rot) als Projektion (gelb) der Schnittkurve (pink) eines geraden Kreiskegels (grün) mit einem Rotationsparaboloid (hellblau). \label{buch:elliptisch:lemniskate:kegelpara}} @@ -126,7 +126,7 @@ kann mit der Parametrisierung \begin{pmatrix} (2+\cos s) \cos t \\ \sin s \\ -(2+\cos s) \sin t +(2+\cos s) \sin t + 1 \end{pmatrix} \] beschrieben werden. @@ -134,9 +134,9 @@ Die Gleichung $z=1$ beschreibt eine achsparallele Ebene, die den inneren Äquator berührt. Die Schnittkurve erfüllt daher \[ -(2+\cos s)\sin t = 1, +(2+\cos s)\sin t + 1 = 0, \] -was wir auch als $2 +\cos s = 1/\sin t$ schreiben können. +was wir auch als $2 +\cos s = -1/\sin t$ schreiben können. Wir müssen nachprüfen dass die Koordinaten $X=(2+\cos s)\cos t$ und $Y=\sin s$ die Gleichung einer Lemniskate erfüllen. @@ -147,9 +147,9 @@ X = (2+\cos s) \cos t = -\frac{1}{\sin t}\cos t +-\frac{1}{\sin t}\cos t = -\frac{\cos t}{\sin t} +-\frac{\cos t}{\sin t} \qquad\Rightarrow\qquad X^2 = -- cgit v1.2.1 From b9af31ecb07acd4d34a13aa99d6170c9ca96af87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 16 Jun 2022 17:00:34 +0200 Subject: some improvements --- buch/chapters/110-elliptisch/images/Makefile | 2 +- .../110-elliptisch/images/torusschnitt.pdf | Bin 301677 -> 312677 bytes .../110-elliptisch/images/torusschnitt.pov | 55 ++++++++++++++++++--- .../110-elliptisch/images/torusschnitt.tex | 2 +- 4 files changed, 51 insertions(+), 8 deletions(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile index c8f98cb..7bbc8af 100644 --- a/buch/chapters/110-elliptisch/images/Makefile +++ b/buch/chapters/110-elliptisch/images/Makefile @@ -96,7 +96,7 @@ torusschnitt.png: torusschnitt.pov povray +A0.1 -W1920 -H1080 -Otorusschnitt.png torusschnitt.pov torusschnitt.jpg: torusschnitt.png Makefile - convert -extract 1560x1080+180+0 torusschnitt.png \ + convert -extract 1640x1080+140+0 torusschnitt.png \ -density 300 -units PixelsPerInch torusschnitt.jpg torusschnitt.pdf: torusschnitt.tex torusschnitt.jpg diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf index 11bd353..f5de617 100644 Binary files a/buch/chapters/110-elliptisch/images/torusschnitt.pdf and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf differ diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pov b/buch/chapters/110-elliptisch/images/torusschnitt.pov index 43d50c6..e5602df 100644 --- a/buch/chapters/110-elliptisch/images/torusschnitt.pov +++ b/buch/chapters/110-elliptisch/images/torusschnitt.pov @@ -67,14 +67,51 @@ union { } #end -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.6>,<0,0,2.4>,0.02,White) + +#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)> @@ -258,8 +295,14 @@ mesh { #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.4, ebenenfarbe) -Ebenengitter(1.8, 1.4, 0.5, 0.005, rgb<0.4,1,1>) +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 index 3053ac5..63351ad 100644 --- a/buch/chapters/110-elliptisch/images/torusschnitt.tex +++ b/buch/chapters/110-elliptisch/images/torusschnitt.tex @@ -21,7 +21,7 @@ \begin{tikzpicture}[>=latex,thick] % Povray Bild -\node at (0,0) {\includegraphics[width=11.4cm]{torusschnitt.jpg}}; +\node at (0,0) {\includegraphics[width=11.98cm]{torusschnitt.jpg}}; % Gitter \ifthenelse{\boolean{showgrid}}{ -- cgit v1.2.1 From 88031a6a5bad428cb3bf03dea6f0f95d79484723 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 16 Jun 2022 17:02:24 +0200 Subject: new plots --- buch/chapters/110-elliptisch/images/Makefile | 13 ++- .../chapters/110-elliptisch/images/jacobiplots.pdf | Bin 56975 -> 59737 bytes buch/chapters/110-elliptisch/images/kegelpara.pdf | Bin 202828 -> 203620 bytes buch/chapters/110-elliptisch/images/lemnispara.cpp | 126 +++++++++++++++++++++ buch/chapters/110-elliptisch/images/lemnispara.pdf | Bin 0 -> 28447 bytes buch/chapters/110-elliptisch/images/lemnispara.tex | 90 +++++++++++++++ buch/chapters/110-elliptisch/images/slcl.pdf | Bin 28233 -> 31823 bytes .../110-elliptisch/images/torusschnitt.pdf | Bin 301677 -> 302496 bytes buch/chapters/110-elliptisch/lemniskate.tex | 92 +++++++++++---- 9 files changed, 295 insertions(+), 26 deletions(-) create mode 100644 buch/chapters/110-elliptisch/images/lemnispara.cpp create mode 100644 buch/chapters/110-elliptisch/images/lemnispara.pdf create mode 100644 buch/chapters/110-elliptisch/images/lemnispara.tex (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile index c8f98cb..3094877 100644 --- a/buch/chapters/110-elliptisch/images/Makefile +++ b/buch/chapters/110-elliptisch/images/Makefile @@ -5,7 +5,7 @@ # all: lemniskate.pdf ellipsenumfang.pdf unvollstaendig.pdf rechteck.pdf \ ellipse.pdf pendel.pdf jacobiplots.pdf jacobidef.pdf jacobi12.pdf \ - sncnlimit.pdf slcl.pdf torusschnitt.pdf kegelpara.pdf + sncnlimit.pdf slcl.pdf torusschnitt.pdf kegelpara.pdf lemnispara.pdf lemniskate.pdf: lemniskate.tex pdflatex lemniskate.tex @@ -102,3 +102,14 @@ torusschnitt.jpg: torusschnitt.png Makefile 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 diff --git a/buch/chapters/110-elliptisch/images/jacobiplots.pdf b/buch/chapters/110-elliptisch/images/jacobiplots.pdf index c11affc..fdd3d1f 100644 Binary files a/buch/chapters/110-elliptisch/images/jacobiplots.pdf and b/buch/chapters/110-elliptisch/images/jacobiplots.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf index 2f76593..2dbe39d 100644 Binary files a/buch/chapters/110-elliptisch/images/kegelpara.pdf and b/buch/chapters/110-elliptisch/images/kegelpara.pdf differ 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 +#include +#include +#include +#include +#include +#include +#include +#include + +const static double s = sqrt(2); +const static double k = 1 / s; +const static double m = k * k; + +typedef std::pair 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..b03997e Binary files /dev/null and b/buch/chapters/110-elliptisch/images/lemnispara.pdf 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..48557cf --- /dev/null +++ b/buch/chapters/110-elliptisch/images/lemnispara.tex @@ -0,0 +1,90 @@ +% +% 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.6*\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 + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/110-elliptisch/images/slcl.pdf b/buch/chapters/110-elliptisch/images/slcl.pdf index c15051b..71645e3 100644 Binary files a/buch/chapters/110-elliptisch/images/slcl.pdf and b/buch/chapters/110-elliptisch/images/slcl.pdf differ diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf index 11bd353..fde5268 100644 Binary files a/buch/chapters/110-elliptisch/images/torusschnitt.pdf and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf differ diff --git a/buch/chapters/110-elliptisch/lemniskate.tex b/buch/chapters/110-elliptisch/lemniskate.tex index fceaadf..fd998b3 100644 --- a/buch/chapters/110-elliptisch/lemniskate.tex +++ b/buch/chapters/110-elliptisch/lemniskate.tex @@ -86,9 +86,11 @@ 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 Schnittmenge der Flächen, +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 @@ -112,14 +114,18 @@ 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, entsteht ebenfalls eine Lemniskate. Die Situation ist in Abbildung~\ref{buch:elliptisch:lemniskate:torusschnitt} dargestellt. -Der Torus kann mit den Radien $2$ und $1$ mit der $y$-Achse als Torusachse -kann mit der Parametrisierung +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. +Sie kann mit \[ (s,t) \mapsto @@ -129,9 +135,10 @@ kann mit der Parametrisierung (2+\cos s) \sin t + 1 \end{pmatrix} \] -beschrieben werden. -Die Gleichung $z=1$ beschreibt eine -achsparallele Ebene, die den inneren Äquator berührt. +parametrisiert werden, die $s$- und $t$-Koordinatenlinien sind +in der Abbildung gelb eingezeichnet. +Die Gleichung $Z=0$ beschreibt eine achsparallele Ebene, die den +inneren Äquator berührt. Die Schnittkurve erfüllt daher \[ (2+\cos s)\sin t + 1 = 0, @@ -141,7 +148,8 @@ Wir müssen nachprüfen dass die Koordinaten $X=(2+\cos s)\cos t$ und $Y=\sin s$ die Gleichung einer Lemniskate erfüllen. -Zunächst können wir in der $X$-Koordinate den Klammerausdruck durch +Zunächst können wir in der $X$-Koordinate den Klammerausdruck durch +$\sin t$ ausdrücken und erhalten \begin{equation} X = @@ -155,10 +163,9 @@ X^2 = \frac{\cos^2t}{\sin^2 t} = -\frac{1-\sin^2t}{\sin^2 t} +\frac{1-\sin^2t}{\sin^2 t}. \label{buch:elliptisch:lemniskate:Xsin} \end{equation} -ersetzen. Auch die $Y$-Koordinaten können wir durch $t$ ausdrücken, nämlich \begin{equation} @@ -218,7 +225,7 @@ X^2-Y^2 Die Berechnung des Quadrates von $X^2+Y^2$ ergibt die Gleichung \[ -(X^2+Y^2) +(X^2+Y^2)^2 = 16 \biggl(\frac{1-S}{S}\biggr)^2 @@ -226,7 +233,7 @@ die Gleichung 8 \cdot 2 \biggl(\frac{1-S}{S}\biggr)^2 = -2\cdot 2^2\cdot (X-Y)^2. +2\cdot 2^2\cdot (X^2-Y^2). \] Sie ist eine Lemniskaten-Gleichung für $a=2$. @@ -279,7 +286,7 @@ Kettenregel berechnen kann: &&\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*} @@ -342,6 +349,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) @@ -350,7 +364,7 @@ Die Lemniskate mit der Gleichung kann mit Jacobischen elliptischen Funktionen parametrisiert werden. Dazu schreibt man -\[ +\begin{equation} \left. \begin{aligned} X(t) @@ -364,9 +378,17 @@ Y(t) \end{aligned} \quad\right\} \qquad\text{mit $k=\displaystyle\frac{1}{\sqrt{2}}$} -\] -und berechnet die beiden Seiten der definierenden Gleichung der -Lemniskate. +\label{buch:elliptisch:lemniskate:bogeneqn} +\end{equation} +Abbildung~\ref{buch:elliptisch:lemniskate:bogenpara} zeigt die +Parametrisierung. +Dem Parameterwert $t=0$ entspricht der Punkt +$(\sqrt{2},0)$ der Lemniskate. + +Dass \eqref{buch:elliptisch:lemniskate:bogeneqn} +tatsächlich eine Parametrisierung ist kann nachgewiesen werden dadurch, +dass man die beiden Seiten der definierenden Gleichung der +Lemniskate berechnet. Zunächst ist \begin{align*} X(t)^2 @@ -436,7 +458,7 @@ Dazu berechnen wir die Ableitungen &= -\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) \\ &= @@ -507,6 +529,7 @@ Gleichung \] hat daher eine Bogenlängenparametrisierung mit \begin{equation} +\left. \begin{aligned} x(t) &= @@ -515,8 +538,13 @@ x(t) \\ 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} @@ -527,7 +555,7 @@ 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$. +$r=r(s)=\operatorname{sl} s$. Der Kosinus ist der Sinus des komplementären Winkels. Auch für die lemniskatische Bogenlänge $s(r)$ lässt sich eine @@ -537,9 +565,9 @@ 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$. 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. @@ -551,18 +579,32 @@ r(s)^2 x(s)^2 + y(s)^2 = \operatorname{cn}(s\sqrt{2},k)^2 -\qquad\Rightarrow\qquad +\biggl( +\operatorname{dn}(\sqrt{2}t,k)^2 ++ +\frac12 +\operatorname{sn}(\sqrt{2}t,k)^2 +\biggr) += +\operatorname{cn}(s\sqrt{2},k)^2. +\] +Die Wurzel ist +\[ r(s) = -\operatorname{cn}(s\sqrt{2},k) +\operatorname{sl} s += +\operatorname{cn}(s\sqrt{2},{\textstyle\frac{1}{\sqrt{2}}}). \] +Damit ist der lemniskatische Sinus durch eine Jacobische elliptische +Funktion darstellbar. \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. +mit derart skaliertem Argument, dass die Funktionen die +gleichen Nullstellen haben. \label{buch:elliptisch:figure:slcl}} \end{figure} -- cgit v1.2.1 From abb439719da913ee1bf14ee088748662fef3cd76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 16 Jun 2022 19:27:16 +0200 Subject: new stuff --- buch/chapters/110-elliptisch/images/lemnispara.pdf | Bin 28447 -> 28820 bytes buch/chapters/110-elliptisch/images/lemnispara.tex | 6 +- buch/chapters/110-elliptisch/lemniskate.tex | 199 ++++++++++++++------- 3 files changed, 138 insertions(+), 67 deletions(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/images/lemnispara.pdf b/buch/chapters/110-elliptisch/images/lemnispara.pdf index b03997e..633df34 100644 Binary files a/buch/chapters/110-elliptisch/images/lemnispara.pdf and b/buch/chapters/110-elliptisch/images/lemnispara.pdf differ diff --git a/buch/chapters/110-elliptisch/images/lemnispara.tex b/buch/chapters/110-elliptisch/images/lemnispara.tex index 48557cf..c6e32d7 100644 --- a/buch/chapters/110-elliptisch/images/lemnispara.tex +++ b/buch/chapters/110-elliptisch/images/lemnispara.tex @@ -22,8 +22,9 @@ \draw[color=red!20,line width=1.4pt] \lemnispathmore; \draw[color=red,line width=1.4pt] \lemnispath; -\draw[->] ({-1.6*\dx},0) -- ({1.6*\dx},0) coordinate[label={$X$}]; +\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); @@ -85,6 +86,9 @@ \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/lemniskate.tex b/buch/chapters/110-elliptisch/lemniskate.tex index fd998b3..a284f75 100644 --- a/buch/chapters/110-elliptisch/lemniskate.tex +++ b/buch/chapters/110-elliptisch/lemniskate.tex @@ -32,6 +32,13 @@ mit der Gleichung \end{equation} Sie ist in Abbildung~\ref{buch:elliptisch:fig:lemniskate} dargestellt. +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} @@ -53,10 +60,12 @@ Dividiert man die Gleichung der Lemniskate durch $X_s^2=4a^4$ entsteht \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$. +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} @@ -116,77 +125,80 @@ die den inneren Äquator des Torus berührt, ist eine Lemniskate. \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, entsteht -ebenfalls eine Lemniskate. -Die Situation ist in Abbildung~\ref{buch:elliptisch:lemniskate:torusschnitt} -dargestellt. +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. -Sie kann mit +Der Torus kann mit \[ -(s,t) +(u,v) \mapsto \begin{pmatrix} -(2+\cos s) \cos t \\ -\sin s \\ -(2+\cos s) \sin t + 1 +(2+\cos u) \cos v \\ + \sin u \\ +(2+\cos u) \sin v + 1 \end{pmatrix} \] -parametrisiert werden, die $s$- und $t$-Koordinatenlinien sind +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 s)\sin t + 1 = 0, +(2+\cos u)\sin v + 1 = 0, \] -was wir auch als $2 +\cos s = -1/\sin t$ schreiben können. -Wir müssen nachprüfen dass die Koordinaten -$X=(2+\cos s)\cos t$ und $Y=\sin s$ die Gleichung einer Lemniskate +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 t$ ausdrücken und erhalten +$\sin v$ ausdrücken und erhalten \begin{equation} X = -(2+\cos s) \cos t +(2+\cos u) \cos v = --\frac{1}{\sin t}\cos t +-\frac{1}{\sin v}\cos v = --\frac{\cos t}{\sin t} +-\frac{\cos v}{\sin v} \qquad\Rightarrow\qquad X^2 = -\frac{\cos^2t}{\sin^2 t} +\frac{\cos^2v}{\sin^2 v} = -\frac{1-\sin^2t}{\sin^2 t}. +\frac{1-\sin^2v}{\sin^2 v}. \label{buch:elliptisch:lemniskate:Xsin} \end{equation} -Auch die $Y$-Koordinaten können wir durch $t$ ausdrücken, +Auch die $Y$-Koordinaten können wir durch $v$ ausdrücken, nämlich \begin{equation} -Y^2=\sin^2 s = 1-\cos^2 s +Y^2=\sin^2 u = 1-\cos^2 u = 1- \biggl( -\frac{1}{\sin t} +\frac{1}{\sin v} -2 \biggr)^2 = -\frac{-3\sin^2 t+4\sin t-1}{\sin^2 t}. +\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 t$ +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 t$ +Um die Ausdrücke etwas zu vereinfachen, schreiben wir $S=\sin v$ und erhalten zusammenfassend \begin{equation} \begin{aligned} @@ -222,8 +234,7 @@ X^2-Y^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 +Die Berechnung des Quadrates von $X^2+Y^2$ ergibt die Gleichung \[ (X^2+Y^2)^2 = @@ -260,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} @@ -382,9 +393,13 @@ Y(t) \end{equation} Abbildung~\ref{buch:elliptisch:lemniskate:bogenpara} zeigt die Parametrisierung. -Dem Parameterwert $t=0$ entspricht der Punkt -$(\sqrt{2},0)$ der Lemniskate. +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 nachgewiesen werden dadurch, dass man die beiden Seiten der definierenden Gleichung der @@ -441,6 +456,11 @@ X(t)^2-Y(t)^2 = 2(X(t)^2-Y(t)^2). \end{align*} + +% +% 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 @@ -509,19 +529,22 @@ Dazu berechnen wir die Ableitungen &= 1. \end{align*} -Dies bedeutet, dass die Bogenlänge zwischen den Parameterwerten $0$ und $s$ +Dies bedeutet, dass die Bogenlänge zwischen den Parameterwerten $0$ und $t$ \[ -\int_0^s -\sqrt{\dot{X}(t)^2 + \dot{Y}(t)^2} -\,dt +\int_0^t +\sqrt{\dot{X}(\tau)^2 + \dot{Y}(\tau)^2} +\,d\tau = -\int_0^s\,dt +\int_0^s\,d\tau = -s, +t, \] -der Parameter $t$ ist also ein Bogenlängenparameter, man darf also -$s=t$ schreiben. +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 \[ @@ -547,7 +570,13 @@ y(t) \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 @@ -555,30 +584,53 @@ 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 +\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)$. Graphen des lemniskatische Sinus und Kosinus sind in 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}(s\sqrt{2},k)^2 +\operatorname{cn}(\sqrt{2}t,k)^2 \biggl( \operatorname{dn}(\sqrt{2}t,k)^2 + @@ -586,25 +638,40 @@ x(s)^2 + y(s)^2 \operatorname{sn}(\sqrt{2}t,k)^2 \biggr) = -\operatorname{cn}(s\sqrt{2},k)^2. +\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 += r(s) = -\operatorname{sl} s +\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}(s\sqrt{2},{\textstyle\frac{1}{\sqrt{2}}}). +\operatorname{cn}(\sqrt{2}s,k)^2. \] -Damit ist der lemniskatische Sinus durch eine Jacobische elliptische -Funktion darstellbar. +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. + -\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} -- cgit v1.2.1 From ddf0b2a3125ce9c161c327cd61b22aba339a7c7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 16 Jun 2022 20:13:21 +0200 Subject: add missing file --- .../chapters/110-elliptisch/images/jacobiplots.pdf | Bin 59737 -> 56975 bytes buch/chapters/110-elliptisch/images/kegelpara.pdf | Bin 203620 -> 202828 bytes buch/chapters/110-elliptisch/images/lemnispara.pdf | Bin 28820 -> 25749 bytes .../110-elliptisch/images/torusschnitt.pdf | Bin 0 -> 312677 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 buch/chapters/110-elliptisch/images/torusschnitt.pdf (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/images/jacobiplots.pdf b/buch/chapters/110-elliptisch/images/jacobiplots.pdf index fdd3d1f..c51e916 100644 Binary files a/buch/chapters/110-elliptisch/images/jacobiplots.pdf and b/buch/chapters/110-elliptisch/images/jacobiplots.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf index 2dbe39d..c6456ce 100644 Binary files a/buch/chapters/110-elliptisch/images/kegelpara.pdf and b/buch/chapters/110-elliptisch/images/kegelpara.pdf differ diff --git a/buch/chapters/110-elliptisch/images/lemnispara.pdf b/buch/chapters/110-elliptisch/images/lemnispara.pdf index 633df34..16731d3 100644 Binary files a/buch/chapters/110-elliptisch/images/lemnispara.pdf and b/buch/chapters/110-elliptisch/images/lemnispara.pdf 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..b94286a Binary files /dev/null and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf differ -- cgit v1.2.1 From f89f84ab92053e53f4760d92ae311444bb5a7986 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 16 Jun 2022 20:17:52 +0200 Subject: Reorganisation --- buch/chapters/110-elliptisch/mathpendel.tex | 38 +++++++++++++++-------------- 1 file changed, 20 insertions(+), 18 deletions(-) (limited to 'buch/chapters/110-elliptisch') 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 %% -- cgit v1.2.1 From 45e236bc519b62e8afc1aea7d2e625df4c145348 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Wed, 22 Jun 2022 11:49:27 +0200 Subject: add ell stuff --- buch/chapters/110-elliptisch/dglsol.tex | 59 +++++++++ buch/chapters/110-elliptisch/ellintegral.tex | 25 +++- buch/chapters/110-elliptisch/elltrigo.tex | 8 ++ buch/chapters/110-elliptisch/images/Makefile | 6 +- buch/chapters/110-elliptisch/images/ellpolnul.pdf | Bin 0 -> 19288 bytes buch/chapters/110-elliptisch/images/ellpolnul.tex | 57 +++++++++ .../chapters/110-elliptisch/images/jacobiplots.pdf | Bin 56975 -> 56975 bytes buch/chapters/110-elliptisch/images/kegelpara.pdf | Bin 202828 -> 202828 bytes .../110-elliptisch/images/torusschnitt.pdf | Bin 312677 -> 312677 bytes buch/chapters/110-elliptisch/lemniskate.tex | 135 +++++++++++---------- 10 files changed, 222 insertions(+), 68 deletions(-) create mode 100644 buch/chapters/110-elliptisch/images/ellpolnul.pdf create mode 100644 buch/chapters/110-elliptisch/images/ellpolnul.tex (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/dglsol.tex b/buch/chapters/110-elliptisch/dglsol.tex index 7eaab38..3ef1eef 100644 --- a/buch/chapters/110-elliptisch/dglsol.tex +++ b/buch/chapters/110-elliptisch/dglsol.tex @@ -339,6 +339,65 @@ y(u) = F^{-1}(u+C). Die Jacobischen elliptischen Funktionen sind daher inverse Funktionen der unvollständigen elliptischen Integrale. +% +% +% +\subsubsection{Pole und Nullstellen der Jacobischen elliptischen Funktionen} +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 +& +\operatorname{cn}(0,k)&=1 +& +\operatorname{dn}(0,k)&=1 +\\ +\operatorname{sn}(iK',k)&=\infty +& +\operatorname{cn}(iK',k)&=\infty +& +\operatorname{dn}(iK',k)&=\infty +\\ +\operatorname{sn}(K,k)&=1 +& +\operatorname{cn}(K,k)&=0 +& +\operatorname{dn}(K,k)&=k' +\\ +\operatorname{sn}(K+iK',k)&=\frac{1}{k} +& +\operatorname{cn}(K+iK',k)&=\frac{ik'}{k} +& +\operatorname{dn}(K+iK',k)&=0 +\end{aligned} +\label{buch:elliptische:eqn:eckwerte} +\end{equation} +Daraus lassen sich jetzt auch die Werte der abgeleiteten Jacobischen +elliptischen Funktionen ablesen. + + + + % % Differentialgleichung des anharmonischen Oszillators diff --git a/buch/chapters/110-elliptisch/ellintegral.tex b/buch/chapters/110-elliptisch/ellintegral.tex index 3acce2f..bc597d6 100644 --- a/buch/chapters/110-elliptisch/ellintegral.tex +++ b/buch/chapters/110-elliptisch/ellintegral.tex @@ -355,9 +355,9 @@ K(k) dies beweist die Behauptung. \end{proof} - - - +% +% Umfang einer Ellipse +% \subsubsection{Umfang einer Ellipse} \begin{figure} \centering @@ -451,13 +451,20 @@ Hilfe einer Entwicklung der Wurzel mit der Binomialreihe gefunden werden. \end{proof} +% +% +% \subsubsection{Komplementäre Integrale} \subsubsection{Ableitung} XXX Ableitung \\ XXX Stammfunktion \\ -\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 +529,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. @@ -541,7 +554,11 @@ $\pm 1/\sqrt{n}$ 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 diff --git a/buch/chapters/110-elliptisch/elltrigo.tex b/buch/chapters/110-elliptisch/elltrigo.tex index d600243..583e00a 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 diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile index e6e5b09..3074994 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 torusschnitt.pdf kegelpara.pdf lemnispara.pdf + sncnlimit.pdf slcl.pdf torusschnitt.pdf kegelpara.pdf lemnispara.pdf \ + ellpolnul.pdf lemniskate.pdf: lemniskate.tex pdflatex lemniskate.tex @@ -113,3 +114,6 @@ lemnispara.pdf: lemnispara.tex lemnisparadata.tex pdflatex lemnispara.tex ltest: lemnispara.pdf + +ellpolnul.pdf: ellpolnul.tex + pdflatex ellpolnul.tex diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.pdf b/buch/chapters/110-elliptisch/images/ellpolnul.pdf new file mode 100644 index 0000000..ca52cdf Binary files /dev/null and b/buch/chapters/110-elliptisch/images/ellpolnul.pdf 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..831b477 --- /dev/null +++ b/buch/chapters/110-elliptisch/images/ellpolnul.tex @@ -0,0 +1,57 @@ +% +% tikztemplate.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] + +\definecolor{rot}{rgb}{0.8,0,0} +\definecolor{blau}{rgb}{0,0,1} +\definecolor{gruen}{rgb}{0,0.6,0} + +\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] +\fill[color=rot!20] (-1,-1) rectangle (1,1); +\node at (-1,-1) {$0$}; +\node at (1,-1) {$1$}; +\node at (1,1) {$\frac1k$}; +\node at (-1,1) {$\infty$}; +\node[color=rot] at (0,0) {$\operatorname{sn}(u,k)$}; +\end{scope} + +\begin{scope}[xshift=7cm] +\fill[color=blau!20] (-1,-1) rectangle (1,1); +\node at (-1,-1) {$1$}; +\node at (1,-1) {$0$}; +\node at (1,1) {$\frac{ik'}k$}; +\node at (-1,1) {$\infty$}; +\node[color=blau] at (0,0) {$\operatorname{cn}(u,k)$}; +\end{scope} + +\begin{scope}[xshift=10cm] +\fill[color=gruen!20] (-1,-1) rectangle (1,1); +\node at (-1,-1) {$1$}; +\node at (1,-1) {$k'$}; +\node at (1,1) {$0$}; +\node at (-1,1) {$\infty$}; +\node[color=gruen] at (0,0) {$\operatorname{dn}(u,k)$}; +\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 c51e916..d30f670 100644 Binary files a/buch/chapters/110-elliptisch/images/jacobiplots.pdf and b/buch/chapters/110-elliptisch/images/jacobiplots.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf index c6456ce..65b097f 100644 Binary files a/buch/chapters/110-elliptisch/images/kegelpara.pdf and b/buch/chapters/110-elliptisch/images/kegelpara.pdf differ diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf index b94286a..2eba07e 100644 Binary files a/buch/chapters/110-elliptisch/images/torusschnitt.pdf and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf differ diff --git a/buch/chapters/110-elliptisch/lemniskate.tex b/buch/chapters/110-elliptisch/lemniskate.tex index a284f75..61476a0 100644 --- a/buch/chapters/110-elliptisch/lemniskate.tex +++ b/buch/chapters/110-elliptisch/lemniskate.tex @@ -32,26 +32,26 @@ mit der Gleichung \end{equation} Sie ist in Abbildung~\ref{buch:elliptisch:fig:lemniskate} dargestellt. -Der Fall $a=1/\sqrt{2}$ ist eine Kurve mit der Gleichung +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}$. +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 @@ -59,7 +59,7 @@ 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. +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 @@ -104,7 +104,7 @@ 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 +(X^2+Y^2) = R^2 = \!\sqrt{2}aZ \label{buch:elliptisch:eqn:kegelparabolschnitt} \end{equation} beschrieben wird. @@ -254,9 +254,9 @@ Sie ist eine Lemniskaten-Gleichung für $a=2$. \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 @@ -281,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 &= @@ -291,7 +291,7 @@ 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& @@ -316,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} @@ -329,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). \] @@ -388,23 +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}}$} +\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. +$S=(\!\sqrt{2},0)$ der Lemniskate. % % Lemniskatengleichung % \subsubsection{Verfikation der Lemniskatengleichung} Dass \eqref{buch:elliptisch:lemniskate:bogeneqn} -tatsächlich eine Parametrisierung ist kann nachgewiesen werden dadurch, +tatsächlich eine Parametrisierung ist, kann dadurch nachgewiesen werden, dass man die beiden Seiten der definierenden Gleichung der Lemniskate berechnet. -Zunächst ist +Zunächst sind die Quadrate von $X(t)$ und $Y(t)$ \begin{align*} X(t)^2 &= @@ -414,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 @@ -447,15 +447,18 @@ 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 @@ -467,39 +470,26 @@ 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}(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) @@ -514,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 &= @@ -523,22 +526,22 @@ 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 $t$ -\[ +\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 = t, -\] +\end{align*} der Parameter $t$ ist also ein Bogenlängenparameter. % @@ -556,18 +559,18 @@ hat daher eine Bogenlängenparametrisierung mit \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}}$} +\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. @@ -630,21 +633,21 @@ r(t)^2 = x(t)^2 + y(t)^2 = -\operatorname{cn}(\sqrt{2}t,k)^2 +\operatorname{cn}(\!\sqrt{2}t,k)^2 \biggl( -\operatorname{dn}(\sqrt{2}t,k)^2 +\operatorname{dn}(\!\sqrt{2}t,k)^2 + \frac12 -\operatorname{sn}(\sqrt{2}t,k)^2 +\operatorname{sn}(\!\sqrt{2}t,k)^2 \biggr) = -\operatorname{cn}(\sqrt{2}t,k)^2. +\operatorname{cn}(\!\sqrt{2}t,k)^2. \] Die Wurzel ist \[ r(t) = -\operatorname{cn}(\sqrt{2}t,{\textstyle\frac{1}{\sqrt{2}}}) +\operatorname{cn}(\!\sqrt{2}t,{\textstyle\frac{1}{\!\sqrt{2}}}) . \] Der lemniskatische Sinus wurde aber in Abhängigkeit von @@ -654,7 +657,7 @@ $s=\varpi/2-t$ mittels = r(s) = -\operatorname{cn}(\sqrt{2}(\varpi/2-s),k)^2 +\operatorname{cn}(\!\sqrt{2}(\varpi/2-s),k)^2 \] definiert. Der lemniskatische Kosinus ist definiert als der lemniskatische Sinus @@ -666,7 +669,7 @@ der komplementären Bogenlänge, also = \operatorname{sl}(\varpi/2-s) = -\operatorname{cn}(\sqrt{2}s,k)^2. +\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. @@ -674,4 +677,10 @@ 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. + + + -- cgit v1.2.1 From 17f90bd131bdf24110d8933fd804413d53e17bc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Wed, 22 Jun 2022 13:07:36 +0200 Subject: add graph for all functions --- buch/chapters/110-elliptisch/images/Makefile | 6 +- buch/chapters/110-elliptisch/images/ellall.pdf | Bin 0 -> 22616 bytes buch/chapters/110-elliptisch/images/ellall.tex | 148 +++++++++++++++++++++ buch/chapters/110-elliptisch/images/ellpolnul.pdf | Bin 19288 -> 23281 bytes buch/chapters/110-elliptisch/images/ellpolnul.tex | 24 ++-- .../chapters/110-elliptisch/images/jacobiplots.pdf | Bin 56975 -> 59737 bytes buch/chapters/110-elliptisch/images/kegelpara.pdf | Bin 202828 -> 203620 bytes .../110-elliptisch/images/torusschnitt.pdf | Bin 312677 -> 313517 bytes 8 files changed, 164 insertions(+), 14 deletions(-) create mode 100644 buch/chapters/110-elliptisch/images/ellall.pdf create mode 100644 buch/chapters/110-elliptisch/images/ellall.tex (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile index 3074994..cd8e905 100644 --- a/buch/chapters/110-elliptisch/images/Makefile +++ b/buch/chapters/110-elliptisch/images/Makefile @@ -6,7 +6,7 @@ all: lemniskate.pdf ellipsenumfang.pdf unvollstaendig.pdf rechteck.pdf \ ellipse.pdf pendel.pdf jacobiplots.pdf jacobidef.pdf jacobi12.pdf \ sncnlimit.pdf slcl.pdf torusschnitt.pdf kegelpara.pdf lemnispara.pdf \ - ellpolnul.pdf + ellpolnul.pdf ellall.pdf lemniskate.pdf: lemniskate.tex pdflatex lemniskate.tex @@ -115,5 +115,7 @@ lemnispara.pdf: lemnispara.tex lemnisparadata.tex ltest: lemnispara.pdf -ellpolnul.pdf: ellpolnul.tex +ellpolnul.pdf: ellpolnul.tex ellcommon.tex pdflatex ellpolnul.tex +ellall.pdf: ellall.tex ellcommon.tex + pdflatex ellall.tex diff --git a/buch/chapters/110-elliptisch/images/ellall.pdf b/buch/chapters/110-elliptisch/images/ellall.pdf new file mode 100644 index 0000000..0047a52 Binary files /dev/null and b/buch/chapters/110-elliptisch/images/ellall.pdf 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..5d63322 --- /dev/null +++ b/buch/chapters/110-elliptisch/images/ellall.tex @@ -0,0 +1,148 @@ +% +% 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$}; + +\begin{scope}[xshift=-3cm,yshift=0cm] +\rechteck{gray}{1} +\end{scope} + +\definecolor{sccolor}{rgb}{0.8,0.2,0.8} +\definecolor{sdcolor}{rgb}{0.8,0.8,0.2} +\definecolor{cdcolor}{rgb}{0.2,0.8,0.8} + +\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{ik'}k$}; +\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} +\end{scope} + +\begin{scope}[xshift=0cm,yshift=-3cm] +\rechteck{gray}{1} +\end{scope} + +\begin{scope}[xshift=3cm,yshift=-3cm] +\rechteck{sccolor}{\operatorname{cs}(u,k)} +\pol{(1,-1)}{sccolor} +\nullstelle{(-1,-1)}{sccolor} +\end{scope} + +\begin{scope}[xshift=6cm,yshift=-3cm] +\rechteck{sdcolor}{\operatorname{ds}(u,k)} +\pol{(-1,1)}{sdcolor} +\nullstelle{(-1,-1)}{sdcolor} +\nullstelle{(1,1)}{sdcolor} +\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} +\end{scope} + +\begin{scope}[xshift=0cm,yshift=-6cm] +\rechteck{sccolor}{\operatorname{sc}(u,k)} +\nullstelle{(1,-1)}{sccolor} +\pol{(-1,-1)}{sccolor} +\end{scope} + +\begin{scope}[xshift=3cm,yshift=-6cm] +\rechteck{gray}{1} +\end{scope} + +\begin{scope}[xshift=6cm,yshift=-6cm] +\rechteck{cdcolor}{\operatorname{dc}(u,k)} +\nullstelle{(1,1)}{cdcolor} +\nullstelle{(1,-1)}{cdcolor} +\pol{(-1,1)}{cdcolor} +\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} +\end{scope} + +\begin{scope}[xshift=0cm,yshift=-9cm] +\rechteck{sdcolor}{\operatorname{sd}(u,k)} +\nullstelle{(-1,1)}{sdcolor} +\pol{(-1,-1)}{sdcolor} +\pol{(1,1)}{sdcolor} +\end{scope} + +\begin{scope}[xshift=3cm,yshift=-9cm] +\rechteck{cdcolor}{\operatorname{cd}(u,k)} +\pol{(1,1)}{cdcolor} +\pol{(1,-1)}{cdcolor} +\nullstelle{(-1,1)}{cdcolor} +\end{scope} + +\begin{scope}[xshift=6cm,yshift=-9cm] +\rechteck{gray}{1} +\end{scope} + + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.pdf b/buch/chapters/110-elliptisch/images/ellpolnul.pdf index ca52cdf..d6549c4 100644 Binary files a/buch/chapters/110-elliptisch/images/ellpolnul.pdf and b/buch/chapters/110-elliptisch/images/ellpolnul.pdf differ diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.tex b/buch/chapters/110-elliptisch/images/ellpolnul.tex index 831b477..1ed6b22 100644 --- a/buch/chapters/110-elliptisch/images/ellpolnul.tex +++ b/buch/chapters/110-elliptisch/images/ellpolnul.tex @@ -1,5 +1,5 @@ % -% tikztemplate.tex -- template for standalon tikz images +% ellpolnul.tex -- template for standalon tikz images % % (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule % @@ -9,15 +9,12 @@ \usepackage{txfonts} \usepackage{pgfplots} \usepackage{csvsimple} -\usetikzlibrary{arrows,intersections,math} +\usetikzlibrary{arrows,intersections,math,calc} \begin{document} +\input{ellcommon.tex} \def\skala{1} \begin{tikzpicture}[>=latex,thick,scale=\skala] -\definecolor{rot}{rgb}{0.8,0,0} -\definecolor{blau}{rgb}{0,0,1} -\definecolor{gruen}{rgb}{0,0.6,0} - \draw (-1,-1) rectangle (1,1); \node at (-1,-1) [below left] {$0$}; \node at (1,-1) [below right] {$K$}; @@ -26,30 +23,33 @@ \node at (0,0) {$u$}; \begin{scope}[xshift=4cm] -\fill[color=rot!20] (-1,-1) rectangle (1,1); +\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$}; -\node[color=rot] at (0,0) {$\operatorname{sn}(u,k)$}; \end{scope} \begin{scope}[xshift=7cm] -\fill[color=blau!20] (-1,-1) rectangle (1,1); +\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{ik'}k$}; \node at (-1,1) {$\infty$}; -\node[color=blau] at (0,0) {$\operatorname{cn}(u,k)$}; \end{scope} \begin{scope}[xshift=10cm] -\fill[color=gruen!20] (-1,-1) rectangle (1,1); +\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$}; -\node[color=gruen] at (0,0) {$\operatorname{dn}(u,k)$}; \end{scope} \end{tikzpicture} diff --git a/buch/chapters/110-elliptisch/images/jacobiplots.pdf b/buch/chapters/110-elliptisch/images/jacobiplots.pdf index d30f670..49bfeb2 100644 Binary files a/buch/chapters/110-elliptisch/images/jacobiplots.pdf and b/buch/chapters/110-elliptisch/images/jacobiplots.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf index 65b097f..65a5b45 100644 Binary files a/buch/chapters/110-elliptisch/images/kegelpara.pdf and b/buch/chapters/110-elliptisch/images/kegelpara.pdf differ diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf index 2eba07e..519a5a3 100644 Binary files a/buch/chapters/110-elliptisch/images/torusschnitt.pdf and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf differ -- cgit v1.2.1 From 43a21e525fe5f9f2e81113ed84742c42178c7114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Wed, 22 Jun 2022 16:02:19 +0200 Subject: new images --- buch/chapters/110-elliptisch/dglsol.tex | 28 ++++++++++++++++++++++++- buch/chapters/110-elliptisch/images/ellall.pdf | Bin 22616 -> 24694 bytes buch/chapters/110-elliptisch/images/ellall.tex | 28 +++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/dglsol.tex b/buch/chapters/110-elliptisch/dglsol.tex index 3ef1eef..c4b990e 100644 --- a/buch/chapters/110-elliptisch/dglsol.tex +++ b/buch/chapters/110-elliptisch/dglsol.tex @@ -343,6 +343,28 @@ der unvollständigen elliptischen Integrale. % % \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} Für die Funktion $y=\operatorname{sn}(u,k)$ erfüllt die Differentialgleichung \[ \frac{dy}{du} @@ -392,8 +414,12 @@ abgelesen werden: \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. +elliptischen Funktionen ablesen, Pole und Nullstellen sind in +Abbildung~\ref{buch:elliptisch:fig:ellall} +zusammengestellt. diff --git a/buch/chapters/110-elliptisch/images/ellall.pdf b/buch/chapters/110-elliptisch/images/ellall.pdf index 0047a52..a57be97 100644 Binary files a/buch/chapters/110-elliptisch/images/ellall.pdf and b/buch/chapters/110-elliptisch/images/ellall.pdf differ diff --git a/buch/chapters/110-elliptisch/images/ellall.tex b/buch/chapters/110-elliptisch/images/ellall.tex index 5d63322..b694441 100644 --- a/buch/chapters/110-elliptisch/images/ellall.tex +++ b/buch/chapters/110-elliptisch/images/ellall.tex @@ -22,6 +22,34 @@ %\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] \rechteck{gray}{1} \end{scope} -- cgit v1.2.1 From 67a73f883b582591f1bd94c68e07868ae2e4440d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Wed, 22 Jun 2022 19:27:02 +0200 Subject: add missing file --- buch/chapters/110-elliptisch/images/ellcommon.tex | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 buch/chapters/110-elliptisch/images/ellcommon.tex (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/images/ellcommon.tex b/buch/chapters/110-elliptisch/images/ellcommon.tex new file mode 100644 index 0000000..90bc486 --- /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!40,line width=2.4pt] + ($#1+(-\l,-\l)$) -- ($#1+(\l,\l)$); + \draw[color=#2!40,line width=2.4pt] + ($#1+(-\l,\l)$) -- ($#1+(\l,-\l)$); +} +\def\nullstelle#1#2{ + \draw[color=#2!40,line width=2.4pt] #1 circle[radius=\l]; +} +\def\rechteck#1#2{ + \fill[color=#1!20] (-1,-1) rectangle (1,1); + \node[color=#1] at (0,0) {$#2$}; +} -- cgit v1.2.1 From 0a0f36f71e9dff9b9c87a66a669e0d2f388d21c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 23 Jun 2022 19:23:58 +0200 Subject: poles and zeros --- buch/chapters/110-elliptisch/images/ellall.pdf | Bin 24694 -> 22593 bytes buch/chapters/110-elliptisch/images/ellall.tex | 79 +++++++++++++++------ buch/chapters/110-elliptisch/images/ellcommon.tex | 8 +-- buch/chapters/110-elliptisch/images/ellpolnul.pdf | Bin 23281 -> 19647 bytes buch/chapters/110-elliptisch/images/ellpolnul.tex | 2 +- .../chapters/110-elliptisch/images/jacobiplots.pdf | Bin 59737 -> 56975 bytes buch/chapters/110-elliptisch/images/kegelpara.pdf | Bin 203620 -> 202828 bytes .../110-elliptisch/images/torusschnitt.pdf | Bin 313517 -> 312677 bytes 8 files changed, 64 insertions(+), 25 deletions(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/images/ellall.pdf b/buch/chapters/110-elliptisch/images/ellall.pdf index a57be97..fd0a5dd 100644 Binary files a/buch/chapters/110-elliptisch/images/ellall.pdf and b/buch/chapters/110-elliptisch/images/ellall.pdf differ diff --git a/buch/chapters/110-elliptisch/images/ellall.tex b/buch/chapters/110-elliptisch/images/ellall.tex index b694441..b37fe12 100644 --- a/buch/chapters/110-elliptisch/images/ellall.tex +++ b/buch/chapters/110-elliptisch/images/ellall.tex @@ -51,12 +51,13 @@ \end{scope} \begin{scope}[xshift=-3cm,yshift=0cm] -\rechteck{gray}{1} +\node at (0,0) {$1$}; +\draw[color=gray!20] (-1,-1) rectangle (1,1); \end{scope} -\definecolor{sccolor}{rgb}{0.8,0.2,0.8} -\definecolor{sdcolor}{rgb}{0.8,0.8,0.2} -\definecolor{cdcolor}{rgb}{0.2,0.8,0.8} +\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)} @@ -74,7 +75,7 @@ \pol{(-1,1)}{blau} \node at (-1,-1) {$1$}; \node at (1,-1) {$0$}; -\node at (1,1) {$\frac{ik'}k$}; +\node at (1,1) {$\frac{k'}{ik}$}; \node at (-1,1) {$\infty$}; \end{scope} @@ -96,23 +97,36 @@ \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} +%\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} +\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} +\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} % @@ -123,23 +137,36 @@ \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} +\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} +%\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} -\nullstelle{(1,-1)}{cdcolor} -\pol{(-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} % @@ -150,24 +177,36 @@ \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} +\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} -\pol{(1,-1)}{cdcolor} -\nullstelle{(-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} +%\rechteck{gray}{1} +\fill[color=white] (-1,-1) rectangle (1,1); +\node[color=gray] at (0,0) {$1$}; \end{scope} diff --git a/buch/chapters/110-elliptisch/images/ellcommon.tex b/buch/chapters/110-elliptisch/images/ellcommon.tex index 90bc486..cd3245d 100644 --- a/buch/chapters/110-elliptisch/images/ellcommon.tex +++ b/buch/chapters/110-elliptisch/images/ellcommon.tex @@ -10,15 +10,15 @@ \def\l{0.2} \def\pol#1#2{ - \draw[color=#2!40,line width=2.4pt] + \draw[color=#2!50,line width=3.0pt] ($#1+(-\l,-\l)$) -- ($#1+(\l,\l)$); - \draw[color=#2!40,line width=2.4pt] + \draw[color=#2!50,line width=3.0pt] ($#1+(-\l,\l)$) -- ($#1+(\l,-\l)$); } \def\nullstelle#1#2{ - \draw[color=#2!40,line width=2.4pt] #1 circle[radius=\l]; + \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$}; + \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 index d6549c4..9143d2d 100644 Binary files a/buch/chapters/110-elliptisch/images/ellpolnul.pdf and b/buch/chapters/110-elliptisch/images/ellpolnul.pdf differ diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.tex b/buch/chapters/110-elliptisch/images/ellpolnul.tex index 1ed6b22..16730f9 100644 --- a/buch/chapters/110-elliptisch/images/ellpolnul.tex +++ b/buch/chapters/110-elliptisch/images/ellpolnul.tex @@ -38,7 +38,7 @@ \pol{(-1,1)}{blau} \node at (-1,-1) {$1$}; \node at (1,-1) {$0$}; -\node at (1,1) {$\frac{ik'}k$}; +\node at (1,1) {$\frac{k'}{ik}$}; \node at (-1,1) {$\infty$}; \end{scope} diff --git a/buch/chapters/110-elliptisch/images/jacobiplots.pdf b/buch/chapters/110-elliptisch/images/jacobiplots.pdf index 49bfeb2..331270e 100644 Binary files a/buch/chapters/110-elliptisch/images/jacobiplots.pdf and b/buch/chapters/110-elliptisch/images/jacobiplots.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf index 65a5b45..b23654c 100644 Binary files a/buch/chapters/110-elliptisch/images/kegelpara.pdf and b/buch/chapters/110-elliptisch/images/kegelpara.pdf differ diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf index 519a5a3..f70f362 100644 Binary files a/buch/chapters/110-elliptisch/images/torusschnitt.pdf and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf differ -- cgit v1.2.1 From 4093fce68a051cb36b95609f68e2319d14615d39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 23 Jun 2022 19:26:58 +0200 Subject: typo --- buch/chapters/110-elliptisch/dglsol.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/dglsol.tex b/buch/chapters/110-elliptisch/dglsol.tex index c4b990e..b1b7db3 100644 --- a/buch/chapters/110-elliptisch/dglsol.tex +++ b/buch/chapters/110-elliptisch/dglsol.tex @@ -408,7 +408,7 @@ abgelesen werden: \\ \operatorname{sn}(K+iK',k)&=\frac{1}{k} & -\operatorname{cn}(K+iK',k)&=\frac{ik'}{k} +\operatorname{cn}(K+iK',k)&=\frac{k'}{ik} & \operatorname{dn}(K+iK',k)&=0 \end{aligned} -- cgit v1.2.1 From a14385eccb4fa12d22c88f2955b39bee7ee482c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Fri, 24 Jun 2022 12:51:42 +0200 Subject: Funktionsauswahl --- buch/chapters/110-elliptisch/dglsol.tex | 14 +++ buch/chapters/110-elliptisch/images/Makefile | 6 +- .../110-elliptisch/images/ellselection.pdf | Bin 0 -> 20323 bytes .../110-elliptisch/images/ellselection.tex | 122 +++++++++++++++++++++ .../chapters/110-elliptisch/images/jacobiplots.pdf | Bin 56975 -> 56975 bytes buch/chapters/110-elliptisch/images/kegelpara.pdf | Bin 202828 -> 202828 bytes .../110-elliptisch/images/torusschnitt.pdf | Bin 312677 -> 312677 bytes 7 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 buch/chapters/110-elliptisch/images/ellselection.pdf create mode 100644 buch/chapters/110-elliptisch/images/ellselection.tex (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/dglsol.tex b/buch/chapters/110-elliptisch/dglsol.tex index b1b7db3..74f2f8c 100644 --- a/buch/chapters/110-elliptisch/dglsol.tex +++ b/buch/chapters/110-elliptisch/dglsol.tex @@ -365,6 +365,20 @@ 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} diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile index cd8e905..43ca35e 100644 --- a/buch/chapters/110-elliptisch/images/Makefile +++ b/buch/chapters/110-elliptisch/images/Makefile @@ -6,7 +6,7 @@ all: lemniskate.pdf ellipsenumfang.pdf unvollstaendig.pdf rechteck.pdf \ ellipse.pdf pendel.pdf jacobiplots.pdf jacobidef.pdf jacobi12.pdf \ sncnlimit.pdf slcl.pdf torusschnitt.pdf kegelpara.pdf lemnispara.pdf \ - ellpolnul.pdf ellall.pdf + ellpolnul.pdf ellall.pdf ellselection.pdf lemniskate.pdf: lemniskate.tex pdflatex lemniskate.tex @@ -119,3 +119,7 @@ ellpolnul.pdf: ellpolnul.tex ellcommon.tex pdflatex ellpolnul.tex ellall.pdf: ellall.tex ellcommon.tex pdflatex ellall.tex + +ellselection.pdf: ellselection.tex + pdflatex ellselection.tex + diff --git a/buch/chapters/110-elliptisch/images/ellselection.pdf b/buch/chapters/110-elliptisch/images/ellselection.pdf new file mode 100644 index 0000000..bc9af35 Binary files /dev/null and b/buch/chapters/110-elliptisch/images/ellselection.pdf 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..9e822ec --- /dev/null +++ b/buch/chapters/110-elliptisch/images/ellselection.tex @@ -0,0 +1,122 @@ +% +% 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] + +\def\l{0.45} +\pgfmathparse{\l*72/2.54} +\xdef\L{\pgfmathresult} + +\def\sx{4.1} +\pgfmathparse{\sx*72/2.54} +\xdef\Sx{\pgfmathresult} + +\def\sy{3.2} +\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} + +\fill[color=red!20] ({-\sx},0) rectangle (\sx,\sy); +\fill[color=blue!20] ({-\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 331270e..59aea81 100644 Binary files a/buch/chapters/110-elliptisch/images/jacobiplots.pdf and b/buch/chapters/110-elliptisch/images/jacobiplots.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf index b23654c..59f9f50 100644 Binary files a/buch/chapters/110-elliptisch/images/kegelpara.pdf and b/buch/chapters/110-elliptisch/images/kegelpara.pdf differ diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf index f70f362..61293f3 100644 Binary files a/buch/chapters/110-elliptisch/images/torusschnitt.pdf and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf differ -- cgit v1.2.1 From 3a7e2cef27bd78a96b20751db2a53f7291fcd2a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Fri, 24 Jun 2022 20:18:48 +0200 Subject: add grid to images --- buch/chapters/110-elliptisch/dglsol.tex | 16 +++++------ buch/chapters/110-elliptisch/images/Makefile | 7 ++++- buch/chapters/110-elliptisch/images/ellpolnul.pdf | Bin 19647 -> 86072 bytes buch/chapters/110-elliptisch/images/ellpolnul.tex | 9 ++++++ .../110-elliptisch/images/ellselection.pdf | Bin 20323 -> 76094 bytes .../110-elliptisch/images/ellselection.tex | 15 ++++++++-- .../chapters/110-elliptisch/images/jacobiplots.pdf | Bin 56975 -> 56975 bytes buch/chapters/110-elliptisch/images/kegelpara.pdf | Bin 202828 -> 202828 bytes buch/chapters/110-elliptisch/images/rechteck.cpp | 31 +++++++++++++++------ buch/chapters/110-elliptisch/images/rechteck.pdf | Bin 91639 -> 94300 bytes buch/chapters/110-elliptisch/images/rechteck.tex | 2 ++ .../110-elliptisch/images/torusschnitt.pdf | Bin 312677 -> 312677 bytes 12 files changed, 60 insertions(+), 20 deletions(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/dglsol.tex b/buch/chapters/110-elliptisch/dglsol.tex index 74f2f8c..3303aee 100644 --- a/buch/chapters/110-elliptisch/dglsol.tex +++ b/buch/chapters/110-elliptisch/dglsol.tex @@ -403,27 +403,27 @@ 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} diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile index 43ca35e..7636e65 100644 --- a/buch/chapters/110-elliptisch/images/Makefile +++ b/buch/chapters/110-elliptisch/images/Makefile @@ -120,6 +120,11 @@ ellpolnul.pdf: ellpolnul.tex ellcommon.tex ellall.pdf: ellall.tex ellcommon.tex pdflatex ellall.tex -ellselection.pdf: ellselection.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/ellpolnul.pdf b/buch/chapters/110-elliptisch/images/ellpolnul.pdf index 9143d2d..a60a51b 100644 Binary files a/buch/chapters/110-elliptisch/images/ellpolnul.pdf and b/buch/chapters/110-elliptisch/images/ellpolnul.pdf differ diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.tex b/buch/chapters/110-elliptisch/images/ellpolnul.tex index 16730f9..fe1d235 100644 --- a/buch/chapters/110-elliptisch/images/ellpolnul.tex +++ b/buch/chapters/110-elliptisch/images/ellpolnul.tex @@ -15,6 +15,15 @@ \def\skala{1} \begin{tikzpicture}[>=latex,thick,scale=\skala] +\input rechteckpfade3.tex + +\pgfmathparse{1/\xmax} +\xdef\dx{\pgfmathresult} +\xdef\dy{\dx} + +\netz{0.1pt} +\draw[line width=0.1pt] (-1,0) -- (1,0); +\fill[color=white,opacity=0.5] (-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$}; diff --git a/buch/chapters/110-elliptisch/images/ellselection.pdf b/buch/chapters/110-elliptisch/images/ellselection.pdf index bc9af35..bad342c 100644 Binary files a/buch/chapters/110-elliptisch/images/ellselection.pdf and b/buch/chapters/110-elliptisch/images/ellselection.pdf differ diff --git a/buch/chapters/110-elliptisch/images/ellselection.tex b/buch/chapters/110-elliptisch/images/ellselection.tex index 9e822ec..0dd1e04 100644 --- a/buch/chapters/110-elliptisch/images/ellselection.tex +++ b/buch/chapters/110-elliptisch/images/ellselection.tex @@ -14,15 +14,22 @@ \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} -\def\sy{3.2} +\pgfmathparse{\dx*\ymax} +\xdef\sy{\pgfmathresult} \pgfmathparse{\sy*72/2.54} \xdef\Sy{\pgfmathresult} @@ -36,8 +43,10 @@ \pgfmathparse{\sy/2} \xdef\rechtsy{\pgfmathresult} -\fill[color=red!20] ({-\sx},0) rectangle (\sx,\sy); -\fill[color=blue!20] ({-\sx},{-\sy}) rectangle (\sx,0); +\hintergrund +\netz{0.7pt} +\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); diff --git a/buch/chapters/110-elliptisch/images/jacobiplots.pdf b/buch/chapters/110-elliptisch/images/jacobiplots.pdf index 59aea81..3ac9fe5 100644 Binary files a/buch/chapters/110-elliptisch/images/jacobiplots.pdf and b/buch/chapters/110-elliptisch/images/jacobiplots.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf index 59f9f50..0d6f63d 100644 Binary files a/buch/chapters/110-elliptisch/images/kegelpara.pdf and b/buch/chapters/110-elliptisch/images/kegelpara.pdf differ 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& 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 dir(0.01, 0); + double deltax = Deltax; for (double im = deltax; im < 3; im += deltax) { std::complex startz(0, im); std::complex 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(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 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 Binary files a/buch/chapters/110-elliptisch/images/rechteck.pdf and b/buch/chapters/110-elliptisch/images/rechteck.pdf 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/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf index 61293f3..2948e76 100644 Binary files a/buch/chapters/110-elliptisch/images/torusschnitt.pdf and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf differ -- cgit v1.2.1 From b2d8e88a2517a5d15b01f4e34ac12dfc8723c265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Fri, 24 Jun 2022 20:30:36 +0200 Subject: improve elliptic domain images --- buch/chapters/110-elliptisch/images/ellpolnul.pdf | Bin 86072 -> 130369 bytes buch/chapters/110-elliptisch/images/ellpolnul.tex | 9 ++++++--- .../chapters/110-elliptisch/images/jacobiplots.pdf | Bin 56975 -> 56975 bytes buch/chapters/110-elliptisch/images/kegelpara.pdf | Bin 202828 -> 202828 bytes .../110-elliptisch/images/torusschnitt.pdf | Bin 312677 -> 312677 bytes 5 files changed, 6 insertions(+), 3 deletions(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.pdf b/buch/chapters/110-elliptisch/images/ellpolnul.pdf index a60a51b..4453703 100644 Binary files a/buch/chapters/110-elliptisch/images/ellpolnul.pdf and b/buch/chapters/110-elliptisch/images/ellpolnul.pdf differ diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.tex b/buch/chapters/110-elliptisch/images/ellpolnul.tex index fe1d235..b3183fc 100644 --- a/buch/chapters/110-elliptisch/images/ellpolnul.tex +++ b/buch/chapters/110-elliptisch/images/ellpolnul.tex @@ -17,12 +17,15 @@ \input rechteckpfade3.tex -\pgfmathparse{1/\xmax} +\pgfmathparse{2/\xmax} \xdef\dx{\pgfmathresult} \xdef\dy{\dx} -\netz{0.1pt} -\draw[line width=0.1pt] (-1,0) -- (1,0); +\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.5] (-1,-1) rectangle (1,1); \draw (-1,-1) rectangle (1,1); \node at (-1,-1) [below left] {$0$}; diff --git a/buch/chapters/110-elliptisch/images/jacobiplots.pdf b/buch/chapters/110-elliptisch/images/jacobiplots.pdf index 3ac9fe5..eb9d7f1 100644 Binary files a/buch/chapters/110-elliptisch/images/jacobiplots.pdf and b/buch/chapters/110-elliptisch/images/jacobiplots.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf index 0d6f63d..2bbd428 100644 Binary files a/buch/chapters/110-elliptisch/images/kegelpara.pdf and b/buch/chapters/110-elliptisch/images/kegelpara.pdf differ diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf index 2948e76..9b64ab2 100644 Binary files a/buch/chapters/110-elliptisch/images/torusschnitt.pdf and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf differ -- cgit v1.2.1 From e1e6149b020ef102e257adb9898d5ba5242bac05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Fri, 24 Jun 2022 20:47:33 +0200 Subject: more improvements --- buch/chapters/110-elliptisch/images/ellpolnul.pdf | Bin 130369 -> 130369 bytes buch/chapters/110-elliptisch/images/ellpolnul.tex | 2 +- .../110-elliptisch/images/ellselection.pdf | Bin 76094 -> 165928 bytes .../110-elliptisch/images/ellselection.tex | 14 ++++++++++++-- 4 files changed, 13 insertions(+), 3 deletions(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.pdf b/buch/chapters/110-elliptisch/images/ellpolnul.pdf index 4453703..d798169 100644 Binary files a/buch/chapters/110-elliptisch/images/ellpolnul.pdf and b/buch/chapters/110-elliptisch/images/ellpolnul.pdf differ diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.tex b/buch/chapters/110-elliptisch/images/ellpolnul.tex index b3183fc..dfa04d3 100644 --- a/buch/chapters/110-elliptisch/images/ellpolnul.tex +++ b/buch/chapters/110-elliptisch/images/ellpolnul.tex @@ -26,7 +26,7 @@ \netz{0.4pt} \draw[line width=0.4pt] (-1,0) -- (1,0); \end{scope} -\fill[color=white,opacity=0.5] (-1,-1) rectangle (1,1); +\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$}; diff --git a/buch/chapters/110-elliptisch/images/ellselection.pdf b/buch/chapters/110-elliptisch/images/ellselection.pdf index bad342c..7c98db1 100644 Binary files a/buch/chapters/110-elliptisch/images/ellselection.pdf and b/buch/chapters/110-elliptisch/images/ellselection.pdf differ diff --git a/buch/chapters/110-elliptisch/images/ellselection.tex b/buch/chapters/110-elliptisch/images/ellselection.tex index 0dd1e04..d8afeb1 100644 --- a/buch/chapters/110-elliptisch/images/ellselection.tex +++ b/buch/chapters/110-elliptisch/images/ellselection.tex @@ -43,8 +43,18 @@ \pgfmathparse{\sy/2} \xdef\rechtsy{\pgfmathresult} -\hintergrund -\netz{0.7pt} +\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); -- cgit v1.2.1 From 7cc8f34f003ecb25ade7f1ff2287fe12b5a22c40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Sat, 25 Jun 2022 14:36:04 +0200 Subject: arithmetic-geometric-mean --- buch/chapters/110-elliptisch/agm.m | 20 ++ buch/chapters/110-elliptisch/ellintegral.tex | 320 ++++++++++++++++++++- .../chapters/110-elliptisch/experiments/agm.maxima | 26 ++ 3 files changed, 357 insertions(+), 9 deletions(-) create mode 100644 buch/chapters/110-elliptisch/agm.m create mode 100644 buch/chapters/110-elliptisch/experiments/agm.maxima (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/agm.m b/buch/chapters/110-elliptisch/agm.m new file mode 100644 index 0000000..2f0a1ea --- /dev/null +++ b/buch/chapters/110-elliptisch/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 + +E = 2 / (pi * a) + diff --git a/buch/chapters/110-elliptisch/ellintegral.tex b/buch/chapters/110-elliptisch/ellintegral.tex index bc597d6..970d8fa 100644 --- a/buch/chapters/110-elliptisch/ellintegral.tex +++ b/buch/chapters/110-elliptisch/ellintegral.tex @@ -451,14 +451,310 @@ Hilfe einer Entwicklung der Wurzel mit der Binomialreihe gefunden werden. \end{proof} +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} +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. + % +% Das arithmetisch-geometrische Mittel % -\subsubsection{Komplementäre Integrale} +\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} +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} -\subsubsection{Ableitung} -XXX Ableitung \\ -XXX Stammfunktion \\ +\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, 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 t_1} +\label{buch:elliptisch:agm:subst} +\end{equation} +zu +\begin{equation} +\frac{dt}{a^2\cos^2 t + b^2 \sin^2 t} += +\frac{dt_1}{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 \cos^2 t + b^2 \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} +\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} +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} +\label{buch:elliptisch:agm:satz:Ek} +Für $0{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\hline +n& a_n & b_n \\ +\hline +0 & 1.0000000000000000 & 0.7071067811865476\\ +1 & 0.\underline{8}535533905932737 & 0.\underline{84}08964152537146\\ +2 & 0.\underline{8472}249029234942 & 0.\underline{8472}012667468916\\ +3 & 0.\underline{847213084}8351929 & 0.\underline{8472130847}527654\\ +4 & 0.\underline{847213084793979}2 & 0.\underline{847213084793979}1\\ +\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)} += +0.751428163461842. +\] +Die Berechnung hat nur 4 Mittelwerte, 4 Produkte, 4 Quadratwurzeln und +eine Division erfordert. % % Unvollständige elliptische Integrale @@ -551,7 +847,7 @@ 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 Additionstheoreme \\ XXX Parameterkonventionen \\ % @@ -648,6 +944,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 @@ -751,6 +1050,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 @@ -797,7 +1099,7 @@ 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 +%\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/experiments/agm.maxima b/buch/chapters/110-elliptisch/experiments/agm.maxima new file mode 100644 index 0000000..c7facd4 --- /dev/null +++ b/buch/chapters/110-elliptisch/experiments/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))); -- cgit v1.2.1 From 335c3a23f09759be380291ec89b0f2c43c2d3db6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Sat, 25 Jun 2022 22:46:16 +0200 Subject: fix agm --- buch/chapters/110-elliptisch/agm.m | 20 ------------- buch/chapters/110-elliptisch/agm/Makefile | 10 +++++++ buch/chapters/110-elliptisch/agm/agm.cpp | 42 ++++++++++++++++++++++++++++ buch/chapters/110-elliptisch/agm/agm.m | 20 +++++++++++++ buch/chapters/110-elliptisch/ellintegral.tex | 34 ++++++++++++---------- 5 files changed, 91 insertions(+), 35 deletions(-) delete mode 100644 buch/chapters/110-elliptisch/agm.m create mode 100644 buch/chapters/110-elliptisch/agm/Makefile create mode 100644 buch/chapters/110-elliptisch/agm/agm.cpp create mode 100644 buch/chapters/110-elliptisch/agm/agm.m (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/agm.m b/buch/chapters/110-elliptisch/agm.m deleted file mode 100644 index 2f0a1ea..0000000 --- a/buch/chapters/110-elliptisch/agm.m +++ /dev/null @@ -1,20 +0,0 @@ -# -# 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 - -E = 2 / (pi * a) - diff --git a/buch/chapters/110-elliptisch/agm/Makefile b/buch/chapters/110-elliptisch/agm/Makefile new file mode 100644 index 0000000..e7975e1 --- /dev/null +++ b/buch/chapters/110-elliptisch/agm/Makefile @@ -0,0 +1,10 @@ +# +# Makefile +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# + +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..fdb0441 --- /dev/null +++ b/buch/chapters/110-elliptisch/agm/agm.cpp @@ -0,0 +1,42 @@ +/* + * agm.cpp + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +#include +#include +#include +#include +#include + + + +int main(int argc, char *argv[]) { + long double a = 1; + long double b = sqrtl(2.)/2; + if (argc >= 3) { + a = std::stod(argv[1]); + b = std::stod(argv[2]); + } + + { + long double an = a; + long double bn = b; + for (int i = 0; i < 10; i++) { + printf("%d %24.18Lf %24.18Lf %24.18Lf\n", + i, an, bn, a * M_PI / (2 * an)); + long double A = (an + bn) / 2; + 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); + } + + 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/ellintegral.tex b/buch/chapters/110-elliptisch/ellintegral.tex index 970d8fa..79ed91e 100644 --- a/buch/chapters/110-elliptisch/ellintegral.tex +++ b/buch/chapters/110-elliptisch/ellintegral.tex @@ -578,9 +578,9 @@ Gauss hat gefunden, dass die Substitution \end{equation} zu \begin{equation} -\frac{dt}{a^2\cos^2 t + b^2 \sin^2 t} +\frac{dt}{\sqrt{a^2_{\phantom{1}}\cos^2 t + b^2_{\phantom{1}} \sin^2 t}} = -\frac{dt_1}{a_1^2\cos^2 t_1 + b_1^2 \sin^2 t_1} +\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. @@ -608,7 +608,7 @@ ableiten, es ist \frac{dt}{dt_1} \biggr)^2 = -\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}. +\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} @@ -618,7 +618,7 @@ Man muss also nachprüfen, dass \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. +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. @@ -724,15 +724,19 @@ K(k) = I(1,\sqrt{1-k^2}) = \frac{\pi}{2M(1,\sqrt{1-k^2})} \subsubsection{Numerisches Beispiel} \begin{table} \centering -\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} \hline -n& a_n & b_n \\ +n& a_n & b_n & \pi/2a_n \mathstrut +\text{\vrule height12pt depth6pt width0pt}\\ \hline -0 & 1.0000000000000000 & 0.7071067811865476\\ -1 & 0.\underline{8}535533905932737 & 0.\underline{84}08964152537146\\ -2 & 0.\underline{8472}249029234942 & 0.\underline{8472}012667468916\\ -3 & 0.\underline{847213084}8351929 & 0.\underline{8472130847}527654\\ -4 & 0.\underline{847213084793979}2 & 0.\underline{847213084793979}1\\ +\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 @@ -747,11 +751,11 @@ 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) +K(\!\sqrt{2}/2) = -\frac{\pi}{2M(1,\sqrt{2}/2)} +\frac{\pi}{2M(1,\!\sqrt{2}/2)} = -0.751428163461842. +1.854074677301372. \] Die Berechnung hat nur 4 Mittelwerte, 4 Produkte, 4 Quadratwurzeln und eine Division erfordert. @@ -848,7 +852,7 @@ Integrale vorkommen, haben Nullstellen bei $\pm1$, $\pm1/k$ und $\pm 1/\sqrt{n}$ % XXX Additionstheoreme \\ -XXX Parameterkonventionen \\ +% XXX Parameterkonventionen \\ % % Wertebereich -- cgit v1.2.1 From 753507e2be9ce6019b934b8422980c62b55ef1fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Sat, 25 Jun 2022 22:52:08 +0200 Subject: final agm --- buch/chapters/110-elliptisch/ellintegral.tex | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/ellintegral.tex b/buch/chapters/110-elliptisch/ellintegral.tex index 79ed91e..4589ffa 100644 --- a/buch/chapters/110-elliptisch/ellintegral.tex +++ b/buch/chapters/110-elliptisch/ellintegral.tex @@ -547,7 +547,8 @@ 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, es liegt also quadratische Konvergenz vor. +jeder Iteration quadriert, die Zahl korrekter Stellen verdoppelt sich +in jeder Iteration, es liegt also quadratische Konvergenz vor. \end{proof} % @@ -726,16 +727,15 @@ K(k) = I(1,\sqrt{1-k^2}) = \frac{\pi}{2M(1,\sqrt{1-k^2})} \centering \begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} \hline -n& a_n & b_n & \pi/2a_n \mathstrut -\text{\vrule height12pt depth6pt width0pt}\\ +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 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} -- cgit v1.2.1 From 05d75b0f467b2535db538ecaee461cf0c8b637d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Mon, 27 Jun 2022 20:17:16 +0200 Subject: add stuff for elliptic filters --- buch/chapters/110-elliptisch/Makefile.inc | 3 + buch/chapters/110-elliptisch/agm/Makefile | 5 + buch/chapters/110-elliptisch/agm/agm.cpp | 37 ++++- buch/chapters/110-elliptisch/agm/agm.maxima | 26 +++ buch/chapters/110-elliptisch/agm/sn.cpp | 52 ++++++ buch/chapters/110-elliptisch/chapter.tex | 7 +- buch/chapters/110-elliptisch/dglsol.tex | 89 +++++++++++ buch/chapters/110-elliptisch/ellintegral.tex | 141 +++++++++++++++- buch/chapters/110-elliptisch/elltrigo.tex | 2 +- buch/chapters/110-elliptisch/experiments/KK.pdf | Bin 0 -> 23248 bytes buch/chapters/110-elliptisch/experiments/KK.tex | 66 ++++++++ buch/chapters/110-elliptisch/experiments/KN.cpp | 177 +++++++++++++++++++++ buch/chapters/110-elliptisch/experiments/Makefile | 15 ++ .../chapters/110-elliptisch/experiments/agm.maxima | 26 --- buch/chapters/110-elliptisch/uebungsaufgaben/2.tex | 61 +++++++ buch/chapters/110-elliptisch/uebungsaufgaben/3.tex | 135 ++++++++++++++++ .../110-elliptisch/uebungsaufgaben/landen.m | 60 +++++++ 17 files changed, 868 insertions(+), 34 deletions(-) create mode 100644 buch/chapters/110-elliptisch/agm/agm.maxima create mode 100644 buch/chapters/110-elliptisch/agm/sn.cpp create mode 100644 buch/chapters/110-elliptisch/experiments/KK.pdf create mode 100644 buch/chapters/110-elliptisch/experiments/KK.tex create mode 100644 buch/chapters/110-elliptisch/experiments/KN.cpp create mode 100644 buch/chapters/110-elliptisch/experiments/Makefile delete mode 100644 buch/chapters/110-elliptisch/experiments/agm.maxima create mode 100644 buch/chapters/110-elliptisch/uebungsaufgaben/2.tex create mode 100644 buch/chapters/110-elliptisch/uebungsaufgaben/3.tex create mode 100644 buch/chapters/110-elliptisch/uebungsaufgaben/landen.m (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/Makefile.inc b/buch/chapters/110-elliptisch/Makefile.inc index 639cb8f..ef6ea51 100644 --- a/buch/chapters/110-elliptisch/Makefile.inc +++ b/buch/chapters/110-elliptisch/Makefile.inc @@ -12,4 +12,7 @@ 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/chapter.tex diff --git a/buch/chapters/110-elliptisch/agm/Makefile b/buch/chapters/110-elliptisch/agm/Makefile index e7975e1..8dab511 100644 --- a/buch/chapters/110-elliptisch/agm/Makefile +++ b/buch/chapters/110-elliptisch/agm/Makefile @@ -3,6 +3,11 @@ # # (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` diff --git a/buch/chapters/110-elliptisch/agm/agm.cpp b/buch/chapters/110-elliptisch/agm/agm.cpp index fdb0441..8abb4b2 100644 --- a/buch/chapters/110-elliptisch/agm/agm.cpp +++ b/buch/chapters/110-elliptisch/agm/agm.cpp @@ -9,23 +9,54 @@ #include #include +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\n", - i, an, bn, a * M_PI / (2 * an)); + 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; } @@ -36,6 +67,8 @@ int main(int argc, char *argv[]) { 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.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..ff2ed17 --- /dev/null +++ b/buch/chapters/110-elliptisch/agm/sn.cpp @@ -0,0 +1,52 @@ +/* + * ns.cpp + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +#include +#include +#include +#include +#include +#include + +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..d65570b 100644 --- a/buch/chapters/110-elliptisch/chapter.tex +++ b/buch/chapters/110-elliptisch/chapter.tex @@ -35,11 +35,14 @@ 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} \end{uebungsaufgaben} diff --git a/buch/chapters/110-elliptisch/dglsol.tex b/buch/chapters/110-elliptisch/dglsol.tex index 3303aee..3709300 100644 --- a/buch/chapters/110-elliptisch/dglsol.tex +++ b/buch/chapters/110-elliptisch/dglsol.tex @@ -340,7 +340,96 @@ 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 +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. +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} diff --git a/buch/chapters/110-elliptisch/ellintegral.tex b/buch/chapters/110-elliptisch/ellintegral.tex index 4589ffa..cc99218 100644 --- a/buch/chapters/110-elliptisch/ellintegral.tex +++ b/buch/chapters/110-elliptisch/ellintegral.tex @@ -459,7 +459,8 @@ 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} +\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 @@ -472,7 +473,11 @@ 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. +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. % % Das arithmetisch-geometrische Mittel @@ -574,7 +579,7 @@ Gauss hat gefunden, dass die Substitution \begin{equation} \sin t = -\frac{2a\sin t_1}{a+b+(a-b)\sin t_1} +\frac{2a\sin t_1}{a+b+(a-b)\sin^2 t_1} \label{buch:elliptisch:agm:subst} \end{equation} zu @@ -1103,6 +1108,136 @@ 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. +% +% 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}} +\\ +&= +a +\int_0^{\varphi} \frac{dt}{a^2 \cos^2 t + b^2 \sin^2 t} +\qquad\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. +Dazu muss \eqref{buch:elliptisch:agm:subst} nach $x_1=\sin t_1$ +aufgelöst werden. +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 +- +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} \\ diff --git a/buch/chapters/110-elliptisch/elltrigo.tex b/buch/chapters/110-elliptisch/elltrigo.tex index 583e00a..c67870f 100644 --- a/buch/chapters/110-elliptisch/elltrigo.tex +++ b/buch/chapters/110-elliptisch/elltrigo.tex @@ -169,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. 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 Binary files /dev/null and b/buch/chapters/110-elliptisch/experiments/KK.pdf 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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/experiments/agm.maxima b/buch/chapters/110-elliptisch/experiments/agm.maxima deleted file mode 100644 index c7facd4..0000000 --- a/buch/chapters/110-elliptisch/experiments/agm.maxima +++ /dev/null @@ -1,26 +0,0 @@ -/* - * 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/uebungsaufgaben/2.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex new file mode 100644 index 0000000..9a1cafc --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex @@ -0,0 +1,61 @@ +\label{buch:elliptisch:aufgabe:2}% +Die Landen-Transformation basiert auf der Iteration +\begin{equation} +\begin{aligned} +k_{n+1} +&= +\frac{1-k_n'}{1+k_n'} +& +&\text{und}& +k_{n+1}' +&= +\sqrt{1-k_{n+1}^2} +\end{aligned} +\label{buch:elliptisch:aufgabe:2:iteration} +\end{equation} +mit den Startwerten $k_0 = k$ und $k_0' = \sqrt{1-k_0^2}$. +Zeigen Sie, dass $k_n\to 0$ und $k_n'\to 1$ mit quadratischer Konvergenz. + +\begin{loesung} +\begin{table} +\centering +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\hline +n & k & k' \\ +\hline +0 & 0.200000000000000 & 0.979795897113271 \\ +1 & 0.010205144336438 & 0.999947926158694 \\ +2 & 0.000026037598592 & 0.999999999661022 \\ +3 & 0.000000000169489 & 1.000000000000000 \\ +4 & 0.000000000000000 & 1.000000000000000 \\ +\hline +\end{tabular} +\caption{Numerisches Experiment zur Folge $(k_n,k_n')$ +gemäss \eqref{buch:elliptisch:aufgabe:2:iteration} +mit $k_0=0.2$ +\label{buch:ellptisch:aufgabe:2:numerisch}} +\end{table} +Es ist klar, dass $k'_n\to 1$ folgt, wenn man zeigen kann, dass +$k_n\to 0$ gilt. +Wir berechnen daher +\begin{align*} +k_{n+1} +&= +\frac{1-k_n'}{1+k_n'} += +\frac{1-\sqrt{1-k_n^2}}{1+\sqrt{1-k_n^2}} +\intertext{und erweitern mit dem Nenner $1+\sqrt{1-k_n^2}$ um} +&= +\frac{1-(1-k_n^2)}{(1+\sqrt{1-k_n^2})^2} += +\frac{ k_n^2 }{(1+\sqrt{1-k_n^2})^2} +\le +k_n^2 +\end{align*} +zu erhalten. +Daraus folgt jetzt sofort die quadratische Konvergenz von $k_n$ gegen $0$. + +Ein einfaches numerisches Experiment (siehe +Tabelle~\ref{buch:ellptisch:aufgabe:2:numerisch}) +bestätigt die quadratische Konvergenz der Folgen. +\end{loesung} diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/3.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/3.tex new file mode 100644 index 0000000..a5d118f --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/3.tex @@ -0,0 +1,135 @@ +\label{buch:elliptisch:aufgabe:3}% +Aus der in Aufgabe~\ref{buch:elliptisch:aufgabe:2} konstruierten Folge +$k_n$ kann zu einem vorgegebenen $u$ ausserdem die Folge $u_n$ +mit der Rekursionsformel +\[ +u_{n+1} = \frac{u_n}{1+k_{n+1}} +\] +und Anfangswert $u_0=u$ konstruiert werden. +Die Landen-Transformation (siehe \cite[80]{buch:ellfun-applications}) +\index{Landen-Transformation}% +führt auf die folgenden Formeln für die Jacobischen elliptischen Funktionen: +\begin{equation} +\left.\qquad +\begin{aligned} +\operatorname{sn}(u_n,k_n) +&= +\frac{ +(1+k_{n+1})\operatorname{sn}(u_{n+1},k_{n+1}) +}{ +1 + k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2 +} +\\ +\operatorname{cn}(u_n,k_n) +&= +\frac{ +\operatorname{cn}(u_{n+1},k_{n+1}) +\operatorname{dn}(u_{n+1},k_{n+1}) +}{ +1 + k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2 +} +\\ +\operatorname{dn}(u_n,k_n) +&= +\frac{ +1 - k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2 +}{ +1 + k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2 +} +\end{aligned} +\qquad\right\} +\label{buch:elliptisch:aufgabe:3:gauss} +\end{equation} +Die Transformationsformeln +\eqref{buch:elliptisch:aufgabe:3:gauss} +sind auch als Gauss-Transformation bekannt. +\index{Gauss-Transformation}% +Konstruieren Sie daraus einen numerischen Algorithmus, mit dem sich +gleichzeitig die Werte aller drei Jacobischen elliptischen Funktionen +für vorgegebene Parameterwerte $u$ und $k$ berechnen lassen. + +\begin{loesung} +In der ersten Phase des Algorithmus werden die Folgen $k_n$ und $k_n'$ +sowie $u_n$ bis zum Folgenindex $N$ berechnet, bis $k_N\approx 0$ +angenommen werden darf. +Dann gilt +\begin{align*} +\operatorname{sn}(u_N, k_N) &= \operatorname{sn}(u_N,0) = \sin u_N +\\ +\operatorname{cn}(u_N, k_N) &= \operatorname{cn}(u_N,0) = \cos u_N +\\ +\operatorname{dn}(u_N, k_N) &= \operatorname{dn}(u_N,0) = 1. +\end{align*} +In der zweiten Phase des Algorithmus können für absteigende +$n$ jeweils die Formeln~\eqref{buch:elliptisch:aufgabe:3:gauss} +angewendet werden um nacheinander die Werte der Jacobischen +elliptischen Funktionen für Argument $u_n$ und Parameter $k_n$ +für $n=N-1,N-2,\dots,0$ zu bekommen. +\end{loesung} +\begin{table} +\centering +\begin{tikzpicture}[>=latex,thick] +\def\pfeil#1#2{ + \fill[color=#1!30] (-0.5,1) -- (-0.5,-1) -- (-0.8,-1) + -- (0,-1.5) -- (0.8,-1) -- (0.5,-1) -- (0.5,1) -- cycle; + \node[color=white] at (0,-0.2) [scale=5] {\sf #2\strut}; +} +\begin{scope}[xshift=-4.9cm,yshift=0.2cm] +\pfeil{red}{1} +\end{scope} + +\begin{scope}[xshift=-2.3cm,yshift=0.2cm] +\pfeil{red}{1} +\end{scope} + +\begin{scope}[xshift=0.35cm,yshift=-0.3cm,yscale=-1] +\pfeil{blue}{2} +\end{scope} + +\begin{scope}[xshift=2.92cm,yshift=-0.3cm,yscale=-1] +\pfeil{blue}{2} +\end{scope} + +\begin{scope}[xshift=5.60cm,yshift=-0.3cm,yscale=-1] +\pfeil{blue}{2} +\end{scope} + +\node at (0,0) { +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\hline +n & k_n & u_n & \operatorname{sn}(u_n,k_n) & \operatorname{cn}(u_n,k_n) & \operatorname{dn}(u_n,k_n)% +\mathstrut\text{\vrule height12pt depth6pt width0pt} \\ +\hline +\mathstrut\text{\vrule height12pt depth0pt width0pt}% +%\small +0 & 0.90000000000 & 0.60000000000 & 0.54228232286 & 0.84019633556 & 0.87281338478 \\ +1 & 0.39286445838 & 0.43076696830 & 0.41576897816 & 0.90947026163 & 0.98656969610 \\ +2 & 0.04188568608 & 0.41344935827 & 0.40175214109 & 0.91574844642 & 0.99985840483 \\ +3 & 0.00043898784 & 0.41326793867 & 0.40160428679 & 0.91581329801 & 0.99999998445 \\ +4 & 0.00000004817 & 0.41326791876 & 0.40160427056 & 0.91581330513 & 1.00000000000 \\ +5 & 0.00000000000 & 0.41326791876 & 0.40160427056 & 0.91581330513 & 1.00000000000 \\ +%N & 0.00000000000 & 0.41326791876 & 0.40160427056 & 0.91581330513 & 1.00000000000% +N & & 0.41326791876 & \sin u_N & \cos u_N & 1% +%0 & 0.900000000000000 & 0.600000000000000 & 0.542282322869158 & 0.840196335569032 & 0.872813384788490 \\ +%1 & 0.392864458385019 & 0.430766968306220 & 0.415768978168966 & 0.909470261631645 & 0.986569696107075 \\ +%2 & 0.041885686080039 & 0.413449358275499 & 0.401752141098324 & 0.915748446421239 & 0.999858404836479 \\ +%3 & 0.000438987841605 & 0.413267938675096 & 0.401604286793186 & 0.915813298019491 & 0.999999984459261 \\ +%4 & 0.000000048177586 & 0.413267918764845 & 0.401604270565476 & 0.915813305135699 & 1.000000000000000 \\ +%5 & 0.000000000000001 & 0.413267918764845 & 0.401604270565476 & 0.915813305135699 & 1.000000000000000 \\ +%N & 0.000000000000000 & 0.413267918764845 & 0.401604270565476 & 0.915813305135699 & 1.000000000000000 \\ +\mathstrut\text{\vrule height12pt depth6pt width0pt} \\ +\hline +\end{tabular} +}; +\end{tikzpicture} +\caption{Durchführung des auf der Landen-Transformation basierenden +Algorithmus zur Berechnung der Jacobischen elliptischen Funktionen +für $u=0.6$ und $k=0.9$. +Die erste Phase (rot) berechnet die Folgen $k_n$ und $u_n$, die zweite +(blau) +transformiert die Wert der trigonometrischen Funktionen in die Werte +der Jacobischen elliptischen Funktionen. +\label{buch:elliptisch:aufgabe:3:resultate}} +\end{table} + + diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/landen.m b/buch/chapters/110-elliptisch/uebungsaufgaben/landen.m new file mode 100644 index 0000000..bba5549 --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/landen.m @@ -0,0 +1,60 @@ +# +# landen.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +N = 10; + +function retval = M(a,b) + for i = (1:10) + A = (a+b)/2; + b = sqrt(a*b); + a = A; + endfor + retval = a; +endfunction; + +function retval = EllipticKk(k) + retval = pi / (2 * M(1, sqrt(1-k^2))); +endfunction + +k = 0.5; +kprime = sqrt(1-k^2); + +EK = EllipticKk(k); +EKprime = EllipticKk(kprime); + +u = EK + EKprime * i; + +K = zeros(N,3); +K(1,1) = k; +K(1,2) = kprime; +K(1,3) = u; + +format long + +for n = (2:N) + K(n,1) = (1-K(n-1,2)) / (1+K(n-1,2)); + K(n,2) = sqrt(1-K(n,1)^2); + K(n,3) = K(n-1,3) / (1 + K(n,1)); +end + +K(:,[1,3]) + +pi / 2 + +scd = zeros(N,3); +scd(N,1) = sin(K(N,3)); +scd(N,2) = cos(K(N,3)); +scd(N,3) = 1; + +for n = (N:-1:2) + nenner = 1 + K(n,1) * scd(n, 1)^2; + scd(n-1,1) = (1+K(n,1)) * scd(n, 1) / nenner; + scd(n-1,2) = scd(n, 2) * scd(n, 3) / nenner; + scd(n-1,3) = (1 - K(n,1) * scd(n,1)^2) / nenner; +end + +scd(:,1) + +cosh(2.009459377005286) -- cgit v1.2.1 From 7cf7e37298a732b1a900b5eed59c442461e43a6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Mon, 27 Jun 2022 21:02:10 +0200 Subject: add more problems to chapter 11 --- buch/chapters/110-elliptisch/Makefile.inc | 1 + buch/chapters/110-elliptisch/chapter.tex | 1 + buch/chapters/110-elliptisch/uebungsaufgaben/4.tex | 80 ++++++++++++++++++++++ buch/chapters/110-elliptisch/uebungsaufgaben/5.tex | 58 ++++++++++++++++ 4 files changed, 140 insertions(+) create mode 100644 buch/chapters/110-elliptisch/uebungsaufgaben/4.tex create mode 100644 buch/chapters/110-elliptisch/uebungsaufgaben/5.tex (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/Makefile.inc b/buch/chapters/110-elliptisch/Makefile.inc index ef6ea51..4e2644c 100644 --- a/buch/chapters/110-elliptisch/Makefile.inc +++ b/buch/chapters/110-elliptisch/Makefile.inc @@ -15,4 +15,5 @@ CHAPTERFILES += \ 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/chapter.tex b/buch/chapters/110-elliptisch/chapter.tex index d65570b..21fc986 100644 --- a/buch/chapters/110-elliptisch/chapter.tex +++ b/buch/chapters/110-elliptisch/chapter.tex @@ -44,5 +44,6 @@ wieder hergestellt. \uebungsaufgabe{2} \uebungsaufgabe{3} \uebungsaufgabe{4} +\uebungsaufgabe{5} \end{uebungsaufgaben} diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex new file mode 100644 index 0000000..b48192d --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex @@ -0,0 +1,80 @@ +\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} +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. +\end{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} + +\begin{loesung} +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..4a8c15c --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex @@ -0,0 +1,58 @@ +\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 \\ +\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} -- cgit v1.2.1 From 3d742539c034e5b9569722e95395fd5ede33d770 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Mon, 27 Jun 2022 21:19:31 +0200 Subject: some improvements in tables --- buch/chapters/110-elliptisch/ellintegral.tex | 2 ++ buch/chapters/110-elliptisch/uebungsaufgaben/2.tex | 8 ++++-- buch/chapters/110-elliptisch/uebungsaufgaben/4.tex | 33 +++++++++------------- buch/chapters/110-elliptisch/uebungsaufgaben/5.tex | 7 +++-- 4 files changed, 26 insertions(+), 24 deletions(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/ellintegral.tex b/buch/chapters/110-elliptisch/ellintegral.tex index cc99218..27724fd 100644 --- a/buch/chapters/110-elliptisch/ellintegral.tex +++ b/buch/chapters/110-elliptisch/ellintegral.tex @@ -478,6 +478,8 @@ für letztere ebenfalls sehr schnelle numerische Algorithmen liefert 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 diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex index 9a1cafc..dbf184a 100644 --- a/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex @@ -21,13 +21,17 @@ Zeigen Sie, dass $k_n\to 0$ und $k_n'\to 1$ mit quadratischer Konvergenz. \centering \begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} \hline -n & k & k' \\ +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 \\ +4 & 0.000000000000000 & 1.000000000000000% +\mathstrut\text{\vrule height0pt depth6pt width0pt}\\ \hline \end{tabular} \caption{Numerisches Experiment zur Folge $(k_n,k_n')$ diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex index b48192d..8814090 100644 --- a/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex @@ -4,22 +4,6 @@ Verwenden Sie den Algorithmus von Aufgabe~\ref{buch:elliptisch:aufgabe:3}, um dies für $k=\frac12$ nachzurechnen. \begin{loesung} -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. -\end{loesung} - \begin{table} \centering \renewcommand{\tabcolsep}{5pt} @@ -44,8 +28,20 @@ $N=5$ Iterationen konvergiert. Konvergenz der Folge $k_n$ ist bei $N=5$ eintegreten. \label{buch:elliptisch:aufgabe:4:table}} \end{table} - -\begin{loesung} +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 @@ -67,7 +63,6 @@ Dazu verwenden wir die komplexe Darstellung: = 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. diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex index 4a8c15c..fa018ca 100644 --- a/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex @@ -6,9 +6,9 @@ Almkvist und Berndt haben gezeigt \cite{buch:almkvist-berndt}, dass \[ \pi = -\frac{4 M(1,\sqrt{2}/2)^2}{ +\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. @@ -27,7 +27,8 @@ n & a_n & b_n & \pi_n% 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 \\ +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}\\ -- cgit v1.2.1 From 9b417043f748aaa2c5b802c0b4550104d59c5b37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 28 Jun 2022 07:24:55 +0200 Subject: typo --- buch/chapters/110-elliptisch/elltrigo.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/elltrigo.tex b/buch/chapters/110-elliptisch/elltrigo.tex index c67870f..670b1de 100644 --- a/buch/chapters/110-elliptisch/elltrigo.tex +++ b/buch/chapters/110-elliptisch/elltrigo.tex @@ -120,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}. -- cgit v1.2.1 From b751d10130f923c1399a9eca58cfeb62c3a7a0e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 28 Jun 2022 07:27:57 +0200 Subject: cleanup --- buch/chapters/110-elliptisch/ellintegral.tex | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/ellintegral.tex b/buch/chapters/110-elliptisch/ellintegral.tex index 27724fd..6dd1ef6 100644 --- a/buch/chapters/110-elliptisch/ellintegral.tex +++ b/buch/chapters/110-elliptisch/ellintegral.tex @@ -1113,7 +1113,8 @@ fest. % % 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}} +\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*} @@ -1123,11 +1124,12 @@ F(x,k) = \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} -\qquad\text{mit $k=b/a$} +&&\text{mit $k=b/a$} \end{align*} mit dem arithmetisch-geometrischen Mittel berechnet werden. Dazu muss die Substitution -- cgit v1.2.1 From 9fd9ca9c2071b0911f08d434aa0fa722d7037640 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 28 Jun 2022 07:29:32 +0200 Subject: Formulierung --- buch/chapters/110-elliptisch/ellintegral.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/ellintegral.tex b/buch/chapters/110-elliptisch/ellintegral.tex index 6dd1ef6..f509fcb 100644 --- a/buch/chapters/110-elliptisch/ellintegral.tex +++ b/buch/chapters/110-elliptisch/ellintegral.tex @@ -1135,8 +1135,8 @@ 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. -Dazu muss \eqref{buch:elliptisch:agm:subst} nach $x_1=\sin t_1$ -aufgelöst werden. +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 \[ -- cgit v1.2.1 From 971770c50241f483ba0f880dc6fafdd3f91d4983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 28 Jun 2022 07:56:22 +0200 Subject: typos --- buch/chapters/110-elliptisch/ellintegral.tex | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/ellintegral.tex b/buch/chapters/110-elliptisch/ellintegral.tex index f509fcb..25f7083 100644 --- a/buch/chapters/110-elliptisch/ellintegral.tex +++ b/buch/chapters/110-elliptisch/ellintegral.tex @@ -1138,11 +1138,13 @@ 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 +$x=\sin t$ %und $x_1=\sin t_1$ +die quadratische Gleichung \[ -(a-b)x x_1 +(a-b)x x_1^2 - 2ax_1 ++ (a+b)x = 0, -- cgit v1.2.1 From 6c3d3784c6d03fd89450bcf05b60cdf888d23333 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 28 Jun 2022 18:14:35 +0200 Subject: typos --- buch/chapters/110-elliptisch/agm/sn.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/agm/sn.cpp b/buch/chapters/110-elliptisch/agm/sn.cpp index ff2ed17..9e1b047 100644 --- a/buch/chapters/110-elliptisch/agm/sn.cpp +++ b/buch/chapters/110-elliptisch/agm/sn.cpp @@ -1,5 +1,5 @@ /* - * ns.cpp + * sn.cpp * * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule */ -- cgit v1.2.1 From 931871e8c8e9b266b9b626d816a803bbd2c56653 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Fri, 1 Jul 2022 20:55:53 +0200 Subject: more index stuff --- buch/chapters/110-elliptisch/dglsol.tex | 5 +++++ buch/chapters/110-elliptisch/ellintegral.tex | 7 ++++++- buch/chapters/110-elliptisch/elltrigo.tex | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) (limited to 'buch/chapters/110-elliptisch') diff --git a/buch/chapters/110-elliptisch/dglsol.tex b/buch/chapters/110-elliptisch/dglsol.tex index 3709300..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 @@ -383,6 +384,7 @@ n & a_n & b_n & x_n & \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 @@ -394,6 +396,8 @@ 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. @@ -533,6 +537,7 @@ zusammengestellt. % \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 25f7083..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 @@ -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) = @@ -496,6 +497,7 @@ b_0&=b &&\text{und}& b_{n+1} &= \sqrt{a_nb_n} &&\text{geometrisches Mittel} 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. @@ -636,6 +638,7 @@ mit einem Computer-Algebra-System ausführen lässt finden, dass 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 \[ @@ -653,6 +656,7 @@ 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) @@ -719,6 +723,7 @@ 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