diff options
author | HeadAndToes <55713950+HeadAndToes@users.noreply.github.com> | 2022-07-19 16:42:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-19 16:42:27 +0200 |
commit | c4fd6a857d14abdcc91ce84237f542561520d15a (patch) | |
tree | 8465f77faf415379e84bd112e67cc4d27113201d /buch/chapters/110-elliptisch/uebungsaufgaben | |
parent | Korrektur Feedback (diff) | |
parent | makefile fix (diff) | |
download | SeminarSpezielleFunktionen-c4fd6a857d14abdcc91ce84237f542561520d15a.tar.gz SeminarSpezielleFunktionen-c4fd6a857d14abdcc91ce84237f542561520d15a.zip |
Merge branch 'AndreasFMueller:master' into master
Diffstat (limited to 'buch/chapters/110-elliptisch/uebungsaufgaben')
-rw-r--r-- | buch/chapters/110-elliptisch/uebungsaufgaben/1.tex | 1 | ||||
-rw-r--r-- | buch/chapters/110-elliptisch/uebungsaufgaben/2.tex | 65 | ||||
-rw-r--r-- | buch/chapters/110-elliptisch/uebungsaufgaben/3.tex | 135 | ||||
-rw-r--r-- | buch/chapters/110-elliptisch/uebungsaufgaben/4.tex | 75 | ||||
-rw-r--r-- | buch/chapters/110-elliptisch/uebungsaufgaben/5.tex | 59 | ||||
-rw-r--r-- | buch/chapters/110-elliptisch/uebungsaufgaben/landen.m | 60 |
6 files changed, 395 insertions, 0 deletions
diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/1.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/1.tex index 694f18a..af094c6 100644 --- a/buch/chapters/110-elliptisch/uebungsaufgaben/1.tex +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/1.tex @@ -1,3 +1,4 @@ +\label{buch:elliptisch:aufgabe:1} In einem anharmonische Oszillator oszilliert eine Masse $m$ unter dem Einfluss einer Kraft, die nach dem Gesetz \[ diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex new file mode 100644 index 0000000..dbf184a --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/2.tex @@ -0,0 +1,65 @@ +\label{buch:elliptisch:aufgabe:2}% +Die Landen-Transformation basiert auf der Iteration +\begin{equation} +\begin{aligned} +k_{n+1} +&= +\frac{1-k_n'}{1+k_n'} +& +&\text{und}& +k_{n+1}' +&= +\sqrt{1-k_{n+1}^2} +\end{aligned} +\label{buch:elliptisch:aufgabe:2:iteration} +\end{equation} +mit den Startwerten $k_0 = k$ und $k_0' = \sqrt{1-k_0^2}$. +Zeigen Sie, dass $k_n\to 0$ und $k_n'\to 1$ mit quadratischer Konvergenz. + +\begin{loesung} +\begin{table} +\centering +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\hline +n & k & k'% +\mathstrut\text{\vrule height12pt depth6pt width0pt}% +\\ +\hline +\mathstrut\text{\vrule height12pt depth0pt width0pt}% +0 & 0.200000000000000 & 0.979795897113271 \\ +1 & 0.010205144336438 & 0.999947926158694 \\ +2 & 0.000026037598592 & 0.999999999661022 \\ +3 & 0.000000000169489 & 1.000000000000000 \\ +4 & 0.000000000000000 & 1.000000000000000% +\mathstrut\text{\vrule height0pt depth6pt width0pt}\\ +\hline +\end{tabular} +\caption{Numerisches Experiment zur Folge $(k_n,k_n')$ +gemäss \eqref{buch:elliptisch:aufgabe:2:iteration} +mit $k_0=0.2$ +\label{buch:ellptisch:aufgabe:2:numerisch}} +\end{table} +Es ist klar, dass $k'_n\to 1$ folgt, wenn man zeigen kann, dass +$k_n\to 0$ gilt. +Wir berechnen daher +\begin{align*} +k_{n+1} +&= +\frac{1-k_n'}{1+k_n'} += +\frac{1-\sqrt{1-k_n^2}}{1+\sqrt{1-k_n^2}} +\intertext{und erweitern mit dem Nenner $1+\sqrt{1-k_n^2}$ um} +&= +\frac{1-(1-k_n^2)}{(1+\sqrt{1-k_n^2})^2} += +\frac{ k_n^2 }{(1+\sqrt{1-k_n^2})^2} +\le +k_n^2 +\end{align*} +zu erhalten. +Daraus folgt jetzt sofort die quadratische Konvergenz von $k_n$ gegen $0$. + +Ein einfaches numerisches Experiment (siehe +Tabelle~\ref{buch:ellptisch:aufgabe:2:numerisch}) +bestätigt die quadratische Konvergenz der Folgen. +\end{loesung} diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/3.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/3.tex new file mode 100644 index 0000000..a5d118f --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/3.tex @@ -0,0 +1,135 @@ +\label{buch:elliptisch:aufgabe:3}% +Aus der in Aufgabe~\ref{buch:elliptisch:aufgabe:2} konstruierten Folge +$k_n$ kann zu einem vorgegebenen $u$ ausserdem die Folge $u_n$ +mit der Rekursionsformel +\[ +u_{n+1} = \frac{u_n}{1+k_{n+1}} +\] +und Anfangswert $u_0=u$ konstruiert werden. +Die Landen-Transformation (siehe \cite[80]{buch:ellfun-applications}) +\index{Landen-Transformation}% +führt auf die folgenden Formeln für die Jacobischen elliptischen Funktionen: +\begin{equation} +\left.\qquad +\begin{aligned} +\operatorname{sn}(u_n,k_n) +&= +\frac{ +(1+k_{n+1})\operatorname{sn}(u_{n+1},k_{n+1}) +}{ +1 + k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2 +} +\\ +\operatorname{cn}(u_n,k_n) +&= +\frac{ +\operatorname{cn}(u_{n+1},k_{n+1}) +\operatorname{dn}(u_{n+1},k_{n+1}) +}{ +1 + k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2 +} +\\ +\operatorname{dn}(u_n,k_n) +&= +\frac{ +1 - k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2 +}{ +1 + k_{n+1} \operatorname{sn}(u_{n+1},k_{n+1})^2 +} +\end{aligned} +\qquad\right\} +\label{buch:elliptisch:aufgabe:3:gauss} +\end{equation} +Die Transformationsformeln +\eqref{buch:elliptisch:aufgabe:3:gauss} +sind auch als Gauss-Transformation bekannt. +\index{Gauss-Transformation}% +Konstruieren Sie daraus einen numerischen Algorithmus, mit dem sich +gleichzeitig die Werte aller drei Jacobischen elliptischen Funktionen +für vorgegebene Parameterwerte $u$ und $k$ berechnen lassen. + +\begin{loesung} +In der ersten Phase des Algorithmus werden die Folgen $k_n$ und $k_n'$ +sowie $u_n$ bis zum Folgenindex $N$ berechnet, bis $k_N\approx 0$ +angenommen werden darf. +Dann gilt +\begin{align*} +\operatorname{sn}(u_N, k_N) &= \operatorname{sn}(u_N,0) = \sin u_N +\\ +\operatorname{cn}(u_N, k_N) &= \operatorname{cn}(u_N,0) = \cos u_N +\\ +\operatorname{dn}(u_N, k_N) &= \operatorname{dn}(u_N,0) = 1. +\end{align*} +In der zweiten Phase des Algorithmus können für absteigende +$n$ jeweils die Formeln~\eqref{buch:elliptisch:aufgabe:3:gauss} +angewendet werden um nacheinander die Werte der Jacobischen +elliptischen Funktionen für Argument $u_n$ und Parameter $k_n$ +für $n=N-1,N-2,\dots,0$ zu bekommen. +\end{loesung} +\begin{table} +\centering +\begin{tikzpicture}[>=latex,thick] +\def\pfeil#1#2{ + \fill[color=#1!30] (-0.5,1) -- (-0.5,-1) -- (-0.8,-1) + -- (0,-1.5) -- (0.8,-1) -- (0.5,-1) -- (0.5,1) -- cycle; + \node[color=white] at (0,-0.2) [scale=5] {\sf #2\strut}; +} +\begin{scope}[xshift=-4.9cm,yshift=0.2cm] +\pfeil{red}{1} +\end{scope} + +\begin{scope}[xshift=-2.3cm,yshift=0.2cm] +\pfeil{red}{1} +\end{scope} + +\begin{scope}[xshift=0.35cm,yshift=-0.3cm,yscale=-1] +\pfeil{blue}{2} +\end{scope} + +\begin{scope}[xshift=2.92cm,yshift=-0.3cm,yscale=-1] +\pfeil{blue}{2} +\end{scope} + +\begin{scope}[xshift=5.60cm,yshift=-0.3cm,yscale=-1] +\pfeil{blue}{2} +\end{scope} + +\node at (0,0) { +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\hline +n & k_n & u_n & \operatorname{sn}(u_n,k_n) & \operatorname{cn}(u_n,k_n) & \operatorname{dn}(u_n,k_n)% +\mathstrut\text{\vrule height12pt depth6pt width0pt} \\ +\hline +\mathstrut\text{\vrule height12pt depth0pt width0pt}% +%\small +0 & 0.90000000000 & 0.60000000000 & 0.54228232286 & 0.84019633556 & 0.87281338478 \\ +1 & 0.39286445838 & 0.43076696830 & 0.41576897816 & 0.90947026163 & 0.98656969610 \\ +2 & 0.04188568608 & 0.41344935827 & 0.40175214109 & 0.91574844642 & 0.99985840483 \\ +3 & 0.00043898784 & 0.41326793867 & 0.40160428679 & 0.91581329801 & 0.99999998445 \\ +4 & 0.00000004817 & 0.41326791876 & 0.40160427056 & 0.91581330513 & 1.00000000000 \\ +5 & 0.00000000000 & 0.41326791876 & 0.40160427056 & 0.91581330513 & 1.00000000000 \\ +%N & 0.00000000000 & 0.41326791876 & 0.40160427056 & 0.91581330513 & 1.00000000000% +N & & 0.41326791876 & \sin u_N & \cos u_N & 1% +%0 & 0.900000000000000 & 0.600000000000000 & 0.542282322869158 & 0.840196335569032 & 0.872813384788490 \\ +%1 & 0.392864458385019 & 0.430766968306220 & 0.415768978168966 & 0.909470261631645 & 0.986569696107075 \\ +%2 & 0.041885686080039 & 0.413449358275499 & 0.401752141098324 & 0.915748446421239 & 0.999858404836479 \\ +%3 & 0.000438987841605 & 0.413267938675096 & 0.401604286793186 & 0.915813298019491 & 0.999999984459261 \\ +%4 & 0.000000048177586 & 0.413267918764845 & 0.401604270565476 & 0.915813305135699 & 1.000000000000000 \\ +%5 & 0.000000000000001 & 0.413267918764845 & 0.401604270565476 & 0.915813305135699 & 1.000000000000000 \\ +%N & 0.000000000000000 & 0.413267918764845 & 0.401604270565476 & 0.915813305135699 & 1.000000000000000 \\ +\mathstrut\text{\vrule height12pt depth6pt width0pt} \\ +\hline +\end{tabular} +}; +\end{tikzpicture} +\caption{Durchführung des auf der Landen-Transformation basierenden +Algorithmus zur Berechnung der Jacobischen elliptischen Funktionen +für $u=0.6$ und $k=0.9$. +Die erste Phase (rot) berechnet die Folgen $k_n$ und $u_n$, die zweite +(blau) +transformiert die Wert der trigonometrischen Funktionen in die Werte +der Jacobischen elliptischen Funktionen. +\label{buch:elliptisch:aufgabe:3:resultate}} +\end{table} + + diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex new file mode 100644 index 0000000..8814090 --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/4.tex @@ -0,0 +1,75 @@ +\label{buch:elliptisch:aufgabe:4} +Es ist bekannt, dass $\operatorname{sn}(K+iK', k) = 1/k$ gilt. +Verwenden Sie den Algorithmus von Aufgabe~\ref{buch:elliptisch:aufgabe:3}, +um dies für $k=\frac12$ nachzurechnen. + +\begin{loesung} +\begin{table} +\centering +\renewcommand{\tabcolsep}{5pt} +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\hline + n & k_n & u_n & \operatorname{sn}(u_n,k_n)% +\mathstrut\text{\vrule height12pt depth6pt width0pt}% +\\ +\hline +\mathstrut\text{\vrule height12pt depth0pt width0pt}% + 0 & 0.500000000000000 & 1.685750354812596 + 2.156515647499643i & 2.000000000000000 \\ + 1 & 0.071796769724491 & 1.572826493259468 + 2.012056490946491i & 3.732050807568877 \\ + 2 & 0.001292026239995 & 1.570796982340579 + 2.009460215619685i & 3.796651109009551 \\ + 3 & 0.000000417333300 & 1.570796326794965 + 2.009459377005374i & 3.796672364209438 \\ + 4 & 0.000000000000044 & 1.570796326794897 + 2.009459377005286i & 3.796672364211658 \\ + N & 0.000000000000000 & 1.570796326794897 + 2.009459377005286i & 3.796672364211658% +\mathstrut\text{\vrule height12pt depth6pt width0pt}% +\\ +\hline +\end{tabular} +\caption{Berechnung von $\operatorname{sn}(K+iK',k)=1/k$ mit Hilfe der Landen-Transformation. +Konvergenz der Folge $k_n$ ist bei $N=5$ eintegreten. +\label{buch:elliptisch:aufgabe:4:table}} +\end{table} +Zunächst müssen wir mit dem Algorithmus des arithmetisch-geometrischen +Mittels +\[ +K(k) +\approx +1.685750354812596 +\qquad\text{und}\qquad +K(k') +\approx +2.156515647499643 +\] +berechnen. +Aus $k=\frac12$ kann man jetzt die Folgen $k_n$ und $u_n$ berechnen, die innert +$N=5$ Iterationen konvergiert. +Sie führt auf +\[ +u_N += +\frac{\pi}2 + 2.009459377005286i += +\frac{\pi}2 + bi. +\] +Jetzt muss der Sinus von $u_N$ berechnet werden. +Dazu verwenden wir die komplexe Darstellung: +\[ +\sin u_N += +\frac{e^{i\frac{\pi}2-b} - e^{-i\frac{\pi}2+b}}{2i} += +\frac{ie^{-b}+ie^{b}}{2i} += +\cosh b += +3.796672364211658. +\] +Da der Wert $\operatorname{sn}(u_N,k_N) = \sin u_N$ reell ist, wird auch +die daraus wie in Aufgabe~\ref{buch:elliptisch:aufgabe:3} +konstruierte Folge $\operatorname{sn}(u_n,k_n)$ reell sein. +Die Werte von $\operatorname{cn}(u_n,k_n)$ und $\operatorname{dn}(u_n,k_n)$ +werden für die Iterationsformeln~\eqref{buch:elliptisch:aufgabe:3:gauss} +für $\operatorname{sn}(u_n,k_n)$ nicht benötigt. +Die Berechnung ist in Tabelle~\ref{buch:elliptisch:aufgabe:4:table} +zusammengefasst. +Man liest ab, dass $\operatorname{sn}(K+iK',k)=2 = 1/k$, wie erwartet. +\end{loesung} diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex b/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex new file mode 100644 index 0000000..fa018ca --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/5.tex @@ -0,0 +1,59 @@ +\label{buch:elliptisch:aufgabe:5} +Die sehr schnelle Konvergenz des arithmetisch-geometrische Mittels +kann auch dazu ausgenutzt werden, eine grosse Zahl von Stellen der +Kreiszahl $\pi$ zu berechnen. +Almkvist und Berndt haben gezeigt \cite{buch:almkvist-berndt}, dass +\[ +\pi += +\frac{4 M(1,\!\sqrt{2}/2)^2}{ +\displaystyle 1-\sum_{n=1}^\infty 2^{n+1}(a_n^2-b_n^2) +}. +\] +Verwenden Sie diese Formel, um Approximationen von $\pi$ zu berechnen. + +\begin{loesung} +\begin{table} +\centering +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} +\hline +n & a_n & b_n & \pi_n% +\mathstrut\text{\vrule height12pt depth6pt width0pt}\\ +\hline +\mathstrut\text{\vrule height12pt depth0pt width0pt}% +0 & 1.000000000000000 & 0.707106781186548 & +\mathstrut\text{\vrule height12pt depth0pt width0pt}\\ +1 & 0.853553390593274 & 0.840896415253715 & 3.\underline{1}87672642712106 \\ +2 & 0.847224902923494 & 0.847201266746892 & 3.\underline{141}680293297648 \\ +3 & 0.847213084835193 & 0.847213084752765 & 3.\underline{141592653}895451 \\ +4 & 0.847213084793979 & 0.847213084793979 & 3.\underline{141592653589}822 \\ +5 & 0.847213084793979 & 0.847213084793979 & 3.\underline{141592653589}871% +\mathstrut\text{\vrule height0pt depth6pt width0pt}\\ +\hline +\infty & & & 3.141592653589793% +\mathstrut\text{\vrule height12pt depth6pt width0pt}\\ +\hline +\end{tabular} +\caption{Approximationen der Kreiszahl $\pi$ mit Hilfe des Algorithmus +des arithmetisch-geometrischen Mittels. +In nur 4 Schritten werden 12 Stellen Genauigkeit erreicht. +\label{buch:elliptisch:aufgabe:5:table}} +\end{table} +Wir schreiben +\[ +\pi_n += +\frac{4 a_k^2}{ +\displaystyle +1-\sum_{k=1}^\infty 2^{k+1}(a_k^2-b_k^2) +} +\] +für die Approximationen von $\pi$, +wobei $a_k$ und $b_k$ die Folgen der arithmetischen und geometrischen +Mittel von $1$ und $\!\sqrt{2}/2$ sind. +Die Tabelle~\ref{buch:elliptisch:aufgabe:5:table} zeigt die Resultat. +In nur 4 Schritten können 12 Stellen Genauigkeit erreicht werden, +dann beginnen jedoch bereits Rundungsfehler das Resultat zu beinträchtigen. +Für die Berechnung einer grösseren Zahl von Stellen muss daher mit +grösserer Präzision gerechnet werden. +\end{loesung} diff --git a/buch/chapters/110-elliptisch/uebungsaufgaben/landen.m b/buch/chapters/110-elliptisch/uebungsaufgaben/landen.m new file mode 100644 index 0000000..bba5549 --- /dev/null +++ b/buch/chapters/110-elliptisch/uebungsaufgaben/landen.m @@ -0,0 +1,60 @@ +# +# landen.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +N = 10; + +function retval = M(a,b) + for i = (1:10) + A = (a+b)/2; + b = sqrt(a*b); + a = A; + endfor + retval = a; +endfunction; + +function retval = EllipticKk(k) + retval = pi / (2 * M(1, sqrt(1-k^2))); +endfunction + +k = 0.5; +kprime = sqrt(1-k^2); + +EK = EllipticKk(k); +EKprime = EllipticKk(kprime); + +u = EK + EKprime * i; + +K = zeros(N,3); +K(1,1) = k; +K(1,2) = kprime; +K(1,3) = u; + +format long + +for n = (2:N) + K(n,1) = (1-K(n-1,2)) / (1+K(n-1,2)); + K(n,2) = sqrt(1-K(n,1)^2); + K(n,3) = K(n-1,3) / (1 + K(n,1)); +end + +K(:,[1,3]) + +pi / 2 + +scd = zeros(N,3); +scd(N,1) = sin(K(N,3)); +scd(N,2) = cos(K(N,3)); +scd(N,3) = 1; + +for n = (N:-1:2) + nenner = 1 + K(n,1) * scd(n, 1)^2; + scd(n-1,1) = (1+K(n,1)) * scd(n, 1) / nenner; + scd(n-1,2) = scd(n, 2) * scd(n, 3) / nenner; + scd(n-1,3) = (1 - K(n,1) * scd(n,1)^2) / nenner; +end + +scd(:,1) + +cosh(2.009459377005286) |