diff options
Diffstat (limited to 'buch/papers')
126 files changed, 7093 insertions, 2445 deletions
diff --git a/buch/papers/0f1/images/konvergenzNegativ.pdf b/buch/papers/0f1/images/konvergenzNegativ.pdf Binary files differindex 03b2ba1..07d2a44 100644 --- a/buch/papers/0f1/images/konvergenzNegativ.pdf +++ b/buch/papers/0f1/images/konvergenzNegativ.pdf diff --git a/buch/papers/0f1/images/konvergenzPositiv.pdf b/buch/papers/0f1/images/konvergenzPositiv.pdf Binary files differindex 2e45129..8e1e7e4 100644 --- a/buch/papers/0f1/images/konvergenzPositiv.pdf +++ b/buch/papers/0f1/images/konvergenzPositiv.pdf diff --git a/buch/papers/0f1/listings/kettenbruchIterativ.c b/buch/papers/0f1/listings/kettenbruchIterativ.c index d897b8f..3caaf43 100644 --- a/buch/papers/0f1/listings/kettenbruchIterativ.c +++ b/buch/papers/0f1/listings/kettenbruchIterativ.c @@ -1,53 +1,27 @@ /**
- * @brief Calculates the Hypergeometric Function 0F1(;b;z)
- * @param b0 in 0F1(;b0;z)
- * @param z in 0F1(;b0;z)
- * @param n number of itertions (precision)
+ * @brief Calculates the Hypergeometric Function 0F1(;c;z)
+ * @param c in 0F1(;c;z)
+ * @param z in 0F1(;c;z)
+ * @param k number of itertions (precision)
* @return Result
*/
-static double fractionRekursion0f1(const double c, const double z, unsigned int n)
+static double fractionIter0f1(const double c, const double z, unsigned int k)
{
//declaration
double a = 0.0;
double b = 0.0;
- double Ak = 0.0;
- double Bk = 0.0;
- double Ak_1 = 0.0;
- double Bk_1 = 0.0;
- double Ak_2 = 0.0;
- double Bk_2 = 0.0;
+ double abk = 0.0;
+ double temp = 0.0;
- for (unsigned int k = 0; k <= n; ++k)
+ for (; k > 0; --k)
{
- if (k == 0)
- {
- a = 1.0; //a0
- //recursion fomula for A0, B0
- Ak = a;
- Bk = 1.0;
- }
- else if (k == 1)
- {
- a = 1.0; //a1
- b = z/c; //b1
- //recursion fomula for A1, B1
- Ak = a * Ak_1 + b * 1.0;
- Bk = a * Bk_1;
- }
- else
- {
- a = 1 + (z / (k * ((k - 1) + c)));//ak
- b = -(z / (k * ((k - 1) + c))); //bk
- //recursion fomula for Ak, Bk
- Ak = a * Ak_1 + b * Ak_2;
- Bk = a * Bk_1 + b * Bk_2;
- }
- //save old values
- Ak_2 = Ak_1;
- Bk_2 = Bk_1;
- Ak_1 = Ak;
- Bk_1 = Bk;
+ abk = z / (k * ((k - 1) + c)); //abk = ak, bk
+
+ a = k > 1 ? (1 + abk) : 1; //a0, a1
+ b = k > 1 ? -abk : abk; //b1
+
+ temp = b / (a + temp); //bk / (ak + last result)
}
- //approximation fraction
- return Ak/Bk;
-}
+
+ return a + temp; //a0 + temp
+}
\ No newline at end of file diff --git a/buch/papers/0f1/listings/kettenbruchRekursion.c b/buch/papers/0f1/listings/kettenbruchRekursion.c index 3caaf43..d897b8f 100644 --- a/buch/papers/0f1/listings/kettenbruchRekursion.c +++ b/buch/papers/0f1/listings/kettenbruchRekursion.c @@ -1,27 +1,53 @@ /**
- * @brief Calculates the Hypergeometric Function 0F1(;c;z)
- * @param c in 0F1(;c;z)
- * @param z in 0F1(;c;z)
- * @param k number of itertions (precision)
+ * @brief Calculates the Hypergeometric Function 0F1(;b;z)
+ * @param b0 in 0F1(;b0;z)
+ * @param z in 0F1(;b0;z)
+ * @param n number of itertions (precision)
* @return Result
*/
-static double fractionIter0f1(const double c, const double z, unsigned int k)
+static double fractionRekursion0f1(const double c, const double z, unsigned int n)
{
//declaration
double a = 0.0;
double b = 0.0;
- double abk = 0.0;
- double temp = 0.0;
+ double Ak = 0.0;
+ double Bk = 0.0;
+ double Ak_1 = 0.0;
+ double Bk_1 = 0.0;
+ double Ak_2 = 0.0;
+ double Bk_2 = 0.0;
- for (; k > 0; --k)
+ for (unsigned int k = 0; k <= n; ++k)
{
- abk = z / (k * ((k - 1) + c)); //abk = ak, bk
-
- a = k > 1 ? (1 + abk) : 1; //a0, a1
- b = k > 1 ? -abk : abk; //b1
-
- temp = b / (a + temp); //bk / (ak + last result)
+ if (k == 0)
+ {
+ a = 1.0; //a0
+ //recursion fomula for A0, B0
+ Ak = a;
+ Bk = 1.0;
+ }
+ else if (k == 1)
+ {
+ a = 1.0; //a1
+ b = z/c; //b1
+ //recursion fomula for A1, B1
+ Ak = a * Ak_1 + b * 1.0;
+ Bk = a * Bk_1;
+ }
+ else
+ {
+ a = 1 + (z / (k * ((k - 1) + c)));//ak
+ b = -(z / (k * ((k - 1) + c))); //bk
+ //recursion fomula for Ak, Bk
+ Ak = a * Ak_1 + b * Ak_2;
+ Bk = a * Bk_1 + b * Bk_2;
+ }
+ //save old values
+ Ak_2 = Ak_1;
+ Bk_2 = Bk_1;
+ Ak_1 = Ak;
+ Bk_1 = Bk;
}
-
- return a + temp; //a0 + temp
-}
\ No newline at end of file + //approximation fraction
+ return Ak/Bk;
+}
diff --git a/buch/papers/0f1/teil0.tex b/buch/papers/0f1/teil0.tex index adccac7..335cf92 100644 --- a/buch/papers/0f1/teil0.tex +++ b/buch/papers/0f1/teil0.tex @@ -5,11 +5,11 @@ %
\section{Ausgangslage\label{0f1:section:ausgangslage}}
\rhead{Ausgangslage}
-Die Hypergeometrische Funktion $\mathstrut_0F_1$ wird in vielen Funktionen als Basisfunktion benutzt,
-zum Beispiel um die Airy Funktion zu berechnen.
+Die hypergeometrische Funktion $\mathstrut_0F_1$ wird in vielen Funktionen als Basisfunktion benutzt,
+zum Beispiel um die Airy-Funktion zu berechnen.
In der GNU Scientific Library \cite{0f1:library-gsl}
ist die Funktion $\mathstrut_0F_1$ vorhanden.
-Allerdings wirft die Funktion, bei negativen Übergabenwerten wie zum Beispiel \verb+gsl_sf_hyperg_0F1(1, -1)+, eine Exception.
+Allerdings wirft die Funktion bei negativen Übergabewerten wie zum Beispiel \verb+gsl_sf_hyperg_0F1(1, -1)+ eine Exception.
Bei genauerer Untersuchung hat sich gezeigt, dass die Funktion je nach Betriebssystem funktioniert oder eben nicht.
So kann die Funktion unter Windows fehlerfrei aufgerufen werden, beim Mac OS und Linux sind negative Übergabeparameter im Moment nicht möglich.
-Ziel dieser Arbeit war es zu evaluieren, ob es mit einfachen mathematischen Operationen möglich ist, die Hypergeometrische Funktion $\mathstrut_0F_1$ zu implementieren.
+Ziel dieser Arbeit war es zu evaluieren, ob es mit einfachen mathematischen Operationen möglich ist, die hypergeometrische Funktion $\mathstrut_0F_1$ zu implementieren.
diff --git a/buch/papers/0f1/teil1.tex b/buch/papers/0f1/teil1.tex index f697f45..8d00f95 100644 --- a/buch/papers/0f1/teil1.tex +++ b/buch/papers/0f1/teil1.tex @@ -6,12 +6,11 @@ \section{Mathematischer Hintergrund
\label{0f1:section:mathHintergrund}}
\rhead{Mathematischer Hintergrund}
-Basierend auf den Herleitungen des vorhergehenden Abschnittes \ref{buch:rekursion:section:hypergeometrische-funktion}, werden im nachfolgenden Abschnitt nochmals die Resultate
-beschrieben.
+Basierend auf den Herleitungen des Abschnittes \ref{buch:rekursion:section:hypergeometrische-funktion} werden im nachfolgenden Abschnitt nochmals die Resultate beschrieben.
\subsection{Hypergeometrische Funktion
\label{0f1:subsection:hypergeometrisch}}
-Als Grundlage der umgesetzten Algorithmen dient die hypergeometrische Funktion $\mathstrut_0F_1$. Diese ist eine Anwendung der allgemein definierten Funktion $\mathstrut_pF_q$.
+Als Grundlage der umgesetzten Algorithmen dient die hypergeometrische Funktion $\mathstrut_0F_1$. Diese ist ein Speziallfall der allgemein definierten Funktion $\mathstrut_pF_q$.
\begin{definition}
\label{0f1:math:qFp:def}
@@ -42,7 +41,8 @@ Angewendet auf die Funktion $\mathstrut_pF_q$ ergibt sich für $\mathstrut_0F_1$ \mathstrut_0F_1
\biggl(
\begin{matrix}
- \\-
+ \text{---}
+ \\\
b_1
\end{matrix}
;
@@ -58,9 +58,9 @@ Angewendet auf die Funktion $\mathstrut_pF_q$ ergibt sich für $\mathstrut_0F_1$ -\subsection{Airy Funktion
+\subsection{Airy-Funktion
\label{0f1:subsection:airy}}
-Die Funktion Ai(x) und die verwandte Funktion Bi(x) werden als Airy-Funktion bezeichnet. Sie werden zur Lösung verschiedener physikalischer Probleme benutzt, wie zum Beispiel zur Lösung der Schrödinger-Gleichung \cite{0f1:wiki-airyFunktion}.
+Die Funktion $\operatorname{Ai}(x)$ und die verwandte Funktion $\operatorname{Bi}(x)$ werden als Airy-Funktion bezeichnet. Sie werden zur Lösung verschiedener physikalischer Probleme benutzt, wie zum Beispiel zur Lösung der Schrödinger-Gleichung \cite{0f1:wiki-airyFunktion}.
\begin{definition}
\label{0f1:airy:differentialgleichung:def}
@@ -69,12 +69,12 @@ Die Funktion Ai(x) und die verwandte Funktion Bi(x) werden als Airy-Funktion bez heisst die {\em Airy-Differentialgleichung}.
\end{definition}
-Die Airy Funktion lässt sich auf verschiedene Arten darstellen.
-Als hypergeometrische Funktion berechnet, ergibt sich wie in Abschnitt \ref{buch:differentialgleichungen:section:hypergeometrisch} hergeleitet, folgende Lösungen der Airy-Differentialgleichung zu den Anfangsbedingungen $Ai(0)=1$ und $Ai'(0)=0$, sowie $Bi(0)=0$ und $Bi'(0)=0$.
+Die Airy-Funktion lässt sich auf verschiedene Arten darstellen.
+Als hypergeometrische Funktion berechnet, ergeben sich wie in Abschnitt \ref{buch:differentialgleichungen:section:hypergeometrisch} hergeleitet, folgende Lösungen der Airy-Differentialgleichung zu den Anfangsbedingungen $\operatorname{Ai}(0)=1$ und $\operatorname{Ai}'(0)=0$, sowie $\operatorname{Bi}(0)=0$ und $\operatorname{Bi}'(0)=1$:
\begin{align}
\label{0f1:airy:hypergeometrisch:eq}
-Ai(x)
+\operatorname{Ai}(x)
=&
\sum_{k=0}^\infty
\frac{1}{(\frac23)_k} \frac{1}{k!}\biggl(\frac{x^3}{9}\biggr)^k
@@ -83,7 +83,7 @@ Ai(x) \begin{matrix}\text{---}\\\frac23\end{matrix};\frac{x^3}{9}
\biggr).
\\
-Bi(x)
+\operatorname{Bi}(x)
=&
\sum_{k=0}^\infty
\frac{1}{(\frac43)_k} \frac{1}{k!}\biggl(\frac{x^3}{9}\biggr)^k
@@ -95,7 +95,6 @@ x\cdot\mathstrut_0F_1\biggl( \qedhere
\end{align}
-Um die Stabilität der Algorithmen zu $\mathstrut_0F_1$ zu überprüfen, wird in diesem speziellem Fall die Airy Funktion $Ai(x)$ \eqref{0f1:airy:hypergeometrisch:eq}
-benutzt.
+Um die Stabilität der Algorithmen zu $\mathstrut_0F_1$ zu überprüfen, wird in dieser Arbeit die Airy Funktion $\operatorname{Ai}(x)$ benutzt.
diff --git a/buch/papers/0f1/teil2.tex b/buch/papers/0f1/teil2.tex index 15a1c44..fdcb0fc 100644 --- a/buch/papers/0f1/teil2.tex +++ b/buch/papers/0f1/teil2.tex @@ -6,12 +6,12 @@ \section{Umsetzung
\label{0f1:section:teil2}}
\rhead{Umsetzung}
-Zur Umsetzung wurden drei verschiedene Ansätze gewählt \cite{0f1:code}. Dabei wurde der Schwerpunkt auf die Funktionalität und eine gute Lesbarkeit des Codes gelegt.
+Zur Umsetzung wurden drei verschiedene Ansätze gewählt, die in vollständiger Form auf Github \cite{0f1:code} zu finden sind. Dabei wurde der Schwerpunkt auf die Funktionalität und eine gute Lesbarkeit des Codes gelegt.
Die Unterprogramme wurde jeweils, wie die GNU Scientific Library, in C geschrieben. Die Zwischenresultate wurden vom Hauptprogramm in einem CSV-File gespeichert. Anschliessen wurde mit der Matplot-Library in Python die Resultate geplottet.
\subsection{Potenzreihe
\label{0f1:subsection:potenzreihe}}
-Die naheliegendste Lösung ist die Programmierung der Potenzreihe. Allerdings ist ein Problem dieser Umsetzung \ref{0f1:listing:potenzreihe}, dass die Fakultät im Nenner schnell grosse Werte annimmt und so der Bruch gegen Null strebt. Spätesten ab $k=167$ stösst diese Umsetzung \eqref{0f1:umsetzung:0f1:eq} an ihre Grenzen, da die Fakultät von $168$ eine Bereichsüberschreitung des \textit{double} Bereiches darstellt \cite{0f1:double}.
+Die naheliegendste Lösung ist die Programmierung der Potenzreihe
\begin{align}
\label{0f1:umsetzung:0f1:eq}
@@ -23,40 +23,84 @@ Die naheliegendste Lösung ist die Programmierung der Potenzreihe. Allerdings is \frac{1}{c}
+\frac{z^1}{(c+1) \cdot 1}
+ \cdots
- + \frac{z^{20}}{c(c+1)(c+2)\cdots(c+19) \cdot 2.4 \cdot 10^{18}}
+ + \frac{z^{20}}{c(c+1)(c+2)\cdots(c+19) \cdot 2.4 \cdot 10^{18}}.
\end{align}
\lstinputlisting[style=C,float,caption={Potenzreihe.},label={0f1:listing:potenzreihe}, firstline=59]{papers/0f1/listings/potenzreihe.c}
\subsection{Kettenbruch
\label{0f1:subsection:kettenbruch}}
-Ein endlicher Kettenbruch ist ein Bruch der Form
+Eine weitere Variante zur Berechnung von $\mathstrut_0F_1(;c;z)$ ist die Umsetzung als Kettenbruch.
+Der Vorteil einer Umsetzung als Kettenbruch gegenüber der Potenzreihe ist die schnellere Konvergenz.
+
+\subsubsection{Grundlage}
+Ein endlicher Kettenbruch \cite{0f1:wiki-kettenbruch} ist ein Bruch der Form
\begin{equation*}
-a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{b_3}{a_3+\cdots}}}
+a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{b_3}{a_3+\cdots}}},
\end{equation*}
in welchem $a_0, a_1,\dots,a_n$ und $b_1,b_2,\dots,b_n$ ganze Zahlen sind.
-Die Kurzschreibweise für einen allgemeinen Kettenbruch ist
+
+\subsubsection{Rekursionsbeziehungen und Kettenbrüche}
+Wenn es eine Relation analytischer Funktion $f_i(z)$ hat, dann gibt es einen Kettenbruch für das Verhältnis $\frac{f_i(z)}{f_{i-1}(z)}$ \cite{0f1:wiki-fraction}.
+Nimmt man die Gleichung
+\begin{equation*}
+ f_{i-1} - f_i = k_i z f_{i+1},
+\end{equation*}
+wo $f_i$ analytische Funktionen sind und $i > 0$ ist, sowie $k_i$ konstant.
+Ergibt sich der Zusammenhang
+\begin{equation*}
+ \cfrac{f_i}{f_{i-1}} = \cfrac{1}{1+k_iz\cfrac{f_{i+1}}{f_i}}.
+\end{equation*}
+Geht man einen Schritt weiter und nimmt für $g_i = \frac{f_i}{f_{i-1}}$ an, kommt man zur Formel
\begin{equation*}
- a_0 + \frac{a_1|}{|b_1} + \frac{a_2|}{|b_2} + \frac{a_3|}{|b_3} + \cdots
+ g_i = \cfrac{1}{1+k_izg_{i+1}}.
\end{equation*}
-\cite{0f1:wiki-kettenbruch}.
-Angewendet auf die Funktion $\mathstrut_0F_1$ bedeutet dies \cite{0f1:wiki-fraction}:
+Setzt man dies nun für $g_1$ in den Bruch ein, ergibt sich
\begin{equation*}
+ g_1 = \cfrac{f_1}{f_0} = \cfrac{1}{1+k_izg_2} = \cfrac{1}{1+\cfrac{k_1z}{1+k_2zg_3}} = \cdots
+\end{equation*}
+Repetiert man dies unendlich, erhält man einen Kettenbruch in der Form:
+\begin{equation}
+ \label{0f1:math:rekursion:eq}
+ \cfrac{f_1}{f_0} = \cfrac{1}{1+\cfrac{k_1z}{1+\cfrac{k_2z}{1+\cfrac{k_3z}{\cdots}}}}.
+\end{equation}
+
+\subsubsection{Rekursion für $\mathstrut_0F_1$}
+Angewendet auf die Potenzreihe
+\begin{equation}
+ \label{0f1:math:potenzreihe:0f1:eq}
\mathstrut_0F_1(;c;z) = 1 + \frac{z}{c\cdot1!} + \frac{z^2}{c(c+1)\cdot2!} + \frac{z^3}{c(c+1)(c+2)\cdot3!} + \cdots
+\end{equation}
+kann durch Substitution bewiesen werden, dass
+\begin{equation*}
+ \mathstrut_0F_1(;c-1;z) - \mathstrut_0F_1(;c;z) = \frac{z}{c(c-1)} \cdot \mathstrut_0F_1(;c+1;z)
+\end{equation*}
+eine Relation dazu ist.
+Wenn man für $f_i$ und $k_i$ die Annahme
+\begin{align*}
+ f_i =& \mathstrut_0F_1(;c+i;z)\\
+ k_i =& \frac{1}{(c+i)(c+i-1)}
+\end{align*}
+trifft und in die Formel \eqref{0f1:math:rekursion:eq} einsetzt, erhält man:
+\begin{equation*}
+ \cfrac{\mathstrut_0F_1(;c+1;z)}{\mathstrut_0F_1(;c;z)} = \cfrac{1}{1+\cfrac{\cfrac{z}{c(c+1)}}{1+\cfrac{\cfrac{z}{(c+1)(c+2)}}{1+\cfrac{\cfrac{z}{(c+2)(c+3)}}{\cdots}}}}.
\end{equation*}
-Umgeformt ergibt sich folgender Kettenbruch
+
+\subsubsection{Algorithmus}
+Da mit obigen Formeln nur ein Verhältnis zwischen $ \frac{\mathstrut_0F_1(;c+1;z)}{\mathstrut_0F_1(;c;z)}$ berechnet wurde, braucht es weitere Relationen um $\mathstrut_0F_1(;c;z)$ zu erhalten.
+So ergeben ähnliche Relationen nach Wolfram Alpha \cite{0f1:wolfram-0f1} den Kettenbruch
\begin{equation}
\label{0f1:math:kettenbruch:0f1:eq}
\mathstrut_0F_1(;c;z) = 1 + \cfrac{\cfrac{z}{c}}{1+\cfrac{-\cfrac{z}{2(c+1)}}{1+\cfrac{z}{2(c+1)}+\cfrac{-\cfrac{z}{3(c+2)}}{1+\cfrac{z}{5(c+4)} + \cdots}}},
\end{equation}
-der als Code (siehe: Listing \ref{0f1:listing:kettenbruchIterativ}) umgesetzt wurde.
-\cite{0f1:wolfram-0f1}
+der als Code (Listing \ref{0f1:listing:kettenbruchIterativ}) umgesetzt wurde.
+
\lstinputlisting[style=C,float,caption={Iterativ umgesetzter Kettenbruch.},label={0f1:listing:kettenbruchIterativ}, firstline=8]{papers/0f1/listings/kettenbruchIterativ.c}
\subsection{Rekursionsformel
\label{0f1:subsection:rekursionsformel}}
-Wesentlich stabiler zur Berechnung eines Kettenbruches ist die Rekursionsformel. Nachfolgend wird die verkürzte Herleitung vom Kettenbruch zur Rekursionsformel aufgezeigt. Eine vollständige Schritt für Schritt Herleitung ist im Seminarbuch Numerik, im Kapitel Kettenbrüche zu finden. \cite{0f1:kettenbrueche}
+Wesentlich stabiler zur Berechnung eines Kettenbruches ist die Rekursionsformel. Nachfolgend wird die verkürzte Herleitung vom Kettenbruch zur Rekursionsformel aufgezeigt. Eine vollständige Schritt für Schritt Herleitung ist im Seminarbuch Numerik, im Kapitel Kettenbrüche \cite{0f1:kettenbrueche} zu finden.
\subsubsection{Herleitung}
Ein Näherungsbruch in der Form
@@ -68,7 +112,7 @@ lässt sich zu \cfrac{A_k}{B_k} = \cfrac{b_{k+1}}{a_{k+1} + \cfrac{p}{q}} = \frac{b_{k+1} \cdot q}{a_{k+1} \cdot q + p}
\end{align*}
umformen.
-Dies lässt sich auch durch die folgende Matrizenschreibweise ausdrücken:
+Dies lässt sich auch durch die Matrizenschreibweise
\begin{equation*}
\begin{pmatrix}
A_k\\
@@ -88,11 +132,12 @@ Dies lässt sich auch durch die folgende Matrizenschreibweise ausdrücken: \end{pmatrix}.
%\label{0f1:math:rekursionsformel:herleitung}
\end{equation*}
+ausdrücken.
Wendet man dies nun auf den Kettenbruch in der Form
\begin{equation*}
\frac{A_k}{B_k} = a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{\cdots}{\cdots+\cfrac{b_{k-1}}{a_{k-1} + \cfrac{b_k}{a_k}}}}}
\end{equation*}
-an, ergibt sich folgende Matrixdarstellungen:
+an, ergibt sich die Matrixdarstellungen:
\begin{align*}
\begin{pmatrix}
@@ -116,7 +161,7 @@ an, ergibt sich folgende Matrixdarstellungen: \begin{pmatrix}
b_k\\
a_k
- \end{pmatrix}
+ \end{pmatrix}.
\end{align*}
Nach vollständiger Induktion ergibt sich für den Schritt $k$, die Matrix
\begin{equation}
@@ -135,15 +180,15 @@ Nach vollständiger Induktion ergibt sich für den Schritt $k$, die Matrix a_k
\end{pmatrix}.
\end{equation}
-Und Schlussendlich kann der Näherungsbruch
+Und schlussendlich kann der Näherungsbruch
\[
\frac{A_k}{B_k}
\]
berechnet werden.
-\subsubsection{Lösung}
-Die Berechnung von $A_k, B_k$ \eqref{0f1:math:matrix:ende:eq} kann man auch ohne die Matrizenschreibweise aufschreiben: \cite{0f1:wiki-fraction}
+\subsubsection{Algorithmus}
+Die Berechnung von $A_k, B_k$ gemäss \eqref{0f1:math:matrix:ende:eq} kann man auch ohne die Matrizenschreibweise \cite{0f1:kettenbrueche} aufschreiben:
\begin{itemize}
\item Startbedingungen:
\begin{align*}
@@ -162,10 +207,10 @@ B_{k+1} &= B_{k-1} \cdot b_k + B_k \cdot a_k \end{aligned}
\]
\item
-Näherungsbruch: \qquad$\displaystyle\frac{A_k}{B_k}$
+Näherungsbruch: \qquad$\displaystyle\frac{A_k}{B_k}$.
\end{itemize}
-Ein grosser Vorteil dieser Umsetzung als Rekursionsformel ist \ref{0f1:listing:kettenbruchRekursion}, dass im Vergleich zum Code \ref{0f1:listing:kettenbruchIterativ} eine Division gespart werden kann und somit weniger Rundungsfehler entstehen können.
+Ein grosser Vorteil dieser Umsetzung als Rekursionsformel \eqref{0f1:listing:kettenbruchRekursion} ist, dass im Vergleich zum Code (Listing \ref{0f1:listing:kettenbruchIterativ}) eine Division gespart werden kann und somit weniger Rundungsfehler entstehen können.
%Code
\lstinputlisting[style=C,float,caption={Rekursionsformel für Kettenbruch.},label={0f1:listing:kettenbruchRekursion}, firstline=8]{papers/0f1/listings/kettenbruchRekursion.c}
\ No newline at end of file diff --git a/buch/papers/0f1/teil3.tex b/buch/papers/0f1/teil3.tex index 72b1b21..147668a 100644 --- a/buch/papers/0f1/teil3.tex +++ b/buch/papers/0f1/teil3.tex @@ -7,58 +7,53 @@ \label{0f1:section:teil3}}
\rhead{Resultate}
Im Verlauf dieser Arbeit hat sich gezeigt,
-das ein einfacher mathematischer Algorithmus zu implementieren gar nicht so einfach ist.
+das einen einfachen mathematischen Algorithmus zu implementieren gar nicht so einfach ist.
So haben alle drei umgesetzten Ansätze Probleme mit grossen negativen $z$ in der Funktion $\mathstrut_0F_1(;c;z)$.
-Ebenso kann festgestellt werden, dass je grösser der Wert $z$ in $\mathstrut_0F_1(;c;z)$ wird, desto mehr weichen die berechneten Resultate von den Erwarteten ab \cite{0f1:wolfram-0f1}.
+Ebenso kann festgestellt werden, dass je grösser der Wert $z$ in $\mathstrut_0F_1(;c;z)$ wird, desto mehr weichen die berechneten Resultate von den Erwarteten \cite{0f1:wolfram-0f1} ab.
\subsection{Konvergenz
\label{0f1:subsection:konvergenz}}
-Es zeigt sich in Abbildung \ref{0f1:ausblick:plot:airy:konvergenz}, dass schon nach drei Iterationen ($k = 3$) die Funktionen schon genaue Resultate im Bereich von -2 bis 2 liefert. Ebenso kann festgestellt werden, dass der Kettenbruch schneller konvergiert und im positiven Bereich sogar mit der Referenzfunktion $Ai(x)$ übereinstimmt. Da die Rekursionsformel \ref{0f1:listing:kettenbruchRekursion} eine Abwandlung des Kettenbruches ist, verhalten sich die Funktionen in diesem Fall gleich.
+Es zeigt sich in Abbildung \ref{0f1:ausblick:plot:airy:konvergenz}, dass nach drei Iterationen ($k = 3$) die Funktionen genaue Resultate im Bereich von $-2$ bis $2$ liefert. Ebenso kann festgestellt werden, dass der Kettenbruch schneller konvergiert und im positiven Bereich mit der Referenzfunktion $\operatorname{Ai}(x)$ übereinstimmt. Da die Rekursionsformel eine Abwandlung des Kettenbruches ist, verhalten sich die Funktionen in diesem Fall gleich.
-Erst wenn mehrerer Iterationen gemacht werden, um die Genauigkeit zu verbessern, ist der Kettenbruch den anderen zwei Algorithmen, bezüglich Konvergenz überlegen.
-Interessant ist auch, dass die Rekursionsformel nahezu gleich schnell wie die Potenzreihe konvergiert, aber sich danach einschwingt \ref{0f1:ausblick:plot:konvergenz:positiv}. Dieses Verhalten ist auch bei grösseren $z$ zu beobachten, allerdings ist dann die Differenz zwischen dem ersten lokalen Minimum von k bis zum Abbruch kleiner
-\ref{0f1:ausblick:plot:konvergenz:positiv}.
-Dieses Phänomen ist auf die Lösung der Rekursionsformel zurück zu führen\eqref{0f1:math:loesung:eq}. Da im Gegensatz die ganz kleinen Werte nicht zu einer Konvergenz wie beim Kettenbruch führen, sondern sich noch eine Zeit lang durch die Multiplikation aufschwingen.
+Erst wenn mehrerer Iterationen gerechnet werden, ist wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, der Kettenbruch den anderen zwei Algorithmen bezüglich Konvergenz überlegen. Bei der Rekursionsformel muss beachtet werden, dass sie zwar erst nach 35 Approximationen gänzlich konvergiert, allerdings nach 27 Iterationen sich nicht mehr gross verändert.
+
+Ist $z$ negativ, wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:negativ}, führt dies aufgrund des Vorzeichens zu alternierenden Termen. So steigt bei allen Algorithmen zuerst die Differenz zum erwarteten Endwert. Erst nach genügend Iterationen sind die Terme so klein, dass sie das Endresultat nicht mehr signifikant beeinflussen. Während die Potenzreihe zusammen mit dem Kettenbruch nach 34 Approximationen konvergiert, braucht die Rekursionsformel noch zwei Iterationen mehr.
-Ist $z$ negativ wie im Abbild \ref{0f1:ausblick:plot:konvergenz:negativ}, führt dies zu einer Gegenseitigen Kompensation von negativen und positiven Termen so bricht die Rekursionsformel hier zusammen mit der Potenzreihe ab.
-Die ansteigende Differenz mit anschliessender, ist aufgrund der sich alternierenden Termen mit wechselnden Vorzeichens zu erklären.
\subsection{Stabilität
\label{0f1:subsection:Stabilitaet}}
-Verändert sich der Wert von z in $\mathstrut_0F_1(;c;z)$ gegen grössere positive Werte, wie zum Beispiel $c = 800$ liefert die Kettenbruch-Funktion \ref{0f1:listing:kettenbruchIterativ} \verb+inf+ zurück. Dies könnte durch ein Abbruchkriterien abgefangen werden. Allerdings würde das, bei grossen Werten zulasten der Genauigkeit gehen. Trotzdem könnte, je nach Anwendung, auf ein paar Nachkommastellen verzichtet werden.
-
-Wohingegen die Potenzreihe \eqref{0f1:listing:potenzreihe} das Problem hat, dass je mehr Terme berechnet werden, desto schneller wächst die Fakultät und irgendwann gibt es eine Bereichsüberschreitung von \verb+double+. Schlussendlich gibt das Unterprogramm das Resultat \verb+-nan(ind)+ zurück.
-Die Rekursionformel \eqref{0f1:listing:kettenbruchRekursion} liefert für sehr grosse positive Werte die genausten Ergebnisse, verglichen mit der GNU Scientific Library. Wie schon vermutet ist die Rekursionsformel, im positivem Bereich, der stabilste Algorithmus. Um die Stabilität zu gewährleisten, muss wie in Abbild \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, die Iterationstiefe $k$ genug gross gewählt werden.
-
-Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Grund dafür ist die Potenz von z, was zum Phänomen der Auslöschung führt \cite{0f1:SeminarNumerik}. Schön zu beobachten ist dies in der Abbildung \ref{0f1:ausblick:plot:airy:stabilitaet} mit der Airy-Funktion als Test. So sind sowohl der Kettenbruch, als auch die Rekursionsformel bis ungefähr $\frac{-15^3}{9}$ stabil. Dies macht auch Sinn, da beide auf der gleichen mathematischen Grundlage basieren. Danach verhält sich allerdings die Instabilität unterschiedlich. Das unterschiedliche Verhalten kann damit erklärt werden, dass beim Kettenbruch jeweils eine zusätzliche Division stattfindet. Diese Unterschiede sind auch in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} festzustellen.
+Verändert sich der Wert von $z$ in $\mathstrut_0F_1(;c;z)$ gegen grössere positive Werte, wie zum Beispiel $c = 800$ liefert die Kettenbruch-Funktion (Listing \ref{0f1:listing:kettenbruchIterativ}) \verb+inf+ zurück. Dies könnte durch ein Abbruchkriterien abgefangen werden. Allerdings würde das bei grossen Werten zulasten der Genauigkeit gehen. Trotzdem könnte, je nach Anwendung, auf ein paar Nachkommastellen verzichtet werden.
+Wohingegen die Potenzreihe (Listing \ref{0f1:listing:potenzreihe}) das Problem hat, dass je mehr Terme berechnet werden, desto schneller wächst die Fakultät im Nenner. Dies führt zu einer Bereichsüberschreitung des \verb+double+ Bereiches \cite{0f1:double}, der spätesten ab $k=167$ eintritt. Schlussendlich gibt das Unterprogramm das Resultat \verb+-nan(ind)+ zurück.
+Die Rekursionformel \eqref{0f1:listing:kettenbruchRekursion} liefert für sehr grosse positive Werte die genausten Ergebnisse, verglichen mit der GNU Scientific Library. Wie schon vermutet ist die Rekursionsformel, im positivem Bereich, der stabilste Algorithmus. Um die Konvergenz zu gewährleisten, muss wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, die Iterationstiefe $k$ genug gross gewählt werden.
+Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Grund dafür ist die Potenz von $z$, was zum Phänomen der Auslöschung \cite{0f1:SeminarNumerik} führt. Schön zu beobachten ist dies in der Abbildung \ref{0f1:ausblick:plot:airy:stabilitaet} mit der Airy-Funktion als Test. So sind nach Abbildung \ref{0f1:ausblick:plot:airy:stabilitaet} die Potenzreihe, der Kettenbruch, als auch die Rekursionsformel, bis ungefähr $\frac{-15^3}{9}$ stabil. Dies macht auch Sinn, da alle Algorithmen auf der gleichen mathematischen Grundlage basieren. Danach verhält sich allerdings die Instabilität unterschiedlich. Diese programmiertechnischen Unterschiede sind auch in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} und \ref{0f1:ausblick:plot:konvergenz:negativ} festzustellen.
\begin{figure}
\centering
\includegraphics[width=0.8\textwidth]{papers/0f1/images/konvergenzAiry.pdf}
- \caption{Konvergenz nach drei Iterationen, dargestellt anhand der Airy Funktion zu den Anfangsbedingungen $Ai(0)=1$ und $Ai'(0)=0$.
+ \caption{Konvergenz nach drei Iterationen, dargestellt anhand der Airy Funktion zu den Anfangsbedingungen $\operatorname{Ai}(0)=1$ und $\operatorname{Ai}'(0)=0$.
\label{0f1:ausblick:plot:airy:konvergenz}}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=0.8\textwidth]{papers/0f1/images/konvergenzPositiv.pdf}
- \caption{Konvergenz: Logarithmisch dargestellte Differenz vom erwarteten Endresultat.
+ \caption{Konvergenz mit positivem $z$; Logarithmisch dargestellter absoluter Fehler.
\label{0f1:ausblick:plot:konvergenz:positiv}}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=0.8\textwidth]{papers/0f1/images/konvergenzNegativ.pdf}
- \caption{Konvergenz: Logarithmisch dargestellte Differenz vom erwarteten Endresultat.
+ \caption{Konvergenz mit negativem $z$; Logarithmisch dargestellter absoluter Fehler.
\label{0f1:ausblick:plot:konvergenz:negativ}}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=1\textwidth]{papers/0f1/images/stabilitaet.pdf}
- \caption{Stabilität der 3 Algorithmen verglichen mit der Referenz Funktion $Ai(x)$.
+ \caption{Stabilität der drei Algorithmen verglichen mit der Referenz Funktion $\operatorname{Ai}(x)$.
\label{0f1:ausblick:plot:airy:stabilitaet}}
\end{figure}
diff --git a/buch/papers/ellfilter/einleitung.tex b/buch/papers/ellfilter/einleitung.tex index ae7127f..05061d1 100644 --- a/buch/papers/ellfilter/einleitung.tex +++ b/buch/papers/ellfilter/einleitung.tex @@ -1,17 +1,17 @@ \section{Einleitung} -Filter sind womöglich eines der wichtigsten Elementen in der Signalverarbeitung und finden Anwendungen in der digitalen und analogen Elektrotechnik. +Filter sind womöglich eines der wichtigsten Elemente in der Signalverarbeitung und finden Anwendungen in der digitalen und analogen Elektrotechnik. Besonders hilfreich ist die Untergruppe der linearen Filter. -Elektronische Schaltungen mit linearen Bauelementen wie Kondensatoren, Spulen und Widerständen führen immer zu linearen zeitinvarianten Systemen (LTI-System von englich \textit{time-invariant system}). -Durch die Linearität werden beim das Filtern keine neuen Frequenzanteile erzeugt, was es erlaubt, einen Frequenzanteil eines Signals verzerrungsfrei herauszufiltern. %TODO review sentence -Diese Eigenschaft macht es Sinnvoll, lineare Filter im Frequenzbereich zu beschreiben. -Die Übertragungsfunktion eines linearen Filters im Frequenzbereich $H(\Omega)$ ist dabei immer eine rationale Funktion, also ein Quotient von zwei Polynomen. +Elektronische Schaltungen mit linearen Bauelementen wie Kondensatoren, Spulen und Widerständen führen immer zu linearen zeitinvarianten Systemen (LTI-System von englisch \textit{time-invariant system}). +Durch die Linearität werden beim Filtern keine neuen Frequenzanteile erzeugt, was es erlaubt, einen Frequenzanteil eines Signals verzerrungsfrei herauszufiltern. +Diese Eigenschaft macht es sinnvoll, lineare Filter im Frequenzbereich zu beschreiben. +Die Übertragungsfunktion $H(\Omega)$ eines linearen Filters im Frequenzbereich ist dabei immer eine rationale Funktion, also ein Quotient von zwei Polynomen. Dabei ist $\Omega = 2 \pi f$ die Frequenzeinheit. -Die Polynome haben dabei immer reelle oder komplex-konjugierte Nullstellen. +Die Polynome haben dabei immer reelle oder komplexkonjugierte Nullstellen. -Ein breit angewendeter Filtertyp ist das Tiefpassfilter, welches beabsichtigt alle Frequenzen eines Signals oberhalb der Grenzfrequenz $\Omega_p$ auszulöschen. +Ein breit angewendeter Filtertyp ist das Tiefpassfilter, welches beabsichtigt, alle Frequenzen eines Signals oberhalb der Grenzfrequenz $\Omega_p$ auszulöschen. Der Rest soll dabei unverändert passieren. -Aus dem Tiefpassifilter können dann durch Transformationen auch Hochpassfilter, Bandpassfilter und Bandsperren realisiert werden. +Aus dem Tiefpassfilter können dann durch Transformationen auch Hochpassfilter, Bandpassfilter und Bandsperren realisiert werden. Ein solches Filter hat idealerweise die Frequenzantwort \begin{equation} H(\Omega) = @@ -32,7 +32,7 @@ Aus diesem Grund sind realisierbare Approximationen gesucht. Jede Approximation wird einen kontinuierlichen Übergang zwischen Durchlassbereich und Sperrbereich aufweisen. Oft wird dabei der Faktor $1/\sqrt{2}$ als Schwelle zwischen den beiden Bereichen gewählt. Somit lassen sich lineare Tiefpassfilter mit folgender Funktion zusammenfassen: -\begin{equation} +\begin{equation} \label{ellfilter:eq:quadratic_transfer} | H(\Omega)|^2 = \frac{1}{1 + \varepsilon_p^2 F_N^2(w)}, \quad w=\frac{\Omega}{\Omega_p}, \end{equation} wobei $F_N(w)$ eine rationale Funktion ist, $|F_N(w)| \leq 1 ~\forall~ |w| \leq 1$ erfüllt und für $|w| \geq 1$ möglichst schnell divergiert. @@ -40,8 +40,9 @@ Des weiteren müssen alle Nullstellen und Pole von $F_N$ auf der linken Halbeben $w$ ist die normalisierte Frequenz, die es erlaubt ein Filter unabhängig von der Grenzfrequenz zu beschrieben. Bei $w=1$ hat das Filter eine Dämpfung von $1/(1+\varepsilon^2)$. $N \in \mathbb{N} $ gibt die Ordnung des Filters vor, also die maximale Anzahl Pole oder Nullstellen. -Je hoher $N$ gewählt wird, desto steiler ist der Übergang in denn Sperrbereich. -Grössere $N$ sind erfordern jedoch aufwendigere Implementierungen und haben mehr Phasenverschiebung. +Je höher $N$ gewählt wird, desto steiler ist der Übergang im Sperrbereich. +Grössere $N$ erfordern jedoch aufwendigere Implementierungen und haben mehr Phasenverschiebung. + Eine einfache Funktion, die für $F_N$ eingesetzt werden kann, ist das Polynom $w^N$. Tatsächlich erhalten wir damit das Butterworth Filter, wie in Abbildung \ref{ellfilter:fig:butterworth} ersichtlich. \begin{figure} @@ -62,12 +63,15 @@ Eine Reihe von rationalen Funktionen können für $F_N$ eingesetzt werden, um Ti \end{align} Mit der Ausnahme vom Butterworth-Filter sind alle Filter nach speziellen Funktionen benannt. Alle diese Filter sind optimal hinsichtlich einer Eigenschaft. +Es scheint so, als sind gewisse Eigenschaften dieser speziellen Funktionen verantwortlich für die Optimalität dieser Filter. Das Butterworth-Filter, zum Beispiel, ist maximal flach im Durchlassbereich. -Das Tschebyscheff-1 Filter ist maximal steil für eine definierte Welligkeit im Durchlassbereich, währendem es im Sperrbereich monoton abfallend ist. -Es scheint so als sind gewisse Eigenschaften dieser speziellen Funktionen verantwortlich für die Optimalität dieser Filter. +In vielen Anwendung sind Filter mit einem steilen Übergang gewünscht. +Da es technisch nicht möglich ist, mit einer rationalen Funktion mit begrenzter Anzahl Pole eine steile Flanke zu erreichen, während der Durchlass- und Sperrbereich flach und monoton sind, gibt es Filtertypen, die absichtlich Welligkeiten in der Frequenzantwort aufweisen. +Besonders effizient sind Filter mit Equiripple-Verhalten, wessen Welligkeit optimal definiert wird für eine maximal steile Flanke, während die maximale Abweichung zum idealen Filter begrenzt ist. +Die Welligkeit beansprucht dabei einen begrenzen Verstärkungsintervall und nützt diesen vollständig aus, indem sie periodisch die Grenzen des Intervalls berührt. +Das Tschebyscheff-1 Filter, zum Beispiel, hat Equiripple-Verhalten im Durchlassbereich, währendem es im Sperrbereich monoton abfallend ist. +Beim Tschebyscheff-2 Filter ist es umgekehrt. Dieses Paper betrachtet die Theorie hinter dem elliptischen Filter, dem wohl exotischsten dieser Auswahl. -Es weist sich aus durch den steilsten Übergangsbereich für eine gegebene Filterdesignspezifikation. +Es hat Equiripple-Verhalten im Durchlass und Sperrbereich und hat dadurch den steilsten Übergangsbereich für eine gegebene Filterdesignspezifikation. Des weiteren kann es als Verallgemeinerung des Tschebyscheff-Filters angesehen werden. - -% wenn $F_N(w)$ eine rationale Funktion ist, ist auch $H(\Omega)$ eine rationale Funktion und daher ein lineares Filter. %proof? diff --git a/buch/papers/ellfilter/elliptic.tex b/buch/papers/ellfilter/elliptic.tex index 67bcca0..651d6bc 100644 --- a/buch/papers/ellfilter/elliptic.tex +++ b/buch/papers/ellfilter/elliptic.tex @@ -1,14 +1,17 @@ -\section{Elliptische rationale Funktionen} +\section{Rationale elliptische Funktionen} -Kommen wir nun zum eigentlichen Teil dieses Papers, den elliptischen rationalen Funktionen \cite{ellfilter:bib:orfanidis} +Kommen wir nun zum eigentlichen Teil dieses Papers, den rationalen elliptischen Funktionen \cite{ellfilter:bib:orfanidis} \begin{align} - R_N(\xi, w) &= \cd \left(N~f_1(\xi)~\cd^{-1}(w, 1/\xi), f_2(\xi)\right) \label{ellfilter:eq:elliptic}\\ + R_N(w, \xi) &= \cd \left(N~f_1(\xi)~\cd^{-1}(w, 1/\xi), f_2(\xi)\right) \label{ellfilter:eq:elliptic}\\ &= \cd \left(N~\frac{K_1}{K}~\cd^{-1}(w, k), k_1\right) , \quad k= 1/\xi, k_1 = 1/f(\xi) \\ &= \cd \left(N~K_1~z , k_1 \right), \quad w= \cd(z K, k) \end{align} Beim Betrachten dieser Definition, fällt die Ähnlichkeit zur trigonometrische Darstellung der Tsche\-byschef-Polynome \eqref{ellfilter:eq:chebychef_polynomials} auf. -Anstelle vom Kosinus kommt hier die $\cd$-Funktion zum Einsatz. -Die Ordnungszahl $N$ kommt auch als Faktor for. +Wie bei den Tschebyscheff-Polynomen ist die Formel mit speziellen Funktionen geschrieben. +Es kann jedoch gezeigt werden, dass es sich tatsächlich um rationale Funktionen handelt, wie es für ein lineares Filter vorausgesetzt wird. +Die elliptischen Funktionen werden also genau so eingesetzt, dass die resultierenden Nullstellen und Pole eine rationale Funktion ergeben. +Anstelle des Kosinus bei den Tschebyscheff-Polynomen kommt hier die $\cd$-Funktion zum Einsatz. +Die Ordnungszahl $N$ kommt auch als Faktor vor. Zusätzlich werden noch zwei verschiedene elliptische Moduli $k$ und $k_1$ gebraucht. Bei $k = k_1 = 0$ wird der $\cd$ zum Kosinus und wir erhalten in diesem Spezialfall die Tschebyschef-Polynome. @@ -24,12 +27,12 @@ Die $\cd^{-1}(w, k)$-Funktion ist um $K$ verschoben zur $\sn^{-1}(w, k)$-Funktio \label{ellfilter:fig:cd} \end{figure} Auffallend an der $w = \cd(z, k)$-Funktion ist, dass sich $w$ auf der reellen Achse wie der Kosinus immer zwischen $-1$ und $1$ bewegt, während bei $\mathrm{Im(z) = K^\prime}$ die Werte zwischen $\pm 1/k$ und $\pm \infty$ verlaufen. -Die Idee des elliptischen Filter ist es, diese zwei Equirippel-Zonen abzufahren, wie ersichtlich in Abbildung \ref{ellfilter:fig:cd2}, welche Analog zu Abbildung \ref{ellfilter:fig:arccos2} gesehen werden kann. +Die Idee des elliptischen Filter ist es, diese zwei Equiripple-Zonen abzufahren, wie ersichtlich in Abbildung \ref{ellfilter:fig:cd2}, welche analog zu Abbildung \ref{ellfilter:fig:arccos2} gesehen werden kann. \begin{figure} \centering \input{papers/ellfilter/tikz/cd2.tikz.tex} \caption{ - $z_1=N\frac{K_1}{K}\cd^{-1}(w, k)$-Ebene der elliptischen rationalen Funktionen. + $z_1=N\frac{K_1}{K}\cd^{-1}(w, k)$-Ebene der rationalen elliptischen Funktionen. Je grösser die Ordnung $N$ gewählt wird, desto mehr Nullstellen werden passiert. Als Vereinfachung ist die Funktion nur für $w>0$ dargestellt. } @@ -37,13 +40,10 @@ Die Idee des elliptischen Filter ist es, diese zwei Equirippel-Zonen abzufahren, \end{figure} Das elliptische Filter hat im Gegensatz zum Tschebyscheff-Filter drei Zonen. Im Durchlassbereich werden wie beim Tschebyscheff-Filter die Nullstellen durchlaufen. -Statt dass $z_1$ für alle $w>1$ in die imaginäre Richtung geht, bewegen wir uns im Sperrbereich wieder in reeller Richtung, wo Pole durchlaufen werden. +Statt dass $z_1$ für alle $w>1$ in die imaginäre Richtung geht, bewegen wir uns im Sperrbereich wieder in reeller Richtung, wo Pole und Punkte mit $\pm 1/k$ durchlaufen werden. Aus dieser Sicht kann der Sperrbereich vom Tschebyscheff-Filter als unendlich langer Übergangsbereich angesehen werden. -% Falls es möglich ist diese Werte abzufahren im Stil der Tschebyscheff-Polynome, kann ein Filter gebaut werden, dass Equirippel-Verhalten im Durchlass- und Sperrbereich aufweist. -Da sich die Funktion im Übergangsbereich nur zur nächsten Reihe bewegt, ist der Übergangsbereich monoton steigend. -Theoretisch könnte eine gleiches Durchlass- und Sperrbereichverhalten erreicht werden, wenn die Funktion auf eine andere Reihe ansteigen würde. -Dies würde jedoch zu Oszillationen zwischen $1$ und $1/k$ im Übergangsbereich führen. -Abbildung \ref{ellfilter:fig:elliptic_freq} zeigt eine elliptisch rationale Funktion und die Frequenzantwort des daraus resultierenden Filters. +% Falls es möglich ist diese Werte abzufahren im Stil der Tschebyscheff-Polynome, kann ein Filter gebaut werden, dass Equiripple-Verhalten im Durchlass- und Sperrbereich aufweist. +Abbildung \ref{ellfilter:fig:elliptic_freq} zeigt eine rationale elliptische Funktion und die Frequenzantwort des daraus resultierenden Filters. \begin{figure} \centering \input{papers/ellfilter/python/elliptic.pgf} @@ -51,15 +51,22 @@ Abbildung \ref{ellfilter:fig:elliptic_freq} zeigt eine elliptisch rationale Funk \label{ellfilter:fig:elliptic_freq} \end{figure} +Da sich die Funktion im Übergangsbereich nur zur nächsten Reihe von Polstellen bewegt, ist der Übergangsbereich monoton steigend. +Theoretisch könnte eine gleiches Durchlass- und Sperrbereichsverhalten erreicht werden, wenn die Funktion auf eine andere Reihe ansteigen würde, z.B. $\mathrm{Im(z) = 3K^\prime}$. +Dies würde jedoch zu Oszillationen zwischen $1$ und $1/k$ im Übergangsbereich führen. + \subsection{Gradgleichung} Damit die Pol- und Nullstellen genau in dieser Konstellation durchfahren werden, müssen die elliptischen Moduli des inneren und äusseren $\cd$ aufeinander abgestimmt werden. -In der reellen Richtung müssen sich die Periodizitäten $K$ und $K_1$ um den Faktor $N$ unterscheiden, während die imagiäre Periodizitäten $K^\prime$ und $K^\prime_1$ gleich bleiben müssen. +In der reellen Richtung müssen sich die Periodizitäten $K$ und $K_1$ um den Faktor $N$ unterscheiden, während die imaginäre Periodizitäten $K^\prime$ und $K^\prime_1$ gleich bleiben müssen. Zur Erinnerung, $K$ und $K^\prime$ sind durch elliptische Integrale definiert und vom Modul $k$ abhängig wie ersichtlich in Abbildung \ref{ellfilter:fig:kprime}. \begin{figure} \centering \input{papers/ellfilter/python/k.pgf} - \caption{Die Periodizitäten in realer und imaginärer Richtung in Abhängigkeit vom elliptischen Modul $k$.} + \caption{ + Die Periodizitäten in realer und imaginärer Richtung in Abhängigkeit vom elliptischen Modul $k$. + In der rechten Grafik sind $K$ und $K^\prime$ gegenübergestellt, wobei alle möglichen Kombinationen auf der eingezeichneten Ortskurve liegen. + } \label{ellfilter:fig:kprime} \end{figure} $K$ und $K^\prime$ sind durch die Ortskurve $K + jK^\prime$ aneinander gebunden und benötigen den Zusatzfaktor $K_1/K$ in \eqref{ellfilter:eq:elliptic}, um die genanten Forderungen einzuhalten. @@ -75,26 +82,48 @@ Algebraisch kann so die Gradgleichung N \frac{K^\prime}{K} = \frac{K^\prime_1}{K_1} \end{equation} aufgestellt werden, dessen Lösung ist gegeben durch -\begin{equation} %TODO check +\begin{equation}\label{ellfilter:eq:degeqsol} k_1 = k^N \prod_{i=1}^L \sn^4 \Bigg( \frac{2i - 1}{N} K, k \Bigg), \quad \text{wobei} \quad N = 2L+r. \end{equation} -Die Herleitung ist sehr umfassend und wird in \cite{ellfilter:bib:orfanidis} im Detail angeschaut. +Die Herleitung ist sehr umfangreich und wird in \cite{ellfilter:bib:orfanidis} im Detail angeschaut. -% \begin{figure} -% \centering -% \input{papers/ellfilter/tikz/elliptic_transform1.tikz} -% \caption{Die Gradgleichung als geometrisches Problem.} -% \end{figure} +\subsection{Berechnung der rationalen Funktion} -\subsection{Schlussfolgerung} - -Die elliptischen Filter können als direkte Erweiterung der Tschebyscheff-Filter verstanden werden. -Bei den Tschebyscheff-Polynomen haben wir gesehen, dass die Trigonometrische Formel zu einfachen Polynomen umgewandelt werden kann. -Im elliptischen Fall entstehen so rationale Funktionen mit Nullstellen und auch Pole. -Somit entstehen bei den elliptischen rationalen Funktionen, wie es der name auch deutet, rationale Funktionen, also ein Bruch von zwei Polynomen. - -% Da Transformationen einer rationalen Funktionen mit Grundrechenarten, wie es in \eqref{ellfilter:eq:h_omega} der Fall ist, immer noch rationale Funktionen ergeben, stellt dies kein Problem für die Implementierung dar. +$k_1$ muss jedoch gar nicht berechnet werden, um $R_N$ in der Form einer rationale Funktion erhalten. +Die Ordnung $N$ und der Parameter $k$ können frei gewählt werden. +% $k_1$ muss dann mit \eqref{ellfilter:eq:degeqsol} oder mit numerischen Methoden berechnet werden. +Je kleiner $k$ gewählt wird, desto grösser wird die Dämpfung des Filters im Sperrbereich im Verhältnis zum Durchlassbereich. +Allerdings verliert das Filter dabei auch an Steilheit. +Wenn $k$ und $N$ bekannt sind, können die Position der Pol- und Nullstellen $p_i$ und $n_i$ in einem Raster konstruiert werden, wie dargestellt in Abbildung \ref{ellfilter:fig:pn}. +\begin{figure} + \centering + \input{papers/ellfilter/tikz/pn.tikz.tex} + \caption{ + Pole und Nullstellen in der $z = \cd^{-1}(w, k)$-Ebene für die Rücktransformation zur einer rationalen Funktion. + } + \label{ellfilter:fig:pn} +\end{figure} +Dabei muss aufgepasst werden, dass insgesamt nur $N$ Nullstellen und $N$ Pole gesetzt werden, da bei der Transformation mit dem $\cd$ mehrere Werte auf einen abgebildet werden und mehrfache Pole und Nullstellen nicht erwünscht sind. +Wegen der Periodizität sind diese in der komplexen $z$-Ebene linear angeordnet: +\begin{align} + n_i(k) &= K\frac{2i+1}{N} \\ + p_i(k) &= n_i + jK^\prime. +\end{align} +Durch das Rücktransformieren mit der $\cd$-Funktion gelangt man schlussendlich zu der rationalen Funktion +\begin{equation} + R_N(w, k) = r_0 \prod_{i=1}^N \frac{w - \cd \big(n_i(k), k \big)}{w - \cd \big(p_i(k), k \big)}, +\end{equation} +wobei $r_0$ so gewählt werden muss, dass $R_N(w, k) = 1$. +\section{Elliptisches Filter} +Um ein elliptisches Filter auszulegen, werden aber nicht die Pol- und Nullstellen der rationalen Funktion gebraucht, sondern diejenigen der Übertragungsfunktion $H(s)$ der komplexen Frequenz $s = j\Omega + \sigma$. +Der Bezug zum quadratischen Amplitudengang \eqref{ellfilter:eq:quadratic_transfer} ist dabei +\begin{equation} + |H(\Omega)|^2 = H(s) H(s^*), +\end{equation} +wobei $*$ die komplexe Konjugation kennzeichnet. +Die genaue Berechnung geht einiges tiefer in die Filtertheorie, und verlässt das Gebiet der speziellen Funktionen. +Der interessierte Leser wird auf \cite[Kapitel~5]{ellfilter:bib:orfanidis} verwiesen. diff --git a/buch/papers/ellfilter/jacobi.tex b/buch/papers/ellfilter/jacobi.tex index 567bbcc..06548a5 100644 --- a/buch/papers/ellfilter/jacobi.tex +++ b/buch/papers/ellfilter/jacobi.tex @@ -1,15 +1,17 @@ \section{Jacobische elliptische Funktionen} -Für das elliptische Filter werden, wie es der Name bereits deutet, elliptische Funktionen gebraucht. +Für das elliptische Filter werden, wie es der Name bereits andeutet, elliptische Funktionen gebraucht. Wie die trigonometrischen Funktionen Zusammenhänge eines Kreises darlegen, beschreiben die elliptischen Funktionen Ellipsen. -Es ist daher naheliegend, dass Kosinus des Tschebyscheff-Filters mit einem elliptischen Pendant ausgetauscht werden könnte. -Der Begriff elliptische Funktion wird für sehr viele Funktionen gebraucht, daher ist es hier wichtig zu erwähnen, dass es ausschliesslich um die Jacobischen elliptischen Funktionen geht. +Es ist daher naheliegend, dass der Kosinus des Tschebyscheff-Filters gegen ein elliptisches Pendant ausgetauscht werden könnte. +Der Begriff elliptische Funktion wird für sehr viele Funktionen gebraucht, daher ist es hier wichtig zu erwähnen, dass es hier ausschliesslich um die Jacobischen elliptischen Funktionen geht. + +\subsection{Grundlegende Eigenschaften} Die Jacobi elliptischen Funktionen werden ausführlich im Kapitel \ref{buch:elliptisch:section:jacobi} behandelt. Im Wesentlichen erweitern die Jacobi elliptischen Funktionen die trigonometrische Funktionen für Ellipsen. Zum Beispiel gibt es analog zum Sinus den elliptischen $\sn(z, k)$. -Im Gegensatz zum den trigonometrischen Funktionen haben die elliptischen Funktionen zwei parameter. -Den \textit{elliptische Modul} $k$, der die Exzentrizität der Ellipse parametrisiert und das Winkelargument $z$. +Im Gegensatz zum den trigonometrischen Funktionen haben die elliptischen Funktionen zwei Parameter. +Den elliptischen Modul $k$, der die Exzentrizität der Ellipse parametrisiert und das Winkelargument $z$. Im Kreis ist der Radius für alle Winkel konstant, bei Ellipsen ändert sich das. Dies hat zur Folge, dass bei einer Ellipse die Kreisbogenlänge nicht linear zum Winkel verläuft. Darum kann hier nicht der gewohnte Winkel verwendet werden. @@ -30,7 +32,7 @@ Das Winkelargument $z$ kann durch das elliptische Integral erster Art \end{equation} mit dem Winkel $\phi$ in Verbindung gebracht werden. -Dabei wird das vollständige und unvollständige Elliptische integral unterschieden. +Dabei wird das vollständige und unvollständige elliptische Integral unterschieden. Beim vollständigen Integral \begin{equation} K(k) @@ -44,11 +46,11 @@ Beim vollständigen Integral } } \end{equation} -wird über ein viertel Ellipsenbogen integriert, also bis $\phi=\pi/2$ und liefert das Winkelargument für eine Vierteldrehung. +wird über ein Viertelellipsenbogen integriert, also bis $\phi=\pi/2$ und liefert das Winkelargument für eine Vierteldrehung. Die Zahl wird oft auch abgekürzt mit $K = K(k)$ und ist für das elliptische Filter sehr relevant. Alle elliptischen Funktionen sind somit $4K$-periodisch. -Neben dem $\sn$ gibt es zwei weitere basis-elliptische Funktionen $\cn$ und $\dn$. +Neben dem $\sn$ gibt es zwei weitere elliptische Basisfunktionen $\cn$ und $\dn$. Dazu kommen noch weitere abgeleitete Funktionen, die durch Quotienten und Kehrwerte dieser Funktionen zustande kommen. Insgesamt sind es die zwölf Funktionen \begin{equation*} @@ -66,7 +68,7 @@ Insgesamt sind es die zwölf Funktionen \dc. \end{equation*} -Die Jacobischen elliptischen Funktionen können mit der inversen Funktion des kompletten elliptischen Integrals erster Art +Die Jacobischen elliptischen Funktionen können mit der inversen Funktion des vollständigen elliptischen Integrals erster Art \begin{equation} \phi = F^{-1}(z, k) \end{equation} @@ -76,7 +78,7 @@ definiert werden. Dabei ist zu beachten dass nur das $z$ Argument der Funktion i \Leftrightarrow \phi = F^{-1}(z, k). \end{equation} -Mithilfe von $F^{-1}$ kann zum Beispiel $sn^{-1}$ mit dem Elliptischen integral dargestellt werden: +Mithilfe von $F^{-1}$ kann zum Beispiel $sn^{-1}$ mit dem elliptischen Integral dargestellt werden: \begin{equation} \sin(\phi) = @@ -87,36 +89,10 @@ Mithilfe von $F^{-1}$ kann zum Beispiel $sn^{-1}$ mit dem Elliptischen integral w. \end{equation} -% \begin{equation} %TODO remove unnecessary equations -% \phi -% = -% F^{-1}(z, k) -% = -% \sin^{-1} \big( \sn (z, k ) \big) -% = -% \sin^{-1} ( w ) -% \end{equation} - -% \begin{equation} -% F(\phi, k) -% = -% z -% = -% F( \sin^{-1} \big( \sn (z, k ) \big) , k) -% = -% F( \sin^{-1} ( w ), k) -% \end{equation} - -% \begin{equation} -% \sn^{-1}(w, k) -% = -% F(\phi, k), -% \quad -% \phi = \sin^{-1}(w) -% \end{equation} +\subsection{Die Funktion $\sn^{-1}$} Beim Tschebyscheff-Filter konnten wir mit Betrachten des Arcuscosinus die Funktionalität erklären. -Für das Elliptische Filter machen wir die gleiche Betrachtung mit der $\sn^{-1}$-Funktion. +Für das elliptische Filter machen wir die gleiche Betrachtung mit der $\sn^{-1}$-Funktion. Der $\sn^{-1}$ ist durch das elliptische Integral \begin{align} \sn^{-1}(w, k) @@ -153,7 +129,7 @@ Dazu betrachten wir wieder den Integranden } }. \end{equation} -Beim $\cos^{-1}(x)$ haben wir gesehen, dass die analytische Fortsetzung bei $x < -1$ und $x > 1$ rechtwinklig in die Komplexen zahlen wandert. +Beim $\cos^{-1}(x)$ haben wir gesehen, dass die analytische Fortsetzung bei $x < -1$ und $x > 1$ rechtwinklig in die komplexen Zahlen wandert. Wenn man das Gleiche mit $\sn^{-1}(w, k)$ macht, erkennt man zwei interessante Stellen. Die erste ist die gleiche wie beim $\cos^{-1}(x)$ nämlich bei $t = \pm 1$. Der erste Term unter der Wurzel wird dann negativ, während der zweite noch positiv ist, da $k \leq 1$. @@ -169,7 +145,7 @@ Abbildung \ref{ellfilter:fig:sn} zeigt den Verlauf der Funktion in der komplexen } \label{ellfilter:fig:sn} \end{figure} -In der reellen Richtung ist sie $4K(k)$-periodisch und in der imaginären Richtung $4K^\prime(k)$-periodisch, wobei $K^\prime$ das komplementäre vollständige Elliptische Integral ist: +In der reellen Richtung ist sie $4K(k)$-periodisch und in der imaginären Richtung $4K^\prime$-periodisch, wobei $K^\prime$ das komplementäre vollständige Elliptische Integral ist: \begin{equation} K^\prime(k) = diff --git a/buch/papers/ellfilter/python/elliptic.pgf b/buch/papers/ellfilter/python/elliptic.pgf index 32485c1..a8d06d1 100644 --- a/buch/papers/ellfilter/python/elliptic.pgf +++ b/buch/papers/ellfilter/python/elliptic.pgf @@ -51,16 +51,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.000000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.850000in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{2.850000in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{1.746607in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.731117in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{2.731117in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{1.798407in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetbuttcap% \pgfsetmiterjoin% @@ -72,16 +72,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.200000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{-108.151374in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{-108.151374in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{-108.151374in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{-91.099555in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{-91.099555in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{-91.099555in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetbuttcap% \pgfsetmiterjoin% @@ -93,16 +93,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.200000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.730268in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{2.408643in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.408643in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.187964in}}% +\pgfpathmoveto{\pgfqpoint{2.720735in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{2.358033in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.358033in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.171491in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetbuttcap% \pgfsetmiterjoin% @@ -114,16 +114,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.200000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.750075in}{2.408643in}}% -\pgfpathlineto{\pgfqpoint{4.746812in}{2.408643in}}% -\pgfpathlineto{\pgfqpoint{4.746812in}{2.850005in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{2.850005in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{2.408643in}}% +\pgfpathmoveto{\pgfqpoint{2.740483in}{2.358033in}}% +\pgfpathlineto{\pgfqpoint{4.731206in}{2.358033in}}% +\pgfpathlineto{\pgfqpoint{4.731206in}{2.731121in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{2.731121in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{2.358033in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -131,31 +131,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -163,31 +144,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{1.232715in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{1.232715in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{1.227693in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{1.227693in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{1.232715in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -195,31 +157,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{1.731899in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{1.731899in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{1.725373in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{1.725373in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{1.731899in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -227,31 +170,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.231083in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{2.231083in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{2.223054in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{2.223054in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{2.231083in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -259,31 +183,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.730268in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{2.720735in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{2.730268in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -291,31 +196,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{3.229452in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{3.229452in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{3.218416in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{3.218416in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{3.229452in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -323,31 +209,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{3.728636in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{3.728636in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{3.716097in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{3.716097in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{3.728636in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -355,31 +222,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{4.227820in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.227820in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{4.213778in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.213778in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{4.227820in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -387,31 +235,12 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{4.727004in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{4.711458in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfsetbuttcap% -\pgfsetroundjoin% -\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetfillcolor{currentfill}% -\pgfsetlinewidth{0.803000pt}% -\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% -\pgfsetstrokecolor{currentstroke}% -\pgfsetdash{}{0pt}% -\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% -\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% -\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% -\pgfusepath{stroke,fill}% -}% -\begin{pgfscope}% -\pgfsys@transformshift{4.727004in}{1.746607in}% -\pgfsys@useobject{currentmarker}{}% -\end{pgfscope}% -\end{pgfscope}% -\begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -419,8 +248,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.746607in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.798407in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -438,7 +267,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{1.746607in}% +\pgfsys@transformshift{0.730012in}{1.798407in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -446,10 +275,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.348306in, y=1.698381in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{-4}}\)}% +\pgftext[x=0.344787in, y=1.750182in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{-4}}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -457,8 +286,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.187964in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.171491in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -476,7 +305,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{2.187964in}% +\pgfsys@transformshift{0.730012in}{2.171491in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -484,10 +313,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.435112in, y=2.139739in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{0}}\)}% +\pgftext[x=0.431593in, y=2.123266in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{0}}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -495,8 +324,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{2.629321in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.629321in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{2.544575in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.544575in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -514,7 +343,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{2.629321in}% +\pgfsys@transformshift{0.730012in}{2.544575in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -522,16 +351,16 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.435112in, y=2.581096in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{4}}\)}% +\pgftext[x=0.431593in, y=2.496350in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {10^{4}}\)}% \end{pgfscope}% \begin{pgfscope}% \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.292751in,y=2.298303in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle F^2_N(w)\)}% +\pgftext[x=0.289232in,y=2.264762in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle |F_N(w)|^2\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -539,82 +368,79 @@ \definecolor{currentstroke}{rgb}{0.000000,0.501961,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.740931in}{1.732718in}}% -\pgfpathlineto{\pgfqpoint{0.746516in}{1.786823in}}% -\pgfpathlineto{\pgfqpoint{0.754507in}{1.832782in}}% -\pgfpathlineto{\pgfqpoint{0.763497in}{1.866959in}}% -\pgfpathlineto{\pgfqpoint{0.774485in}{1.896885in}}% -\pgfpathlineto{\pgfqpoint{0.787470in}{1.923263in}}% -\pgfpathlineto{\pgfqpoint{0.802453in}{1.946729in}}% -\pgfpathlineto{\pgfqpoint{0.820433in}{1.968905in}}% -\pgfpathlineto{\pgfqpoint{0.841409in}{1.989570in}}% -\pgfpathlineto{\pgfqpoint{0.865382in}{2.008719in}}% -\pgfpathlineto{\pgfqpoint{0.893350in}{2.027039in}}% -\pgfpathlineto{\pgfqpoint{0.926313in}{2.044843in}}% -\pgfpathlineto{\pgfqpoint{0.965268in}{2.062241in}}% -\pgfpathlineto{\pgfqpoint{1.011216in}{2.079233in}}% -\pgfpathlineto{\pgfqpoint{1.065155in}{2.095755in}}% -\pgfpathlineto{\pgfqpoint{1.128084in}{2.111711in}}% -\pgfpathlineto{\pgfqpoint{1.202000in}{2.127167in}}% -\pgfpathlineto{\pgfqpoint{1.287903in}{2.141865in}}% -\pgfpathlineto{\pgfqpoint{1.385792in}{2.155401in}}% -\pgfpathlineto{\pgfqpoint{1.494668in}{2.167305in}}% -\pgfpathlineto{\pgfqpoint{1.612535in}{2.177062in}}% -\pgfpathlineto{\pgfqpoint{1.732399in}{2.183910in}}% -\pgfpathlineto{\pgfqpoint{1.847269in}{2.187451in}}% -\pgfpathlineto{\pgfqpoint{1.951151in}{2.187660in}}% -\pgfpathlineto{\pgfqpoint{2.041049in}{2.184855in}}% -\pgfpathlineto{\pgfqpoint{2.116963in}{2.179489in}}% -\pgfpathlineto{\pgfqpoint{2.179891in}{2.172045in}}% -\pgfpathlineto{\pgfqpoint{2.231833in}{2.162906in}}% -\pgfpathlineto{\pgfqpoint{2.274784in}{2.152346in}}% -\pgfpathlineto{\pgfqpoint{2.310743in}{2.140427in}}% -\pgfpathlineto{\pgfqpoint{2.340709in}{2.127341in}}% -\pgfpathlineto{\pgfqpoint{2.365681in}{2.113201in}}% -\pgfpathlineto{\pgfqpoint{2.386657in}{2.097957in}}% -\pgfpathlineto{\pgfqpoint{2.404637in}{2.081234in}}% -\pgfpathlineto{\pgfqpoint{2.420619in}{2.062036in}}% -\pgfpathlineto{\pgfqpoint{2.433604in}{2.041733in}}% -\pgfpathlineto{\pgfqpoint{2.444591in}{2.019228in}}% -\pgfpathlineto{\pgfqpoint{2.454580in}{1.991581in}}% -\pgfpathlineto{\pgfqpoint{2.462571in}{1.960514in}}% -\pgfpathlineto{\pgfqpoint{2.469563in}{1.920021in}}% -\pgfpathlineto{\pgfqpoint{2.474557in}{1.873580in}}% -\pgfpathlineto{\pgfqpoint{2.478553in}{1.805777in}}% -\pgfpathlineto{\pgfqpoint{2.480586in}{1.732718in}}% -\pgfpathmoveto{\pgfqpoint{2.484219in}{1.732718in}}% -\pgfpathlineto{\pgfqpoint{2.486544in}{1.815182in}}% -\pgfpathlineto{\pgfqpoint{2.491538in}{1.891600in}}% -\pgfpathlineto{\pgfqpoint{2.498530in}{1.947168in}}% -\pgfpathlineto{\pgfqpoint{2.506521in}{1.987046in}}% -\pgfpathlineto{\pgfqpoint{2.516510in}{2.021891in}}% -\pgfpathlineto{\pgfqpoint{2.528496in}{2.052678in}}% -\pgfpathlineto{\pgfqpoint{2.542480in}{2.080234in}}% -\pgfpathlineto{\pgfqpoint{2.558462in}{2.105153in}}% -\pgfpathlineto{\pgfqpoint{2.577441in}{2.128933in}}% -\pgfpathlineto{\pgfqpoint{2.598417in}{2.150115in}}% -\pgfpathlineto{\pgfqpoint{2.619393in}{2.167048in}}% -\pgfpathlineto{\pgfqpoint{2.639371in}{2.179324in}}% -\pgfpathlineto{\pgfqpoint{2.655352in}{2.185829in}}% -\pgfpathlineto{\pgfqpoint{2.668338in}{2.187959in}}% -\pgfpathlineto{\pgfqpoint{2.678326in}{2.186578in}}% -\pgfpathlineto{\pgfqpoint{2.686317in}{2.182435in}}% -\pgfpathlineto{\pgfqpoint{2.693309in}{2.175207in}}% -\pgfpathlineto{\pgfqpoint{2.699303in}{2.164543in}}% -\pgfpathlineto{\pgfqpoint{2.705296in}{2.146413in}}% -\pgfpathlineto{\pgfqpoint{2.710290in}{2.119757in}}% -\pgfpathlineto{\pgfqpoint{2.714286in}{2.080320in}}% -\pgfpathlineto{\pgfqpoint{2.717282in}{2.018766in}}% -\pgfpathlineto{\pgfqpoint{2.719280in}{1.902417in}}% -\pgfpathlineto{\pgfqpoint{2.720279in}{1.787994in}}% -\pgfpathlineto{\pgfqpoint{2.723275in}{2.052161in}}% -\pgfpathlineto{\pgfqpoint{2.728270in}{2.159459in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.187964in}}% +\pgfpathmoveto{\pgfqpoint{0.737191in}{1.784518in}}% +\pgfpathlineto{\pgfqpoint{0.742958in}{1.832403in}}% +\pgfpathlineto{\pgfqpoint{0.750925in}{1.871252in}}% +\pgfpathlineto{\pgfqpoint{0.759888in}{1.900142in}}% +\pgfpathlineto{\pgfqpoint{0.770842in}{1.925439in}}% +\pgfpathlineto{\pgfqpoint{0.783788in}{1.947737in}}% +\pgfpathlineto{\pgfqpoint{0.799722in}{1.968737in}}% +\pgfpathlineto{\pgfqpoint{0.817647in}{1.987242in}}% +\pgfpathlineto{\pgfqpoint{0.839556in}{2.005268in}}% +\pgfpathlineto{\pgfqpoint{0.865449in}{2.022379in}}% +\pgfpathlineto{\pgfqpoint{0.896320in}{2.038901in}}% +\pgfpathlineto{\pgfqpoint{0.933167in}{2.054946in}}% +\pgfpathlineto{\pgfqpoint{0.976985in}{2.070524in}}% +\pgfpathlineto{\pgfqpoint{1.028770in}{2.085590in}}% +\pgfpathlineto{\pgfqpoint{1.090513in}{2.100289in}}% +\pgfpathlineto{\pgfqpoint{1.164207in}{2.114587in}}% +\pgfpathlineto{\pgfqpoint{1.251842in}{2.128336in}}% +\pgfpathlineto{\pgfqpoint{1.353420in}{2.141062in}}% +\pgfpathlineto{\pgfqpoint{1.468940in}{2.152368in}}% +\pgfpathlineto{\pgfqpoint{1.595414in}{2.161615in}}% +\pgfpathlineto{\pgfqpoint{1.725871in}{2.168064in}}% +\pgfpathlineto{\pgfqpoint{1.850354in}{2.171188in}}% +\pgfpathlineto{\pgfqpoint{1.961890in}{2.170972in}}% +\pgfpathlineto{\pgfqpoint{2.056497in}{2.167777in}}% +\pgfpathlineto{\pgfqpoint{2.134174in}{2.162158in}}% +\pgfpathlineto{\pgfqpoint{2.196913in}{2.154666in}}% +\pgfpathlineto{\pgfqpoint{2.248698in}{2.145463in}}% +\pgfpathlineto{\pgfqpoint{2.290524in}{2.134993in}}% +\pgfpathlineto{\pgfqpoint{2.324383in}{2.123493in}}% +\pgfpathlineto{\pgfqpoint{2.352267in}{2.110935in}}% +\pgfpathlineto{\pgfqpoint{2.375172in}{2.097452in}}% +\pgfpathlineto{\pgfqpoint{2.395089in}{2.082154in}}% +\pgfpathlineto{\pgfqpoint{2.411023in}{2.066192in}}% +\pgfpathlineto{\pgfqpoint{2.424965in}{2.047880in}}% +\pgfpathlineto{\pgfqpoint{2.436915in}{2.026837in}}% +\pgfpathlineto{\pgfqpoint{2.446874in}{2.002671in}}% +\pgfpathlineto{\pgfqpoint{2.454841in}{1.975182in}}% +\pgfpathlineto{\pgfqpoint{2.461812in}{1.938571in}}% +\pgfpathlineto{\pgfqpoint{2.466791in}{1.894821in}}% +\pgfpathlineto{\pgfqpoint{2.469778in}{1.848425in}}% +\pgfpathlineto{\pgfqpoint{2.471839in}{1.784518in}}% +\pgfpathmoveto{\pgfqpoint{2.475385in}{1.784518in}}% +\pgfpathlineto{\pgfqpoint{2.477745in}{1.856374in}}% +\pgfpathlineto{\pgfqpoint{2.482725in}{1.920971in}}% +\pgfpathlineto{\pgfqpoint{2.489696in}{1.967944in}}% +\pgfpathlineto{\pgfqpoint{2.497663in}{2.001653in}}% +\pgfpathlineto{\pgfqpoint{2.507621in}{2.031108in}}% +\pgfpathlineto{\pgfqpoint{2.519571in}{2.057133in}}% +\pgfpathlineto{\pgfqpoint{2.533513in}{2.080426in}}% +\pgfpathlineto{\pgfqpoint{2.550443in}{2.102664in}}% +\pgfpathlineto{\pgfqpoint{2.569364in}{2.122536in}}% +\pgfpathlineto{\pgfqpoint{2.591273in}{2.141008in}}% +\pgfpathlineto{\pgfqpoint{2.613182in}{2.155578in}}% +\pgfpathlineto{\pgfqpoint{2.633099in}{2.165435in}}% +\pgfpathlineto{\pgfqpoint{2.650029in}{2.170549in}}% +\pgfpathlineto{\pgfqpoint{2.662975in}{2.171353in}}% +\pgfpathlineto{\pgfqpoint{2.672934in}{2.168930in}}% +\pgfpathlineto{\pgfqpoint{2.680901in}{2.163776in}}% +\pgfpathlineto{\pgfqpoint{2.687872in}{2.155218in}}% +\pgfpathlineto{\pgfqpoint{2.693847in}{2.142465in}}% +\pgfpathlineto{\pgfqpoint{2.698826in}{2.124457in}}% +\pgfpathlineto{\pgfqpoint{2.702810in}{2.099873in}}% +\pgfpathlineto{\pgfqpoint{2.706793in}{2.050915in}}% +\pgfpathlineto{\pgfqpoint{2.708785in}{1.994774in}}% +\pgfpathlineto{\pgfqpoint{2.710776in}{1.833392in}}% +\pgfpathlineto{\pgfqpoint{2.713764in}{2.056695in}}% +\pgfpathlineto{\pgfqpoint{2.718743in}{2.147396in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.171491in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -622,14 +448,14 @@ \definecolor{currentstroke}{rgb}{1.000000,0.647059,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.730268in}{2.187964in}}% -\pgfpathlineto{\pgfqpoint{2.739948in}{2.296201in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{2.408537in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{2.408537in}}% +\pgfpathmoveto{\pgfqpoint{2.720735in}{2.171491in}}% +\pgfpathlineto{\pgfqpoint{2.730416in}{2.263242in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{2.357944in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{2.357944in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{1.798407in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -637,65 +463,61 @@ \definecolor{currentstroke}{rgb}{1.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.750075in}{2.408537in}}% -\pgfpathlineto{\pgfqpoint{2.755020in}{2.489017in}}% -\pgfpathlineto{\pgfqpoint{2.757987in}{2.575142in}}% -\pgfpathlineto{\pgfqpoint{2.759965in}{2.739853in}}% -\pgfpathlineto{\pgfqpoint{2.760954in}{2.732944in}}% -\pgfpathlineto{\pgfqpoint{2.763921in}{2.559521in}}% -\pgfpathlineto{\pgfqpoint{2.767876in}{2.498072in}}% -\pgfpathlineto{\pgfqpoint{2.772821in}{2.462357in}}% -\pgfpathlineto{\pgfqpoint{2.778755in}{2.439486in}}% -\pgfpathlineto{\pgfqpoint{2.785678in}{2.424627in}}% -\pgfpathlineto{\pgfqpoint{2.793589in}{2.415351in}}% -\pgfpathlineto{\pgfqpoint{2.801501in}{2.410617in}}% -\pgfpathlineto{\pgfqpoint{2.811391in}{2.408469in}}% -\pgfpathlineto{\pgfqpoint{2.823258in}{2.409298in}}% -\pgfpathlineto{\pgfqpoint{2.838093in}{2.413594in}}% -\pgfpathlineto{\pgfqpoint{2.856883in}{2.422398in}}% -\pgfpathlineto{\pgfqpoint{2.879629in}{2.436615in}}% -\pgfpathlineto{\pgfqpoint{2.904353in}{2.455827in}}% -\pgfpathlineto{\pgfqpoint{2.928088in}{2.478242in}}% -\pgfpathlineto{\pgfqpoint{2.948856in}{2.502012in}}% -\pgfpathlineto{\pgfqpoint{2.966657in}{2.526883in}}% -\pgfpathlineto{\pgfqpoint{2.982481in}{2.554434in}}% -\pgfpathlineto{\pgfqpoint{2.995337in}{2.583034in}}% -\pgfpathlineto{\pgfqpoint{3.006216in}{2.614845in}}% -\pgfpathlineto{\pgfqpoint{3.015116in}{2.650561in}}% -\pgfpathlineto{\pgfqpoint{3.022039in}{2.690604in}}% -\pgfpathlineto{\pgfqpoint{3.027973in}{2.745226in}}% -\pgfpathlineto{\pgfqpoint{3.031928in}{2.812248in}}% -\pgfpathlineto{\pgfqpoint{3.033527in}{2.863889in}}% -\pgfpathmoveto{\pgfqpoint{3.038280in}{2.863889in}}% -\pgfpathlineto{\pgfqpoint{3.041818in}{2.775420in}}% -\pgfpathlineto{\pgfqpoint{3.047752in}{2.709952in}}% -\pgfpathlineto{\pgfqpoint{3.054675in}{2.667083in}}% -\pgfpathlineto{\pgfqpoint{3.063575in}{2.631439in}}% -\pgfpathlineto{\pgfqpoint{3.073465in}{2.603860in}}% -\pgfpathlineto{\pgfqpoint{3.085332in}{2.579578in}}% -\pgfpathlineto{\pgfqpoint{3.099178in}{2.558262in}}% -\pgfpathlineto{\pgfqpoint{3.115001in}{2.539530in}}% -\pgfpathlineto{\pgfqpoint{3.133791in}{2.522224in}}% -\pgfpathlineto{\pgfqpoint{3.155548in}{2.506551in}}% -\pgfpathlineto{\pgfqpoint{3.181261in}{2.492030in}}% -\pgfpathlineto{\pgfqpoint{3.210930in}{2.478899in}}% -\pgfpathlineto{\pgfqpoint{3.246533in}{2.466615in}}% -\pgfpathlineto{\pgfqpoint{3.289058in}{2.455313in}}% -\pgfpathlineto{\pgfqpoint{3.340484in}{2.444955in}}% -\pgfpathlineto{\pgfqpoint{3.402788in}{2.435657in}}% -\pgfpathlineto{\pgfqpoint{3.479927in}{2.427399in}}% -\pgfpathlineto{\pgfqpoint{3.575856in}{2.420378in}}% -\pgfpathlineto{\pgfqpoint{3.697498in}{2.414729in}}% -\pgfpathlineto{\pgfqpoint{3.854742in}{2.410690in}}% -\pgfpathlineto{\pgfqpoint{4.063413in}{2.408586in}}% -\pgfpathlineto{\pgfqpoint{4.355156in}{2.408934in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.412037in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.412037in}}% +\pgfpathmoveto{\pgfqpoint{2.740483in}{2.357944in}}% +\pgfpathlineto{\pgfqpoint{2.745413in}{2.425975in}}% +\pgfpathlineto{\pgfqpoint{2.748371in}{2.498777in}}% +\pgfpathlineto{\pgfqpoint{2.750343in}{2.638009in}}% +\pgfpathlineto{\pgfqpoint{2.751329in}{2.632169in}}% +\pgfpathlineto{\pgfqpoint{2.754287in}{2.485572in}}% +\pgfpathlineto{\pgfqpoint{2.758231in}{2.433629in}}% +\pgfpathlineto{\pgfqpoint{2.763161in}{2.403439in}}% +\pgfpathlineto{\pgfqpoint{2.769076in}{2.384105in}}% +\pgfpathlineto{\pgfqpoint{2.775978in}{2.371545in}}% +\pgfpathlineto{\pgfqpoint{2.783866in}{2.363704in}}% +\pgfpathlineto{\pgfqpoint{2.792740in}{2.359387in}}% +\pgfpathlineto{\pgfqpoint{2.803586in}{2.357822in}}% +\pgfpathlineto{\pgfqpoint{2.817390in}{2.359308in}}% +\pgfpathlineto{\pgfqpoint{2.835137in}{2.364651in}}% +\pgfpathlineto{\pgfqpoint{2.856829in}{2.374526in}}% +\pgfpathlineto{\pgfqpoint{2.882464in}{2.389713in}}% +\pgfpathlineto{\pgfqpoint{2.908100in}{2.408525in}}% +\pgfpathlineto{\pgfqpoint{2.930777in}{2.428838in}}% +\pgfpathlineto{\pgfqpoint{2.950497in}{2.450483in}}% +\pgfpathlineto{\pgfqpoint{2.967259in}{2.473386in}}% +\pgfpathlineto{\pgfqpoint{2.981062in}{2.497332in}}% +\pgfpathlineto{\pgfqpoint{2.992894in}{2.524185in}}% +\pgfpathlineto{\pgfqpoint{3.002754in}{2.554872in}}% +\pgfpathlineto{\pgfqpoint{3.010642in}{2.590647in}}% +\pgfpathlineto{\pgfqpoint{3.016558in}{2.632873in}}% +\pgfpathlineto{\pgfqpoint{3.020502in}{2.681015in}}% +\pgfpathlineto{\pgfqpoint{3.023145in}{2.745006in}}% +\pgfpathmoveto{\pgfqpoint{3.027755in}{2.745006in}}% +\pgfpathlineto{\pgfqpoint{3.031347in}{2.668074in}}% +\pgfpathlineto{\pgfqpoint{3.037263in}{2.612733in}}% +\pgfpathlineto{\pgfqpoint{3.044165in}{2.576495in}}% +\pgfpathlineto{\pgfqpoint{3.053039in}{2.546365in}}% +\pgfpathlineto{\pgfqpoint{3.063885in}{2.521091in}}% +\pgfpathlineto{\pgfqpoint{3.076702in}{2.499633in}}% +\pgfpathlineto{\pgfqpoint{3.091492in}{2.481219in}}% +\pgfpathlineto{\pgfqpoint{3.108254in}{2.465278in}}% +\pgfpathlineto{\pgfqpoint{3.127973in}{2.450741in}}% +\pgfpathlineto{\pgfqpoint{3.151637in}{2.437187in}}% +\pgfpathlineto{\pgfqpoint{3.180230in}{2.424515in}}% +\pgfpathlineto{\pgfqpoint{3.214740in}{2.412770in}}% +\pgfpathlineto{\pgfqpoint{3.256151in}{2.402052in}}% +\pgfpathlineto{\pgfqpoint{3.307422in}{2.392129in}}% +\pgfpathlineto{\pgfqpoint{3.370525in}{2.383222in}}% +\pgfpathlineto{\pgfqpoint{3.449403in}{2.375370in}}% +\pgfpathlineto{\pgfqpoint{3.548987in}{2.368720in}}% +\pgfpathlineto{\pgfqpoint{3.677165in}{2.363420in}}% +\pgfpathlineto{\pgfqpoint{3.845767in}{2.359706in}}% +\pgfpathlineto{\pgfqpoint{4.076487in}{2.357907in}}% +\pgfpathlineto{\pgfqpoint{4.409748in}{2.358631in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.360903in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.360903in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% -\pgfusepath{clip}% \pgfsetbuttcap% \pgfsetroundjoin% \definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% @@ -720,21 +542,19 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{1.746607in}% +\pgfsys@transformshift{0.730012in}{1.728454in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \begin{pgfscope}% -\pgfsys@transformshift{2.470692in}{1.746607in}% +\pgfsys@transformshift{2.461941in}{1.728454in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \begin{pgfscope}% -\pgfsys@transformshift{2.720284in}{1.746607in}% +\pgfsys@transformshift{2.710781in}{1.728454in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{1.746607in}}{\pgfqpoint{3.993473in}{1.103393in}}% -\pgfusepath{clip}% \pgfsetbuttcap% \pgfsetroundjoin% \definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% @@ -752,11 +572,15 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{2.750235in}{2.850000in}% +\pgfsys@transformshift{2.740642in}{2.801071in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsys@transformshift{3.029297in}{2.801071in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \begin{pgfscope}% -\pgfsys@transformshift{3.039762in}{2.850000in}% +\pgfsys@transformshift{4.810994in}{2.801071in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -767,8 +591,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -778,8 +602,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{4.727004in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{4.711458in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -789,8 +613,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.746607in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.746607in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.798407in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.798407in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -800,8 +624,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{2.850000in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{2.850000in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{2.731117in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{2.731117in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -814,16 +638,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.000000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.473611in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{1.473611in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{0.370218in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.481479in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{1.481479in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{0.548769in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetbuttcap% \pgfsetmiterjoin% @@ -835,16 +659,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.200000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.150435in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{1.150435in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{2.253828in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{2.253828in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{1.150435in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.208295in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{1.208295in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{2.141005in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{2.141005in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{1.208295in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetbuttcap% \pgfsetmiterjoin% @@ -856,16 +680,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.200000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.730268in}{0.480557in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{0.480557in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{1.150435in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{1.150435in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{0.480557in}}% +\pgfpathmoveto{\pgfqpoint{2.720735in}{0.642040in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{0.642040in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{1.208295in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{1.208295in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{0.642040in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetbuttcap% \pgfsetmiterjoin% @@ -877,16 +701,16 @@ \pgfsetstrokecolor{currentstroke}% \pgfsetstrokeopacity{0.200000}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.750075in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.746812in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.746812in}{0.480557in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{0.480557in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{0.370218in}}% +\pgfpathmoveto{\pgfqpoint{2.740483in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.731206in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.731206in}{0.642040in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{0.642040in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{0.548769in}}% \pgfpathclose% \pgfusepath{fill}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -894,8 +718,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -913,7 +737,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{0.370218in}% +\pgfsys@transformshift{0.730012in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -921,10 +745,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.733531in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.00}\)}% +\pgftext[x=0.730012in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.00}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -932,8 +756,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{1.232715in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{1.232715in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{1.227693in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{1.227693in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -951,7 +775,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{1.232715in}{0.370218in}% +\pgfsys@transformshift{1.227693in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -959,10 +783,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=1.232715in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.25}\)}% +\pgftext[x=1.227693in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.25}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -970,8 +794,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{1.731899in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{1.731899in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{1.725373in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{1.725373in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -989,7 +813,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{1.731899in}{0.370218in}% +\pgfsys@transformshift{1.725373in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -997,10 +821,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=1.731899in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.50}\)}% +\pgftext[x=1.725373in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.50}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1008,8 +832,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.231083in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{2.231083in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{2.223054in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.223054in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1027,7 +851,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{2.231083in}{0.370218in}% +\pgfsys@transformshift{2.223054in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1035,10 +859,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=2.231083in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.75}\)}% +\pgftext[x=2.223054in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.75}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1046,8 +870,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.730268in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{2.720735in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1065,7 +889,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{2.730268in}{0.370218in}% +\pgfsys@transformshift{2.720735in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1073,10 +897,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=2.730268in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.00}\)}% +\pgftext[x=2.720735in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.00}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1084,8 +908,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{3.229452in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{3.229452in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{3.218416in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.218416in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1103,7 +927,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{3.229452in}{0.370218in}% +\pgfsys@transformshift{3.218416in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1111,10 +935,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=3.229452in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.25}\)}% +\pgftext[x=3.218416in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.25}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1122,8 +946,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{3.728636in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{3.728636in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{3.716097in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{3.716097in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1141,7 +965,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{3.728636in}{0.370218in}% +\pgfsys@transformshift{3.716097in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1149,10 +973,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=3.728636in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.50}\)}% +\pgftext[x=3.716097in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.50}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1160,8 +984,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{4.227820in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.227820in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{4.213778in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.213778in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1179,7 +1003,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{4.227820in}{0.370218in}% +\pgfsys@transformshift{4.213778in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1187,10 +1011,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=4.227820in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.75}\)}% +\pgftext[x=4.213778in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.75}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1198,8 +1022,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{4.727004in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{4.711458in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1217,7 +1041,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{4.727004in}{0.370218in}% +\pgfsys@transformshift{4.711458in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1225,10 +1049,16 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=4.727004in,y=0.272996in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {2.00}\)}% +\pgftext[x=4.711458in,y=0.451547in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {2.00}\)}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.720735in,y=0.272534in,,top]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle w\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1236,8 +1066,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{0.370218in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{0.548769in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1255,7 +1085,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{0.370218in}% +\pgfsys@transformshift{0.730012in}{0.548769in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1263,10 +1093,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.458839in, y=0.321992in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.0}\)}% +\pgftext[x=0.455320in, y=0.500544in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.0}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1274,8 +1104,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{0.921914in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{0.921914in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.015124in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.015124in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1293,7 +1123,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{0.921914in}% +\pgfsys@transformshift{0.730012in}{1.015124in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1301,10 +1131,10 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.458839in, y=0.873689in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.5}\)}% +\pgftext[x=0.455320in, y=0.966899in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {0.5}\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1312,8 +1142,8 @@ \definecolor{currentstroke}{rgb}{0.690196,0.690196,0.690196}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.473611in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.481479in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1331,7 +1161,7 @@ \pgfusepath{stroke,fill}% }% \begin{pgfscope}% -\pgfsys@transformshift{0.733531in}{1.473611in}% +\pgfsys@transformshift{0.730012in}{1.481479in}% \pgfsys@useobject{currentmarker}{}% \end{pgfscope}% \end{pgfscope}% @@ -1339,16 +1169,16 @@ \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.458839in, y=1.425386in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.0}\)}% +\pgftext[x=0.455320in, y=1.433254in, left, base]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle {1.0}\)}% \end{pgfscope}% \begin{pgfscope}% \definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{textcolor}% \pgfsetfillcolor{textcolor}% -\pgftext[x=0.403284in,y=0.921914in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle |H(w)|\)}% +\pgftext[x=0.399764in,y=1.015124in,,bottom,rotate=90.000000]{\color{textcolor}\rmfamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle |H(w)|\)}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1356,69 +1186,65 @@ \definecolor{currentstroke}{rgb}{0.000000,0.501961,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.473611in}}% -\pgfpathlineto{\pgfqpoint{0.778480in}{1.472092in}}% -\pgfpathlineto{\pgfqpoint{0.824428in}{1.467451in}}% -\pgfpathlineto{\pgfqpoint{0.872374in}{1.459441in}}% -\pgfpathlineto{\pgfqpoint{0.922317in}{1.447955in}}% -\pgfpathlineto{\pgfqpoint{0.977255in}{1.432096in}}% -\pgfpathlineto{\pgfqpoint{1.039185in}{1.410937in}}% -\pgfpathlineto{\pgfqpoint{1.116097in}{1.381211in}}% -\pgfpathlineto{\pgfqpoint{1.241955in}{1.328667in}}% -\pgfpathlineto{\pgfqpoint{1.380797in}{1.271746in}}% -\pgfpathlineto{\pgfqpoint{1.469697in}{1.238676in}}% -\pgfpathlineto{\pgfqpoint{1.547608in}{1.212952in}}% -\pgfpathlineto{\pgfqpoint{1.618528in}{1.192719in}}% -\pgfpathlineto{\pgfqpoint{1.685452in}{1.176794in}}% -\pgfpathlineto{\pgfqpoint{1.748381in}{1.164963in}}% -\pgfpathlineto{\pgfqpoint{1.807314in}{1.156972in}}% -\pgfpathlineto{\pgfqpoint{1.863250in}{1.152493in}}% -\pgfpathlineto{\pgfqpoint{1.915192in}{1.151401in}}% -\pgfpathlineto{\pgfqpoint{1.964136in}{1.153458in}}% -\pgfpathlineto{\pgfqpoint{2.009085in}{1.158380in}}% -\pgfpathlineto{\pgfqpoint{2.051038in}{1.165994in}}% -\pgfpathlineto{\pgfqpoint{2.090992in}{1.176379in}}% -\pgfpathlineto{\pgfqpoint{2.127950in}{1.189125in}}% -\pgfpathlineto{\pgfqpoint{2.162911in}{1.204375in}}% -\pgfpathlineto{\pgfqpoint{2.196872in}{1.222581in}}% -\pgfpathlineto{\pgfqpoint{2.229835in}{1.243857in}}% -\pgfpathlineto{\pgfqpoint{2.261799in}{1.268239in}}% -\pgfpathlineto{\pgfqpoint{2.293762in}{1.296564in}}% -\pgfpathlineto{\pgfqpoint{2.327724in}{1.330955in}}% -\pgfpathlineto{\pgfqpoint{2.368677in}{1.377168in}}% -\pgfpathlineto{\pgfqpoint{2.423615in}{1.439002in}}% -\pgfpathlineto{\pgfqpoint{2.444591in}{1.457728in}}% -\pgfpathlineto{\pgfqpoint{2.460573in}{1.467921in}}% -\pgfpathlineto{\pgfqpoint{2.473559in}{1.472628in}}% -\pgfpathlineto{\pgfqpoint{2.484546in}{1.473549in}}% -\pgfpathlineto{\pgfqpoint{2.495534in}{1.471251in}}% -\pgfpathlineto{\pgfqpoint{2.505522in}{1.466094in}}% -\pgfpathlineto{\pgfqpoint{2.516510in}{1.456841in}}% -\pgfpathlineto{\pgfqpoint{2.528496in}{1.442365in}}% -\pgfpathlineto{\pgfqpoint{2.541482in}{1.421636in}}% -\pgfpathlineto{\pgfqpoint{2.556465in}{1.391771in}}% -\pgfpathlineto{\pgfqpoint{2.575443in}{1.346664in}}% -\pgfpathlineto{\pgfqpoint{2.642367in}{1.179908in}}% -\pgfpathlineto{\pgfqpoint{2.654354in}{1.161187in}}% -\pgfpathlineto{\pgfqpoint{2.662345in}{1.153583in}}% -\pgfpathlineto{\pgfqpoint{2.668338in}{1.151382in}}% -\pgfpathlineto{\pgfqpoint{2.673332in}{1.152493in}}% -\pgfpathlineto{\pgfqpoint{2.678326in}{1.156976in}}% -\pgfpathlineto{\pgfqpoint{2.683321in}{1.165718in}}% -\pgfpathlineto{\pgfqpoint{2.689314in}{1.183573in}}% -\pgfpathlineto{\pgfqpoint{2.695307in}{1.212352in}}% -\pgfpathlineto{\pgfqpoint{2.701300in}{1.256368in}}% -\pgfpathlineto{\pgfqpoint{2.708292in}{1.333653in}}% -\pgfpathlineto{\pgfqpoint{2.719280in}{1.472196in}}% -\pgfpathlineto{\pgfqpoint{2.720279in}{1.473481in}}% -\pgfpathlineto{\pgfqpoint{2.722277in}{1.459537in}}% -\pgfpathlineto{\pgfqpoint{2.725273in}{1.387304in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{1.151360in}}% -\pgfpathlineto{\pgfqpoint{2.730268in}{1.151360in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.481479in}}% +\pgfpathlineto{\pgfqpoint{0.778809in}{1.479958in}}% +\pgfpathlineto{\pgfqpoint{0.828602in}{1.475328in}}% +\pgfpathlineto{\pgfqpoint{0.880387in}{1.467407in}}% +\pgfpathlineto{\pgfqpoint{0.936155in}{1.455696in}}% +\pgfpathlineto{\pgfqpoint{0.997898in}{1.439486in}}% +\pgfpathlineto{\pgfqpoint{1.070596in}{1.417072in}}% +\pgfpathlineto{\pgfqpoint{1.169186in}{1.383167in}}% +\pgfpathlineto{\pgfqpoint{1.400225in}{1.302696in}}% +\pgfpathlineto{\pgfqpoint{1.490849in}{1.275037in}}% +\pgfpathlineto{\pgfqpoint{1.571513in}{1.253580in}}% +\pgfpathlineto{\pgfqpoint{1.646203in}{1.236862in}}% +\pgfpathlineto{\pgfqpoint{1.715913in}{1.224372in}}% +\pgfpathlineto{\pgfqpoint{1.781640in}{1.215702in}}% +\pgfpathlineto{\pgfqpoint{1.843383in}{1.210669in}}% +\pgfpathlineto{\pgfqpoint{1.900147in}{1.209077in}}% +\pgfpathlineto{\pgfqpoint{1.952927in}{1.210605in}}% +\pgfpathlineto{\pgfqpoint{2.001724in}{1.215011in}}% +\pgfpathlineto{\pgfqpoint{2.047534in}{1.222202in}}% +\pgfpathlineto{\pgfqpoint{2.090356in}{1.232057in}}% +\pgfpathlineto{\pgfqpoint{2.130190in}{1.244399in}}% +\pgfpathlineto{\pgfqpoint{2.167037in}{1.258981in}}% +\pgfpathlineto{\pgfqpoint{2.202888in}{1.276524in}}% +\pgfpathlineto{\pgfqpoint{2.236747in}{1.296522in}}% +\pgfpathlineto{\pgfqpoint{2.270607in}{1.320174in}}% +\pgfpathlineto{\pgfqpoint{2.304466in}{1.347623in}}% +\pgfpathlineto{\pgfqpoint{2.342308in}{1.382404in}}% +\pgfpathlineto{\pgfqpoint{2.424965in}{1.460278in}}% +\pgfpathlineto{\pgfqpoint{2.443886in}{1.472813in}}% +\pgfpathlineto{\pgfqpoint{2.458824in}{1.479192in}}% +\pgfpathlineto{\pgfqpoint{2.471770in}{1.481443in}}% +\pgfpathlineto{\pgfqpoint{2.483721in}{1.480301in}}% +\pgfpathlineto{\pgfqpoint{2.494675in}{1.476203in}}% +\pgfpathlineto{\pgfqpoint{2.505629in}{1.468966in}}% +\pgfpathlineto{\pgfqpoint{2.517580in}{1.457374in}}% +\pgfpathlineto{\pgfqpoint{2.530526in}{1.440517in}}% +\pgfpathlineto{\pgfqpoint{2.545464in}{1.415946in}}% +\pgfpathlineto{\pgfqpoint{2.564385in}{1.378434in}}% +\pgfpathlineto{\pgfqpoint{2.598244in}{1.302559in}}% +\pgfpathlineto{\pgfqpoint{2.623141in}{1.250407in}}% +\pgfpathlineto{\pgfqpoint{2.638079in}{1.225864in}}% +\pgfpathlineto{\pgfqpoint{2.648037in}{1.214516in}}% +\pgfpathlineto{\pgfqpoint{2.656004in}{1.209662in}}% +\pgfpathlineto{\pgfqpoint{2.661979in}{1.209352in}}% +\pgfpathlineto{\pgfqpoint{2.666959in}{1.211923in}}% +\pgfpathlineto{\pgfqpoint{2.671938in}{1.217767in}}% +\pgfpathlineto{\pgfqpoint{2.677913in}{1.230396in}}% +\pgfpathlineto{\pgfqpoint{2.683888in}{1.251298in}}% +\pgfpathlineto{\pgfqpoint{2.689863in}{1.283737in}}% +\pgfpathlineto{\pgfqpoint{2.696834in}{1.341847in}}% +\pgfpathlineto{\pgfqpoint{2.710776in}{1.481369in}}% +\pgfpathlineto{\pgfqpoint{2.712768in}{1.469582in}}% +\pgfpathlineto{\pgfqpoint{2.715756in}{1.408523in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{1.209077in}}% +\pgfpathlineto{\pgfqpoint{2.720735in}{1.209077in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1426,15 +1252,15 @@ \definecolor{currentstroke}{rgb}{1.000000,0.647059,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.730268in}{1.151360in}}% -\pgfpathlineto{\pgfqpoint{2.739978in}{0.709346in}}% -\pgfpathlineto{\pgfqpoint{2.746805in}{0.536003in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{0.480388in}}% -\pgfpathlineto{\pgfqpoint{2.750075in}{0.480388in}}% +\pgfpathmoveto{\pgfqpoint{2.720735in}{1.209077in}}% +\pgfpathlineto{\pgfqpoint{2.730426in}{0.835162in}}% +\pgfpathlineto{\pgfqpoint{2.737243in}{0.688588in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{0.641897in}}% +\pgfpathlineto{\pgfqpoint{2.740483in}{0.641897in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% -\pgfpathrectangle{\pgfqpoint{0.733531in}{0.370218in}}{\pgfqpoint{3.993473in}{1.103393in}}% +\pgfpathrectangle{\pgfqpoint{0.730012in}{0.548769in}}{\pgfqpoint{3.981446in}{0.932710in}}% \pgfusepath{clip}% \pgfsetrectcap% \pgfsetroundjoin% @@ -1442,37 +1268,34 @@ \definecolor{currentstroke}{rgb}{1.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{2.750075in}{0.480388in}}% -\pgfpathlineto{\pgfqpoint{2.756998in}{0.398490in}}% -\pgfpathlineto{\pgfqpoint{2.759965in}{0.373708in}}% -\pgfpathlineto{\pgfqpoint{2.760954in}{0.373969in}}% -\pgfpathlineto{\pgfqpoint{2.768865in}{0.418088in}}% -\pgfpathlineto{\pgfqpoint{2.776777in}{0.445199in}}% -\pgfpathlineto{\pgfqpoint{2.784689in}{0.461928in}}% -\pgfpathlineto{\pgfqpoint{2.792600in}{0.471986in}}% -\pgfpathlineto{\pgfqpoint{2.800512in}{0.477584in}}% -\pgfpathlineto{\pgfqpoint{2.809413in}{0.480262in}}% -\pgfpathlineto{\pgfqpoint{2.820291in}{0.480059in}}% -\pgfpathlineto{\pgfqpoint{2.834137in}{0.476323in}}% -\pgfpathlineto{\pgfqpoint{2.852927in}{0.467773in}}% -\pgfpathlineto{\pgfqpoint{2.886552in}{0.448435in}}% -\pgfpathlineto{\pgfqpoint{2.959734in}{0.406057in}}% -\pgfpathlineto{\pgfqpoint{3.006216in}{0.383080in}}% -\pgfpathlineto{\pgfqpoint{3.036873in}{0.370620in}}% -\pgfpathlineto{\pgfqpoint{3.085332in}{0.388800in}}% -\pgfpathlineto{\pgfqpoint{3.137747in}{0.405140in}}% -\pgfpathlineto{\pgfqpoint{3.195107in}{0.419767in}}% -\pgfpathlineto{\pgfqpoint{3.259389in}{0.432926in}}% -\pgfpathlineto{\pgfqpoint{3.332572in}{0.444663in}}% -\pgfpathlineto{\pgfqpoint{3.415645in}{0.454798in}}% -\pgfpathlineto{\pgfqpoint{3.512563in}{0.463443in}}% -\pgfpathlineto{\pgfqpoint{3.627282in}{0.470496in}}% -\pgfpathlineto{\pgfqpoint{3.766725in}{0.475859in}}% -\pgfpathlineto{\pgfqpoint{3.940782in}{0.479318in}}% -\pgfpathlineto{\pgfqpoint{4.167253in}{0.480557in}}% -\pgfpathlineto{\pgfqpoint{4.484709in}{0.478977in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{0.476474in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{0.476474in}}% +\pgfpathmoveto{\pgfqpoint{2.740483in}{0.641897in}}% +\pgfpathlineto{\pgfqpoint{2.747385in}{0.572668in}}% +\pgfpathlineto{\pgfqpoint{2.750343in}{0.551719in}}% +\pgfpathlineto{\pgfqpoint{2.751329in}{0.551940in}}% +\pgfpathlineto{\pgfqpoint{2.759217in}{0.589234in}}% +\pgfpathlineto{\pgfqpoint{2.767105in}{0.612151in}}% +\pgfpathlineto{\pgfqpoint{2.774992in}{0.626293in}}% +\pgfpathlineto{\pgfqpoint{2.782880in}{0.634794in}}% +\pgfpathlineto{\pgfqpoint{2.791754in}{0.639917in}}% +\pgfpathlineto{\pgfqpoint{2.801614in}{0.641963in}}% +\pgfpathlineto{\pgfqpoint{2.813446in}{0.641168in}}% +\pgfpathlineto{\pgfqpoint{2.829221in}{0.636806in}}% +\pgfpathlineto{\pgfqpoint{2.852885in}{0.626689in}}% +\pgfpathlineto{\pgfqpoint{2.998810in}{0.558502in}}% +\pgfpathlineto{\pgfqpoint{3.026417in}{0.549109in}}% +\pgfpathlineto{\pgfqpoint{3.078674in}{0.565615in}}% +\pgfpathlineto{\pgfqpoint{3.135861in}{0.580381in}}% +\pgfpathlineto{\pgfqpoint{3.198964in}{0.593453in}}% +\pgfpathlineto{\pgfqpoint{3.270941in}{0.605140in}}% +\pgfpathlineto{\pgfqpoint{3.353763in}{0.615363in}}% +\pgfpathlineto{\pgfqpoint{3.450389in}{0.624079in}}% +\pgfpathlineto{\pgfqpoint{3.565749in}{0.631263in}}% +\pgfpathlineto{\pgfqpoint{3.705758in}{0.636764in}}% +\pgfpathlineto{\pgfqpoint{3.881263in}{0.640439in}}% +\pgfpathlineto{\pgfqpoint{4.111982in}{0.642013in}}% +\pgfpathlineto{\pgfqpoint{4.439328in}{0.640922in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{0.638589in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{0.638589in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1482,8 +1305,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{0.733531in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{0.730012in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1493,8 +1316,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{4.727004in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{4.711458in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1504,8 +1327,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{0.370218in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{0.370218in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{0.548769in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{0.548769in}}% \pgfusepath{stroke}% \end{pgfscope}% \begin{pgfscope}% @@ -1515,8 +1338,8 @@ \definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% \pgfsetstrokecolor{currentstroke}% \pgfsetdash{}{0pt}% -\pgfpathmoveto{\pgfqpoint{0.733531in}{1.473611in}}% -\pgfpathlineto{\pgfqpoint{4.727004in}{1.473611in}}% +\pgfpathmoveto{\pgfqpoint{0.730012in}{1.481479in}}% +\pgfpathlineto{\pgfqpoint{4.711458in}{1.481479in}}% \pgfusepath{stroke}% \end{pgfscope}% \end{pgfpicture}% diff --git a/buch/papers/ellfilter/python/elliptic2.py b/buch/papers/ellfilter/python/elliptic2.py index 20a7428..3d9065d 100644 --- a/buch/papers/ellfilter/python/elliptic2.py +++ b/buch/papers/ellfilter/python/elliptic2.py @@ -29,6 +29,9 @@ def ellip_filter(N, mode=-1): fs=None ) + print("poles", a) + print("zeros", b) + if mode == 0: w = np.linspace(0*omega_c,omega_c, 2000) elif mode == 1: @@ -80,12 +83,12 @@ axs[0].add_patch(Rectangle( )) zeros = [0,0.87,0.995] -poles = [1.01,1.155] +poles = [1.01,1.155, 2.05] import matplotlib.transforms axs[0].plot( # mark errors as vertical bars zeros, - np.zeros_like(zeros), + np.zeros_like(zeros)-0.075, "o", mfc='none', color='black', @@ -93,10 +96,11 @@ axs[0].plot( # mark errors as vertical bars axs[0].transData, axs[0].transAxes, ), + clip_on=False, ) axs[0].plot( # mark errors as vertical bars poles, - np.ones_like(poles), + np.ones_like(poles)+0.075, "x", mfc='none', color='black', @@ -104,6 +108,7 @@ axs[0].plot( # mark errors as vertical bars axs[0].transData, axs[0].transAxes, ), + clip_on=False, ) for mode, c in enumerate(["green", "orange", "red"]): @@ -135,17 +140,19 @@ axs[1].add_patch(Rectangle( axs[0].set_xlim([0,2]) axs[0].set_ylim([1e-4,1e6]) +axs[0].tick_params(bottom = False) axs[0].grid() -axs[0].set_ylabel("$F^2_N(w)$") +axs[0].set_ylabel("$|F_N(w)|^2$") axs[1].grid() axs[1].set_ylim([0,1]) axs[1].set_ylabel("$|H(w)|$") +axs[1].set_xlabel("$w$") plt.tight_layout() plt.savefig("elliptic.pgf") plt.show() -print("zeros", a) -print("poles", b) +print("poles", a) +print("zeros", b) diff --git a/buch/papers/ellfilter/python/elliptic3.py b/buch/papers/ellfilter/python/elliptic3.py new file mode 100644 index 0000000..10accbb --- /dev/null +++ b/buch/papers/ellfilter/python/elliptic3.py @@ -0,0 +1,101 @@ +# %% + +import matplotlib.pyplot as plt +import scipy.signal +import numpy as np +import matplotlib +from matplotlib.patches import Rectangle +import scipy.special +import scipyx as spx + +# import plot_params + +def last_color(): + return plt.gca().lines[-1].get_color() + +# define elliptic functions + +def ell_int(k): + """ Calculate K(k) """ + m = k**2 + return scipy.special.ellipk(m) + +def sn(z, k): + return spx.ellipj(z, k**2)[0] + +def cn(z, k): + return spx.ellipj(z, k**2)[1] + +def dn(z, k): + return spx.ellipj(z, k**2)[2] + +def cd(z, k): + sn, cn, dn, ph = spx.ellipj(z, k**2) + return cn / dn + +N = 6 +L = (N//2) * 2 +r = N - L + +k = 0.9143 + +i = np.arange(1, L+1) +ui = (2*i - 1) / N +k1 = k**N * np.prod(sn(ui*ell_int(k), k)**4) +k1 = 0.0165 +k1 = 0.0058 + + +kp = np.sqrt(1-k**2) +k1p = np.sqrt(1-k1**2) + +K = ell_int(k) +Kp = ell_int(kp) +K1 = ell_int(k1) +K1p = ell_int(k1p) + +# assert np.allclose(Kp*K1*N/K, K1p, rtol=0.001) + +zeros = K/N * (np.arange(N)*2 + 1) +poles = zeros + (1j * Kp) +# if len(poles) % 2 == 0: +# poles = np.delete(poles, len(poles)//2) + + +plt.plot(np.real(zeros), np.imag(zeros), "o") +plt.plot(np.real(poles), np.imag(poles), "x") +# plt.plot([0,K1], [0,K1p]) +# plt.plot([0,K], [0,Kp]) +plt.show() + +zeros = cd(zeros, k) +poles = cd(poles, k) + +plt.plot(np.real(zeros), np.imag(zeros), "o") +plt.plot(np.real(poles), np.imag(poles), "x") +plt.ylim([-0.1,0.1]) +plt.xlim([-2.5,2.5]) +plt.show() + +w = np.linspace(0,2, 2000) + +def make_RN(w): + y = np.prod(w[:, None] - zeros[None], axis=-1) / np.prod(w[:, None] - poles[None], axis=-1) + y /= np.prod(1 - zeros) / np.prod(1 - poles) + return y + + +RN = make_RN(w) + +plt.semilogy(w, np.abs(RN)) +plt.ylim([0.1,1000]) + +plt.plot(w, np.ones_like(w) / k1) + +plt.show() + +H = 1 / (1 + RN**2) + +plt.semilogy(w, np.abs(H)) +plt.ylim([0.00001,1]) +plt.show() diff --git a/buch/papers/ellfilter/tikz/arccos.tikz.tex b/buch/papers/ellfilter/tikz/arccos.tikz.tex index b11c25d..538ac35 100644 --- a/buch/papers/ellfilter/tikz/arccos.tikz.tex +++ b/buch/papers/ellfilter/tikz/arccos.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] \tikzset{pole/.style={cross out, draw=black, minimum size=(0.15cm-\pgflinewidth), inner sep=0pt, outer sep=0pt}} @@ -22,6 +22,19 @@ \clip(-7.5,-2) rectangle (7.5,2); + \foreach \i in {-2,...,1} { + \begin{scope}[xshift=\i*4cm] + \draw[->, thick, darkgreen!50] (-1, 0) -- (0,0); + \draw[->, thick, orange!50] (0, 0) -- (0,1.5); + \draw[->, thick, orange!50] (0, 0) -- (0,-1.5); + \draw[->, thick, darkgreen!50] (1, 0) -- (0,0); + \draw[->, thick, cyan!50] (2, 0) -- (1,0); + \draw[->, thick, blue!50] (2,1.5) -- (2, 0); + \draw[->, thick, blue!50] (2,-1.5) -- (2, 0); + \draw[->, thick, cyan!50] (2, 0) -- (3,0); + \end{scope} + } + % \pause \draw[ultra thick, ->, darkgreen] (1, 0) -- (0,0); % \pause @@ -34,16 +47,6 @@ \foreach \i in {-2,...,1} { \begin{scope}[xshift=\i*4cm] - \begin{scope}[] - \draw[->, darkgreen] (-1, 0) -- (0,0); - \draw[->, orange] (0, 0) -- (0,1.5); - \draw[->, orange] (0, 0) -- (0,-1.5); - \draw[->, darkgreen] (1, 0) -- (0,0); - \draw[->, cyan] (2, 0) -- (1,0); - \draw[->, blue] (2,1.5) -- (2, 0); - \draw[->, blue] (2,-1.5) -- (2, 0); - \draw[->, cyan] (2, 0) -- (3,0); - \end{scope} \node[zero] at (1,0) {}; \node[zero] at (3,0) {}; \end{scope} diff --git a/buch/papers/ellfilter/tikz/arccos2.tikz.tex b/buch/papers/ellfilter/tikz/arccos2.tikz.tex index 2cec75f..d0e0430 100644 --- a/buch/papers/ellfilter/tikz/arccos2.tikz.tex +++ b/buch/papers/ellfilter/tikz/arccos2.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] \tikzset{pole/.style={cross out, draw=black, minimum size=(0.15cm-\pgflinewidth), inner sep=0pt, outer sep=0pt}} diff --git a/buch/papers/ellfilter/tikz/cd.tikz.tex b/buch/papers/ellfilter/tikz/cd.tikz.tex index 0cf2417..ffe3b9c 100644 --- a/buch/papers/ellfilter/tikz/cd.tikz.tex +++ b/buch/papers/ellfilter/tikz/cd.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] @@ -9,63 +9,59 @@ \draw[gray, ->] (0,-1.5) -- (0,1.5) node[anchor=south]{$\mathrm{Im}~z$}; \draw[gray, ->] (-5,0) -- (5,0) node[anchor=west]{$\mathrm{Re}~z$}; - \draw[gray] ( 1,0) +(0,0.1) -- +(0, -0.1) node[inner sep=0, anchor=north] {\small $K$}; - \draw[gray] (0, 0.5) +(0.1, 0) -- +(-0.1, 0) node[inner sep=0, anchor=east]{\small $jK^\prime$}; - - - \begin{scope} - - \begin{scope}[xshift=0cm] - - \clip(-4.5,-1.25) rectangle (4.5,1.25); - - \fill[yellow!30] (0,0) rectangle (1, 0.5); - - \foreach \i in {-2,...,1} { - \foreach \j in {-2,...,1} { - \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] - \draw[->, orange!50] (0, 0) -- (0,0.5); - \draw[->, darkgreen!50] (1, 0) -- (0,0); - \draw[->, cyan!50] (2, 0) -- (1,0); - \draw[->, blue!50] (2,0.5) -- (2, 0); - \draw[->, purple!50] (1, 0.5) -- (2,0.5); - \draw[->, red!50] (0, 0.5) -- (1,0.5); - \draw[->, orange!50] (0,1) -- (0,0.5); - \draw[->, blue!50] (2,0.5) -- (2, 1); - \draw[->, purple!50] (3, 0.5) -- (2,0.5); - \draw[->, red!50] (4, 0.5) -- (3,0.5); - \draw[->, cyan!50] (2, 0) -- (3,0); - \draw[->, darkgreen!50] (3, 0) -- (4,0); - \end{scope} - } + \begin{scope}[xshift=0cm] + + \clip(-4.5,-1.25) rectangle (4.5,1.25); + + \fill[yellow!30] (0,0) rectangle (1, 0.5); + + \foreach \i in {-2,...,1} { + \foreach \j in {-2,...,1} { + \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] + \draw[->, thick, orange!50] (0, 0) -- (0,0.5); + \draw[->, thick, darkgreen!50] (1, 0) -- (0,0); + \draw[->, thick, cyan!50] (2, 0) -- (1,0); + \draw[->, thick, blue!50] (2,0.5) -- (2, 0); + \draw[->, thick, purple!50] (1, 0.5) -- (2,0.5); + \draw[->, thick, red!50] (0, 0.5) -- (1,0.5); + \draw[->, thick, orange!50] (0,1) -- (0,0.5); + \draw[->, thick, blue!50] (2,0.5) -- (2, 1); + \draw[->, thick, purple!50] (3, 0.5) -- (2,0.5); + \draw[->, thick, red!50] (4, 0.5) -- (3,0.5); + \draw[->, thick, cyan!50] (2, 0) -- (3,0); + \draw[->, thick, darkgreen!50] (3, 0) -- (4,0); + \end{scope} } - - \draw[ultra thick, ->, orange] (0, 0) -- (0,0.5); - \draw[ultra thick, ->, darkgreen] (1, 0) -- (0,0); - \draw[ultra thick, ->, cyan] (2, 0) -- (1,0); - \draw[ultra thick, ->, blue] (2,0.5) -- (2, 0); - \draw[ultra thick, ->, purple] (1, 0.5) -- (2,0.5); - \draw[ultra thick, ->, red] (0, 0.5) -- (1,0.5); - - \foreach \i in {-2,...,1} { - \foreach \j in {-2,...,1} { - \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] - \node[zero] at ( 1, 0) {}; - \node[zero] at ( 3, 0) {}; - \node[pole] at ( 1,0.5) {}; - \node[pole] at ( 3,0.5) {}; - - \end{scope} - } + } + + \draw[ultra thick, ->, orange] (0, 0) -- (0,0.5); + \draw[ultra thick, ->, darkgreen] (1, 0) -- (0,0); + \draw[ultra thick, ->, cyan] (2, 0) -- (1,0); + \draw[ultra thick, ->, blue] (2,0.5) -- (2, 0); + \draw[ultra thick, ->, purple] (1, 0.5) -- (2,0.5); + \draw[ultra thick, ->, red] (0, 0.5) -- (1,0.5); + + \foreach \i in {-2,...,1} { + \foreach \j in {-2,...,1} { + \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] + \node[zero] at ( 1, 0) {}; + \node[zero] at ( 3, 0) {}; + \node[pole] at ( 1,0.5) {}; + \node[pole] at ( 3,0.5) {}; + + \end{scope} } - - \end{scope} + } \end{scope} + \draw[gray] ( 1,0) +(0,0.05) -- +(0, -0.05) node[inner sep=0, anchor=north west] {\small $K$}; + \draw[gray] (0, 0.5) +(0.1, 0) -- +(-0.1, 0) node[inner sep=0, anchor=south east]{\small $jK^\prime$}; + \end{scope} + \node[zero] at (4,3) (n) {}; \node[anchor=west] at (n.east) {Nullstelle}; \node[pole, below=0.25cm of n] (n) {}; diff --git a/buch/papers/ellfilter/tikz/cd2.tikz.tex b/buch/papers/ellfilter/tikz/cd2.tikz.tex index d4187c4..47efa53 100644 --- a/buch/papers/ellfilter/tikz/cd2.tikz.tex +++ b/buch/papers/ellfilter/tikz/cd2.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] \tikzstyle{dot} = [fill, circle, inner sep =0, minimum height=0.1cm] @@ -7,11 +7,15 @@ \begin{scope}[xscale=1.25, yscale=3.5] + \fill[orange!30] (0,0) rectangle (5, 0.5); + % \fill[yellow!30] (0,0) rectangle (1, 0.1); + \node[] at (2.5, 0.25) {\small $N=5$}; + \draw[gray, ->] (0,-0.55) -- (0,1.05) node[anchor=south]{$\mathrm{Im}~z_1$}; \draw[gray, ->] (-1.5,0) -- (6,0) node[anchor=west]{$\mathrm{Re}~z_1$}; - \draw[gray] ( 1,0) +(0,0.05) -- +(0, -0.05) node[inner sep=0, anchor=north] {\small $K_1$}; - \draw[gray] ( 5,0) +(0,0.05) -- +(0, -0.05) node[inner sep=0, anchor=north] {\small $5K_1$}; + \draw[gray] ( 1,0) +(0,0.035) -- +(0, -0.035) node[inner sep=0, anchor=north] {\small $K_1$}; + \draw[gray] ( 5,0) +(0,0.035) -- +(0, -0.035) node[inner sep=0, anchor=north] {\small $5K_1$}; \draw[gray] (0, 0.5) +(0.1, 0) -- +(-0.1, 0) node[inner sep=0, anchor=east]{\small $jK^\prime_1$}; \begin{scope} @@ -34,9 +38,6 @@ % \node[] at (1.5, 0.25) {\small $N=2$}; % \node[] at (2.5, 0.25) {\small $N=3$}; - \fill[orange!30] (0,0) rectangle (5, 0.5); - % \fill[yellow!30] (0,0) rectangle (1, 0.1); - \node[] at (2.5, 0.25) {\small $N=5$}; \draw[decorate,decoration={brace,amplitude=3pt,mirror}, yshift=0.05cm] diff --git a/buch/papers/ellfilter/tikz/cd3.tikz.tex b/buch/papers/ellfilter/tikz/cd3.tikz.tex index ae18519..158a5ec 100644 --- a/buch/papers/ellfilter/tikz/cd3.tikz.tex +++ b/buch/papers/ellfilter/tikz/cd3.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] \tikzstyle{dot} = [fill, circle, inner sep =0, minimum height=0.1cm] diff --git a/buch/papers/ellfilter/tikz/elliptic_transform1.tikz.tex b/buch/papers/ellfilter/tikz/elliptic_transform1.tikz.tex index 2a36ee0..329cadd 100644 --- a/buch/papers/ellfilter/tikz/elliptic_transform1.tikz.tex +++ b/buch/papers/ellfilter/tikz/elliptic_transform1.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] diff --git a/buch/papers/ellfilter/tikz/elliptic_transform2.tikz.tex b/buch/papers/ellfilter/tikz/elliptic_transform2.tikz.tex index 20c2d82..31c40dc 100644 --- a/buch/papers/ellfilter/tikz/elliptic_transform2.tikz.tex +++ b/buch/papers/ellfilter/tikz/elliptic_transform2.tikz.tex @@ -4,7 +4,7 @@ \def\nn{2} \def\a{2.5} -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] \tikzstyle{dot} = [fill, circle, inner sep =0, minimum height=0.1cm] diff --git a/buch/papers/ellfilter/tikz/filter.tikz.tex b/buch/papers/ellfilter/tikz/filter.tikz.tex index 769602a..1232bf0 100644 --- a/buch/papers/ellfilter/tikz/filter.tikz.tex +++ b/buch/papers/ellfilter/tikz/filter.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] @@ -14,8 +14,7 @@ \draw[gray, ->] (0,0) -- (0,1.25) node[anchor=south]{$|H(\Omega)|$}; \draw[gray, ->] (0,0) -- (2.75,0) node[anchor=west]{$\Omega$}; - \draw[dashed] (0,0.707) node[left] {$\sqrt{\frac{1}{1+\varepsilon^2}}$} -| (1,0) node[below] {$\Omega_p$}; - \draw[dashed] (0,0.707) node[left] {$\sqrt{\frac{1}{1+\varepsilon^2}}$} -| (1,0) node[below] {$\Omega_p$}; + \draw[dashed] (0,0.707) node[left] {$\sqrt{\frac{1}{1+\varepsilon^2}}$} -- (1, 0.707) (1,0) node[below] {$\Omega_p$}; \node[left] at(0,1) {$1$}; diff --git a/buch/papers/ellfilter/tikz/fundamental_rectangle.tikz.tex b/buch/papers/ellfilter/tikz/fundamental_rectangle.tikz.tex index 921dbfa..1d1e45e 100644 --- a/buch/papers/ellfilter/tikz/fundamental_rectangle.tikz.tex +++ b/buch/papers/ellfilter/tikz/fundamental_rectangle.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] diff --git a/buch/papers/ellfilter/tikz/pn.tikz.tex b/buch/papers/ellfilter/tikz/pn.tikz.tex new file mode 100644 index 0000000..5dd8fa4 --- /dev/null +++ b/buch/papers/ellfilter/tikz/pn.tikz.tex @@ -0,0 +1,63 @@ +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] + + \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] + \tikzstyle{dot} = [fill, circle, inner sep =0, minimum height=0.1cm] + + \tikzset{pole/.style={cross out, draw=black, minimum size=(0.15cm-\pgflinewidth), inner sep=0pt, outer sep=0pt}} + + \begin{scope}[xscale=0.75, yscale=2.5] + + \fill[orange!30] (0,0) rectangle (5, 0.5); + % \fill[yellow!30] (0,0) rectangle (1, 0.1); + \node[] at (5, 0.25) {\small $N=5$}; + + \draw[gray, ->] (0,-0.25) -- (0,0.75) node[anchor=south]{$\mathrm{Im}~z$}; + \draw[gray, ->] (-1,0) -- (11,0) node[anchor=west]{$\mathrm{Re}~z$}; + + \draw[gray] ( 5,0) +(0,0.035) -- +(0, -0.035) node[inner sep=0, anchor=north] {\small $K$}; + \draw[gray] (0, 0.5) +(0.1, 0) -- +(-0.1, 0) node[inner sep=0, anchor=east]{\small $jK^\prime$}; + + \begin{scope} + + \draw[ultra thick, ->, purple] (5, 0.5) -- (10,0.5); + \draw[ultra thick, ->, blue] (10, 0.5) -- (10,0); + \draw[ultra thick, ->, cyan] (10, 0) -- (5,0); + \draw[ultra thick, ->, darkgreen] (5, 0) -- (0,0); + \draw[ultra thick, ->, orange] (-0, 0) -- (0,0.5); + \draw[ultra thick, ->, red] (0,0.5) -- (5, 0.5); + + \foreach \i in {1,...,5} { + \begin{scope}[xshift=(\i-1)*2cm] + \node[zero] at ( 1, 0) {}; + \node[anchor=south west] at ( 1, 0) {$n_\i$}; + \node[pole] at ( 1,0.5) {}; + \node[anchor=south west] at ( 1, 0.5) {$p_\i$}; + \end{scope} + } + + \end{scope} + + \end{scope} + + % \begin{scope}[yshift=-1.5cm, xshift=3.75cm, xscale=0.75] + + % \draw[gray, ->] (-6,0) -- (6,0) node[anchor=west]{$w$}; + + % \draw[ultra thick, ->, purple] (-5, 0) -- (-3, 0); + % \draw[ultra thick, ->, blue] (-3, 0) -- (-2, 0); + % \draw[ultra thick, ->, cyan] (-2, 0) -- (0, 0); + % \draw[ultra thick, ->, darkgreen] (0, 0) -- (2, 0); + % \draw[ultra thick, ->, orange] (2, 0) -- (3, 0); + % \draw[ultra thick, ->, red] (3, 0) -- (5, 0); + + % \node[anchor=south] at (-5,0) {$-\infty$}; + % \node[anchor=south] at (-3,0) {$-1/k$}; + % \node[anchor=south] at (-2,0) {$-1$}; + % \node[anchor=south] at (0,0) {$0$}; + % \node[anchor=south] at (2,0) {$1$}; + % \node[anchor=south] at (3,0) {$1/k$}; + % \node[anchor=south] at (5,0) {$\infty$}; + + % \end{scope} + +\end{tikzpicture} diff --git a/buch/papers/ellfilter/tikz/sn.tikz.tex b/buch/papers/ellfilter/tikz/sn.tikz.tex index 0546fda..c34b619 100644 --- a/buch/papers/ellfilter/tikz/sn.tikz.tex +++ b/buch/papers/ellfilter/tikz/sn.tikz.tex @@ -1,4 +1,4 @@ -\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2] +\begin{tikzpicture}[>=stealth', auto, node distance=2cm, scale=1.2, thick] \tikzstyle{zero} = [draw, circle, inner sep =0, minimum height=0.15cm] @@ -6,66 +6,65 @@ \begin{scope}[xscale=0.9, yscale=1.8] + \fill[yellow!30] (0,0) rectangle (1, 0.5); + \draw[gray, ->] (0,-1.5) -- (0,1.5) node[anchor=south]{$\mathrm{Im}~z$}; \draw[gray, ->] (-5,0) -- (5,0) node[anchor=west]{$\mathrm{Re}~z$}; - \begin{scope} - - \clip(-4.5,-1.25) rectangle (4.5,1.25); - - \fill[yellow!30] (0,0) rectangle (1, 0.5); - - \begin{scope}[xshift=-1cm] - - \foreach \i in {-2,...,2} { - \foreach \j in {-2,...,1} { - \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] - \draw[<-, blue!50] (0, 0) -- (0,0.5); - \draw[<-, cyan!50] (1, 0) -- (0,0); - \draw[<-, darkgreen!50] (2, 0) -- (1,0); - \draw[<-, orange!50] (2,0.5) -- (2, 0); - \draw[<-, red!50] (1, 0.5) -- (2,0.5); - \draw[<-, purple!50] (0, 0.5) -- (1,0.5); - \draw[<-, blue!50] (0,1) -- (0,0.5); - \draw[<-, orange!50] (2,0.5) -- (2, 1); - \draw[<-, red!50] (3, 0.5) -- (2,0.5); - \draw[<-, purple!50] (4, 0.5) -- (3,0.5); - \draw[<-, darkgreen!50] (2, 0) -- (3,0); - \draw[<-, cyan!50] (3, 0) -- (4,0); - \end{scope} - } - } - % \pause - \draw[ultra thick, <-, darkgreen] (2, 0) -- (1,0); - % \pause - \draw[ultra thick, <-, orange] (2,0.5) -- (2, 0); - % \pause - \draw[ultra thick, <-, red] (1, 0.5) -- (2,0.5); - % \pause - \draw[ultra thick, <-, blue] (0, 0) -- (0,0.5); - \draw[ultra thick, <-, purple] (0, 0.5) -- (1,0.5); - \draw[ultra thick, <-, cyan] (1, 0) -- (0,0); - % \pause - - - \foreach \i in {-2,...,2} { - \foreach \j in {-2,...,1} { - \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] - \node[zero] at ( 1, 0) {}; - \node[zero] at ( 3, 0) {}; - \node[pole] at ( 1,0.5) {}; - \node[pole] at ( 3,0.5) {}; - \end{scope} - } - } + \clip(-4.5,-1.25) rectangle (4.5,1.25); + - \end{scope} + \begin{scope}[xshift=-1cm] + + \foreach \i in {-2,...,2} { + \foreach \j in {-2,...,1} { + \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] + \draw[<-, thick, blue!50] (0, 0) -- (0,0.5); + \draw[<-, thick, cyan!50] (1, 0) -- (0,0); + \draw[<-, thick, darkgreen!50] (2, 0) -- (1,0); + \draw[<-, thick, orange!50] (2,0.5) -- (2, 0); + \draw[<-, thick, red!50] (1, 0.5) -- (2,0.5); + \draw[<-, thick, purple!50] (0, 0.5) -- (1,0.5); + \draw[<-, thick, blue!50] (0,1) -- (0,0.5); + \draw[<-, thick, orange!50] (2,0.5) -- (2, 1); + \draw[<-, thick, red!50] (3, 0.5) -- (2,0.5); + \draw[<-, thick, purple!50] (4, 0.5) -- (3,0.5); + \draw[<-, thick, darkgreen!50] (2, 0) -- (3,0); + \draw[<-, thick, cyan!50] (3, 0) -- (4,0); + \end{scope} + } + } + + % \pause + \draw[ultra thick, <-, darkgreen] (2, 0) -- (1,0); + % \pause + \draw[ultra thick, <-, orange] (2,0.5) -- (2, 0); + % \pause + \draw[ultra thick, <-, red] (1, 0.5) -- (2,0.5); + % \pause + \draw[ultra thick, <-, blue] (0, 0) -- (0,0.5); + \draw[ultra thick, <-, purple] (0, 0.5) -- (1,0.5); + \draw[ultra thick, <-, cyan] (1, 0) -- (0,0); + % \pause + + + \foreach \i in {-2,...,2} { + \foreach \j in {-2,...,1} { + \begin{scope}[xshift=\i*4cm, yshift=\j*1cm] + \node[zero] at ( 1, 0) {}; + \node[zero] at ( 3, 0) {}; + \node[pole] at ( 1,0.5) {}; + \node[pole] at ( 3,0.5) {}; + \end{scope} + } + } \end{scope} - \draw[gray] ( 1,0) +(0,0.1) -- +(0, -0.1) node[inner sep=0, anchor=north] {\small $K$}; - \draw[gray] (0, 0.5) +(0.1, 0) -- +(-0.1, 0) node[inner sep=0, anchor=east]{\small $jK^\prime$}; + + \draw[gray] ( 1,0) +(0,0.05) -- +(0, -0.05) node[inner sep=0, anchor=north west] {\small $K$}; + \draw[gray] (0, 0.5) +(0.1, 0) -- +(-0.1, 0) node[inner sep=0, anchor=south east]{\small $jK^\prime$}; \end{scope} diff --git a/buch/papers/ellfilter/tschebyscheff.tex b/buch/papers/ellfilter/tschebyscheff.tex index 639c87c..84095a7 100644 --- a/buch/papers/ellfilter/tschebyscheff.tex +++ b/buch/papers/ellfilter/tschebyscheff.tex @@ -2,22 +2,22 @@ Als Einstieg betrachten wir das Tschebyscheff-Filter, welches sehr verwandt ist mit dem elliptischen Filter. Genauer ausgedrückt erhält man die Tschebyscheff-1 und -2 Filter bei Grenzwerten von Parametern beim elliptischen Filter. -Der Name des Filters deutet schon an, dass die Tschebyscheff-Polynome $T_N$ (siehe auch Kapitel \label{buch:polynome:section:tschebyscheff}) für das Filter relevant sind: -\begin{align} +Der Name des Filters deutet schon an, dass die Tschebyscheff-Polynome $T_N$ (siehe auch Kapitel \ref{buch:polynome:section:tschebyscheff}) für das Filter relevant sind: +\begin{align*} T_{0}(x)&=1\\ T_{1}(x)&=x\\ T_{2}(x)&=2x^{2}-1\\ T_{3}(x)&=4x^{3}-3x\\ T_{n+1}(x)&=2x~T_{n}(x)-T_{n-1}(x). -\end{align} +\end{align*} Bemerkenswert ist, dass die Polynome im Intervall $[-1, 1]$ mit der trigonometrischen Funktion \begin{align} \label{ellfilter:eq:chebychef_polynomials} T_N(w) &= \cos \left( N \cos^{-1}(w) \right) \\ - &= \cos \left(N~z \right), \quad w= \cos(z) + &= \cos \left(N~z \right), \quad w= \cos(z) \label{ellfilter:eq:chebychef_polynomials2} \end{align} übereinstimmen. Der Zusammenhang lässt sich mit den Doppel- und Mehrfachwinkelfunktionen der trigonometrischen Funktionen erklären. -Abbildung \ref{ellfilter:fig:chebychef_polynomials} zeigt einige Tschebyscheff-Polynome. +Abbildung \ref{ellfilter:fig:chebychef_polynomials} zeigt einige Tschebyscheff-Polynome, wobei das Equiripple-Verhalten schon sichtbar ist. \begin{figure} \centering \input{papers/ellfilter/python/F_N_chebychev2.pgf} @@ -36,8 +36,7 @@ Wenn wir die Tschebyscheff-Polynome quadrieren, passen sie perfekt in die Forder \end{figure} Die analytische Fortsetzung von \eqref{ellfilter:eq:chebychef_polynomials} über das Intervall $[-1,1]$ hinaus stimmt mit den Polynomen überein, wie es zu erwarten ist. -Die genauere Betrachtung wird uns helfen die elliptischen Filter besser zu verstehen. - +Die genauere Betrachtung wird uns helfen, die elliptischen Filter besser zu verstehen. Starten wir mit der Funktion, die in \eqref{ellfilter:eq:chebychef_polynomials} als erstes auf $w$ angewendet wird, dem Arcuscosinus. Die invertierte Funktion des Kosinus kann als bestimmtes Integral dargestellt werden: \begin{align} @@ -63,7 +62,7 @@ Die invertierte Funktion des Kosinus kann als bestimmtes Integral dargestellt we ~dz + \frac{\pi}{2}. \end{align} -Der Integrand oder auch die Ableitung von $\cos^{-1}(x)$ +Der Integrand oder auch die Ableitung von $\cos^{-1}(x)$, \begin{equation} \frac{ -1 @@ -71,10 +70,10 @@ Der Integrand oder auch die Ableitung von $\cos^{-1}(x)$ \sqrt{ 1-z^2 } - } + }, \end{equation} bestimmt dabei die Richtung, in welche die Funktion verläuft. -Der reelle Arcuscosinus is bekanntlich nur für $|z| \leq 1$ definiert. +Der reelle Arcuscosinus ist bekanntlich nur für $|z| \leq 1$ definiert. Hier bleibt der Wert unter der Wurzel positiv und das Integral liefert reelle Werte. Doch wenn $|z|$ über 1 hinausgeht, wird der Term unter der Wurzel negativ. Durch die Quadratwurzel entstehen für den Integranden zwei rein komplexe Lösungen. @@ -83,27 +82,28 @@ Abbildung \ref{ellfilter:fig:arccos} zeigt den Arcuscosinus in der komplexen Ebe \begin{figure} \centering \input{papers/ellfilter/tikz/arccos.tikz.tex} - \caption{Die Funktion $z = \cos^{-1}(w)$ dargestellt in der komplexen ebene.} + \caption{Die Funktion $z = \cos^{-1}(w)$ dargestellt in der komplexen Ebene.} \label{ellfilter:fig:arccos} \end{figure} -Wegen der Periodizität des Kosinus ist auch der Arcuscosinus $2\pi$-periodisch. +Wegen der Periodizität des Kosinus werden periodisch Werte in der $z$-Ebene auf den gleichen Wert in $w$ abgebildet. +Das gleiche Muster kommt daher periodisch vor. Das Einzeichnen von Pol- und Nullstellen ist hilfreich für die Betrachtung der Funktion. -In \eqref{ellfilter:eq:chebychef_polynomials} wird $z$ mit dem Ordnungsfaktor $N$ multipliziert und durch die Kosinusfunktion zurück transformiert. -Die Skalierung hat zur folge, dass bei der Rücktransformation durch den Kosinus mehrere Nullstellen durchlaufen werden. -Somit passiert $\cos( N~\cos^{-1}(w))$ im Intervall $[-1, 1]$ $N$ Nullstellen, wie dargestellt in Abbildung \ref{ellfilter:fig:arccos2}. +In \eqref{ellfilter:eq:chebychef_polynomials2} wird $z$ mit dem Ordnungsfaktor $N$ multipliziert und durch die Kosinusfunktion zurück transformiert. +Die Skalierung hat zur Folge, dass bei der Rücktransformation durch den Kosinus mehrere Nullstellen durchlaufen werden. +Somit passiert $\cos \big( N~\cos^{-1}(w) \big)$ im Intervall $[-1, 1]$ $N$ Nullstellen, wie dargestellt in Abbildung \ref{ellfilter:fig:arccos2}. \begin{figure} \centering \input{papers/ellfilter/tikz/arccos2.tikz.tex} \caption{ $z_1=N \cos^{-1}(w)$-Ebene der Tschebyscheff-Funktion. Die eingefärbten Pfade sind Verläufe von $w\in(-\infty, \infty)$ für $N = 4$. - Je grösser die Ordnung $N$ gewählt wird, desto mehr Nullstellen werden passiert die zu Equirippel-Verhalten führen. + Je grösser die Ordnung $N$ gewählt wird, desto mehr Nullstellen werden passiert die zu Equiripple-Verhalten führen. Die vertikalen Segmente der Funktion sorgen für das Ansteigen der Funktion gegen $\infty$ nach der Grenzfrequenz. Die eingezeichneten Nullstellen sind vom zurücktransformierenden Kosinus. } \label{ellfilter:fig:arccos2} \end{figure} -Durch die spezielle Anordnung der Nullstellen hat die Funktion auf der reellen Achse Equirippel-Verhalten und ist dennoch ein Polynom, was sich perfekt für linear Filter eignet. -Equirippel bedeutet, dass alle lokalen Maxima der Betragsfunktion gleich gross sind. +Durch die spezielle Anordnung der Nullstellen hat die Funktion auf der reellen Achse Equiripple-Verhalten und ist dennoch ein Polynom, was sich perfekt für lineare Filter eignet. +Für $|w| \le 1$ ist die Funktion begrenzt zwischen $-1$ und $1$. diff --git a/buch/papers/fm/00_modulation.tex b/buch/papers/fm/00_modulation.tex index e2ba39f..982d63c 100644 --- a/buch/papers/fm/00_modulation.tex +++ b/buch/papers/fm/00_modulation.tex @@ -3,11 +3,22 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % + +Durch die Modulation wird ein Nachrichtensignal \(m(t)\) auf ein Trägersignal (z.B. ein Sinus- oder Rechtecksignal) abgebildet (kombiniert). +Durch dieses Auftragen vom Nachrichtensignal \(m(t)\) kann das modulierte Signal in einem gewünschten Frequenzbereich übertragen werden. +Der ursprünglich Frequenzbereich des Nachrichtensignal \(m(t)\) erstreckt sich typischerweise von 0 Hz bis zur Bandbreite \(B_m\). +Beim Empfänger wird dann durch Demodulation das ursprüngliche Nachrichtensignal \(m(t)\) so originalgetreu wie möglich zurückgewonnen. +Beim Trägersignal \(x_c(t)\) handelt es sich um ein informationsloses Hilfssignal. +Durch die Modulation mit dem Nachrichtensignal \(m(t)\) wird es zum modulierten zu übertragenden Signal. +Für alle Erklärungen wird ein sinusförmiges Trägersignal benutzt, jedoch kann auch ein Rechtecksignal, +welches Digital einfach umzusetzten ist, +genauso als Trägersignal genutzt werden kann.\cite{fm:NAT} + \subsection{Modulationsarten\label{fm:section:modulation}} Das sinusförmige Trägersignal hat die übliche Form: \(x_c(t) = A_c \cdot \cos(\omega_c(t)+\varphi)\). -Wobei die konstanten Amplitude \(A_c\) und Phase \(\varphi\) vom Nachrichtensignal \(m(t)\) verändert wird. +Wobei die konstanten Amplitude \(A_c\) und Phase \(\varphi\) vom Nachrichtensignal \(m(t)\) verändert werden können. Der Parameter \(\omega_c\), die Trägerkreisfrequenz bzw. die Trägerfrequenz \(f_c = \frac{\omega_c}{2\pi}\), steht nicht für die modulation zur verfügung, statt dessen kann durch ihn die Frequenzachse frei gewählt werden. \newblockpunct @@ -25,6 +36,8 @@ die Phasenmodulation \(\varphi\) und dann noch die Momentankreisfrequenz \(\omeg \item PM \item FM \end{itemize} +Um modulation zu Verstehen ist es am Anschaulichst mit der AM Amplitudenmodulation, +da Phasenmodulation und Frequenzmodulation den gleichen Parameter verändert vernachlässige ich die Phasenmodulation ganz. To do: Bilder jeder Modulationsart diff --git a/buch/papers/fm/01_AM.tex b/buch/papers/fm/01_AM.tex index 21927f5..714b9a0 100644 --- a/buch/papers/fm/01_AM.tex +++ b/buch/papers/fm/01_AM.tex @@ -11,19 +11,61 @@ Nun zur Amplitudenmodulation verwenden wir das bevorzugte Trägersignal \[ x_c(t) = A_c \cdot \cos(\omega_ct). \] -Dies bringt den grossen Vorteil das, dass modulierend Signal sämtliche Anteile im Frequenzspektrum inanspruch nimmt -und das Trägersignal nur zwei komplexe Schwingungen besitzt. +Dies bringt den grossen Vorteil das, dass modulierend Signal sämtliche Anteile im Frequenzspektrum in Anspruch nimmt +und das Trägersignal nur zwei komplexe Schwingungen besitzt. Dies sieht man besonders in der Eulerischen Formel \[ x_c(t) = \frac{A_c}{2} \cdot e^{j\omega_ct}\;+\;\frac{A_c}{2} \cdot e^{-j\omega_ct}. + \label{fm:eq:AM:euler} \] Dabei ist die negative Frequenz der zweiten komplexen Schwingung zwingend erforderlich, damit in der Summe immer ein reellwertiges Trägersignal ergibt. Nun wird der Parameter \(A_c\) durch das Modulierende Signal \(m(t)\) ersetzt, wobei so \(m(t) \leqslant |1|\) normiert wurde. -\newline -\newline + +Dabei entseht wine Umhüllende kurve die unserem ursprünglichen signal \(m(t)\) entspricht. +\[ + x_c(t) = m(t) \cdot \cos(\omega_ct). +\] + +\begin{figure} + \centering + \input{papers/fm/Python animation/m_t.pgf} + \caption{modulierende Signal \(m(t)\)} + \label{fig:bessel} +\end{figure} +% TODO: +Bilder Hier beschrieib ich was AmplitudenModulation ist und mache dan den link zu Frequenzmodulation inkl Formel \[\cos( \cos x)\] so wird beschrieben das daraus eigentlich \(x_c(t) = A_c \cdot \cos(\omega_i)\) wird und somit \(x_c(t) = A_c \cdot \cos(\omega_c + \frac{d \varphi(t)}{dt})\). Da \(\sin \) abgeleitet \(\cos \) ergibt, so wird aus dem \(m(t)\) ein \( \frac{d \varphi(t)}{dt}\) in der momentan frequenz. \[ \Rightarrow \cos( \cos x) \] +\subsection{Frequenzspektrum} +Das Frequenzspektrum ist eine Darstellung von einem Signal im Frequenzbereich, das heisst man erkennt welche Frequenzen in einem Signal vorhanden sind. +Dafür muss man eine Fouriertransformation vornehmen. +Wird aus dieser Gleichung \eqref{fm:eq:AM:euler}die Fouriertransformation vorggenommen, so erhält man -\subsection{Frequenzspektrum}
\ No newline at end of file +% +%Ein Ziel der Modulation besteht darin, mehrere Nachrichtensignale von verschiedenen Sendern gleichzeitig +%in verschiedenen Frequenzbereichen über den gleichen Kanal zu senden. Um dieses Frequenzmultiplexing +%störungsfrei und mit eine Vielzahl von Teilnehmern durchführen zu können, muss die spektrale Beschaffen- +%heit der modulierten Signale möglichst gut bekannt sein. +%Dank des Modulationssatzes der Fouriertransformation lässt sich das Spektrum eines gewöhnlichen AM Si- +%gnals sofort bestimmen: +%A c μ +%F +%·(M n (ω−ω c ) + M n (ω+ω c )) (5.5) +%A c ·(1+μm n (t))·cos(ω c t) ❝ s A c π (δ(ω−ω c ) + δ(ω+ω c )) + +%2 +%Das zweiseitige Spektrum des Nachrichtensignals M (ω) wird mit dem Faktor A 2 c μ gewichtet und einmal +%nach +ω c und einmal nach −ω c verschoben. Dies führt im Vergleich zum Basisbandsignal zu einer Verdop- +%pelung der Bandbreite mit je einem Seitenband links und rechts der Trägerfrequenz. Weiter beinhaltet das +%Amplitudendichtespektrum je eine Deltafunktion mit Gewicht A c π an den Stellen ±ω c , d.h. ein fester, nicht- +%modulierter Amplitudenanteil bei der eigentlichen Trägerfrequenz. +%Das Amplitudendichtespektrum ist im nachfolgenden Graphen für A c = 1 und μ = 100% dargestellt.5.3. Gewöhnliche Amplitudenmodulation +%47 +%Abbildung 5.12: Amplitudendichtespektrum von gewöhnlicher AM +%Für das Nachrichtensignal wurde in diesem Graph mit einem Keil symbolhaft ein Amplitudendichtespektrum +%|M (ω)| gewählt, bei welchem der Anteil auf der positiven und jener auf der negativen Frequenzachse visuell +%gut auseinandergehalten werden können. Ein solch geformtes Spektrum wird aber in der Praxis kaum je +%auftreten: bei periodischen Testsignalen besteht das Nachrichtensignal aus einem Linienspektrum, bei einem +%Energiesignal mit zufälligem Verlauf aus einem kontinuierlichen Spektrum, welches jedoch nicht auf diese +%einfache Art geformt sein wird
\ No newline at end of file diff --git a/buch/papers/fm/02_FM.tex b/buch/papers/fm/02_FM.tex index fedfaaa..a01fb69 100644 --- a/buch/papers/fm/02_FM.tex +++ b/buch/papers/fm/02_FM.tex @@ -6,9 +6,65 @@ \section{FM \label{fm:section:teil1}} \rhead{FM} -\subsection{Frequenzspektrum} -TODO -Hier Beschreiben ich FM und FM im Frequenzspektrum. +\subsection{Frequenzmodulation} +(skript Nat ab Seite 60) +Als weiterer Parameter, um ein sinusförmiges Trägersignal \(x_c = A_c \cdot \cos(\omega_c t + \varphi)\) zu modulieren, +bietet sich neben der Amplitude \(A_c\) auch der Phasenwinkel \(\varphi\) oder die momentane Frequenzabweichung \(\frac{d\varphi}{dt}\) an. +Bei der Phasenmodulation (Englisch: phase modulation, PM) erzeugt das Nachrichtensignal \(m(t)\) eine Phasenabweichung \(\varphi(t)\) des modulierten Trägersignals im Vergleich zum nicht-modulierten Träger. Sie ist pro- +%portional zum Nachrichtensignal \(m(t)\) durch eine Skalierung mit der Phasenhubkonstanten (Englisch: phase deviation constant) +%k p [rad], +%welche die Amplitude des Nachrichtensignals auf die Phasenabweichung des +%modulierten Trägersignals abbildet: φ(t) = k p · m(t). Damit ergibt sich für das phasenmodulierte Trägersi- +%gnal: +%x PM (t) = A c · cos (ω c t + k p · m(t)) +%(5.16) +%Die modulierte Phase φ(t) verändert dabei auch die Momentanfrequenz (Englisch: instantaneous frequency) +%ω i +%, welche wie folgt berechnet wird: +%f i = 2π +%ω i (t) = ω c + +%d φ(t) +%dt +%(5.17) +%Bei der Frequenzmodulation (Englisch: frequency modulation, FM) ist die Abweichung der momentanen +%Kreisfrequenz ω i von der Trägerkreisfrequenz ω c proportional zum Nachrichtensignal m(t). Sie ergibt sich, +%indem m(t) mit der (Kreis-)Frequenzhubkonstanten (Englisch: frequency deviation constant) k f [rad/s] ska- +%liert wird: ω i (t) = ω c + k f · m(t). Diese sich zeitlich verändernde Abweichung von der Kreisfrequenz ω c +%verursacht gleichzeitig auch Schwankungen der Phase φ(t), welche wie folgt berechnet wird: +%φ(t) = +%Z t +%−∞ +%ω i (τ ) − ω c dτ = +%Somit ergibt sich für das frequenzmodulierte Trägersignal: +% +%Z t +%−∞ +%x FM (t) = A c · cos ω c t + k f +%k f · m(t) dτ +%Z t +%−∞ +% +%m(τ ) dτ +%(5.18) +%(5.19) +%Die Phase φ(t) hat dabei einen kontinuierlichen Verlauf, d.h. das FM-modulierte Signal x FM (t) weist keine +%Stellen auf, wo sich die Phase sprunghaft ändert. Aus diesem Grund spricht man bei frequenzmodulierten +%Signalen – speziell auch bei digitalen FM-Signalen – von einer Modulation mit kontinuierlicher Phase (Eng- +%lisch: continuous phase modulation). +%Wie aus diesen Ausführungen hervorgeht, sind Phasenmodulation und Frequenzmodulation äquivalente Mo- +%dulationsverfahren. Beide variieren sowohl die Phase φ wie auch die Momentanfrequenz ω i . Dadurch kann +%man leider nicht – wie vielleicht erhofft – je mit einem eigenen Nachrichtensignal ein gemeinsames Trägersi- +%gnal unabhängig PM- und FM-modulieren, ohne dass sich diese Modulationen für den Empfänger untrennbar +%vermischen würden. +% +%Um die mathematische Behandlung der nicht-linearen Winkelmodulation etwas zu verkürzen, ist es aufgrund +%dieser Äquivalenzen gerechtfertigt, dass PM und FM gemeinsam behandelt werden. Jeweils vor der Modu- +%lation bzw. nach der Demodulation kann dann noch eine Differentiation oder Integration durchgeführt wird, +%um von der einen Modulationsart zur anderen zu gelangen. +%\subsection{Frequenzbereich} +%Nun +%TODO +%Hier Beschreiben ich FM und FM im Frequenzspektrum. %Sed ut perspiciatis unde omnis iste natus error sit voluptatem %accusantium doloremque laudantium, totam rem aperiam, eaque ipsa %quae ab illo inventore veritatis et quasi architecto beatae vitae diff --git a/buch/papers/fm/03_bessel.tex b/buch/papers/fm/03_bessel.tex index 5f85dc6..3c2cb71 100644 --- a/buch/papers/fm/03_bessel.tex +++ b/buch/papers/fm/03_bessel.tex @@ -67,7 +67,7 @@ Mit dem \eqref{fm:eq:addth1} wird aus dem modulierten Signal = \cos(\omega_c t + \beta\sin(\omega_mt)) = - \cos(\omega_c t)\cos(\beta\sin(\omega_m t))-\sin(\omega_ct)\sin(\beta\sin(\omega_m t)). + \cos(\omega_c t)\cos(\beta\sin(\omega_m t)) - \sin(\omega_ct)\sin(\beta\sin(\omega_m t)). \label{fm:eq:start} \] %----------------------------------------------------------------------------------------------------------- @@ -89,23 +89,34 @@ mit hilfe der Besselindentität \eqref{fm:eq:besselid1} zum \end{align*} %intertext{} Funktioniert nicht. wobei mit dem Additionstheorem \eqref{fm:eq:addth2} \(A = \omega_c t\) und \(B = 2k\omega_m t \) ersetzt wurden. +Nun kann die Summe in zwei Summen \begin{align*} c(t) &= - J_0(\beta) \cdot \cos(\omega_c t) + \sum_{k=1}^\infty J_{2k}(\beta) \{ \underbrace{\cos((\omega_c - 2k \omega_m) t)} \,+\, \cos((\omega_c + 2k \omega_m) t) \} + J_0(\beta) \cdot \cos(\omega_c t) + \sum_{k=1}^\infty J_{2k}(\beta) \cos((\omega_c - 2k \omega_m) t) \,+\, \cos((\omega_c + 2k \omega_m) t) \} \\ &= - \sum_{k=-\infty}^{-1} J_{2k}(\beta) \overbrace{\cos((\omega_c +2k \omega_m) t)} - \,+\,J_0(\beta)\cdot \cos(\omega_c t+ 2\cdot0 \omega_m) + \sum_{k=\infty}^{1} J_{2k}(\beta) \underbrace{\cos((\omega_c - 2k \omega_m) t)} + \,+\,J_0(\beta)\cdot \cos(\omega_c t) \,+\, \sum_{k=1}^\infty J_{2k}(\beta)\cos((\omega_c + 2k \omega_m) t) \end{align*} -wird. -Das Minus im Ersten Term wird zur negativen Summe \(\sum_{-\infty}^{-1}\) ersetzt. -Da \(2k\) immer gerade ist, wird es durch alle negativen und positiven Ganzzahlen \(n\) ersetzt: +aufgeteilt werden. +Wenn bei der ersten Summe noch \(k\) von \(-\infty \to -1\) läuft, wird diese summe zu \(\sum_{k=-1}^{-\infty} J_{-2k}(\beta) {\cos((\omega_c + 2k \omega_m) t)} \) +Zudem kann die Besselindentität \eqref{fm:eq:besselid3} gebraucht werden. \(n \) wird mit \(2k\) ersetzt, da dies immer gerade ist so gilt: \(J_{-n}(\beta) = J_n(\beta)\) +Somit bekommt man zwei gleiche Summen +\begin{align*} + c(t) + &= + \sum_{k=-\infty}^{-1} J_{2k}(\beta) \cos((\omega_c + 2k \omega_m) t) + \,+\,J_0(\beta)\cdot \cos(\omega_c t+ 2 \cdot 0 \omega_m) + \,+\, \sum_{k=1}^\infty J_{2k}(\beta)\cos((\omega_c + 2k \omega_m) t) +\end{align*} +Diese können wir vereinfachter schreiben, \begin{align*} \sum_{n\, \text{gerade}} J_{n}(\beta) \cos((\omega_c + n \omega_m) t), \label{fm:eq:gerade} \end{align*} +da \(2k\) für alle negativen, wie positiven geraden Zahlen zählt. %---------------------------------------------------------------------------------------------------------------- \subsubsection{Sin-Teil} Nun zum zweiten Teil des Term \eqref{fm:eq:start}, den Sin-Teil @@ -157,14 +168,14 @@ jedoch so \(-1 \cdot J_{-n}(\beta) = J_n(\beta)\) und daraus wird dann: \sum_{n=- \infty}^{-1} J_{n}(\beta) \cos((\omega_c + n \omega_m) t) \,+\, \sum_{n=1}^\infty J_{n}(\beta) \cos((\omega_c + n\omega_m) t) \end{align*} -Da \(n\) immer ungerade ist und \(0\) nicht zu den ungeraden zahlen zählt, kann man dies so vereinfacht +Da \(n\) immer ungerade ist und \(0\) nicht zu den ungeraden Zahlen zählt, kann man dies so vereinfacht \[ s(t) = - \sum_{n\, \text{ungerade}} -1 \cdot J_{n}(\beta) \cos((\omega_c + n\omega_m) t). + \sum_{n\, \text{ungerade}} J_{n}(\beta) \cos((\omega_c + n\omega_m) t). \label{fm:eq:ungerade} \] -schreiben. +, mit allen positiven und negativen Ganzzahlen schreiben. %------------------------------------------------------------------------------------------ \subsubsection{Summe Zusammenführen} Beide Teile \eqref{fm:eq:gerade} Gerade @@ -179,7 +190,7 @@ ergeben zusammen \[ \cos(\omega_ct+\beta\sin(\omega_mt)) = - \sum_{k= -\infty}^\infty J_{k}(\beta) \cos((\omega_c+k\omega_m)t). + \sum_{k= -\infty}^\infty J_{n}(\beta) \cos((\omega_c+ n\omega_m)t). \] Somit ist \eqref{fm:eq:proof} bewiesen. \newpage diff --git a/buch/papers/fm/Python animation/Bessel-FM.ipynb b/buch/papers/fm/Python animation/Bessel-FM.ipynb index 74f1011..4074765 100644 --- a/buch/papers/fm/Python animation/Bessel-FM.ipynb +++ b/buch/papers/fm/Python animation/Bessel-FM.ipynb @@ -11,11 +11,12 @@ "from scipy.fft import fft, ifft, fftfreq\n", "import scipy.special as sc\n", "import scipy.fftpack\n", + "import matplotlib.pyplot as plt\n", "import matplotlib as mpl\n", "# Use the pgf backend (must be set before pyplot imported)\n", - "mpl.use('pgf')\n", - "import matplotlib.pyplot as plt\n", - "from matplotlib.widgets import Slider\n", + "# mpl.use('pgf')\n", + "\n", + "\n", "def fm(beta):\n", " # Number of samplepoints\n", " N = 600\n", @@ -27,7 +28,7 @@ " #beta = 1.0\n", " y_old = np.sin(fc * 2.0*np.pi*x+beta*np.sin(fm * 2.0*np.pi*x))\n", " y = 0*x;\n", - " xf = fftfreq(N, 1 / 400)\n", + " xf = fftfreq(N, 1 / N)\n", " for k in range (-4, 4):\n", " y = sc.jv(k,beta)*np.sin((fc+k*fm) * 2.0*np.pi*x)\n", " yf = fft(y)/(fc*np.pi)\n", @@ -42,12 +43,24 @@ }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -62,17 +75,17 @@ "# Number of samplepoints\n", "N = 800\n", "# sample spacing\n", - "T = 1.0 / 1000.0\n", + "T = 1.0 / N\n", "x = np.linspace(0.01, N*T, N)\n", "\n", "y_old = np.sin(100* 2.0*np.pi*x+1*np.sin(15* 2.0*np.pi*x))\n", "yf_old = fft(y_old)/(100*np.pi)\n", - "xf = fftfreq(N, 1 / 1000)\n", + "xf = fftfreq(N, 1 / N)\n", "plt.plot(xf, np.abs(yf_old))\n", "#plt.xlim(-150, 150)\n", "plt.show()\n", "\n", - "fm(1)" + "fm(2)" ] }, { @@ -120,12 +133,12 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 131, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -137,39 +150,21 @@ } ], "source": [ - "from scipy import special\n", - "\n", - "def drumhead_height(n, k, distance, angle, t):\n", - " kth_zero = special.jn_zeros(n, k)[-1]\n", - " return np.cos(t) * np.cos(n*angle) * special.jn(n, distance*kth_zero)\n", - "\n", - "theta = np.r_[0:2*np.pi:50j]\n", - "radius = np.r_[0:1:50j]\n", - "x = np.array([r * np.cos(theta) for r in radius])\n", - "y = np.array([r * np.sin(theta) for r in radius])\n", - "z = np.array([drumhead_height(1, 1, r, theta, 0.5) for r in radius])\n", - "\n", - "import matplotlib.pyplot as plt\n", - "fig = plt.figure()\n", - "ax = fig.add_axes(rect=(0, 0.05, 0.95, 0.95), projection='3d')\n", - "ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap='RdBu_r', vmin=-0.5, vmax=0.5)\n", - "ax.set_xlabel('X')\n", - "ax.set_ylabel('Y')\n", - "ax.set_xticks(np.arange(-1, 1.1, 0.5))\n", - "ax.set_yticks(np.arange(-1, 1.1, 0.5))\n", - "ax.set_zlabel('Z')\n", "\n", + "x = np.linspace(0,0.1,2000)\n", + "y = np.sin(100 * 2.0*np.pi*x+1.5*np.sin(30 * 2.0*np.pi*x))\n", + "plt.plot(x, y, '-')\n", "plt.show()" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -181,11 +176,24 @@ } ], "source": [ + "ratio = 2\n", + "first = 1\n", + "(length,) = x.shape\n", + "slop = int(length/6)\n", + "second = ratio-first\n", + "odd = ratio % 2\n", "\n", - "x = np.linspace(0,0.1,1000)\n", - "y = np.sin(100 * 2.0*np.pi*x+1.5*np.sin(30 * 2.0*np.pi*x))\n", - "plt.plot(x, y, '-')\n", - "plt.show()" + "first = int(first * length/ratio) \n", + "second = int( second * length/ratio) + odd\n", + "slop = np.array(np.append(np.zeros(first-slop) , (np.arange(slop))/slop))\n", + "#steep = np.ones(int(first * length/ratio)+ odd) - np.exp(-np.arange(int(first * length/ratio) + odd)/200)\n", + "steep = (np.ones(first) + slop)*0.5\n", + "\n", + "step = np.append(steep, np.ones(second))\n", + "m = np.sin(5 * 2.0 * np.pi * x) * step \n", + "plt.plot(x, step, '-')\n", + "plt.plot(x, m, '-')\n", + "plt.savefig('m_t.pgf', format='pgf')" ] } ], diff --git a/buch/papers/fm/Python animation/Bessel-FM.py b/buch/papers/fm/Python animation/Bessel-FM.py index cf30e16..cb35ebd 100644 --- a/buch/papers/fm/Python animation/Bessel-FM.py +++ b/buch/papers/fm/Python animation/Bessel-FM.py @@ -4,39 +4,45 @@ from scipy.fft import fft, ifft, fftfreq import scipy.special as sc import scipy.fftpack import matplotlib.pyplot as plt -from matplotlib.widgets import Slider - -# Number of samplepoints -N = 600 -# sample spacing -T = 1.0 / 800.0 -x = np.linspace(0.01, N*T, N) -beta = 1.0 -y_old = np.sin(100.0 * 2.0*np.pi*x+beta*np.sin(50.0 * 2.0*np.pi*x)) -y = 0*x; -xf = fftfreq(N, 1 / 400) -for k in range (-5, 5): - y = sc.jv(k,beta)*np.sin((100.0+k*50) * 2.0*np.pi*x) - yf = fft(y) - plt.plot(xf, np.abs(yf)) - -axbeta =plt.axes([0.25, 0.1, 0.65, 0.03]) -beta_slider = Slider( -ax=axbeta, -label="Beta", -valmin=0.1, -valmax=3, -valinit=beta, -) - -def update(val): - line.set_ydata(fm(beta_slider.val)) - fig.canvas.draw_idle() +import matplotlib as mpl +# Use the pgf backend (must be set before pyplot imported) +mpl.use('pgf') +from matplotlib.widgets import Slider +def fm(beta): + # Number of samplepoints + N = 600 + # sample spacing + T = 1.0 / 1000.0 + fc = 100.0 + fm = 30.0 + x = np.linspace(0.01, N*T, N) + #beta = 1.0 + y_old = np.sin(fc * 2.0*np.pi*x+beta*np.sin(fm * 2.0*np.pi*x)) + y = 0*x; + xf = fftfreq(N, 1 / N) + for k in range (-4, 4): + y = sc.jv(k,beta)*np.sin((fc+k*fm) * 2.0*np.pi*x) + yf = fft(y)/(fc*np.pi) + plt.plot(xf, np.abs(yf)) + plt.xlim(-150, 150) + #plt.savefig('bessel.pgf', format='pgf') + plt.show() -beta_slider.on_changed(update) -plt.show() +fm(1) -yf_old = fft(y_old) -plt.plot(xf, np.abs(yf_old)) -plt.show()
\ No newline at end of file +# Bessel-Funktion +for n in range (-2,4): + x = np.linspace(-11,11,1000) + y = sc.jv(n,x) + plt.plot(x, y, '-',label='n='+str(n)) +#plt.plot([1,1],[sc.jv(0,1),sc.jv(-1,1)],) +plt.xlim(-10,10) +plt.grid(True) +plt.ylabel('Bessel $J_n(\\beta)$') +plt.xlabel(' $ \\beta $ ') +plt.plot(x, y) +plt.legend() +#plt.show() +plt.savefig('bessel.pgf', format='pgf') +print(sc.jv(0,1))
\ No newline at end of file diff --git a/buch/papers/fm/Python animation/m_t.pgf b/buch/papers/fm/Python animation/m_t.pgf new file mode 100644 index 0000000..edcfb33 --- /dev/null +++ b/buch/papers/fm/Python animation/m_t.pgf @@ -0,0 +1,746 @@ +%% Creator: Matplotlib, PGF backend +%% +%% To include the figure in your LaTeX document, write +%% \input{<filename>.pgf} +%% +%% Make sure the required packages are loaded in your preamble +%% \usepackage{pgf} +%% +%% Also ensure that all the required font packages are loaded; for instance, +%% the lmodern package is sometimes necessary when using math font. +%% \usepackage{lmodern} +%% +%% Figures using additional raster images can only be included by \input if +%% they are in the same directory as the main LaTeX file. For loading figures +%% from other directories you can use the `import` package +%% \usepackage{import} +%% +%% and then include the figures with +%% \import{<path to file>}{<filename>.pgf} +%% +%% Matplotlib used the following preamble +%% \usepackage{fontspec} +%% \setmainfont{DejaVuSerif.ttf}[Path=\detokenize{/home/joshua/.local/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/}] +%% \setsansfont{DejaVuSans.ttf}[Path=\detokenize{/home/joshua/.local/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/}] +%% \setmonofont{DejaVuSansMono.ttf}[Path=\detokenize{/home/joshua/.local/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/}] +%% +\begingroup% +\makeatletter% +\begin{pgfpicture}% +\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{6.000000in}{4.000000in}}% +\pgfusepath{use as bounding box, clip}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{6.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{6.000000in}{4.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{4.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathclose% +\pgfusepath{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.750000in}{0.500000in}}% +\pgfpathlineto{\pgfqpoint{5.400000in}{0.500000in}}% +\pgfpathlineto{\pgfqpoint{5.400000in}{3.520000in}}% +\pgfpathlineto{\pgfqpoint{0.750000in}{3.520000in}}% +\pgfpathlineto{\pgfqpoint{0.750000in}{0.500000in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.918664in}{0.500000in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.918664in,y=0.402778in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.0}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.772658in}{0.500000in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.772658in,y=0.402778in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.2}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.626653in}{0.500000in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.626653in,y=0.402778in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.4}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.480647in}{0.500000in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.480647in,y=0.402778in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.6}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.334642in}{0.500000in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=4.334642in,y=0.402778in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.8}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{5.188636in}{0.500000in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=5.188636in,y=0.402778in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 1.0}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{0.637238in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.235508in, y=0.584477in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont \ensuremath{-}1.00}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{0.980424in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.235508in, y=0.927663in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont \ensuremath{-}0.75}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{1.323611in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.235508in, y=1.270849in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont \ensuremath{-}0.50}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{1.666797in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.235508in, y=1.614035in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont \ensuremath{-}0.25}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{2.009983in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343533in, y=1.957221in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.00}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{2.353169in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343533in, y=2.300407in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.25}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{2.696355in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343533in, y=2.643594in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.50}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{3.039541in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343533in, y=2.986780in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.75}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{3.382727in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343533in, y=3.329966in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 1.00}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.750000in}{0.500000in}}{\pgfqpoint{4.650000in}{3.020000in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.961364in}{2.696355in}}% +\pgfpathlineto{\pgfqpoint{2.373982in}{2.696355in}}% +\pgfpathlineto{\pgfqpoint{3.077645in}{3.382727in}}% +\pgfpathlineto{\pgfqpoint{5.188636in}{3.382727in}}% +\pgfpathlineto{\pgfqpoint{5.188636in}{3.382727in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.750000in}{0.500000in}}{\pgfqpoint{4.650000in}{3.020000in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{1.000000,0.498039,0.054902}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.961364in}{2.222083in}}% +\pgfpathlineto{\pgfqpoint{0.993108in}{2.367402in}}% +\pgfpathlineto{\pgfqpoint{1.019561in}{2.473982in}}% +\pgfpathlineto{\pgfqpoint{1.040724in}{2.546802in}}% +\pgfpathlineto{\pgfqpoint{1.056596in}{2.592979in}}% +\pgfpathlineto{\pgfqpoint{1.072468in}{2.631215in}}% +\pgfpathlineto{\pgfqpoint{1.088341in}{2.660988in}}% +\pgfpathlineto{\pgfqpoint{1.098922in}{2.675931in}}% +\pgfpathlineto{\pgfqpoint{1.109503in}{2.686839in}}% +\pgfpathlineto{\pgfqpoint{1.120085in}{2.693647in}}% +\pgfpathlineto{\pgfqpoint{1.130666in}{2.696313in}}% +\pgfpathlineto{\pgfqpoint{1.141248in}{2.694822in}}% +\pgfpathlineto{\pgfqpoint{1.151829in}{2.689182in}}% +\pgfpathlineto{\pgfqpoint{1.162410in}{2.679428in}}% +\pgfpathlineto{\pgfqpoint{1.172992in}{2.665619in}}% +\pgfpathlineto{\pgfqpoint{1.183573in}{2.647837in}}% +\pgfpathlineto{\pgfqpoint{1.199445in}{2.613960in}}% +\pgfpathlineto{\pgfqpoint{1.215317in}{2.571856in}}% +\pgfpathlineto{\pgfqpoint{1.231190in}{2.522098in}}% +\pgfpathlineto{\pgfqpoint{1.252352in}{2.445035in}}% +\pgfpathlineto{\pgfqpoint{1.278806in}{2.334146in}}% +\pgfpathlineto{\pgfqpoint{1.310550in}{2.185325in}}% +\pgfpathlineto{\pgfqpoint{1.421655in}{1.645905in}}% +\pgfpathlineto{\pgfqpoint{1.448108in}{1.540247in}}% +\pgfpathlineto{\pgfqpoint{1.469271in}{1.468321in}}% +\pgfpathlineto{\pgfqpoint{1.485143in}{1.422894in}}% +\pgfpathlineto{\pgfqpoint{1.501015in}{1.385464in}}% +\pgfpathlineto{\pgfqpoint{1.516888in}{1.356540in}}% +\pgfpathlineto{\pgfqpoint{1.527469in}{1.342183in}}% +\pgfpathlineto{\pgfqpoint{1.538050in}{1.331872in}}% +\pgfpathlineto{\pgfqpoint{1.548632in}{1.325669in}}% +\pgfpathlineto{\pgfqpoint{1.559213in}{1.323611in}}% +\pgfpathlineto{\pgfqpoint{1.569795in}{1.325711in}}% +\pgfpathlineto{\pgfqpoint{1.580376in}{1.331956in}}% +\pgfpathlineto{\pgfqpoint{1.590957in}{1.342308in}}% +\pgfpathlineto{\pgfqpoint{1.601539in}{1.356705in}}% +\pgfpathlineto{\pgfqpoint{1.617411in}{1.385688in}}% +\pgfpathlineto{\pgfqpoint{1.633283in}{1.423174in}}% +\pgfpathlineto{\pgfqpoint{1.649155in}{1.468653in}}% +\pgfpathlineto{\pgfqpoint{1.670318in}{1.540640in}}% +\pgfpathlineto{\pgfqpoint{1.691481in}{1.623984in}}% +\pgfpathlineto{\pgfqpoint{1.717934in}{1.741037in}}% +\pgfpathlineto{\pgfqpoint{1.754969in}{1.920906in}}% +\pgfpathlineto{\pgfqpoint{1.829039in}{2.286606in}}% +\pgfpathlineto{\pgfqpoint{1.855493in}{2.402871in}}% +\pgfpathlineto{\pgfqpoint{1.876655in}{2.485395in}}% +\pgfpathlineto{\pgfqpoint{1.897818in}{2.556416in}}% +\pgfpathlineto{\pgfqpoint{1.913690in}{2.601088in}}% +\pgfpathlineto{\pgfqpoint{1.929563in}{2.637708in}}% +\pgfpathlineto{\pgfqpoint{1.945435in}{2.665778in}}% +\pgfpathlineto{\pgfqpoint{1.956016in}{2.679547in}}% +\pgfpathlineto{\pgfqpoint{1.966597in}{2.689260in}}% +\pgfpathlineto{\pgfqpoint{1.977179in}{2.694858in}}% +\pgfpathlineto{\pgfqpoint{1.987760in}{2.696307in}}% +\pgfpathlineto{\pgfqpoint{1.998342in}{2.693599in}}% +\pgfpathlineto{\pgfqpoint{2.008923in}{2.686749in}}% +\pgfpathlineto{\pgfqpoint{2.019504in}{2.675800in}}% +\pgfpathlineto{\pgfqpoint{2.030086in}{2.660817in}}% +\pgfpathlineto{\pgfqpoint{2.045958in}{2.630985in}}% +\pgfpathlineto{\pgfqpoint{2.061830in}{2.592694in}}% +\pgfpathlineto{\pgfqpoint{2.077702in}{2.546466in}}% +\pgfpathlineto{\pgfqpoint{2.098865in}{2.473584in}}% +\pgfpathlineto{\pgfqpoint{2.120028in}{2.389486in}}% +\pgfpathlineto{\pgfqpoint{2.146481in}{2.271711in}}% +\pgfpathlineto{\pgfqpoint{2.183516in}{2.091294in}}% +\pgfpathlineto{\pgfqpoint{2.257586in}{1.726215in}}% +\pgfpathlineto{\pgfqpoint{2.284040in}{1.610703in}}% +\pgfpathlineto{\pgfqpoint{2.305203in}{1.528957in}}% +\pgfpathlineto{\pgfqpoint{2.326365in}{1.458849in}}% +\pgfpathlineto{\pgfqpoint{2.342237in}{1.414938in}}% +\pgfpathlineto{\pgfqpoint{2.358110in}{1.379133in}}% +\pgfpathlineto{\pgfqpoint{2.400435in}{1.300923in}}% +\pgfpathlineto{\pgfqpoint{2.411017in}{1.287575in}}% +\pgfpathlineto{\pgfqpoint{2.421598in}{1.278578in}}% +\pgfpathlineto{\pgfqpoint{2.432179in}{1.274111in}}% +\pgfpathlineto{\pgfqpoint{2.442761in}{1.274326in}}% +\pgfpathlineto{\pgfqpoint{2.453342in}{1.279345in}}% +\pgfpathlineto{\pgfqpoint{2.463924in}{1.289257in}}% +\pgfpathlineto{\pgfqpoint{2.474505in}{1.304122in}}% +\pgfpathlineto{\pgfqpoint{2.485086in}{1.323962in}}% +\pgfpathlineto{\pgfqpoint{2.500959in}{1.363022in}}% +\pgfpathlineto{\pgfqpoint{2.516831in}{1.413067in}}% +\pgfpathlineto{\pgfqpoint{2.532703in}{1.473735in}}% +\pgfpathlineto{\pgfqpoint{2.553866in}{1.570194in}}% +\pgfpathlineto{\pgfqpoint{2.575028in}{1.682799in}}% +\pgfpathlineto{\pgfqpoint{2.601482in}{1.842735in}}% +\pgfpathlineto{\pgfqpoint{2.633226in}{2.055389in}}% +\pgfpathlineto{\pgfqpoint{2.728459in}{2.712794in}}% +\pgfpathlineto{\pgfqpoint{2.754912in}{2.866609in}}% +\pgfpathlineto{\pgfqpoint{2.776075in}{2.970913in}}% +\pgfpathlineto{\pgfqpoint{2.791947in}{3.035961in}}% +\pgfpathlineto{\pgfqpoint{2.807819in}{3.088287in}}% +\pgfpathlineto{\pgfqpoint{2.818401in}{3.115544in}}% +\pgfpathlineto{\pgfqpoint{2.828982in}{3.136361in}}% +\pgfpathlineto{\pgfqpoint{2.839564in}{3.150485in}}% +\pgfpathlineto{\pgfqpoint{2.850145in}{3.157708in}}% +\pgfpathlineto{\pgfqpoint{2.855436in}{3.158677in}}% +\pgfpathlineto{\pgfqpoint{2.860726in}{3.157860in}}% +\pgfpathlineto{\pgfqpoint{2.866017in}{3.155244in}}% +\pgfpathlineto{\pgfqpoint{2.876599in}{3.144569in}}% +\pgfpathlineto{\pgfqpoint{2.887180in}{3.126596in}}% +\pgfpathlineto{\pgfqpoint{2.897761in}{3.101314in}}% +\pgfpathlineto{\pgfqpoint{2.908343in}{3.068761in}}% +\pgfpathlineto{\pgfqpoint{2.924215in}{3.006498in}}% +\pgfpathlineto{\pgfqpoint{2.940087in}{2.928568in}}% +\pgfpathlineto{\pgfqpoint{2.955959in}{2.835706in}}% +\pgfpathlineto{\pgfqpoint{2.977122in}{2.690371in}}% +\pgfpathlineto{\pgfqpoint{2.998285in}{2.523160in}}% +\pgfpathlineto{\pgfqpoint{3.024738in}{2.288895in}}% +\pgfpathlineto{\pgfqpoint{3.061773in}{1.928914in}}% +\pgfpathlineto{\pgfqpoint{3.109390in}{1.462671in}}% +\pgfpathlineto{\pgfqpoint{3.135843in}{1.229526in}}% +\pgfpathlineto{\pgfqpoint{3.157006in}{1.063841in}}% +\pgfpathlineto{\pgfqpoint{3.178169in}{0.921048in}}% +\pgfpathlineto{\pgfqpoint{3.194041in}{0.831078in}}% +\pgfpathlineto{\pgfqpoint{3.209913in}{0.757165in}}% +\pgfpathlineto{\pgfqpoint{3.225785in}{0.700319in}}% +\pgfpathlineto{\pgfqpoint{3.236366in}{0.672294in}}% +\pgfpathlineto{\pgfqpoint{3.246948in}{0.652372in}}% +\pgfpathlineto{\pgfqpoint{3.257529in}{0.640675in}}% +\pgfpathlineto{\pgfqpoint{3.262820in}{0.637934in}}% +\pgfpathlineto{\pgfqpoint{3.268111in}{0.637273in}}% +\pgfpathlineto{\pgfqpoint{3.273401in}{0.638691in}}% +\pgfpathlineto{\pgfqpoint{3.278692in}{0.642186in}}% +\pgfpathlineto{\pgfqpoint{3.289274in}{0.655385in}}% +\pgfpathlineto{\pgfqpoint{3.299855in}{0.676791in}}% +\pgfpathlineto{\pgfqpoint{3.310436in}{0.706272in}}% +\pgfpathlineto{\pgfqpoint{3.321018in}{0.743651in}}% +\pgfpathlineto{\pgfqpoint{3.336890in}{0.814020in}}% +\pgfpathlineto{\pgfqpoint{3.352762in}{0.900680in}}% +\pgfpathlineto{\pgfqpoint{3.368634in}{1.002450in}}% +\pgfpathlineto{\pgfqpoint{3.389797in}{1.159225in}}% +\pgfpathlineto{\pgfqpoint{3.416250in}{1.383646in}}% +\pgfpathlineto{\pgfqpoint{3.447995in}{1.683359in}}% +\pgfpathlineto{\pgfqpoint{3.553809in}{2.713731in}}% +\pgfpathlineto{\pgfqpoint{3.580262in}{2.928394in}}% +\pgfpathlineto{\pgfqpoint{3.601425in}{3.075502in}}% +\pgfpathlineto{\pgfqpoint{3.617297in}{3.169087in}}% +\pgfpathlineto{\pgfqpoint{3.633169in}{3.246883in}}% +\pgfpathlineto{\pgfqpoint{3.649041in}{3.307831in}}% +\pgfpathlineto{\pgfqpoint{3.659623in}{3.338682in}}% +\pgfpathlineto{\pgfqpoint{3.670204in}{3.361485in}}% +\pgfpathlineto{\pgfqpoint{3.680786in}{3.376101in}}% +\pgfpathlineto{\pgfqpoint{3.686076in}{3.380309in}}% +\pgfpathlineto{\pgfqpoint{3.691367in}{3.382440in}}% +\pgfpathlineto{\pgfqpoint{3.696658in}{3.382493in}}% +\pgfpathlineto{\pgfqpoint{3.701948in}{3.380466in}}% +\pgfpathlineto{\pgfqpoint{3.707239in}{3.376363in}}% +\pgfpathlineto{\pgfqpoint{3.717821in}{3.361955in}}% +\pgfpathlineto{\pgfqpoint{3.728402in}{3.339358in}}% +\pgfpathlineto{\pgfqpoint{3.738983in}{3.308708in}}% +\pgfpathlineto{\pgfqpoint{3.749565in}{3.270190in}}% +\pgfpathlineto{\pgfqpoint{3.765437in}{3.198184in}}% +\pgfpathlineto{\pgfqpoint{3.781309in}{3.109994in}}% +\pgfpathlineto{\pgfqpoint{3.802472in}{2.969336in}}% +\pgfpathlineto{\pgfqpoint{3.823635in}{2.805466in}}% +\pgfpathlineto{\pgfqpoint{3.850088in}{2.574075in}}% +\pgfpathlineto{\pgfqpoint{3.887123in}{2.216460in}}% +\pgfpathlineto{\pgfqpoint{3.966484in}{1.434106in}}% +\pgfpathlineto{\pgfqpoint{3.992937in}{1.203977in}}% +\pgfpathlineto{\pgfqpoint{4.014100in}{1.041407in}}% +\pgfpathlineto{\pgfqpoint{4.035263in}{0.902271in}}% +\pgfpathlineto{\pgfqpoint{4.051135in}{0.815347in}}% +\pgfpathlineto{\pgfqpoint{4.067007in}{0.744696in}}% +\pgfpathlineto{\pgfqpoint{4.082879in}{0.691279in}}% +\pgfpathlineto{\pgfqpoint{4.093461in}{0.665613in}}% +\pgfpathlineto{\pgfqpoint{4.104042in}{0.648090in}}% +\pgfpathlineto{\pgfqpoint{4.114623in}{0.638817in}}% +\pgfpathlineto{\pgfqpoint{4.119914in}{0.637294in}}% +\pgfpathlineto{\pgfqpoint{4.125205in}{0.637851in}}% +\pgfpathlineto{\pgfqpoint{4.130496in}{0.640487in}}% +\pgfpathlineto{\pgfqpoint{4.135786in}{0.645197in}}% +\pgfpathlineto{\pgfqpoint{4.146368in}{0.660811in}}% +\pgfpathlineto{\pgfqpoint{4.156949in}{0.684597in}}% +\pgfpathlineto{\pgfqpoint{4.167530in}{0.716413in}}% +\pgfpathlineto{\pgfqpoint{4.178112in}{0.756065in}}% +\pgfpathlineto{\pgfqpoint{4.193984in}{0.829697in}}% +\pgfpathlineto{\pgfqpoint{4.209856in}{0.919407in}}% +\pgfpathlineto{\pgfqpoint{4.231019in}{1.061888in}}% +\pgfpathlineto{\pgfqpoint{4.252182in}{1.227307in}}% +\pgfpathlineto{\pgfqpoint{4.278635in}{1.460197in}}% +\pgfpathlineto{\pgfqpoint{4.315670in}{1.818993in}}% +\pgfpathlineto{\pgfqpoint{4.395031in}{2.600031in}}% +\pgfpathlineto{\pgfqpoint{4.421484in}{2.828606in}}% +\pgfpathlineto{\pgfqpoint{4.442647in}{2.989587in}}% +\pgfpathlineto{\pgfqpoint{4.463810in}{3.126867in}}% +\pgfpathlineto{\pgfqpoint{4.479682in}{3.212251in}}% +\pgfpathlineto{\pgfqpoint{4.495554in}{3.281259in}}% +\pgfpathlineto{\pgfqpoint{4.506136in}{3.317692in}}% +\pgfpathlineto{\pgfqpoint{4.516717in}{3.346203in}}% +\pgfpathlineto{\pgfqpoint{4.527298in}{3.366619in}}% +\pgfpathlineto{\pgfqpoint{4.537880in}{3.378817in}}% +\pgfpathlineto{\pgfqpoint{4.543170in}{3.381810in}}% +\pgfpathlineto{\pgfqpoint{4.548461in}{3.382723in}}% +\pgfpathlineto{\pgfqpoint{4.553752in}{3.381558in}}% +\pgfpathlineto{\pgfqpoint{4.559043in}{3.378314in}}% +\pgfpathlineto{\pgfqpoint{4.569624in}{3.365615in}}% +\pgfpathlineto{\pgfqpoint{4.580205in}{3.344704in}}% +\pgfpathlineto{\pgfqpoint{4.590787in}{3.315707in}}% +\pgfpathlineto{\pgfqpoint{4.601368in}{3.278801in}}% +\pgfpathlineto{\pgfqpoint{4.617240in}{3.209112in}}% +\pgfpathlineto{\pgfqpoint{4.633112in}{3.123089in}}% +\pgfpathlineto{\pgfqpoint{4.648985in}{3.021904in}}% +\pgfpathlineto{\pgfqpoint{4.670147in}{2.865815in}}% +\pgfpathlineto{\pgfqpoint{4.696601in}{2.642076in}}% +\pgfpathlineto{\pgfqpoint{4.728345in}{2.342894in}}% +\pgfpathlineto{\pgfqpoint{4.834159in}{1.311803in}}% +\pgfpathlineto{\pgfqpoint{4.860613in}{1.096395in}}% +\pgfpathlineto{\pgfqpoint{4.881776in}{0.948559in}}% +\pgfpathlineto{\pgfqpoint{4.897648in}{0.854361in}}% +\pgfpathlineto{\pgfqpoint{4.913520in}{0.775905in}}% +\pgfpathlineto{\pgfqpoint{4.929392in}{0.714259in}}% +\pgfpathlineto{\pgfqpoint{4.939973in}{0.682925in}}% +\pgfpathlineto{\pgfqpoint{4.950555in}{0.659631in}}% +\pgfpathlineto{\pgfqpoint{4.961136in}{0.644516in}}% +\pgfpathlineto{\pgfqpoint{4.966427in}{0.640057in}}% +\pgfpathlineto{\pgfqpoint{4.971717in}{0.637673in}}% +\pgfpathlineto{\pgfqpoint{4.977008in}{0.637368in}}% +\pgfpathlineto{\pgfqpoint{4.982299in}{0.639143in}}% +\pgfpathlineto{\pgfqpoint{4.987590in}{0.642995in}}% +\pgfpathlineto{\pgfqpoint{4.998171in}{0.656903in}}% +\pgfpathlineto{\pgfqpoint{5.008752in}{0.679007in}}% +\pgfpathlineto{\pgfqpoint{5.019334in}{0.709174in}}% +\pgfpathlineto{\pgfqpoint{5.029915in}{0.747222in}}% +\pgfpathlineto{\pgfqpoint{5.045787in}{0.818551in}}% +\pgfpathlineto{\pgfqpoint{5.061659in}{0.906109in}}% +\pgfpathlineto{\pgfqpoint{5.082822in}{1.046008in}}% +\pgfpathlineto{\pgfqpoint{5.103985in}{1.209229in}}% +\pgfpathlineto{\pgfqpoint{5.130439in}{1.439992in}}% +\pgfpathlineto{\pgfqpoint{5.167474in}{1.797104in}}% +\pgfpathlineto{\pgfqpoint{5.188636in}{2.009983in}}% +\pgfpathlineto{\pgfqpoint{5.188636in}{2.009983in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.750000in}{0.500000in}}% +\pgfpathlineto{\pgfqpoint{0.750000in}{3.520000in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{5.400000in}{0.500000in}}% +\pgfpathlineto{\pgfqpoint{5.400000in}{3.520000in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.750000in}{0.500000in}}% +\pgfpathlineto{\pgfqpoint{5.400000in}{0.500000in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.750000in}{3.520000in}}% +\pgfpathlineto{\pgfqpoint{5.400000in}{3.520000in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\end{pgfpicture}% +\makeatother% +\endgroup% diff --git a/buch/papers/fm/Quellen/NaT_Skript_20210920.pdf b/buch/papers/fm/Quellen/NaT_Skript_20210920.pdf Binary files differnew file mode 100644 index 0000000..b9acc1f --- /dev/null +++ b/buch/papers/fm/Quellen/NaT_Skript_20210920.pdf diff --git a/buch/papers/fm/main.tex b/buch/papers/fm/main.tex index 731f56f..0c98427 100644 --- a/buch/papers/fm/main.tex +++ b/buch/papers/fm/main.tex @@ -14,20 +14,9 @@ Die Frequenzmodulation ist eine Modulation die man auch schon im alten Radio findet. Falls du dich an die Zeit erinnerst, konnte man zwischen \textit{FM-AM} Umschalten, dies bedeutete so viel wie: \textit{F}requenz-\textit{M}odulation und \textit{A}mplituden-\textit{M}odulation. -Durch die Modulation wird ein Nachrichtensignal \(m(t)\) auf ein Trägersignal (z.B. ein Sinus- oder Rechtecksignal) abgebildet (kombiniert). -Durch dieses Auftragen vom Nachrichtensignal \(m(t)\) kann das modulierte Signal in einem gewünschten Frequenzbereich übertragen werden. -Der ursprünglich Frequenzbereich des Nachrichtensignal \(m(t)\) erstreckt sich typischerweise von 0 Hz bis zur Bandbreite \(B_m\). -\newline -Beim Empfänger wird dann durch Demodulation das ursprüngliche Nachrichtensignal \(m(t)\) so originalgetreu wie möglich zurückgewonnen. -\newline -Beim Trägersignal \(x_c(t)\) handelt es sich um ein informationsloses Hilfssignal. -Durch die Modulation mit dem Nachrichtensignal \(m(t)\) wird es zum modulierten zu übertragenden Signal. -Für alle Erklärungen wird ein sinusförmiges Trägersignal benutzt, jedoch kann auch ein Rechtecksignal, -welches Digital einfach umzusetzten ist, -genauso als Trägersignal genutzt werden kann. -Zuerst wird erklärt was \textit{FM-AM} ist, danach wie sich diese im Frequenzspektrum verhalten. -Erst dann erklär ich dir wie die Besselfunktion mit der Frequenzmodulation( acro?) zusammenhängt. -Nun zur Modulation im nächsten Abschnitt.\cite{fm:NAT} +Um das Thema einwenig einzuschränken werde ich leider nichts über die Vertiefte, (Physikalische) zusammenhänge oder die Demodulation aufzeigen. +Dieses Kapitel soll nurdie Frequenzmodulation und ihren zusammenhang mit der Besselfunktion erklären. +Aber zuerst einmal zur Modulation selbst, wie funktioniert diese Mathematisch. \input{papers/fm/00_modulation.tex} diff --git a/buch/papers/kreismembran/Makefile b/buch/papers/kreismembran/Makefile index ce3c89f..a13f2cf 100644 --- a/buch/papers/kreismembran/Makefile +++ b/buch/papers/kreismembran/Makefile @@ -4,6 +4,6 @@ # (c) 2020 Prof Dr Andreas Mueller # -images: - @echo "no images to be created in kreismembran" +images/TikzSaite.pdf: images/TikzSaite.tex + cd images && pdflatex TikzSaite.tex diff --git a/buch/papers/kreismembran/images/TikzSaite.pdf b/buch/papers/kreismembran/images/TikzSaite.pdf Binary files differnew file mode 100644 index 0000000..f95ceb9 --- /dev/null +++ b/buch/papers/kreismembran/images/TikzSaite.pdf diff --git a/buch/papers/kreismembran/images/TikzSaite.tex b/buch/papers/kreismembran/images/TikzSaite.tex new file mode 100644 index 0000000..bf3d8f6 --- /dev/null +++ b/buch/papers/kreismembran/images/TikzSaite.tex @@ -0,0 +1,57 @@ +% vim: ts=2 sw=2 et : +\documentclass[tikz, border=2mm]{standalone} + +\usepackage{times} +\usepackage{txfonts} + +\begin{document} + \begin{tikzpicture}[ + axis/.style = {very thick, -latex}, + axis tick/.style = { + draw, draw = black, fill = black, rectangle, + inner sep = 0pt, + minimum height = 2mm, + minimum width = 1pt, + }, + string/.style = { + ultra thick, draw = black, + }, + string end/.style = { + string, circle, fill = gray, + inner sep = 0pt, minimum size = 1mm, + }, + force/.style = { + very thick, draw = gray, -latex, + }, + ] + + % axes + \draw[axis] (0, 0) -- (8cm, 0) node[right] {$x$}; + \draw[axis] (0, 0) -- (0, 5cm) node[above] {$u(x, t)$}; + + % axes ticks + \node[axis tick, label = {-90:$x_0$}] at (2cm, 0) {}; + \node[axis tick, label = {-90:$x_0 + dx$}] at (6cm, 0) {}; + + % string + \coordinate (A) at (2cm, 2cm); + \coordinate (B) at (6cm, 4cm); + + \draw[string] (A) to[out = 40, in = 200] (B); + + \draw[force] (A) -- ++(220:15mm) node[gray, below right] {$T_1$}; + \draw[force] (B) -- ++(20:15mm) node[gray, above left] {$T_2$}; + + \draw[dashed, gray, thick] (A) -- ++(-15mm, 0); + \draw[gray, thick] (A) ++ (-7mm,0) arc (180:220:7mm) + node[midway, left] {$\alpha$}; + + \draw[dashed, gray, thick] (B) -- ++(15mm, 0); + \draw[gray, thick] (B) ++ (7mm,0) arc (0:20:7mm) + node[pos = 0, below] {$\beta$}; + + \node[string end, label={110:$P_1$}] at (A) {}; + \node[string end, label={110:$P_2$}] at (B) {}; + + \end{tikzpicture} +\end{document} diff --git a/buch/papers/kreismembran/references.bib b/buch/papers/kreismembran/references.bib index 3d9d0c1..65173f8 100644 --- a/buch/papers/kreismembran/references.bib +++ b/buch/papers/kreismembran/references.bib @@ -89,4 +89,10 @@ type = {Dissertation}, author = {{Eric John Ruggiero Doctor of Philosophy In Mechanical Engineering}}, date = {2005}, +} + +@online{noauthor_laplace_nodate, + title = {Laplace Transform of Bessel Function of the First Kind of Order Zero - {ProofWiki}}, + url = {https://proofwiki.org/wiki/Laplace_Transform_of_Bessel_Function_of_the_First_Kind_of_Order_Zero}, + urldate = {2022-08-15}, }
\ No newline at end of file diff --git a/buch/papers/kreismembran/teil0.tex b/buch/papers/kreismembran/teil0.tex index c6dac06..e962aab 100644 --- a/buch/papers/kreismembran/teil0.tex +++ b/buch/papers/kreismembran/teil0.tex @@ -7,9 +7,9 @@ \rhead{Membran} Eine Membran oder selten ein Schwingblatt ist laut Duden \cite{kreismembran:Duden:Membran} ein ``dünnes Blättchen aus Metall, Papier o. Ä., das durch seine Schwingungsfähigkeit geeignet ist, Schallwellen zu übertragen \dots''. Ein dünnes Blättchen aus Metall zeig jedoch nicht die selben dynamischen Eigenschaften wie ein gespanntes Stück Papier. -Beschreibt man das dynamische Verhalten, muss zwischen einer dünnen Platte und einer Membrane unterschieden werden \cite{kreismembran:membrane_vs_thin_plate}. -Eine dünne Platte zum Beispiel aus Metall, wirkt selbst entgegen ihrer Deformation sobald sie gekrümmt wird. -Eine Membran auf der anderen Seite besteht aus einem Material, welches sich ohne Kraftaufwand verbiegen lässt wie zum Beispiel Papier. +Beschreibt man das dynamische Verhalten, muss zwischen einer dünnen Platte und einer Membran unterschieden werden \cite{kreismembran:membrane_vs_thin_plate}. +Eine dünne Platte zum Beispiel aus Metall, wirkt selbst entgegen ihrer Deformation, sobald sie gekrümmt wird. +Eine Membran auf der anderen Seite besteht aus einem Material, welches sich ohne Kraftaufwand verbiegen lässt, wie zum Beispiel Papier. Bevor Papier als schwingende Membran betrachtet werden kann, wird jedoch noch eine Spannung $ T $ benötigt, welche das Material daran hindert, aus der Ruhelage gebracht zu werden. Ein geläufiges Beispiel einer Kreismembran ist eine runde Trommel. @@ -28,11 +28,11 @@ Das untersuchte Modell erfüllt folgende Eigenschaften: Durch die konstante Elastizität ist die ganze Membran unter gleichmässiger Spannung $ T $. \item Die Membran ist perfekt flexibel. Damit ist gemeint, dass die Membran ohne Kraftaufwand verbogen werden kann. - Die Membran ist dadurch nicht allein stehend schwingfähig, hierzu muss sie gespannt werden mit einer Kraft $ T $. + Die Membran ist dadurch nicht allein stehend schwingfähig, hierzu muss sie mit einer Kraft $ T $ gespannt werden. \item Die Membran kann sich nur in Richtung ihrer Normalen in kleinem Ausmass auslenken. Auslenkungen in der Ebene der Membran sind nicht möglich. \item Die Membran erfährt keine Art von Dämpfung. - Die Membran wird also nicht durch ihr umliegendes Medium abgebremst noch erfährt sie Wärmeverluste durch Deformation. + Die Membran wird also nicht durch ihr umliegendes Medium abgebremst noch erfährt sie Reibungsverluste durch Deformation. \end{enumerate} @@ -42,7 +42,8 @@ Die Verbindung zwischen Membran und Saite ist intuitiv ersichtlich, stellt man s \begin{figure} \begin{center} - \includegraphics[width=5cm,angle=-90]{papers/kreismembran/images/Saite.pdf} + % \includegraphics[width=5cm,angle=-90]{papers/kreismembran/images/Saite.pdf} + \includegraphics[]{papers/kreismembran/images/TikzSaite.pdf} \caption{Infinitesimales Stück einer Saite} \label{kreismembran:im:Saite} \end{center} @@ -64,7 +65,7 @@ befolgen. Die senkrecht wirkenden Kräfte werden mit $ T_1 $ und $ T_2 $ ausgedr \begin{equation*} T_2 \sin \beta - T_1 \sin \alpha = \rho dx \frac{\partial^2 u}{\partial t^2} . \end{equation*} -Die Gleichung wird durch $ T $ dividiert, wobei $ T $ nach \ref{kreismembran:eq:no_translation} geschickt gewählt wird. Somit kann +Die Gleichung wird durch $ T $ dividiert, wobei $ T $ nach \eqref{kreismembran:eq:no_translation} geschickt gewählt wird. Somit kann \begin{equation*} \frac{T_2 \sin \beta}{T_2 \cos \beta} - \frac{T_1 \sin \alpha}{T_1 \cos \alpha} = \frac{\rho dx}{T} \frac{\partial^2 u}{\partial t^2} \end{equation*} @@ -91,4 +92,4 @@ Damit resultiert die in der Literatur gebräuchliche Form \frac{1}{c^2}\frac{\partial^2u}{\partial t^2} = \Delta u. \end{equation} In dieser Form ist die Gleichung auch gültig für eine Membran. -Für den Fall einer Membran muss lediglich der Laplace-Operator $\Delta$ in zwei Dimensionen gerechnet werden.
\ No newline at end of file +Für den Fall einer Membran muss lediglich der Laplace-Operator $\Delta$ in zwei Dimensionen verwendet werden.
\ No newline at end of file diff --git a/buch/papers/kreismembran/teil1.tex b/buch/papers/kreismembran/teil1.tex index f6ba7d1..a9b2fad 100644 --- a/buch/papers/kreismembran/teil1.tex +++ b/buch/papers/kreismembran/teil1.tex @@ -7,7 +7,7 @@ \section{Lösungsmethode 1: Separationsmethode \label{kreismembran:section:teil1}} \rhead{Lösungsmethode 1: Separationsmethode} -An diesem Punkt bleibt also nur noch die Lösung der partiellen Differentialgleichung. In diesem Abschnitt wird sie mit Hilfe der Separationsmethode gelöst. +An diesem Punkt bleibt also ``nur'' noch die Lösung der partiellen Differentialgleichung. In diesem Abschnitt wird sie mit Hilfe der Separationsmethode gelöst. \subsection{Aufgabestellung\label{sub:aufgabestellung}} Wie im vorherigen Abschnitt gezeigt, lautet die partielle Differentialgleichung, die die Schwingungen einer Membran beschreibt: @@ -30,7 +30,7 @@ Da es sich um eine Kreisscheibe handelt, werden Polarkoordinaten verwendet, so d ergibt. Es wird eine runde elastische Membran berücksichtigt, die das Gebiet $\Omega$ abdeckt und am Rand $\Gamma$ befestigt ist. -Es wirken keine äusseren Kräfte. Es handelt sich somit von einer kreisförmligen eingespannten homogenen schwingenden Membran nach den Annahmen von \ref{kreimembran:annahmen}. +Es wirken keine äusseren Kräfte. Es handelt sich somit von einer kreisförmligen eingespannten homogenen schwingenden Membran nach den Annahmen von Abschnitt \ref{kreimembran:annahmen}. Daher ist die Membranabweichung im Punkt $(r,\varphi)$ $\in$ $\overline{\rm \Omega}$ zum Zeitpunkt $t$: \begin{align*} @@ -50,9 +50,9 @@ Nun wird das in Abschnitt \ref{sub:aufgabestellung} vorgestellte Problem mit Hil \subsubsection{Ansatz der Separation der Variablen\label{subsub:ansatz_separation}} Hierfür wird folgenden Ansatz gemacht: \begin{equation*} - u(r,\varphi, t) = F(r)G(\varphi)T(t) + u(r,\varphi, t) = F(r)G(\varphi)T(t). \end{equation*} -Dank der Randbedingungen kann gefordert werden, dass $F(R)=0$ ist, und natürlich, dass $G(\varphi)$ $2\pi$ periodisch ist. Eingesetzt in der Differenzialgleichung ergibt sich: +Dank der Randbedingungen kann gefordert werden, dass $F(R)=0$ ist, und natürlich, dass $G(\varphi)$ $2\pi$-periodisch ist. Eingesetzt in der Differenzialgleichung ergibt sich nach Division durch $u$: \begin{equation*} \frac{1}{c^2}\frac{T''(t)}{T(t)}=-\kappa^2=\frac{F''(r)}{F(r)}+\frac{1}{r}\frac{F'(r)}{F(r)}+\frac{1}{r^2}\frac{G''(\varphi)}{G(\varphi)}. \end{equation*} @@ -71,9 +71,9 @@ In der zweiten Gleichung hängt die linke Seite nur von $r$ ab, während die rec \end{align*} \subsubsection{Lösung für $G(\varphi)$\label{subsub:lösung_G}} -Da für die zweite Gleichung Lösungen von Schwingungen erwartet werden, für die $G''(\varphi)=-\omega^2 G(\varphi)$ gilt, schreibt man die gemeinsame Konstante als $\nu=-\omega^2$, was die Formeln später vereinfacht. Also: +Da für die zweite Gleichung Lösungen von Schwingungen erwartet werden, für die $G''(\varphi)=-n^2 G(\varphi)$ gilt, schreibt man die gemeinsame Konstante als $\nu=-n^2$, was die Formeln später vereinfacht. $n$ muss auch eine ganze Zahl sein, weil $G(\varphi)$ sonst nicht $2\pi$-periodisch ist. Also: \begin{equation*} - G(\varphi) = C_n \cos(\nu\varphi) + D_n \sin(\nu\varphi) + G(\varphi) = C_n \cos(n\varphi) + D_n \sin(n\varphi) \label{eq:cos_sin_überlagerung} \end{equation*} @@ -85,17 +85,20 @@ Die Gleichung für $F$ hat die Gestalt (Verweis auf \label{buch:differentialglei \end{align} Wie bereits in Kapitel \ref{buch:differntialgleichungen:section:bessel} gezeigt, sind die Bessel-Funktionen \begin{equation*} - J_{\nu}(x) = r^\nu \displaystyle\sum_{m=0}^{\infty} \frac{(-1)^m x^{2m}}{2^{2m+\nu}m! \Gamma (\nu + m+1)} + J_{n}(x) = r^n \displaystyle\sum_{m=0}^{\infty} \frac{(-1)^m x^{2m}}{2^{2m+n}m! \Gamma (n + m+1)} \end{equation*} Lösungen der Besselschen Differenzialgleichung \begin{equation*} - x^2 y'' + xy' + (\kappa^2 - \nu^2)y = 0 + x^2 y'' + xy' + (\kappa^2 - n^2)y = 0 \end{equation*} Die Funktionen $F(r) = J_n(\kappa r)$ lösen die Differentialgleichung \eqref{eq:2nd_degree_PDE}. \subsubsection{Lösung für $T(t)$\label{subsub:lösung_T}} -Die Differenzialgleichung $T''(t) + c^2\kappa^2T(t) = 0$, wird auf ähnliche Weise gelöst wie $G(\varphi)$. - +Die Differenzialgleichung $T''(t) + c^2\kappa^2T(t) = 0$, wird auf ähnliche Weise gelöst wie $G(\varphi)$. Um eine Einschränkung der möglichen Frequenzen zu erhalten und die Lösung als Reihe schreiben zu können, muss die folgende homogene Randbedingung definiert werden: +\begin{equation*} + u\big|_{\Gamma} = 0 \quad \text{für} \quad 0 \leq \varphi \leq 2\pi,\quad t \geq 0, +\end{equation*} +welche die $\kappa$ auf mögliche werte $\kappa_{mn}$ einschränkt. \subsubsection{Zusammenfassung der Lösungen\label{subsub:zusammenfassung_lösungen}} Durch Überlagerung aller Ergebnisse erhält man die Lösung \begin{align} @@ -120,5 +123,7 @@ für die Anzahl der Knotenlinien steht. Es gibt bestimmte Bereiche auf der Membr \label{buch:pde:kreis:fig:pauke}} \end{figure} - +\begin{center} + * \quad *\quad * +\end{center} An diesem Punkt stellte sich die Frage, ob es möglich wäre, die partielle Differentialgleichung mit einer anderen Methode als der der Trennung der Variablen zu lösen. Nach einer kurzen Recherche wurde festgestellt, dass eine weitere Methode die Transformationsmethode ist, genauer gesagt die Anwendung der Hankel-Transformation. Im nächsten Kapitel wird daher diese Integraltransformation vorgestellt und entwickelt, und es wird erläutert, warum sie für diese Art von Problem geeignet ist. diff --git a/buch/papers/kreismembran/teil2.tex b/buch/papers/kreismembran/teil2.tex index ec27bd3..4ceeb84 100644 --- a/buch/papers/kreismembran/teil2.tex +++ b/buch/papers/kreismembran/teil2.tex @@ -7,12 +7,12 @@ Hermann Hankel (1839--1873) war ein deutscher Mathematiker, der für seinen Beitrag zur mathematischen Analysis und insbesondere für die nach ihm benannte Transformation bekannt ist. Diese Transformation tritt bei der Untersuchung von Funktionen auf, die nur von der Entfernung des Ursprungs abhängen. -Er untersuchte auch Funktionen, jetzt Hankel- oder Bessel- Funktionen genannt, der dritten Art. +Er untersuchte auch Funktionen, jetzt Hankel- oder Bessel-Funktionen genannt, der dritten Art. Die Hankel-Transformation, die die Bessel-Funktion enthält, taucht natürlich bei achsensymmetrischen Problemen auf, die in zylindrischen Polarkoordinaten formuliert sind. In diesem Abschnitt werden die Theorie der Transformation und einige Eigenschaften der Grundoperationen erläutert. \subsubsection{Definition der Hankel-Transformation \label{subsub:hankel_tansformation}} -Wir führen die Definition der Hankel-Transformation \cite{lokenath_debnath_integral_2015} aus der zweidimensionalen Fourier-Transformation und ihrer Umkehrung ein, die durch: +Wir führen die Definition der Hankel-Transformation \cite{lokenath_debnath_integral_2015} aus der zweidimensionalen Fourier-Trans\-formation und ihrer Umkehrung ein, die durch: \begin{align} \mathscr{F}\{f(x,y)\} & = F(k,l)=\frac{1}{2\pi}\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}e^{-i( \bm{\kappa}\cdot \mathbf{r})}f(x,y) \; dx \; dy,\label{equation:fourier_transform}\\ \mathscr{F}^{-1}\{F(x,y)\} & = f(x,y)=\frac{1}{2\pi}\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}e^{i(\bm{\kappa}\cdot \mathbf{r})}F(k,l) \; dx \; dy \label{equation:inv_fourier_transform} @@ -49,13 +49,13 @@ wo $\tilde{f}_n(\kappa)$ ist die \textit{Hankel-Transformation} von $f(r)$ und i \subsubsection{Inverse Hankel-Transformation \label{subsub:inverse_hankel_tansformation}} Wie bei der Entwicklung der Hankel-Transformation können auch für die Umkehrformel Analogien zur Fourier-Transformation hergestellt werden. Vergleicht man die beiden Transformationen, so stellt man fest, dass sie sehr ähnlich sind, wenn man den Term $J_n(\kappa r)$ der Hankel-Transformation durch $e^{-i( \bm{\kappa}\cdot \mathbf{r})}$ der Fourier-Transformation ersetzt. Diese beide Funktionen sind orthogonal, und bei orthogonalen Matrizen genügt bekanntlich die Transponierung, um sie zu invertieren. Da das Skalarprodukt der Bessel-Funktionen jedoch nicht dasselbe ist wie das der Exponentialfunktionen, muss man durch $\kappa\; d\kappa$ statt nur durch $d\kappa$ integrieren, um die Umkehrfunktion zu erhalten. -Von \eqref{equation:hankel} also ist, die inverse \textit{Hankel-Transformation} so definiert: +Die inverse \textit{Hankel-Transformation} ist also als \begin{align} \mathscr{H}^{-1}_n\{\tilde{f}_n(\kappa)\}=f(r)=\int_{0}^{\infty}\kappa J_n(\kappa r) \tilde{f}_n(\kappa) \; d\kappa. \label{equation:inv_hankel} \end{align} +definiert. -Anstelle von $\tilde{f}_n(\kappa)$, wird häufig einfach $\tilde{f}(\kappa)$ für die Hankel-Transformation verwendet, indem die Ordnung angegeben wird. Die Integrale \eqref{equation:hankel} und \eqref{equation:inv_hankel} existieren für bestimmte grosse Klassen von Funktionen, die normalerweise in physikalischen Anwendungen vorkommen. Alternativ dazu kann die berühmte Hankel-Integralformel diff --git a/buch/papers/kreismembran/teil3.tex b/buch/papers/kreismembran/teil3.tex index a9dcd95..d143ec7 100644 --- a/buch/papers/kreismembran/teil3.tex +++ b/buch/papers/kreismembran/teil3.tex @@ -60,19 +60,23 @@ so dass $\tilde{g}(\kappa)\equiv 0$ und \tilde{f}(\kappa)=Aa\int_{0}^{\infty}r(a^2 + r^2)^{-\frac{1}{2}} J_0 (\kappa r) \; dr=\frac{Aa}{\kappa}e^{-a\kappa}. \end{equation*} -Aus der Laplace-Transformation und unter Verwendung der Skalierungseigenschaft ergibt sich, dass +\noindent Die formale Lösung \eqref{eq:formale_lösung} lautet also +\begin{align} + u(r,t)=Aa\int_{0}^{\infty}e^{-a\kappa} J_0(\kappa r)\cos(c\kappa t) \; dk=AaRe\int_{0}^{\infty}e^{-\kappa(a+ict)} J_0(\kappa r) \; dk. + \label{form_lösung2_step1} +\end{align} +\noindent Aus der Laplace-Transformation und unter Verwendung der Skalierungseigenschaft \cite{noauthor_laplace_nodate} ergibt sich, dass \begin{align*} - \int_{0}^{\infty}e^{-px} J_0(\kappa x) \; dx = \frac{1}{\sqrt{\kappa^2 + p^2}}. + \int_{0}^{\infty}e^{-px} J_0(\kappa x) \; dx = \frac{1}{\sqrt{\kappa^2 + p^2}}, \end{align*} -Die formale Lösung \eqref{eq:formale_lösung} lautet also -\begin{align*} - u(r,t)&=Aa\int_{0}^{\infty}e^{-a\kappa} J_0(\kappa r)\cos(c\kappa t) \; dk=AaRe\int_{0}^{\infty}e^{-\kappa(a+ict)} J_0(\kappa r) \; dk\\ - &=AaRe\left\{r^2+\left(a+ict\right)^2\right\}^{-\frac{1}{2}}. -\end{align*} +\noindent \eqref{form_lösung2_step1} kann somit vereinfacht werden in: +\begin{equation*} + u(r,t)=AaRe\left\{r^2+\left(a+ict\right)^2\right\}^{-\frac{1}{2}}. +\end{equation*} -Nimmt man jedoch die allgemeine Lösung durch Überlagerung, +\noindent Nimmt man jedoch die allgemeine Lösung durch Überlagerung, \begin{align} u(r, t) = \displaystyle\sum_{m=1}^{\infty} J_0 (k_{m}r)[a_{m}\cos(c \kappa_{m} t)+b_{m}\sin(c \kappa_{m} t)] @@ -84,6 +88,6 @@ kann man die Lösungsmethoden 1 und 2 vergleichen. \label{kreismembran:vergleich}} Bei der Analyse der Gleichungen \eqref{eq:lösung_endliche_generelle} und \eqref{eq:lösung_unendliche_generelle} fällt sofort auf, dass die Gleichung \eqref{eq:lösung_unendliche_generelle} nicht mehr von $m$ und $n$ abhängt, sondern nur noch von $n$ \cite{nishanth_p_vibrations_2018}. Das macht Sinn, denn $n$ beschreibt die Anzahl der Knotenlinien, welche unter der Annahme einer rotationssymmetrischen Lösung nicht vorhanden sein können. Tatsächlich werden $a_{m0}$, $b_{m0}$ und $\kappa_{m0}$ in $a_m$, $b_m$ bzw. $\kappa_m$ umbenannt. Die beiden Termen $\cos(n\varphi)$ und $\sin(n\varphi)$ verschwinden ebenfalls, da für $n=0$ der $\cos(n\varphi)$ gleich 1 und der $\sin(n \varphi)$ gleich 0 ist. -Die Funktion hängt also nicht mehr von der Besselfunktionen $n$-ter Ordnung ab, sondern nur von der nullter Ordnung. +Die Funktion hängt also nicht mehr von der Bessel-Funktionen $n$-ter Ordnung ab, sondern nur von der nullter Ordnung. diff --git a/buch/papers/kreismembran/teil4.tex b/buch/papers/kreismembran/teil4.tex index 01a6029..d6aa54f 100644 --- a/buch/papers/kreismembran/teil4.tex +++ b/buch/papers/kreismembran/teil4.tex @@ -8,13 +8,13 @@ Um numerisch das Verhalten einer Membran zu ermitteln, muss eine numerische Darstellung definiert werden. Die Membran wird hier in Form der Matrix $ U $ digitalisiert. -Jedes Element $ U_{ij} $ steh für die Auslenkung der Membran $ u(x,y,t) $ an der Stelle $ \{x,y\}=\{i,j\} $. -Zwischen benachbarten Elementen in der Matrix $ U $ liegt immer der Abstand $ dh $, eine Inkrementierung von $ i $ oder $ j $ entspricht somit einem Schritt in Richtung $ x $ oder $ y $ von Länge $ dh $ auf der Membran. -Die zeitliche Dimension wird in Form des Array $ U[] $ aus $ z \times U $ Matrizen dargestellt, wobei $ z $ der Anzahl Zeitschritten entspricht. -Das Element auf Zeile $ i $, Spalte $ j $ der $ w $-ten Matrix von $ U[] $ also $ U[w]_{ij} $ entspricht somit der Auslenkung $ u(i,j,w) $. +Jedes Element $ U_{ij} $ steht für die Auslenkung der Membran $ u(x,y,t) $ an der Stelle $ \{x,y\}=\{i,j\} $. +Zwischen benachbarten Elementen in der Matrix $ U $ liegt immer der Abstand $ dh $, eine Inkrementierung von $ i $ oder $ j $ ist somit einem Schritt in Richtung $ x $ oder $ y $ von Länge $ dh $ auf der Membran. +Die zeitliche Dimension wird in Form des Array $ U[] $ aus $ z \times U $ Matrizen dargestellt, wobei $ z $ die Anzahl von Zeitschritten ist. +Das Element auf Zeile $ i $, Spalte $ j $ der $ w $-ten Matrix von $ U[] $ also $ U[w]_{ij} $ ist somit die Auslenkung $ u(i,j,w) $. Da die DGL von zweiter Ordnung ist, reicht eine Zustandsvariabel pro Membran-Element nicht aus. Es wird neben der Auslenkung auch die Geschwindigkeit jedes Membran-Elementes benötigt um den Zustand eindeutig zu beschreiben. -Dazu existiert neben $ U[] $ ein analoger Array $ V[] $ welcher die Geschwindigkeiten aller Membran-Elementen repräsentiert. +Dazu existiert neben $ U[] $ ein analoger Array $ V[] $ welcher die Geschwindigkeiten aller Membran-Elemente repräsentiert. $ V[w]_{ij} $ entspricht also $ \dot{u}(i,j,w) $. Der Zustand einer Membran zum Zeitpunkt $ w $ wird mit $ X[w] $ beschrieben, was $ U[w] $ und $ V[w] $ beinhaltet. @@ -25,7 +25,7 @@ Die Folgeposition $ U[w+1] $ ergibt sich als \begin{equation} U[w+1] = U[w] + dt \cdot V[w], \end{equation} -also die Ausgangslage $ + $ die Strecke welche während des Zeitintervall mit der Geschwindigkeit des Elementes zurückgelegt wurde. +also die Ausgangslage plus die Strecke welche während des Zeitintervall mit der Geschwindigkeit des Elementes zurückgelegt wurde. Neben der Position muss auch die Geschwindigkeit aktualisiert werden. Analog zur Folgeposition wird \begin{equation*} @@ -40,7 +40,7 @@ Die Geschwindigkeit des Folgezustandes kann somit mit V[w+1] = V[w] + dt \cdot \Delta_h U \cdot c^2 \end{equation} berechnet werden. -Während $ c^2 $ lediglich eine Material spezifische Konstante ist, muss noch erläutert werden, wie der diskrete Laplace-Operator für $ \Delta_h u $ definiert ist. +Während $ c^2 $ lediglich eine Material spezifische Konstante ist, muss noch erläutert werden, wie der diskrete Laplace-Operator für $ \Delta_h u $ definiert ist. Dieses Verfahren wird Euler-Methode genannt. \subsection{Diskreter Laplace-Operator $\Delta_h$} Die diskrete Ableitung zweiter Ordnung kann mit Hilfe der Taylor-Reihen-Entwicklung als @@ -93,9 +93,9 @@ Der Folgezustand kann also mit den Gleichungen \label{kreismembran:eq:folge_V} V[w+1] &= (V[w] + dt \cdot \Delta_h u \cdot c^2)\odot M \end{align} -berechnet werden. +berechnet werden. Das Symbol $\odot$ steht hier für eine elementweise Matrixmultiplikation (Hadamard-Produkt) \subsubsection{Simulation} -Mit den gegebenen Gleichungen \ref{kreismembran:eq:folge_U} und \ref{kreismembran:eq:folge_V} das Verhalten der Membran mit einem Loop über das zu untersuchende Zeitintervall berechnet werden. +Mit den gegebenen Gleichungen \eqref{kreismembran:eq:folge_U} und \eqref{kreismembran:eq:folge_V} das Verhalten der Membran mit einem Loop über das zu untersuchende Zeitintervall berechnet werden. In der Abbildung \ref{kreismembran:im:simres_rund} sind Simulationsresultate zu sehen. Die erste Figur zeigt die Ausgangslage gefolgt von den Auslenkungen nach jeweils $ 50 $ weiteren Iterationsschritten. Es ist zu erkennen, wie sich die Störung vom Zentrum an den Rand ausbreitet. @@ -120,7 +120,7 @@ Erreicht die Störung den Rand, wird sie reflektiert und nähert sich dem Zentru Um eine unendlich grosse Membran zu simulieren, könnte der unpraktische Weg gewählt werden, die Matrix unendlich gross zu definieren, dies wird jedoch spätestens bei der numerischen Berechnung seine Probleme mit sich bringen. Etwas geeigneter ist es, die Matrix so gross wie möglich zu definieren, wie es die Kapazitäten erlauben. Wenn anschliessend nur das Verhalten im Zentrum, bei der Störung beobachtet wird, verhaltet sich die Membran wie eine unendliche. -Dies aber nur bis die Störung am Rand reflektiert wird und wieder das innere zu beobachtende Zentrum beeinflusst. +Dies aber nur bis die Störung am Rand reflektiert wird und wieder das Zentrum beeinflusst. Soll erst gar keine Reflexion entstehen, muss ein Absorber modelliert werden welcher die Störung möglichst ohne Reflexion aufnimmt. \subsubsection{Absorber} @@ -132,15 +132,15 @@ Der Spielraum welcher dem Absorber übrig bleibt ist die Art der Überganges. Bei der endlichen kreisförmigen Membran hat die Maske $M$ einen binären Übergang von Membran zu Rand bezweckt. Anstelle dieses abrupten Wechsels wird nun eine Maske definiert, welche graduell von Membran $1$ zu Rand-Element $0$ wechselt. Die Elemente werden auf Basis ihres Abstand $r$ zum Zentrum definiert. -Der Abstand entspricht +Der Abstand ist \begin{equation*} r(i,j) = \sqrt{|i-\frac{m}{2}|^2+|j-\frac{n}{2}|^2}, \end{equation*} -wobei $ m $ und $n$ den Dimensionen der Matrix entsprechen. -Für einen Stufenlosen Übergang werden die Elemente der Maske auf +wobei $ m $ und $n$ die Dimensionen der Matrix sind. +Für einen stufenlosen Übergang werden die Elemente der Maske auf \begin{align} - M_{ij} = \begin{cases} 1-e^{(r(i,j)-b)a} & \text{wenn $x > b$} \\ + M_{ij} = \begin{cases} 1-e^{(r(i,j)-b)a} & \text{$x > b$} \\ 0 & \text{sonst} \end{cases} \end{align} gesetzt. @@ -184,7 +184,7 @@ Die DGL \ref{kreismembran:Ausgang_DGL} welche simuliert wird geht jedoch von der \section{Schlusswort} Auch wenn ein physikalisches Verhalten bereits durch Annahmen und Annäherungen deutlich vereinfacht wird, bestehen auch dann noch eine Vielzahl von Lösungsansätzen. Lösungen einer unendlich grosse Membran scheinen fern der Realität zu sein, doch dies darf es im Sinne der Mathematik. -Und wer weis, für eine Ameise auf einem Trampolin ist eine unendliche Membran vielleicht eine ganz gute Annäherung. +Und wer weiss, für eine Ameise auf einem Trampolin ist eine unendliche Membran vielleicht eine ganz gute Annäherung. diff --git a/buch/papers/kugel/Makefile b/buch/papers/kugel/Makefile index f798a55..995206b 100644 --- a/buch/papers/kugel/Makefile +++ b/buch/papers/kugel/Makefile @@ -5,5 +5,6 @@ # images: - @echo "no images to be created in kugel" + $(MAKE) -C ./figures/povray/ + $(MAKE) -C ./figures/tikz/ diff --git a/buch/papers/kugel/figures/flux.pdf b/buch/papers/kugel/figures/flux.pdf Binary files differnew file mode 100644 index 0000000..6a87288 --- /dev/null +++ b/buch/papers/kugel/figures/flux.pdf diff --git a/buch/papers/kugel/images/Makefile b/buch/papers/kugel/figures/povray/Makefile index 4226dab..4226dab 100644 --- a/buch/papers/kugel/images/Makefile +++ b/buch/papers/kugel/figures/povray/Makefile diff --git a/buch/papers/kugel/figures/povray/curvature.jpg b/buch/papers/kugel/figures/povray/curvature.jpg Binary files differnew file mode 100644 index 0000000..6448966 --- /dev/null +++ b/buch/papers/kugel/figures/povray/curvature.jpg diff --git a/buch/papers/kugel/images/curvature.maxima b/buch/papers/kugel/figures/povray/curvature.maxima index 6313642..6313642 100644 --- a/buch/papers/kugel/images/curvature.maxima +++ b/buch/papers/kugel/figures/povray/curvature.maxima diff --git a/buch/papers/kugel/figures/povray/curvature.png b/buch/papers/kugel/figures/povray/curvature.png Binary files differnew file mode 100644 index 0000000..20268f2 --- /dev/null +++ b/buch/papers/kugel/figures/povray/curvature.png diff --git a/buch/papers/kugel/images/curvature.pov b/buch/papers/kugel/figures/povray/curvature.pov index 3b15d77..3b15d77 100644 --- a/buch/papers/kugel/images/curvature.pov +++ b/buch/papers/kugel/figures/povray/curvature.pov diff --git a/buch/papers/kugel/images/curvgraph.m b/buch/papers/kugel/figures/povray/curvgraph.m index 75effd6..75effd6 100644 --- a/buch/papers/kugel/images/curvgraph.m +++ b/buch/papers/kugel/figures/povray/curvgraph.m diff --git a/buch/papers/kugel/images/spherecurve.cpp b/buch/papers/kugel/figures/povray/spherecurve.cpp index 8ddf5e5..8ddf5e5 100644 --- a/buch/papers/kugel/images/spherecurve.cpp +++ b/buch/papers/kugel/figures/povray/spherecurve.cpp diff --git a/buch/papers/kugel/figures/povray/spherecurve.jpg b/buch/papers/kugel/figures/povray/spherecurve.jpg Binary files differnew file mode 100644 index 0000000..cd2e7c8 --- /dev/null +++ b/buch/papers/kugel/figures/povray/spherecurve.jpg diff --git a/buch/papers/kugel/images/spherecurve.m b/buch/papers/kugel/figures/povray/spherecurve.m index 99d5c9a..99d5c9a 100644 --- a/buch/papers/kugel/images/spherecurve.m +++ b/buch/papers/kugel/figures/povray/spherecurve.m diff --git a/buch/papers/kugel/images/spherecurve.maxima b/buch/papers/kugel/figures/povray/spherecurve.maxima index 1e9077c..1e9077c 100644 --- a/buch/papers/kugel/images/spherecurve.maxima +++ b/buch/papers/kugel/figures/povray/spherecurve.maxima diff --git a/buch/papers/kugel/figures/povray/spherecurve.png b/buch/papers/kugel/figures/povray/spherecurve.png Binary files differnew file mode 100644 index 0000000..ff24371 --- /dev/null +++ b/buch/papers/kugel/figures/povray/spherecurve.png diff --git a/buch/papers/kugel/images/spherecurve.pov b/buch/papers/kugel/figures/povray/spherecurve.pov index b1bf4b8..b1bf4b8 100644 --- a/buch/papers/kugel/images/spherecurve.pov +++ b/buch/papers/kugel/figures/povray/spherecurve.pov diff --git a/buch/papers/kugel/figures/tikz/Makefile b/buch/papers/kugel/figures/tikz/Makefile new file mode 100644 index 0000000..4ec4e5a --- /dev/null +++ b/buch/papers/kugel/figures/tikz/Makefile @@ -0,0 +1,12 @@ +FIGURES := spherical-coordinates.pdf curvature-1d.pdf + +all: $(FIGURES) + +%.pdf: %.tex + pdflatex $< + +curvature-1d.pdf: curvature-1d.tex curvature-1d.dat + pdflatex curvature-1d.tex + +curvature-1d.dat: curvature-1d.py + python3 $< diff --git a/buch/papers/kugel/figures/tikz/curvature-1d.dat b/buch/papers/kugel/figures/tikz/curvature-1d.dat new file mode 100644 index 0000000..6622398 --- /dev/null +++ b/buch/papers/kugel/figures/tikz/curvature-1d.dat @@ -0,0 +1,500 @@ +0.000000000000000000e+00 1.000000000000000000e+00 5.000007286987066095e+02 +2.004008016032064049e-02 1.025056790958151831e+00 4.899813296957295279e+02 +4.008016032064128098e-02 1.050121598724190752e+00 4.799659543969494848e+02 +6.012024048096192147e-02 1.075186379145250948e+00 4.699586248906784931e+02 +8.016032064128256196e-02 1.100243094530689136e+00 4.599633600341078932e+02 +1.002004008016031955e-01 1.125283716879951434e+00 4.499841738393695891e+02 +1.202404809619238429e-01 1.150300231106550664e+00 4.400250738615438877e+02 +1.402805611222444904e-01 1.175284638256853809e+00 4.300900595892592833e+02 +1.603206412825651239e-01 1.200228958722394657e+00 4.201831208385332275e+02 +1.803607214428857575e-01 1.225125235444413541e+00 4.103082361504954747e+02 +2.004008016032063910e-01 1.249965537109345881e+00 4.004693711936409954e+02 +2.204408817635270523e-01 1.274741961333968554e+00 3.906704771712513775e+02 +2.404809619238476859e-01 1.299446637838927776e+00 3.809154892346260795e+02 +2.605210420841683194e-01 1.324071731609375302e+00 3.712083249027585907e+02 +2.805611222444889807e-01 1.348609446041445725e+00 3.615528824890962483e+02 +3.006012024048095865e-01 1.373052026073301457e+00 3.519530395360096122e+02 +3.206412825651302478e-01 1.397391761299501045e+00 3.424126512576057166e+02 +3.406813627254509091e-01 1.421620989067430063e+00 3.329355489915074031e+02 +3.607214428857715149e-01 1.445732097554558448e+00 3.235255386602207750e+02 +3.807615230460921762e-01 1.469717528825280173e+00 3.141863992427096832e+02 +4.008016032064127820e-01 1.493569781866116220e+00 3.049218812567906411e+02 +4.208416833667334433e-01 1.517281415598057848e+00 2.957357052529569614e+02 +4.408817635270541047e-01 1.540845051864837556e+00 2.866315603202378384e+02 +4.609218436873747105e-01 1.564253378395934257e+00 2.776131026046919601e+02 +4.809619238476953718e-01 1.587499151743118286e+00 2.686839538411309150e+02 +5.010020040080159776e-01 1.610575200189357625e+00 2.598476998986618582e+02 +5.210420841683366389e-01 1.633474426628916509e+00 2.511078893406329655e+02 +5.410821643286573002e-01 1.656189811417493107e+00 2.424680319995614752e+02 +5.611222444889779615e-01 1.678714415191247422e+00 2.339315975676150003e+02 +5.811623246492986228e-01 1.701041381653590534e+00 2.255020142032130082e+02 +6.012024048096191731e-01 1.723163940328612753e+00 2.171826671543084046e+02 +6.212424849699398344e-01 1.745075409280051337e+00 2.089768973989005474e+02 +6.412825651302604957e-01 1.766769197794693991e+00 2.008880003033277433e+02 +6.613226452905811570e-01 1.788238809029157217e+00 1.929192242988764008e+02 +6.813627254509018183e-01 1.809477842618958832e+00 1.850737695772391760e+02 +7.014028056112223686e-01 1.830479997248850577e+00 1.773547868053454408e+02 +7.214428857715430299e-01 1.851239073183373218e+00 1.697653758600805816e+02 +7.414829659318636912e-01 1.871748974756613837e+00 1.623085845834024497e+02 +7.615230460921843525e-01 1.892003712820175432e+00 1.549874075583541639e+02 +7.815631262525050138e-01 1.911997407148365635e+00 1.478047849064652723e+02 +8.016032064128255641e-01 1.931724288799645972e+00 1.407636011070246695e+02 +8.216432865731462254e-01 1.951178702433387091e+00 1.338666838386980942e+02 +8.416833667334668867e-01 1.970355108581006931e+00 1.271168028439571600e+02 +8.617234468937875480e-01 1.989248085870571892e+00 1.205166688167746969e+02 +8.817635270541082093e-01 2.007852333203973494e+00 1.140689323140332476e+02 +9.018036072144288706e-01 2.026162671885804123e+00 1.077761826910842018e+02 +9.218436873747494209e-01 2.044174047703075203e+00 1.016409470618853419e+02 +9.418837675350700822e-01 2.061881532954947804e+00 9.566568928413349227e+01 +9.619238476953907435e-01 2.079280328431652780e+00 8.985280896980044929e+01 +9.819639278557114048e-01 2.096365765341811738e+00 8.420464052146976996e+01 +1.002004008016031955e+00 2.113133307187384347e+00 7.872345219486057033e+01 +1.022044088176352616e+00 2.129578551585488810e+00 7.341144518791566043e+01 +1.042084168336673278e+00 2.145697232036356539e+00 6.827075275681968947e+01 +1.062124248496993939e+00 2.161485219636723798e+00 6.330343935930140020e+01 +1.082164328657314600e+00 2.176938524737964453e+00 5.851149982556578522e+01 +1.102204408817635262e+00 2.192053298548298113e+00 5.389685855718687435e+01 +1.122244488977955923e+00 2.206825834678430187e+00 4.946136875428519630e+01 +1.142284569138276584e+00 2.221252570630007028e+00 4.520681167129833966e+01 +1.162324649298597246e+00 2.235330089226285288e+00 4.113489590164444110e+01 +1.182364729458917685e+00 2.249055119984439521e+00 3.724725669156617869e+01 +1.202404809619238346e+00 2.262424540428958686e+00 3.354545528342948302e+01 +1.222444889779559007e+00 2.275435377345608856e+00 3.003097828874255271e+01 +1.242484969939879669e+00 2.288084807975446999e+00 2.670523709114522859e+01 +1.262525050100200330e+00 2.300370161148418191e+00 2.356956727960955078e+01 +1.282565130260520991e+00 2.312288918356074419e+00 2.062522811207871243e+01 +1.302605210420841653e+00 2.323838714762985536e+00 1.787340200976009186e+01 +1.322645290581162314e+00 2.335017340156437360e+00 1.531519408227492640e+01 +1.342685370741482975e+00 2.345822739834032333e+00 1.295163168385587404e+01 +1.362725450901803637e+00 2.356253015428841913e+00 1.078366400077049292e+01 +1.382765531062124298e+00 2.366306425671775404e+00 8.812161670136093861e+00 +1.402805611222444737e+00 2.375981387090854824e+00 7.037916430279492097e+00 +1.422845691382765398e+00 2.385276474647127998e+00 5.461640802781636772e+00 +1.442885771543086060e+00 2.394190422306948562e+00 4.083967806335150996e+00 +1.462925851703406721e+00 2.402722123550405264e+00 2.905450702529595031e+00 +1.482965931863727382e+00 2.410870631815691834e+00 1.926562773666154138e+00 +1.503006012024048044e+00 2.418635160879236246e+00 1.147697132691613664e+00 +1.523046092184368705e+00 2.426015085171442820e+00 5.691665653277303560e-01 +1.543086172344689366e+00 2.433009940027915263e+00 1.912034044591185422e-01 +1.563126252505010028e+00 2.439619421876060734e+00 1.395943683027547552e-02 +1.583166332665330689e+00 2.445843388357002546e+00 3.750584208938356756e-02 +1.603206412825651128e+00 2.451681858382752210e+00 2.618331642032580286e-01 +1.623246492985971789e+00 2.457135012128611962e+00 6.868513152547650602e-01 +1.643286573146292451e+00 2.462203190960818411e+00 1.312389611621266550e+00 +1.663326653306613112e+00 2.466886897299453096e+00 2.138196842519770602e+00 +1.683366733466933773e+00 2.471186794416676769e+00 3.163941370891084848e+00 +1.703406813627254435e+00 2.475103706170361573e+00 4.389211266582178084e+00 +1.723446893787575096e+00 2.478638616673238371e+00 5.813514471774004377e+00 +1.743486973947895757e+00 2.481792669897687542e+00 7.436278998587575018e+00 +1.763527054108216419e+00 2.484567169216326032e+00 9.256853158789395408e+00 +1.783567134268537080e+00 2.486963576878586935e+00 1.127450582550371472e+01 +1.803607214428857741e+00 2.488983513423490557e+00 1.348842672682692978e+01 +1.823647294589178181e+00 2.490628757028852114e+00 1.589772677122579658e+01 +1.843687374749498842e+00 2.491901242797179172e+00 1.850143840458866151e+01 +1.863727454909819503e+00 2.492803061978552392e+00 2.129851599878729118e+01 +1.883767535070140164e+00 2.493336461130795989e+00 2.428783627159159408e+01 +1.903807615230460826e+00 2.493503841217282080e+00 2.746819873777046439e+01 +1.923847695390781487e+00 2.493307756642720641e+00 3.083832619119621654e+01 +1.943887775551102148e+00 2.492750914227336079e+00 3.439686521775931283e+01 +1.963927855711422810e+00 2.491836172119830994e+00 3.814238673888808506e+01 +1.983967935871743471e+00 2.490566538649576334e+00 4.207338658545420174e+01 +2.004008016032063910e+00 2.488945171118494670e+00 4.618828610183413019e+01 +2.024048096192384794e+00 2.486975374533113126e+00 5.048543277988349587e+01 +2.044088176352705233e+00 2.484660600277302400e+00 5.496310092257003532e+01 +2.064128256513026116e+00 2.482004444726231274e+00 5.961949233699898087e+01 +2.084168336673346555e+00 2.479010647802090794e+00 6.445273705655124274e+01 +2.104208416833667439e+00 2.475683091472176578e+00 6.946089409184656915e+01 +2.124248496993987878e+00 2.472025798189923851e+00 7.464195221022733051e+01 +2.144288577154308317e+00 2.468042929279522735e+00 7.999383074345310263e+01 +2.164328657314629201e+00 2.463738783264768806e+00 8.551438042327842481e+01 +2.184368737474949640e+00 2.459117794142811952e+00 9.120138424458035331e+01 +2.204408817635270523e+00 2.454184529603501197e+00 9.705255835568922862e+01 +2.224448897795590963e+00 2.448943689195040463e+00 1.030655529755629374e+02 +2.244488977955911846e+00 2.443400102436689814e+00 1.092379533374396345e+02 +2.264529058116232285e+00 2.437558726879272442e+00 1.155672806585862560e+02 +2.284569138276553169e+00 2.431424646114265897e+00 1.220509931357573947e+02 +2.304609218436873608e+00 2.425003067732275142e+00 1.286864869659601709e+02 +2.324649298597194491e+00 2.418299321231706767e+00 1.354710973921206971e+02 +2.344689378757514930e+00 2.411318855878493483e+00 1.424020997732258422e+02 +2.364729458917835370e+00 2.404067238517710425e+00 1.494767106785168664e+02 +2.384769539078156253e+00 2.396550151337982548e+00 1.566920890052907680e+02 +2.404809619238476692e+00 2.388773389589562868e+00 1.640453371198620403e+02 +2.424849699398797576e+00 2.380742859257013677e+00 1.715335020212285144e+02 +2.444889779559118015e+00 2.372464574687412675e+00 1.791535765269697436e+02 +2.464929859719438898e+00 2.363944656175040571e+00 1.869025004809070936e+02 +2.484969939879759337e+00 2.355189327503528496e+00 1.947771619820341300e+02 +2.505010020040080221e+00 2.346204913446435114e+00 2.027743986342312610e+02 +2.525050100200400660e+00 2.336997837227277053e+00 2.108909988162550349e+02 +2.545090180360721543e+00 2.327574617940013191e+00 2.191237029714987443e+02 +2.565130260521041983e+00 2.317941867931036182e+00 2.274692049170012638e+02 +2.585170340681362422e+00 2.308106290143709938e+00 2.359241531711823257e+02 +2.605210420841683305e+00 2.298074675426524660e+00 2.444851522997685436e+02 +2.625250501002003745e+00 2.287853899805951663e+00 2.531487642793698569e+02 +2.645290581162324628e+00 2.277450921725090449e+00 2.619115098781609845e+02 +2.665330661322645067e+00 2.266872779249217817e+00 2.707698700531099121e+02 +2.685370741482965951e+00 2.256126587239360770e+00 2.797202873631965190e+02 +2.705410821643286390e+00 2.245219534495030533e+00 2.887591673980486462e+02 +2.725450901803607273e+00 2.234158880867263886e+00 2.978828802214276834e+02 +2.745490981963927712e+00 2.222951954343126868e+00 3.070877618289785573e+02 +2.765531062124248596e+00 2.211606148102859937e+00 3.163701156196634088e+02 +2.785571142284569035e+00 2.200128917550841834e+00 3.257262138802831259e+02 +2.805611222444889474e+00 2.188527777321561008e+00 3.351522992824964149e+02 +2.825651302605210358e+00 2.176810298261803389e+00 3.446445863917298311e+02 +2.845691382765530797e+00 2.164984104390269337e+00 3.541992631873747541e+02 +2.865731462925851680e+00 2.153056869835828113e+00 3.638124925936636487e+02 +2.885771543086172120e+00 2.141036315755658670e+00 3.734804140206049965e+02 +2.905811623246493003e+00 2.128930207234495775e+00 3.831991449143642399e+02 +2.925851703406813442e+00 2.116746350166242685e+00 3.929647823164625606e+02 +2.945891783567134325e+00 2.104492588119187158e+00 4.027734044311732191e+02 +2.965931863727454765e+00 2.092176799186097114e+00 4.126210722004783520e+02 +2.985971943887775648e+00 2.079806892820440289e+00 4.225038308859634526e+02 +3.006012024048096087e+00 2.067390806660023728e+00 4.324177116570036219e+02 +3.026052104208416527e+00 2.054936503339299669e+00 4.423587331846135839e+02 +3.046092184368737410e+00 2.042451967291644355e+00 4.523229032403145879e+02 +3.066132264529057849e+00 2.029945201542878497e+00 4.623062202993779124e+02 +3.086172344689378733e+00 2.017424224497317731e+00 4.723046751478044598e+02 +3.106212424849699172e+00 2.004897066717655107e+00 4.823142524923883343e+02 +3.126252505010020055e+00 1.992371767699953278e+00 4.923309325732264483e+02 +3.146292585170340494e+00 1.979856372645053764e+00 5.023506927780170486e+02 +3.166332665330661378e+00 1.967358929227692510e+00 5.123695092575079570e+02 +3.186372745490981817e+00 1.954887484364624450e+00 5.223833585414381560e+02 +3.206412825651302256e+00 1.942450080983050720e+00 5.323882191543301587e+02 +3.226452905811623140e+00 1.930054754790647475e+00 5.423800732304792973e+02 +3.246492985971943579e+00 1.917709531048496396e+00 5.523549081274929904e+02 +3.266533066132264462e+00 1.905422421348207829e+00 5.623087180377352752e+02 +3.286573146292584902e+00 1.893201420394537093e+00 5.722375055970223912e+02 +3.306613226452905785e+00 1.881054502794775818e+00 5.821372834899317468e+02 +3.326653306613226224e+00 1.868989619856223694e+00 5.920040760510720474e+02 +3.346693386773547108e+00 1.857014696393007203e+00 6.018339208616766882e+02 +3.366733466933867547e+00 1.845137627543546266e+00 6.116228703408767160e+02 +3.386773547094188430e+00 1.833366275599931816e+00 6.213669933310161468e+02 +3.406813627254508869e+00 1.821708466850500807e+00 6.310623766763693538e+02 +3.426853707414829309e+00 1.810171988436861001e+00 6.407051267946321786e+02 +3.446893787575150192e+00 1.798764585226647394e+00 6.502913712405503475e+02 +3.466933867735470631e+00 1.787493956703248177e+00 6.598172602610595732e+02 +3.486973947895791515e+00 1.776367753873757227e+00 6.692789683413144530e+02 +3.507014028056111954e+00 1.765393576196397918e+00 6.786726957409805436e+02 +3.527054108216432837e+00 1.754578968528644589e+00 6.879946700201794556e+02 +3.547094188376753277e+00 1.743931418097274477e+00 6.972411475544654422e+02 +3.567134268537074160e+00 1.733458351491558469e+00 7.064084150382354892e+02 +3.587174348697394599e+00 1.723167131680813480e+00 7.154927909759586555e+02 +3.607214428857715482e+00 1.713065055057490182e+00 7.244906271606341761e+02 +3.627254509018035922e+00 1.703159348507010673e+00 7.333983101388791965e+02 +3.647294589178356361e+00 1.693457166505509370e+00 7.422122626620608798e+02 +3.667334669338677244e+00 1.683965588246658651e+00 7.509289451228887629e+02 +3.687374749498997684e+00 1.674691614798728523e+00 7.595448569768896050e+02 +3.707414829659318567e+00 1.665642166293012316e+00 7.680565381481970917e+02 +3.727454909819639006e+00 1.656824079144766593e+00 7.764605704190873894e+02 +3.747494989979959890e+00 1.648244103307762831e+00 7.847535788027066701e+02 +3.767535070140280329e+00 1.639908899563566447e+00 7.929322328984358137e+02 +3.787575150300601212e+00 1.631825036846622945e+00 8.009932482293520479e+02 +3.807615230460921651e+00 1.623998989606231236e+00 8.089333875612445581e+02 +3.827655310621242535e+00 1.616437135206458375e+00 8.167494622026619027e+02 +3.847695390781562974e+00 1.609145751365050003e+00 8.244383332854611126e+02 +3.867735470941883413e+00 1.602131013632347223e+00 8.319969130253510912e+02 +3.887775551102204297e+00 1.595398992911243319e+00 8.394221659619206548e+02 +3.907815631262524736e+00 1.588955653019160641e+00 8.467111101776515625e+02 +3.927855711422845619e+00 1.582806848293030866e+00 8.538608184954326816e+02 +3.947895791583166059e+00 1.576958321238246530e+00 8.608684196540875746e+02 +3.967935871743486942e+00 1.571415700222517753e+00 8.677310994614492756e+02 +3.987975951903807381e+00 1.566184497215570515e+00 8.744461019245148918e+02 +4.008016032064127820e+00 1.561270105575586431e+00 8.810107303562293737e+02 +4.028056112224448704e+00 1.556677797883275982e+00 8.874223484584509833e+02 +4.048096192384769587e+00 1.552412723824457164e+00 8.936783813806663375e+02 +4.068136272545089582e+00 1.548479908121984883e+00 8.997763167540272207e+02 +4.088176352705410466e+00 1.544884248517864656e+00 9.057137057002989877e+02 +4.108216432865731349e+00 1.541630513806363734e+00 9.114881638153049153e+02 +4.128256513026052232e+00 1.538723341918903031e+00 9.170973721264856522e+02 +4.148296593186372228e+00 1.536167238061506124e+00 9.225390780241765469e+02 +4.168336673346693111e+00 1.533966572905543835e+00 9.278110961662381442e+02 +4.188376753507013994e+00 1.532125580832512046e+00 9.329113093556687772e+02 +4.208416833667334878e+00 1.530648358233542172e+00 9.378376693908538755e+02 +4.228456913827654873e+00 1.529538861864323529e+00 9.425881978881050145e+02 +4.248496993987975756e+00 1.528800907256105734e+00 9.471609870761637922e+02 +4.268537074148296639e+00 1.528438167183412855e+00 9.515542005623437944e+02 +4.288577154308616635e+00 1.528454170189090799e+00 9.557660740700115412e+02 +4.308617234468937518e+00 1.528852299167273276e+00 9.597949161471043453e+02 +4.328657314629258401e+00 1.529635790004841844e+00 9.636391088454030296e+02 +4.348697394789579285e+00 1.530807730281920964e+00 9.672971083702858550e+02 +4.368737474949899280e+00 1.532371058031932520e+00 9.707674457007029787e+02 +4.388777555110220163e+00 1.534328560561707189e+00 9.740487271791230341e+02 +4.408817635270541047e+00 1.536682873332125610e+00 9.771396350712136609e+02 +4.428857715430861930e+00 1.539436478899741445e+00 9.800389280950321336e+02 +4.448897795591181925e+00 1.542591705919805545e+00 9.827454419195138371e+02 +4.468937875751502808e+00 1.546150728211101333e+00 9.852580896320574766e+02 +4.488977955911823692e+00 1.550115563882954017e+00 9.875758621750194379e+02 +4.509018036072143687e+00 1.554488074524779329e+00 9.896978287509432448e+02 +4.529058116232464570e+00 1.559269964458483093e+00 9.916231371963593801e+02 +4.549098196392785454e+00 1.564462780054019841e+00 9.933510143240067691e+02 +4.569138276553106337e+00 1.570067909108384452e+00 9.948807662333381359e+02 +4.589178356713426332e+00 1.576086580288286632e+00 9.962117785891847461e+02 +4.609218436873747216e+00 1.582519862636726060e+00 9.973435168684678729e+02 +4.629258517034068099e+00 1.589368665143676473e+00 9.982755265748584179e+02 +4.649298597194388982e+00 1.596633736381040114e+00 9.990074334212996519e+02 +4.669338677354708977e+00 1.604315664202031311e+00 9.995389434803163340e+02 +4.689378757515029861e+00 1.612414875505097545e+00 9.998698433020541643e+02 +4.709418837675350744e+00 1.620931636062481251e+00 1.000000000000000000e+03 +4.729458917835670739e+00 1.629866050413486533e+00 9.999293613043465712e+02 +4.749498997995991623e+00 1.639218061822500072e+00 9.996579555829848687e+02 +4.769539078156312506e+00 1.648987452301774237e+00 9.991858918301107906e+02 +4.789579158316633389e+00 1.659173842698966617e+00 9.985133596224548000e+02 +4.809619238476953385e+00 1.669776692849408217e+00 9.976406290431494881e+02 +4.829659318637274268e+00 1.680795301793028163e+00 9.965680505732656229e+02 +4.849699398797595151e+00 1.692228808055850298e+00 9.952960549510630699e+02 +4.869739478957916035e+00 1.704076189995956891e+00 9.938251529990096742e+02 +4.889779559118236030e+00 1.716336266213768447e+00 9.921559354186391602e+02 +4.909819639278556913e+00 1.729007696026489072e+00 9.902890725533304703e+02 +4.929859719438877796e+00 1.742088980006505361e+00 9.882253141191039276e+02 +4.949899799599197792e+00 1.755578460583548051e+00 9.859654889035417682e+02 +4.969939879759518675e+00 1.769474322710359537e+00 9.835105044329535531e+02 +4.989979959919839558e+00 1.783774594591596818e+00 9.808613466079225418e+02 +5.010020040080160442e+00 1.798477148475690290e+00 9.780190793073752502e+02 +5.030060120240480437e+00 1.813579701509330233e+00 9.749848439613382425e+02 +5.050100200400801320e+00 1.829079816654240354e+00 9.717598590925483677e+02 +5.070140280561122204e+00 1.844974903665872024e+00 9.683454198271051609e+02 +5.090180360721443087e+00 1.861262220133622414e+00 9.647428973743595861e+02 +5.110220440881763082e+00 1.877938872582164631e+00 9.609537384762481906e+02 +5.130260521042083965e+00 1.895001817633443997e+00 9.569794648262927694e+02 +5.150300601202404849e+00 1.912447863228867728e+00 9.528216724585031443e+02 +5.170340681362724844e+00 1.930273669911211520e+00 9.484820311064232783e+02 +5.190380761523045727e+00 1.948475752165717889e+00 9.439622835325791357e+02 +5.210420841683366611e+00 1.967050479819845377e+00 9.392642448286025001e+02 +5.230460921843687494e+00 1.985994079501115728e+00 9.343898016863045086e+02 +5.250501002004007489e+00 2.005302636152468398e+00 9.293409116399966479e+02 +5.270541082164328373e+00 2.024972094604515771e+00 9.241196022803618462e+02 +5.290581162324649256e+00 2.044998261204058920e+00 9.187279704401921663e+02 +5.310621242484970139e+00 2.065376805498225998e+00 9.131681813523182427e+02 +5.330661322645290134e+00 2.086103261973545120e+00 9.074424677800708423e+02 +5.350701402805611018e+00 2.107173031849256084e+00 9.015531291206212927e+02 +5.370741482965931901e+00 2.128581384924137954e+00 8.955025304815651452e+02 +5.390781563126251896e+00 2.150323461476119746e+00 8.892931017311141204e+02 +5.410821643286572780e+00 2.172394274213905074e+00 8.829273365222821894e+02 +5.430861723446893663e+00 2.194788710279818922e+00 8.764077912914567605e+02 +5.450901803607214546e+00 2.217501533303093186e+00 8.697370842317545794e+02 +5.470941883767534542e+00 2.240527385502743662e+00 8.629178942415799156e+02 +5.490981963927855425e+00 2.263860789839213794e+00 8.559529598487991962e+02 +5.511022044088176308e+00 2.287496152213901457e+00 8.488450781109748959e+02 +5.531062124248497192e+00 2.311427763715702355e+00 8.415971034920893317e+02 +5.551102204408817187e+00 2.335649802913659201e+00 8.342119467162179944e+02 +5.571142284569138070e+00 2.360156338194801862e+00 8.266925735986054633e+02 +5.591182364729458953e+00 2.384941330146225447e+00 8.190420038546226351e+02 +5.611222444889778949e+00 2.409998633980471094e+00 8.112633098870738877e+02 +5.631262525050099832e+00 2.435322002003218689e+00 8.033596155523445077e+02 +5.651302605210420715e+00 2.460905086122306518e+00 7.953340949058906517e+02 +5.671342685370741599e+00 2.486741440397069347e+00 7.871899709275636496e+02 +5.691382765531061594e+00 2.512824523626973505e+00 7.789305142272897911e+02 +5.711422845691382477e+00 2.539147701978509364e+00 7.705590417316205958e+02 +5.731462925851703361e+00 2.565704251649277179e+00 7.620789153516853958e+02 +5.751503006012024244e+00 2.592487361568209359e+00 7.534935406330763499e+02 +5.771543086172344239e+00 2.619490136130837588e+00 7.448063653882098833e+02 +5.791583166332665122e+00 2.646705597968513235e+00 7.360208783117147959e+02 +5.811623246492986006e+00 2.674126690750449509e+00 7.271406075794046728e+02 +5.831663326653306001e+00 2.701746282017488454e+00 7.181691194313910955e+02 +5.851703406813626884e+00 2.729557166046437722e+00 7.091100167399115435e+02 +5.871743486973947768e+00 2.757552066743818919e+00 6.999669375624501981e+02 +5.891783567134268651e+00 2.785723640567889792e+00 6.907435536807222434e+02 +5.911823647294588646e+00 2.814064479477745628e+00 6.814435691261201100e+02 +5.931863727454909530e+00 2.842567113908326615e+00 6.720707186922043093e+02 +5.951903807615230413e+00 2.871224015770126758e+00 6.626287664348450335e+02 +5.971943887775551296e+00 2.900027601472412453e+00 6.531215041606080831e+02 +5.991983967935871291e+00 2.928970234968723663e+00 6.435527499039991426e+02 +6.012024048096192175e+00 2.958044230823453802e+00 6.339263463941722421e+02 +6.032064128256513058e+00 2.987241857298241765e+00 6.242461595117250681e+02 +6.052104208416833053e+00 3.016555339456976181e+00 6.145160767361943499e+02 +6.072144288577153937e+00 3.045976862288150677e+00 6.047400055848752345e+02 +6.092184368737474820e+00 3.075498573843291616e+00 5.949218720435990235e+02 +6.112224448897795703e+00 3.105112588390241068e+00 5.850656189900898880e+02 +6.132264529058115698e+00 3.134810989579997376e+00 5.751752046105395948e+02 +6.152304609218436582e+00 3.164585833625852995e+00 5.652546008100322297e+02 +6.172344689378757465e+00 3.194429152493549307e+00 5.553077916174643178e+02 +6.192384769539078349e+00 3.224332957101171182e+00 5.453387715855913029e+02 +6.212424849699398344e+00 3.254289240527490801e+00 5.353515441868502194e+02 +6.232464929859719227e+00 3.284289981227487498e+00 5.253501202055987278e+02 +6.252505010020040110e+00 3.314327146253717160e+00 5.153385161274204620e+02 +6.272545090180360106e+00 3.344392694482282824e+00 5.053207525261383921e+02 +6.292585170340680989e+00 3.374478579842083992e+00 4.953008524491854700e+02 +6.312625250501001872e+00 3.404576754546040807e+00 4.852828398019860288e+02 +6.332665330661322756e+00 3.434679172323020335e+00 4.752707377319885609e+02 +6.352705410821642751e+00 3.464777791649148231e+00 4.652685670130051676e+02 +6.372745490981963634e+00 3.494864578977221026e+00 4.552803444305018843e+02 +6.392785571142284518e+00 3.524931511962900554e+00 4.453100811684944347e+02 +6.412825651302604513e+00 3.554970582686421299e+00 4.353617811986907782e+02 +6.432865731462925396e+00 3.584973800868508143e+00 4.254394396725285787e+02 +6.452905811623246279e+00 3.614933197079194027e+00 4.155470413167602146e+02 +6.472945891783567163e+00 3.644840825938279849e+00 4.056885588332180532e+02 +6.492985971943887158e+00 3.674688769306128311e+00 3.958679513034139177e+02 +6.513026052104208041e+00 3.704469139463525185e+00 3.860891625986033660e+02 +6.533066132264528925e+00 3.734174082279312135e+00 3.763561197959638776e+02 +6.553106212424849808e+00 3.763795780364542765e+00 3.666727316015129077e+02 +6.573146292585169803e+00 3.793326456211875808e+00 3.570428867804062634e+02 +6.593186372745490686e+00 3.822758375318961566e+00 3.474704525952413405e+02 +6.613226452905811570e+00 3.852083849294539952e+00 3.379592732530011290e+02 +6.633266533066131565e+00 3.881295238946041781e+00 3.285131683612518714e+02 +6.653306613226452448e+00 3.910384957347420976e+00 3.191359313942206768e+02 +6.673346693386773332e+00 3.939345472885993349e+00 3.098313281693717158e+02 +6.693386773547094215e+00 3.968169312287071815e+00 3.006030953350844470e+02 +6.713426853707414210e+00 3.996849063615168340e+00 2.914549388700485792e+02 +6.733466933867735094e+00 4.025377379250564047e+00 2.823905325949738199e+02 +6.753507014028055977e+00 4.053746978840048421e+00 2.734135166972172897e+02 +6.773547094188376860e+00 4.081950652220645459e+00 2.645274962689139784e+02 +6.793587174348696855e+00 4.109981262315153927e+00 2.557360398592040838e+02 +6.813627254509017739e+00 4.137831747998339971e+00 2.470426780411323762e+02 +6.833667334669338622e+00 4.165495126932617254e+00 2.384509019938032282e+02 +6.853707414829658617e+00 4.192964498372094617e+00 2.299641621003518992e+02 +6.873747494989979501e+00 4.220233045933865057e+00 2.215858665622992305e+02 +6.893787575150300384e+00 4.247294040335392928e+00 2.133193800308498282e+02 +6.913827655310621267e+00 4.274140842096944226e+00 2.051680222556753677e+02 +6.933867735470941263e+00 4.300766904207941721e+00 1.971350667517327224e+02 +6.953907815631262146e+00 4.327165774756191574e+00 1.892237394846470409e+02 +6.973947895791583029e+00 4.353331099518909397e+00 1.814372175751938983e+02 +6.993987975951903913e+00 4.379256624514525242e+00 1.737786280233937930e+02 +7.014028056112223908e+00 4.404936198514227463e+00 1.662510464527364036e+02 +7.034068136272544791e+00 4.430363775512244473e+00 1.588574958750354824e+02 +7.054108216432865675e+00 4.455533417153866971e+00 1.516009454764152053e+02 +7.074148296593185670e+00 4.480439295120240750e+00 1.444843094249101227e+02 +7.094188376753506553e+00 4.505075693468969966e+00 1.375104457001587832e+02 +7.114228456913827436e+00 4.529437010929587615e+00 1.306821549456662126e+02 +7.134268537074148320e+00 4.553517763152981068e+00 1.240021793440882476e+02 +7.154308617234468315e+00 4.577312584913854288e+00 1.174732015159950436e+02 +7.174348697394789198e+00 4.600816232265364292e+00 1.110978434425529429e+02 +7.194388777555110082e+00 4.624023584645035712e+00 1.048786654125609346e+02 +7.214428857715430965e+00 4.646929646931139857e+00 9.881816499425976019e+01 +7.234468937875750960e+00 4.669529551448691862e+00 9.291877603233054117e+01 +7.254509018036071843e+00 4.691818559924266552e+00 8.718286767048279273e+01 +7.274549098196392727e+00 4.713792065388847874e+00 8.161274340002822214e+01 +7.294589178356712722e+00 4.735445594027945404e+00 7.621064013481766608e+01 +7.314629258517033605e+00 4.756774806978249615e+00 7.097872731291521120e+01 +7.334669338677354489e+00 4.777775502070065627e+00 6.591910602537187458e+01 +7.354709418837675372e+00 4.798443615514884186e+00 6.103380817244479317e+01 +7.374749498997995367e+00 4.818775223537352659e+00 5.632479564760383539e+01 +7.394789579158316251e+00 4.838766543951037669e+00 5.179395954965144000e+01 +7.414829659318637134e+00 4.858413937677311445e+00 4.744311942327492204e+01 +7.434869739478958017e+00 4.877713910206781023e+00 4.327402252833200436e+01 +7.454909819639278012e+00 4.896663113002647449e+00 3.928834313816695811e+01 +7.474949899799598896e+00 4.915258344845452321e+00 3.548768186723586382e+01 +7.494989979959919779e+00 4.933496553118660088e+00 3.187356502831510241e+01 +7.515030060120239774e+00 4.951374835034558330e+00 2.844744401954644530e+01 +7.535070140280560658e+00 4.968890438800001697e+00 2.521069474156775314e+01 +7.555110220440881541e+00 4.986040764721496821e+00 2.216461704496407137e+01 +7.575150300601202424e+00 5.002823366249223191e+00 1.931043420825829671e+01 +7.595190380761522420e+00 5.019235950959545889e+00 1.664929244665321662e+01 +7.615230460921843303e+00 5.035276381475634722e+00 1.418226045172094807e+01 +7.635270541082164186e+00 5.050942676325811398e+00 1.191032896222642634e+01 +7.655310621242485070e+00 5.066233010739295217e+00 9.834410366254722646e+00 +7.675350701402805065e+00 5.081145717379013327e+00 7.955338334803988332e+00 +7.695390781563125948e+00 5.095679287011193104e+00 6.273867486990178044e+00 +7.715430861723446831e+00 5.109832369111450667e+00 4.790673086998884500e+00 +7.735470941883766827e+00 5.123603772407154366e+00 3.506350772904916813e+00 +7.755511022044087710e+00 5.136992465355831428e+00 2.421416317469038848e+00 +7.775551102204408593e+00 5.149997576559419699e+00 1.536305421008269612e+00 +7.795591182364729477e+00 5.162618395114220604e+00 8.513735364222744240e-01 +7.815631262525049472e+00 5.174854370896386335e+00 3.668957264467385126e-01 +7.835671342685370355e+00 5.186705114782850679e+00 8.306655319023606432e-02 +7.855711422845691239e+00 5.198170398807591575e+00 0.000000000000000000e+00 +7.875751503006012122e+00 5.209250156253183661e+00 1.177294256871248418e-01 +7.895791583166332117e+00 5.219944481677590176e+00 4.362075511299656205e-01 +7.915831663326653000e+00 5.230253630876193327e+00 9.553064782610614092e-01 +7.935871743486973884e+00 5.240178020779059587e+00 1.674817741429812656e+00 +7.955911823647293879e+00 5.249718229283516280e+00 2.594452391120483092e+00 +7.975951903807614762e+00 5.258874995022061682e+00 3.713841109991943057e+00 +7.995991983967935646e+00 5.267649217065747180e+00 5.032534361192301020e+00 +8.016032064128255641e+00 5.276041954563106096e+00 6.550002568888864118e+00 +8.036072144288576524e+00 5.284054426314822805e+00 8.265636330941418919e+00 +8.056112224448897408e+00 5.291688010284259391e+00 1.017874666363291603e+01 +8.076152304609218291e+00 5.298944243044088509e+00 1.228856527835901602e+01 +8.096192384769539174e+00 5.305824819159209227e+00 1.459424489016658200e+01 +8.116232464929860058e+00 5.312331590506231827e+00 1.709485955801583756e+01 +8.136272545090179165e+00 5.318466565529778478e+00 1.978940505663001659e+01 +8.156312625250500048e+00 5.324231908435906213e+00 2.267679927978462828e+01 +8.176352705410820931e+00 5.329629938322985261e+00 2.575588267487045968e+01 +8.196392785571141815e+00 5.334663128250363151e+00 2.902541870856099848e+01 +8.216432865731462698e+00 5.339334104245210710e+00 3.248409436339298395e+01 +8.236472945891783581e+00 5.343645644247928317e+00 3.613052066506330817e+01 +8.256513026052104465e+00 5.347600676996553837e+00 3.996323324022881707e+01 +8.276553106212425348e+00 5.351202280850603010e+00 4.398069290458620628e+01 +8.296593186372744455e+00 5.354453682554823679e+00 4.818128628099457700e+01 +8.316633266533065338e+00 5.357358255943372782e+00 5.256332644739540427e+01 +8.336673346693386222e+00 5.359919520584902841e+00 5.712505361426364914e+01 +8.356713426853707105e+00 5.362141140369139691e+00 6.186463583132555044e+01 +8.376753507014027988e+00 5.364026922035497691e+00 6.678016972325357870e+01 +8.396793587174348872e+00 5.365580813644318603e+00 7.186968125404561647e+01 +8.416833667334669755e+00 5.366806902991370976e+00 7.713112651978079271e+01 +8.436873747494988862e+00 5.367709415966225528e+00 8.256239256943308646e+01 +8.456913827655309746e+00 5.368292714855172676e+00 8.816129825341631943e+01 +8.476953907815630629e+00 5.368561296589365206e+00 9.392559509951207986e+01 +8.496993987975951512e+00 5.368519790938893976e+00 9.985296821583851568e+01 +8.517034068136272396e+00 5.368172958653508076e+00 1.059410372204906849e+02 +8.537074148296593279e+00 5.367525689550741497e+00 1.121873571974812194e+02 +8.557114228456914162e+00 5.366583000552199501e+00 1.185894196785977641e+02 +8.577154308617233269e+00 5.365350033668812024e+00 1.251446536507811516e+02 +8.597194388777554153e+00 5.363832053935846389e+00 1.318504265886247424e+02 +8.617234468937875036e+00 5.362034447298508866e+00 1.387040455115703708e+02 +8.637274549098195919e+00 5.359962718449001073e+00 1.457027580653883660e+02 +8.657314629258516803e+00 5.357622488615882084e+00 1.528437536274986712e+02 +8.677354709418837686e+00 5.355019493306628853e+00 1.601241644356925917e+02 +8.697394789579158569e+00 5.352159580004308026e+00 1.675410667398015221e+02 +8.717434869739479453e+00 5.349048705819276606e+00 1.750914819758495753e+02 +8.737474949899798560e+00 5.345692935096859166e+00 1.827723779622187124e+02 +8.757515030060119443e+00 5.342098436981957299e+00 1.905806701173493138e+02 +8.777555110220440326e+00 5.338271482941573609e+00 1.985132226984773354e+02 +8.797595190380761210e+00 5.334218444246249469e+00 2.065668500609244802e+02 +8.817635270541082093e+00 5.329945789411409507e+00 2.147383179374249096e+02 +8.837675350701402976e+00 5.325460081599669770e+00 2.230243447369789749e+02 +8.857715430861723860e+00 5.320767975985125631e+00 2.314216028627118078e+02 +8.877755511022042967e+00 5.315876217080687027e+00 2.399267200482068745e+02 +8.897795591182363850e+00 5.310791636029545515e+00 2.485362807117820694e+02 +8.917835671342684734e+00 5.305521147861844256e+00 2.572468273281535289e+02 +8.937875751503005617e+00 5.300071748717661180e+00 2.660548618169502788e+02 +8.957915831663326500e+00 5.294450513037422645e+00 2.749568469475133838e+02 +8.977955911823647384e+00 5.288664590720861369e+00 2.839492077594163675e+02 +8.997995991983968267e+00 5.282721204255688363e+00 2.930283329981389784e+02 +9.018036072144287374e+00 5.276627645817097978e+00 3.021905765653149274e+02 +9.038076152304608257e+00 5.270391274339290000e+00 3.114322589829767480e+02 +9.058116232464929141e+00 5.264019512560196290e+00 3.207496688711975139e+02 +9.078156312625250024e+00 5.257519844040566603e+00 3.301390644385522819e+02 +9.098196392785570907e+00 5.250899810158627723e+00 3.395966749847884216e+02 +9.118236472945891791e+00 5.244167007081546927e+00 3.491187024151063270e+02 +9.138276553106212674e+00 5.237329082714865081e+00 3.587013227654414891e+02 +9.158316633266533557e+00 5.230393733631166775e+00 3.683406877381355002e+02 +9.178356713426852664e+00 5.223368701979203443e+00 3.780329262473783842e+02 +9.198396793587173548e+00 5.216261772374713779e+00 3.877741459738065259e+02 +9.218436873747494431e+00 5.209080768774191128e+00 3.975604349276194398e+02 +9.238476953907815314e+00 5.201833551332843975e+00 4.073878630196048221e+02 +9.258517034068136198e+00 5.194528013248028486e+00 4.172524836394272256e+02 +9.278557114228457081e+00 5.187172077589415231e+00 4.271503352405529768e+02 +9.298597194388777964e+00 5.179773694117139726e+00 4.370774429311730955e+02 +9.318637274549097071e+00 5.172340836089261096e+00 4.470298200704844476e+02 +9.338677354709417955e+00 5.164881497059755411e+00 4.570034698696940154e+02 +9.358717434869738838e+00 5.157403687668390191e+00 4.669943869970894639e+02 +9.378757515030059722e+00 5.149915432423705752e+00 4.769985591865493006e+02 +9.398797595190380605e+00 5.142424766480450771e+00 4.870119688488334759e+02 +9.418837675350701488e+00 5.134939732412731495e+00 4.970305946850124315e+02 +9.438877755511022372e+00 5.127468376984182008e+00 5.070504133013864703e+02 +9.458917835671341479e+00 5.120018747916452284e+00 5.170674008252445901e+02 +9.478957915831662362e+00 5.112598890657316097e+00 5.270775345208204499e+02 +9.498997995991983245e+00 5.105216845149687543e+00 5.370767944047840956e+02 +9.519038076152304129e+00 5.097880642602845569e+00 5.470611648606347899e+02 +9.539078156312625012e+00 5.090598302267177466e+00 5.570266362513380045e+02 +9.559118236472945895e+00 5.083377828213707872e+00 5.669692065295602106e+02 +9.579158316633266779e+00 5.076227206119739321e+00 5.768848828448577706e+02 +9.599198396793587662e+00 5.069154400061871790e+00 5.867696831471699852e+02 +9.619238476953906769e+00 5.062167349317696186e+00 5.966196377859761242e+02 +9.639278557114227652e+00 5.055273965177453199e+00 6.064307911044755883e+02 +9.659318637274548536e+00 5.048482127766917849e+00 6.161992030281406869e+02 +9.679358717434869419e+00 5.041799682882824207e+00 6.259209506470201632e+02 +9.699398797595190302e+00 5.035234438842048021e+00 6.355921297911449983e+02 +9.719438877755511186e+00 5.028794163345857271e+00 6.452088565984089428e+02 +9.739478957915832069e+00 5.022486580360477681e+00 6.547672690742948589e+02 +9.759519038076151176e+00 5.016319367015202424e+00 6.642635286428171639e+02 +9.779559118236472059e+00 5.010300150519331197e+00 6.736938216880639629e+02 +9.799599198396792943e+00 5.004436505099149279e+00 6.830543610857074555e+02 +9.819639278557113826e+00 4.998735948956176678e+00 6.923413877238837131e+02 +9.839679358717434710e+00 4.993205941247933488e+00 7.015511720128191655e+02 +9.859719438877755593e+00 4.987853879092396525e+00 7.106800153826006863e+02 +9.879759519038076476e+00 4.982687094597387123e+00 7.197242517684906034e+02 +9.899799599198395583e+00 4.977712851916056280e+00 7.286802490831846626e+02 +9.919839679358716467e+00 4.972938344329665306e+00 7.375444106754310951e+02 +9.939879759519037350e+00 4.968370691358828140e+00 7.463131767744092713e+02 +9.959919839679358233e+00 4.964016935904367323e+00 7.549830259193067832e+02 +9.979959919839679117e+00 4.959884041418952449e+00 7.635504763735062852e+02 +1.000000000000000000e+01 4.955978889110630448e+00 7.720120875228209343e+02 diff --git a/buch/papers/kugel/figures/tikz/curvature-1d.pdf b/buch/papers/kugel/figures/tikz/curvature-1d.pdf Binary files differnew file mode 100644 index 0000000..6425af6 --- /dev/null +++ b/buch/papers/kugel/figures/tikz/curvature-1d.pdf diff --git a/buch/papers/kugel/figures/tikz/curvature-1d.py b/buch/papers/kugel/figures/tikz/curvature-1d.py new file mode 100644 index 0000000..4710fc8 --- /dev/null +++ b/buch/papers/kugel/figures/tikz/curvature-1d.py @@ -0,0 +1,32 @@ +import numpy as np +import matplotlib.pyplot as plt + + +@np.vectorize +def fn(x): + return (x ** 2) * 2 / 100 + (1 + x / 4) + np.sin(x) + +@np.vectorize +def ddfn(x): + return 2 * 5 / 100 - np.sin(x) + +x = np.linspace(0, 10, 500) +y = fn(x) +ddy = ddfn(x) + +cmap = ddy - np.min(ddy) +cmap = cmap * 1000 / np.max(cmap) + +plt.plot(x, y) +plt.plot(x, ddy) +# plt.plot(x, cmap) + +plt.show() + +fname = "curvature-1d.dat" +np.savetxt(fname, np.array([x, y, cmap]).T, delimiter=" ") + +# with open(fname, "w") as f: +# # f.write("x y cmap\n") +# for xv, yv, cv in zip(x, y, cmap): +# f.write(f"{xv} {yv} {cv}\n") diff --git a/buch/papers/kugel/figures/tikz/curvature-1d.tex b/buch/papers/kugel/figures/tikz/curvature-1d.tex new file mode 100644 index 0000000..6983fb0 --- /dev/null +++ b/buch/papers/kugel/figures/tikz/curvature-1d.tex @@ -0,0 +1,21 @@ +% vim:ts=2 sw=2 et: +\documentclass[tikz, border=5mm]{standalone} +\usepackage{pgfplots} + +\begin{document} +\begin{tikzpicture} + \begin{axis}[ + clip = false, + width = 8cm, height = 6cm, + xtick = \empty, ytick = \empty, + colormap name = viridis, + axis lines = middle, + axis line style = {ultra thick, -latex} + ] + \addplot+[ + smooth, mark=none, line width = 3pt, mesh, + point meta=explicit, + ] file {curvature-1d.dat}; + \end{axis} +\end{tikzpicture} +\end{document} diff --git a/buch/papers/kugel/figures/tikz/spherical-coordinates.pdf b/buch/papers/kugel/figures/tikz/spherical-coordinates.pdf Binary files differnew file mode 100644 index 0000000..1bff016 --- /dev/null +++ b/buch/papers/kugel/figures/tikz/spherical-coordinates.pdf diff --git a/buch/papers/kugel/figures/tikz/spherical-coordinates.tex b/buch/papers/kugel/figures/tikz/spherical-coordinates.tex new file mode 100644 index 0000000..3a45385 --- /dev/null +++ b/buch/papers/kugel/figures/tikz/spherical-coordinates.tex @@ -0,0 +1,99 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{bm} +\usepackage{lmodern} +\usepackage{tikz-3dplot} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + +\tdplotsetmaincoords{60}{130} +\pgfmathsetmacro{\l}{2} + +\begin{tikzpicture}[ + >=latex, + tdplot_main_coords, + dot/.style = { + black, fill = black, circle, + outer sep = 0, inner sep = 0, + minimum size = .8mm + }, + round/.style = { + draw = orange, thick, circle, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt, + }, + cross/.style = { + cross out, draw = magenta, thick, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt + }, + ] + + % origin + \coordinate (O) at (0,0,0); + + % poles + \coordinate (NP) at (0,0,\l); + \coordinate (SP) at (0,0,-\l); + + % \draw (SP) node[dot, gray] {}; + % \draw (NP) node[dot, gray] {}; + + % gray unit circle + \tdplotdrawarc[gray]{(O)}{\l}{0}{360}{}{}; + \draw[gray, dashed] (-\l, 0, 0) to (\l, 0, 0); + \draw[gray, dashed] (0, -\l, 0) to (0, \l, 0); + + % axis + \draw[->] (O) -- ++(1.25*\l,0,0) node[left] {\(\mathbf{\hat{x}}\)}; + \draw[->] (O) -- ++(0,1.25*\l,0) node[right] {\(\mathbf{\hat{y}}\)}; + \draw[->] (O) -- ++(0,0,1.25*\l) node[above] {\(\mathbf{\hat{z}}\)}; + + % meridians + \foreach \phi in {0, 30, 60, ..., 150}{ + \tdplotsetrotatedcoords{\phi}{90}{0}; + \tdplotdrawarc[lightgray, densely dotted, tdplot_rotated_coords]{(O)}{\l}{0}{360}{}{}; + } + + % dot above and its projection + \pgfmathsetmacro{\phi}{120} + \pgfmathsetmacro{\theta}{40} + + \pgfmathsetmacro{\px}{cos(\phi)*sin(\theta)*\l} + \pgfmathsetmacro{\py}{sin(\phi)*sin(\theta)*\l} + \pgfmathsetmacro{\pz}{cos(\theta)*\l}) + + % point A + \coordinate (A) at (\px,\py,\pz); + \coordinate (Ap) at (\px,\py, 0); + + % lines + \draw[red!80!black, ->] (O) -- (A); + \draw[red!80!black, densely dashed] (O) -- (Ap) -- (A) + node[above right] {\(\mathbf{\hat{r}}\)}; + + % arcs + \tdplotdrawarc[blue!80!black, ->]{(O)}{.8\l}{0}{\phi}{}{}; + \node[below right, blue!80!black] at (.8\l,0,0) {\(\bm{\hat{\varphi}}\)}; + + \tdplotsetrotatedcoords{\phi-90}{-90}{0}; + \tdplotdrawarc[blue!80!black, ->, tdplot_rotated_coords]{(O)}{.95\l}{0}{\theta}{}{}; + \node[above right = 1mm, blue!80!black] at (0,0,.8\l) {\(\bm{\hat{\vartheta}}\)}; + + + % dots + \draw (O) node[dot] {}; + \draw (A) node[dot, fill = red!80!black] {}; + +\end{tikzpicture} +\end{document} +% vim:ts=2 sw=2 et: diff --git a/buch/papers/kugel/main.tex b/buch/papers/kugel/main.tex index 98d9cb2..d063f87 100644 --- a/buch/papers/kugel/main.tex +++ b/buch/papers/kugel/main.tex @@ -14,6 +14,7 @@ \input{papers/kugel/preliminaries} \input{papers/kugel/spherical-harmonics} \input{papers/kugel/applications} +\input{papers/kugel/proofs} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/kugel/packages.tex b/buch/papers/kugel/packages.tex index 61f91ad..c02589f 100644 --- a/buch/papers/kugel/packages.tex +++ b/buch/papers/kugel/packages.tex @@ -1,3 +1,4 @@ +% vim:ts=2 sw=2 et: % % packages.tex -- packages required by the paper kugel % @@ -7,4 +8,13 @@ % if your paper needs special packages, add package commands as in the % following example %\usepackage{packagename} +\usepackage{cases} +\newcommand{\kugeltodo}[1]{\textcolor{red!70!black}{\texttt{[TODO: #1]}}} +\newcommand{\kugelplaceholderfig}[2]{ \begin{tikzpicture}% + \fill[lightgray!20] (0, 0) rectangle (#1, #2);% + \node[gray, anchor = center] at ({#1 / 2}, {#2 / 2}) {\Huge \ttfamily \bfseries TODO}; + \end{tikzpicture}} + +\DeclareMathOperator{\sphlaplacian}{\nabla^2_{S}} +\DeclareMathOperator{\surflaplacian}{\nabla^2_{\partial S}} diff --git a/buch/papers/kugel/preliminaries.tex b/buch/papers/kugel/preliminaries.tex index 03cd421..1fa78d7 100644 --- a/buch/papers/kugel/preliminaries.tex +++ b/buch/papers/kugel/preliminaries.tex @@ -1,6 +1,6 @@ % vim:ts=2 sw=2 et spell tw=78: -\section{Preliminaries} +\section{Preliminaries}\label{kugel:sec:preliminaries} The purpose of this section is to dust off some concepts that will become important later on. This will enable us to be able to get a richer and more @@ -44,23 +44,23 @@ numbers \(\mathbb{R}\). \) \end{definition} -\texttt{TODO: Text here.} +\kugeltodo{Text here.} \begin{definition}[Span] \end{definition} -\texttt{TODO: Text here.} +\kugeltodo{Text here.} \begin{definition}[Linear independence] \end{definition} -\texttt{TODO: Text here.} +\kugeltodo{Text here.} \begin{definition}[Basis] \end{definition} -\texttt{TODO: Text here.} +\kugeltodo{Text here.} \begin{definition}[Inner product] \label{kugel:def:inner-product} \nocite{axler_linear_2014} @@ -318,11 +318,12 @@ convergence. \end{definition} \begin{theorem}[Fourier Theorem] - \[ + \label{fourier-theorem-1D} + \begin{equation*} \lim_{N \to \infty} \left \| f(x) - \sum_{n = -N}^N \hat{f}(n) E_n(x) \right \|_2 = 0 - \] + \end{equation*} \end{theorem} \begin{lemma} diff --git a/buch/papers/kugel/proofs.tex b/buch/papers/kugel/proofs.tex new file mode 100644 index 0000000..93b3857 --- /dev/null +++ b/buch/papers/kugel/proofs.tex @@ -0,0 +1,245 @@ +% vim:ts=2 sw=2 et spell tw=80: +\section{(long) Proofs} + +\subsection{Legendre Functions} \label{kugel:sec:proofs:legendre} + +\kugeltodo{Fix theorem numbers to match, review text.} + +\begin{lemma} + The polynomial function + \begin{align*} + y_n(x)&=\sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} (-1)^k \frac{(2n-2k)!}{2^n k! (n-k)!(n-2k)!} x^{n-2k}\\ + &= \frac{1}{n!2^n}\frac{d^n}{dx^n}(1-x^2)^n =: P_n(x), + \end{align*} + is a solution to the second order differential equation + \begin{equation}\label{kugel:eq:sol_leg} + (1-x^2)\frac{d^2y}{dx^2}-2x\frac{dy}{dx} + n(n+1)y=0, \quad \forall n>0. + \end{equation} +\end{lemma} +\begin{proof} + In order to find a solution to Eq.\eqref{eq:legendre}, the following Ansatz can be performed: + \begin{equation}\label{eq:ansatz} + y(x) = \sum_{k=0}^\infty a_k x^k. + \end{equation} + Given Eq.\eqref{eq:ansatz}, then + \begin{align*} + \frac{dy}{dx} &= \sum_{k=0}^\infty k a_k x^{k-1}, \\ + \frac{d^2y}{dx^2} &= \sum_{k=0}^\infty k (k-1) a_k x^{k-2}. + \end{align*} + Eq.\eqref{eq:legendre} can be therefore written as + \begin{align} + &(1-x^2)\sum_{k=0}^\infty k (k-1) a_k x^{k-2} - 2x\sum_{k=0}^\infty k a_k x^{k-1} + n(n+1)\sum_{k=0}^\infty a_k x^k=0 \label{eq:ansatz_in_legendre} \\ + &=\sum_{k=0}^\infty k (k-1) a_k x^{k-2} - \sum_{k=0}^\infty k (k-1) a_k x^{k} - 2x\sum_{k=0}^\infty k a_k x^{k-1} + n(n+1)\sum_{k=0}^\infty a_k x^k=0. \nonumber + \end{align} + If one consider the term + \begin{equation}\label{eq:term} + \sum_{k=0}^\infty k (k-1) a_k x^{k-2}, + \end{equation} + the substitution $\tilde{k}=k-2$ yields Eq.\eqref{eq:term} to + \begin{equation*} + \sum_{\tilde{k}=-2}^\infty (\tilde{k}+2) (\tilde{k}+1) a_{\tilde{k}+2} x^{\tilde{k}}=\sum_{\tilde{k}=0}^\infty (\tilde{k}+2) (\tilde{k}+1) a_{\tilde{k}} x^{\tilde{k}}. + \end{equation*} + This means that Eq.\eqref{eq:ansatz_in_legendre} becomes + \begin{align} + &\sum_{k=0}^\infty (k+1)(k+2) a_{k+2} x^{k} - \sum_{k=0}^\infty k (k-1) a_k x^{k} - 2\sum_{k=0}^\infty k a_k x^k + n(n+1)\sum_{k=0}^\infty a_k x^k \nonumber \\ + = &\sum_{k=0}^\infty \big[ (k+1)(k+2) a_{k+2} - k (k-1) a_k - 2 k a_k + n(n+1) a_k \big] x^k \stackrel{!}{=} 0. \label{eq:condition} + \end{align} + The condition in Eq.\eqref{eq:condition} is equivalent to + \begin{equation}\label{eq:condition_2} + (k+1)(k+2) a_{k+2} - k (k-1) a_k - 2 k a_k + n(n+1) a_k = 0. + \end{equation} + We can derive a recursion formula for $a_{k+2}$ from Eq.\eqref{eq:condition_2}, which can be expressed as + \begin{equation}\label{eq:recursion} + a_{k+2}= \frac{k (k-1) - 2 k + n(n+1)}{(k+1)(k+2)}a_k = \frac{(k-n)(k+n+1)}{(k+2)(k+1)}a_k. + \end{equation} + All coefficients can be calculated using the latter. + + Following Eq.\eqref{eq:recursion}, if we want to compute $a_6$ we would have + \begin{align*} + a_{6}= -\frac{(n-4)(n+5)}{6\cdot 5}a_4 &= -\frac{(n-4)(5+n)}{6 \cdot 5} -\frac{(n-2)(n+3)}{4 \cdot 3} a_2 \\ + &= -\frac{(n-4)(n+5)}{6 \cdot 5} -\frac{(n-2)(n+3)}{4 \cdot 3} -\frac{n(n+1)}{2 \cdot 1} a_0 \\ + &= -\frac{(n+5)(n+3)(n+1)n(n-2)(n-4)}{6!} a_0. + \end{align*} + One can generalize this relation for the $i^\text{th}$ even coefficient as + \begin{equation*} + a_{2k} = (-1)^k \frac{(n+(2k-1))(n+(2k-1)-2)\hdots (n-(2k-2)+2)(n-(2k-2))}{(2k)!}a_0 + \end{equation*} + where $i=2k$. + + A similar expression can be written for the odd coefficients $a_{2k-1}$. In this case, the equation starts from $a_1$ and to find the pattern we can write the recursion for an odd coefficient, $a_7$ for example + \begin{align*} + a_{7}= -\frac{(n-5)(n+6)}{7\cdot 6}a_5 &= - \frac{(n-5)(n+6)}{7\cdot 6} -\frac{(n-3)(n+4)}{5 \cdot 4} a_3 \\ + &= - \frac{(n-5)(n+6)}{7\cdot 6} -\frac{(n-3)(n+4)}{5 \cdot 4} -\frac{(n-1)(n+2)}{3 \cdot 2} a_1 \\ + &= -\frac{(n+6)(n+4)(n+2)(n-1)(n-3)(n-5)}{7!} a_1. + \end{align*} + As before, we can generalize this equation for the $i^\text{th}$ odd coefficient + \begin{equation*} + a_{2k+1} = (-1)^k \frac{(n + 2k)(n+2k-2)\hdots(n-(2k-1)+2)(n-(2k-1))}{(2k+1)!}a_1 + \end{equation*} + where $i=2k+1$. + + Let be + \begin{align*} + y_\text{e}^K(x) &:= \sum_{k=0}^K(-1)^k \frac{(n+(2k-1))(n+(2k-1)-2)\hdots \color{red}(n-(2k-2)+2)(n-(2k-2))}{(2k)!} x^{2k}, \\ + y_\text{o}^K(x) &:= \sum_{k=0}^K(-1)^k \frac{(n + 2k)(n+2k-2)\hdots \color{blue} (n-(2k-1)+2)(n-(2k-1))}{(2k+1)!} x^{2k+1}. + \end{align*} + The solution to the Eq.\eqref{eq:legendre} can be written as + \begin{equation}\label{eq:solution} + y(x) = \lim_{K \to \infty} \left[ a_0 y_\text{e}^K(x) + a_1 y_\text{o}^K(x) \right]. + \end{equation} + + The colored parts can be analyzed separately: + \begin{itemize} + \item[\textcolor{red}{\textbullet}] Suppose that $n=n_0$ is an even number. Then the red part, for a specific value of $k=k_0$, will follow the following relation: + \begin{equation*} + n_0-(2k_0-2)=0. + \end{equation*} + From that point on, given the recursive nature of Eq.\eqref{eq:recursion}, all the subsequent coefficients will also be 0, making the sum finite. + \begin{equation*} + a_{2k}=0 \iff y_{\text{o}}^{2k}(x)=y_{\text{o}}^{2k_0}(x), \quad \forall k>k_0 + \end{equation*} + \item[\textcolor{blue}{\textbullet}] Suppose that $n=n_0$ is an odd number. Then the blue part, for a specific value of $k=k_0$, will follow the following relation + \begin{equation*} + n_0-(2k_0-1)=0. + \end{equation*} + From that point on, for the same reason as before, all the subsequent coefficients will also be 0, making the sum finite. + \begin{equation*} + a_{2k+1}=0 \iff y_{\text{o}}^{2k+1}(x)=y_{\text{o}}^{2k_0+1}(x), \quad \forall k>k_0 + \end{equation*} + \end{itemize} + + There is the possibility of expressing the solution in Eq.\eqref{eq:solution} in a more compact form, combining the two solutions $y_\text{o}^K(x)$ and $y_\text{e}^K(x)$. They are both a polynomial of maximum degree $n$, assuming $n \in \mathbb{N}$. In the case where $n$ is even, the polynomial solution + \begin{equation*} + \lim_{K\to \infty} y_\text{e}^K(x) + \end{equation*} + will be a finite sum. If instead $n$ is odd, will be + \begin{equation*} + \lim_{K\to \infty} y_\text{o}^K(x) + \end{equation*} + to be a finite sum. + + Depending on the coefficient we start with, $a_1$ or $a_0$, we will obtain the odd or even polynomial respectively. Starting with the last coefficient $a_n$ and, recursively, calculating all the others in descending order, we can express the two parts $y_\text{o}^K(x)$ and $y_\text{e}^K(x)$ with a single sum. Hence, because we start with the last coefficient, the choice concerning $a_1$ and $a_0$ will be at the end of the sum, and not at the beginning. To compact Eq.\eqref{eq:solution}, Eq.\eqref{eq:recursion} can be reconsidered to calculate the coefficient $a_{k-2}$, using $a_k$ + \begin{equation*} + a_{k-2} = -\frac{(k+2)(k+1)}{(k-n)(k+n+1)}a_k + \end{equation*} + Now the game is to find a pattern, as before. Remember that $n$ is a fixed parameter of Eq.\eqref{eq:legendre}. + \begin{align*} + a_{n-2} &= -\frac{n(n-1)}{2(2n-1)}a_n, \\ + a_{n-4} &= -\frac{(n-2)(n-3)}{4(2n-3)}a_{n-2} \\ + &= -\frac{(n-2)(n-3)}{4(2n-3)}-\frac{n(n-1)}{2(2n-1)}a_n. + \end{align*} + In general + \begin{equation}\label{eq:general_recursion} + a_{n-2k} = (-1)^k \frac{n(n-1)(n-2)(n-3) \hdots (n-2k+1)}{2\cdot4\hdots 2k(2n-1)(2n-3)\hdots(2n-2k+1)}a_n + \end{equation} + The whole solution can now be written as + \begin{align} + y(x) &= a_n x^n + a_{n-2} x^{n-2} + a_{n-4} x^{n-4} + a_{n-6} x^{n-6} + \hdots + \begin{cases} + a_1 x, \quad &\text{if } n \text{ odd} \\ + a_0, \quad &\text{if } n \text{ even} + \end{cases} \nonumber \\ + &= \sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} a_{n-2k}x^{n-2k} \label{eq:solution_2} + \end{align} + By considering + \begin{align} + (2n-1)(2n-3)\hdots (2n-2k+1)&=\frac{2n(2n-1)(2n-2)(2n-3)\hdots(2n-2k+1)} + {2n(2n-2)(2n-4)(2n-6)\hdots(2n-2k+2)} \nonumber \\ + &=\frac{\frac{(2n)!}{(2n-2k)!}} + {2^kn(n-1)(n-2)(n-3)\hdots(n-k+1)} \nonumber \\ + &=\frac{\frac{(2n)!}{(2n-2k)!}} + {2^k\frac{n!}{(n-k)!}}=\frac{(n-k)!(2n)!}{n!(2n-2k)!2^k} \label{eq:1_sub_recursion}, \\ + 2 \cdot 4 \hdots 2k &= 2^r 1\cdot2 \hdots r = 2^r r!\label{eq:2_sub_recursion}, \\ + n(n-1)(n-2)(n-3) \hdots (n-2k+1) &= \frac{n!}{(n-2k)!}\label{eq:3_sub_recursion}. + \end{align} + Eq.\eqref{eq:solution_2} can be rewritten as + \begin{equation}\label{eq:solution_3} + y(x)=a_n \sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} (-1)^k \frac{n!^2(2n-2k)!}{k!(n-2k)!(n-k)!(2n)!} x^{n-2k}. + \end{equation} + Eq.\eqref{eq:solution_3} is defined for any $a_n$. By letting $a_n$ be declared as + \begin{equation*} + a_{n} := \frac{(2n)!}{2^n n!^2}, + \end{equation*} + the so called \emph{Legendre polynomial} emerges + \begin{equation}\label{eq:leg_poly} + P_n(x):=\sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} (-1)^k \frac{(2n-2k)!}{2^n k! (n-k)!(n-2k)!} x^{n-2k} + \end{equation} +\end{proof} + + +\begin{lemma}\label{kugel:lemma:sol_associated_leg_eq} + If $Z_n(z)$ is a solution of the Legendre equation \eqref{kugel:eqn:legendre}, + then + \begin{equation*} + P^m_n(z) = (1 - z^2)^{m/2} \frac{d^m}{dz^m}Z_n(z) + \end{equation*} + solves the associated Legendre equation \eqref{kugel:eqn:associated-legendre}. +\end{lemma} +% \begin{proof} [TODO: modificare la $m$ (è già usata come costante di separazione) o forse è giusta (?)] +\begin{proof} + To begin, we can start by differentiating $m$ times Eq.\eqref{kugel:eq:leg_eq} (which is staisfied by $y(x)$), obtaining + \begin{equation}\label{eq:lagrange_mderiv} + \frac{d^m}{dx^m}\left[ (1-x^2)\frac{d^2y}{dx^2} \right] -2 \frac{d^m}{dx^m}\left[ x\frac{dy}{dx} \right] + n(n+1)\frac{d^m}{dx^m}y=0. + \end{equation} + \emph{Leibniz's theorem} says, that if we want to differentiate $m$ times a multiplication of two functions, we can use the binomial coefficients to build up a sum. This allows us to be more compact, obtaining + \begin{equation}\label{eq:leibniz} + \frac{d^m}{dx^m}[u(x)v(x)] = \sum_{i=0}^m \binom{n}{i} \frac{d^{m-i}u}{dx^{m-1}} \frac{d^{i}v}{dx^i}. + \end{equation} + Using Eq.\eqref{eq:leibniz} in Eq.\eqref{eq:lagrange_mderiv}, we have + \begin{align} + (1-x^2)\frac{d^{m+2}y}{dx^{m+2}} &+ m \frac{d}{dx}(1-x^2)\frac{d^{m+1}y}{dx^{m+1}} + \frac{m(m-1)}{2}\frac{d^{2}}{dx^{2}}(1-x^2)\frac{d^{m}y}{dx^{m}} + n(n+1)\frac{d^m{}y}{dx^{m}} \nonumber \\ + &-2\left(x\frac{d^{m+1}y}{dx^{m+1}} + m\frac{d}{dx}x\frac{d^{m}y}{dx^{m}} \right) \nonumber \\ + &= (1-x^2)\frac{d^{m+2}y}{dx^{m+2}} -2x(m+1)\frac{d^{m+1}y}{dx^{m+1}}+(n(n+1)-m(m-1)-2m)\frac{d^{m}y}{dx^{m}}=0. \label{eq:aux_3} + \end{align} + To make the notation easier to follow, a new function can be defined + \begin{equation*} + \frac{d^{m}y}{dx^{m}} := y_m. + \end{equation*} + Eq.\eqref{eq:aux_3} now becomes + \begin{equation}\label{eq:1st_subs} + (1-x^2)\frac{d^{2}y_m}{dx^{2}} -2x(m+1)\frac{dy_m}{dx}+(n(n+1)-m(m+1))y_m=0 + \end{equation} + A second function can be further defined as + \begin{equation*} + (1-x^2)^{\frac{m}{2}}\frac{d^{m}y}{dx^{m}} = (1-x^2)^{\frac{m}{2}}y_m := \hat{y}_m, + \end{equation*} + allowing to write Eq.\eqref{eq:1st_subs} as + \begin{equation}\label{eq:2st_subs} + (1-x^2)\frac{d^2}{dx^2}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] -2(m+1)x\frac{d}{dx}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] + (n(n+1)-m(m+1))\hat{y}_m(1-x^2)^{-\frac{m}{2}}=0. + \end{equation} + The goal now is to compute the two terms + \begin{align*} + \frac{d^2}{dx^2}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] &= \frac{d^2\hat{y}_m}{dx^2} (1-x^2)^{-\frac{m}{2}} + \frac{d\hat{y}_m}{dx}\frac{m}{2}(1-x^2)^{-\frac{m}{2}-1}2x \\ + &+ m\left( \frac{d\hat{y}_m}{dx} x (1-x^2)^{-\frac{m}{2}-1} + \hat{y}_m (1-x^2)^{-\frac{m}{2}-1} - \hat{y}_m x (-\frac{m}{2}-1)(1-x^2)^{-\frac{m}{2}} 2x\right) \\ + &= \frac{d^2\hat{y}_m}{dx^2} (1-x^2)^{-\frac{m}{2}} + \frac{d\hat{y}_m}{dx}mx (1-x^2)^{-\frac{m}{2}-1} + m\frac{d\hat{y}_m}{dx}x (1-x^2)^{-\frac{m}{2}-1}\\ + &+ m\hat{y}_m (1-x^2)^{-\frac{m}{2}-1} + m\hat{y}_m x^2(m+2)(1-x^2)^{-\frac{m}{2}-2} + \end{align*} + and + \begin{align*} + \frac{d}{dx}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] &= \frac{d\hat{y}_m}{dx}(1-x^2)^{-\frac{m}{2}} + \hat{y}_m\frac{m}{2}(1-x^2)^{-\frac{m}{2}-1}2x \\ + &= \frac{d\hat{y}_m}{dx}(1-x^2)^{-\frac{m}{2}} + \hat{y}_mm(1-x^2)^{-\frac{m}{2}-1}x, + \end{align*} + to use them in Eq.\eqref{eq:2st_subs}, obtaining + \begin{align*} + (1-x^2)\biggl[\frac{d^2\hat{y}_m}{dx^2} (1-x^2)^{-\frac{m}{2}} &+ \frac{d\hat{y}_m}{dx}mx (1-x^2)^{-\frac{m}{2}-1} + m\frac{d\hat{y}_m}{dx}x (1-x^2)^{-\frac{m}{2}-1} \\ + &+ m\hat{y}_m (1-x^2)^{-\frac{m}{2}-1} + m\hat{y}_m x^2(m+2)(1-x^2)^{-\frac{m}{2}-2}\biggr] \\ + &-2(m+1)x\left[ \frac{d\hat{y}_m}{dx}(1-x^2)^{-\frac{m}{2}} + \hat{y}_mm(1-x^2)^{-\frac{m}{2}-1}x \right] \\ + &+ (n(n+1)-m(m+1))\hat{y}_m(1-x^2)^{-\frac{m}{2}}=0.\\ + \end{align*} + We can now divide by $(1-x^2)^{-\frac{m}{2}}$, obtaining + \begin{align*} + (1-x^2)\biggl[\frac{d^2\hat{y}_m}{dx^2} &+ \frac{d\hat{y}_m}{dx}mx (1-x^2)^{-1} + m\frac{d\hat{y}_m}{dx}x (1-x^2)^{-1} + m\hat{y}_m (1-x^2)^{-1} + m\hat{y}_m x^2(m+2)(1-x^2)^{-2}\biggr] \\ + &-2(m+1)x\left[ \frac{d\hat{y}_m}{dx} + \hat{y}_mm(1-x^2)^{-1}x \right] + (n(n+1)-m(m+1))\hat{y}_m\\ + &= \frac{d^2\hat{y}_m}{dx^2} + \frac{d\hat{y}_m}{dx}mx + m\frac{d\hat{y}_m}{dx}x + m\hat{y}_m + m\hat{y}_m x^2(m+2)(1-x^2)^{-1} \\ + &-2(m+1)x\left[ \frac{d\hat{y}_m}{dx} + \hat{y}_mm(1-x^2)^{-1}x \right] + (n(n+1)-m(m+1))\hat{y}_m\\ + \end{align*} + and collecting some terms + \begin{equation*} + (1-x^2)\frac{d^2\hat{y}_m}{dx^2} - 2x\frac{d\hat{y}_m}{dx} + \left( -x^2 \frac{m^2}{1-x^2} + m+n(n+1)-m(m+1)\right)\hat{y}_m=0. + \end{equation*} + Showing that + \begin{align*} + -x^2 \frac{m^2}{1-x^2} + m+n(n+1)-m(m+1) &= n(n+1)- m^2 -x^2 \frac{m^2}{1-x^2} \\ + &= n(n+1)- \frac{m}{1-x^2} + \end{align*} + implies $\hat{y}_m(x)$ being a solution of Eq.\eqref{kugel:eq:associated_leg_eq} +\end{proof} diff --git a/buch/papers/kugel/references.bib b/buch/papers/kugel/references.bib index b74c5cd..984d555 100644 --- a/buch/papers/kugel/references.bib +++ b/buch/papers/kugel/references.bib @@ -17,6 +17,15 @@ file = {Submitted Version:/Users/npross/Zotero/storage/SN4YUNQC/Carvalhaes and de Barros - 2015 - The surface Laplacian technique in EEG Theory and.pdf:application/pdf}, } +@article{usecase_recursion_paper, + title = {New Implementation of Legendre Polynomials for Solving Partial Differential Equations}, + issn = {272767969}, + url = {https://www.researchgate.net/publication/272767969_New_Implementation_of_Legendre_Polynomials_for_Solving_Partial_Differential_Equations}, + shorttitle = {Implementation og Legendre Polynom}, + date = {2013-12}, + author = {Ali Davari, Abozar Ahmadi} +} + @video{minutephysics_better_2021, title = {A Better Way To Picture Atoms}, url = {https://www.youtube.com/watch?v=W2Xb2GFK2yc}, @@ -192,4 +201,15 @@ Created by Henry Reich}, urldate = {2022-08-01}, date = {2022}, file = {Metric Spaces\: Completeness:/Users/npross/Zotero/storage/5JYEE8NF/completeness.html:text/html}, +} + +@book{bell_special_2004, + location = {Mineola, {NY}}, + title = {Special functions for scientists and engineers}, + isbn = {978-0-486-43521-3}, + series = {Dover books on mathematics}, + pagetotal = {247}, + publisher = {Dover Publ}, + author = {Bell, William Wallace}, + date = {2004}, }
\ No newline at end of file diff --git a/buch/papers/kugel/sections/Introduction.tex b/buch/papers/kugel/sections/Introduction.tex new file mode 100644 index 0000000..cdefea7 --- /dev/null +++ b/buch/papers/kugel/sections/Introduction.tex @@ -0,0 +1,318 @@ +
+\section{Introduction \label{kugel:section:intro}}
+This is the part of the book devoted to the set of functions called spherical harmonics.
+However, before we dive into the topic, we want to make a few preliminary remarks that will avoid ``upsetting'' certain types of readers. \newline
+Since this is a purely mathematical topic, we felt it was appropriate to specify the mathematical style with which we will approach the various topics covered.\newline
+While writing we decided to try giving demonstrations for every theorem and statement we make. However, we would like to specify that the authors of this chapter are not mathematicians and our aim is not to prove as rigorously as possible everything we say. \newline
+A demonstration, to be rigorous, should consist of several simple steps using fundamental axioms. In our case, demonstrations are often not performed in this way, but rather we try to convince the reader that what we are saying stays well within the boundaries of a logical reasoning.\newline
+Sometimes we might also come across more handy demonstrations based on intuitive arguments, which can serve as intuition for the reader but would never be accepted in a mathematical context.\newline
+That being said, we can get on with the interesting topics.\newline
+When talking about Spherical Harmonics, one could start by describing the name. The latter could cause some confusion because of the various misleading translations into other languages, which do not fully reflect the meaning implied by the English name.\newline
+As an example, the German name for this function set is ``Kugelfunktionen'', which might imply functions defined in a spherical context, since ``Kugel'' is the german name for sphere.\newline
+In contrast, the English name contains the concept of ``harmonic,'' which fits well in this context.\newline
+In fact, harmonic analysis is the branch of mathematics that deals with the representation of functions using other fundamental ones, which are often easier to consider. These are called harmonics, and during the course of this chapter, you will learn that spherical harmonics belong to this class of functions, as indeed the name suggests.\newline
+The structure of this chapter is organized in such a way that some mathematical concepts introduced at the beginning, will later help the reader to understand the big picture of the subject discussed.\newline
+We could have performed the whole derivation without writing the chapter \ref{kugel:ssection:preleminary}. But we thought it might enhance the theory with interesting insights.\newline
+The first introductory sub-chapter is devoted to the topic of vector space.\newline
+In this section, vectors of finite dimensions. In addition, various mathematical operations defined in this space, including linear transformations, will be considered.\newline
+We will then try to extend the concept of vectors to functions. It may sound strange that we call a function a vector, but in this context it should not be understood only in terms of its geometric sense, as we will try to explain.\newline
+Having established these theoretical foundations, we may go on to the sub-chapter devoted to a well-known problem, namely, the calculation of the Eigenfunctions of the Laplace operator. This will in fact be the mathematical derivation of the spherical harmonics.\newline
+This derivation will allow us to understand in a deeper way some concepts underlying the Fourier theorem, a beloved and extensively used theorem in engineering.\newline
+In the third chapter we will study in more detail these special functions, defined in the previous chapter as spherical harmonics.\newline
+Some of the properties we found most beautiful, interesting and useful will be thoroughly presented.\newline
+To conclude this journey we decided to include some real-world applications of these functions, since being an engineer, as we are, usually means loving to make bridges between theory and practice.
+
+\subsection{Preleminary \label{kugel:ssection:preleminary}}
+The purpose of this chapter is to give a dusting off of some of the basic themes that underlie what you will read in the following subchapters.\newline
+This will enable the reader to be able to get a richer view on the topic that is presented in this chapter of the book. By not limiting it to the specific example we will cover.
+
+\subsubsection{Vector space \label{kugel:ssection:vector_space}}
+A vector space, is a mathematical space in which there are entities, which we will call vectors, and some very simple rules that govern life in this world. These rules are called axioms.
+
+Moreover, in this space, some mathematical operations are also defined, namely, addition, subtraction and linear transformations in general.\newline
+The basic axioms, listed below, are responsible for ruling the behavior and interaction of these vectors.\newline
+A vector space is a non-empty set $\mathcal{V}$ with a special element $\mathbf{0}$. The objects contained in this set are called vector.\newline
+We can define mathematical operations as well
+\begin{enumerate}
+ \item \textbf{Addition}\newline
+ Given two vectors $v_1, v_2 \in \mathcal{V}$, then
+ \begin{equation*}
+ v_3 = v_2 + v_1 \implies v_3 \in \mathcal{V}
+ \end{equation*}
+
+ \item \textbf{Scalar multiplication}\newline
+ Given a vector $v_1 \in \mathcal{V}$ and a scalar $\alpha \in \mathbb{R}$, then
+ \begin{equation*}
+ v_2 = \alpha v_1 \implies v_2 \in \mathcal{V}
+ \end{equation*}
+\end{enumerate}
+
+These operations have to satisfy the following axioms, for every $v_1,v_2,v_3 \in \mathcal{V}$ and $\alpha, \beta \in \mathbb{R}$
+\begin{enumerate}
+ \item \textbf{Additive axioms}
+ \begin{itemize}
+ \item $v_1 + v_2 = v_2 + v_1$
+ \item $(v_1+v_2)+v_3 = v_1+(v_2+v_3)$
+ \item $v_1 + \mathbf{0} = v_1$
+ \item $v_1 + (-v_1) = \mathbf{0}$
+ \end{itemize}
+
+ \item \textbf{Multiplicative axioms}
+ \begin{itemize}
+ \item $\mathbf{0}v_1= v_1$
+ \item $\mathbf{1}v_1 = v_1$
+ \item $(\alpha \beta) v_1 = \alpha (\beta v_1)$
+ \end{itemize}
+
+ \item \textbf{Distributive axioms}
+ \begin{itemize}
+ \item $\alpha (v_1 + v_2) = \alpha v_1 + \alpha v_2$
+ \item $(\alpha + \beta)v_1 = \alpha v_1 + \beta v_1$
+ \end{itemize}
+\end{enumerate}
+Therefore any mathematical environment in which these rules are met can be called a vector space.
+
+For this sub-chapter we will use vectors in the sense of geoemetric vectors but, as written earlier this concept is not limited to geometry and can be easily extended. In the next two points we want to define two fundamental concepts present in this world, namely span and independence.
+
+\paragraph{Span}
+The span of a vector space can be seen as the set of vectors that we can build using a linear combination of the basis vectors $v_1, v_2, \hdots, v_N$.
+\begin{figure}[!h]
+\centering
+\begin{tikzpicture}
+ \draw[thin,gray!40] (-1,-1) grid (4,4);
+ \draw[->] (-1,0)--(4,0);
+ \draw[->] (0,-1)--(0,4);
+ \draw[line width=1pt,-stealth](0,0)--(0,1) node[anchor=north west]{$\hat{\mathbf{x}}$};
+ \draw[line width=1pt,-stealth](0,0)--(1,0) node[anchor=north east]{$\hat{\mathbf{y}}$};
+ \draw[line width=1pt, gray,-stealth](0,0)--(1,1) node[anchor=north west]{$\hat{\mathbf{x}}'$};
+ \draw[line width=1pt, gray,-stealth](0,0)--(-1,1) node[anchor=north east]{$\hat{\mathbf{y}}'$};
+ \draw[line width=2pt,-stealth, blue](0,0)--(2,3) node[anchor=south east]{$\mathbf{P}$};
+ \draw [blue, decorate,decoration={brace, amplitude=5pt,mirror,raise=4ex}] (0,0) -- (2,0) node[midway,yshift=-3em]{2};
+ \draw [blue, decorate,decoration={brace, amplitude=5pt,raise=4ex}] (0,0) -- (0,3) node[midway,xshift=-3em]{3};
+\end{tikzpicture}
+\caption{Example of the two basis $\{\hat{\mathbf{x}}, \hat{\mathbf{x}}\}$ and $\{\hat{\mathbf{x}}', \hat{\mathbf{y}}'\}$ with a generic vector $\mathbf{P}$. \label{fig:span}}
+\end{figure}
+If we consider Fig.\ref{fig:span}, an example in $\mathbb{R}^2$ can be seen. In this case, the vector $\mathbf{P}$, can in fact be constructed using a linear combination of $\hat{\mathbf{x}}$ and $\hat{\mathbf{y}}$. One can write
+\begin{equation*}
+ \mathbf{P} = 2\hat{\mathbf{x}} + 3\hat{\mathbf{y}}
+\end{equation*}
+Potentially, the vector $\mathbf{P}$, can also be represented by a combination vectors of the $\hat{\mathbf{x}}'$ and $\hat{\mathbf{y}}'$.
+We can further extend this reasoning, because any point described using $\{\hat{\mathbf{x}},\hat{\mathbf{y}}\}$, can be described using $\{\hat{\mathbf{x}}',\hat{\mathbf{y}}'\}$ as well.
+More generally, every point in $\mathbb{R}^2$ can be reached using both basis. We can therefore state that
+\begin{equation*}
+ \text{span}\{\hat{\mathbf{x}},\hat{\mathbf{y}}\} = \text{span}\{\hat{\mathbf{x}}',\hat{\mathbf{y}}'\}.
+\end{equation*}
+This means that the span does not uniquely determine the base, but multiple bases can lead to the same span.\newline
+To summarize, we can say that any vector $v_p$, belongs to a span if it can be constructed using a linear combination of its basis vectors. In mathematical terms:
+\begin{equation}
+ v_P \in \text{span}\{v_1,v_2, \hdots, v_N\} \iff v_P = \sum_{i=1}^N \alpha_i v_i.
+\end{equation}\label{eq:def:span}
+Thus, we can say that a span is the set of all the vectors that satisfy the summation in Eq.(\ref{eq:def:span}).\newline
+An interesting remark is that, according to Eq.(\ref{eq:def:span}), a span always contains the $\mathbf{0}$ vector. That is beacuse by setting $\alpha_i = 0$, $\forall i$, we get $v_p=\mathbf{0}$.
+
+\paragraph{Independence}
+If we define a span of $N$ dimensions, consisting of $\{v_1,v_2, \hdots,v_{N}\}$, and the vector $v_N$ can be constructed using the other vectors of the span, i.e., if the vector $v_N$ does not provide any extra degrees of freedom, we can say that $v_N$ is linearly dependent, and it can be proved that
+\begin{equation*}
+ \text{span}\{v_1,v_2,..,v_{N-1}, v_{N}\} = \text{span}\{v_1,v_2,..,v_{N-1}\}.
+\end{equation*}
+Furthermore:
+\begin{equation*}
+ \#\text{dimensions of a span} = \#\text{linearly independent vectors}.
+\end{equation*}
+
+\paragraph{Inner product}
+This operation was already introduced in the chapter \ref{}. However, in this sub-section, we wanted to recall some fundamental concepts.\newline
+So far we have only considered the operations of addition and multiplication within a vector space. However, we can now introduce a third operation, namely the inner product.\newline
+In this case we will no longer speak of a simple vector space but of an \emph{inner product space}.
+This new operation is simply a function that receives two vectors as input and maps them to a scalar. This mathematical operation is represented as follows
+\begin{equation*}
+ \langle v_1,v_2 \rangle = k, \quad k \in \mathbb{R}
+\end{equation*}
+The scalar product allows us to introduce some new concepts
+\begin{itemize}
+\item \textbf{The norm}\newline
+The norm is a way to calculate the length of a vector. It can be indeed seen as a general measure for the length, that is defined as
+\begin{equation*}
+ ||v_p|| := \sqrt{\langle v_p,v_p \rangle}
+\end{equation*}
+\item \textbf{Orthogonality}\newline
+This is a concept that will be very important in the next sections.\newline
+Two vectors, $v_1$ and $v_2$, are said to be orthogonal if and only if the inner product of them is equal to zero. More formally:
+\begin{equation*}
+ \text{$v_1$ is orthogonal to $v_2$} \iff \langle v_1,v_2 \rangle = 0
+\end{equation*}
+\end{itemize}
+From the concept of orthogonality, it follows that an orthogonal basis can be defined as a set of vectors, whereby
+\begin{equation*}
+\{v_1,v_2,..., v_N\} \text{ is an orthogonal basis } \iff <v_n, v_m> = 0, \quad \text{if } m \neq n.
+\end{equation*}
+We can also consider a more restrictive case. For example, if we are dealing with a set of orthogonal \emph{unit} vectors, we can speak of an \emph{ortonormal} basis. The conditions will then become
+\begin{equation*}
+\{v_1,v_2,..., v_N\} \text{ is an orthonormal basis } \iff
+\begin{cases}
+ <v_n, v_m>=0, &\text{if } m \neq n \\
+ <v_n, v_m>=1, &\text{if } m = n
+\end{cases}.
+\end{equation*}
+
+\paragraph{Projection of a space into a subspace}
+A subspace is simply a vector space that is a subset of a larger (higher-dimensional) vector space, which is thus contained in it.\newline
+For example, all vectors that are on a line passing through the origin form a subspace of $\mathbb{R}^2$. The same holds for all vectors defined on a plane passing through the origin, which itself forms a subspace of $\mathbb{R}^3$.\newline
+It can be shown that a subspace is also a vector space, which can consequently be represented with an orthonormal vector span.\newline
+Suppose now that we have a vector $\mathbf{P}$ in three dimensions (we still remain in the geometric context to give examples) and suppose further that we want to compute its projection in a subspace of two dimensions.\newline
+Suppose now that we have a vector P in three dimensions (we still remain in the geometric context
+to give examples) and that we want to compute its projection in a subspace of two
+dimensions.
+In a nutshell we want to take a vector, represented with the basis vectors $\{\hat{\mathbf{x}}', \hat{\mathbf{y}}', \hat{\mathbf{z}}'\}$, and project it into the plane spanned by $\{\hat{\mathbf{x}}, \hat{\mathbf{y}}\}$.\newline
+It can easily be seen that $\{\hat{\mathbf{x}}', \hat{\mathbf{y}}', \hat{\mathbf{z}}'\}$ spans $\mathbb{R}^3$. Thus we want to go from a span in three dimensions to one in two.
+\begin{figure}[!h]
+\centering
+\begin{tikzpicture}[scale=3]
+ \filldraw[
+ draw=gray,%
+ fill=gray!20,%
+ ] (0,0,0)
+ -- (1.5,0,0)
+ -- (1.5,0,1.5)
+ -- (0,0,1.5)
+ -- cycle;
+ \draw[thick,->] (0,0,0) -- (1.7,0,0) node[anchor=north east]{$y$};
+ \draw[thick,->] (0,0,0) -- (0,1,0) node[anchor=north west]{$z$};
+ \draw[thick,->] (0,0,0) -- (0,0,1.7) node[anchor=south, xshift=-0.5em]{$x$};
+ \draw[line width=1.6pt, -stealth] (0,0,0)--(1,1,1) node[anchor=south]{$\mathbf{P}$};
+ \draw[line width=0.8pt, -stealth] (0,0,0)--(1,0,1) node[anchor=north west, yshift=0.5em]{$\tilde{\mathbf{P}}$};
+ \draw[line width=1.1pt, -stealth] (0,0,0)--(0,0,1) node[anchor=south east]{$\alpha_1 \hat{\mathbf{x}}$};
+ \draw[line width=1.1pt, -stealth] (0,0,0)--(1,0,0) node[anchor=south]{$\alpha_2 \hat{\mathbf{y}}$};
+ \draw[dashed, -] (1,0,1)--(0,0,1);
+ \draw[dashed, -] (1,0,1)--(1,0,0);
+ \draw[dashed, -] (1,0,1)--(1,1,1);
+
+ \draw[line width=1.1pt, -stealth, blue] (0,0,0)--(2*0.15,0.15,0) node[anchor=west]{$\hat{\mathbf{y}}'$};
+ \draw[line width=1.1pt, -stealth, blue] (0,0,0)--(0,0.15,2*0.15) node[anchor=east]{$\hat{\mathbf{x}}'$};
+ \draw[line width=1.1pt, -stealth, blue] (0,0,0)--(0.15,2*0.15,0) node[anchor=south]{$\hat{\mathbf{z}}'$};
+\end{tikzpicture}
+\caption{ \label{fig:projection_example}}
+\end{figure}
+If we consider Fig.(\ref{fig:projection_example}), we can visualize the problem by asking ourself: having $\mathbf{P}, \hat{\mathbf{x}}$ and $\hat{\mathbf{y}}$, how do we calculate $\alpha_1$ and $\alpha_2$?\newline
+Let's say the vector $\mathbf{P}$ in $\mathbb{R}^3$ is defined as follows:
+\begin{equation*}
+\mathbf{P} = \alpha_1' \hat{\mathbf{x}}' + \alpha_2' \hat{\mathbf{y}}' + \alpha_3' \hat{\mathbf{z}}',
+\end{equation*}
+with
+\begin{align*}
+ \hat{\mathbf{x}}' &= \frac{\hat{\mathbf{x}}+\hat{\mathbf{z}}}{\sqrt{2}},\\
+ \hat{\mathbf{y}}' &= \frac{2\hat{\mathbf{y}}+\hat{\mathbf{z}}}{\sqrt{3}},\\
+ \hat{\mathbf{z}}' &= \frac{\hat{\mathbf{y}}+2\hat{\mathbf{z}}}{\sqrt{3}}.
+\end{align*}
+Then, a way to project the vector $\mathbf{P}$ without knowing the coefficients of its basis vectors a priori (in this case the coefficients $\alpha_i'$) must be find.\newline
+This can be done using the inner product defined above.\newline
+The idea is to take $\mathbf{P}$, and project it onto the various axes we have available. Assuming that the basis we want to use in $\mathbb{R}^2$ is also orthonormal, we can write
+\begin{align*}
+\tilde{\mathbf{P}} &= \langle \mathbf{P}, \hat{\mathbf{x}} \rangle \hat{\mathbf{x}} + \langle \mathbf{P}, \hat{\mathbf{y}} \rangle \hat{\mathbf{y}}\\
+&= \alpha_1 \hat{\mathbf{x}} + \alpha_2 \hat{\mathbf{y}}
+\end{align*}
+In an unformal way we might say that we want to know ``how much of each axis'' is contained in $\mathbf{P}$. That is, how much information contained in $\mathbf{P}$, we can describe, using $\hat{\mathbf{x}}$ and $\hat{\mathbf{y}}$, respectively.\newline
+It can be shown that the projection we obtain is the representation in fewer dimensions, which is closest to the original vector $\mathbf{P}$, meaning
+\begin{equation*}
+\text{min} \big\{ ||\mathbf{P}-v|| \big\} = ||\mathbf{P}-\tilde{\mathbf{P}}||,\quad v \in \text{span}\{ \hat{\mathbf{x}},\hat{\mathbf{y}} \}.
+\end{equation*}
+
+The theory just expla
+ined applies to any projection of a space into its subspace. As long as the vectors of both bases are orthonormal.\newline
+In the case they were orthogonal with minor adjustments the same result can be obtained.
+In the most general case we can say that:\newline
+a vector $\mathbf{v}$, can be represented in any orthogonal basis $\{v_1,v_2,\hdots,v_N\}$ as follows:
+\begin{equation}
+\mathbf{v} = \sum_{i=1}^N \alpha_i v_i
+\label{eq:projection}
+\end{equation}
+To calculate the coefficient $\alpha_i$, we can apply a scalar product on both sides of Eq.(\ref{eq:projection}), obtaining
+\begin{align*}
+\langle \mathbf{v}, v_j \rangle &= \left\langle \sum_{i=1}^N \alpha_i v_i, v_j \right\rangle \\
+&= \sum_{i=1}^N \langle \alpha_i v_i, v_j \rangle \\
+&= \alpha_j \langle v_j, v_j \rangle \implies \alpha_i = \frac{\langle \mathbf{v}, v_j \rangle}{\langle v_i, v_i \rangle}
+\end{align*}
+We then have a way to represent a vector in $n$ dimensions, using fewer dimensions, in the closest possible way.
+
+Up to this point we have not yet defined the specific operation of inner product, that is, how it is practically calculated.\newline
+As written earlier the inner product is an operation that maps two vectors to a real number. It is additionally defined according to these axioms
+\begin{enumerate}
+\item \textbf{Linearity}
+\begin{align*}
+\langle \alpha v_1 + \beta v_2, v_3 \rangle &= \alpha \langle v_1, v_3 \rangle + \beta \langle v_2, v_3 \rangle \\
+\langle v_1, \alpha v_2 + \beta v_3 \rangle &= \overline{\alpha} \langle v_1, v_2 \rangle + \overline{\beta} \langle v_1, v_3 \rangle
+\end{align*}
+\item \textbf{Conjugate Symmetry}
+\begin{equation*}
+\langle v_1, v_2 \rangle = \overline{ \langle v_2, v_1 \rangle}
+\end{equation*}
+\item \textbf{Positive-definiteness}
+\begin{align*}
+\langle v_1, v_1 \rangle &\geq 0 \\
+\langle v_1, v_1 \rangle &= 0 \iff v_1= \mathbf{0}
+\end{align*}
+\end{enumerate}
+These axioms do not imply a uniqueness of the inner product. We can therefore define it as we think best.\newline
+One possible definition, which meets all the axioms, in the case of vectors of finite size is the vector product, i.e.
+\begin{equation*}
+\langle v_1,v_2 \rangle := v_1 \cdot \overline{v_2}
+\end{equation*}
+We might note that when we talk about functions this operation will have to be redefined.
+
+\subsubsection{Eigenvector \label{kugel:ssection:eigenvector}}
+We do not want to spend much time on this concept, since at the bachelor's level we assume it has been explained and much used in almost all engineering fields.
+In a nutshell, an eigenvecotor of a linear transformation $\mathcal{T}\{\cdot\}$, in the context of linear algebra, is a nonzero vector that, when the linear transformation $\mathcal{T}\{\cdot\}$ is applied on it, satisfies the following equation
+\begin{equation}
+\mathcal{T}\{v_1\} = \lambda v_1
+\label{eq:eigvec}
+\end{equation}
+Where $\lambda$ is called eigenvalue.\newline
+Linear transformations can be viewed in general as a mapping between two vector spaces. This mapping preserves the operation of scalar multiplication and satisfies the distributive property.\newline
+Recall that, if we consider a finite dimensional vector space, a linear transformation can be represented using a projection matrix, let's say $\mathbf{A}$.
+Thus, finding a vector $\mathbf{v}$, which satisfies Eq.(\ref{eq:eigvec}) is equivalent to solving the following matrix equation
+\begin{equation*}
+\text{det}(\mathbf{A} - \lambda \mathbf{I} ) = 0
+\end{equation*}
+This concept will then be extended to vector spaces of infinite dimensions in the next subsection.
+
+\subsubsection{Function space \label{kugel:ssection:function_space}}
+Up to this point, for each example, we have considered vectors in a geometric context. However, if we consider each axiom defined above, it is very general and not at all specific, as mathematicians like.\newline
+We can see that not only geometric vectors satisfy these axioms. In fact, another mathematical entity that does are functions.\newline
+So we can say that the set of all mathematical functions is a vector space.\newline
+We can at least check whether this statement makes sense.\newline
+Let us consider two functions $f_1(x), f_2(x)$, both with support on $\mathbb{R}$, then $f(x) = f_1(x) + f_2(x)$, still a function defined in $\mathbb{R}$.\newline
+The same is true if we multiply $f(x)$ by a constant, we remain in the space of functions defined in $\mathbb{R}$.\newline
+With these two statements we have verified that the operations of sum and scalar multiplication still have the closure property. The addition, multiplication and distributive axioms can also be verified. However, we will not do that here.\newline
+Therefore, the power of linear algebra allows us to consider functions as vectors. It follows that all the concepts defined earlier in \ref{kugel:ssection:vector_space} can be extended to functions.\newline
+We can then have a set of basis functions, we can project functions into subspaces, have the concept of orthogonality, etc.\newline
+The most famous application of this generalization of vector spaces into function spaces is probably \emph{Fourier} (at least for engineers).\newline
+What is done with \emph{Fourier} is to take a function, defined in a function space with specific basis functions and project it to another basis, where the basis functions are sines and cosines. Fourier is thus a simple change of basis.
+
+\subsubsection{Eigenfunction \label{kugel:ssection:eigenfuntion}}
+As in the case of vector spaces we have the possibility of defining linear operators.\newline
+Suppose we have two vector spaces $\mathcal{A}$ and $\mathcal{B}$ (complex or real). A mapping between $\mathcal{A}$ and $\mathcal{B}$, defined as $\mathcal{T}\{\cdot\}$, is called linear if
+\begin{itemize}
+\item it is homogeneous, i.e:
+\begin{equation*}
+ \mathcal{T}\{\lambda x\} = \lambda \mathcal{T}\{x\},
+\end{equation*}
+\item it is additive, i.e:
+\begin{equation*}
+ \mathcal{T}\{x+y\} = \mathcal{T}\{x\}+\mathcal{T}\{y\}.
+\end{equation*}
+\end{itemize}
+In the case of finite-dimensional vector spaces, as written earlier, we can consider these linear transformations as matrices, in fact we can map, for example, a vector space $\mathbb{R}^n$ onto $\mathbb{R}^m$, using a matrix of dimension $n \times m$.\newline
+However, we can define operators for vector spaces of infinite dimensions (in this case, function spaces) too.\newline
+For example, the derivative is an operator that maps functions from $C^1\to C$, where $C^1$ is the set of all once differentiable functions and $C$ denotes the set of continuous and real functions.\newline
+In the case of operators defined in finite-dimensional vector spaces, we can compute eigenvectors. In function spaces we have mathematical objects with the same properties, we will refer to them as \emph{eigenfunctions}.\newline
+An eigenfunction of an operator $\mathcal{T}\{\cdot\}$, analogous to the eigenvector, is a function that satisfies the following equation:
+\begin{equation*}
+\mathcal{T}\{f(x)\} = \lambda f(x).
+\end{equation*}
+A couple of examples are
+\begin{itemize}
+\item For the differential operator $\dfrac{d}{dx}\{\cdot\}$, the function $e^{ax}$ is an eigenfunction.
+\item For the fourier operator $\mathcal{F}\{\cdot\}$, the \emph{Gaussian function} $e^{-\frac{(x-\mu)^2}{2\sigma^2}}$.
+\item $\hdots$
+\end{itemize}
+Another example of a linear operator is the \emph{Laplace operator} $\nabla^2$, which is very important in engineering and mathematics. Its eigenfunctions will not be discussed in this subsection because the next section is devoted entirely to them.
\ No newline at end of file diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index 6b23ce5..9349b61 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -1,13 +1,977 @@ -% vim:ts=2 sw=2 et spell: +% vim:ts=2 sw=2 et spell tw=80: -\section{Spherical Harmonics} +\section{Construction of the Spherical Harmonics} -\subsection{Eigenvalue Problem in Spherical Coordinates} +\kugeltodo{Review text, or rewrite if preliminaries becomes an addendum} -\subsection{Properties} +We finally arrived at the main section, which gives our chapter its name. The +idea is to discuss spherical harmonics, their mathematical derivation and some +of their properties and applications. -\subsection{Recurrence Relations} +The subsection \ref{} \kugeltodo{Fix references} will be devoted to the +Eigenvalue problem of the Laplace operator. Through the latter we will derive +the set of Eigenfunctions that obey the equation presented in \ref{} +\kugeltodo{reference to eigenvalue equation}, which will be defined as +\emph{Spherical Harmonics}. In fact, this subsection will present their +mathematical derivation. -\section{Series Expansions in \(C(S^2)\)} +In the subsection \ref{}, on the other hand, some interesting properties +related to them will be discussed. Some of these will come back to help us +understand in more detail why they are useful in various real-world +applications, which will be presented in the section \ref{}. +One specific property will be studied in more detail in the subsection \ref{}, +namely the recursive property. The last subsection is devoted to one of the +most beautiful applications (In our humble opinion), namely the derivation of a +Fourier-style series expansion but defined on the sphere instead of a plane. +More importantly, this subsection will allow us to connect all the dots we have +created with the previous sections, concluding that Fourier is just a specific +case of the application of the concept of orthogonality. Our hope is that after +reading this section you will appreciate the beauty and power of generalization +that mathematics offers us. + +\subsection{Eigenvalue Problem} +\label{kugel:sec:construction:eigenvalue} + +\begin{figure} + \centering + \includegraphics{papers/kugel/figures/tikz/spherical-coordinates} + \caption{ + Spherical coordinate system. Space is described with the free variables $r + \in \mathbb{R}_0^+$, $\vartheta \in [0; \pi]$ and $\varphi \in [0; 2\pi)$. + \label{kugel:fig:spherical-coordinates} + } +\end{figure} + +From Section \ref{buch:pde:section:kugel}, we know that the spherical Laplacian +in the spherical coordinate system (shown in Figure +\ref{kugel:fig:spherical-coordinates}) is is defined as +\begin{equation*} + \sphlaplacian := + \frac{1}{r^2} \frac{\partial}{\partial r} \left( + r^2 \frac{\partial}{\partial r} + \right) + + \frac{1}{r^2} \left[ + \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( + \sin\vartheta \frac{\partial}{\partial\vartheta} + \right) + + \frac{1}{\sin^2 \vartheta} \frac{\partial^2}{\partial\varphi^2} + \right]. +\end{equation*} +But we will not consider this algebraic monstrosity in its entirety. As the +title suggests, we will only care about the \emph{surface} of the sphere. This +is for many reasons, but mainly to simplify reduce the already broad scope of +this text. Concretely, we will always work on the unit sphere, which just means +that we set $r = 1$ and keep only $\vartheta$ and $\varphi$ as free variables. +Now, since the variable $r$ became a constant, we can leave out all derivatives +with respect to $r$ and substitute all $r$'s with 1's to obtain a new operator +that deserves its own name. + +\begin{definition}[Surface spherical Laplacian] + \label{kugel:def:surface-laplacian} + The operator + \begin{equation*} + \surflaplacian := + \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( + \sin\vartheta \frac{\partial}{\partial\vartheta} + \right) + + \frac{1}{\sin^2 \vartheta} \frac{\partial^2}{\partial\varphi^2}, + \end{equation*} + is called the surface spherical Laplacian. +\end{definition} + +In the definition, the subscript ``$\partial S$'' was used to emphasize the +fact that we are on the spherical surface, which can be understood as being the +boundary of the sphere. But what does it actually do? To get an intuition, +first of all, notice the fact that $\surflaplacian$ have second derivatives, +which means that this a measure of \emph{curvature}; But curvature of what? To +get an even stronger intuition we will go into geometry, were curvature can be +grasped very well visually. Consider figure \ref{kugel:fig:curvature} where the +curvature is shown using colors. First we have the curvature of a curve in 1D, +then the curvature of a surface (2D), and finally the curvature of a function on +the surface of the unit sphere. + +\begin{figure} + \centering + \includegraphics[width=.3\linewidth]{papers/kugel/figures/tikz/curvature-1d} + \hskip 5mm + \includegraphics[width=.3\linewidth]{papers/kugel/figures/povray/curvature} + \hskip 5mm + \includegraphics[width=.3\linewidth]{papers/kugel/figures/povray/spherecurve} + \caption{ + \kugeltodo{Fix alignment / size, add caption. Would be nice to match colors.} + \label{kugel:fig:curvature} + } +\end{figure} + +Now that we have defined an operator, we can go and study its eigenfunctions, +which means that we would like to find the functions $f(\vartheta, \varphi)$ +that satisfy the equation +\begin{equation} \label{kugel:eqn:eigen} + \surflaplacian f = -\lambda f. +\end{equation} +Perhaps it may not be obvious at first glance, but we are in fact dealing with a +partial differential equation (PDE)\footnote{ + Considering the fact that we are dealing with a PDE, + you may be wondering what are the boundary conditions. Well, since this eigenvalue problem is been developed on + the spherical surface (boundary of a sphere), the boundary in this case are empty, i.e no boundary condition has to be considered.}. +unpack the notation of the operator $\nabla^2_{\partial S}$ according to +definition +\ref{kugel:def:surface-laplacian}, we get: +\begin{equation} \label{kugel:eqn:eigen-pde} + \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( + \sin\vartheta \frac{\partial f}{\partial\vartheta} + \right) + + \frac{1}{\sin^2 \vartheta} \frac{\partial^2 f}{\partial\varphi^2} + + \lambda f = 0. +\end{equation} +Since all functions satisfying \eqref{kugel:eqn:eigen-pde} are the +\emph{eigenfunctions} of $\surflaplacian$, our new goal is to solve this PDE. +The task may seem very difficult but we can simplify it with a well-known +technique: \emph{the separation Ansatz}. It consists in assuming that the +function $f(\vartheta, \varphi)$ can be factorized in the following form: +\begin{equation} + f(\vartheta, \varphi) = \Theta(\vartheta)\Phi(\varphi). +\end{equation} +In other words, we are saying that the effect of the two independent variables +can be described using the multiplication of two functions that describe their +effect separately. This separation process was already presented in section +\ref{buch:pde:section:kugel}, but we will briefly rehearse it here for +convenience. If we substitute this assumption in +\eqref{kugel:eqn:eigen-pde}, we have: +\begin{equation*} + \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( + \sin\vartheta \frac{\partial \Theta(\vartheta)}{\partial\vartheta} + \right) \Phi(\varphi) + + \frac{1}{\sin^2 \vartheta} + \frac{\partial^2 \Phi(\varphi)}{\partial\varphi^2} + \Theta(\vartheta) + + \lambda \Theta(\vartheta)\Phi(\varphi) = 0. +\end{equation*} +Dividing by $\Theta(\vartheta)\Phi(\varphi)$ and introducing an auxiliary +variable $m^2$, the separation constant, yields: +\begin{equation*} + \frac{1}{\Theta(\vartheta)}\sin \vartheta \frac{d}{d \vartheta} \left( + \sin \vartheta \frac{d \Theta}{d \vartheta} + \right) + + \lambda \sin^2 \vartheta + = -\frac{1}{\Phi(\varphi)} \frac{d^2\Phi(\varphi)}{d\varphi^2} + = m^2, +\end{equation*} +which is equivalent to the following system of 2 first order differential +equations (ODEs): +\begin{subequations} + \begin{gather} + \frac{d^2\Phi(\varphi)}{d\varphi^2} = -m^2 \Phi(\varphi), + \label{kugel:eqn:ode-phi} \\ + \sin \vartheta \frac{d}{d \vartheta} \left( + \sin \vartheta \frac{d \Theta}{d \vartheta} + \right) + + \left( \lambda - \frac{m^2}{\sin^2 \vartheta} \right) + \Theta(\vartheta) = 0 + \label{kugel:eqn:ode-theta}. + \end{gather} +\end{subequations} +The solution of \eqref{kugel:eqn:ode-phi} is easy to find: The complex +exponential is obviously the function we are looking for. So we can directly +write the solutions +\begin{equation} \label{kugel:eqn:ode-phi-sol} + \Phi(\varphi) = e^{i m \varphi}, \quad m \in \mathbb{Z}. +\end{equation} +The restriction that the separation constant $m$ needs to be an integer arises +from the fact that we require a $2\pi$-periodicity in $\varphi$ since the +coordinate systems requires that $\Phi(\varphi + 2\pi) = \Phi(\varphi)$. +Unfortunately, solving \eqref{kugel:eqn:ode-theta} is not as straightforward, +actually, it is quite difficult, and the process is so involved that it will +require a dedicated section of its own. + +\subsection{Legendre Functions} + +\begin{figure} + \centering + \kugelplaceholderfig{.8\textwidth}{5cm} + \caption{ + \kugeltodo{Why $z = \cos \vartheta$.} + } +\end{figure} + +To solve \eqref{kugel:eqn:ode-theta} we start with the substitution $z = \cos +\vartheta$ \kugeltodo{Explain geometric origin with picture}. The operator +$\frac{d}{d \vartheta}$ becomes +\begin{equation*} + \frac{d}{d \vartheta} + = \frac{dz}{d \vartheta}\frac{d}{dz} + = -\sin \vartheta \frac{d}{dz} + = -\sqrt{1-z^2} \frac{d}{dz}, +\end{equation*} +since $\sin \vartheta = \sqrt{1 - \cos^2 \vartheta} = \sqrt{1 - z^2}$, and +then \eqref{kugel:eqn:ode-theta} becomes +\begin{align*} + \frac{-\sqrt{1-z^2}}{\sqrt{1-z^2}} \frac{d}{dz} \left[ + \left(\sqrt{1-z^2}\right) \left(-\sqrt{1-z^2}\right) \frac{d \Theta}{dz} + \right] + + \left( \lambda - \frac{m^2}{1 - z^2} \right)\Theta(\vartheta) &= 0, + \\ + \frac{d}{dz} \left[ (1-z^2) \frac{d \Theta}{dz} \right] + + \left( \lambda - \frac{m^2}{1 - z^2} \right)\Theta(\vartheta) &= 0, + \\ + (1-z^2)\frac{d^2 \Theta}{dz} - 2z\frac{d \Theta}{dz} + + \left( \lambda - \frac{m^2}{1 - z^2} \right)\Theta(\vartheta) &= 0. +\end{align*} +By making two final cosmetic substitutions, namely $Z(z) = \Theta(\cos^{-1}z)$ +and $\lambda = n(n+1)$, we obtain what is known in the literature as the +\emph{associated Legendre equation of order $m$}: \nocite{olver_introduction_2013} +\begin{equation} \label{kugel:eqn:associated-legendre} + (1 - z^2)\frac{d^2 Z}{dz^2} + - 2z\frac{d Z}{dz} + + \left( n(n + 1) - \frac{m^2}{1 - z^2} \right) Z(z) = 0, + \quad + z \in [-1; 1], m \in \mathbb{Z}. +\end{equation} + +Our new goal has therefore become to solve +\eqref{kugel:eqn:associated-legendre}, since if we find a solution for $Z(z)$ we +can perform the substitution backwards and get back to our eigenvalue problem. +However, the associated Legendre equation is not any easier, so to attack the +problem we will look for the solutions in the easier special case when $m = 0$. +This reduces the problem because it removes the double pole, which is always +tricky to deal with. In fact, the reduced problem when $m = 0$ is known as the +\emph{Legendre equation}: +\begin{equation} \label{kugel:eqn:legendre} + (1 - z^2)\frac{d^2 Z}{dz^2} + - 2z\frac{d Z}{dz} + + n(n + 1) Z(z) = 0, + \quad + z \in [-1; 1]. +\end{equation} + +The Legendre equation is a second order differential equation, and therefore it +has 2 independent solutions, which are known as \emph{Legendre functions} of the +first and second kind. For the scope of this text we will only derive a special +case of the former that is known known as the \emph{Legendre polynomials}, since +we only need a solution between $-1$ and $1$. + +\begin{lemma}[Legendre polynomials] + \label{kugel:thm:legendre-poly} + The polynomial function + \[ + P_n(z) = \sum^{\lfloor n/2 \rfloor}_{k=0} + \frac{(-1)^k}{2^n s^k!} \frac{(2n - 2k)!}{(n - k)! (n-2k)!} z^{n - 2k} + \] + is the only finite solution of the Legendre equation + \eqref{kugel:eqn:legendre} when $n \in \mathbb{Z}$ and $z \in [-1; 1]$. +\end{lemma} +\begin{proof} + This results is derived in section \ref{kugel:sec:proofs:legendre}. +\end{proof} + +Since the Legendre \emph{polynomials} are indeed polynomials, they can also be +expressed using the hypergeometric functions described in section +\ref{buch:rekursion:section:hypergeometrische-funktion}, so in fact +\begin{equation} + P_n(z) = {}_2F_1 \left( \begin{matrix} + n + 1, & -n \\ \multicolumn{2}{c}{1} + \end{matrix} ; \frac{1 - z}{2} \right). +\end{equation} +Further, there are a few more interesting but not very relevant forms to write +$P_n(z)$ such as \emph{Rodrigues' formula} and \emph{Laplace's integral +representation} which are +\begin{equation*} + P_n(z) = \frac{1}{2^n n!} \frac{d^n}{dz^n} (z^2 - 1)^n, + \qquad \text{and} \qquad + P_n(z) = \frac{1}{\pi} \int_0^\pi \left( + z + \cos\vartheta \sqrt{z^2 - 1} + \right) \, d\vartheta +\end{equation*} +respectively, both of which we will not prove (see chapter 3 of +\cite{bell_special_2004} for a proof). Now that we have a solution for the +Legendre equation, we can make use of the following lemma to patch the solutions +such that they also become solutions of the associated Legendre equation +\eqref{kugel:eqn:associated-legendre}. + +\begin{lemma} \label{kugel:thm:extend-legendre} + If $Z_n(z)$ is a solution of the Legendre equation \eqref{kugel:eqn:legendre}, + then + \begin{equation*} + Z^m_n(z) = (1 - z^2)^{m/2} \frac{d^m}{dz^m}Z_n(z) + \end{equation*} + solves the associated Legendre equation \eqref{kugel:eqn:associated-legendre}. + \nocite{bell_special_2004} +\end{lemma} +\begin{proof} + See section \ref{kugel:sec:proofs:legendre}. +\end{proof} + +What is happening in lemma \ref{kugel:thm:extend-legendre}, is that we are +essentially inserting a square root function in the solution in order to be able +to reach the parts of the domain near the poles at $\pm 1$ of the associated +Legendre equation, which is not possible only using power series +\kugeltodo{Reference book theory on extended power series method.}. Now, since +we have a solution in our domain, namely $P_n(z)$, we can insert it in the lemma +obtain the \emph{associated Legendre functions}. + +\begin{definition}[Ferrers or associated Legendre functions] + \label{kugel:def:ferrers-functions} + The functions + \begin{equation} + P^m_n (z) = (1-z^2)^{\frac{m}{2}}\frac{d^{m}}{dz^{m}} P_n(z) + = \frac{1}{2^n n!}(1-z^2)^{\frac{m}{2}}\frac{d^{m+n}}{dz^{m+n}}(1-z^2)^n, \quad |m|<n + \end{equation} + are known as Ferrers or associated Legendre functions. +\end{definition} +The constraint $|m|<n$, can be justified by considering eq.\eqref{kugel:eq:associated_leg_func}, where we differentiate $m+n$ times. We all know that a differentiation, to be well defined, must have an order that is greater than zero \kugeltodo{is that always true?}. Furthermore, it can be seen that this derivative is applied on a polynomial of degree $2n$. As is known from Calculus 1, if you derive a polynomial of degree $2n$ more than $2n$ times, you get zero, that would be a trivial solution. This is the power of zero: It is almost always a (boring) solution. + +We can thus summarize these two conditions by writing: +\begin{equation*} + \begin{rcases} + m+n \leq 2n &\implies m \leq n \\ + m+n \geq 0 &\implies m \geq -n + \end{rcases} \; |m| \leq n. +\end{equation*} + +\subsection{Spherical Harmonics} + +Finally, we can go back to solving our boundary value problem we started in +section \ref{kugel:sec:construction:eigenvalue}. We had left off in the middle +of the separation, were we had used the Ansatz $f(\vartheta, \varphi) = +\Theta(\vartheta) \Phi(\varphi)$ to find that $\Phi(\varphi) = e^{im\varphi}$, +and we were solving for $\Theta(\vartheta)$. As you may recall, previously we +performed the substitution $z = \cos \vartheta$. Now we can finally bring back the +solution to the associated Legendre equation $P^m_n(z)$ into the $\vartheta$ +domain and combine it with $\Phi(\varphi)$ to get the full result: +\begin{equation*} + f(\vartheta, \varphi) + = \Theta(\vartheta)\Phi(\varphi) + = P^m_n (\cos \vartheta) e^{im\varphi}, \quad |m|<n. +\end{equation*} +This family of functions, which recall are the solutions of the eigenvalue +problem of the surface spherical Laplacian, are the long anticipated +\emph{complex spherical harmonics}, and they are usually denoted with +$Y^m_n(\vartheta, \varphi)$. + +\begin{definition}[Spherical harmonics] + \label{kugel:def:spherical-harmonics} + The functions + \begin{equation*} + Y^m_n (\vartheta, \varphi) = P^m_n(\cos \vartheta) e^{im\varphi}, \quad |m|<n + \end{equation*} + where $m, n \in \mathbb{Z}$ are called (unnormalized) spherical + harmonics. +\end{definition} + +\begin{figure} + \centering + \kugelplaceholderfig{\textwidth}{.8\paperheight} + \caption{ + \kugeltodo{Big picture with the first few spherical harmonics.} + \label{kugel:fig:spherical-harmonics} + } +\end{figure} + +\kugeltodo{Describe how they look like with fig. +\ref{kugel:fig:spherical-harmonics}} + +\subsection{Orthogonality of $P_n$, $P^m_n$ and $Y^m_n$} + +We shall now discuss an important property of the spherical harmonics: they form +an orthogonal system. And since the spherical harmonics contain the Ferrers or +associated Legendre functions, we need to discuss their orthogonality first. +But the Ferrers functions themselves depend on the Legendre polynomials, so that +will be our starting point. + +\begin{lemma} For the Legendre polynomials $P_n(z)$ and $P_k(z)$ it holds that + \label{kugel:thm:legendre-poly-ortho} + \begin{equation*} + \int_{-1}^1 P_n(z) P_k(z) \, dz + = \frac{2}{2n + 1} \delta_{nk} + = \begin{cases} + \frac{2}{2n + 1} & \text{if } n = k, \\ + 0 & \text{otherwise}. + \end{cases} + \end{equation*} +\end{lemma} +\begin{proof} + To start, consider the fact that the Legendre equation + \eqref{kugel:eqn:legendre}, of which two distinct Legendre polynomials + $P_n(z)$ and $P_k(z)$ are a solution ($n \neq k$), can be rewritten in the + following form: + \begin{equation} + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dZ}{dz} + \right] + n(n+1) Z(z) = 0. + \end{equation} + So we rewrite the Legendre equations for $P_n(z)$ and $P_k(z)$: + \begin{align*} + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_n}{dz} + \right] + n(n+1) P_n(z) &= 0, + & + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_k}{dz} + \right] + k(k+1) P_k(z) &= 0, + \end{align*} + then we multiply the former by $P_k(z)$ and the latter by $P_n(z)$ and + subtract the two to get + \begin{equation*} + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_n}{dz} + \right] P_k(z) + n(n+1) P_n(z) P_k(z) + - + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_k}{dz} + \right] P_n(z) - k(k+1) P_k(z) P_n(z) = 0. + \end{equation*} + By grouping terms, making order and integrating with respect to $z$ from $-1$ + to 1 we obtain + \begin{gather} + \int_{-1}^1 \left\{ + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_n}{dz} + \right] P_k(z) + - + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_k}{dz} + \right] P_n(z) - k(k+1) P_k(z) P_n(z) + \right\} \,dz \nonumber \\ + + \left[ n(n+1) - k(k+1) \right] \int_{-1}^1 P_k(z) P_n(z) \, dz = 0. + \label{kugel:thm:legendre-poly-ortho:proof:1} + \end{gather} + Since by the product rule + \begin{equation*} + \frac{d}{dz} \left[ (1 - z^2) \frac{dP_k}{dz} P_n(z) \right] + = + \frac{d}{dz} \left[ (1 - z^2) \frac{dP_n}{dz} \right] P_k(z) + + (1 - z^2) \frac{dP_n}{dz} \frac{dP_k}{dz}, + \end{equation*} + we can simplify the first term in + \eqref{kugel:thm:legendre-poly-ortho:proof:1} to get + \begin{gather*} + \int_{-1}^1 \left\{ + \frac{d}{dz} \left[ (1 - z^2) \frac{dP_k}{dz} P_n(z) \right] + - \cancel{(1 - z^2) \frac{dP_n}{dz} \frac{dP_k}{dz}} + - \frac{d}{dz} \left[ (1 - z^2) \frac{dP_n}{dz} P_k(z) \right] + + \cancel{(1 - z^2) \frac{dP_k}{dz} \frac{dP_n}{dz}} + \right\} \, dz \\ + = \int_{-1}^1 \frac{d}{dz} \left\{ (1 - z^2) \left[ + \frac{dP_k}{dz} P_n(z) - \frac{dP_n}{dz} P_k(z) + \right] \right\} \, dz + = (1 - z^2) \left[ + \frac{dP_k}{dz} P_n(z) - \frac{dP_n}{dz} P_k(z) + \right] \Bigg|_{-1}^1, + \end{gather*} + which always equals 0 because the product contains $1 - z^2$ and the bounds + are at $\pm 1$. Thus, of \eqref{kugel:thm:legendre-poly-ortho:proof:1} only + the second term remains and the equation becomes + \begin{equation*} + \left[ n(n+1) - k(k+1) \right] \int_{-1}^1 P_k(z) P_n(z) \, dz = 0. + \end{equation*} + By dividing by the constant in front of the integral we have our first result. + Now we need to show that when $n = k$ the integral equals $2 / (2n + 1)$. + % \begin{equation*} + % \end{equation*} + \kugeltodo{Finish proof. Can we do it without the generating function of + $P_n$?} +\end{proof} + +In a similarly algebraically tedious fashion, we can also continue to check for +orthogonality for the Ferrers functions $P^m_n(z)$, since they are related to +$P_n(z)$ by a $m$-th derivative, and obtain the following result. + +\begin{lemma} For the associated Legendre functions + \label{kugel:thm:associated-legendre-ortho} + \begin{equation*} + \int_{-1}^1 P^m_n(z) P^{m}_{n'}(z) \, dz + = \frac{2(m + n)!}{(2n + 1)(n - m)!} \delta_{nn'} + = \begin{cases} + \frac{2(m + n)!}{(2n + 1)(n - m)!} + & \text{if } n = n', \\ + 0 & \text{otherwise}. + \end{cases} + \end{equation*} +\end{lemma} +\begin{proof} + To show that the expression equals zero when $n \neq n'$ we can perform + exactly the same steps as in the proof of lemma + \ref{kugel:thm:legendre-poly-ortho}, so we will not repeat them here and prove + instead only the case when $n = n'$. + \kugeltodo{Finish proof, or not? I have to look and decide if it is + interesting enough.} +\end{proof} + +By having the orthogonality relations of the Legendre functions we can finally +show that spherical harmonics are also orthogonal under the following inner +product: + +\begin{definition}[Inner product in $S^2$] + \label{kugel:def:inner-product-s2} + For two complex valued functions $f(\vartheta, \varphi)$ and $g(\vartheta, + \varphi)$ on the surface of the sphere the inner product is defined to be + \begin{equation*} + \langle f, g \rangle + = \int_{0}^\pi \int_0^{2\pi} + f(\vartheta, \varphi) \overline{g(\vartheta, \varphi)} + \sin \vartheta \, d\varphi \, d\vartheta. + \end{equation*} +\end{definition} + + +\begin{theorem} For the (unnormalized) spherical harmonics + \label{kugel:thm:spherical-harmonics-ortho} + \begin{align} + \langle Y^m_n, Y^{m'}_{n'} \rangle + &= \int_{0}^\pi \int_0^{2\pi} + Y^m_n(\vartheta, \varphi) \overline{Y^{m'}_{n'}(\vartheta, \varphi)} + \sin \vartheta \, d\varphi \, d\vartheta + \label{kugel:eq:spherical-harmonics-inner-prod} \\ + &= \frac{4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} \delta_{nn'} \delta_{mm'} + = \begin{cases} + \frac{4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} + & \text{if } n = n' \text{ and } m = m', \nonumber \\ + 0 & \text{otherwise}. + \end{cases} + \end{align} +\end{theorem} +\begin{proof} + We will begin by doing a bit of algebraic maipulaiton: + \begin{align*} + \int_{0}^\pi \int_0^{2\pi} + Y^m_n(\vartheta, \varphi) \overline{Y^{m'}_{n'}(\vartheta, \varphi)} + \sin \vartheta \, d\varphi \, d\vartheta + &= \int_{0}^\pi \int_0^{2\pi} + e^{im\varphi} P^m_n(\cos \vartheta) + e^{-im'\varphi} P^{m'}_{n'}(\cos \vartheta) + \, d\varphi \sin \vartheta \, d\vartheta + \\ + &= \int_{0}^\pi + P^m_n(\cos \vartheta) P^{m'}_{n'}(\cos \vartheta) \sin \vartheta \, d\vartheta + \int_0^{2\pi} e^{i(m - m')\varphi} + \, d\varphi. + \end{align*} + First, notice that the associated Legendre polynomials are assumed to be real, + and are thus unaffected by the complex conjugation. Then, we can see that when + $m = m'$ the inner integral simplifies to $\int_0^{2\pi} 1 \, d\varphi$ which + equals $2\pi$, so in this case the expression becomes + \begin{equation*} + 2\pi \int_{0}^\pi + P^m_n(\cos \vartheta) P^{m'}_{n'}(\cos \vartheta) + \sin \vartheta \, d\vartheta + = -2\pi \int_{1}^{-1} P^m_n(z) P^{m'}_{n'}(z) \, dz + = \frac{4\pi(m + n)!}{(2n + 1)(n - m)!} \delta_{nn'}, + \end{equation*} + where in the second step we performed the substitution $z = \cos\vartheta$; + $d\vartheta = \frac{d\vartheta}{dz} dz= - dz / \sin \vartheta$, and then we + used lemma \ref{kugel:thm:associated-legendre-ortho}. + We are allowed to use + the lemma because $m = m'$. After the just mentioned substitution we can write eq.\eqref{kugel:eq:spherical-harmonics-inner-prod} in this form + \begin{equation*} + \langle Y^m_n, Y^{m'}_{n'} \rangle_{\partial S} = \langle P^m_n, P^{m'}_{n'} \rangle_z \; \langle e^{im\varphi}, e^{-im'\varphi} \rangle_\varphi. + \end{equation*} + Now we just need look at the case when $m \neq m'$. Fortunately this is + easier: the inner integral is $\int_0^{2\pi} e^{i(m - m')\varphi} d\varphi$, + or in other words we are integrating a complex exponential over the entire + period, which always results in zero. Thus, we do not need to do anything and + the proof is complete. +\end{proof} + +These proofs for the various orthogonality relations were quite long and +algebraically tedious, mainly because they are ``low level'', by which we mean +that they (arguably) do not rely on very abstract theory. However, if we allow +ourselves to use the more abstract Sturm Liouville theory discussed in chapters +\ref{buch:integrale:subsection:sturm-liouville-problem} and \kugeltodo{reference +to chapter 17 of haddouche and Löffler} the proofs can become ridiculously +short. Let's do for example lemma \ref{kugel:thm:associated-legendre-ortho}. + +\begin{proof}[ + Shorter proof of lemma \ref{kugel:thm:associated-legendre-ortho} + ] + The associated Legendre polynomials, of which we would like to prove an + orthogonality relation, are the solution to the associated Legendre equation, + which we can write as $LZ(z) = 0$, where + \begin{equation*} + L = \frac{d}{dz} (1 - z^2) \frac{d}{dz} + + n(n+1) - \frac{m^2}{1 - z^2}. + \end{equation*} + Notice that $L$ is in fact a Sturm-Liouville operator of the form + \begin{equation*} + L = \frac{1}{w(z)} \left[ + \frac{d}{dz} p(z) \frac{d}{dz} - \lambda + q(z) + \right], + \end{equation*} + if we let $w(z) = 1$, $p(z) = (1 - z^2 )$, $q(z) = -m^2 / (1 - z^2)$, and + $\lambda = -n(n+1)$. By the theory of Sturm-Liouville operators, we know that + the each solution of the problem $LZ(z) = 0$, namely $P^m_n(z)$, is orthogonal + to every other solution that has a different $\lambda$. In our case $\lambda$ + varies with $n$, so $P^m_n(z)$ with different $n$'s are orthogonal to each + other. +\end{proof} + +But that was still rather informative and had a bit of explanation, which is +terrible. Real snobs, such as Wikipedia contributors, some authors and +regrettably sometimes even ourselves, would write instead: + +\begin{proof}[ + Infuriatingly short proof of lemma \ref{kugel:thm:associated-legendre-ortho} + ] + The associated Legendre polynomials are solutions of the associated Legendre + equation which is a Sturm-Liouville problem and are thus orthogonal to each + other. The factor in front Kronecker delta is left as an exercise to the + reader. +\end{proof} + +Lemma \ref{kugel:thm:legendre-poly-ortho} has a very similar proof, while the theorem \ref{kugel:thm:spherical-harmonics-ortho} for the spherical harmonics is proved by the following argument. +The spherical harmonics are the solutions to the eigenvalue problem $\surflaplacian f = -\lambda f$, +which as discussed in the previous section is solved using the separation Ansatz. So to +prove their orthogonality using the Sturm-Liouville theory we argue that +\begin{equation*} + \surflaplacian = L_\vartheta L_\varphi \iff + \surflaplacian f(\vartheta, \varphi) + = L_\vartheta \Theta(\vartheta) L_\varphi \Phi(\varphi), +\end{equation*} +then we show that both $L_\vartheta$ and $L_\varphi$ are both Sturm-Liouville +operators (we just did the former in the shorter proof above). Since both are +Sturm-Liouville operators their combination, the surface spherical Laplacian, is +also a Sturm-Liouville operator, which then implies orthogonality. + +\subsection{Normalization and the Phase Factor} + +At this point we have shown that the spherical harmonics form an orthogonal +system, but in many applications we usually also want a normalization of some +kind. For example the most obvious desirable property could be for the spherical +harmonics to be ortho\emph{normal}, by which we mean that $\langle Y^m_n, +Y^{m'}_{n'} \rangle = \delta_{nn'}$. To obtain orthonormality, we simply add an +ugly normalization factor in front of the previous definition +\ref{kugel:def:spherical-harmonics} as follows. + +\begin{definition}[Orthonormal spherical harmonics] + \label{kugel:def:spherical-harmonics-orthonormal} + The functions + \begin{equation*} + Y^m_n(\vartheta, \varphi) + = \sqrt{\frac{2n + 1}{4\pi} \frac{(n-m)!}{(m+n)!}} + P^m_n(\cos \vartheta) e^{im\varphi} + \end{equation*} + where $m, n \in \mathbb{Z}$ and $|m| < n$ are the orthonormal spherical + harmonics. +\end{definition} + +Orthornomality is very useful, but it is not the only common normalization that +is found in the literature. In physics, geomagnetism to be more specific, it is +common to use the so called Schmidt semi-normalization (or sometimes also called +quasi-normalization). + +\begin{definition}[Schmidt semi-normalized spherical harmonics] + \label{kugel:def:spherical-harmonics-schmidt} + The Schmidt semi-normalized spherical harmonics are + \begin{equation*} + Y^m_n(\vartheta, \varphi) + = \sqrt{2 \frac{(n - m)!}{(n + m)!}} + P^m_n(\cos \vartheta) e^{im\varphi} + \end{equation*} + where $m, n \in \mathbb{Z}$ and $|m| < n$. +\end{definition} + +Additionally, there is another quirk in the literature that should be mentioned. +In some other branches of physics such as seismology and quantum mechanics there +is a so called Condon-Shortley phase factor $(-1)^m$ in front of the square root +in the definition of the normalized spherical harmonics. It is yet another +normalization that is added for physical reasons that are not very relevant to +our discussion, but we mention this potential source of confusion since many +numerical packages (such as \texttt{SHTOOLS} \kugeltodo{Reference}) offer an +option to add or remove it from the computation. + +Though, for our purposes we will mostly only need the orthonormal spherical +harmonics, so from now on, unless specified otherwise when we say spherical +harmonics or write $Y^m_n$, we mean the orthonormal spherical harmonics of +definition \ref{kugel:def:spherical-harmonics-orthonormal}. + +\subsection{Recurrence Relations}\kugeltodo{replace x with z} +The idea of this subsection is to introduce first some recursive relations regarding the Associated Legendre Functions, defined in eq.\eqref{kugel:def:ferrers-functions}. Subsequently we will extend them, in order to derive recurrence formulas for the case of Spherical Harmonic functions as well. +\subsubsection{Associated Legendre Functions} +To start this journey, we can first write the following equations, which relate the Associated Legendre functions of different indeces $m$ and $n$ recursively: +\begin{subequations} + \begin{align} + P^m_n(z) &= \dfrac{1}{(2n+1)x} \left[ (m+n) P^m_{n-1}(z) + (n-m+1) P^m_{n+1}(z) \right] \label{kugel:eq:rec-leg-1} \\ + P^m_n(z) &= \dfrac{\sqrt{1-z^2}}{2mz} \left[ P^{m+1}_n(z) + [n(n+1)-m(m-1)] P^{m-1}_n(z) \right] \label{kugel:eq:rec-leg-2} \\ + P^m_n(z) &= \dfrac{1}{(2n+1)\sqrt{1-z^2}} \left[ P^{m+1}_{n+1}(z) - P^{m+1}_{n-1}(z) \right] \label{kugel:eq:rec-leg-3} \\ + P^m_n(z) &= \dfrac{1}{(2n+1)\sqrt{1-z^2}} \left[ (n+m)(n+m-1)P^{m-1}_{n-1}(z) - (n-m+1)(n-m+2)P^{m-1}_{n+1}(z) \right] \label{kugel:eq:rec-leg-4} + \end{align} +\end{subequations} +Much of the effort will be proving this bunch of equalities. Then, in the second part, where we will derive the recursion equations for $Y^m_n(\vartheta,\varphi)$, we will basically reuse the ones presented above. + +Maybe it is worth mentioning at least one use case for these relations: In some software implementations (that include lighting computations in computer graphics, antenna modelling softwares, 3-D modelling in medical applications, etc.) +they are widely used, as they lead to better numerical accuracy and computational cost lower by a factor of six\cite{usecase_recursion_paper}. +\begin{enumerate}[(i)] + \item + \begin{proof} + This is the relation that links the associated Legendre functions with the same $m$ index but different $n$. Using \ref{} \kugeltodo{search the general equation of recursion for orthogonal polynomials (is somewhere in the book)}, we have + \begin{equation*} + (n+1)P_{n+1}(z)-(2n+1)xP_n(z)+nP_{n-1}(z)=0, + \end{equation*} + that can be differentiated $m$ times, obtaining + \begin{equation}\label{kugel:eq:rec_1} + (n+1)\frac{d^mP_{n+1}}{dz^m}-(2n+1) \left[z \frac{d^m P_n}{dz^m}+ m\frac{d^{m-1}P_{n-1}}{dz^{m-1}} \right] + n\frac{d^m P_{n-1}}{dz^m}=0. + \end{equation} + To continue this derivation, we need the following relation: + \begin{equation}\label{kugel:eq:rec_2} + \frac{dP_{n+1}}{dz} - \frac{dP_{n-1}}{dz} = (2n+1)P_n. + \end{equation} + The latter will not be derived, because it suffices to use the definition of the Legendre Polynomials $P_n(x)$ to check it. + + We can now differentiate the just presented eq.\eqref{kugel:eq:rec_2} $m-1$ times, that will become + \begin{equation}\label{kugel:eq:rec_3} + \frac{d^mP_{n+1}}{dx^m} - \frac{d^mP_{n-1}}{dx^m} = (2n+1)\frac{d^{m-1}P_n}{dx^{m-1}}. + \end{equation} + Then, using eq.\eqref{kugel:eq:rec_3} in eq.\eqref{kugel:eq:rec_1}, we will have + \begin{equation}\label{kugel:eq:rec_4} + (n+1)\frac{d^mP_{n+1}}{dx^m}- (2n+1)\frac{d^mP_{n+1}}{dx^m} -m\left[\frac{d^m P_{n+1}}{dx^m}+ \frac{d^{m}P_{n-1}}{dx^m}\right] + n\frac{d^m P_{n-1}}{dx^m}=0. + \end{equation} + Finally, multiplying both sides by $(1-x^2)^{\frac{m}{2}}$ and simplifying the expression, we can rewrite eq.\eqref{kugel:eq:rec_4} in terms of $P^m_n(x)$, namely + \begin{equation*} + (n+1-m)P^m_{n+1}(x)-(2n+1)xP^m_n(x)+(m+n)P^m_{n-1}(x)=0, + \end{equation*} + that rearranged, will be + \begin{equation*} + (2n+1) x P^m_n(x)= (m+n) P^m_{n-1}(x) + (n-m+1) P^m_{n+1}(x). + \end{equation*} + \end{proof} + + \item + \begin{proof} + This relation, unlike the previous one, link three expression with the same $n$ index but different $m$. + + In the proof of Lemma \ref{kugel:lemma:sol_associated_leg_eq}, at some point we ran into this expression. + \begin{equation*} + (1-x^2)\frac{d^{m+2}P_n}{dx^{m+2}} - 2(m+1)x \frac{d^{m+1}P_n}{dx^{m+1}} + [n(n+1)-m(m+1)]\frac{d^mP_n}{dx^m} = 0, + \end{equation*} + that, if multiplied by $(1-x^2)^{\frac{m}{2}}$, will be + \begin{equation*} + (1-x^2)^{\frac{m}{2}+1}\frac{d^{m+2}P_n}{dx^{m+2}} - 2(m+1)x (1-x^2)^{\frac{m}{2}}\frac{d^{m+1}P_n}{dx^{m+1}} + [n(n+1)-m(m+1)](1-x^2)^{\frac{m}{2}}\frac{d^mP_n}{dx^m} = 0. + \end{equation*} + Therefore, as before, expressing it in terms of $P^m_n(x)$: + \begin{equation*} + P^{m+2}_n(x) - \frac{2(m+1)x}{\sqrt{1-x^2}}P^{m+1}_n(x) + [n(n+1)-m(m+1)]P^m_n(x)=0. + \end{equation*} + Further, we can adjust the indeces and terms, obtaining + \begin{equation*} + \frac{2mx}{\sqrt{(1-x^2)}} P^m_n(x) = P^{m+1}_n(x) + [n(n+1)-m(m-1)] P^{m-1}_n(x). + \end{equation*} + + \end{proof} + + \item + \begin{proof} + To derive this expression, we can multiply eq.\eqref{kugel:eq:rec_3} by $(1-x^2)^{\frac{m}{2}}$ and, as always, we could express it in terms of $P^m_n(x)$: + \begin{equation*} + P^m_{n+1}(x) - P^m_{n-1}(x) = (2n+1)\sqrt{1-x^2}P^{m-1}_n(x). + \end{equation*} + Afer that we can divide by $2n+1$ resulting in + \begin{equation}\label{kugel:eq:helper} + \frac{1}{2n+1}[P^m_{n+1}(x) - P^m_{n-1}(x)] = \sqrt{1-x^2}P^{m-1}_n(x). + \end{equation} + To conclude, we arrange the indeces differently: + \begin{equation*} + \sqrt{1-x^2}P^{m}_n(x)=\frac{1}{2n+1}[P^{m+1}_{n+1}(x) - P^{m+1}_{n-1}(x)]. + \end{equation*} + \end{proof} + + \item + \begin{proof} + For this proof we can rely on eq.\eqref{kugel:eq:rec-leg-1}, and therefore rewrite eq.\eqref{kugel:eq:rec-leg-2} as + \begin{equation*} + \frac{2m}{(2n+1)\sqrt{1-x^2}} \left[ (m+n)P^m_{n-1}(x) + (n-m+1)P^m_{n+1}(x) \right] = P^{m+1}_n(x) + [ n(n+1)-m(m-1) ]P^{m-1}_n(x). + \end{equation*} + Rewriting then $P^{m-1}_n(x)$ using eq.\eqref{kugel:eq:helper}, we will have + \begin{align*} + \frac{2m}{(2n+1)\sqrt{1-x^2}} &\left[ (m+n)P^m_{n-1}(x) + (n-m+1)P^m_{n+1}(x) \right] = P^{m+1}_n(x) \\ + &+ \frac{n(n+1)-m(m-1)}{(2n+1)\sqrt{1-x^2}} \left[ P^m_{n+1}(x)-P^m_{n-1}(x) \right]. + \end{align*} + The last equation, after some algebric rearrangements, it is easy to show that it is equivalent to + \begin{equation*} + \sqrt{1-x^2} P^m_n(x) = \dfrac{1}{2n+1} \left[ (n+m)(n+m-1)P^{m-1}_{n-1}(x) - (n-m+1)(n-m+2)P^{m-1}_{n+1}(x) \right] + \end{equation*} + \end{proof} + +\end{enumerate} + +\subsubsection{Spherical Harmonics} +The goal of this subsection's part is to apply the recurrence relations of the $P^m_n(z)$ functions to the Spherical Harmonics. +With some little adjustments we will be able to have recursion equations for them too. As previously written the most of the work is already done. Now it is only a matter of minor mathematical operations/rearrangements. + +We can start by listing all of them: +\begin{subequations} + \begin{align} + Y^m_n(\vartheta, \varphi) &= \dfrac{1}{(2n+1)\cos \vartheta} \left[ (m+n)Y^m_{n-1}(\vartheta, \varphi) + (m-n+1)Y^m_{n+1}(\vartheta, \varphi) \right] \label{kugel:eq:rec-sph_harm-1} \\ + Y^m_n(\vartheta, \varphi) &= \dfrac{\tan \vartheta}{2m}\left[ Y^{m+1}_n(\vartheta, \varphi)e^{-i\varphi} + [n(n+1)-m(m-1)]Y^{m-1}_n(\vartheta, \varphi)e^{i\varphi} \right] \label{kugel:eq:rec-sph_harm-2} \\ + Y^m_n(\vartheta, \varphi) &= \dfrac{e^{-i\varphi}}{ (2n+1)\sin \vartheta } \left[ Y^{m+1}_{n+1}(\vartheta, \varphi) - Y^{m+1}_{n-1}(\vartheta, \varphi) \right] \label{kugel:eq:rec-sph_harm-3} \\ + Y^m_n(\vartheta, \varphi) &= \dfrac{e^{i\varphi}}{(2n+1)\sin \vartheta} \left[ (n+m)(n+m-1)Y^{m-1}_{n-1}(\vartheta, \varphi) - (n-m+1)(n-m+2)Y^{m-1}_{n+1}(\vartheta, \varphi) \right] \label{kugel:eq:rec-sph_harm-4} + \end{align} +\end{subequations} + +\begin{enumerate}[(i)] + \item + \begin{proof} + We can multiply both sides of equality in eq.\eqref{kugel:eq:rec-leg-1} by $e^{im \varphi}$ and perform the substitution $z=\cos \vartheta$. After a few simple algebraic steps, we will obtain the relation we are looking for + \end{proof} + \item + \begin{proof} + In this proof, as before, we can perform the substitution $z=\cos \vartheta$, and notice that $\sqrt{1-z^2}=\sin \vartheta$, hence, the relation in eq.\eqref{kugel:eq:rec-leg-2} will be + \begin{equation*} + \frac{2m \cos \vartheta}{\sin \vartheta} P^m_n(\cos \vartheta) = P^{m+1}_n(\cos \vartheta) + [n(n+1)-m(m-1)]P^{m-1}_n P^m_n(\cos \vartheta). + \end{equation*} + The latter, multiplied by $e^{im\varphi}$, becomes + \begin{align*} + \frac{2m \cos \vartheta}{\sin \vartheta} P^m_n(\cos \vartheta)e^{im\varphi} &= P^{m+1}_n(\cos \vartheta)e^{im\varphi} + [n(n+1)-m(m-1)]P^{m-1}_n P^m_n(\cos \vartheta)e^{im\varphi} \\ + &= P^{m+1}_n(\cos \vartheta)e^{i(m+1)\varphi}e^{-i\varphi} + [n(n+1)-m(m-1)]P^{m-1}_n (\cos \vartheta)e^{i(m-1)\varphi}e^{i\varphi} \\ + &= Y^{m+1}_n(\vartheta, \varphi)e^{-i\varphi} + [n(n+1)-m(m-1)]Y^{m-1}_n(\vartheta, \varphi)e^{i\varphi}. + \end{align*} + Finally, after some ``cleaning'' + \begin{equation*} + Y^m_n(\vartheta, \varphi) = \frac{\tan \vartheta}{2m} \left[ Y^{m+1}_n(\vartheta, \varphi)e^{-i\varphi} + [n(n+1)-m(m-1)]Y^{m-1}_n(\vartheta, \varphi)e^{i\varphi} \right] + \end{equation*} + \end{proof} + \item + \begin{proof} + Now we can consider eq.\eqref{kugel:eq:rec-leg-3}, and multiply it by $e^{im\varphi}$. After the usual substitution $z=\cos \vartheta$, we have + \begin{align*} + \sin \vartheta P^m_n(\cos \vartheta)e^{im\varphi} &= \dfrac{e^{im\varphi}}{2n+1}\left[ P^{m+1}_{n+1}(\cos \vartheta) - P^{m+1}_{n-1}(\cos \vartheta)\right] \\ + &= \dfrac{e^{-i\varphi}}{2n+1}\left[ P^{m+1}_{n+1}(\cos \vartheta)e^{i(m+1)\varphi} - P^{m+1}_{n-1}(\cos \vartheta)e^{i(m+1)\varphi}\right]. + \end{align*} + A few manipulations later, we will obtain + \begin{equation*} + Y^m_n(\vartheta, \varphi) = \frac{e^{-i\varphi}}{(2n+1)\sin \vartheta} \left[ Y^{m+1}_{n+1}(\vartheta, \varphi)-Y^{m+1}_{n-1}(\vartheta, \varphi) \right]. + \end{equation*} + \end{proof} + \item + \begin{proof} + This proof is very similar to the previous one. We just have to perform the substitution $z = \cos \vartheta$, as always. Secondly we can multiply the right side by $e^{im\varphi}$ and the left one too but in a different form, namely $e^{im\varphi}=e^{i(m-1)\varphi}e^{i\varphi}$. Then it is only a question of recalling the definition of $Y^m_n(\vartheta, \varphi)$. + \end{proof} +\end{enumerate} + +\section{Series Expansions in $L^2(S^2)$} +We have now reach a point where we have all the tools that are necessary to build something truly amazing: a general series expansion formula for +function on the surface of the sphere. +Before starting we want to recall the definition of the inner product on the spherical surface of definition \ref{kugel:def:inner-product-s2} +\begin{equation*} + \langle f, g \rangle + = \int_{0}^\pi \int_0^{2\pi} + f(\vartheta, \varphi) \overline{g(\vartheta, \varphi)} + \sin \vartheta \, d\varphi \, d\vartheta. +\end{equation*} +To be a bit technical we can say that the set of spherical harmonic functions, toghether with the inner product just showed, +form something that we call Hilbert Space\footnote{For more details about Hilber space you can take a look in section \ref{kugel:sec:preliminaries}}. +This function space is defined over the space of ``well-behaved'' \footnote{The definitions of ``well-behaved'' is pretty ambigous, even for mathematicians. +It depends basically on the context. +You can sumarize it by saying: functions for which the theory we are considering (Fourier theorem) is always true. In our case we can say that well-behaved functions +are functions that follow some convergence contraints (pointwise, uniform, absolute, ...) that we don't want to consider further anyway.} functions. +We can say that the theory we are about to show can be applied on all twice differentiable complex valued functions, +to be more concise: complex valued $L^2$ functions $S^2 \to \mathbb{C}$. + +All these jargons are not really necessary for the practical applications of us mere mortals, namely physicists and engineers. +From now on we will therefore assume that the functions we will dealing with fulfill these ``minor'' conditions. + +The insiders could turn up their nose, but we don't want to dwell too much on the concept of Hilbert space, convergence, metric, well-behaved functions etc. +We simply think that this rigorousness could be at the expense of the possibility to appreciate the beauty and elegance of this theory. +Furthermore, the risk of writing 300+ pages to prove that $1+1=2$\cite{principia-mathematica} is just around the corner (we apologize in advance to Mr. Whitehead and Mr. Russel for using their effort with a negative connotation). + +Despite all, if you desire having definitions a bit more rigorous (as rigorous as two engineers can be), you could take a look at the chapter \ref{}. + +\subsection{Spherical Harmonics Series} + +To talk about a \emph{series expansion} we first need a series, so we shall +build one using the spherical harmonics. + +\begin{definition}[Spherical harmonic series] + \label{kugel:definition:spherical-harmonics-series} + \begin{equation} + f(\vartheta, \varphi) + = \sum_{n=0}^\infty \sum_{m =-n}^n + c_{m,n} Y^m_n(\vartheta, \varphi). \label{kugel:definition:spherical-harmonics-series} + \end{equation} +\end{definition} + +With this definition we are basically saying that any function defined on the spherical surface can be represented as a linear combination of spherical harmonics. +Does eq.\eqref{kugel:definition:spherical-harmonics-series} sound familiar? Well that is prefectly normal, since this is analog to the classical Fourier theory. +In the latter is stated that ``any'' $T$-periodic function $f(x)$, on any interval $[x_0-T/2,x_0+T/2]$, can be represented as a linear combination of complex exponentials. More compactly: +\begin{equation*} + f(x) = \sum_{n \in \mathbb{Z}} c_n e^{i \omega_0 x}, \quad \omega_0=\frac{2\pi}{T} +\end{equation*} +In the case of definition \ref{kugel:definition:spherical-harmonics-series} the kernels, instead of $e^{i\omega_0x}$, have become $Y^m_n$. In addition, the sum is now over the two indices $m$ and $n$. + +\begin{lemma}[Spherical harmonic coefficients] + \label{kugel:lemma:spherical-harmonic-coefficient} + \begin{align*} + c_{m,n} + &= \langle f, Y^m_n \rangle_{\partial S} \\ + &= \int_0^\pi \int_0^{2\pi} f(\vartheta,\varphi) \overline{Y^m_n(\vartheta,\varphi)} \sin\vartheta \,d\varphi\,d\vartheta + \end{align*} +\end{lemma} +\begin{proof} + To develop this proof we will take advantage of the orthogonality property of the Spherical Harmonics. We can start and finish by applying the inner product on both sides of eq.\eqref{kugel:definition:spherical-harmonics-series}: + \begin{align*} + \langle f, Y^{m}_{n} \rangle_{\partial S} + &= \left\langle \sum_{n'=0}^\infty \sum_{m' =-n'}^{n'} + c_{m',n'} Y^{m'}_{n'}(\vartheta, \varphi) \right\rangle_{\partial S} \\ + &= \sum_{n'=0}^\infty \sum_{m' =-n'}^{n'} + \langle c_{m',n'} Y^{m'}_{n'}, Y^{m}_{n} \rangle_{\partial S} \\ + &= \sum_{n'=0}^\infty \sum_{m' =-n'}^{n'} c_{m',n'} \langle Y^{m'}_{n'}, Y^{m}_{n} \rangle_{\partial S} = c_{m,n} + \end{align*} + We omitted the $\vartheta, \varphi$ dependency to avoid overloading the notation. +\end{proof} +Thanks to Lemma \ref{kugel:lemma:spherical-harmonic-coefficient} we can now calculate the series expansion defined in \ref{kugel:definition:spherical-harmonics-series}. + +It can be shown that, for the famous ``well-behaved functions'' $f(\vartheta, \varphi)$ mentioned before, theorem \ref{fourier-theorem-spherical-surface} is true +\begin{theorem}[Fourier Theorem on $\partial S$] + \label{fourier-theorem-spherical-surface} + \begin{equation*} + \lim_{N \to \infty} + \int_0^\pi \int_0^{2\pi} \left\| f(\vartheta,\varphi) - \sum_{n=0}^N\sum_{m=-n}^n c_{m,n} Y^m_n(\vartheta,\varphi) + \right\|_2 \sin\vartheta \,d\varphi\,d\vartheta = 0 + \end{equation*} +\end{theorem} +The connection to Theorem \ref{fourier-theorem-1D} is pretty obvious. + +\subsection{Spectrum} + +\begin{figure} + \centering + \kugelplaceholderfig{.8\textwidth}{5cm} + \caption{\kugeltodo{Rectangular signal and his spectrum.}} + \label{kugel:fig:1d-fourier} +\end{figure} + +In the case of the classical one-dimensional Fourier theory, we call \emph{Spectrum} the relation between the fourier coefficients $c_n$ and the multiple +of the fundamental frequency $2\pi/T$, namely $n 2\pi/T$. In the most general case $c_n$ are complex numbers, so we divide the concept of spectrum in +\emph{Amplitude Spectrum} and \emph{Phase Spectrum}. In fig.\ref{kugel:fig:1d-fourier} a function $f(x)$ is presented along with the amplitude spectrum. + +\begin{figure} + \centering + \kugelplaceholderfig{.8\textwidth}{7cm} + \caption{\kugeltodo{Confront between image reconstructed only with phase and one only with amplitued}} + \label{kugel:fig:phase&litude-2d-fourier} +\end{figure} + +The thing that is easiest for us humans to visualize and understand is often the Amplitude Spectrum. +This is a huge limitation, since for example in Image Processing can be showed in a nice way that much more information is contained in the phase part (see fig.\ref{kugel:fig:phase-2d-fourier}). + +\begin{figure} + \centering + \kugelplaceholderfig{.8\textwidth}{9cm} + \caption{\kugeltodo{fig that show fourier style reconstruction on sphere (with increasing index)}} + \label{kugel:fig:fourier-on-sphere-increasing-index} +\end{figure} + +The same logic can be extended to the spherical harmonic coefficients $c_{m,n}$. In fig.\ref{kugel:fig:fourier-on-sphere-increasing-index} you can see the same concept as in fig.\ref{kugel:fig:1d-fourier} +but with a spherical function $f(\vartheta, \varphi)$. + +\subsection{Energy of a function $f(\vartheta, \varpi)$} + +\begin{lemma}[Energy of a spherical function (\emph{Parseval's theorem})] + \begin{equation*} + \int_0^{2\pi}\int_0^\pi |f(\vartheta, \varphi)|^2 \sin\vartheta \, d\varphi \, d\varphi = \sum_{n=0}^\infty \frac{1}{2n+1} \sum_{m=-n}^n |c_{m,n}|^2. + \end{equation*} +\end{lemma} +\begin{proof} +\end{proof} + +\subsection{Visualization}
\ No newline at end of file diff --git a/buch/papers/lambertw/Bilder/Intuition.pdf b/buch/papers/lambertw/Bilder/Intuition.pdf Binary files differindex 739b02b..964b348 100644 --- a/buch/papers/lambertw/Bilder/Intuition.pdf +++ b/buch/papers/lambertw/Bilder/Intuition.pdf diff --git a/buch/papers/lambertw/Bilder/Strategie.pdf b/buch/papers/lambertw/Bilder/Strategie.pdf Binary files differindex b5428f5..42cae0d 100644 --- a/buch/papers/lambertw/Bilder/Strategie.pdf +++ b/buch/papers/lambertw/Bilder/Strategie.pdf diff --git a/buch/papers/lambertw/Bilder/Strategie.py b/buch/papers/lambertw/Bilder/Strategie.py index 975e248..f09edfb 100644 --- a/buch/papers/lambertw/Bilder/Strategie.py +++ b/buch/papers/lambertw/Bilder/Strategie.py @@ -9,6 +9,9 @@ import pylatex import numpy as np import matplotlib.pyplot as plt + + + N = np.array([0, 0]) V = np.array([1, 4]) Z = np.array([5, 5]) @@ -34,9 +37,10 @@ ax.quiver(X, Y, U, W, angles='xy', scale_units='xy', scale=1, headwidth=5, headl ax.plot([V[0], (VZ+V)[0]], [V[1], (VZ+V)[1]], 'k--') ax.plot(np.vstack([V, Z])[:, 0], np.vstack([V, Z])[:,1], 'bo', markersize=10) -ax.set_xlabel("x", size=20) -ax.set_ylabel("y", size=20) +ax.tick_params(labelsize=15) +plt.xticks(ticks=range(0, 7)) +plt.yticks(ticks=range(0, 7)) ax.text(2.5, 4.5, "Visierlinie", size=20, rotation=10) plt.rcParams.update({ @@ -48,6 +52,7 @@ plt.rcParams.update({ ax.text(1.6, 4.3, r"$\dot{v}$", size=20) ax.text(0.65, 3.9, r"$V$", size=20, c='b') ax.text(5.15, 4.85, r"$Z$", size=20, c='b') - +ax.set_xlabel(r"$x$", size=20) +ax.set_ylabel(r"$y$", size=20) diff --git a/buch/papers/lambertw/Bilder/Strategie.svg b/buch/papers/lambertw/Bilder/Strategie.svg deleted file mode 100644 index 30f9f22..0000000 --- a/buch/papers/lambertw/Bilder/Strategie.svg +++ /dev/null @@ -1,790 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Created with matplotlib (https://matplotlib.org/) --> -<svg height="345.6pt" version="1.1" viewBox="0 0 460.8 345.6" width="460.8pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> - <metadata> - <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <cc:Work> - <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> - <dc:date>2022-07-29T16:52:06.315252</dc:date> - <dc:format>image/svg+xml</dc:format> - <dc:creator> - <cc:Agent> - <dc:title>Matplotlib v3.3.2, https://matplotlib.org/</dc:title> - </cc:Agent> - </dc:creator> - </cc:Work> - </rdf:RDF> - </metadata> - <defs> - <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style> - </defs> - <g id="figure_1"> - <g id="patch_1"> - <path d="M 0 345.6 -L 460.8 345.6 -L 460.8 0 -L 0 0 -z -" style="fill:#ffffff;"/> - </g> - <g id="axes_1"> - <g id="patch_2"> - <path d="M 57.6 307.584 -L 414.72 307.584 -L 414.72 41.472 -L 57.6 41.472 -z -" style="fill:#ffffff;"/> - </g> - <g id="Quiver_1"> - <path clip-path="url(#p4d634c2ff8)" d="M 56.33035 307.158035 -L 111.164738 143.716183 -L 104.808244 145.821274 -L 117.12 130.176 -L 117.504742 150.080921 -L 113.704037 144.568113 -L 58.86965 308.009965 -L 56.33035 307.158035 -"/> - <path clip-path="url(#p4d634c2ff8)" d="M 56.799809 306.510151 -L 342.587471 93.552248 -L 336.165162 91.657425 -L 355.2 85.824 -L 344.167068 102.395914 -L 344.187852 95.699946 -L 58.400191 308.657849 -L 56.799809 306.510151 -"/> - <path clip-path="url(#p4d634c2ff8)" d="M 116.874739 128.85945 -L 197.624689 113.816516 -L 192.693997 109.286097 -L 212.352 112.4352 -L 195.146603 122.451597 -L 198.11521 116.449616 -L 117.365261 131.49255 -L 116.874739 128.85945 -"/> - </g> - <g id="matplotlib.axis_1"> - <g id="xtick_1"> - <g id="line2d_1"> - <defs> - <path d="M 0 0 -L 0 3.5 -" id="mb1945b9271" style="stroke:#000000;stroke-width:0.8;"/> - </defs> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#mb1945b9271" y="307.584"/> - </g> - </g> - <g id="text_1"> - <!-- $\mathdefault{0}$ --> - <g transform="translate(55.109332 321.976201)scale(0.1 -0.1)"> - <defs> - <path d="M 42 31.84375 -C 42 37.96875 41.90625 48.421875 37.703125 56.453125 -C 34 63.484375 28.09375 66 22.90625 66 -C 18.09375 66 12 63.78125 8.203125 56.5625 -C 4.203125 49.015625 3.796875 39.671875 3.796875 31.84375 -C 3.796875 26.109375 3.90625 17.375 7 9.734375 -C 11.296875 -0.609375 19 -2 22.90625 -2 -C 27.5 -2 34.5 -0.109375 38.59375 9.4375 -C 41.59375 16.375 42 24.5 42 31.84375 -z -M 22.90625 -0.40625 -C 16.5 -0.40625 12.703125 5.125 11.296875 12.75 -C 10.203125 18.6875 10.203125 27.328125 10.203125 32.953125 -C 10.203125 40.6875 10.203125 47.109375 11.5 53.234375 -C 13.40625 61.78125 19 64.390625 22.90625 64.390625 -C 27 64.390625 32.296875 61.671875 34.203125 53.4375 -C 35.5 47.71875 35.59375 40.984375 35.59375 32.953125 -C 35.59375 26.421875 35.59375 18.375 34.40625 12.453125 -C 32.296875 1.5 26.40625 -0.40625 22.90625 -0.40625 -z -" id="CMR17-48"/> - </defs> - <use transform="scale(0.996264)" xlink:href="#CMR17-48"/> - </g> - </g> - </g> - <g id="xtick_2"> - <g id="line2d_2"> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="117.12" xlink:href="#mb1945b9271" y="307.584"/> - </g> - </g> - <g id="text_2"> - <!-- $\mathdefault{1}$ --> - <g transform="translate(114.629332 321.976201)scale(0.1 -0.1)"> - <defs> - <path d="M 26.59375 63.796875 -C 26.59375 65.890625 26.5 66 25.09375 66 -C 21.203125 61.359375 15.296875 59.890625 9.703125 59.6875 -C 9.40625 59.6875 8.90625 59.6875 8.796875 59.5 -C 8.703125 59.296875 8.703125 59.09375 8.703125 57 -C 11.796875 57 17 57.59375 21 59.984375 -L 21 7.296875 -C 21 3.796875 20.796875 2.59375 12.203125 2.59375 -L 9.203125 2.59375 -L 9.203125 0 -C 14 0.09375 19 0.1875 23.796875 0.1875 -C 28.59375 0.1875 33.59375 0.09375 38.40625 0 -L 38.40625 2.59375 -L 35.40625 2.59375 -C 26.796875 2.59375 26.59375 3.6875 26.59375 7.296875 -z -" id="CMR17-49"/> - </defs> - <use transform="scale(0.996264)" xlink:href="#CMR17-49"/> - </g> - </g> - </g> - <g id="xtick_3"> - <g id="line2d_3"> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="176.64" xlink:href="#mb1945b9271" y="307.584"/> - </g> - </g> - <g id="text_3"> - <!-- $\mathdefault{2}$ --> - <g transform="translate(174.149332 321.976201)scale(0.1 -0.1)"> - <defs> - <path d="M 41.703125 15.46875 -L 39.90625 15.46875 -C 38.90625 8.390625 38.09375 7.1875 37.703125 6.59375 -C 37.203125 5.796875 30 5.796875 28.59375 5.796875 -L 9.40625 5.796875 -C 13 9.6875 20 16.765625 28.5 24.9375 -C 34.59375 30.71875 41.703125 37.5 41.703125 47.390625 -C 41.703125 59.1875 32.296875 66 21.796875 66 -C 10.796875 66 4.09375 56.296875 4.09375 47.296875 -C 4.09375 43.390625 7 42.890625 8.203125 42.890625 -C 9.203125 42.890625 12.203125 43.484375 12.203125 46.984375 -C 12.203125 50.09375 9.59375 51 8.203125 51 -C 7.59375 51 7 50.890625 6.59375 50.6875 -C 8.5 59.1875 14.296875 63.390625 20.40625 63.390625 -C 29.09375 63.390625 34.796875 56.5 34.796875 47.390625 -C 34.796875 38.703125 29.703125 31.21875 24 24.734375 -L 4.09375 2.296875 -L 4.09375 0 -L 39.296875 0 -z -" id="CMR17-50"/> - </defs> - <use transform="scale(0.996264)" xlink:href="#CMR17-50"/> - </g> - </g> - </g> - <g id="xtick_4"> - <g id="line2d_4"> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="236.16" xlink:href="#mb1945b9271" y="307.584"/> - </g> - </g> - <g id="text_4"> - <!-- $\mathdefault{3}$ --> - <g transform="translate(233.669332 321.976201)scale(0.1 -0.1)"> - <defs> - <path d="M 22.09375 34 -C 31 34 34.90625 26.140625 34.90625 17.09375 -C 34.90625 5.03125 28.5 0.390625 22.703125 0.390625 -C 17.40625 0.390625 8.796875 3.015625 6.09375 10.796875 -C 6.59375 10.59375 7.09375 10.59375 7.59375 10.59375 -C 10 10.59375 11.796875 12.1875 11.796875 14.796875 -C 11.796875 17.6875 9.59375 19 7.59375 19 -C 5.90625 19 3.296875 18.1875 3.296875 14.484375 -C 3.296875 5.234375 12.296875 -2 22.90625 -2 -C 34 -2 42.5 6.75 42.5 16.984375 -C 42.5 26.84375 34.5 34 25 35.09375 -C 32.59375 36.671875 39.90625 43.375 39.90625 52.390625 -C 39.90625 60.25 32 66 23 66 -C 13.90625 66 5.90625 60.34375 5.90625 52.296875 -C 5.90625 48.796875 8.5 48.1875 9.796875 48.1875 -C 11.90625 48.1875 13.703125 49.484375 13.703125 52.09375 -C 13.703125 54.6875 11.90625 56 9.796875 56 -C 9.40625 56 8.90625 56 8.5 55.796875 -C 11.40625 62.484375 19.296875 63.6875 22.796875 63.6875 -C 26.296875 63.6875 32.90625 61.96875 32.90625 52.296875 -C 32.90625 49.484375 32.5 44.546875 29.09375 40.21875 -C 26.09375 36.390625 22.703125 36.1875 19.40625 35.890625 -C 18.90625 35.890625 16.59375 35.6875 16.203125 35.6875 -C 15.5 35.59375 15.09375 35.5 15.09375 34.796875 -C 15.09375 34.09375 15.203125 34 17.203125 34 -z -" id="CMR17-51"/> - </defs> - <use transform="scale(0.996264)" xlink:href="#CMR17-51"/> - </g> - </g> - </g> - <g id="xtick_5"> - <g id="line2d_5"> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="295.68" xlink:href="#mb1945b9271" y="307.584"/> - </g> - </g> - <g id="text_5"> - <!-- $\mathdefault{4}$ --> - <g transform="translate(293.189332 321.976201)scale(0.1 -0.1)"> - <defs> - <path d="M 33.59375 64.796875 -C 33.59375 66.890625 33.5 67 31.703125 67 -L 2 19.59375 -L 2 17 -L 27.796875 17 -L 27.796875 7.1875 -C 27.796875 3.59375 27.59375 2.59375 20.59375 2.59375 -L 18.703125 2.59375 -L 18.703125 0 -C 21.90625 0.1875 27.296875 0.1875 30.703125 0.1875 -C 34.09375 0.1875 39.5 0.1875 42.703125 0 -L 42.703125 2.59375 -L 40.796875 2.59375 -C 33.796875 2.59375 33.59375 3.59375 33.59375 7.1875 -L 33.59375 17 -L 43.796875 17 -L 43.796875 19.59375 -L 33.59375 19.59375 -z -M 28.09375 58.171875 -L 28.09375 19.59375 -L 4 19.59375 -z -" id="CMR17-52"/> - </defs> - <use transform="scale(0.996264)" xlink:href="#CMR17-52"/> - </g> - </g> - </g> - <g id="xtick_6"> - <g id="line2d_6"> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="355.2" xlink:href="#mb1945b9271" y="307.584"/> - </g> - </g> - <g id="text_6"> - <!-- $\mathdefault{5}$ --> - <g transform="translate(352.709332 321.976201)scale(0.1 -0.1)"> - <defs> - <path d="M 11.40625 58.59375 -C 12.40625 58.1875 16.5 56.890625 20.703125 56.890625 -C 30 56.890625 35.09375 61.890625 38 64.6875 -C 38 65.484375 38 66 37.40625 66 -C 37.296875 66 37.09375 66 36.296875 65.59375 -C 32.796875 64.09375 28.703125 63 23.703125 63 -C 20.703125 63 16.203125 63.359375 11.296875 65.484375 -C 10.203125 66 10 66 9.90625 66 -C 9.40625 66 9.296875 65.890625 9.296875 63.90625 -L 9.296875 34.859375 -C 9.296875 33.015625 9.296875 32.5 10.296875 32.5 -C 10.796875 32.5 11 32.703125 11.5 33.421875 -C 14.703125 38.046875 19.09375 40 24.09375 40 -C 27.59375 40 35.09375 37.734375 35.09375 20.203125 -C 35.09375 16.984375 35.09375 11.1875 32.09375 6.59375 -C 29.59375 2.484375 25.703125 0.390625 21.40625 0.390625 -C 14.796875 0.390625 8.09375 4.984375 6.296875 12.6875 -C 6.703125 12.59375 7.5 12.390625 7.90625 12.390625 -C 9.203125 12.390625 11.703125 13.09375 11.703125 16.1875 -C 11.703125 18.890625 9.796875 20 7.90625 20 -C 5.59375 20 4.09375 18.59375 4.09375 15.796875 -C 4.09375 7.09375 11 -2 21.59375 -2 -C 31.90625 -2 41.703125 6.890625 41.703125 19.796875 -C 41.703125 32.09375 33.90625 41.59375 24.203125 41.59375 -C 19.09375 41.59375 14.796875 39.6875 11.40625 36 -z -" id="CMR17-53"/> - </defs> - <use transform="scale(0.996264)" xlink:href="#CMR17-53"/> - </g> - </g> - </g> - <g id="xtick_7"> - <g id="line2d_7"> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="414.72" xlink:href="#mb1945b9271" y="307.584"/> - </g> - </g> - <g id="text_7"> - <!-- $\mathdefault{6}$ --> - <g transform="translate(412.229332 321.976201)scale(0.1 -0.1)"> - <defs> - <path d="M 10.59375 34.34375 -C 10.59375 58 21.796875 63.6875 28.296875 63.6875 -C 30.40625 63.6875 35.5 63.265625 37.5 59.09375 -C 35.90625 59.09375 32.90625 59.09375 32.90625 55.59375 -C 32.90625 52.890625 35.09375 52 36.5 52 -C 37.40625 52 40.09375 52.390625 40.09375 55.796875 -C 40.09375 62.296875 35.09375 66 28.203125 66 -C 16.296875 66 3.796875 53.296875 3.796875 31.421875 -C 3.796875 4.015625 15.09375 -2 23.09375 -2 -C 32.796875 -2 42 6.734375 42 20.234375 -C 42 32.828125 33.90625 42 23.703125 42 -C 17.59375 42 13.09375 37.96875 10.59375 30.921875 -z -M 23.09375 0.390625 -C 10.796875 0.390625 10.796875 18.9375 10.796875 22.65625 -C 10.796875 29.90625 14.203125 40.390625 23.5 40.390625 -C 25.203125 40.390625 30.09375 40.390625 33.40625 33.4375 -C 35.203125 29.515625 35.203125 25.375 35.203125 20.34375 -C 35.203125 14.90625 35.203125 10.875 33.09375 6.84375 -C 30.90625 2.703125 27.703125 0.390625 23.09375 0.390625 -z -" id="CMR17-54"/> - </defs> - <use transform="scale(0.996264)" xlink:href="#CMR17-54"/> - </g> - </g> - </g> - </g> - <g id="matplotlib.axis_2"> - <g id="ytick_1"> - <g id="line2d_8"> - <defs> - <path d="M 0 0 -L -3.5 0 -" id="m6d23d0aeda" style="stroke:#000000;stroke-width:0.8;"/> - </defs> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m6d23d0aeda" y="307.584"/> - </g> - </g> - <g id="text_8"> - <!-- $\mathdefault{0}$ --> - <g transform="translate(45.618665 311.280101)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#CMR17-48"/> - </g> - </g> - </g> - <g id="ytick_2"> - <g id="line2d_9"> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m6d23d0aeda" y="263.232"/> - </g> - </g> - <g id="text_9"> - <!-- $\mathdefault{1}$ --> - <g transform="translate(45.618665 266.928101)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#CMR17-49"/> - </g> - </g> - </g> - <g id="ytick_3"> - <g id="line2d_10"> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m6d23d0aeda" y="218.88"/> - </g> - </g> - <g id="text_10"> - <!-- $\mathdefault{2}$ --> - <g transform="translate(45.618665 222.576101)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#CMR17-50"/> - </g> - </g> - </g> - <g id="ytick_4"> - <g id="line2d_11"> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m6d23d0aeda" y="174.528"/> - </g> - </g> - <g id="text_11"> - <!-- $\mathdefault{3}$ --> - <g transform="translate(45.618665 178.224101)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#CMR17-51"/> - </g> - </g> - </g> - <g id="ytick_5"> - <g id="line2d_12"> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m6d23d0aeda" y="130.176"/> - </g> - </g> - <g id="text_12"> - <!-- $\mathdefault{4}$ --> - <g transform="translate(45.618665 133.872101)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#CMR17-52"/> - </g> - </g> - </g> - <g id="ytick_6"> - <g id="line2d_13"> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m6d23d0aeda" y="85.824"/> - </g> - </g> - <g id="text_13"> - <!-- $\mathdefault{5}$ --> - <g transform="translate(45.618665 89.520101)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#CMR17-53"/> - </g> - </g> - </g> - <g id="ytick_7"> - <g id="line2d_14"> - <g> - <use style="stroke:#000000;stroke-width:0.8;" x="57.6" xlink:href="#m6d23d0aeda" y="41.472"/> - </g> - </g> - <g id="text_14"> - <!-- $\mathdefault{6}$ --> - <g transform="translate(45.618665 45.168101)scale(0.1 -0.1)"> - <use transform="scale(0.996264)" xlink:href="#CMR17-54"/> - </g> - </g> - </g> - </g> - <g id="line2d_15"> - <path clip-path="url(#p4d634c2ff8)" d="M 117.12 130.176 -L 355.2 85.824 -" style="fill:none;stroke:#000000;stroke-dasharray:5.55,2.4;stroke-dashoffset:0;stroke-width:1.5;"/> - </g> - <g id="line2d_16"> - <defs> - <path d="M 0 5 -C 1.326016 5 2.597899 4.473168 3.535534 3.535534 -C 4.473168 2.597899 5 1.326016 5 0 -C 5 -1.326016 4.473168 -2.597899 3.535534 -3.535534 -C 2.597899 -4.473168 1.326016 -5 0 -5 -C -1.326016 -5 -2.597899 -4.473168 -3.535534 -3.535534 -C -4.473168 -2.597899 -5 -1.326016 -5 0 -C -5 1.326016 -4.473168 2.597899 -3.535534 3.535534 -C -2.597899 4.473168 -1.326016 5 0 5 -z -" id="m138f5b32d3" style="stroke:#0000ff;"/> - </defs> - <g clip-path="url(#p4d634c2ff8)"> - <use style="fill:#0000ff;stroke:#0000ff;" x="117.12" xlink:href="#m138f5b32d3" y="130.176"/> - <use style="fill:#0000ff;stroke:#0000ff;" x="355.2" xlink:href="#m138f5b32d3" y="85.824"/> - </g> - </g> - <g id="patch_3"> - <path d="M 57.6 307.584 -L 57.6 41.472 -" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> - </g> - <g id="patch_4"> - <path d="M 414.72 307.584 -L 414.72 41.472 -" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> - </g> - <g id="patch_5"> - <path d="M 57.6 307.584 -L 414.72 307.584 -" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> - </g> - <g id="patch_6"> - <path d="M 57.6 41.472 -L 414.72 41.472 -" style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> - </g> - <g id="text_15"> - <!-- Visierlinie --> - <g transform="translate(208.967287 108.057514)rotate(-10)scale(0.2 -0.2)"> - <defs> - <path d="M 39.296875 15.0625 -L 21 61.765625 -C 20.5 62.96875 20.203125 64.171875 20.203125 64.78125 -C 20.203125 66.59375 21.90625 67.296875 26.40625 67.296875 -L 30.40625 67.296875 -L 30.40625 72 -L -0.796875 72 -L -0.796875 67.296875 -L 1.203125 67.296875 -C 5.703125 67.296875 7 66.28125 8.90625 61.671875 -L 34.203125 -2 -L 38.203125 -2 -L 61.203125 57.453125 -C 64.203125 65.28125 66.40625 67.296875 72.09375 67.296875 -L 73.09375 67.296875 -L 73.09375 72 -L 46 72 -L 46 67.296875 -L 47.90625 67.296875 -C 53 67.296875 56 65.28125 56 62.0625 -C 56 60.65625 55.5 58.359375 54.796875 56.4375 -z -" id="Century_Schoolbook_L_Roman-86"/> - <path d="M 20.59375 47 -L 1.796875 46 -L 1.796875 41.6875 -L 6.90625 41.6875 -C 10.59375 41.6875 11.203125 40.984375 11.203125 36.625 -L 11.203125 12.40625 -L 11.203125 8.359375 -C 11.203125 4.296875 10.09375 3.59375 3.703125 3.59375 -L 3 3.59375 -L 3 0 -L 28.90625 0 -L 28.90625 3.59375 -L 28.203125 3.59375 -C 21.703125 3.59375 20.59375 4.296875 20.59375 8.359375 -L 20.59375 12.40625 -z -M 15.90625 72 -C 12.703125 72 10.09375 69.390625 10.09375 66.1875 -C 10.09375 63.09375 12.703125 60.390625 15.796875 60.390625 -C 19.09375 60.390625 21.703125 62.984375 21.703125 66.1875 -C 21.703125 69.390625 19.09375 72 15.90625 72 -z -" id="Century_Schoolbook_L_Roman-105"/> - <path d="M 39 48 -L 35.5 48 -L 32.59375 44.390625 -C 29 46.796875 25.40625 48 20.40625 48 -C 11.59375 48 5.796875 42.1875 5.796875 33.390625 -C 5.796875 29.453125 7.09375 26.125 9.296875 24.109375 -C 11.59375 21.984375 13.90625 20.96875 19.90625 19.5625 -L 25.203125 18.34375 -C 33.09375 16.4375 35.90625 14.40625 35.90625 10.375 -C 35.90625 5.625 31.796875 2.296875 25.90625 2.296875 -C 17.5 2.296875 11.5 7.75 9.09375 17.84375 -L 5.09375 17.84375 -L 5.09375 -1.203125 -L 8.59375 -1.203125 -L 12.09375 2.890625 -C 16.203125 -0.40625 20.796875 -2 25.796875 -2 -C 35.59375 -2 42.09375 4.109375 42.09375 13.5 -C 42.09375 17.9375 40.703125 21.375 37.90625 23.703125 -C 35.5 25.828125 33.5 26.625 27.40625 27.9375 -L 22.40625 29.046875 -C 16.90625 30.265625 16.90625 30.265625 15.09375 31.28125 -C 12.90625 32.28125 11.59375 34.40625 11.59375 36.625 -C 11.59375 40.671875 15.40625 43.59375 20.90625 43.59375 -C 24.703125 43.59375 27.796875 42.28125 30.59375 39.5625 -C 32.796875 37.796875 33.90625 35.796875 35.5 31.1875 -L 39 31.1875 -z -" id="Century_Schoolbook_L_Roman-115"/> - <path d="M 46.5 22 -C 46.59375 37.25 38.09375 48 25.90625 48 -C 13.09375 48 3.5 36.734375 3.5 21.484375 -C 3.5 7.484375 12.59375 -2 26.09375 -2 -C 35.59375 -2 42.40625 2.6875 46.5 12.1875 -L 43 14.09375 -C 38.90625 6.390625 34.703125 3.390625 28 3.390625 -C 22.90625 3.390625 19.203125 5.59375 16.59375 9.984375 -C 14.796875 12.984375 14 16.484375 14.09375 22 -z -M 14.203125 26.296875 -C 14.203125 29.46875 14.59375 31.71875 15.59375 34.578125 -C 17.703125 40.71875 20.90625 43.6875 25.703125 43.6875 -C 31.796875 43.6875 35.796875 38.265625 35.796875 30.078125 -C 35.796875 27.109375 34.90625 26.296875 31.703125 26.296875 -z -" id="Century_Schoolbook_L_Roman-101"/> - <path d="M 19.796875 47 -L 2.09375 45.296875 -L 2.09375 41 -L 6.203125 41 -C 9.90625 41 10.5 40.296875 10.5 36.015625 -L 10.5 12.25 -L 10.5 8.265625 -C 10.5 4.28125 9.40625 3.59375 2.90625 3.59375 -L 2.5 3.59375 -L 2.5 0 -L 29.203125 0 -L 29.203125 3.59375 -L 27.296875 3.59375 -C 20.90625 3.59375 19.796875 4.28125 19.796875 8.265625 -L 19.796875 12.25 -L 19.796875 13.234375 -C 19.796875 20.703125 21.203125 28.265625 23.703125 33.9375 -C 26.09375 39.5 29.5 42.59375 33.703125 43.09375 -C 32.296875 41.5 31.90625 40.5 31.90625 38.609375 -C 31.90625 35.421875 34.203125 33.140625 37.40625 33.140625 -C 41 33.140625 43.5 35.828125 43.5 39.90625 -C 43.5 44.6875 40.09375 48 34.796875 48 -C 28.5 48 23 42.796875 19.796875 34.03125 -z -" id="Century_Schoolbook_L_Roman-114"/> - <path d="M 20.40625 74 -L 1.90625 73 -L 1.90625 68.6875 -L 6.796875 68.6875 -C 10.40625 68.6875 11 67.984375 11 63.65625 -L 11 12.34375 -L 11 8.328125 -C 11 4.296875 9.90625 3.59375 3.5 3.59375 -L 2.796875 3.59375 -L 2.796875 0 -L 28.703125 0 -L 28.703125 3.59375 -L 28 3.59375 -C 21.5 3.59375 20.40625 4.296875 20.40625 8.328125 -L 20.40625 12.34375 -z -" id="Century_Schoolbook_L_Roman-108"/> - <path d="M 20 47 -L 2.703125 46 -L 2.703125 41.6875 -L 6.296875 41.6875 -C 10 41.6875 10.59375 40.984375 10.59375 36.625 -L 10.59375 12.40625 -L 10.59375 8.359375 -C 10.59375 4.296875 9.5 3.59375 3.09375 3.59375 -L 2.703125 3.59375 -L 2.703125 0 -L 28 0 -L 28 3.59375 -L 27.59375 3.59375 -C 21.09375 3.59375 20 4.296875 20 8.359375 -L 20 12.40625 -L 20 22.953125 -C 20 27.90625 20.703125 32.46875 21.796875 34.796875 -C 23.90625 38.796875 28.40625 41.890625 32.703125 41.890625 -C 35.296875 41.890625 38.296875 40.390625 39.796875 38.40625 -C 41.296875 36.296875 42 33.21875 42 28.421875 -L 42 12.265625 -L 42 8.28125 -C 42 4.296875 40.90625 3.59375 34.40625 3.59375 -L 34 3.59375 -L 34 0 -L 59.296875 0 -L 59.296875 3.59375 -L 58.90625 3.59375 -C 52.5 3.59375 51.40625 4.296875 51.40625 8.28125 -L 51.40625 12.265625 -L 51.40625 27.921875 -C 51.40625 35.109375 51.09375 36.90625 49.296875 40.296875 -C 46.796875 45.09375 41.703125 48 35.796875 48 -C 29.40625 48 24.40625 44.984375 20 38.40625 -z -" id="Century_Schoolbook_L_Roman-110"/> - </defs> - <use transform="scale(0.996264)" xlink:href="#Century_Schoolbook_L_Roman-86"/> - <use transform="translate(70.137406 0)scale(0.996264)" xlink:href="#Century_Schoolbook_L_Roman-105"/> - <use transform="translate(101.518719 0)scale(0.996264)" xlink:href="#Century_Schoolbook_L_Roman-115"/> - <use transform="translate(147.644529 0)scale(0.996264)" xlink:href="#Century_Schoolbook_L_Roman-105"/> - <use transform="translate(179.025842 0)scale(0.996264)" xlink:href="#Century_Schoolbook_L_Roman-101"/> - <use transform="translate(228.839043 0)scale(0.996264)" xlink:href="#Century_Schoolbook_L_Roman-114"/> - <use transform="translate(273.072612 0)scale(0.996264)" xlink:href="#Century_Schoolbook_L_Roman-108"/> - <use transform="translate(304.453925 0)scale(0.996264)" xlink:href="#Century_Schoolbook_L_Roman-105"/> - <use transform="translate(335.835238 0)scale(0.996264)" xlink:href="#Century_Schoolbook_L_Roman-110"/> - <use transform="translate(396.706868 0)scale(0.996264)" xlink:href="#Century_Schoolbook_L_Roman-105"/> - <use transform="translate(428.088181 0)scale(0.996264)" xlink:href="#Century_Schoolbook_L_Roman-101"/> - </g> - </g> - <g id="text_16"> - <!-- $\vec{v}$ --> - <g transform="translate(152.832 116.8704)scale(0.3 -0.3)"> - <defs> - <path d="M 53.5 60 -C 52.296875 58.890625 48.59375 55.390625 48.59375 53.984375 -C 48.59375 52.984375 49.5 52.09375 50.5 52.09375 -C 51.40625 52.09375 51.796875 52.6875 52.5 53.6875 -C 54.90625 56.6875 57.59375 58.59375 59.90625 59.890625 -C 60.90625 60.5 61.59375 60.796875 61.59375 61.890625 -C 61.59375 62.796875 60.796875 63.296875 60.203125 63.796875 -C 57.40625 65.6875 56.703125 68.390625 56.40625 69.59375 -C 56.09375 70.390625 55.796875 71.59375 54.40625 71.59375 -C 53.796875 71.59375 52.59375 71.1875 52.59375 69.6875 -C 52.59375 68.796875 53.203125 66.390625 55.09375 63.6875 -L 21.5 63.6875 -C 19.796875 63.6875 18.09375 63.6875 18.09375 61.796875 -C 18.09375 60 19.90625 60 21.5 60 -z -" id="CMMI12-126"/> - <path d="M 45.703125 37.3125 -C 45.703125 43.59375 42.5 44 41.703125 44 -C 39.296875 44 37.09375 41.59375 37.09375 39.59375 -C 37.09375 38.40625 37.796875 37.703125 38.203125 37.3125 -C 39.203125 36.40625 41.796875 33.71875 41.796875 28.53125 -C 41.796875 24.34375 35.796875 1 23.796875 1 -C 17.703125 1 16.5 6.078125 16.5 9.765625 -C 16.5 14.765625 18.796875 21.75 21.5 28.921875 -C 23.09375 33.015625 23.5 34.015625 23.5 36.015625 -C 23.5 40.203125 20.5 44 15.59375 44 -C 6.40625 44 2.703125 29.53125 2.703125 28.71875 -C 2.703125 28.328125 3.09375 27.828125 3.796875 27.828125 -C 4.703125 27.828125 4.796875 28.234375 5.203125 29.625 -C 7.59375 38.203125 11.5 41.984375 15.296875 41.984375 -C 16.203125 41.984375 17.90625 41.984375 17.90625 38.703125 -C 17.90625 36.109375 16.796875 33.21875 15.296875 29.421875 -C 10.5 16.65625 10.5 13.5625 10.5 11.171875 -C 10.5 8.96875 10.796875 4.890625 13.90625 2.09375 -C 17.5 -1 22.5 -1 23.40625 -1 -C 40 -1 45.703125 31.625 45.703125 37.3125 -z -" id="CMMI12-118"/> - </defs> - <use transform="scale(0.996264)" xlink:href="#CMMI12-126"/> - <use transform="translate(3.972363 0)scale(0.996264)" xlink:href="#CMMI12-118"/> - </g> - </g> - <g id="text_17"> - <!-- $V$ --> - <g style="fill:#0000ff;" transform="translate(93.312 134.6112)scale(0.3 -0.3)"> - <defs> - <path d="M 61.90625 56.9375 -C 65.296875 62.296875 68.40625 64.6875 73.5 65.09375 -C 74.5 65.1875 75.296875 65.1875 75.296875 66.984375 -C 75.296875 67.390625 75.09375 68 74.203125 68 -C 72.40625 68 68.09375 67.796875 66.296875 67.796875 -C 63.40625 67.796875 60.40625 68 57.59375 68 -C 56.796875 68 55.796875 68 55.796875 66.09375 -C 55.796875 65.1875 56.703125 65.09375 57.09375 65.09375 -C 60.796875 64.78125 61.203125 63 61.203125 61.8125 -C 61.203125 60.3125 59.796875 58.03125 59.703125 57.9375 -L 28.296875 8.4375 -L 21.296875 62 -C 21.296875 64.890625 26.5 65.09375 27.59375 65.09375 -C 29.09375 65.09375 30 65.09375 30 66.984375 -C 30 68 28.90625 68 28.59375 68 -C 26.90625 68 24.90625 67.796875 23.203125 67.796875 -L 17.59375 67.796875 -C 10.296875 67.796875 7.296875 68 7.203125 68 -C 6.59375 68 5.40625 68 5.40625 66.1875 -C 5.40625 65.09375 6.09375 65.09375 7.703125 65.09375 -C 12.796875 65.09375 13.09375 64.1875 13.40625 61.703125 -L 21.40625 0.390625 -C 21.703125 -1.703125 21.703125 -2 23.09375 -2 -C 24.296875 -2 24.796875 -1.703125 25.796875 -0.109375 -z -" id="CMMI12-86"/> - </defs> - <use transform="scale(0.996264)" xlink:href="#CMMI12-86"/> - </g> - </g> - <g id="text_18"> - <!-- $Z$ --> - <g style="fill:#0000ff;" transform="translate(361.152 96.02496)scale(0.3 -0.3)"> - <defs> - <path d="M 70 64.890625 -C 70.59375 65.59375 71.09375 66.1875 71.09375 67.1875 -C 71.09375 67.890625 71 68 68.703125 68 -L 27.40625 68 -C 25.09375 68 25 67.890625 24.40625 66.09375 -L 18.90625 48.171875 -C 18.59375 47.171875 18.59375 46.984375 18.59375 46.78125 -C 18.59375 46.375 18.90625 45.78125 19.59375 45.78125 -C 20.40625 45.78125 20.59375 46.1875 21 47.484375 -C 24.703125 58.21875 29.59375 65.09375 45.40625 65.09375 -L 61.796875 65.09375 -L 7 3.390625 -C 6.09375 2.296875 5.703125 1.890625 5.703125 0.796875 -C 5.703125 0 6.203125 0 8.09375 0 -L 50.796875 0 -C 53.09375 0 53.203125 0.09375 53.796875 1.890625 -L 60.796875 23.890625 -C 60.90625 24.1875 61.09375 24.890625 61.09375 25.28125 -C 61.09375 25.78125 60.703125 26.28125 60.09375 26.28125 -C 59.296875 26.28125 59.203125 26.1875 58.40625 23.6875 -C 54.203125 10.859375 49.796875 3.09375 32.40625 3.09375 -L 15.09375 3.09375 -z -" id="CMMI12-90"/> - </defs> - <use transform="scale(0.996264)" xlink:href="#CMMI12-90"/> - </g> - </g> - </g> - </g> - <defs> - <clipPath id="p4d634c2ff8"> - <rect height="266.112" width="357.12" x="57.6" y="41.472"/> - </clipPath> - </defs> -</svg> diff --git a/buch/papers/lambertw/Bilder/VerfolgungskurveBsp.png b/buch/papers/lambertw/Bilder/VerfolgungskurveBsp.png Binary files differindex e6e7c1e..dc4720a 100644 --- a/buch/papers/lambertw/Bilder/VerfolgungskurveBsp.png +++ b/buch/papers/lambertw/Bilder/VerfolgungskurveBsp.png diff --git a/buch/papers/lambertw/Bilder/lambertAbstandBauchgefühl.py b/buch/papers/lambertw/Bilder/lambertAbstandBauchgefühl.py index 3a90afa..73b322c 100644 --- a/buch/papers/lambertw/Bilder/lambertAbstandBauchgefühl.py +++ b/buch/papers/lambertw/Bilder/lambertAbstandBauchgefühl.py @@ -39,9 +39,11 @@ plt.plot(0, ymin, 'bo', markersize=10) plt.plot([0, xmin], [ymin, ymin], 'k--') #plt.xlim(-0.1, 1) #plt.ylim(1, 2) -plt.ylabel("y") -plt.xlabel("x") + plt.grid(True) +plt.tick_params(labelsize=15) +#plt.xticks(ticks=range(0, 7)) +#plt.yticks(ticks=range(0, 7)) plt.quiver(xmin, ymin, -0.2, 0, scale=1) plt.text(xmin+0.1, ymin-0.1, "Verfolgungskurve", size=20, rotation=20, color='r') @@ -55,4 +57,6 @@ plt.rcParams.update({ plt.text(xmin-0.11, ymin-0.08, r"$\dot{v}$", size=20) plt.text(xmin-0.02, ymin+0.05, r"$V$", size=20, c='b') -plt.text(0.02, ymin+0.05, r"$Z$", size=20, c='b')
\ No newline at end of file +plt.text(0.02, ymin+0.05, r"$Z$", size=20, c='b') +plt.ylabel(r"$y$", size=20) +plt.xlabel(r"$x$", size=20)
\ No newline at end of file diff --git a/buch/papers/lambertw/Bilder/pursuerDGL.ggb b/buch/papers/lambertw/Bilder/pursuerDGL.ggb Binary files differdeleted file mode 100644 index 3fb3a78..0000000 --- a/buch/papers/lambertw/Bilder/pursuerDGL.ggb +++ /dev/null diff --git a/buch/papers/lambertw/Bilder/pursuerDGL.svg b/buch/papers/lambertw/Bilder/pursuerDGL.svg deleted file mode 100644 index d91e5e1..0000000 --- a/buch/papers/lambertw/Bilder/pursuerDGL.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="2172" height="1315" xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><clipPath id="aUbphlusyTbL"><path fill="none" stroke="none" d="M 0 0 L 2172 0 L 2172 1315 L 0 1315 L 0 0 Z" /></clipPath></defs><g clip-path="url("#aUbphlusyTbL")" transform="scale(1)"><g><rect fill="rgb(255, 255, 255)" fill-opacity="1" stroke="none" x="0" y="0" width="2172" height="1315" /><path fill="none" stroke="rgb(192, 192, 192)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="1" d="M 6.5 0.5 L 6.5 1315.5 M 6.5 0.5 L 6.5 1315.5 M 57.5 0.5 L 57.5 1315.5 M 109.5 0.5 L 109.5 1315.5 M 161.5 0.5 L 161.5 1315.5 M 212.5 0.5 L 212.5 1315.5 M 264.5 0.5 L 264.5 1315.5 M 316.5 0.5 L 316.5 1315.5 M 367.5 0.5 L 367.5 1315.5 M 471.5 0.5 L 471.5 1315.5 M 523.5 0.5 L 523.5 1315.5 M 574.5 0.5 L 574.5 1315.5 M 626.5 0.5 L 626.5 1315.5 M 678.5 0.5 L 678.5 1315.5 M 729.5 0.5 L 729.5 1315.5 M 781.5 0.5 L 781.5 1315.5 M 833.5 0.5 L 833.5 1315.5 M 884.5 0.5 L 884.5 1315.5 M 936.5 0.5 L 936.5 1315.5 M 988.5 0.5 L 988.5 1315.5 M 1040.5 0.5 L 1040.5 1315.5 M 1091.5 0.5 L 1091.5 1315.5 M 1143.5 0.5 L 1143.5 1315.5 M 1195.5 0.5 L 1195.5 1315.5 M 1246.5 0.5 L 1246.5 1315.5 M 1298.5 0.5 L 1298.5 1315.5 M 1350.5 0.5 L 1350.5 1315.5 M 1401.5 0.5 L 1401.5 1315.5 M 1453.5 0.5 L 1453.5 1315.5 M 1505.5 0.5 L 1505.5 1315.5 M 1557.5 0.5 L 1557.5 1315.5 M 1608.5 0.5 L 1608.5 1315.5 M 1660.5 0.5 L 1660.5 1315.5 M 1712.5 0.5 L 1712.5 1315.5 M 1763.5 0.5 L 1763.5 1315.5 M 1815.5 0.5 L 1815.5 1315.5 M 1867.5 0.5 L 1867.5 1315.5 M 1918.5 0.5 L 1918.5 1315.5 M 1970.5 0.5 L 1970.5 1315.5 M 2022.5 0.5 L 2022.5 1315.5 M 2074.5 0.5 L 2074.5 1315.5 M 2125.5 0.5 L 2125.5 1315.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(192, 192, 192)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="0.235294" d="M 16.5 0.5 L 16.5 1315.5 M 26.5 0.5 L 26.5 1315.5 M 37.5 0.5 L 37.5 1315.5 M 47.5 0.5 L 47.5 1315.5 M 68.5 0.5 L 68.5 1315.5 M 78.5 0.5 L 78.5 1315.5 M 88.5 0.5 L 88.5 1315.5 M 99.5 0.5 L 99.5 1315.5 M 119.5 0.5 L 119.5 1315.5 M 130.5 0.5 L 130.5 1315.5 M 140.5 0.5 L 140.5 1315.5 M 150.5 0.5 L 150.5 1315.5 M 171.5 0.5 L 171.5 1315.5 M 181.5 0.5 L 181.5 1315.5 M 192.5 0.5 L 192.5 1315.5 M 202.5 0.5 L 202.5 1315.5 M 223.5 0.5 L 223.5 1315.5 M 233.5 0.5 L 233.5 1315.5 M 243.5 0.5 L 243.5 1315.5 M 254.5 0.5 L 254.5 1315.5 M 274.5 0.5 L 274.5 1315.5 M 285.5 0.5 L 285.5 1315.5 M 295.5 0.5 L 295.5 1315.5 M 305.5 0.5 L 305.5 1315.5 M 326.5 0.5 L 326.5 1315.5 M 336.5 0.5 L 336.5 1315.5 M 347.5 0.5 L 347.5 1315.5 M 357.5 0.5 L 357.5 1315.5 M 378.5 0.5 L 378.5 1315.5 M 388.5 0.5 L 388.5 1315.5 M 398.5 0.5 L 398.5 1315.5 M 409.5 0.5 L 409.5 1315.5 M 429.5 0.5 L 429.5 1315.5 M 440.5 0.5 L 440.5 1315.5 M 450.5 0.5 L 450.5 1315.5 M 461.5 0.5 L 461.5 1315.5 M 481.5 0.5 L 481.5 1315.5 M 492.5 0.5 L 492.5 1315.5 M 502.5 0.5 L 502.5 1315.5 M 512.5 0.5 L 512.5 1315.5 M 533.5 0.5 L 533.5 1315.5 M 543.5 0.5 L 543.5 1315.5 M 554.5 0.5 L 554.5 1315.5 M 564.5 0.5 L 564.5 1315.5 M 585.5 0.5 L 585.5 1315.5 M 595.5 0.5 L 595.5 1315.5 M 605.5 0.5 L 605.5 1315.5 M 616.5 0.5 L 616.5 1315.5 M 636.5 0.5 L 636.5 1315.5 M 647.5 0.5 L 647.5 1315.5 M 657.5 0.5 L 657.5 1315.5 M 667.5 0.5 L 667.5 1315.5 M 688.5 0.5 L 688.5 1315.5 M 698.5 0.5 L 698.5 1315.5 M 709.5 0.5 L 709.5 1315.5 M 719.5 0.5 L 719.5 1315.5 M 740.5 0.5 L 740.5 1315.5 M 750.5 0.5 L 750.5 1315.5 M 760.5 0.5 L 760.5 1315.5 M 771.5 0.5 L 771.5 1315.5 M 791.5 0.5 L 791.5 1315.5 M 802.5 0.5 L 802.5 1315.5 M 812.5 0.5 L 812.5 1315.5 M 822.5 0.5 L 822.5 1315.5 M 843.5 0.5 L 843.5 1315.5 M 853.5 0.5 L 853.5 1315.5 M 864.5 0.5 L 864.5 1315.5 M 874.5 0.5 L 874.5 1315.5 M 895.5 0.5 L 895.5 1315.5 M 905.5 0.5 L 905.5 1315.5 M 915.5 0.5 L 915.5 1315.5 M 926.5 0.5 L 926.5 1315.5 M 946.5 0.5 L 946.5 1315.5 M 957.5 0.5 L 957.5 1315.5 M 967.5 0.5 L 967.5 1315.5 M 978.5 0.5 L 978.5 1315.5 M 998.5 0.5 L 998.5 1315.5 M 1009.5 0.5 L 1009.5 1315.5 M 1019.5 0.5 L 1019.5 1315.5 M 1029.5 0.5 L 1029.5 1315.5 M 1050.5 0.5 L 1050.5 1315.5 M 1060.5 0.5 L 1060.5 1315.5 M 1071.5 0.5 L 1071.5 1315.5 M 1081.5 0.5 L 1081.5 1315.5 M 1102.5 0.5 L 1102.5 1315.5 M 1112.5 0.5 L 1112.5 1315.5 M 1122.5 0.5 L 1122.5 1315.5 M 1133.5 0.5 L 1133.5 1315.5 M 1153.5 0.5 L 1153.5 1315.5 M 1164.5 0.5 L 1164.5 1315.5 M 1174.5 0.5 L 1174.5 1315.5 M 1184.5 0.5 L 1184.5 1315.5 M 1205.5 0.5 L 1205.5 1315.5 M 1215.5 0.5 L 1215.5 1315.5 M 1226.5 0.5 L 1226.5 1315.5 M 1236.5 0.5 L 1236.5 1315.5 M 1257.5 0.5 L 1257.5 1315.5 M 1267.5 0.5 L 1267.5 1315.5 M 1277.5 0.5 L 1277.5 1315.5 M 1288.5 0.5 L 1288.5 1315.5 M 1308.5 0.5 L 1308.5 1315.5 M 1319.5 0.5 L 1319.5 1315.5 M 1329.5 0.5 L 1329.5 1315.5 M 1339.5 0.5 L 1339.5 1315.5 M 1360.5 0.5 L 1360.5 1315.5 M 1370.5 0.5 L 1370.5 1315.5 M 1381.5 0.5 L 1381.5 1315.5 M 1391.5 0.5 L 1391.5 1315.5 M 1412.5 0.5 L 1412.5 1315.5 M 1422.5 0.5 L 1422.5 1315.5 M 1432.5 0.5 L 1432.5 1315.5 M 1443.5 0.5 L 1443.5 1315.5 M 1463.5 0.5 L 1463.5 1315.5 M 1474.5 0.5 L 1474.5 1315.5 M 1484.5 0.5 L 1484.5 1315.5 M 1494.5 0.5 L 1494.5 1315.5 M 1515.5 0.5 L 1515.5 1315.5 M 1526.5 0.5 L 1526.5 1315.5 M 1536.5 0.5 L 1536.5 1315.5 M 1546.5 0.5 L 1546.5 1315.5 M 1567.5 0.5 L 1567.5 1315.5 M 1577.5 0.5 L 1577.5 1315.5 M 1588.5 0.5 L 1588.5 1315.5 M 1598.5 0.5 L 1598.5 1315.5 M 1619.5 0.5 L 1619.5 1315.5 M 1629.5 0.5 L 1629.5 1315.5 M 1639.5 0.5 L 1639.5 1315.5 M 1650.5 0.5 L 1650.5 1315.5 M 1670.5 0.5 L 1670.5 1315.5 M 1681.5 0.5 L 1681.5 1315.5 M 1691.5 0.5 L 1691.5 1315.5 M 1701.5 0.5 L 1701.5 1315.5 M 1722.5 0.5 L 1722.5 1315.5 M 1732.5 0.5 L 1732.5 1315.5 M 1743.5 0.5 L 1743.5 1315.5 M 1753.5 0.5 L 1753.5 1315.5 M 1774.5 0.5 L 1774.5 1315.5 M 1784.5 0.5 L 1784.5 1315.5 M 1794.5 0.5 L 1794.5 1315.5 M 1805.5 0.5 L 1805.5 1315.5 M 1825.5 0.5 L 1825.5 1315.5 M 1836.5 0.5 L 1836.5 1315.5 M 1846.5 0.5 L 1846.5 1315.5 M 1856.5 0.5 L 1856.5 1315.5 M 1877.5 0.5 L 1877.5 1315.5 M 1887.5 0.5 L 1887.5 1315.5 M 1898.5 0.5 L 1898.5 1315.5 M 1908.5 0.5 L 1908.5 1315.5 M 1929.5 0.5 L 1929.5 1315.5 M 1939.5 0.5 L 1939.5 1315.5 M 1949.5 0.5 L 1949.5 1315.5 M 1960.5 0.5 L 1960.5 1315.5 M 1980.5 0.5 L 1980.5 1315.5 M 1991.5 0.5 L 1991.5 1315.5 M 2001.5 0.5 L 2001.5 1315.5 M 2011.5 0.5 L 2011.5 1315.5 M 2032.5 0.5 L 2032.5 1315.5 M 2043.5 0.5 L 2043.5 1315.5 M 2053.5 0.5 L 2053.5 1315.5 M 2063.5 0.5 L 2063.5 1315.5 M 2084.5 0.5 L 2084.5 1315.5 M 2094.5 0.5 L 2094.5 1315.5 M 2105.5 0.5 L 2105.5 1315.5 M 2115.5 0.5 L 2115.5 1315.5 M 2136.5 0.5 L 2136.5 1315.5 M 2146.5 0.5 L 2146.5 1315.5 M 2156.5 0.5 L 2156.5 1315.5 M 2167.5 0.5 L 2167.5 1315.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(192, 192, 192)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="1" d="M 0.5 32.5 L 2172.5 32.5 M 0.5 32.5 L 2172.5 32.5 M 0.5 83.5 L 2172.5 83.5 M 0.5 135.5 L 2172.5 135.5 M 0.5 187.5 L 2172.5 187.5 M 0.5 239.5 L 2172.5 239.5 M 0.5 290.5 L 2172.5 290.5 M 0.5 342.5 L 2172.5 342.5 M 0.5 394.5 L 2172.5 394.5 M 0.5 445.5 L 2172.5 445.5 M 0.5 497.5 L 2172.5 497.5 M 0.5 549.5 L 2172.5 549.5 M 0.5 600.5 L 2172.5 600.5 M 0.5 652.5 L 2172.5 652.5 M 0.5 704.5 L 2172.5 704.5 M 0.5 755.5 L 2172.5 755.5 M 0.5 807.5 L 2172.5 807.5 M 0.5 859.5 L 2172.5 859.5 M 0.5 911.5 L 2172.5 911.5 M 0.5 962.5 L 2172.5 962.5 M 0.5 1014.5 L 2172.5 1014.5 M 0.5 1066.5 L 2172.5 1066.5 M 0.5 1117.5 L 2172.5 1117.5 M 0.5 1169.5 L 2172.5 1169.5 M 0.5 1221.5 L 2172.5 1221.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(192, 192, 192)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="0.235294" d="M 0.5 1.5 L 2172.5 1.5 M 0.5 1.5 L 2172.5 1.5 M 0.5 11.5 L 2172.5 11.5 M 0.5 21.5 L 2172.5 21.5 M 0.5 42.5 L 2172.5 42.5 M 0.5 52.5 L 2172.5 52.5 M 0.5 63.5 L 2172.5 63.5 M 0.5 73.5 L 2172.5 73.5 M 0.5 94.5 L 2172.5 94.5 M 0.5 104.5 L 2172.5 104.5 M 0.5 114.5 L 2172.5 114.5 M 0.5 125.5 L 2172.5 125.5 M 0.5 145.5 L 2172.5 145.5 M 0.5 156.5 L 2172.5 156.5 M 0.5 166.5 L 2172.5 166.5 M 0.5 176.5 L 2172.5 176.5 M 0.5 197.5 L 2172.5 197.5 M 0.5 207.5 L 2172.5 207.5 M 0.5 218.5 L 2172.5 218.5 M 0.5 228.5 L 2172.5 228.5 M 0.5 249.5 L 2172.5 249.5 M 0.5 259.5 L 2172.5 259.5 M 0.5 270.5 L 2172.5 270.5 M 0.5 280.5 L 2172.5 280.5 M 0.5 301.5 L 2172.5 301.5 M 0.5 311.5 L 2172.5 311.5 M 0.5 321.5 L 2172.5 321.5 M 0.5 332.5 L 2172.5 332.5 M 0.5 352.5 L 2172.5 352.5 M 0.5 363.5 L 2172.5 363.5 M 0.5 373.5 L 2172.5 373.5 M 0.5 383.5 L 2172.5 383.5 M 0.5 404.5 L 2172.5 404.5 M 0.5 414.5 L 2172.5 414.5 M 0.5 425.5 L 2172.5 425.5 M 0.5 435.5 L 2172.5 435.5 M 0.5 456.5 L 2172.5 456.5 M 0.5 466.5 L 2172.5 466.5 M 0.5 476.5 L 2172.5 476.5 M 0.5 487.5 L 2172.5 487.5 M 0.5 507.5 L 2172.5 507.5 M 0.5 518.5 L 2172.5 518.5 M 0.5 528.5 L 2172.5 528.5 M 0.5 538.5 L 2172.5 538.5 M 0.5 559.5 L 2172.5 559.5 M 0.5 569.5 L 2172.5 569.5 M 0.5 580.5 L 2172.5 580.5 M 0.5 590.5 L 2172.5 590.5 M 0.5 611.5 L 2172.5 611.5 M 0.5 621.5 L 2172.5 621.5 M 0.5 631.5 L 2172.5 631.5 M 0.5 642.5 L 2172.5 642.5 M 0.5 662.5 L 2172.5 662.5 M 0.5 673.5 L 2172.5 673.5 M 0.5 683.5 L 2172.5 683.5 M 0.5 693.5 L 2172.5 693.5 M 0.5 714.5 L 2172.5 714.5 M 0.5 724.5 L 2172.5 724.5 M 0.5 735.5 L 2172.5 735.5 M 0.5 745.5 L 2172.5 745.5 M 0.5 766.5 L 2172.5 766.5 M 0.5 776.5 L 2172.5 776.5 M 0.5 787.5 L 2172.5 787.5 M 0.5 797.5 L 2172.5 797.5 M 0.5 818.5 L 2172.5 818.5 M 0.5 828.5 L 2172.5 828.5 M 0.5 838.5 L 2172.5 838.5 M 0.5 849.5 L 2172.5 849.5 M 0.5 869.5 L 2172.5 869.5 M 0.5 880.5 L 2172.5 880.5 M 0.5 890.5 L 2172.5 890.5 M 0.5 900.5 L 2172.5 900.5 M 0.5 921.5 L 2172.5 921.5 M 0.5 931.5 L 2172.5 931.5 M 0.5 942.5 L 2172.5 942.5 M 0.5 952.5 L 2172.5 952.5 M 0.5 973.5 L 2172.5 973.5 M 0.5 983.5 L 2172.5 983.5 M 0.5 993.5 L 2172.5 993.5 M 0.5 1004.5 L 2172.5 1004.5 M 0.5 1024.5 L 2172.5 1024.5 M 0.5 1035.5 L 2172.5 1035.5 M 0.5 1045.5 L 2172.5 1045.5 M 0.5 1055.5 L 2172.5 1055.5 M 0.5 1076.5 L 2172.5 1076.5 M 0.5 1086.5 L 2172.5 1086.5 M 0.5 1097.5 L 2172.5 1097.5 M 0.5 1107.5 L 2172.5 1107.5 M 0.5 1128.5 L 2172.5 1128.5 M 0.5 1138.5 L 2172.5 1138.5 M 0.5 1148.5 L 2172.5 1148.5 M 0.5 1159.5 L 2172.5 1159.5 M 0.5 1179.5 L 2172.5 1179.5 M 0.5 1190.5 L 2172.5 1190.5 M 0.5 1200.5 L 2172.5 1200.5 M 0.5 1210.5 L 2172.5 1210.5 M 0.5 1231.5 L 2172.5 1231.5 M 0.5 1241.5 L 2172.5 1241.5 M 0.5 1252.5 L 2172.5 1252.5 M 0.5 1262.5 L 2172.5 1262.5 M 0.5 1283.5 L 2172.5 1283.5 M 0.5 1293.5 L 2172.5 1293.5 M 0.5 1304.5 L 2172.5 1304.5 M 0.5 1314.5 L 2172.5 1314.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-opacity="1" d="M 419.5 2.5 L 419.5 1315.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-opacity="1" d="M 419.5 1.5 L 415.5 5.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-opacity="1" d="M 419.5 1.5 L 423.5 5.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-opacity="1" d="M 0.5 1272.5 L 2170.5 1272.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-opacity="1" d="M 2171.5 1272.5 L 2167.5 1268.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-opacity="1" d="M 2171.5 1272.5 L 2167.5 1276.5" paint-order="fill stroke markers" /><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="46" y="1288">–0.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="46" y="1288">–0.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="46" y="1288">–0.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="98" y="1288">–0.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="98" y="1288">–0.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="98" y="1288">–0.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="150" y="1288">–0.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="150" y="1288">–0.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="150" y="1288">–0.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="201" y="1288">–0.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="201" y="1288">–0.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="201" y="1288">–0.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="253" y="1288">–0.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="253" y="1288">–0.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="253" y="1288">–0.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="305" y="1288">–0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="305" y="1288">–0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="305" y="1288">–0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="356" y="1288">–0.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="356" y="1288">–0.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="356" y="1288">–0.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="463" y="1288">0.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="463" y="1288">0.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="463" y="1288">0.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="515" y="1288">0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="515" y="1288">0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="515" y="1288">0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="566" y="1288">0.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="566" y="1288">0.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="566" y="1288">0.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="618" y="1288">0.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="618" y="1288">0.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="618" y="1288">0.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="670" y="1288">0.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="670" y="1288">0.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="670" y="1288">0.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="721" y="1288">0.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="721" y="1288">0.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="721" y="1288">0.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="773" y="1288">0.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="773" y="1288">0.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="773" y="1288">0.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="825" y="1288">0.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="825" y="1288">0.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="825" y="1288">0.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="876" y="1288">0.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="876" y="1288">0.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="876" y="1288">0.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="934" y="1288">1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="934" y="1288">1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="934" y="1288">1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="980" y="1288">1.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="980" y="1288">1.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="980" y="1288">1.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1032" y="1288">1.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1032" y="1288">1.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1032" y="1288">1.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1083" y="1288">1.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1083" y="1288">1.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1083" y="1288">1.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1135" y="1288">1.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1135" y="1288">1.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1135" y="1288">1.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1187" y="1288">1.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1187" y="1288">1.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1187" y="1288">1.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1238" y="1288">1.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1238" y="1288">1.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1238" y="1288">1.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1290" y="1288">1.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1290" y="1288">1.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1290" y="1288">1.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1342" y="1288">1.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1342" y="1288">1.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1342" y="1288">1.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1393" y="1288">1.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1393" y="1288">1.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1393" y="1288">1.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1451" y="1288">2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1451" y="1288">2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1451" y="1288">2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1497" y="1288">2.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1497" y="1288">2.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1497" y="1288">2.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1549" y="1288">2.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1549" y="1288">2.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1549" y="1288">2.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1600" y="1288">2.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1600" y="1288">2.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1600" y="1288">2.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1652" y="1288">2.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1652" y="1288">2.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1652" y="1288">2.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1704" y="1288">2.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1704" y="1288">2.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1704" y="1288">2.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1755" y="1288">2.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1755" y="1288">2.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1755" y="1288">2.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1807" y="1288">2.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1807" y="1288">2.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1807" y="1288">2.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1859" y="1288">2.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1859" y="1288">2.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1859" y="1288">2.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1910" y="1288">2.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1910" y="1288">2.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1910" y="1288">2.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1968" y="1288">3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1968" y="1288">3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1968" y="1288">3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="2014" y="1288">3.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="2014" y="1288">3.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="2014" y="1288">3.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="2066" y="1288">3.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="2066" y="1288">3.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="2066" y="1288">3.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="2117" y="1288">3.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="2117" y="1288">3.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="2117" y="1288">3.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="1226">0.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="1226">0.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="1226">0.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="1174">0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="1174">0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="1174">0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="1122">0.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="1122">0.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="1122">0.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="1071">0.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="1071">0.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="1071">0.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="1019">0.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="1019">0.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="1019">0.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="967">0.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="967">0.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="967">0.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="916">0.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="916">0.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="916">0.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="864">0.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="864">0.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="864">0.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="812">0.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="812">0.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="812">0.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="405" y="760">1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="405" y="760">1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="405" y="760">1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="709">1.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="709">1.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="709">1.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="657">1.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="657">1.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="657">1.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="605">1.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="605">1.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="605">1.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="554">1.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="554">1.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="554">1.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="502">1.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="502">1.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="502">1.5</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="450">1.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="450">1.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="450">1.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="399">1.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="399">1.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="399">1.7</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="347">1.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="347">1.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="347">1.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="295">1.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="295">1.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="295">1.9</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="405" y="244">2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="405" y="244">2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="405" y="244">2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="192">2.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="192">2.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="192">2.1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="140">2.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="140">2.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="140">2.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="88">2.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="88">2.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="88">2.3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="37">2.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="395" y="37">2.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="395" y="37">2.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="405" y="1288">0</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="405" y="1288">0</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="405" y="1288">0</text><path fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="0.698039" stroke-width="2.5" d="M 419.656 1272.99 L 556.465 367.652" paint-order="fill stroke markers" /><path fill="rgb(0, 0, 0)" fill-opacity="0.698039" fill-rule="evenodd" stroke="none" d="M 559.005 350.843 L 560.668 368.287 L 552.263 367.017 Z" paint-order="stroke fill markers" /><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="501" y="809">AO</text><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="501" y="809">AO</text><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="501" y="809">AO</text><path fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="0.698039" stroke-width="2.5" d="M 419.656 1272.99 L 1725.02 157.043" paint-order="fill stroke markers" /><path fill="rgb(0, 0, 0)" fill-opacity="0.698039" fill-rule="evenodd" stroke="none" d="M 1737.94 145.997 L 1727.78 160.274 L 1722.26 153.813 Z" paint-order="stroke fill markers" /><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1100" y="717">PO</text><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1100" y="717">PO</text><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1100" y="717">PO</text><path fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="0.698039" stroke-width="2.5" d="M 1737.94 145.997 L 575.755 347.932" paint-order="fill stroke markers" /><path fill="rgb(0, 0, 0)" fill-opacity="0.698039" fill-rule="evenodd" stroke="none" d="M 559.005 350.843 L 575.027 343.745 L 576.482 352.12 Z" paint-order="stroke fill markers" /><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1131" y="240">PA</text><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1131" y="240">PA</text><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1131" y="240">PA</text><path fill="rgb(77, 77, 255)" fill-opacity="1" stroke="none" d="M 1742.94 145.997 C 1742.94 148.758 1740.71 150.997 1737.94 150.997 C 1735.18 150.997 1732.94 148.758 1732.94 145.997 C 1732.94 143.235 1735.18 140.997 1737.94 140.997 C 1740.71 140.997 1742.94 143.235 1742.94 145.997 Z" paint-order="stroke fill markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="1" d="M 1742.94 145.997 C 1742.94 148.758 1740.71 150.997 1737.94 150.997 C 1735.18 150.997 1732.94 148.758 1732.94 145.997 C 1732.94 143.235 1735.18 140.997 1737.94 140.997 C 1740.71 140.997 1742.94 143.235 1742.94 145.997 Z" paint-order="fill stroke markers" /><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(77, 77, 255)" fill-opacity="1" stroke="none" text-anchor="start" x="1742" y="136">P</text><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="1742" y="136">P</text><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(77, 77, 255)" fill-opacity="1" stroke="none" text-anchor="start" x="1742" y="136">P</text><path fill="rgb(77, 77, 255)" fill-opacity="1" stroke="none" d="M 564.005 350.843 C 564.005 353.604 561.767 355.843 559.005 355.843 C 556.244 355.843 554.005 353.604 554.005 350.843 C 554.005 348.081 556.244 345.843 559.005 345.843 C 561.767 345.843 564.005 348.081 564.005 350.843 Z" paint-order="stroke fill markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="1" d="M 564.005 350.843 C 564.005 353.604 561.767 355.843 559.005 355.843 C 556.244 355.843 554.005 353.604 554.005 350.843 C 554.005 348.081 556.244 345.843 559.005 345.843 C 561.767 345.843 564.005 348.081 564.005 350.843 Z" paint-order="fill stroke markers" /><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(77, 77, 255)" fill-opacity="1" stroke="none" text-anchor="start" x="563" y="341">A</text><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="none" stroke="rgb(255, 255, 255)" stroke-linejoin="bevel" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" text-anchor="start" x="563" y="341">A</text><text font-family="geogebra-sans-serif, sans-serif" font-size="16px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(77, 77, 255)" fill-opacity="1" stroke="none" text-anchor="start" x="563" y="341">A</text></g></g></svg>
\ No newline at end of file diff --git a/buch/papers/lambertw/Bilder/pursuerDGL2.ggb b/buch/papers/lambertw/Bilder/pursuerDGL2.ggb Binary files differdeleted file mode 100644 index 3c4500b..0000000 --- a/buch/papers/lambertw/Bilder/pursuerDGL2.ggb +++ /dev/null diff --git a/buch/papers/lambertw/Bilder/pursuerDGL2.pdf b/buch/papers/lambertw/Bilder/pursuerDGL2.pdf Binary files differdeleted file mode 100644 index 932d9d9..0000000 --- a/buch/papers/lambertw/Bilder/pursuerDGL2.pdf +++ /dev/null diff --git a/buch/papers/lambertw/Bilder/pursuerDGL2.png b/buch/papers/lambertw/Bilder/pursuerDGL2.png Binary files differdeleted file mode 100644 index f41dffe..0000000 --- a/buch/papers/lambertw/Bilder/pursuerDGL2.png +++ /dev/null diff --git a/buch/papers/lambertw/Bilder/pursuerDGL2.svg b/buch/papers/lambertw/Bilder/pursuerDGL2.svg deleted file mode 100644 index 0c4a11d..0000000 --- a/buch/papers/lambertw/Bilder/pursuerDGL2.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="1342" height="1315" xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><clipPath id="sGLFVUSAQMuz"><path fill="none" stroke="none" d="M 0 0 L 1342 0 L 1342 1315 L 0 1315 L 0 0 Z" /></clipPath></defs><g clip-path="url("#sGLFVUSAQMuz")" transform="scale(1)"><g><rect fill="rgb(255, 255, 255)" fill-opacity="1" stroke="none" x="0" y="0" width="1342" height="1315" /><path fill="none" stroke="rgb(192, 192, 192)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="1" d="M 26.5 0.5 L 26.5 1315.5 M 26.5 0.5 L 26.5 1315.5 M 178.5 0.5 L 178.5 1315.5 M 254.5 0.5 L 254.5 1315.5 M 330.5 0.5 L 330.5 1315.5 M 406.5 0.5 L 406.5 1315.5 M 482.5 0.5 L 482.5 1315.5 M 558.5 0.5 L 558.5 1315.5 M 634.5 0.5 L 634.5 1315.5 M 710.5 0.5 L 710.5 1315.5 M 786.5 0.5 L 786.5 1315.5 M 862.5 0.5 L 862.5 1315.5 M 938.5 0.5 L 938.5 1315.5 M 1014.5 0.5 L 1014.5 1315.5 M 1090.5 0.5 L 1090.5 1315.5 M 1166.5 0.5 L 1166.5 1315.5 M 1242.5 0.5 L 1242.5 1315.5 M 1318.5 0.5 L 1318.5 1315.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(192, 192, 192)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="0.235294" d="M 11.5 0.5 L 11.5 1315.5 M 41.5 0.5 L 41.5 1315.5 M 56.5 0.5 L 56.5 1315.5 M 72.5 0.5 L 72.5 1315.5 M 87.5 0.5 L 87.5 1315.5 M 117.5 0.5 L 117.5 1315.5 M 132.5 0.5 L 132.5 1315.5 M 148.5 0.5 L 148.5 1315.5 M 163.5 0.5 L 163.5 1315.5 M 193.5 0.5 L 193.5 1315.5 M 208.5 0.5 L 208.5 1315.5 M 223.5 0.5 L 223.5 1315.5 M 239.5 0.5 L 239.5 1315.5 M 269.5 0.5 L 269.5 1315.5 M 284.5 0.5 L 284.5 1315.5 M 299.5 0.5 L 299.5 1315.5 M 315.5 0.5 L 315.5 1315.5 M 345.5 0.5 L 345.5 1315.5 M 360.5 0.5 L 360.5 1315.5 M 375.5 0.5 L 375.5 1315.5 M 391.5 0.5 L 391.5 1315.5 M 421.5 0.5 L 421.5 1315.5 M 436.5 0.5 L 436.5 1315.5 M 451.5 0.5 L 451.5 1315.5 M 467.5 0.5 L 467.5 1315.5 M 497.5 0.5 L 497.5 1315.5 M 512.5 0.5 L 512.5 1315.5 M 527.5 0.5 L 527.5 1315.5 M 543.5 0.5 L 543.5 1315.5 M 573.5 0.5 L 573.5 1315.5 M 588.5 0.5 L 588.5 1315.5 M 603.5 0.5 L 603.5 1315.5 M 619.5 0.5 L 619.5 1315.5 M 649.5 0.5 L 649.5 1315.5 M 664.5 0.5 L 664.5 1315.5 M 679.5 0.5 L 679.5 1315.5 M 695.5 0.5 L 695.5 1315.5 M 725.5 0.5 L 725.5 1315.5 M 740.5 0.5 L 740.5 1315.5 M 755.5 0.5 L 755.5 1315.5 M 771.5 0.5 L 771.5 1315.5 M 801.5 0.5 L 801.5 1315.5 M 816.5 0.5 L 816.5 1315.5 M 831.5 0.5 L 831.5 1315.5 M 846.5 0.5 L 846.5 1315.5 M 877.5 0.5 L 877.5 1315.5 M 892.5 0.5 L 892.5 1315.5 M 907.5 0.5 L 907.5 1315.5 M 922.5 0.5 L 922.5 1315.5 M 953.5 0.5 L 953.5 1315.5 M 968.5 0.5 L 968.5 1315.5 M 983.5 0.5 L 983.5 1315.5 M 998.5 0.5 L 998.5 1315.5 M 1029.5 0.5 L 1029.5 1315.5 M 1044.5 0.5 L 1044.5 1315.5 M 1059.5 0.5 L 1059.5 1315.5 M 1074.5 0.5 L 1074.5 1315.5 M 1105.5 0.5 L 1105.5 1315.5 M 1120.5 0.5 L 1120.5 1315.5 M 1135.5 0.5 L 1135.5 1315.5 M 1150.5 0.5 L 1150.5 1315.5 M 1181.5 0.5 L 1181.5 1315.5 M 1196.5 0.5 L 1196.5 1315.5 M 1211.5 0.5 L 1211.5 1315.5 M 1226.5 0.5 L 1226.5 1315.5 M 1257.5 0.5 L 1257.5 1315.5 M 1272.5 0.5 L 1272.5 1315.5 M 1287.5 0.5 L 1287.5 1315.5 M 1302.5 0.5 L 1302.5 1315.5 M 1333.5 0.5 L 1333.5 1315.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(192, 192, 192)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="1" d="M 0.5 35.5 L 1342.5 35.5 M 0.5 35.5 L 1342.5 35.5 M 0.5 111.5 L 1342.5 111.5 M 0.5 187.5 L 1342.5 187.5 M 0.5 263.5 L 1342.5 263.5 M 0.5 338.5 L 1342.5 338.5 M 0.5 414.5 L 1342.5 414.5 M 0.5 490.5 L 1342.5 490.5 M 0.5 566.5 L 1342.5 566.5 M 0.5 642.5 L 1342.5 642.5 M 0.5 718.5 L 1342.5 718.5 M 0.5 794.5 L 1342.5 794.5 M 0.5 870.5 L 1342.5 870.5 M 0.5 946.5 L 1342.5 946.5 M 0.5 1022.5 L 1342.5 1022.5 M 0.5 1098.5 L 1342.5 1098.5 M 0.5 1250.5 L 1342.5 1250.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(192, 192, 192)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="0.235294" d="M 0.5 4.5 L 1342.5 4.5 M 0.5 4.5 L 1342.5 4.5 M 0.5 19.5 L 1342.5 19.5 M 0.5 50.5 L 1342.5 50.5 M 0.5 65.5 L 1342.5 65.5 M 0.5 80.5 L 1342.5 80.5 M 0.5 95.5 L 1342.5 95.5 M 0.5 126.5 L 1342.5 126.5 M 0.5 141.5 L 1342.5 141.5 M 0.5 156.5 L 1342.5 156.5 M 0.5 171.5 L 1342.5 171.5 M 0.5 202.5 L 1342.5 202.5 M 0.5 217.5 L 1342.5 217.5 M 0.5 232.5 L 1342.5 232.5 M 0.5 247.5 L 1342.5 247.5 M 0.5 278.5 L 1342.5 278.5 M 0.5 293.5 L 1342.5 293.5 M 0.5 308.5 L 1342.5 308.5 M 0.5 323.5 L 1342.5 323.5 M 0.5 354.5 L 1342.5 354.5 M 0.5 369.5 L 1342.5 369.5 M 0.5 384.5 L 1342.5 384.5 M 0.5 399.5 L 1342.5 399.5 M 0.5 430.5 L 1342.5 430.5 M 0.5 445.5 L 1342.5 445.5 M 0.5 460.5 L 1342.5 460.5 M 0.5 475.5 L 1342.5 475.5 M 0.5 506.5 L 1342.5 506.5 M 0.5 521.5 L 1342.5 521.5 M 0.5 536.5 L 1342.5 536.5 M 0.5 551.5 L 1342.5 551.5 M 0.5 582.5 L 1342.5 582.5 M 0.5 597.5 L 1342.5 597.5 M 0.5 612.5 L 1342.5 612.5 M 0.5 627.5 L 1342.5 627.5 M 0.5 658.5 L 1342.5 658.5 M 0.5 673.5 L 1342.5 673.5 M 0.5 688.5 L 1342.5 688.5 M 0.5 703.5 L 1342.5 703.5 M 0.5 734.5 L 1342.5 734.5 M 0.5 749.5 L 1342.5 749.5 M 0.5 764.5 L 1342.5 764.5 M 0.5 779.5 L 1342.5 779.5 M 0.5 810.5 L 1342.5 810.5 M 0.5 825.5 L 1342.5 825.5 M 0.5 840.5 L 1342.5 840.5 M 0.5 855.5 L 1342.5 855.5 M 0.5 886.5 L 1342.5 886.5 M 0.5 901.5 L 1342.5 901.5 M 0.5 916.5 L 1342.5 916.5 M 0.5 931.5 L 1342.5 931.5 M 0.5 962.5 L 1342.5 962.5 M 0.5 977.5 L 1342.5 977.5 M 0.5 992.5 L 1342.5 992.5 M 0.5 1007.5 L 1342.5 1007.5 M 0.5 1037.5 L 1342.5 1037.5 M 0.5 1053.5 L 1342.5 1053.5 M 0.5 1068.5 L 1342.5 1068.5 M 0.5 1083.5 L 1342.5 1083.5 M 0.5 1113.5 L 1342.5 1113.5 M 0.5 1129.5 L 1342.5 1129.5 M 0.5 1144.5 L 1342.5 1144.5 M 0.5 1159.5 L 1342.5 1159.5 M 0.5 1189.5 L 1342.5 1189.5 M 0.5 1205.5 L 1342.5 1205.5 M 0.5 1220.5 L 1342.5 1220.5 M 0.5 1235.5 L 1342.5 1235.5 M 0.5 1265.5 L 1342.5 1265.5 M 0.5 1281.5 L 1342.5 1281.5 M 0.5 1296.5 L 1342.5 1296.5 M 0.5 1311.5 L 1342.5 1311.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-opacity="1" d="M 102.5 2.5 L 102.5 1315.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-opacity="1" d="M 102.5 1.5 L 98.5 5.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-opacity="1" d="M 102.5 1.5 L 106.5 5.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-opacity="1" d="M 0.5 1174.5 L 1340.5 1174.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-opacity="1" d="M 1341.5 1174.5 L 1337.5 1170.5" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-opacity="1" d="M 1341.5 1174.5 L 1337.5 1178.5" paint-order="fill stroke markers" /><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="15" y="1190">–0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="15" y="1190">–0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="170" y="1190">0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="170" y="1190">0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="246" y="1190">0.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="246" y="1190">0.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="322" y="1190">0.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="322" y="1190">0.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="398" y="1190">0.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="398" y="1190">0.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="480" y="1190">1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="480" y="1190">1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="550" y="1190">1.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="550" y="1190">1.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="626" y="1190">1.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="626" y="1190">1.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="702" y="1190">1.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="702" y="1190">1.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="778" y="1190">1.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="778" y="1190">1.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="860" y="1190">2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="860" y="1190">2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="930" y="1190">2.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="930" y="1190">2.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1006" y="1190">2.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1006" y="1190">2.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1082" y="1190">2.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1082" y="1190">2.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1158" y="1190">2.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1158" y="1190">2.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1240" y="1190">3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1240" y="1190">3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1310" y="1190">3.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="1310" y="1190">3.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="72" y="1255">–0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="72" y="1255">–0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="1103">0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="1103">0.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="1027">0.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="1027">0.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="951">0.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="951">0.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="875">0.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="875">0.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="88" y="799">1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="88" y="799">1</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="723">1.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="723">1.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="647">1.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="647">1.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="571">1.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="571">1.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="495">1.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="495">1.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="88" y="419">2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="88" y="419">2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="343">2.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="343">2.2</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="268">2.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="268">2.4</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="192">2.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="192">2.6</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="116">2.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="78" y="116">2.8</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="88" y="40">3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="88" y="40">3</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="88" y="1190">0</text><text font-family="geogebra-sans-serif, sans-serif" font-size="12px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="88" y="1190">0</text><path fill="none" stroke="rgb(0, 0, 0)" stroke-dasharray="11,8" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="1" stroke-width="3" d="M 431.452 495.335 L 1190.04 302.198" paint-order="fill stroke markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="1" stroke-width="5" d="M 102.42 1174.74 L 418.375 522.335" paint-order="fill stroke markers" /><path fill="rgb(0, 0, 0)" fill-opacity="1" fill-rule="evenodd" stroke="none" d="M 431.452 495.335 L 425.126 525.604 L 411.625 519.066 Z" paint-order="stroke fill markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="1" stroke-width="5" d="M 102.42 1174.74 L 1166.64 320.971" paint-order="fill stroke markers" /><path fill="rgb(0, 0, 0)" fill-opacity="1" fill-rule="evenodd" stroke="none" d="M 1190.04 302.198 L 1171.33 326.821 L 1161.94 315.121 Z" paint-order="stroke fill markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="1" stroke-width="6.5" d="M 431.452 495.335 L 640.562 442.095" paint-order="fill stroke markers" /><path fill="rgb(0, 0, 0)" fill-opacity="1" fill-rule="evenodd" stroke="none" d="M 678.357 432.473 L 642.968 451.544 L 638.157 432.647 Z" paint-order="stroke fill markers" /><path fill="rgb(77, 77, 255)" fill-opacity="1" stroke="none" d="M 1197.04 302.198 C 1197.04 306.064 1193.9 309.198 1190.04 309.198 C 1186.17 309.198 1183.04 306.064 1183.04 302.198 C 1183.04 298.332 1186.17 295.198 1190.04 295.198 C 1193.9 295.198 1197.04 298.332 1197.04 302.198 Z" paint-order="stroke fill markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="1" d="M 1197.04 302.198 C 1197.04 306.064 1193.9 309.198 1190.04 309.198 C 1186.17 309.198 1183.04 306.064 1183.04 302.198 C 1183.04 298.332 1186.17 295.198 1190.04 295.198 C 1193.9 295.198 1197.04 298.332 1197.04 302.198 Z" paint-order="fill stroke markers" /><path fill="rgb(77, 77, 255)" fill-opacity="1" stroke="none" d="M 438.452 495.335 C 438.452 499.201 435.318 502.335 431.452 502.335 C 427.586 502.335 424.452 499.201 424.452 495.335 C 424.452 491.469 427.586 488.335 431.452 488.335 C 435.318 488.335 438.452 491.469 438.452 495.335 Z" paint-order="stroke fill markers" /><path fill="none" stroke="rgb(0, 0, 0)" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" stroke-opacity="1" d="M 438.452 495.335 C 438.452 499.201 435.318 502.335 431.452 502.335 C 427.586 502.335 424.452 499.201 424.452 495.335 C 424.452 491.469 427.586 488.335 431.452 488.335 C 435.318 488.335 438.452 491.469 438.452 495.335 Z" paint-order="fill stroke markers" /><g fill="rgb(0, 0, 0)" transform="scale(67) translate(3.43284 11.2624)"><path fill="" stroke="none" d="M 0.089 -0.23 Q 0.059 -0.235 0.056 -0.25 Q 0.056 -0.27 0.089 -0.27 L 0.858 -0.27 Q 0.79 -0.32 0.756 -0.399 L 0.755 -0.4 Q 0.75 -0.413 0.75 -0.416 Q 0.75 -0.428 0.765 -0.428 Q 0.776 -0.428 0.782 -0.414 Q 0.826 -0.315 0.918 -0.268 L 0.919 -0.268 L 0.92 -0.267 L 0.921 -0.267 Q 0.928 -0.263 0.935 -0.26 Q 0.939 -0.26 0.942 -0.25 Q 0.942 -0.243 0.933 -0.238 Q 0.931 -0.238 0.928 -0.236 Q 0.829 -0.189 0.783 -0.086 L 0.783 -0.086 Q 0.782 -0.085 0.781 -0.082 Q 0.776 -0.072 0.765 -0.072 Q 0.75 -0.072 0.75 -0.084 Q 0.75 -0.099 0.779 -0.144 Q 0.812 -0.196 0.858 -0.23 L 0.858 -0.23 Z" paint-order="stroke fill markers" /><g transform="translate(-3.43284 -11.2624)"><g transform="translate(3.53006 11.8792)"><path fill="" stroke="none" d="M 0.628 -0.569 L 0.268 0.004 Q 0.252 0.021 0.24 0.022 Q 0.226 0.022 0.222 0.01 Q 0.221 0.006 0.22 -0.001 L 0.141 -0.618 Q 0.138 -0.641 0.127 -0.646 Q 0.116 -0.652 0.081 -0.652 Q 0.058 -0.652 0.056 -0.664 Q 0.056 -0.683 0.075 -0.683 L 0.128 -0.681 L 0.129 -0.681 L 0.182 -0.68 L 0.184 -0.68 L 0.307 -0.683 L 0.308 -0.683 Q 0.322 -0.683 0.322 -0.672 Q 0.314 -0.653 0.297 -0.652 Q 0.233 -0.652 0.228 -0.622 L 0.296 -0.093 L 0.603 -0.581 L 0.616 -0.609 Q 0.618 -0.615 0.618 -0.619 Q 0.618 -0.649 0.572 -0.652 Q 0.556 -0.652 0.556 -0.664 Q 0.556 -0.683 0.575 -0.683 L 0.673 -0.68 L 0.674 -0.68 L 0.754 -0.683 L 0.756 -0.683 Q 0.769 -0.683 0.769 -0.671 Q 0.769 -0.653 0.756 -0.652 Q 0.704 -0.649 0.674 -0.624 Q 0.663 -0.615 0.652 -0.602 Q 0.64 -0.588 0.628 -0.569 Z" paint-order="stroke fill markers" /></g></g></g><g fill="rgb(0, 0, 0)" transform="scale(67) translate(11.0896 10.5758)"><path fill="" stroke="none" d="M 0.089 -0.23 Q 0.059 -0.235 0.056 -0.25 Q 0.056 -0.27 0.089 -0.27 L 0.858 -0.27 Q 0.79 -0.32 0.756 -0.399 L 0.755 -0.4 Q 0.75 -0.413 0.75 -0.416 Q 0.75 -0.428 0.765 -0.428 Q 0.776 -0.428 0.782 -0.414 Q 0.826 -0.315 0.918 -0.268 L 0.919 -0.268 L 0.92 -0.267 L 0.921 -0.267 Q 0.928 -0.263 0.935 -0.26 Q 0.939 -0.26 0.942 -0.25 Q 0.942 -0.243 0.933 -0.238 Q 0.931 -0.238 0.928 -0.236 Q 0.829 -0.189 0.783 -0.086 L 0.783 -0.086 Q 0.782 -0.085 0.781 -0.082 Q 0.776 -0.072 0.765 -0.072 Q 0.75 -0.072 0.75 -0.084 Q 0.75 -0.099 0.779 -0.144 Q 0.812 -0.196 0.858 -0.23 L 0.858 -0.23 Z" paint-order="stroke fill markers" /><g transform="translate(-11.0896 -10.5758)"><g transform="translate(11.2125 11.1926)"><path fill="" stroke="none" d="M 0.72 -0.659 L 0.161 -0.034 L 0.332 -0.034 Q 0.467 -0.034 0.527 -0.104 Q 0.563 -0.147 0.594 -0.242 Q 0.602 -0.265 0.611 -0.267 Q 0.624 -0.267 0.624 -0.256 L 0.62 -0.241 L 0.549 -0.02 Q 0.544 -0.003 0.536 -0.001 L 0.536 -0.001 L 0.535 -0.001 Q 0.531 0 0.518 0 L 0.083 0 Q 0.06 0 0.058 -0.009 L 0.062 -0.027 L 0.062 -0.027 L 0.621 -0.652 L 0.458 -0.652 Q 0.322 -0.652 0.264 -0.576 L 0.263 -0.575 L 0.263 -0.575 L 0.263 -0.575 L 0.262 -0.574 Q 0.234 -0.537 0.212 -0.468 Q 0.206 -0.459 0.199 -0.458 Q 0.187 -0.458 0.187 -0.469 Q 0.187 -0.476 0.19 -0.483 L 0.245 -0.663 Q 0.25 -0.68 0.258 -0.682 Q 0.262 -0.683 0.276 -0.683 L 0.698 -0.683 Q 0.721 -0.683 0.723 -0.674 Q 0.723 -0.671 0.72 -0.659 Z" paint-order="stroke fill markers" /></g></g></g><g fill="rgb(0, 0, 0)" transform="scale(67) translate(7.73134 5.91911)"><path fill="" stroke="none" d="M 0.089 -0.23 Q 0.059 -0.235 0.056 -0.25 Q 0.056 -0.27 0.089 -0.27 L 0.858 -0.27 Q 0.79 -0.32 0.756 -0.399 L 0.755 -0.4 Q 0.75 -0.413 0.75 -0.416 Q 0.75 -0.428 0.765 -0.428 Q 0.776 -0.428 0.782 -0.414 Q 0.826 -0.315 0.918 -0.268 L 0.919 -0.268 L 0.92 -0.267 L 0.921 -0.267 Q 0.928 -0.263 0.935 -0.26 Q 0.939 -0.26 0.942 -0.25 Q 0.942 -0.243 0.933 -0.238 Q 0.931 -0.238 0.928 -0.236 Q 0.829 -0.189 0.783 -0.086 L 0.783 -0.086 Q 0.782 -0.085 0.781 -0.082 Q 0.776 -0.072 0.765 -0.072 Q 0.75 -0.072 0.75 -0.084 Q 0.75 -0.099 0.779 -0.144 Q 0.812 -0.196 0.858 -0.23 L 0.858 -0.23 Z" paint-order="stroke fill markers" /><g transform="translate(-7.73134 -5.91911)"><g transform="translate(8.09245 6.52041)"><path fill="" stroke="none" d="M 0.192 -0.616 Q 0.192 -0.585 0.164 -0.57 Q 0.152 -0.563 0.138 -0.563 Q 0.105 -0.563 0.09 -0.594 Q 0.085 -0.605 0.085 -0.616 Q 0.085 -0.647 0.113 -0.662 Q 0.125 -0.669 0.139 -0.669 Q 0.172 -0.669 0.187 -0.638 Q 0.192 -0.627 0.192 -0.616 Z" paint-order="stroke fill markers" /></g><g transform="translate(7.82856 6.77319)"><path fill="rgb(0, 0, 0)" stroke="none" d="M 0.628 -0.569 L 0.268 0.004 Q 0.252 0.021 0.24 0.022 Q 0.226 0.022 0.222 0.01 Q 0.221 0.006 0.22 -0.001 L 0.141 -0.618 Q 0.138 -0.641 0.127 -0.646 Q 0.116 -0.652 0.081 -0.652 Q 0.058 -0.652 0.056 -0.664 Q 0.056 -0.683 0.075 -0.683 L 0.128 -0.681 L 0.129 -0.681 L 0.182 -0.68 L 0.184 -0.68 L 0.307 -0.683 L 0.308 -0.683 Q 0.322 -0.683 0.322 -0.672 Q 0.314 -0.653 0.297 -0.652 Q 0.233 -0.652 0.228 -0.622 L 0.296 -0.093 L 0.603 -0.581 L 0.616 -0.609 Q 0.618 -0.615 0.618 -0.619 Q 0.618 -0.649 0.572 -0.652 Q 0.556 -0.652 0.556 -0.664 Q 0.556 -0.683 0.575 -0.683 L 0.673 -0.68 L 0.674 -0.68 L 0.754 -0.683 L 0.756 -0.683 Q 0.769 -0.683 0.769 -0.671 Q 0.769 -0.653 0.756 -0.652 Q 0.704 -0.649 0.674 -0.624 Q 0.663 -0.615 0.652 -0.602 Q 0.64 -0.588 0.628 -0.569 Z" paint-order="stroke fill markers" /></g></g></g><text font-family="geogebra-sans-serif, sans-serif" font-size="22px" font-style="normal" font-weight="normal" text-decoration="normal" dominant-baseline="alphabetic" fill="rgb(0, 0, 0)" fill-opacity="1" stroke="none" text-anchor="start" x="783" y="429">Visierlinie</text><g transform="scale(35)"><g transform="translate(11.3429 14.3119)"><path fill="rgb(77, 77, 255)" stroke="none" d="M 0.628 -0.569 L 0.268 0.004 Q 0.252 0.021 0.24 0.022 Q 0.226 0.022 0.222 0.01 Q 0.221 0.006 0.22 -0.001 L 0.141 -0.618 Q 0.138 -0.641 0.127 -0.646 Q 0.116 -0.652 0.081 -0.652 Q 0.058 -0.652 0.056 -0.664 Q 0.056 -0.683 0.075 -0.683 L 0.128 -0.681 L 0.129 -0.681 L 0.182 -0.68 L 0.184 -0.68 L 0.307 -0.683 L 0.308 -0.683 Q 0.322 -0.683 0.322 -0.672 Q 0.314 -0.653 0.297 -0.652 Q 0.233 -0.652 0.228 -0.622 L 0.296 -0.093 L 0.603 -0.581 L 0.616 -0.609 Q 0.618 -0.615 0.618 -0.619 Q 0.618 -0.649 0.572 -0.652 Q 0.556 -0.652 0.556 -0.664 Q 0.556 -0.683 0.575 -0.683 L 0.673 -0.68 L 0.674 -0.68 L 0.754 -0.683 L 0.756 -0.683 Q 0.769 -0.683 0.769 -0.671 Q 0.769 -0.653 0.756 -0.652 Q 0.704 -0.649 0.674 -0.624 Q 0.663 -0.615 0.652 -0.602 Q 0.64 -0.588 0.628 -0.569 Z" paint-order="stroke fill markers" /></g></g><g transform="scale(35)"><g transform="translate(34.2571 8.96905)"><path fill="rgb(77, 77, 255)" stroke="none" d="M 0.72 -0.659 L 0.161 -0.034 L 0.332 -0.034 Q 0.467 -0.034 0.527 -0.104 Q 0.563 -0.147 0.594 -0.242 Q 0.602 -0.265 0.611 -0.267 Q 0.624 -0.267 0.624 -0.256 L 0.62 -0.241 L 0.549 -0.02 Q 0.544 -0.003 0.536 -0.001 L 0.536 -0.001 L 0.535 -0.001 Q 0.531 0 0.518 0 L 0.083 0 Q 0.06 0 0.058 -0.009 L 0.062 -0.027 L 0.062 -0.027 L 0.621 -0.652 L 0.458 -0.652 Q 0.322 -0.652 0.264 -0.576 L 0.263 -0.575 L 0.263 -0.575 L 0.263 -0.575 L 0.262 -0.574 Q 0.234 -0.537 0.212 -0.468 Q 0.206 -0.459 0.199 -0.458 Q 0.187 -0.458 0.187 -0.469 Q 0.187 -0.476 0.19 -0.483 L 0.245 -0.663 Q 0.25 -0.68 0.258 -0.682 Q 0.262 -0.683 0.276 -0.683 L 0.698 -0.683 Q 0.721 -0.683 0.723 -0.674 Q 0.723 -0.671 0.72 -0.659 Z" paint-order="stroke fill markers" /></g></g></g></g></svg>
\ No newline at end of file diff --git a/buch/papers/lambertw/teil0.tex b/buch/papers/lambertw/teil0.tex index 6632eca..baee9ea 100644 --- a/buch/papers/lambertw/teil0.tex +++ b/buch/papers/lambertw/teil0.tex @@ -78,17 +78,12 @@ Um den Richtungsvektor zu konstruieren kann der Einheitsvektor parallel zu $z-v$ \begin{equation} \dot{v} = - |\dot{v}|\cdot e_{z-v} -\end{equation} -führt. Dies kann noch ausgeschrieben werden zu -\begin{equation} - \dot{v} + |\dot{v}|\cdot (z-v)^\circ = |\dot{v}|\cdot\frac{z-v}{|z-v|} - \text{.} \label{lambertw:richtungsvektor} \end{equation} -% +führt. Aus dem Verfolgungsproblem ist auch ersichtlich, dass die Punkte $V$ und $Z$ nicht am gleichen Ort starten und so eine Division durch Null ausgeschlossen ist. Wenn die Punkte $V$ und $Z$ trotzdem am gleichen Ort starten, ist die Lösung trivial. @@ -97,6 +92,7 @@ Nun wird die Gleichung mit $\dot{v}$ skalar multipliziert, um das Gleichungssyst \frac{z-v}{|z-v|}\cdot|\dot{v}|\cdot\dot{v} &= |\dot{v}|^2 + \text{,} \end{align} was algebraisch zu \begin{align} diff --git a/buch/papers/lambertw/teil1.tex b/buch/papers/lambertw/teil1.tex index e8eca2c..c4b2d05 100644 --- a/buch/papers/lambertw/teil1.tex +++ b/buch/papers/lambertw/teil1.tex @@ -11,7 +11,7 @@ Sehr oft kommt es vor, dass bei Verfolgungsproblemen die Frage auftaucht, ob das Wenn zum Beispiel die Geschwindigkeit des Verfolgers kleiner ist als diejenige des Ziels, gibt es Anfangsbedingungen bei denen das Ziel nie erreicht wird. Im Anschluss dieser Frage stellt sich meist die nächste Frage, wie lange es dauert bis das Ziel erreicht wird. Diese beiden Fragen werden in diesem Kapitel behandelt und am Beispiel aus \ref{lambertw:section:teil4} betrachtet. -Das Beispiel wird bei dieser Betrachtung noch etwas erweitert indem alle Punkte auf der gesamtem $xy$-Ebene als Startwerte zugelassen werden. +Das Beispiel wird bei dieser Betrachtung noch etwas erweitert, indem alle Punkte auf der gesamtem $xy$-Ebene als Startwerte zugelassen werden. Nun gilt es zu definieren, wann das Ziel erreicht wird. Da sowohl Ziel und Verfolger als Punkte modelliert wurden, gilt das Ziel als erreicht, wenn die Koordinaten des Verfolgers mit denen des Ziels bei einem diskreten Zeitpunkt $t_1$ übereinstimmen. @@ -38,28 +38,28 @@ Wenn der Verfolger im ersten Quadranten startet, dann kann $v(t)$ mit den Gleich \begin{align} x\left(t\right) &= - x_0\cdot\sqrt{\frac{1}{\chi}W\left(\chi\cdot \exp\left( \chi-\frac{4t}{r_0-y_0}\right) \right)} \\ + x_0\cdot\sqrt{\frac{1}{\chi}W\left(\chi\cdot \exp\left( \chi-\frac{4t}{r_0-y_0}\right) \right)} \text{,}\\ y(t) &= - \frac{1}{4}\left(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(y_0-r_0\right)\operatorname{ln}\left(\left(\frac{x(t)}{x_0}\right)^2\right)-r_0+3y_0\right)\\ + \frac{1}{4}\biggl(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(y_0-r_0\right)\operatorname{ln}\biggl(\left(\frac{x(t)}{x_0}\right)^2\biggr)-r_0+3y_0\biggr) \text{,}\\ \chi &= - \frac{r_0+y_0}{r_0-y_0}, \quad + \frac{r_0+y_0}{r_0-y_0}\text{,} \quad \eta = - \left(\frac{x}{x_0}\right)^2,\quad + \left(\frac{x}{x_0}\right)^2 \quad\text{und}\quad r_0 = \sqrt{x_0^2+y_0^2} - \text{.} \end{align} % +sind, +beschrieben werden. Der Verfolger ist durch \begin{equation} v(t) = \left( \begin{array}{c} x(t) \\ y(t) \end{array} \right) - \text{.} \end{equation} % parametrisiert, wobei $y(t)$ viel komplexer ist als $x(t)$. @@ -76,7 +76,8 @@ Daher wird das Problem in zwei einzelne Teilprobleme zerlegt, wodurch die Beding &= y(t) = - \frac{1}{4}\left(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(y_0-r_0\right)\operatorname{ln}\left(\left(\frac{x(t)}{x_0}\right)^2\right)-r_0+3y_0\right)\text{,} + \frac{1}{4}\biggl(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(y_0-r_0\right)\operatorname{ln}\biggl(\left(\frac{x(t)}{x_0}\right)^2\biggr)-r_0+3y_0\biggr) + \text{,} \end{align} % welche beide gleichzeitig erfüllt sein müssen, damit das Ziel erreicht wurde. @@ -110,7 +111,7 @@ kann die Bedingung weiter vereinfacht werden zu Da $\chi\neq0$ und die Exponentialfunktion nie null sein kann, ist diese Bedingung unmöglich zu erfüllen. Beim Grenzwert für $t\rightarrow\infty$ geht die Exponentialfunktion gegen null. Dies nützt nicht viel, da unendlich viel Zeit vergehen müsste, damit ein Einholen möglich wäre. -Somit kann nach den gestellten Bedingungen das Ziel nie erreicht werden. +Somit kann unter den gestellten Bedingungen das Ziel nie erreicht werden. % % % @@ -155,7 +156,7 @@ Dies kann veranschaulicht werden anhand 1\text{.} \end{equation} % -Da der $y$-Anteil der Geschwindigkeit des Ziels grösser-gleich der des Verfolgers ist, können die $y$-Koordinaten nie übereinstimmen. +Da der $y$-Anteil der Geschwindigkeit des Ziels mindestens so gross wie die des Verfolgers ist, können die $y$-Koordinaten nie übereinstimmen. % \subsection{Anfangsbedingung auf positiven $y$-Achse} Wenn der Verfolger auf der positiven $y$-Achse startet, befindet er sich direkt auf der Fluchtgeraden des Ziels. @@ -194,8 +195,8 @@ Somit wird das Ziel immer erreicht bei $t_1$, wenn der Verfolger auf der positiv \subsection{Fazit} Durch die Symmetrie der Fluchtkurve an der $y$-Achse führen die Anfangsbedingungen im ersten und zweiten Quadranten zu den gleichen Ergebnissen. Nun ist klar, dass lediglich Anfangspunkte auf der positiven $y$-Achse oder direkt auf dem Ziel dazu führen, dass der Verfolger das Ziel bei $t_1$ einholt. Bei allen anderen Anfangspunkten wird der Verfolger das Ziel nie erreichen. -Dieses Resultat ist aber eher akademischer Natur, weil der Verfolger und das Ziel als Punkt betrachtet wurden. -Wobei aber in Realität nicht von Punkten sondern von Objekten mit einer räumlichen Ausdehnung gesprochen werden kann. + +Dieses Resultat ist aber eher akademischer Natur, weil der Verfolger und das Ziel als Punkt betrachtet wurden, während in der Realität nicht von Punkten sondern von Objekten mit einer räumlichen Ausdehnung gesprochen werden kann. Somit wird in einer nächsten Betrachtung untersucht, ob der Verfolger dem Ziel näher kommt als ein definierter Trefferradius. Falls dies stattfinden sollte, wird dies als Treffer interpretiert. Mathematisch kann dies mit @@ -205,7 +206,7 @@ Mathematisch kann dies mit \end{equation} % beschrieben werden, wobei $a_{\text{min}}$ dem Trefferradius entspricht. -Durch quadrieren verschwindet die Wurzel des Betrages, womit +Durch Quadrieren verschwindet die Wurzel des Betrages, womit % \begin{equation} |v-z|^2<a_{\text{min}}^2 \text{,}\quad a_{\text{min}}\in \mathbb{R}^+ @@ -215,35 +216,36 @@ Durch quadrieren verschwindet die Wurzel des Betrages, womit die neue Bedingung ist. Da sowohl der Betrag als auch $a_{\text{min}}$ grösser null sind, bleibt die Aussage unverändert. % -\subsection{trügerische Intuition}%verleitende/trügerische/verführerisch -In der Grafik \ref{lambertw:grafic:intuition} ist eine Mögliche Verfolgungskurve dargestellt, wobei für die Startbedingung der erste-Quadrant verwendet wurde. +\subsection{Trügerische Intuition}%verleitende/trügerische/verführerisch +In der Grafik \ref{lambertw:grafic:intuition} ist eine mögliche Verfolgungskurve dargestellt, wobei für die Startbedingung der erste-Quadrant verwendet wurde. Als erste Intuition für den Punkt bei dem $|v-z|$ minimal ist bietet sich der tiefste Punkt der Verfolgungskurve an, bei dem der y-Anteil des Richtungsvektors null entspricht. Es kann argumentiert werden, dass weil die Geschwindigkeiten gleich gross sind und $\dot{v}$ sich aus einem $y$- als auch einem $x$-Anteil zusammensetzt und $\dot{z}$ nur ein $y$-Anteil besitzt, der Abstand nur grösser werden kann, wenn $e_y\cdot z>e_y\cdot v$. Aus diesem Argument würde folgen, dass beim tiefsten Punkt der Verfolgungskurve im Beispiel den minimalen Abstand befindet. % \begin{figure} \centering - \includegraphics[scale=0.4]{./papers/lambertw/Bilder/Intuition.pdf} + \includegraphics[scale=0.7]{./papers/lambertw/Bilder/Intuition.pdf} \caption{Intuition} \label{lambertw:grafic:intuition} \end{figure} % - Dieses Argument kann leicht überprüft werden, indem lokal alle relevanten benachbarten Punkte betrachtet und das Vorzeichen der Änderung des Abstandes überprüft wird. Dafür wird ein Ausdruck benötigt, der den Abstand und die benachbarten Punkte beschreibt. -Der Richtungsvektor wird allgemein mit dem Winkel $\alpha \in[ 0, 2\pi)$ + +$\dot{v}$ wird allgemein mit dem Winkel $\alpha \in[ 0, 2\pi)$ beschrieben, um alle unmittelbar benachbarten Punkte prüfen zu können. Die Ortsvektoren der Punkte können wiederum mit \begin{align} v &= - t\cdot\left(\begin{array}{c} \cos (\alpha) \\ \sin (\alpha) \end{array}\right) +\left(\begin{array}{c} x_0 \\ y_0 \end{array}\right) + t\cdot\left(\begin{array}{c} \cos (\alpha) \\ \sin (\alpha) \end{array}\right) +\left(\begin{array}{c} x_0 \\ 0 \end{array}\right) \\ z &= \left(\begin{array}{c} 0 \\ t \end{array}\right) \end{align} -beschrieben werden. Der Verfolger wurde allgemein für jede Richtung $\alpha$ definiert, um alle unmittelbar benachbarten Punkte beschreiben zu können. -Da der Abstand +beschrieben werden. +$x_0$ ist der Abstand bei $t=0$, damit alle möglichen Fälle untersucht werden können. +Da der Abstand allgemein \begin{equation} a = @@ -251,7 +253,7 @@ Da der Abstand \geq 0 \end{equation} -ist, kann durch quadrieren ohne Informationsverlust die Rechnung vereinfacht werden zu +ist, kann durch Quadrieren ohne Informationsverlust die Rechnung vereinfacht werden zu \begin{equation} a^2 = @@ -264,7 +266,7 @@ Der Abstand im Quadrat abgeleitet nach der Zeit ist \begin{equation} \frac{d a^2}{d t} = - 2(t\cdot\cos (\alpha)+x_0)\cdot\cos(\alpha)(\alpha)+2t(\sin(\alpha)-1)^2 + 2(t\cdot\cos (\alpha)+x_0)\cdot\cos(\alpha)+2t(\sin(\alpha)-1)^2 \text{.} \end{equation} Da nur die unmittelbar benachbarten Punkten von Interesse sind, wird die Ableitung für $t=0$ untersucht. Dabei kann die Ableitung in @@ -331,18 +333,12 @@ Durch algebraische Umwandlung kann die Gleichung in die Form \dot{z}\dot{v}=|\dot{v}|^2 \end{equation} gebracht werden. -Da $|\dot{v}|=|\dot{z}|$ folgt +Wenn für den Winkel zwischen den Richtungsvektoren $\alpha$ und die Eigenschaft $|\dot{z}|=|\dot{v}|$ verwendet wird entsteht \begin{equation} \cos(\alpha)=1 - \text{,} -\end{equation} -wobei $\alpha$ der Winkel zwischen den Richtungsvektoren ist. -Mit $|\dot{z}|=|\dot{v}|=1$ entsteht -\begin{equation} - \cos(\alpha)=1 - \text{,} + \text{.} \end{equation} -woraus folgt, dass nur bei $\alpha=0$, wenn $\alpha \in [0,2\pi)$, ein lokales als auch globales Minimum vorhanden sein kann. +Jetzt ist klar, dass nur bei $\alpha=0$, wenn $\alpha \in [0,2\pi)$, ein lokales als auch globales Minimum vorhanden sein kann. $\alpha=0$ bedeutet, dass $\dot{v}=\dot{z}$ sein muss. Da die Richtungsvektoren bei $t\rightarrow\infty$ immer in die gleiche Richtung zeigen ist dort die Bedingung immer erfüllt. Dies entspricht gerade dem einen Rand von $t$, der andere Rand bei $t=0$ muss auch auf lokales bzw. globales Minimum untersucht werden. diff --git a/buch/papers/lambertw/teil4.tex b/buch/papers/lambertw/teil4.tex index 1053dd1..36fb7e6 100644 --- a/buch/papers/lambertw/teil4.tex +++ b/buch/papers/lambertw/teil4.tex @@ -6,11 +6,11 @@ \section{Beispiel einer Verfolgungskurve \label{lambertw:section:teil4}} \rhead{Beispiel einer Verfolgungskurve} -In diesem Abschnitt wird rechnerisch das Beispiel einer Verfolgungskurve mit der Verfolgungsstrategie ``Jagd'' beschreiben. Dafür werden zuerst Bewegungsraum, Anfangspositionen und Bewegungsverhalten definiert, in einem nächsten Schritt soll eine Differentialgleichung dafür aufgestellt und anschliessend gelöst werden. +In diesem Abschnitt wird rechnerisch das Beispiel einer Verfolgungskurve mit der Verfolgungsstrategie ``Jagd'' beschrieben. Dafür werden zuerst Bewegungsraum, Anfangspositionen und Bewegungsverhalten definiert, in einem nächsten Schritt soll eine Differentialgleichung dafür aufgestellt und anschliessend gelöst werden. \subsection{Anfangsbedingungen definieren und einsetzen \label{lambertw:subsection:Anfangsbedingungen}} -Das zu verfolgende Ziel \(Z\) bewegt sich entlang der \(y\)-Achse mit konstanter Geschwindigkeit \(|\dot{z}| = 1\), beginnend beim Ursprung des Kartesischen Koordinatensystems. Der Verfolger \(V\) startet auf einem beliebigen Punkt im ersten Quadranten und bewegt sich auch mit konstanter Geschwindigkeit \(|\dot{v}| = 1\) in Richtung Ziel. Diese Anfangspunkte oder Anfangsbedingungen können wie folgt formuliert werden: +Das zu verfolgende Ziel \(Z\) bewegt sich entlang der \(y\)-Achse mit konstanter Geschwindigkeit \(|\dot{z}| = 1\), beginnend beim Ursprung des kartesischen Koordinatensystems. Der Verfolger \(V\) startet auf einem beliebigen Punkt im ersten Quadranten und bewegt sich auch mit konstanter Geschwindigkeit \(|\dot{v}| = 1\) in Richtung Ziel. Aus diesen Bedingungen ergibt sich den ersten Quadranten als Bewegungsraum für \(V\). Diese Anfangspunkte oder Anfangsbedingungen können wie folgt formuliert werden: \begin{equation} Z = @@ -40,7 +40,7 @@ Diese DGL haben wir bereits in Kapitel \ref{lambertw:subsection:Verfolger} defin \subsection{Differentialgleichung vereinfachen \label{lambertw:subsection:DGLvereinfach}} -Nun haben wir eine Gleichung, es stellt sich aber die Frage, ob es überhaupt eine geschlossene Lösung dafür gibt. Eine Funktion welche die Beziehung \(y(x)\) beschreibt oder sogar \(x(t)\) und \(y(t)\) liefert. Zum jetzigen Zeitpunkt mag es nicht trivial scheinen, aber mit den gewählten Anfangsbedingungen \eqref{lambertw:Anfangsbed} ist es möglich eine geschlossene Lösung für die Gleichung \eqref{lambertw:eqMitAnfangsbed} zu finden. +Nun haben wir eine Gleichung, es stellt sich aber die Frage, ob es überhaupt eine geschlossene Lösung dafür gibt. Eine Funktion welche die Beziehung \(y(x)\) beschreibt oder sogar \(x(t)\) und \(y(t)\) liefert. Zum jetzigen Zeitpunkt mag es nicht trivial scheinen, aber mit den gewählten Anfangsbedingungen \eqref{lambertw:Anfangsbed} ist es möglich, eine geschlossene Lösung für die Gleichung \eqref{lambertw:eqMitAnfangsbed} zu finden. Auf dem Weg dahin muss die definierte DGL zuerst wesentlich vereinfacht werden, sei es mittels algebraischer Umformungen oder mit den Tools aus der Analysis. Da die nächsten Schritte sehr algebralastig sind und sie das Lesen dieses Papers träge machen würden, werden wir uns hier nur auf die wesentlichsten Schritte konzentrieren, welche notwendig sind, um den Lösungsweg nachvollziehen zu können. @@ -90,7 +90,7 @@ Versteckt im Ausdruck \eqref{lambertw:eqGeschwSubstituiert} befindet sich die er \label{lambertw:eqAlgVerinfacht} \end{equation} die faktorisierte Darstellung davon ist. -Da der linke Term gleich Null ist, muss auch der Inhalt des Quadrates gleich Null sein. Es ergibt sich eine weitere Vereinfachung, welche zu der im Vergleich zu \eqref{lambertw:eqOhneSkalarprod} wesentlich einfacheren DGL +Da der linke Term gleich Null ist, muss auch die Basis des Quadrates in \eqref{lambertw:eqAlgVerinfacht} gleich Null sein. Es ergibt sich eine weitere Vereinfachung, welche zu der im Vergleich zu \eqref{lambertw:eqOhneSkalarprod} wesentlich einfacheren DGL \begin{equation} x \dot{y} + (t-y) \dot{x} = 0 @@ -122,7 +122,7 @@ Der Grund dafür ist, dass \label{lambertw:eqQuotZeitAbleit} \end{equation} und somit kann der Quotient dieser zeitlichen Ableitungen in eine Ableitung nach \(x\) umgewandelt werden. -Nach dem die Eigenschaft \eqref{lambertw:eqQuotZeitAbleit} in \eqref{lambertw:eqVorKeineZeitAbleit} eingesetzt wird und vereinfacht wurde, entsteht die neue Gleichung +Nachdem die Eigenschaft \eqref{lambertw:eqQuotZeitAbleit} in \eqref{lambertw:eqVorKeineZeitAbleit} eingesetzt wurde, entsteht beim Vereinfachen die neue Gleichung \begin{equation} x y^{\prime} + t - y = 0. @@ -130,7 +130,7 @@ Nach dem die Eigenschaft \eqref{lambertw:eqQuotZeitAbleit} in \eqref{lambertw:eq \end{equation} \subsubsection{Variable \(t\) eliminieren - \label{lambertw:subsubsection:ZeitAbleit}} + \label{lambertw:subsubsection:VarTelimin}} Hier wäre es natürlich passend, wenn man die Abhängigkeit nach \(t\) komplett wegbringen könnte, aber wie? Wir wissen, dass sich der Verfolger mit Geschwindigkeit 1 bewegt, also legt er in der Zeit \(t\) die Strecke \(1\cdot t = t\) zurück. Längen und Strecken können auch mit der Bogenlänge repräsentiert werden, somit kann Zeit und zurückgelegte Strecke in der Gleichung \begin{equation} @@ -147,7 +147,7 @@ Wir wissen, dass sich der Verfolger mit Geschwindigkeit 1 bewegt, also legt er i \end{equation} verbunden werden. -Nicht gerade auffällig ist die Richtung, in welche hier integriert wird. Wenn der Verfolger sich wie vorgesehen am Anfang im ersten Quadranten befindet, dann muss sich dieser nach links bewegen, was nicht der üblichen Integrationsrichtung entspricht. Um eine Integration wie üblich von links nach rechts ausführen zu können, müssen die Integrationsgenerzen vertauscht werden, was in einem Vorzeichenwechsel resultiert. +Nicht gerade auffällig ist die Richtung, in welche hier integriert wird. Wenn der Verfolger sich wie vorgesehen am Anfang im ersten Quadranten befindet, dann muss sich dieser nach links bewegen, was nicht der üblichen Integrationsrichtung entspricht. Um eine Integration wie üblich von links nach rechts ausführen zu können, müssen die Integrationsgrenzen vertauscht werden, was in einem Vorzeichenwechsel resultiert. Wenn man nun \eqref{lambertw:eqZuBogenlaenge} in die DGL \eqref{lambertw:DGLmitT} einfügt, dann ergibt sich der neue Ausdruck \begin{equation} @@ -199,7 +199,7 @@ Wenn man in \eqref{lambertw:loesDGLmitU} die Substitution rückgängig macht, er \label{lambertw:loesDGLmitY} \end{equation} erster Ordnung, die bereits separiert ist. -Ersetzt man den \(\operatorname{sinh}\) durch seine exponentiellen Definition \(\operatorname{sinh}(x)=\frac{1}{2}(e^x-e^{-x})\), so resultiert auf sehr einfache Art die Lösung +Ersetzt man den \(\operatorname{sinh}\) durch seine exponentielle Definition \(\operatorname{sinh}(x)=\frac{1}{2}(e^x-e^{-x})\), so resultiert auf sehr einfache Art die Lösung \begin{equation} y = @@ -212,10 +212,12 @@ Nun haben wir eine Lösung, aber wie es immer mit Lösungen ist, stellt sich die \subsection{Lösung analysieren \label{lambertw:subsection:LoesAnalys}} +\definecolor{applegreen}{rgb}{0.55, 0.71, 0.0} + \begin{figure} \centering \includegraphics{papers/lambertw/Bilder/VerfolgungskurveBsp.png} - \caption[Graph der Verfolgungskurve]{Graph der Verfolgungskurve wobei, ({\color{red}rot}) die Funktion \ensuremath{y(x)} ist, ({\color{darkgreen}grün}) der quadratische Teil und ({\color{blue}blau}) dem \ensuremath{\operatorname{ln}(x)}-Teil entspricht. + \caption[Graph der Verfolgungskurve]{Graph der Verfolgungskurve wobei, ({\color{red}rot}) die Funktion \ensuremath{y(x)} ist, ({\color{applegreen}grün}) der quadratische Teil und ({\color{blue}blau}) dem \ensuremath{\operatorname{ln}(x)}-Teil entspricht. \label{lambertw:BildFunkLoes} } \end{figure} @@ -224,7 +226,7 @@ Das Resultat, wie ersichtlich, ist die Funktion \begin{equation} {\color{red}{y(x)}} = - C_1 + C_2 {\color{darkgreen}{x^2}} {\color{blue}{-}} \frac{\color{blue}{\operatorname{ln}(x)}}{8 \cdot C_2}, + C_1 + C_2 {\color{applegreen}{x^2}} {\color{blue}{-}} \frac{\color{blue}{\operatorname{ln}(x)}}{8 \cdot C_2}, \label{lambertw:funkLoes} \end{equation} für welche die Koeffizienten \(C_1\) und \(C_2\) aus den Anfangsbedingungen bestimmt werden können. Zuerst soll aber eine qualitative Intuition oder Idee für das Aussehen der Funktion \(y(x)\) geschaffen werden: @@ -302,7 +304,8 @@ Wenn man die Koeffizienten \eqref{lambertw:eqKoeff1} und \eqref{lambertw:eqKoeff \begin{equation} y(x) = - \frac{1}{4}\left(\left(y_0+r_0\right)\eta+\left(y_0-r_0\right)\operatorname{ln}\left(\eta\right)-r_0+3y_0\right). + \frac{1}{4}\left(\left(y_0+r_0\right)\eta+\left(y_0-r_0\right) + \operatorname{ln}\left(\eta\right)-r_0+3y_0\right). \label{lambertw:eqAllgLoes} \end{equation} Damit die Funktion \eqref{lambertw:eqAllgLoes} trotzdem übersichtlich bleibt, wurden Anfangssteigung \(\eta\) und Anfangsentfernung \(r_0\) wie folgt definiert: @@ -321,7 +324,7 @@ Nun sind wir soweit, dass wir eine \(y(x)\)-Beziehung für beliebige Anfangswert \subsection{Funktion nach der Zeit \label{lambertw:subsection:FunkNachT}} -In diesem Abschnitt werden algebraischen Umformungen ein wenig detaillierter als zuvor beschrieben. Dies hat auch einen bestimmten Grund: Den Einsatz einer speziellen Funktion aufzeigen, sowie auch wann und wieso diese vorkommt. Welche spezielle Funktion? Fragst du dich wahrscheinlich in diesem Moment. Nun, um diese Frage kurz zu beantworten, es ist ``YouTube's favorite special function'' laut dem Mathematiker Michael Penn, die Lambert-\(W\)-Funktion \(W(x)\) welche im Kapitel \ref{buch:section:lambertw} bereits beschrieben wurde. +In diesem Abschnitt werden algebraische Umformungen ein wenig detaillierter als zuvor beschrieben. Dies hat auch einen bestimmten Grund: Den Einsatz einer speziellen Funktion aufzeigen, sowie auch wann und wieso diese vorkommt. Welche spezielle Funktion? Fragt man sich wahrscheinlich in diesem Moment. Nun, um diese Frage kurz zu beantworten, es ist ``YouTube's favorite special function'' laut dem Mathematiker Michael Penn, die Lambert-\(W\)-Funktion \(W(x)\) welche im Kapitel \ref{buch:section:lambertw} bereits beschrieben wurde. \subsubsection{Zeitabhängigkeit wiederherstellen \label{lambertw:subsubsection:ZeitabhWiederherst}} @@ -342,7 +345,7 @@ Wie in \eqref{lambertw:eqDGLmitTnochmals} zu sehen ist, werden \(y\) und deren A \frac{1}{4}\left(\left(y_0+r_0\right)\eta+\left(y_0-r_0\right)\operatorname{ln}\left(\eta\right)-r_0+3y_0\right), \\ y^\prime &= - \frac{1}{2}\left(\left(y_0+r_0\right)\frac{x}{x_0^2}+\left(y_0-r_0\right)\frac{1}{x}\right). + \frac{1}{2}\biggl(\left(y_0+r_0\right)\frac{x}{x_0^2}+\left(y_0-r_0\right)\frac{1}{x}\biggr). \end{align} \end{subequations} @@ -372,16 +375,19 @@ und anschliessend \label{lambertw:eqMitExp} \end{equation} erhält. -Auf dem rechten Term von \eqref{lambertw:eqMitExp} beginnen wir langsam eine ähnliche Struktur wie \(\eta e^\eta\) zu erkennen, dies schreit nach der Struktur die benötigt wird um \(\eta\) mittels der Lambert-\(W\)-Funktion \(W(x)\) zu erhalten. Dies macht durchaus Sinn, wenn wir die Funktion \(x(t)\) finden wollen und \(W(x)\) die Umkehrfunktion von \(x e^x\) ist. +Auf dem rechten Term von \eqref{lambertw:eqMitExp} beginnen wir langsam eine ähnliche Struktur wie \(\eta e^\eta\) zu erkennen, dies schreit nach der Struktur, die benötigt wird, um \(\eta\) mittels der Lambert-\(W\)-Funktion \(W(x)\) zu erhalten. Dies macht durchaus Sinn, wenn wir die Funktion \(x(t)\) finden wollen und \(W(x)\) die Umkehrfunktion von \(x e^x\) ist. -Die erste Sache die uns in \eqref{lambertw:eqMitExp} stört ist, dass \(\eta\) als Potenz da steht. Dieses Problem können wir loswerden, indem wir beidseitig mit \(\:\displaystyle \frac{1}{r_0-y_0}\:\) potenzieren: +Die erste Sache, die uns in \eqref{lambertw:eqMitExp} stört ist, dass \(\eta\) als Potenz da steht. Dieses Problem können wir loswerden, indem wir beidseitig mit \(\:1 / (r_0-y_0)\:\) potenzieren: \begin{equation} \operatorname{exp}\left(\displaystyle \frac{-4t}{r_0-y_0}+\frac{y_0+r_0}{r_0-y_0}\right) = \eta\cdot \operatorname{exp}\left(\displaystyle \frac{y_0+r_0}{r_0-y_0}\eta\right). \label{lambertw:eqOhnePotenz} \end{equation} -Das nächste Problem auf welches wir in \eqref{lambertw:eqOhnePotenz} treffen ist, dass \(\eta\) nicht alleine im Exponent steht. Dies kann elegant mit der Substitution + +\subsubsection{Eine essenzielle Substitution + \label{lambertw:subsubsection:SubstChi}} +Das nächste Problem, auf welches wir in \eqref{lambertw:eqOhnePotenz} treffen, ist, dass \(\eta\) nicht alleine im Exponent steht. Dies kann elegant mit der Substitution \begin{equation} \chi = @@ -398,6 +404,9 @@ die auf dasselbe Ergebnis führen würden, aber \eqref{lambertw:eqChiSubst} lief \chi\eta\cdot e^{\displaystyle \chi\eta}. \label{lambertw:eqNachSubst} \end{equation} + +\subsubsection{Funktion nach der Zeit dank Lambert-\(W\) + \label{lambertw:subsubsection:LambertWundFvonT}} Nun sind wir endlich soweit, dass wir die angedeutete Lambert-\(W\)-Funktion \(W(x)\) einsetzen können. Wenn wir beidseitig \(W(x)\) anwenden, dann erhalten wir den Ausdruck \begin{equation} W\left(\chi\cdot \operatorname{exp}\left(\displaystyle \chi-\frac{4t}{r_0-y_0}\right)\right) @@ -417,14 +426,14 @@ Nach dem Auflösen nach \(x\) welches in \(\eta\) enthalten ist, erhalten wir di = y(t) &= - \frac{1}{4}\left(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(y_0-r_0\right)\operatorname{ln}\left(\left(\frac{x(t)}{x_0}\right)^2\right)-r_0+3y_0\right). + \frac{1}{4}\biggl(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(y_0-r_0\right)\operatorname{ln}\biggl(\biggl(\frac{x(t)}{x_0}\biggr)^2\biggr)-r_0+3y_0\biggr). \end{align} \end{subequations} Nun haben wir unser letztes Ziel erreicht und sind in der Lage eine Verfolgung rechnerisch sowie graphisch zu repräsentieren. \subsubsection{Hinweise zur Lambert-\(W\)-Funktion \label{lambertw:subsubsection:HinwLambertW}} -Wir sind aber noch nicht ganz fertig, eine Frage muss noch beantwortet werden. Und zwar wieso, man schon bei der Gleichung \eqref{lambertw:eqFunkUndAbleitEingefuegt} weiss, dass die Lambert-\(W\)-Funktion zum Einsatz kommen wird. +Wir sind aber noch nicht ganz fertig, eine Frage muss noch beantwortet werden. Und zwar wieso man schon bei der Gleichung \eqref{lambertw:eqFunkUndAbleitEingefuegt} weiss, dass die Lambert-\(W\)-Funktion zum Einsatz kommen wird. Nun, der Grund dafür ist die Struktur \begin{equation} y diff --git a/buch/papers/parzyl/images/Makefile b/buch/papers/parzyl/images/Makefile new file mode 100644 index 0000000..4bd13ec --- /dev/null +++ b/buch/papers/parzyl/images/Makefile @@ -0,0 +1,16 @@ +# +# Makefile to build 3d images +# +# (c) 2022 Prof Dr Andreas Müller +# + +all: halfplane.pdf + +halfplane.pdf: halfplane.tex halfplane.jpg + pdflatex halfplane.tex +halfplane.png: halfplane.pov + povray +A0.1 -W1920 -H1080 -Ohalfplane.png halfplane.pov +halfplane.jpg: halfplane.png Makefile + convert -extract 1280x1080+340+0 halfplane.png \ + -density 300 -units PixelsPerInch halfplane.jpg + diff --git a/buch/papers/parzyl/images/common.inc b/buch/papers/parzyl/images/common.inc new file mode 100644 index 0000000..28aed2b --- /dev/null +++ b/buch/papers/parzyl/images/common.inc @@ -0,0 +1,64 @@ +// +// common.inc -- some common useful tools for drawing 3d images +// +// (c) 2018 Prof Dr Andreas Müller, Hochschule Rapperswil +// + +// +// draw a right angle quarter circle at point <o> with legs <v1> and <v2> and +// color <c> +// +#declare rechterwinkelradius = 0.5; +#declare rechterwinkelthickness = 0.01; +#macro rechterwinkel(o, v1, v2, c) +intersection { + sphere { o, rechterwinkelradius } + #declare rnormale = vnormalize(vcross(v1, v2)); + plane { rnormale, vdot(o, rnormale) + rechterwinkelthickness * rechterwinkelradius / 0.5 } + plane { -rnormale, -vdot(o, rnormale) + rechterwinkelthickness * rechterwinkelradius / 0.5 } + plane { -v1, -vdot(o, v1) } + plane { -v2, -vdot(o, v2) } + pigment { + color c + } +} +sphere { o + 0.45 * (vnormalize(v1) +vnormalize(v2)) * rechterwinkelradius, + 0.05 * rechterwinkelradius / 0.5 + pigment { + color c + } +} +#end + +// +// draw an arrow from <from> to <to> with thickness <arrowthickness> with +// color <c> +// +#macro arrow(from, to, arrowthickness, c) + #declare arrowdirection = vnormalize(to - from); + #declare arrowlength = vlength(to - from); + union { + sphere { + from, 1.1 * arrowthickness + } + cylinder { + from, + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + arrowthickness + } + cone { + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + 2 * arrowthickness, + to, + 0 + } + pigment { + color c + } + finish { + specular 0.9 + metallic + } + } +#end + diff --git a/buch/papers/parzyl/images/halfplane.jpg b/buch/papers/parzyl/images/halfplane.jpg Binary files differnew file mode 100644 index 0000000..8cb5ae3 --- /dev/null +++ b/buch/papers/parzyl/images/halfplane.jpg diff --git a/buch/papers/parzyl/images/halfplane.pdf b/buch/papers/parzyl/images/halfplane.pdf Binary files differnew file mode 100644 index 0000000..7275810 --- /dev/null +++ b/buch/papers/parzyl/images/halfplane.pdf diff --git a/buch/papers/parzyl/images/halfplane.png b/buch/papers/parzyl/images/halfplane.png Binary files differnew file mode 100644 index 0000000..5beefa0 --- /dev/null +++ b/buch/papers/parzyl/images/halfplane.png diff --git a/buch/papers/parzyl/images/halfplane.pov b/buch/papers/parzyl/images/halfplane.pov new file mode 100644 index 0000000..419bb67 --- /dev/null +++ b/buch/papers/parzyl/images/halfplane.pov @@ -0,0 +1,201 @@ +// +// 3dimage.pov +// +// (c) 2022 Prof Dr Andreas Müller +// +#version 3.7; +#include "colors.inc" +#include "skies.inc" +#include "common.inc" + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.63; +#declare ar = 0.02; + +#declare Cameracenter = <5,3,-4>; +#declare Worldpoint = <0,-0.80, 0>; +#declare Lightsource = < 7,10,-3>; +#declare Lightdirection = vnormalize(Lightsource - Worldpoint); +#declare Lightaxis1 = vnormalize(vcross(Lightdirection, <0,1,0>)); +#declare Lightaxis2 = vnormalize(vcross(Lightaxis1, Lightdirection)); + +camera { + location Cameracenter + look_at Worldpoint + right 16/9 * x * imagescale + up y * imagescale +} + +light_source { + Lightsource color White + area_light Lightaxis1 Lightaxis2, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color White + } +} + +arrow( <-2.1, 0, 0 >, < 2.2, 0, 0 >, ar, White) +arrow( < 0, -1.1, 0 >, < 0, 1.3, 0 >, ar, White) +arrow( < 0, 0, -2 >, < 0, 0, 2.2 >, ar, White) + +#declare planecolor = rgb<0.2,0.6,1.0>; +#declare r = 0.01; + +#macro planebox() + box { <-2.1,-1.1,-2.1>, <0,1.1,2.1> } +#end + +intersection { + plane { <0, 0, 1>, 0.001 } + plane { <0, 0, -1>, 0.001 } + planebox() + pigment { + color planecolor transmit 0.3 + } + finish { + metallic + specular 0.95 + } +} + +#declare Xstep = 0.2; + +intersection { + union { + #declare X = 0; + #while (X > -2.5) + cylinder { <X,-3,0>, <X,+3,0>, r } + #declare X = X - Xstep; + #end + + #declare Y = Xstep; + #while (Y < 2.5) + cylinder { <-3, Y, 0>, <0, Y, 0>, r } + cylinder { <-3, -Y, 0>, <0, -Y, 0>, r } + #declare Y = Y + Xstep; + #end + } + planebox() + pigment { + color planecolor + } + finish { + metallic + specular 0.95 + } +} + +#declare parammin = -4; +#declare parammax = 4; +#declare paramsteps = 100; +#declare paramstep = (parammax - parammin) / paramsteps; + +#macro punkt(sigma, tau, Z) + < + 0.5 * (tau*tau - sigma*sigma) + Z, + sigma * tau, + > +#end + +#macro sigmasurface(sigma, farbe) + #declare taumin1 = 2/sigma; + #declare taumin2 = sqrt(4+sigma*sigma); + #if (taumin1 > taumin2) + #declare taumin = -taumin2; + #else + #declare taumin = -taumin1; + #end + + mesh { + #declare tau = taumin; + #declare taumax = -taumin; + #declare taustep = (taumax - taumin) / paramsteps; + #while (tau < taumax - taustep/2) + triangle { + punkt(sigma, tau, -1), + punkt(sigma, tau, 0), + punkt(sigma, tau + taustep, -1) + } + triangle { + punkt(sigma, tau + taustep, -1), + punkt(sigma, tau + taustep, 0), + punkt(sigma, tau, 0) + } + #declare tau = tau + taustep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } + } + + union { + #declare tau = taumin; + #declare taumax = -taumin; + #declare taustep = (taumax - taumin) / paramsteps; + #while (tau < taumax - taustep/2) + sphere { punkt(sigma, tau, 0), r } + cylinder { + punkt(sigma, tau, 0), + punkt(sigma, tau + taustep, 0), + r + } + #declare tau = tau + taustep; + #end + sphere { punkt(sigma, tau, 0), r } + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } + + } +#end + +#declare greensurfacecolor = rgb<0.6,1.0,0.6>; +#declare redsurfacecolor = rgb<1.0,0.6,0.6>; + +sigmasurface(0.25, greensurfacecolor) +sigmasurface(0.5, greensurfacecolor) +sigmasurface(0.75, greensurfacecolor) +sigmasurface(1, greensurfacecolor) +sigmasurface(1.25, greensurfacecolor) +sigmasurface(1.5, greensurfacecolor) +sigmasurface(1.75, greensurfacecolor) +sigmasurface(2, greensurfacecolor) + +union { + sigmasurface(0.25, redsurfacecolor) + sigmasurface(0.5, redsurfacecolor) + sigmasurface(0.75, redsurfacecolor) + sigmasurface(1.00, redsurfacecolor) + sigmasurface(1.25, redsurfacecolor) + sigmasurface(1.5, redsurfacecolor) + sigmasurface(1.75, redsurfacecolor) + sigmasurface(2, redsurfacecolor) + rotate <0, 180, 0> +} + +box { <-2,-1,-2>, <2,-0.99,2> + pigment { + color rgb<1.0,0.8,0.6> transmit 0.8 + } + finish { + specular 0.9 + metallic + } +} diff --git a/buch/papers/parzyl/images/halfplane.tex b/buch/papers/parzyl/images/halfplane.tex new file mode 100644 index 0000000..e470057 --- /dev/null +++ b/buch/papers/parzyl/images/halfplane.tex @@ -0,0 +1,41 @@ +% +% halfplane.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{5} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=10cm]{halfplane.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 (0,3.7) {$z$}; +\node at (3.3,-0.3) {$x$}; +\node at (2.7,2.5) {$y$}; + +\end{tikzpicture} + +\end{document} + diff --git a/buch/papers/parzyl/img/D_plot.png b/buch/papers/parzyl/img/D_plot.png Binary files differnew file mode 100644 index 0000000..6c61eea --- /dev/null +++ b/buch/papers/parzyl/img/D_plot.png diff --git a/buch/papers/parzyl/img/Plane_2D.png b/buch/papers/parzyl/img/Plane_2D.png Binary files differnew file mode 100644 index 0000000..f55e3cf --- /dev/null +++ b/buch/papers/parzyl/img/Plane_2D.png diff --git a/buch/papers/parzyl/img/coordinates.png b/buch/papers/parzyl/img/coordinates.png Binary files differnew file mode 100644 index 0000000..0ea3701 --- /dev/null +++ b/buch/papers/parzyl/img/coordinates.png diff --git a/buch/papers/parzyl/img/plane.pdf b/buch/papers/parzyl/img/plane.pdf Binary files differnew file mode 100644 index 0000000..c52c336 --- /dev/null +++ b/buch/papers/parzyl/img/plane.pdf diff --git a/buch/papers/parzyl/img/v_plot.png b/buch/papers/parzyl/img/v_plot.png Binary files differnew file mode 100644 index 0000000..7cd5455 --- /dev/null +++ b/buch/papers/parzyl/img/v_plot.png diff --git a/buch/papers/parzyl/main.tex b/buch/papers/parzyl/main.tex index 528a2e2..fd2aea7 100644 --- a/buch/papers/parzyl/main.tex +++ b/buch/papers/parzyl/main.tex @@ -6,13 +6,13 @@ \chapter{Parabolische Zylinderfunktionen\label{chapter:parzyl}} \lhead{Parabolische Zylinderfunktionen} \begin{refsection} -\chapterauthor{Thierry Schwaller, Alain Keller} +\chapterauthor{Alain Keller und Thierry Schwaller} \input{papers/parzyl/teil0.tex} \input{papers/parzyl/teil1.tex} \input{papers/parzyl/teil2.tex} - +\input{papers/parzyl/teil3.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/parzyl/references.bib b/buch/papers/parzyl/references.bib index 494ff7c..9639d0b 100644 --- a/buch/papers/parzyl/references.bib +++ b/buch/papers/parzyl/references.bib @@ -33,3 +33,45 @@ url = {https://doi.org/10.1016/j.acha.2017.11.004} } +@book{parzyl:whittaker, + place={Cambridge}, + edition={4}, + series={Cambridge Mathematical Library}, + title={A Course of Modern Analysis}, + DOI={10.1017/CBO9780511608759}, + publisher={Cambridge University Press}, + author={Whittaker, E. T. and Watson, G. N.}, + year={1996}, + collection={Cambridge Mathematical Library}} + +@book{parzyl:abramowitz-stegun, + added-at = {2008-06-25T06:25:58.000+0200}, + address = {New York}, + author = {Abramowitz, Milton and Stegun, Irene A.}, + edition = {ninth Dover printing, tenth GPO printing}, + interhash = {d4914a420f489f7c5129ed01ec3cf80c}, + intrahash = {23ec744709b3a776a1af0a3fd65cd09f}, + keywords = {Handbook}, + publisher = {Dover}, + timestamp = {2008-06-25T06:25:58.000+0200}, + title = {Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables}, + year = 1972 +} + +@online{parzyl:coordinates, + title = {Parabolic cylindrical coordinates}, + url = {https://en.wikipedia.org/wiki/Parabolic_cylindrical_coordinates}, + date = {2022-08-17}, + year = {2022}, + month = {8}, + day = {17} +} + +@online{parzyl:scalefac, + title = {An introduction to curvlinear orthogonal coordinates}, + url = {http://dslavsk.sites.luc.edu/courses/phys301/classnotes/scalefactorscomplete.pdf}, + date = {2022-08-18}, + year = {2022}, + month = {08}, + day = {18} +}
\ No newline at end of file diff --git a/buch/papers/parzyl/teil0.tex b/buch/papers/parzyl/teil0.tex index 4b251db..e6d27b9 100644 --- a/buch/papers/parzyl/teil0.tex +++ b/buch/papers/parzyl/teil0.tex @@ -4,88 +4,113 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Einleitung\label{parzyl:section:teil0}} -\rhead{Teil 0} -Die Laplace-Gleichung ist eine wichtige Gleichung in der Physik. -Mit ihr lässt sich zum Beispiel das elektrische Feld in einem ladungsfreien Raum bestimmen. -In diesem Kapitel wird die Lösung der Laplace-Gleichung im -parabolischen Zylinderkoordinatensystem genauer untersucht. -\subsection{Laplace Gleichung} -Die partielle Differentialgleichung -\begin{equation} - \Delta f = 0 -\end{equation} -ist als Laplace-Gleichung bekannt. -Sie ist eine spezielle Form der Poisson-Gleichung +\rhead{Einleitung} +%Die Laplace-Gleichung ist eine wichtige Gleichung in der Physik. +%Mit ihr lässt sich zum Beispiel das elektrische Feld in einem ladungsfreien Raum bestimmen. +%In diesem Kapitel wird die Lösung der Laplace-Gleichung im +%parabolischen Zylinderkoordinatensystem genauer untersucht. +Die Helmholtz-Gleichung ist eine wichtige Gleichung in der Physik. +Mit ihr lässt sich zum Beispiel das Verhalten von elektromagnetischen Wellen beschreiben. +In diesem Kapitel werden die Lösungen der Helmholtz-Gleichung im parabolischen Zylinderkoordinatensystem, +die parabolischen Zylinderfunktionen, genauer untersucht. + +\subsection{Helmholtz-Gleichung} +Die partielle Differentialgleichung \begin{equation} - \Delta f = g + \Delta f = \lambda f \end{equation} -mit g als beliebige Funktion. -In der Physik hat die Laplace-Gleichung in verschieden Gebieten -verwendet, zum Beispiel im Elektromagnetismus. -Das Gaussche Gesetz in den Maxwellgleichungen +ist als Helmholtz-Gleichung bekannt und beschreibt das Eigenwertproblem für den Laplace-Operator. +Sie ist eine der Gleichungen, welche auftritt, wenn die Wellengleichung \begin{equation} - \nabla \cdot E = \frac{\varrho}{\epsilon_0} -\label{parzyl:eq:max1} + \left ( \nabla^2 - \frac{1}{c^2}\frac{\partial^2}{\partial t^2} \right ) u(\textbf{r},t) + = + 0 \end{equation} -besagt das die Divergenz eines Elektrischen Feldes an einem -Punkt gleich der Ladung an diesem Punkt ist. -Das elektrische Feld ist hierbei der Gradient des elektrischen -Potentials +mit Hilfe von Separation \begin{equation} - \nabla \phi = E. -\end{equation} -Eingesetzt in \eqref{parzyl:eq:max1} resultiert + u(\textbf{r},t) = A(\textbf{r})T(t) +\end{equation} +in zwei Differentialgleichungen aufgeteilt wird. Die Helmholtz-Gleichung ist der Teil \begin{equation} - \nabla \cdot \nabla \phi = \Delta \phi = \frac{\varrho}{\epsilon_0}, + \nabla^2 A(\textbf{r}) = \lambda A(\textbf{r}), \end{equation} -was eine Possion-Gleichung ist. -An Ladungsfreien Stellen, ist der rechte Teil der Gleichung $0$. +welcher zeitunabhängig ist. +%\subsection{Laplace Gleichung} +%Die partielle Differentialgleichung +%\begin{equation} +% \Delta f = 0 +%\end{equation} +%ist als Laplace-Gleichung bekannt. +%Sie ist eine spezielle Form der Poisson-Gleichung +%\begin{equation} +% \Delta f = g +%\end{equation} +%mit $g$ als beliebiger Funktion. +%In der Physik hat die Laplace-Gleichung in verschiedenen Gebieten +%verwendet, zum Beispiel im Elektromagnetismus. +%Das Gaussche Gesetz in den Maxwellgleichungen +%\begin{equation} +% \nabla \cdot E = \frac{\varrho}{\epsilon_0} +%\label{parzyl:eq:max1} +%\end{equation} +%besagt, dass die Divergenz eines elektrischen Feldes an einem +%Punkt gleich der Ladungsdichte an diesem Punkt ist. +%Das elektrische Feld ist hierbei der Gradient des elektrischen +%Potentials +%\begin{equation} +% \nabla \phi = E. +%\end{equation} +%Eingesetzt in \eqref{parzyl:eq:max1} resultiert +%\begin{equation} +% \nabla \cdot \nabla \phi = \Delta \phi = \frac{\varrho}{\epsilon_0}, +%\end{equation} +%was eine Poisson-Gleichung ist. +%An ladungsfreien Stellen ist der rechte Teil der Gleichung $0$. \subsection{Parabolische Zylinderkoordinaten \label{parzyl:subsection:finibus}} -Im parabolischen Zylinderkoordinatensystem bilden parabolische Zylinder die Koordinatenflächen. -Die Koordinate $(\sigma, \tau, z)$ sind in kartesischen Koordinaten ausgedrückt mit +Das parabolischen Zylinderkoordinatensystem \cite{parzyl:coordinates} ist ein krummliniges Koordinatensystem, +bei dem parabolische Zylinder die Koordinatenflächen bilden. +Die Koordinate $(\sigma, \tau, z)$ sind in kartesischen Koordinaten ausgedrückt durch \begin{align} - x & = \sigma \tau \\ + x & = \frac{1}{2}\left(\tau^2 - \sigma^2\right) \\ \label{parzyl:coordRelationsa} - y & = \frac{1}{2}\left(\tau^2 - \sigma^2\right) \\ + y & = \sigma \tau\\ z & = z. \label{parzyl:coordRelationse} \end{align} -Wird $\tau$ oder $\sigma$ konstant gesetzt resultieren die Parabeln +Wird $\sigma$ oder $\tau$ konstant gesetzt, resultieren die Parabeln \begin{equation} - y = \frac{1}{2} \left( \frac{x^2}{\sigma^2} - \sigma^2 \right) + x = \frac{1}{2} \left( \frac{y^2}{\sigma^2} - \sigma^2 \right) \end{equation} und \begin{equation} - y = \frac{1}{2} \left( -\frac{x^2}{\tau^2} + \tau^2 \right). + x = \frac{1}{2} \left( -\frac{y^2}{\tau^2} + \tau^2 \right). \end{equation} \begin{figure} \centering - \includegraphics[scale=0.4]{papers/parzyl/img/koordinaten.png} - \caption{Das parabolische Koordinatensystem. Die roten Parabeln haben ein - konstantes $\sigma$ und die grünen ein konstantes $\tau$.} + \includegraphics[scale=0.32]{papers/parzyl/img/coordinates.png} + \caption{Das parabolische Koordinatensystem. Die grünen Parabeln haben ein + konstantes $\sigma$ und die roten ein konstantes $\tau$.} \label{parzyl:fig:cordinates} \end{figure} - -Abbildung \ref{parzyl:fig:cordinates} zeigt das Parabolische Koordinatensystem. +Abbildung \ref{parzyl:fig:cordinates} zeigt das parabolische Koordinatensystem. Das parabolische Zylinderkoordinatensystem entsteht wenn die Parabeln aus der Ebene gezogen werden. +Die Flächen mit $\tau = 0$ oder $\sigma = 0$ stellen somit Halbebenen entlang der $z$-Achse dar. Um in diesem Koordinatensystem integrieren und differenzieren zu -können braucht es die Skalierungsfaktoren $h_{\tau}$, $h_{\sigma}$ und $h_{z}$. - -\dots +können braucht es die Skalierungsfaktoren $h_{\tau}$, $h_{\sigma}$ und $h_{z}$ \cite{parzyl:scalefac}. -Wird eine infinitessimal kleine Distanz $ds$ zwischen zwei Punkten betrachtet -kann dies im kartesischen Koordinatensystem mit +Eine infinitesimal kleine Distanz $ds$ zwischen zwei Punkten +kann im kartesischen Koordinatensystem als \begin{equation} \left(ds\right)^2 = \left(dx\right)^2 + \left(dy\right)^2 + \left(dz\right)^2 \label{parzyl:eq:ds} \end{equation} ausgedrückt werden. -Das Skalierungsfaktoren werden so bestimmt, dass +Die Skalierungsfaktoren werden in einem orthogonalen Koordinatensystem so bestimmt, dass \begin{equation} \left(ds\right)^2 = \left(h_{\sigma}d\sigma\right)^2 + \left(h_{\tau}d\tau\right)^2 + \left(h_z dz\right)^2 @@ -98,15 +123,15 @@ von \eqref{parzyl:coordRelationsa} - \eqref{parzyl:coordRelationse} als dx &= \frac{\partial x }{\partial \sigma} d\sigma + \frac{\partial x }{\partial \tau} d\tau + \frac{\partial x }{\partial \tilde{z}} d \tilde{z} - = \tau d\sigma + \sigma d \tau \\ + = \tau d\tau - \sigma d \sigma \\ dy &= \frac{\partial y }{\partial \sigma} d\sigma + \frac{\partial y }{\partial \tau} d\tau + \frac{\partial y }{\partial \tilde{z}} d \tilde{z} - = \tau d\tau - \sigma d \sigma \\ + = \tau d\sigma + \sigma d \tau \\ dz &= \frac{\partial \tilde{z} }{\partial \sigma} d\sigma + \frac{\partial \tilde{z} }{\partial \tau} d\tau + \frac{\partial \tilde{z} }{\partial \tilde{z}} d \tilde{z} - = d \tilde{z} \\ + = d \tilde{z} \end{align} substituiert. Wird diese Gleichung in der Form von \eqref{parzyl:eq:dspara} @@ -120,21 +145,21 @@ geschrieben, resultiert Daraus ergeben sich die Skalierungsfaktoren \begin{align} h_{\sigma} &= \sqrt{\sigma^2 + \tau^2}\\ - h_{\sigma} &= \sqrt{\sigma^2 + \tau^2}\\ + h_{\tau} &= \sqrt{\sigma^2 + \tau^2}\\ h_{z} &= 1. \end{align} \subsection{Differentialgleichung} Möchte man eine Differentialgleichung im parabolischen -Zylinderkoordinatensystem aufstellen müssen die Skalierungsfaktoren +Zylinderkoordinatensystem aufstellen, müssen die Skalierungsfaktoren mitgerechnet werden. -Der Laplace Operator ist dadurch gegeben als +Der Laplace Operator wird dadurch zu \begin{equation} \Delta f = \frac{1}{\sigma^2 + \tau^2} \left( \frac{\partial^2 f}{\partial \sigma ^2} + \frac{\partial^2 f}{\partial \tau ^2} \right) - + \frac{\partial^2 f}{\partial z}. + + \frac{\partial^2 f}{\partial z^2}. \label{parzyl:eq:laplaceInParZylCor} \end{equation} \subsubsection{Lösung der Helmholtz-Gleichung im parabolischen Zylinderfunktion} @@ -162,7 +187,7 @@ gelöst wird. % + % \frac{\partial^2}{\partial z^2}. %\end{equation} -Mit dem Laplace Operator aus \eqref{parzyl:eq:laplaceInParZylCor} lautet die Helmholtz Gleichung +Mit dem Laplace Operator aus \eqref{parzyl:eq:laplaceInParZylCor} lautet die Helmholtz-Gleichung \begin{equation} \Delta f(\sigma, \tau, z) = @@ -177,12 +202,11 @@ Mit dem Laplace Operator aus \eqref{parzyl:eq:laplaceInParZylCor} lautet die Hel = \lambda f(\sigma,\tau,z). \end{equation} -Diese partielle Differentialgleichung kann mit Hilfe von Separation gelöst werden, dazu wird +Diese partielle Differentialgleichung kann mit Hilfe von Separation gelöst werden. Dazu wird \begin{equation} f(\sigma,\tau,z) = g(\sigma)h(\tau)i(z) \end{equation} -gesetzt. -Was dann schlussendlich zu den Differentialgleichungen +gesetzt, was dann schlussendlich zu den Differentialgleichungen \begin{equation}\label{parzyl:sep_dgl_1} g''(\sigma) - @@ -216,26 +240,13 @@ und + \mu \right ) - i(\tau) + i(z) = 0 \end{equation} -führt. -Wobei die Lösung von \eqref{parzyl:sep_dgl_3} -\begin{equation} - i(z) - = - A\cos{ - \left ( - \sqrt{\lambda + \mu}z - \right )} - + - B\sin{ - \left ( - \sqrt{\lambda + \mu}z - \right )} -\end{equation} -ist und \eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2} die sogenannten Weberschen Differentialgleichungen sind, welche die parabolischen Zylinder Funktionen als Lösung haben. +führt. $\lambda$ und $\mu$ sind dabei die Separationskonstanten. +\eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2} sind auch +als Webersche Differentialgleichungen bekannt. diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index f297189..1f9db85 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -5,24 +5,225 @@ % \section{Lösung \label{parzyl:section:teil1}} -\rhead{Problemstellung} -Die Differentialgleichungen \eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2} können mit einer Substitution -in die Whittaker Gleichung gelöst werden. +\rhead{Lösung} +Zur Lösung der Helmholtz-Gleichung müssen erst die Lösungen der separierten +Differentialgleichungen \eqref{parzyl:sep_dgl_1} bis \eqref{parzyl:sep_dgl_3} +gefunden werden. +\subsection{Lösung der Schwingungsgleichung \eqref{parzyl:sep_dgl_3}} +\eqref{parzyl:sep_dgl_3} beschriebt einen ungedämpften harmonischen Oszillator. +Die Lösung ist somit +\begin{equation} + i(z) + = + A\cos{ + \left ( z + \sqrt{\lambda + \mu} + \right )} + + + B\sin{ + \left ( z + \sqrt{\lambda + \mu} + \right )}. +\end{equation} +\subsection{Lösung der Weberschen Differentialgleichung} +Die Differentialgleichungen \eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2} werden in \cite{parzyl:whittaker} +mit Hilfe der Whittaker Gleichung gelöst. +\begin{satz} + Die Funktionen + \begin{equation} + M_{k,m}(x) = + e^{-x/2} x^{m+1/2} \, + {}_{1} F_{1} + ( + {\textstyle \frac{1}{2}} + + m - k, 1 + 2m; x) \qquad x \in \mathbb{C} + \label{parzyl:eq:sol_diffEq_1} + \end{equation} + und damit auch die Linearkombinationen + \begin{equation} + W_{k,m}(x) = \frac{ + \Gamma \left( -2m\right) + }{ + \Gamma \left( {\textstyle \frac{1}{2}} - m - k\right) + } + M_{-k, m} \left(x\right) + + + \frac{ + \Gamma \left( 2m\right) + }{ + \Gamma \left( {\textstyle \frac{1}{2}} + m - k\right) + } + M_{k, -m} \left(x\right) + \label{parzyl:eq:sol_diffEq_2} + \end{equation} + sind Lösungen der Differentialgleichung + \begin{equation} + \frac{d^2W}{d x^2} + + \biggl( -\frac{1}{4} + \frac{k}{x} + \frac{\frac{1}{4} - m^2}{x^2} \biggr) W = 0. + \label{parzyl:eq:whitDiffEq} + \end{equation} + +\end{satz} \begin{definition} - Die Funktion - \begin{equation*} - W_{k,m}(z) = - e^{-z/2} z^{m+1/2} \, - {}_{1} F_{1}(\frac{1}{2} + m - k, 1 + 2m; z) - \end{equation*} - heisst Whittaker Funktion und ist eine Lösung - von - \begin{equation} - \frac{d^2W}{d z^2} + - \left(-\frac{1}{4} + \frac{k}{z} + \frac{\frac{1}{4} - m^2}{z^2} \right) W = 0. - \end{equation} + Die Differentialgleichung \ref{parzyl:eq:whitDiffEq} heisst Whittaker-Differentialgleichung. Die Funktionen \ref{parzyl:eq:sol_diffEq_1} und \ref{parzyl:eq:sol_diffEq_2} sind Teil der Familie der Whittaker-Funktionen. \end{definition} - -Lösung Folgt\dots +%\begin{definition} +% Die Funktionen +% \begin{equation*} +% M_{k,m}(x) = +% e^{-x/2} x^{m+1/2} \, +% {}_{1} F_{1} +% ( +% {\textstyle \frac{1}{2}} +% + m - k, 1 + 2m; x) \qquad x \in \mathbb{C} +% \end{equation*} +% und +% \begin{equation*} +% W_{k,m}(x) = \frac{ +% \Gamma \left( -2m\right) +% }{ +% \Gamma \left( {\textstyle \frac{1}{2}} - m - k\right) +% } +% M_{-k, m} \left(x\right) +% + +% \frac{ +% \Gamma \left( 2m\right) +% }{ +% \Gamma \left( {\textstyle \frac{1}{2}} + m - k\right) +% } +% M_{k, -m} \left(x\right) +% \end{equation*} +% gehören zu den Whittaker Funktionen und sind Lösungen +% der Whittaker Differentialgleichung +% \begin{equation} +% \frac{d^2W}{d x^2} + +% \biggl( -\frac{1}{4} + \frac{k}{x} + \frac{\frac{1}{4} - m^2}{x^2} \biggr) W = 0. +% \label{parzyl:eq:whitDiffEq} +% \end{equation} +% +%\end{definition} +Es wird nun die Differentialgleichung bestimmt, welche +\begin{equation} + w = x^{-1/2} W_{k,-1/4} \left({\textstyle \frac{1}{2}} x^2\right) +\end{equation} +als Lösung hat. +Dafür wird $w$ in \eqref{parzyl:eq:whitDiffEq} eingesetzt, woraus +\begin{equation} + \frac{d^2 w}{dx^2} - \left(\frac{1}{4} x^2 - 2k\right) w = 0 +\label{parzyl:eq:weberDiffEq} +\end{equation} +resultiert. Diese Differentialgleichung ist dieselbe wie +\eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2}, welche somit +$w$ als Lösung haben. +%Da es sich um eine Differentialgleichung zweiter Ordnung handelt, hat sie nicht nur +%eine sondern zwei Lösungen. +%Die zweite Lösung der Whittaker-Gleichung ist $W_{k,-m} (z)$. +%Somit hat \eqref{parzyl:eq:weberDiffEq} +%\begin{align} +% w_1(k, z) & = z^{-1/2} W_{k,-1/4} \left({\textstyle \frac{1}{2}} z^2\right)\\ +% w_2(k, z) & = z^{-1/2} W_{k,1/4} \left({\textstyle \frac{1}{2}} z^2\right) +%\end{align} +%als Lösungen. +%Mit der Hypergeometrischen Funktion ausgeschrieben ergeben sich die Lösungen +%\begin{align} +% \label{parzyl:eq:solution_dgl} +% w_1(k,z) &= e^{-z^2/4} \, +% {}_{1} F_{1} +% ( +% {\textstyle \frac{1}{4}} +% - k, {\textstyle \frac{1}{2}} ; {\textstyle \frac{1}{2}}z^2) \\ +% w_2(k,z) & = z e^{-z^2/4} \, +% {}_{1} F_{1} +% ({\textstyle \frac{3}{4}} +% - k, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2). +%\end{align} +\subsection{Standardlösungen} +In der Literatur gibt es verschiedene Standardlösungen für +\eqref{parzyl:eq:weberDiffEq}, wobei die Differentialgleichung jeweils +unterschiedlich geschrieben wird. +Whittaker und Watson zeigen in \cite{parzyl:whittaker} die Lösung +\begin{equation} + D_n(x) = 2^{\frac{1}{2}n + \frac{1}{2}} x^{-\frac{1}{2}} W_{n/2 + 1/4, -1/4}\left(\frac{1}{2}x^2\right), +\end{equation} +welche die Differentialgleichung +\begin{equation} + \frac{d^2D_n(x)}{dx^2} + \left(n + \frac{1}{2} - \frac{1}{4} x^2\right)D_n(x) = 0 +\end{equation} +löst. +Mit $M_{k,m}(x)$ geschrieben resultiert +\begin{equation} + D_n(x) = \frac{ + \Gamma \left( {\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{4}} x^{-\frac{1}{2}} + }{ + \Gamma \left( {\textstyle \frac{1}{2}} - {\textstyle \frac{1}{2}} n \right) + } + M_{\frac{1}{2} n + \frac{1}{4}, - \frac{1}{4}} \left(\frac{1}{2}x^2\right) + + + \frac{ + \Gamma\left(-{\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{4}} x^{-\frac{1}{2}} + }{ + \Gamma\left(- {\textstyle \frac{1}{2}} n\right) + } + M_{\frac{1}{2} n + \frac{1}{4}, \frac{1}{4}} \left(\frac{1}{2}x^2\right). +\end{equation} +In \cite{parzyl:abramowitz-stegun} sind zwei Lösungen $U(a, x)$ und $V(a,x)$ +\begin{align} + U(a,x) &= + \cos\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_1 + - \sin\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_2 + \label{parzyl:eq:Uaz} + \\ + V(a,x) &= \frac{1}{\Gamma \left({\textstyle \frac{1}{2} - a}\right)} \left\{ + \sin\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_1 + + \cos\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_2 + \right\} + \label{parzyl:eq:Vaz} +\end{align} +mit +\begin{align} + Y_1 &= \frac{1}{\sqrt{\pi}} + \frac{\Gamma\left({\textstyle \frac{1}{4} - + {\textstyle \frac{1}{2}}a}\right)} + {2^{\frac{1}{2} a + \frac{1}{4}}} + e^{-x^2/4} + {}_{1} F_{1} + \left({\textstyle \frac{1}{2}}a + {\textstyle \frac{1}{4}}, + {\textstyle \frac{1}{2}} ; + {\textstyle \frac{1}{2}}x^2\right)\\ + Y_2 &= \frac{1}{\sqrt{\pi}} + \frac{\Gamma\left({\textstyle \frac{3}{4} - + {\textstyle \frac{1}{2}}a}\right)} + {2^{\frac{1}{2} a - \frac{1}{4}}} + x e^{-x^2/4} + {}_{1} F_{1} + \left({\textstyle \frac{1}{2}}a + {\textstyle \frac{3}{4}}, + {\textstyle \frac{3}{2}} ; + {\textstyle \frac{1}{2}}x^2\right) +\end{align} +der Differentialgleichung +\begin{equation} + \frac{d^2 y}{d x^2} - \left(\frac{1}{4} x^2 + a\right) y = 0 +\end{equation} +beschrieben. Die Lösungen $U(a,z)$ und $V(a, z)$ können auch durch $D_n(z)$ +ausgedrückt werden +\begin{align} + U(a,x) &= D_{-a-1/2}(x) \\ + V(a,x) &= \frac{\Gamma \left({\textstyle \frac{1}{2}} + a\right)}{\pi} + \left[\sin\left(\pi a\right) D_{-a-1/2}(x) + D_{-a-1/2}(-x)\right]. +\end{align} +In den Abbildungen \ref{parzyl:fig:dnz} und \ref{parzyl:fig:Vnz} sind +die Funktionen $D_n(x)$ und $V(a,x)$ mit verschiedenen Werten für $a$ abgebildet. +\begin{figure} + \centering + \includegraphics[scale=0.35]{papers/parzyl/img/D_plot.png} + \caption{$D_n(x)$ mit unterschiedlichen Werten für $n$.} + \label{parzyl:fig:dnz} +\end{figure} +\begin{figure} + \centering + \includegraphics[scale=0.35]{papers/parzyl/img/v_plot.png} + \caption{$V(a,x)$ mit unterschiedlichen Werten für $a$.} + \label{parzyl:fig:Vnz} +\end{figure}
\ No newline at end of file diff --git a/buch/papers/parzyl/teil2.tex b/buch/papers/parzyl/teil2.tex index 3f890d0..705dbef 100644 --- a/buch/papers/parzyl/teil2.tex +++ b/buch/papers/parzyl/teil2.tex @@ -3,89 +3,105 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Anwendung in der Physik -\label{parzyl:section:teil2}} -\rhead{Teil 2} +\section{Eigenschaften + \label{parzyl:section:Eigenschaften}} +\rhead{Eigenschaften} - -\subsection{Elektrisches Feld einer semi-infiniten Platte -\label{parzyl:subsection:bonorum}} -Die parabolischen Zylinderkoordinaten tauchen auf, wenn man das elektrische Feld einer semi-infiniten Platte finden will. -Das dies so ist kann im zwei Dimensionalen mit Hilfe von komplexen Funktionen gezeigt werden. Wobei die Platte dann nur eine Linie ist. -Jede komplexe Funktion $F(z)$ kann geschrieben werden als -\begin{equation} - F(z) = U(x,y) + iV(x,y) \qquad z \in \mathbb{C}; x,y \in \mathbb{R}. -\end{equation} -Dabei muss gelten, falls die Funktion differenzierbar ist, dass -\begin{equation} - \frac{\partial U(x,y)}{\partial x} - = - \frac{\partial V(x,y)}{\partial y} - \qquad - \frac{\partial V(x,y)}{\partial x} - = - -\frac{\partial U(x,y)}{\partial y}. -\end{equation} -Aus dieser Bedingung folgt -\begin{equation} - \label{parzyl_e_feld_zweite_ab} - \underbrace{ - \frac{\partial^2 U(x,y)}{\partial x^2} - + - \frac{\partial^2 U(x,y)}{\partial y^2} - = - 0 - }_{\nabla^2U(x,y)=0} - \qquad - \underbrace{ - \frac{\partial^2 V(x,y)}{\partial x^2} - + - \frac{\partial^2 V(x,y)}{\partial y^2} - = - 0 - }_{\nabla^2V(x,y) = 0}. -\end{equation} -Zusätzlich zeigen diese Bedingungen auch, dass die zwei Funktionen $U(x,y)$ und $V(x,y)$ orthogonal zueinander sind. -Der Zusammenhang zum elektrischen Feld ist jetzt, dass das Potential an einem quellenfreien Punkt gegeben ist als -\begin{equation} - \nabla^2\phi(x,y) = 0. -\end{equation} -Da dies bei komplexen differenzierbaren Funktionen gilt, wie Gleichung \ref{parzyl_e_feld_zweite_ab} zeigt, kann entweder $U(x,y)$ oder $V(x,y)$ von einer solchen Funktion als das Potential angesehen werden. Im weiteren wird für das Potential $U(x,y)$ verwendet. -Da die Funktion, welche nicht das Potential beschreibt, in weiteren angenommen als $V(x,y)$, orthogonal zum Potential ist, zeigt dies das Verhalten des elektrischen Feldes. -Um nun zu den parabolische Zylinderkoordinaten zu gelangen muss nur noch eine geeignete komplexe Funktion $F(z)$ gefunden werden, welche eine semi-infinite Platte beschreiben kann. Man könnte natürlich auch nach anderen Funktionen suchen, welche andere Bedingungen erfüllen und würde dann auf andere Koordinatensysteme stossen. Die gesuchte Funktion in diesem Fall ist -\begin{equation} - F(z) - = - \sqrt{z} +\subsection{Potenzreihenentwicklung + \label{parzyl:potenz}} +%Die parabolischen Zylinderfunktionen, welche in Gleichung \ref{parzyl:eq:solution_dgl} gegeben sind, +%können auch als Potenzreihen geschrieben werden +Die parabolischen Zylinderfunktionen können auch als Potenzreihen geschrieben werden. +Parabolische Zylinderfunktionen sind Linearkombinationen +$A(\alpha)w_1(\alpha, x) + B(\alpha)w_2(\alpha, x)$ aus einem geraden Teil $w_1(\alpha, x)$ +und einem ungeraden Teil $w_2(\alpha, x)$, welche als Potenzreihen geschrieben +\begin{align} + w_1(\alpha,x) + &= + e^{-x^2/4} \, + {}_{1} F_{1} + ( + \alpha, {\textstyle \frac{1}{2}} ; {\textstyle \frac{1}{2}}x^2) = - \sqrt{x + iy}. -\end{equation} -Dies kann umgeformt werden zu -\begin{equation} - F(z) + e^{-\frac{x^2}{4}} + \sum^{\infty}_{n=0} + \frac{\left ( \alpha \right )_{n}}{\left ( \frac{1}{2}\right )_{n}} + \frac{\left ( \frac{1}{2} x^2\right )^n}{n!} \\ + &= + e^{-\frac{x^2}{4}} + \left ( + 1 + + + \left ( 2\alpha \right )\frac{x^2}{2!} + + + \left ( 2\alpha \right )\left ( 2 + 2\alpha \right )\frac{x^4}{4!} + + + \dots + \right ) +\end{align} +und +\begin{align} + w_2(\alpha,x) + &= + xe^{-x^2/4} \, + {}_{1} F_{1} + ( + {\textstyle \frac{1}{2}} + + \alpha, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}x^2) = - \underbrace{\sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}}_{U(x,y)} - + - i\underbrace{\sqrt{\frac{\sqrt{x^2+y^2} - x}{2}}}_{V(x,y)} - . -\end{equation} -Die Äquipotentialflächen können nun betrachtet werden, indem man die Funktion welche das Potential beschreibt gleich eine Konstante setzt, + xe^{-\frac{x^2}{4}} + \sum^{\infty}_{n=0} + \frac{\left ( \frac{1}{2} + \alpha \right )_{n}}{\left ( \frac{3}{2}\right )_{n}} + \frac{\left ( \frac{1}{2} x^2\right )^n}{n!} \\ + &= + e^{-\frac{x^2}{4}} + \left ( + x + + + \left ( 1 + 2\alpha \right )\frac{x^3}{3!} + + + \left ( 1 + 2\alpha \right )\left ( 3 + 2\alpha \right )\frac{x^5}{5!} + + + \dots + \right ) +\end{align} +sind. + + +Die Potenzreihen sind in der Regel unendliche Reihen. +Es gibt allerdings die Möglichkeit, dass für bestimmte $\alpha$ die Terme in der Klammer gleich null werden +und die Reihe somit eine endliche Anzahl $n$ Summanden hat. +Dies geschieht bei $w_1(\alpha,x)$, falls \begin{equation} - \sigma = U(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}, + \alpha = -n \qquad n \in \mathbb{N}_0 +% \sigma = U(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}. +% c_1 = U(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}. \end{equation} -und die Flächen mit der gleichen elektrischen Feldstärke können als +und bei $w_2(\alpha,x)$ falls \begin{equation} - \tau = V(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} - x}{2}} + \alpha = -\frac{1}{2} - n \qquad n \in \mathbb{N}_0. \end{equation} -beschrieben werden. Diese zwei Gleichungen zeigen nun wie man vom kartesischen Koordinatensystem ins parabolische Zylinderkoordinatensystem kommt. Werden diese Formeln nun nach x und y aufgelöst so beschreibe sie, wie man aus dem parabolischen Zylinderkoordinatensystem zurück ins kartesische rechnen kann +Der Wert von $\alpha$ ist abhängig, ob man $D_n(x)$, $U(a,x)$ oder $V(a,x)$ verwendet. +Bei $D_n(x)$ gilt $\alpha = -{\textstyle \frac{1}{2}} n$ und bei $U(a,z)$ oder $V(a,x)$ gilt +$\alpha = {\textstyle \frac{1}{2}} a + {\textstyle \frac{1}{4}}$. +\subsection{Ableitung} +Die Ableitungen $\frac{\partial w_1(\alpha, x)}{\partial x}$ und $\frac{\partial w_2(\alpha, x)}{\partial x}$ +können mit den Eigenschaften der hypergeometrischen Funktionen in Abschnitt +\ref{buch:rekursion:hypergeometrisch:stammableitung} berechnet werden. +Zusammen mit der Produktregel ergeben sich die Ableitungen \begin{equation} - x = \sigma \tau, -\end{equation} + \frac{\partial w_1(\alpha,x)}{\partial x} = 2\alpha w_2(\alpha + \frac{1}{2}, x) - \frac{1}{2} x w_1(\alpha, x), +\end{equation} +und +%\begin{equation} +% \frac{\partial w_2(z,k)}{\partial z} = w_1(z, k -\frac{1}{2}) - \frac{1}{2} z w_2(z,k). +%\end{equation} \begin{equation} - y = \frac{1}{2}\left ( \tau^2 - \sigma^2 \right ) + \frac{\partial w_2(\alpha,x)}{\partial x} = e^{-x^2/4} \left( + x^{-1} w_2(\alpha, x) - \frac{x}{2} w_2(\alpha, x) + 2 x^2 \left(\frac{\alpha + 1}{3}\right) + {}_{1} F_{1} ( + {\textstyle \frac{3}{2}} + + \alpha, {\textstyle \frac{5}{2}} ; {\textstyle \frac{1}{2}}x^2) + \right) \end{equation} - - - - - +Nach dem selben Vorgehen können weitere Ableitungen berechnet werden. diff --git a/buch/papers/parzyl/teil3.tex b/buch/papers/parzyl/teil3.tex index 4e44bd6..4176b55 100644 --- a/buch/papers/parzyl/teil3.tex +++ b/buch/papers/parzyl/teil3.tex @@ -3,6 +3,157 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 3 -\label{parzyl:section:teil3}} -\rhead{Teil 3} + +\section{Anwendung in der Physik + \label{parzyl:section:teil2}} +\rhead{Anwendung in der Physik} + +Die parabolischen Zylinderkoordinaten tauchen auf, wenn man das elektrische Feld einer semi-infiniten Platte, wie in Abbildung \ref{parzyl:fig:leiterplatte} gezeigt, finden will. +\begin{figure} + \centering + \includegraphics[width=0.8\textwidth]{papers/parzyl/images/halfplane.pdf} + \caption{Semi-infinite Leiterplatte} + \label{parzyl:fig:leiterplatte} +\end{figure} +Die Äquipotentiallinien sind dabei in rot, die des elektrischen Feldes in grün und +semi-infinite Platte ist in blau dargestellt. +Das dies so ist, kann im Zweidimensionalen mit Hilfe von komplexen Funktionen gezeigt werden. Die Platte ist dann nur eine Halbgerade, was man in Abbildung \ref{parzyl:fig:leiterplatte_2d} sieht. +\begin{figure} + \centering + \includegraphics[width=0.6\textwidth]{papers/parzyl/img/Plane_2D.png} + \caption{Semi-infinite Leiterplatte dargestellt in 2D} + \label{parzyl:fig:leiterplatte_2d} +\end{figure} + +Jede komplexe Funktion $F(z)$ kann geschrieben werden als +\begin{equation} + F(s) = U(x,y) + iV(x,y) \quad s = x + iy \qquad s \in \mathbb{C}; x,y \in \mathbb{R}. +\end{equation} +Dabei müssen, falls die Funktion differenzierbar ist, die Cauchy-Riemann Differentialgleichungen +\begin{equation} + \frac{\partial U(x,y)}{\partial x} + = + \frac{\partial V(x,y)}{\partial y} + \qquad + \frac{\partial V(x,y)}{\partial x} + = + -\frac{\partial U(x,y)}{\partial y} +\end{equation} +gelten. +Aus dieser Bedingung folgt +\begin{equation} + \label{parzyl_e_feld_zweite_ab} + \underbrace{ + \frac{\partial^2 U(x,y)}{\partial x^2} + + + \frac{\partial^2 U(x,y)}{\partial y^2} + = + 0 + }_{\displaystyle{\nabla^2U(x,y)=0}} + \qquad + \underbrace{ + \frac{\partial^2 V(x,y)}{\partial x^2} + + + \frac{\partial^2 V(x,y)}{\partial y^2} + = + 0 + }_{\displaystyle{\nabla^2V(x,y) = 0}}. +\end{equation} +Zusätzlich kann auch gezeigt werden, dass die Funktion $F(z)$ eine winkeltreue Abbildung ist. + + +Der Zusammenhang zum elektrischen Feld ist jetzt, dass das Potential an einem quellenfreien Punkt gegeben ist als +\begin{equation} + \nabla^2\phi(x,y) = 0. +\end{equation} +Dies ist eine Bedingung, welche differenzierbare Funktionen, wie in Gleichung \eqref{parzyl_e_feld_zweite_ab} gezeigt wird, bereits besitzen. + + +Nun kann zum Beispiel $U(x,y)$ als das Potential angeschaut werden: +\begin{equation} + \phi(x,y) = U(x,y). +\end{equation} +Orthogonal zu den Äquipotenzialflächen sind die Feldlinien des elektrische Feld +\begin{equation} + E(x,y) = V(x,y). +\end{equation} + + +Um nun zu den parabolische Zylinderkoordinaten zu gelangen, muss nur noch eine geeignete +komplexe Funktion $F(s)$ gefunden werden, +welche eine semi-infinite Platte beschreiben kann. + + +Die gesuchte Funktion in diesem Fall ist +\begin{equation} + F(s) + = + \sqrt{s} + = + \sqrt{x + iy}. +\end{equation} +Dies kann umgeformt werden zu +\begin{equation} + F(s) + = + \underbrace{\sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}}_{\displaystyle{U(x,y)}} + + + i\underbrace{\sqrt{\frac{\sqrt{x^2+y^2} - x}{2}}}_{\displaystyle{V(x,y)}} + . +\end{equation} + + +%Die Äquipotentialflächen können nun betrachtet werden, +%indem man die Funktion, welche das Potential beschreibt, gleich eine Konstante setzt, +%\begin{equation} +% \sigma = U(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}. +%\end{equation} +%Die Flächen mit der gleichen elektrischen Feldstärke können als +%\begin{equation} +% \tau = V(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} - x}{2}} +%\end{equation} +%beschrieben werden. Diese zwei Gleichungen zeigen nun, wie man vom +%kartesischen Koordinatensystem ins parabolische Zylinderkoordinatensystem kommt. + +Die Äquipotentialflächen können nun betrachtet werden, +indem man die Funktion, welche das Potential beschreibt, gleich eine Konstante setzt, +\begin{equation} +% \sigma = U(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}. + c_1 = U(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}. +\end{equation} +Die Flächen mit der gleichen elektrischen Feldstärke können als +\begin{equation} +% \tau = V(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} - x}{2}} + c_2 = V(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} - x}{2}} +\end{equation} +beschrieben werden. Diese zwei Gleichungen zeigen nun, wie man vom +kartesischen Koordinatensystem ins parabolische Zylinderkoordinatensystem kommt. +%Werden diese Formeln nun nach $x$ und $y$ aufgelöst +%\begin{equation} +% x = \sigma \tau, +%\end{equation} +%\begin{equation} +% y = \frac{1}{2}\left ( \tau^2 - \sigma^2 \right ), +%\end{equation} +%so beschreibe sie, wie man aus dem parabolischen Zylinderkoordinatensystem zurück ins kartesische rechnen kann. +Werden diese Formeln nun nach $x$ und $y$ aufgelöst +\begin{align} + x &= c_1^2 - c_2^2 ,\\ + y &= 2c_1 c_2, +\end{align} +so beschreiben sie mit $\tau = c_1 \sqrt{2}$ und $\sigma = c_2 \sqrt{2}$ die Beziehung +zwischen dem parabolischen Zylinderkoordinatensystem und dem kartesischen Koordinatensystem. + +Nun wurde gezeigt, wieso sich das parabolische Zylinderkoordinatensystem am besten eignet, um +das Potential und das elektrische Feld einer semi-infiniten Leiterplatte zu beschreiben. +Um die Helmholtz-Gleichung in diesem Bereich zu lösen, +da man zum Beispiel am Verhalten einer elektromagnetische Welle in der Nähe +der Platte interessiert ist, kann man jetzt die parabolischen Zylinderfunktionen verwenden. +%Werden diese Formeln nun nach $x$ und $y$ aufgelöst +%\begin{equation} +% x = \sigma \tau, +%\end{equation} +%\begin{equation} +% y = \frac{1}{2}\left ( \tau^2 - \sigma^2 \right ), +%\end{equation} +%so beschreibe sie, wie man aus dem parabolischen Zylinderkoordinatensystem zurück ins kartesische rechnen kann.
\ No newline at end of file diff --git a/buch/papers/sturmliouville/.gitignore b/buch/papers/sturmliouville/.gitignore new file mode 100644 index 0000000..f08278d --- /dev/null +++ b/buch/papers/sturmliouville/.gitignore @@ -0,0 +1 @@ +*.pdf
\ No newline at end of file diff --git a/buch/papers/sturmliouville/Makefile b/buch/papers/sturmliouville/Makefile index da902e7..8d3e0af 100644 --- a/buch/papers/sturmliouville/Makefile +++ b/buch/papers/sturmliouville/Makefile @@ -1,9 +1,37 @@ # -# Makefile -- make file for the paper sturmliouville +# Makefile -- make file for the paper fm # # (c) 2020 Prof Dr Andreas Mueller # -images: - @echo "no images to be created in sturmliouville" +SOURCES := \ + einleitung.tex\ + eigenschaften.tex \ + beispiele.tex \ + main.tex +#TIKZFIGURES := \ + tikz/atoms-grid-still.tex \ + +#FIGURES := $(patsubst tikz/%.tex, figures/%.pdf, $(TIKZFIGURES)) + +#.PHONY: images +#images: $(FIGURES) + +#figures/%.pdf: tikz/%.tex +# mkdir -p figures +# pdflatex --output-directory=figures $< + +.PHONY: standalone +standalone: standalone.tex $(SOURCES) #$(FIGURES) + mkdir -p standalone + cd ../..; \ + pdflatex \ + --halt-on-error \ + --shell-escape \ + --output-directory=papers/sturmliouville/standalone \ + --extra-mem-top=10000000 \ + papers/sturmliouville/standalone.tex; + cd standalone; \ + bibtex standalone; \ + makeindex standalone;
\ No newline at end of file diff --git a/buch/papers/sturmliouville/Makefile.inc b/buch/papers/sturmliouville/Makefile.inc index e2039ce..4000fa7 100644 --- a/buch/papers/sturmliouville/Makefile.inc +++ b/buch/papers/sturmliouville/Makefile.inc @@ -3,12 +3,11 @@ # # (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule # -dependencies-sturmliouville = \ +dependencies-sturmliouville = \ papers/sturmliouville/packages.tex \ - papers/sturmliouville/main.tex \ + papers/sturmliouville/main.tex \ papers/sturmliouville/references.bib \ - papers/sturmliouville/teil0.tex \ - papers/sturmliouville/teil1.tex \ - papers/sturmliouville/teil2.tex \ - papers/sturmliouville/teil3.tex - + papers/sturmliouville/einleitung.tex \ + papers/sturmliouville/eigenschaften.tex \ + papers/sturmliouville/waermeleitung_beispiel.tex \ + papers/sturmliouville/tschebyscheff_beispiel.tex diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex new file mode 100644 index 0000000..0f1f235 --- /dev/null +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -0,0 +1,118 @@ +% +% eigenschaften.tex -- Eigenschaften der Lösungen +% Author: Erik Löffler +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% + +\section{Eigenschaften von Lösungen +\label{sturmliouville:sec:solution-properties}} +\rhead{Eigenschaften von Lösungen} + +Im Weiteren werden nun die Eigenschaften der Lösung eines +Sturm-Liouville-Problems diskutiert. +Im wesentlichen wird darauf eingegangen, wie die Orthogonalität der Lösungen +zustande kommt, damit diese später in den Beispielen verwendet werden kann. +Dazu wird zunächst das Eigenwertproblem für Matrizen wiederholt und angeschaut +unter welchen Voraussetzungen die Lösungen dieses Problems orthogonal sind. +Dann wird gezeigt, dass das Sturm-Liouville-Problem auch ein Eigenwertproblem +dieser Art ist und es wird auf au die Orthogonalität der Lösungsfunktionen +geschlossen. + +\subsection{Eigenwertprobleme mit symmetrischen Matrizen +\label{sturmliouville:sec:eigenvalue-problem-matrix}} + +% TODO: intro + +Angenomen es sei eine reelle, symmetrische $n \times n$-Matrix $A$ gegeben. +Dass $A$ symmetrisch ist, bedeutet, dass +\[ + \langle Av, w \rangle + = + \langle v, Aw \rangle + \qquad + v, w \in \mathbb{R}^n +\] +erfüllt ist. + +Für reelle, symmetrische Matrizen zeigt dies auch direkt, dass die Matrix +selbstadjungiert ist. +Das ist wichtig, da der Spektralsatz~\cite{sturmliouville:spektralsatz-wiki} +für selbstadjungierte Matrizen formuliert ist. Dieser sagt nun aus, dass die +Matrix $A$ diagonalisierbar ist. +In anderen Worten bilden die Eigenvektoren $v_i \in \mathbb{R}^n$ des +Eigenwertproblems +\[ + A v_i + = + \lambda_i v_i + \qquad \lambda_i \in \mathbb{R} +\] +eine Orthogonalbasis. + +\subsection{Das Sturm-Liouville-Problem als Eigenwertproblem} + +In Kapitel~\ref{buch:integrale:subsection:sturm-liouville-problem} wurde bereits +der Operator +\[ + L + = + \frac{1}{w(x)}\left( -\frac{d}{dx}p(x) \frac{d}{dx} + q(x)\right) +\] +eingeführt. +Dieser wird nun verwendet um die Differenzialgleichung +\[ + (p(x)y'(x))' + q(x)y(x) + = + \lambda w(x) y(x) +\] +in das Eigenwertproblem +\begin{equation} + \label{sturmliouville:eq:eigenvalue-problem} + L y + = + \lambda y. +\end{equation} +umzuschreiben. + +\subsection{Orthogonalität der Lösungsfunktionen} + +Nun wird das Eigenwertproblem~\eqref{sturmliouville:eq:eigenvalue-problem} näher +angeschaut. +Um auf die Orthogonalität der Lösungsfunktion zu schliessen, wird dafür der +Operator $L$ genauer betrachtet. +Analog zur Matrix $A$ aus +Abschnitt~\ref{sturmliouville:sec:eigenvalue-problem-matrix} kann auch für +$L$ gezeigt werden, dass dieser Operator selbstadjungiert ist. + +Dazu wird das modifizierte Skalarprodukt +\begin{equation} + \label{sturmliouville:eq:modified-dot-product} + \langle f, g \rangle_w + = + \int_a^b f(x)g(x)w(x)\,dx +\end{equation} +aus Kapitel~\ref{buch:integrale:subsection:sturm-liouville-problem} verwendet, +welches auch die Gewichtsfunktion $w(x)$ berücksichtigt. +Damit $L$ bezüglich dieses Skalarproduktes selbstadjungiert ist, muss also +\[ + \langle L u, v\rangle_w + = + \langle u, L v\rangle_w +\] +gelten. + +Wie in Kapitel~\ref{buch:integrale:subsection:sturm-liouville-problem} bereits +gezeigt, ist dies durch die +Randbedingungen~\eqref{sturmliouville:eq:randbedingungen} des +Sturm-Liouville-Problems sicher gestellt. + +Um nun über den Spektralsatz~\cite{sturmliouville:spektralsatz-wiki} auf die +Orthogonalität der Lösungsfunktion $y$ zu schliessen, muss der Operator $L$ ein +sogenannter ''kompakter Operator'' sein. +Bei einem regulären Sturm-Liouville-Problem ist diese Eigenschaft für $L$ +gegeben und wird im Weiteren nicht näher diskutiert. + +Es kann nun also dank dem Spektralsatz darauf geschlossen werden, dass die +Lösungsfunktion $y$ eines regulären Sturm-Liouville-Problems eine +Linearkombination aus orthogonalen Basisfunktionen sein muss. diff --git a/buch/papers/sturmliouville/einleitung.tex b/buch/papers/sturmliouville/einleitung.tex new file mode 100644 index 0000000..16dba19 --- /dev/null +++ b/buch/papers/sturmliouville/einleitung.tex @@ -0,0 +1,124 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% Author: Réda Haddouche +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% + +\section{Was ist das Sturm-Liouville-Problem\label{sturmliouville:section:teil0}} +\rhead{Was ist das Sturm-Liouville-Problem} +Das Sturm-Liouville-Problem wurde benannt nach dem schweizerisch-französischen +Mathematiker und Physiker Jacques Charles Fran\c{c}ois Sturm und dem +französischen Mathematiker Joseph Liouville. +Gemeinsam haben sie in der mathematischen Physik die Sturm-Liouville-Theorie +entwickelt. +Diese gilt für die Lösung von gewöhnlichen Differentialgleichungen. +Handelt es sich um eine partielle +Differentialgleichung, kann man sie mittels Separation in +mehrere gewöhnliche Differentialgleichungen umwandeln. + +\begin{definition} + \index{Sturm-Liouville-Gleichung}% +Wenn die lineare homogene Differentialgleichung +\[ + \frac{d^2y}{dx^2} + a(x)\frac{dy}{dx} + b(x)y = 0 +\] +als +\begin{equation} + \label{sturmliouville:eq:sturm-liouville-equation} + \frac{d}{dx} \biggl ( p(x) \frac{dy}{dx}\biggr ) + (q(x) + + \lambda w(x)) y + = + 0 +\end{equation} +geschrieben werden kann, dann wird die +Gleichung~\eqref{sturmliouville:eq:sturm-liouville-equation} als +Sturm-Liouville-Gleichung bezeichnet. +\end{definition} +Alle homogenen linearen gewöhnlichen Differentialgleichungen 2. Ordnung können +in die Form der Gleichung \eqref{sturmliouville:eq:sturm-liouville-equation} +umgewandelt werden. + +Damit es sich um ein Sturm-Liouville-Problem handelt, benötigt es noch die +Randbedingungen, die im nächsten Unterkapitel behandelt werden. + +\subsection{Randbedingungen +\label{sturmliouville:sub:was-ist-das-slp-randbedingungen}} +Geeignete Randbedingungen sind erforderlich, um die Lösungen einer +Differentialgleichung eindeutig zu bestimmen. +Die Sturm-Liouville-Gleichung mit homogenen Randbedingungen des dritten Typs +\begin{equation} + \begin{aligned} + \label{sturmliouville:eq:randbedingungen} + k_a y(a) + h_a p(a) y'(a) &= 0 \\ + k_b y(b) + h_b p(b) y'(b) &= 0 + \end{aligned} +\end{equation} +ist das klassische Sturm-Liouville-Problem. + + +\subsection{Koeffizientenfunktionen +\label{sturmliouville:sub:koeffizientenfunktionen}} +Die Funktionen $p(x)$, $q(x)$ und $w(x)$ werden als Koeffizientenfunktionen +bezeichnet. +Diese Funktionen erhält man, indem man eine Differentialgleichung in die +Sturm-Liouville-Form bringt und dann die Koeffizientenfunktionen vergleicht. +Die Funktion $w(x)$ (manchmal auch $r(x)$ genannt) wird als Gewichtsfunktion +oder Dichtefunktion bezeichnet. +Die Eigenschaften der Koeffizientenfunktionen haben +einen großen Einfluss auf die Lösbarkeit des Sturm-Liouville-Problems und werden +im nächsten Abschnitt diskutiert. + +% +%Kapitel mit "Das reguläre Sturm-Liouville-Problem" +% + +\subsection{Das reguläre und singuläre Sturm-Liouville-Problem +\label{sturmliouville:sub:reguläre_sturm_liouville_problem}} +Damit es sich um ein reguläres Sturm-Liouville-Problem handelt, müssen einige +Bedingungen beachtet werden. +\begin{definition} + \label{sturmliouville:def:reguläres_sturm-liouville-problem} + \index{regläres Sturm-Liouville-Problem} + Die Bedingungen für ein reguläres Sturm-Liouville-Problem sind: + \begin{itemize} + \item Die Funktionen $p(x), p'(x), q(x)$ und $w(x)$ müssen stetig und + reell sein + \item sowie in einem endlichen Intervall $[a,b]$ integrierbar + sein. + \item $p(x)$ und $w(x)$ sind $>0$. + \item Es gelten die Randbedingungen + \eqref{sturmliouville:eq:randbedingungen}, wobei + $|k_i|^2 + |h_i|^2\ne 0$ mit $i=a,b$. + \end{itemize} +\end{definition} +Wird eine oder mehrere dieser Bedingungen nicht erfüllt, so handelt es sich um +ein singuläres Sturm-Liouville-Problem. + +\begin{beispiel} + Das Randwertproblem + \begin{equation} + \begin{aligned} + x^2y'' + xy' + (\lambda^2x^2 - m^2)y &= 0 \qquad 0<x<a,\\ + y(a) &= 0 + \end{aligned} + \end{equation} + ist kein reguläres Sturm-Liouville-Problem. + Wenn man die Gleichung in die Sturm-Liouville Form umformt, dann + erhält man + die Koeffizientenfunktionen $p(x) = w(x) = x$ und $q(x) = -m^2/x$. + Schaut man jetzt die Bedingungen in + Definition~\ref{sturmliouville:def:reguläres_sturm-liouville-problem} an und + vergleicht diese mit unseren Koeffizientenfunktionen, so erkennt man einige + Probleme: + \begin{itemize} + \item $p(x)$ und $w(x)$ sind nicht positiv, wenn $x = 0$ ist. + \item $q(x)$ ist nicht kontinuierlich, wenn $x = 0$ ist. + \item Die Randbedingung bei $x = 0$ und $x = a$ fehlt. + \end{itemize} +\end{beispiel} + +Bei einem regulärem Problem, besteht die Lösung nur aus Eigenvektoren. +Handelt es sich um ein singuläres Problem, so besteht die Lösung im Allgemeinen +nicht mehr nur aus Eigenvektoren. + diff --git a/buch/papers/sturmliouville/main.tex b/buch/papers/sturmliouville/main.tex index a7d2857..b18e220 100644 --- a/buch/papers/sturmliouville/main.tex +++ b/buch/papers/sturmliouville/main.tex @@ -1,36 +1,34 @@ +% !TeX root = ../../buch.tex % % main.tex -- Paper zum Thema <sturmliouville> % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:sturmliouville}} -\lhead{Thema} +\chapter{Sturm-Liouville-Problem\label{chapter:sturmliouville}} +\lhead{Sturm-Liouville-Problem} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Réda Haddouche und Erik Löffler} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} +In diesem Kapitel wird zunächst nochmals ein Überblick über das +Sturm-Liouville-Problem und dessen Randbedingungen gegeben. +Dann wird ein Zusammenhang zwischen reellen symmetrischen Matrizen und +dem Sturm-Liouville-Operator $L$ hergestellt, um auf die Orthogonalität der +Lösungsfunktionen zu schliessen. +Zuletzt wird anhand von zwei Beispielen gezeigt, dass durch das +Sturm-Liouville-Problem die Eigenschaften der Lösungen bereits vor dem +vollständingen Lösen der Beispiele bekannt sind. -\input{papers/sturmliouville/teil0.tex} -\input{papers/sturmliouville/teil1.tex} -\input{papers/sturmliouville/teil2.tex} -\input{papers/sturmliouville/teil3.tex} +%einleitung "was ist das sturm-liouville-problem" +\input{papers/sturmliouville/einleitung.tex} + +%Eigenschaften von Lösungen eines solchen Problems +\input{papers/sturmliouville/eigenschaften.tex} + +% Fourier: Erik work +\input{papers/sturmliouville/waermeleitung_beispiel.tex} + +% Tschebyscheff +\input{papers/sturmliouville/tschebyscheff_beispiel.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/sturmliouville/references.bib b/buch/papers/sturmliouville/references.bib index f66a74d..0c4724b 100644 --- a/buch/papers/sturmliouville/references.bib +++ b/buch/papers/sturmliouville/references.bib @@ -4,6 +4,19 @@ % (c) 2020 Autor, Hochschule Rapperswil % +@online{sturmliouville:spektralsatz-wiki, + title = {Spektralsatz}, + url = {https://de.wikipedia.org/wiki/Spektralsatz}, + date = {2020-08-15}, + year = {2020}, + month = {8}, + day = {15} +} + +% +% examples (not referenced in book) +% + @online{sturmliouville:bibtex, title = {BibTeX}, url = {https://de.wikipedia.org/wiki/BibTeX}, diff --git a/buch/papers/sturmliouville/teil0.tex b/buch/papers/sturmliouville/teil0.tex deleted file mode 100644 index ffcb8f3..0000000 --- a/buch/papers/sturmliouville/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{sturmliouville:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{sturmliouville:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/sturmliouville/teil1.tex b/buch/papers/sturmliouville/teil1.tex deleted file mode 100644 index c23c1d6..0000000 --- a/buch/papers/sturmliouville/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{sturmliouville:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{sturmliouville:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{sturmliouville:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{sturmliouville:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{sturmliouville:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/sturmliouville/teil2.tex b/buch/papers/sturmliouville/teil2.tex deleted file mode 100644 index 7fc3d2c..0000000 --- a/buch/papers/sturmliouville/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{sturmliouville:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{sturmliouville:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/sturmliouville/teil3.tex b/buch/papers/sturmliouville/teil3.tex deleted file mode 100644 index 3aa1b40..0000000 --- a/buch/papers/sturmliouville/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{sturmliouville:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{sturmliouville:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex new file mode 100644 index 0000000..341a358 --- /dev/null +++ b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex @@ -0,0 +1,107 @@ +% +% tschebyscheff_beispiel.tex +% Author: Réda Haddouche +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% + +\section{Beispiel: Tschebyscheff-Polynome +\label{sturmliouville:sub:tschebyscheff-polynome}} +\rhead{Tschebyscheff-Polynome} +In diesem Unterkapitel wird anhand der +Tschebyscheff-Differentialgleichung~\eqref{buch:potenzen:tschebyscheff:dgl} +gezeigt, dass die Tschebyscheff-Polynome orthogonal zueinander sind. +Zu diesem Zweck werden die Koeffizientenfunktionen nochmals dargestellt, so dass +überprüft werden kann, ob die Randbedingungen erfüllt werden. +Sobald feststeht, ob das Problem regulär oder singulär ist, zeigt eine +kleine Rechnung, dass die Lösungen orthogonal sind. + +\subsection*{Definition der Koeffizientenfunktion} +Im Kapitel \ref{sub:beispiele_sturm_liouville_problem} sind die +Koeffizientenfunktionen, die man braucht, schon aufgelistet: +\begin{align*} + w(x) &= \frac{1}{\sqrt{1-x^2}}, \\ + p(x) &= \sqrt{1-x^2}, \\ + q(x) &= 0. +\end{align*} +Da die Sturm-Liouville-Gleichung +\begin{equation} + \label{eq:sturm-liouville-equation-tscheby} + \frac{d}{dx} \biggl (\sqrt{1-x^2} \frac{dy}{dx}\biggr ) + + \biggl (0 + \lambda \frac{1}{\sqrt{1-x^2}}\biggr ) y + = + 0 +\end{equation} +nun mit den Koeffizientenfunktionen aufgestellt werden kann, bleibt die Frage, +ob es sich um ein reguläres oder singuläres Sturm-Liouville-Problem handelt. +Zunächst werden jedoch die Randbedingungen betrachtet. + +\subsection*{Randwertproblem} +Für die Verifizierung der Randbedingungen benötigt man erneut $p(x)$. +Die Randwerte setzt man $a = -1$ und $b = 1$. +Beim Einsetzen in die Randbedingung \eqref{sturmliouville:eq:randbedingungen}, +erhält man +\begin{equation} + \begin{aligned} + k_a y(-1) + h_a p(-1) y'(-1) &= 0\\ + k_b y(1) + h_b p(1) y'(1) &= 0. + \end{aligned} +\end{equation} +Die Funktion $y(x)$ und $y'(x)$ sind in diesem Fall die Tschebyscheff Polynome +(siehe \ref{sub:definiton_der_tschebyscheff-Polynome}). +Die Funktion $y(x)$ wird nun mit der Funktion $T_n(x)$ ersetzt und für die +Verifizierung der Randbedingung wählt man $n=0$. +Somit erhält man +\begin{equation} + \begin{aligned} + k_a T_0(-1) + h_a p(-1) T_{0}'(-1) &= k_a = 0\\ + k_b T_0(1) + h_b p(1) T_{0}'(1) &= k_b = 0. + \end{aligned} +\end{equation} +Ähnlich wie beim Beispiel der Wärmeleitung in einem homogenen Stab können, +damit die Bedingung $|k_i|^2 + |h_i|^2\ne 0$ erfüllt ist, beliebige +$h_a \ne 0$ und $h_b \ne 0$ gewählt werden. +Es wurde somit gezeigt, dass die Sturm-Liouville-Randbedingungen erfüllt sind. + +\subsection*{Handelt es sich um ein reguläres oder singuläres Problem?} +Für das reguläre Problem muss laut der +Definition~\ref{sturmliouville:def:reguläres_sturm-liouville-problem} die funktion +$p(x) = \sqrt{1-x^2}$, $p'(x) = -2x$, $q(x) = 0$ und +$w(x) = \frac{1}{\sqrt{1-x^2}}$ stetig und reell sein. +Auf dem Intervall $(-1,1)$ sind die Tschebyscheff-Polynome erster Art +\begin{equation} + T_n(x) + = + \cos n (\arccos x). +\end{equation} +Die nächste Bedingung, laut der Definition \ref{sturmliouville:def:reguläres_sturm-liouville-problem}, beinhaltet, dass die Funktion $p(x)$ und $w(x)>0$ sein +müssen. +Die Funktion +\begin{equation*} + p(x)^{-1} = \frac{1}{\sqrt{1-x^2}} +\end{equation*} +ist die gleiche wie $w(x)$ und erfüllt die Bedingung. +Es zeigt sich also, dass $p(x)$, $p'(x)$, $q(x)$ und $w(x)$ +die Bedingungen erfüllen. +Da auch die Randbedingungen erfüllt sind, handelt es sich um ein reguläres Sturm-Liouville-Problem. + + +\begin{beispiel} + In diesem Beispiel wird zuletzt die Orthogonalität der Lösungsfunktion + illustriert. + Dazu verwendet man das Skalarprodukt + \[ + \int_{a}^{b} w(x) y_m(x) y_n(x) = 0. + \] + mit $y_m(x) = T_1(x)$ und $y_n(x) = T_2(x)$, sowie $a=-1$ und $b = 1$. + Eigesetzt ergibt dies + \[ + \begin{aligned} + \int_{-1}^{1} \frac{1}{\sqrt{1-x^2}} x (2x^2-1) dx &= + \biggl [ - \frac{\sqrt{1-x^2}(2x^2+1)}{3} \biggr ]_{-1}^{1}\\ + &= 0. + \end{aligned} + \] + Somit ist gezeigt, dass $T_1(x)$ und $T_2(x)$ orthogonal sind. + Analog kann Orthogonalität für alle $y_n(x)$ und $y_m(x)$ mit $n \ne m$ gezeigt werden. +\end{beispiel} diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex new file mode 100644 index 0000000..93a1eb0 --- /dev/null +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -0,0 +1,773 @@ +% +% waermeleitung_beispiel.tex -- Beispiel Wärmeleitung in homogenem Stab. +% Author: Erik Löffler +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% + +\section{Beispiel: Wärmeleitung in homogenem Stab} + +In diesem Abschnitt wird das Problem der Wärmeleitung in einem homogenen Stab +betrachtet, angeschaut wie das Sturm-Liouville-Problem bei der Beschreibung +dieses physikalischen Phänomens auftritt und hergeleitet wie die Fourierreihe +als Lösung des Problems zustande kommt. + +Zunächst wird ein eindimensionaler homogener Stab der Länge $l$ und +Wärmeleitkoeffizient $\kappa$ betrachtet, dessen initiale Wärmeverteilung durch +$u(t=0, x)$ gegeben ist. +Es ergibt sich für das Wärmeleitungsproblem die partielle Differentialgleichung +\begin{equation} + \label{sturmliouville:eq:example-fourier-heat-equation} + \frac{\partial u(t, x)}{\partial t} = + \kappa \frac{\partial^{2}u(t, x)}{{\partial x}^{2}}, +\end{equation} +wobei der Stab in diesem Fall auf der $x$-Achse im Intervall $[0,l]$ liegt. + +Damit die Sturm-Liouville-Theorie auf das +Problem~\eqref{sturmliouville:eq:example-fourier-heat-equation} angewendet +werden kann, werden noch Randbedingungen benötigt, welche in Kürze +vorgestellt werden. +Aus physikalischer Sicht geben diese Randbedingungen vor, ob die Enden des +Stabes thermisch isoliert sind oder ob sie auf konstanter Temperatur gehalten +werden. + +% +% Randbedingungen für Stab mit konstanten Endtemperaturen +% +\subsection{Randbedingungen} +\subsubsection{Randbedingungen für Stab mit Enden auf konstanter Temperatur} + +Die Enden des Stabes auf konstanter Temperatur zu halten bedeutet, dass die +Lösungsfunktion $u(t,x)$ bei $x = 0$ und $x = l$ nur die vorgegebene +Temperatur zurückgeben darf. Diese wird einfachheitshalber als $0$ angenomen. +Es folgt nun +\begin{equation} + \label{sturmliouville:eq:example-fourier-boundary-condition-ends-constant} + u(t,0) + = + u(t,l) + = + 0 +\end{equation} +als Randbedingungen. + +% +% Randbedingungen für Stab mit isolierten Enden +% + +\subsubsection{Randbedingungen für Stab mit isolierten Enden} + +Bei isolierten Enden des Stabes können grundsätzlich beliebige Temperaturen für +$x = 0$ und $x = l$ auftreten. +Die einzige Einschränkung liefert die initiale Wärmeverteilung $u(0, x)$. +Im Fall des isolierten Stabes ist es nicht erlaubt, dass Wärme vom Stab +an die Umgebung oder von der Umgebung an den Stab abgegeben wird. + +Aus der Physik ist bekannt, dass Wärme immer von der höheren zur tieferen +Temperatur fliesst. Um Wärmefluss zu unterdrücken, muss also dafür gesorgt +werden, dass am Rand des Stabes keine Temperaturdifferenz existiert oder +dass die partiellen Ableitungen von $u(t,x)$ nach $x$ bei $x = 0$ und $x = l$ +verschwinden. +Somit folgen +\begin{equation} + \label{sturmliouville:eq:example-fourier-boundary-condition-ends-isolated} + \frac{\partial}{\partial x} u(t, 0) + = + \frac{\partial}{\partial x} u(t, l) + = + 0 +\end{equation} +als Randbedingungen. + +% +% Lösung der Differenzialgleichung mittels Separation +% + +\subsection{Separation der Differenzialgleichung +\label{sturmliouville:subsec:separation}} + +Da die Lösungsfunktion $u$ von zwei Variablen abhängig ist, wird die +Gleichung~\eqref{sturmliouville:eq:example-fourier-heat-equation} zunächst +mittels Separation in zwei gewöhnliche Differentialgleichungen überführt. +Dazu wird +\[ + u(t,x) + = + T(t)X(x) +\] +in die partielle +Differenzialgleichung~\eqref{sturmliouville:eq:example-fourier-heat-equation} +eingesetzt. +Daraus ergibt sich +\[ + T^{\prime}(t)X(x) + = + \kappa T(t)X^{\prime \prime}(x) +\] +als neue Form. + +Nun können alle von $t$ abhängigen Ausdrücke auf die linke Seite, sowie alle +von $x$ abhängigen Ausdrücke auf die rechte Seite gebracht werden und mittels +der neuen Variablen $\mu$ gekoppelt werden: +\[ + \frac{T^{\prime}(t)}{\kappa T(t)} + = + \frac{X^{\prime \prime}(x)}{X(x)} + = + \mu. +\] +Durch die Einführung von $\mu$ kann das Problem nun in zwei separate +Differenzialgleichungen aufgeteilt werden: +\begin{equation} + \label{sturmliouville:eq:example-fourier-separated-x} + X^{\prime \prime}(x) - \mu X(x) + = + 0 +\end{equation} +\begin{equation} + \label{sturmliouville:eq:example-fourier-separated-t} + T^{\prime}(t) - \kappa \mu T(t) + = + 0. +\end{equation} + +% +% Überprüfung SLP, dann Orthogonalität der Lösungen +% + +An dieser Stelle wird nun gezeigt, dass die Gleichung in $x$ ein +Sturm-Liouville-Problem ist. +Dazu werden zunächst die Koeffizientenfunktionen $p(x)$, $q(x)$ und $w(x)$ +benötigt. +Um diese zu erhalten, wird die +Gleichung~\eqref{sturmliouville:eq:example-fourier-separated-x} mit der +Sturm-Liouville-Form~\eqref{sturmliouville:eq:sturm-liouville-equation} +verglichen, was zu +\[ +\begin{aligned} + p(x) &= 1 \\ + q(x) &= 0 \\ + w(x) &= 1 +\end{aligned} +\] +führt. + +Diese können bereits auf die Bedingungen in +Definition~\ref{sturmliouville:def:reguläres_sturm-liouville-problem} geprüft +werden. +Es ist schnell ersichtlich, dass die ersten drei Kriterien erfüllt sind. +Werden nun auch noch die Randbedingungen erfüllt, handelt es sich also um ein +reguläres Sturm-Liouville-Problem und es kann bereits die Aussage gemacht +werden, dass alle Lösungen für die Gleichung in $x$ orthogonal sein werden. + +Da die Bedingungen des Stab-Problems nur Anforderungen an $x$ stellen, können +diese direkt für $X(x)$ übernomen werden. +Es gilt also beispielsweise wegen +\eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-constant}, +dass $X(0) = X(l) = 0$. + +Damit die Lösungen von $X$ orthogonal sind, müssen also die Gleichungen +\begin{equation} +\begin{aligned} + \label{sturmliouville:eq:example-fourier-randbedingungen} + k_a X(a) + h_a p(a) X'(a) &= 0 \\ + k_b X(b) + h_b p(b) X'(b) &= 0 +\end{aligned} +\end{equation} +erfüllt sein und es muss ausserdem +\begin{equation} +\begin{aligned} + \label{sturmliouville:eq:example-fourier-coefficient-constraints} + |k_a|^2 + |h_a|^2 &\neq 0\\ + |k_b|^2 + |h_b|^2 &\neq 0\\ +\end{aligned} +\end{equation} +gelten. + +Es werden nun $p(x)$ und die +Randbedingungen~\eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-constant} +des Stab-Problems in \eqref{sturmliouville:eq:example-fourier-randbedingungen} +eigesetzt und man erhält +\[ +\begin{aligned} + k_a y(0) + h_a y'(0) &= h_a y'(0) = 0 \\ + k_b y(l) + h_b y'(l) &= h_b y'(l) = 0. +\end{aligned} +\] +Damit die Gleichungen erfüllt sind, müssen $h_a = 0$ und $h_b = 0$ sein. +Zusätzlich müssen aber die +Bedingungen~\eqref{sturmliouville:eq:example-fourier-coefficient-constraints} +erfüllt sein und da $y(0) = 0$ und $y(l) = 0$ sind, können belibige $k_a \neq 0$ +und $k_b \neq 0$ gewählt werden. + +Somit ist gezeigt, dass die Randbedingungen des Stab-Problems für Enden auf +konstanter Temperatur auch die Sturm-Liouville-Randbedingungen erfüllen. + +Daraus folg zunächst, dass es sich um ein reguläres Sturm-Liouville-Problem +handelt und weiter, dass alle daraus resultierenden Lösungen orthogonal sind. +Analog dazu kann gezeit werden, dass die Randbedingungen für einen Stab mit +isolierten +Enden~\eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-isolated} +ebenfalls die Sturm-Liouville-Randbedingungen erfüllen und +somit auch zu orthogonalen Lösungen führen. + +% +% Lösung von X(x), Teil mu +% + +\subsection{Lösung der Differentialgleichung in \texorpdfstring{$x$}{x}} +Als erstes wird auf die +Gleichung~\eqref{sturmliouville:eq:example-fourier-separated-x} eingegangen. +Aufgrund der Struktur der Gleichung +\[ + X^{\prime \prime}(x) - \mu X(x) + = + 0 +\] +wird ein trigonometrischer Ansatz gewählt. +Die Lösungen für $X(x)$ sind also von der Form +\[ + X(x) + = + A \cos \left( \alpha x\right) + B \sin \left( \beta x\right). +\] + +Dieser Ansatz wird nun solange differenziert, bis alle in +Gleichung~\eqref{sturmliouville:eq:example-fourier-separated-x} enthaltenen +Ableitungen vorhanden sind. +Man erhält also +\[ + X^{\prime}(x) + = + - \alpha A \sin \left( \alpha x \right) + + \beta B \cos \left( \beta x \right) +\] +und +\[ + X^{\prime \prime}(x) + = + -\alpha^{2} A \cos \left( \alpha x \right) - + \beta^{2} B \sin \left( \beta x \right). +\] + +Eingesetzt in Gleichung~\eqref{sturmliouville:eq:example-fourier-separated-x} +ergibt dies +\[ + -\alpha^{2}A\cos(\alpha x) - \beta^{2}B\sin(\beta x) - + \mu\left(A\cos(\alpha x) + B\sin(\beta x)\right) + = + 0 +\] +und durch Umformen somit +\[ + -\alpha^{2}A\cos(\alpha x) - \beta^{2}B\sin(\beta x) + = + \mu A\cos(\alpha x) + \mu B\sin(\beta x). +\] + +Mittels Koeffizientenvergleich auf beiden Seiten von +\[ +\begin{aligned} + -\alpha^{2}A\cos(\alpha x) + &= + \mu A\cos(\alpha x) + \\ + -\beta^{2}B\sin(\beta x) + &= + \mu B\sin(\beta x) +\end{aligned} +\] +ist schnell ersichtlich, dass $ \mu = -\alpha^{2} = -\beta^{2} $ gelten muss für +$ A \neq 0 $ oder $ B \neq 0 $. +Zur Berechnung von $ \mu $ bleiben also noch $ \alpha $ und $ \beta $ zu +bestimmen. +Dazu werden nochmals die +Randbedingungen~\eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-constant} +und \eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-isolated} +benötigt. + +Da die Koeffizienten $A$ und $B$, sowie die Parameter $\alpha$ und $\beta$ im +Allgemeinen ungleich $0$ sind, müssen die Randbedingungen durch die +trigonometrischen Funktionen erfüllt werden. + +\subsubsection{Einsetzen der +Randbedingungen~\eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-constant}} + +Es werden nun die +Randbedingungen~\eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-constant} +für einen Stab mit Enden auf konstanter Temperatur in die +Gleichung~\eqref{sturmliouville:eq:example-fourier-separated-x} eingesetzt. + +Betrachten wir zunächst die Bedingung für $x = 0$. +Dies führt zu +\[ + X(0) + = + A \cos(0 \alpha) + B \sin(0 \beta) + = + 0. +\] +Da $\cos(0) \neq 0$ ist, muss in diesem Fall $A = 0$ gelten. +Für den zweiten Summanden ist wegen $\sin(0) = 0$ die Randbedingung erfüllt. + +Wird nun die zweite Randbedingung für $x = l$ mit $A = 0$ eingesetzt, ergibt +sich +\[ + X(l) + = + 0 \cos(\alpha l) + B \sin(\beta l) + = + B \sin(\beta l) + = 0. +\] +$\beta$ muss also so gewählt werden, dass $\sin(\beta l) = 0$ gilt. +Es bleibt noch nach $\beta$ aufzulösen: +\[ +\begin{aligned} + \sin(\beta l) &= 0 \\ + \beta l &= n \pi \qquad n \in \mathbb{N}_0 \\ + \beta &= \frac{n \pi}{l} \qquad n \in \mathbb{N}_0. +\end{aligned} +\] + +Es folgt nun wegen $\mu = -\beta^{2}$, dass +\[ + \mu_1 = -\beta^{2} = -\frac{n^{2}\pi^{2}}{l^{2}} +\] +sein muss. +Ausserdem ist zu bemerken, dass dies auch gleich $-\alpha^{2}$ ist. +Da aber $A = 0$ gilt und der Summand mit $\alpha$ verschwindet, ist dies keine +Verletzung der Randbedingungen. + +\subsubsection{Einsetzen der +Randbedingungen~\eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-isolated}} + +Durch analoges Vorgehen kann nun auch das Problem mit isolierten Enden gelöst +werden. +Setzt man die +Randbedingungen~\eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-isolated} +in $X^{\prime}$ ein, beginnend mit $x = 0$, ergibt sich +\[ + X^{\prime}(0) + = + -\alpha A \sin(0 \alpha) + \beta B \cos(0 \beta) + = 0. +\] +In diesem Fall muss $B = 0$ gelten. +Zusammen mit der Bedignung für $x = l$ +folgt nun +\[ + X^{\prime}(l) + = + - \alpha A \sin(\alpha l) + 0 \beta \cos(\beta l) + = + - \alpha A \sin(\alpha l) + = 0. +\] + +Wiederum muss über die $\sin$-Funktion sicher gestellt werden, dass der +Ausdruck den Randbedingungen entspricht. +Es folgt nun +\[ +\begin{aligned} + \sin(\alpha l) &= 0 \\ + \alpha l &= n \pi \qquad n \in \mathbb{N}_0 \\ + \alpha &= \frac{n \pi}{l} \qquad n \in \mathbb{N}_0 +\end{aligned} +\] +und somit +\[ + \mu_2 = -\alpha^{2} = -\frac{n^{2}\pi^{2}}{l^{2}}. +\] + +Es ergibt sich also sowohl für einen Stab mit Enden auf konstanter Temperatur +wie auch für den Stab mit isolierten Enden +\begin{equation} + \label{sturmliouville:eq:example-fourier-mu-solution} + \mu + = + -\frac{n^{2}\pi^{2}}{l^{2}}. +\end{equation} + +\subsection{Fourierreihe als Lösung} + +Das Resultat~\eqref{sturmliouville:eq:example-fourier-mu-solution} gibt nun +wegen der neuen Variablen $n \in \mathbb{N}_0$ vor, dass es potenziell +unendlich viele Lösungen gibt. +Dies bedeutet auch, dass es nicht ein $A$ und ein $B$ gibt, sondern einen +Koeffizienten für jede Lösungsfunktion. +Wir schreiben deshalb den Lösungsansatz zur Linearkombination +\[ + X(x) + = + \sum_{n = 0}^{\infty} a_n\cos\left(\frac{n\pi}{l}x\right) + + + \sum_{n = 0}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right) +\] +aus allen möglichen Lösungen um. + +Als nächstes werden noch die Summanden für $n = 0$ aus den Summen herausgezogen. +Da +\[ + \begin{aligned} + a_0 \cos\left(\frac{0 \pi}{l}\right) &= a_0 \\ + b_0 \sin\left(\frac{0 \pi}{l}\right) &= 0 + \end{aligned} +\] +gilt, endet man somit bei +\[ + X(x) + = + a_0 + + + \sum_{n = 1}^{\infty} a_n\cos\left(\frac{n\pi}{l}x\right) + + + \sum_{n = 1}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right). +\] +Dies ist die allgemeine Fourierreihe, welche unsere Stab-Probleme löst. +Wie zuvor bereits erwähnt, wissen wir, dass sämtliche Lösungsfunktionen +orthogonal zueinander sind bezüglich des +Skalarproduktes~\eqref{sturmliouville:eq:modified-dot-product}. +Dieses vereinfacht sich noch etwas, da aus +Abschnitt~\ref{sturmliouville:subsec:separation} bereits $w(x) = 1$ gegeben ist. +Somit ist das Skalarprodukt +\begin{equation} + \label{sturmliouville:eq:example-fourier-dot-product} + \langle f, g \rangle_w + = + \int_a^b f(x)g(x)w(x)\,dx + = + \int_a^b f(x)g(x)\,dx. +\end{equation} + +Es gilt also +\[ +\begin{aligned} + \int_{-l}^{l}\cos\left(\frac{n \pi}{l}x\right) + \cos\left(\frac{m \pi}{l}x\right)dx + &= 0 \qquad n \neq m \\ + \int_{-l}^{l}\sin\left(\frac{n \pi}{l}x\right) + \sin\left(\frac{m \pi}{l}x\right)dx + &= 0 \qquad n \neq m \\ + \int_{-l}^{l}\cos\left(\frac{n \pi}{l}x\right) + \sin\left(\frac{m \pi}{l}x\right)dx + &= 0. +\end{aligned} +\] + +\subsubsection{Berechnung der Fourierkoeffizienten} + +% +% Lösung von X(x), Teil: Koeffizienten a_n und b_n mittels skalarprodukt. +% + +Um eine eindeutige Lösung für $X(x)$ zu erhalten wird nun die initiale +Wärmeverteilung oder $u(0, x) = X(x)$ für $t = 0$ benötigt. +Es gilt also nun die Gleichung +\begin{equation} + \label{sturmliouville:eq:example-fourier-initial-conditions} + u(0, x) + = + a_0 + + + \sum_{n = 1}^{\infty} a_n\cos\left(\frac{n\pi}{l}x\right) + + + \sum_{n = 1}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right) +\end{equation} +nach allen $a_n$ und $b_n$ aufzulösen. +Da aber $a_n$ und $b_n$ jeweils als Faktor zu einer trigonometrischen Funktion +gehört, von der wir wissen, dass sie orthogonal zu allen anderen +trigonometrischen Funktionen der Lösung ist, kann direkt das +Skalarprodukt~\eqref{sturmliouville:eq:example-fourier-dot-product} +verwendet werden um die Koeffizienten $a_n$ und $b_n$ zu bestimmen. +Es wird also die Tatsache ausgenutzt, dass die Gleichheit in +\eqref{sturmliouville:eq:example-fourier-initial-conditions} nach Anwendung des +Skalarproduktes immernoch gelten muss und dass das Skalaprodukt mit einer +Basisfunktion sämtliche Summanden auf der rechten Seite auslöscht. + +Zur Berechnung von $a_m$ mit $ m \in \mathbb{N} $ wird beidseitig das +Skalarprodukt mit der Basisfunktion $ \cos\left(\frac{m \pi}{l}x\right)$ +gebildet: +\begin{equation} + \label{sturmliouville:eq:dot-product-cosine} + \biggl\langle u(0, x), \cos\left(\frac{m \pi}{l}x\right) \biggr\rangle _w + = + \biggl\langle a_0 + + + \sum_{n = 1}^{\infty} a_n\cos\left(\frac{n\pi}{l}x\right) + + + \sum_{n = 1}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right), + \cos\left(\frac{m \pi}{l}x\right)\biggr\rangle _w +\end{equation} + +Bevor diese Form in die Integralform umgeschrieben werden kann, muss überlegt +sein, welche Integralgrenzen zu verwenden sind. +In diesem Fall haben die $\sin$ und $\cos$ Terme beispielsweise keine ganze +Periode im Intervall $x \in [0, l]$ für ungerade $n$ und ungerade $m$. +Um die Skalarprodukte aber korrekt zu berechnen, muss über ein ganzzahliges +Vielfaches der Periode der trigonometrischen Funktionen integriert werden. +Dazu werden die Integralgrenzen $-l$ und $l$ verwendet und es werden ausserdem +neue Funktionen $\hat{u}_c(0, x)$ für die Berechnung mit Cosinus und +$\hat{u}_s(0, x)$ für die Berechnung mit Sinus angenomen, welche $u(0, t)$ +gerade, respektive ungerade auf $[-l, 0]$ fortsetzen: +\[ +\begin{aligned} + \hat{u}_c(0, x) + &= + \begin{cases} + u(0, -x) & -l \leq x < 0 + \\ + u(0, x) & 0 \leq x \leq l + \end{cases} + \\ + \hat{u}_s(0, x) + &= + \begin{cases} + -u(0, -x) & -l \leq x < 0 + \\ + u(0, x) & 0 \leq x \leq l + \end{cases}. +\end{aligned} +\] + +Diese Funktionen wurden gerade so gewählt, dass nun das Resultat der Integrale +um den Faktor $2$ skalliert wurde. +Es gilt also +\[ + \int_{-l}^{l}\hat{u}_c(0, x)\cos\left(\frac{m \pi}{l}x\right)dx + = + 2\int_{0}^{l}u(0, x)\cos\left(\frac{m \pi}{l}x\right)dx +\] +und +\[ + \int_{-l}^{l}\hat{u}_s(0, x)\sin\left(\frac{m \pi}{l}x\right)dx + = + 2\int_{0}^{l}u(0, x)\sin\left(\frac{m \pi}{l}x\right)dx. +\] + +Als nächstes wird nun das +Skalaprodukt~\eqref{sturmliouville:eq:dot-product-cosine} berechnet: +\[ +\begin{aligned} + \int_{-l}^{l}\hat{u}_c(0, x)\cos\left(\frac{m \pi}{l}x\right)dx + =& + \int_{-l}^{l} \left[a_0 + + + \sum_{n = 1}^{\infty} a_n\cos\left(\frac{n\pi}{l}x\right) + + + \sum_{n = 1}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right)\right] + \cos\left(\frac{m \pi}{l}x\right) dx + \\ + 2\int_{0}^{l}u(0, x)\cos\left(\frac{m \pi}{l}x\right)dx + =& + a_0 \int_{-l}^{l}\cos\left(\frac{m \pi}{l}x\right) dx + + + \sum_{n = 1}^{\infty}\left[a_n\int_{-l}^{l}\cos\left(\frac{n\pi}{l}x\right) + \cos\left(\frac{m \pi}{l}x\right)dx\right] + \\ + &+ + \sum_{n = 1}^{\infty}\left[b_n\int_{-l}^{l}\sin\left(\frac{n\pi}{l}x\right) + \cos\left(\frac{m \pi}{l}x\right)dx\right]. +\end{aligned} +\] + +Betrachtet man nun die Summanden auf der rechten Seite stellt man fest, dass +nahezu alle Terme verschwinden, denn +\[ + \int_{-l}^{l}\cos\left(\frac{m \pi}{l}x\right) dx + = + 0, +\] +da hier über ein ganzzahliges Vielfaches der Periode integriert wird, +\[ + \int_{-l}^{l}\cos\left(\frac{n\pi}{l}x\right) + \cos\left(\frac{m \pi}{l}x\right)dx + = + 0 +\] +für $m\neq n$, da Cosinus-Funktionen mit verschiedenen Kreisfrequenzen +orthogonal zueinander stehen und +\[ + \int_{-l}^{l}\sin\left(\frac{n\pi}{l}x\right) + \cos\left(\frac{m \pi}{l}x\right)dx + = + 0 +\] +da Sinus- und Cosinus-Funktionen ebenfalls orthogonal zueinander sind. + +Es bleibt also lediglich der Summand mit $a_m$ stehen, was die Gleichung zu +\[ + 2\int_{0}^{l}u(0, x)\cos\left(\frac{m \pi}{l}x\right)dx + = + a_m\int_{-l}^{l}\cos^2\left(\frac{m\pi}{l}x\right)dx +\] +vereinfacht. + +Im nächsten Schritt wird nun das Integral auf der rechten Seite +berechnet und dann nach $a_m$ aufgelöst. +Am einfachsten geht dies, wenn zuerst mit $u = \frac{m \pi}{l}x$ substituiert +wird: +\[ + \begin{aligned} + 2\int_{0}^{l}u(0, x)\cos\left(\frac{m \pi}{l}x\right)dx + &= + a_m\frac{l}{m\pi}\int_{-m\pi}^{m\pi}\cos^2\left(u\right)du + \\ + &= + a_m\frac{l}{m\pi}\left[\frac{u}{2} + + \frac{\sin\left(2u\right)}{4}\right]_{u=-m\pi}^{m\pi} + \\ + &= + a_m\frac{l}{m\pi}\biggl(\frac{m\pi}{2} + + \underbrace{\frac{\sin\left(2m\pi\right)}{4}}_{\displaystyle = 0} - + \frac{-m\pi}{2} - + \underbrace{\frac{\sin\left(-2m\pi\right)}{4}}_{\displaystyle = 0}\biggr) + \\ + &= + a_m l + \\ + a_m + &= + \frac{2}{l} \int_{0}^{l}u(0, x)\cos\left(\frac{m \pi}{l}x\right)dx. + \end{aligned} +\] + +Analog dazu kann durch das Bilden des Skalarproduktes mit +$ \sin\left(\frac{m \pi}{l}x\right) $ gezeigt werden, dass +\[ + b_m + = + \frac{2}{l} \int_{0}^{l}u(0, x)\sin\left(\frac{m \pi}{l}x\right)dx +\] +gilt. + +Etwas anders ist es allerdings bei $a_0$. +Wie zuvor bereits erwähnt, handelt es sich hierbei um den Koeffizienten +zur Basisfunktion $\cos\left(\frac{0 \pi}{l}x\right)$ beziehungsweise der +konstanten Funktion $1$. +Um einen Ausdruck für $a_0$ zu erhalten, wird wiederum auf beiden Seiten +der Gleichung~\eqref{sturmliouville:eq:example-fourier-initial-conditions} das +Skalarprodukt mit der konstanten Basisfunktion $1$ gebildet: +\[ +\begin{aligned} + \int_{-l}^{l}\hat{u}_c(0, x)dx + &= + \int_{-l}^{l} a_0 + + + \sum_{n = 1}^{\infty} a_n\cos\left(\frac{n\pi}{l}x\right) + + + \sum_{n = 1}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right)dx + \\ + 2\int_{0}^{l}u(0, x)dx + &= + a_0 \int_{-l}^{l}dx + + + \sum_{n = 1}^{\infty}\left[a_n\int_{-l}^{l}\cos\left(\frac{n\pi}{l}x\right) + dx\right] + + \sum_{n = 1}^{\infty}\left[b_n\int_{-l}^{l}\sin\left(\frac{n\pi}{l}x\right) + dx\right]. +\end{aligned} +\] + +Hier fallen nun alle Terme, die $\sin$ oder $\cos$ beinhalten weg, da jeweils +über ein ganzzahliges Vielfaches der Periode integriert wird. +Es bleibt also noch +\[ + 2\int_{0}^{l}u(0, x)dx + = + a_0 \int_{-l}^{l}dx, +\] +was sich wie folgt nach $a_0$ auflösen lässt: +\[ +\begin{aligned} + 2\int_{0}^{l}u(0, x)dx + &= + a_0 \int_{-l}^{l}dx + \\ + &= + a_0 \left[x\right]_{x=-l}^{l} + \\ + &= + a_0(l - (-l)) + \\ + &= + a_0 \cdot 2l + \\ + a_0 + &= + \frac{1}{l} \int_{0}^{l}u(0, x)dx. +\end{aligned} +\] + +% +% Lösung von T(t) +% + +\subsection{Lösung der Differentialgleichung in \texorpdfstring{$t$}{t}} +Zuletzt wird die zweite Gleichung der +Separation~\eqref{sturmliouville:eq:example-fourier-separated-t} betrachtet. +Dazu nimmt man das charakteristische Polynom +\[ + \lambda - \kappa \mu + = + 0 +\] +der Gleichung +\[ + T^{\prime}(t) - \kappa \mu T(t) + = + 0 +\] +und löst dieses. + +Es ist direkt ersichtlich, dass $\lambda = \kappa \mu$ gelten muss, was zur +Lösung +\[ + T(t) + = + e^{\kappa \mu t} +\] +führt und mit dem Resultat~\eqref{sturmliouville:eq:example-fourier-mu-solution} +\[ + T(t) + = + e^{-\frac{n^{2}\pi^{2}\kappa}{l^{2}}t} +\] +ergibt. + +\subsection{Lösung des Wärmeleitungsproblems} + +Nun können alle vorhergehenden Resultate zusammengesetzt +werden um die vollständige Lösung für das Stab-Problem zu erhalten. + +\subsubsection{Lösung für einen Stab mit Enden auf konstanter Temperatur} +\[ +\begin{aligned} + u(t,x) + &= + \sum_{n=1}^{\infty}b_{n}e^{-\frac{n^{2}\pi^{2}\kappa}{l^{2}}t} + \sin\left(\frac{n\pi}{l}x\right) + \\ + b_{n} + &= + \frac{2}{l}\int_{0}^{l}u(0,x)sin\left(\frac{n\pi}{l}x\right) dx +\end{aligned} +\] + +\subsubsection{Lösung für einen Stab mit isolierten Enden} +\[ +\begin{aligned} + u(t,x) + &= + a_{0} + \sum_{n=1}^{\infty}a_{n}e^{-\frac{n^{2}\pi^{2}\kappa}{l^{2}}t} + \cos\left(\frac{n\pi}{l}x\right) + \\ + a_{0} + &= + \frac{1}{l}\int_{0}^{l}u(0,x) dx + \\ + a_{n} + &= + \frac{2}{l}\int_{0}^{l}u(0,x)sin\left(\frac{n\pi}{l}x\right) dx +\end{aligned} +\] diff --git a/buch/papers/transfer/main.tex b/buch/papers/transfer/main.tex index ed16998..60f8230 100644 --- a/buch/papers/transfer/main.tex +++ b/buch/papers/transfer/main.tex @@ -3,7 +3,7 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Transferfunktionen\label{chapter:transfer}} +\chapter{Transferfunktion Tangens hyperbolicus\label{chapter:transfer}} \lhead{Thema} \begin{refsection} \chapterauthor{Marc Benz} @@ -12,6 +12,8 @@ \input{papers/transfer/teil1.tex} \input{papers/transfer/teil2.tex} \input{papers/transfer/teil3.tex} +%\input{papers/transfer/teil4.tex} + \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/transfer/packages.tex b/buch/papers/transfer/packages.tex index ee51b71..fa7069a 100644 --- a/buch/papers/transfer/packages.tex +++ b/buch/papers/transfer/packages.tex @@ -8,3 +8,8 @@ % following example %\usepackage{packagename} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows} +\usetikzlibrary{fit} +\usetikzlibrary{shapes.geometric} +%\usepackage{subcaption} diff --git a/buch/papers/transfer/references.bib b/buch/papers/transfer/references.bib index 75f5d68..181682c 100644 --- a/buch/papers/transfer/references.bib +++ b/buch/papers/transfer/references.bib @@ -4,6 +4,30 @@ % (c) 2020 Autor, Hochschule Rapperswil % + + +@article{transfer:DBLP:journals/corr/abs-1909-07729, + author = {Abhisek Kundu and + Sudarshan Srinivasan and + Eric C. Qin and + Dhiraj D. Kalamkar and + Naveen K. Mellempudi and + Dipankar Das and + Kunal Banerjee and + Bharat Kaul and + Pradeep Dubey}, + title = {K-TanH: Hardware Efficient Activations For Deep Learning}, + journal = {CoRR}, + volume = {abs/1909.07729}, + year = {2019}, + url = {http://arxiv.org/abs/1909.07729}, + eprinttype = {arXiv}, + eprint = {1909.07729}, + timestamp = {Sat, 04 Apr 2020 17:18:32 +0200}, + biburl = {https://dblp.org/rec/journals/corr/abs-1909-07729.bib}, + bibsource = {dblp computer science bibliography, https://dblp.org} +} + @online{transfer:bibtex, title = {BibTeX}, url = {https://de.wikipedia.org/wiki/BibTeX}, @@ -31,5 +55,4 @@ volume = 47, pages = {607--627}, url = {https://doi.org/10.1016/j.acha.2017.11.004} -} - +}
\ No newline at end of file diff --git a/buch/papers/transfer/teil0.tex b/buch/papers/transfer/teil0.tex index 19d4961..f8c8cb4 100644 --- a/buch/papers/transfer/teil0.tex +++ b/buch/papers/transfer/teil0.tex @@ -3,20 +3,232 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 0\label{transfer:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{transfer:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. +\section{Motivation\label{transfer:section:teil0}} +\rhead{Einleitung} + +Die Transferfunktion ist einer der wichtigsten Bestandteile moderner neuraler Netzwerke. Sie verleiht ihnen die nicht Linearität, die benötigt wird um komplexere Aufgaben zu lösen. Dabei kann theoretisch jede nicht lineare Funktion eingesetzt werden. In der Praxis tauchen aber nur sehr wenige Funktionen mit ähnlichen Eigenschaften auf. Einige davon sind in der Tabelle \ref{tab:aktfkt} zu sehen. In der heutigen Zeit sind vor allem die Variationen der ReLu Funktion beliebt. Der Tangens hyperbolicus wird aber dank dem Aufkommen der Recurrent Neural Networks, zum Beispiel dem Long short term memory Netzwerk, das aus Zellen wie in \ref{motivation:figure:LSTM} gezeigt bestehen, wieder vermehrt eingesetzt. +Die klassische Berechnung ist aber sehr aufwendig und basiert auf Gleitkommaoperationen und relativ komplizierten Funktionen. Diese benötigen einen grossen Rechenaufwand. Vor allem auf Systemen die keine Gleitkommaarithmetik Hardware besitzen wie das zum Beispiel bei gewissen Mikrocontrollern der Fall ist. +\begin{table}[h] + \centering + \begin{tabular}{llll} + \hline + \multicolumn{1}{l}{Name} & \multicolumn{1}{l}{Function} & \multicolumn{1}{l}{Figure} \\ + \hline + Sigmoid & $\sigma(x)=\frac{1}{1+e^{-x}}$ & + \begin{tikzpicture}[baseline={(0,0.2)}] + \draw (-1,0) -- (1,0); + \draw (0,0) -- (0,1); + \draw[red] plot[domain=-1:1,variable=\x] ({\x},{1/(1+exp(-4*\x))}); + \end{tikzpicture}\\ + ReLU & $f(x) =\begin{cases} + 0 & ~\text{if}~ x<0 \\ + x & ~\text{if}~x \geq 0. + \end{cases}$ & + \begin{tikzpicture}[baseline={(0,0.5)}] + \draw (-1,0) -- (1,0); + \draw (0,0) -- (0,1); + \draw[red] plot[domain=-1:1,variable=\x] ({\x},{ifthenelse(\x<0,0,\x)}); + \end{tikzpicture}\\ + Leaky ReLu & $f(x) =\begin{cases} + 0 & ~\text{if}~ x<0 \\ + x & ~\text{if}~x \geq a \cdot x. + \end{cases}$ & + \begin{tikzpicture}[baseline={(0,0.5)}] + \draw (-1,0) -- (1,0); + \draw (0,0) -- (0,1); + \draw[red] plot[domain=-1:1,variable=\x] ({\x},{ifthenelse(\x<0,0.1*\x,\x)}); + \end{tikzpicture} + \end{tabular} + \caption{Transferfunktionen} + \label{tab:aktfkt} +\end{table} + +\begin{figure} +\centering +\begin{tikzpicture} + \begin{axis}[ + xmin=-2.5, xmax=2.5, + ymin=-1.5, ymax=1.5, + axis lines=center, + axis on top=true, + domain=-2.5:2.5, + ylabel=$y$, + xlabel=$x$, + ] + + \addplot [mark=none,draw=red,ultra thick] {tanh(\x)}; + \node [right, red] at (axis cs: 1,0.7) {$\tanh(x)$}; + + %% Add the asymptotes + \draw [blue, dotted, thick] (axis cs:-2.5,-1)-- (axis cs:0,-1); + \draw [blue, dotted, thick] (axis cs:+2.5,+1)-- (axis cs:0,+1); + \end{axis} +\end{tikzpicture} +\caption{Tangens hyperbolicus +\label{anleitung:figure:tanhyp}} +\end{figure} + +\begin{figure} +\centering +\tikzset{ + every node/.style={ + font=\scriptsize + }, + decision/.style={ + shape=rectangle, + minimum height=1cm, + text width=3cm, + text centered, + rounded corners=1ex, + draw, + label={[yshift=0.2cm]left:ja}, + label={[yshift=0.2cm]right:nein}, + }, + outcome/.style={ + shape=ellipse, + fill=gray!15, + draw, + text width=1.5cm, + text centered + }, + decision tree/.style={ + edge from parent path={[-latex] (\tikzparentnode) -| (\tikzchildnode)}, + sibling distance=4cm, + level distance=1.5cm + } +} + +\begin{tikzpicture} + + \node [decision] { $x>k \cdot \frac{\ln 10}{2}$ } + [decision tree] + child { node [outcome] { $+1$ } } + child { node [decision] { $x<-k \cdot \frac{\ln 10}{2}$} + child { node [outcome] { $-1$ } } + child { node [decision] { $-0,1<x<+0,1$ } + child { node [outcome] { $\frac{\sinh x}{e^{x}-\sinh x}$ } } + child { node [outcome] { $\frac{e^{2 x}-1}{e^{2 x}+1}$ } } + } + }; +\end{tikzpicture} +\caption{Annäherung für Tangens hyperbolicus +\label{anleitung:figure:approxtanhhypalgo}} +\end{figure} + + +\begin{figure} +\centering +\newcommand{\empt}[2]{$#1^{\langle #2 \rangle}$} + +\begin{tikzpicture}[ + % GLOBAL CFG + font=\sf \scriptsize, + >=LaTeX, + % Styles + cell/.style={% For the main box + rectangle, + rounded corners=5mm, + draw, + very thick, + }, + operator/.style={%For operators like + and x + circle, + draw, + inner sep=-0.5pt, + minimum height =.2cm, + }, + function/.style={%For functions + ellipse, + draw, + inner sep=1pt + }, + ct/.style={% For external inputs and outputs + circle, + draw, + line width = .75pt, + minimum width=1cm, + inner sep=1pt, + }, + gt/.style={% For internal inputs + rectangle, + draw, + minimum width=4mm, + minimum height=3mm, + inner sep=1pt + }, + mylabel/.style={% something new that I have learned + font=\scriptsize\sffamily + }, + ArrowC1/.style={% Arrows with rounded corners + rounded corners=.25cm, + thick, + }, + ArrowC2/.style={% Arrows with big rounded corners + rounded corners=.5cm, + thick, + }, + ] + + %Start drawing the thing... + % Draw the cell: + \node [cell, minimum height =4cm, minimum width=6cm] at (0,0){} ; + + % Draw inputs named ibox# + \node [gt] (ibox1) at (-2,-0.75) {$\sigma$}; + \node [gt] (ibox2) at (-1.5,-0.75) {$\sigma$}; + \node [function, draw=red!60, fill=red!5] (ibox3) at (-0.5,-0.75) {$\tanh$}; + \node [gt] (ibox4) at (0.5,-0.75) {$\sigma$}; + + % Draw opérators named mux# , add# and func# + \node [operator] (mux1) at (-2,1.5) {$\times$}; + \node [operator] (add1) at (-0.5,1.5) {+}; + \node [operator] (mux2) at (-0.5,0) {$\times$}; + \node [operator] (mux3) at (1.5,0) {$\times$}; + \node [function, draw=red!60, fill=red!5] (func1) at (1.5,0.75) {$\tanh$}; + + % Draw External inputs named as basis c,h,x + \node[ct, label={[mylabel]}] (c) at (-4,1.5) {\empt{c}{t-1}}; + \node[ct, label={[mylabel]}] (h) at (-4,-1.5) {\empt{h}{t-1}}; + \node[ct, label={[mylabel]}] (x) at (-2.5,-3) {\empt{x}{t}}; + + % Draw External outputs? named as basis c2,h2,x2 + \node[ct, label={[mylabel]}] (c2) at (4,1.5) {\empt{c}{t}}; + \node[ct, label={[mylabel]}] (h2) at (4,-1.5) {\empt{h}{t}}; + \node[ct, label={[mylabel]}] (x2) at (2.5,3) {\empt{h}{t}}; + + % Start connecting all. + %Intersections and displacements are used. + % Drawing arrows + \draw [ArrowC1] (c) -- (mux1) -- (add1) -- (c2); + + % Inputs + \draw [ArrowC2] (h) -| (ibox4); + \draw [ArrowC1] (h -| ibox1)++(-0.5,0) -| (ibox1); + \draw [ArrowC1] (h -| ibox2)++(-0.5,0) -| (ibox2); + \draw [ArrowC1] (h -| ibox3)++(-0.5,0) -| (ibox3); + \draw [ArrowC1] (x) -- (x |- h)-| (ibox3); + + % Internal + \draw [->, ArrowC2] (ibox1) -- (mux1); + \draw [->, ArrowC2] (ibox2) |- (mux2); + \draw [->, ArrowC2] (ibox3) -- (mux2); + \draw [->, ArrowC2] (ibox4) |- (mux3); + \draw [->, ArrowC2] (mux2) -- (add1); + \draw [->, ArrowC1] (add1 -| func1)++(-0.5,0) -| (func1); + \draw [->, ArrowC2] (func1) -- (mux3); + + %Outputs + \draw [-, ArrowC2] (mux3) |- (h2); + \draw (c2 -| x2) ++(0,-0.1) coordinate (i1); + \draw [-, ArrowC2] (h2 -| x2)++(-0.5,0) -| (i1); + \draw [-, ArrowC2] (i1)++(0,0.2) -- (x2); + +\end{tikzpicture} +\caption{Long short term memory cell +\label{motivation:figure:LSTM}} +\end{figure} + + + diff --git a/buch/papers/transfer/teil1.tex b/buch/papers/transfer/teil1.tex index c60f1ea..f117fc0 100644 --- a/buch/papers/transfer/teil1.tex +++ b/buch/papers/transfer/teil1.tex @@ -3,53 +3,54 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 1 +\section{Taylorapproximation \label{transfer:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt +\subsection{Idee} +Die Taylorreihe kann eine glatte Funktion in einer Umgebung durch Polynome beliebig genau annähern. Beschränkt man sich auf einen bestimmten Grad dieser Polynome, spricht man von einer Taylorapproximation. Diese entwickelt sich immer um einen Punkt und kann über die Ableitungen berechnet werden. + +\subsection{Definition der Taylorreihe} +Sei $I \subset \mathbb{R}$ ein offenes Intervall, $f: I \rightarrow \mathbb{R}$ eine glatte Funktion und $a$ ein Element von $I$. Dann ist die unendliche Reihe \begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{transfer:equation1} + T_{f(x ; a)}=\sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n !}(x-a)^{n}=f(a)+f^{\prime}(a)(x-a)+\frac{f^{\prime \prime}(a)}{2}(x-a)^{2}+\frac{f^{\prime \prime \prime}(a)}{6}(x-a)^{3}+\ldots \end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{transfer:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. +eine Taylorreihe. -Et harum quidem rerum facilis est et expedita distinctio -\ref{transfer:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{transfer:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. +\subsection{Beispiel} +In diesem Beispiel wird die Taylorapproximation mit dem Grad 2 des Tangens hyperbolicus um den Punkt Null berechnet. +$$ + \tanh \approx T_{2} \tanh(x ; a)=\tanh(a)+\tanh^{\prime}(a) \cdot(x-a)+\frac{\tanh^{\prime \prime}(a) \cdot(x-a)^{2}}{2} +$$ +mit $a = 0$ folgt +$$ + T_{2} \tanh(x ; 0)=\tanh(0)+\tanh^{\prime}(0) \cdot(x)+\frac{\tanh^{\prime \prime}(0) \cdot(x)^{2}}{2} = 0 + x + 0 = x +$$ +\begin{figure} +\centering +\begin{tikzpicture} + \begin{axis}[ + xmin=-2.5, xmax=2.5, + ymin=-1.5, ymax=1.5, + axis lines=center, + axis on top=true, + domain=-2.5:2.5, + ylabel=$y$, + xlabel=$x$, + ] + + \addplot [mark=none,draw=red,thick] {tanh(\x)}; + \node [right, red] at (axis cs: 1.4,0.7) {$\tanh(x)$}; + \addplot [mark=none,draw=blue,ultra thick, samples=100, smooth] expression{x-(x^3)/3+ (2*x^5)/15-(17 * x^7)/315}; + \node [right, blue] at (axis cs: -1.8,0.7) {$Taylorapprox.$}; + + %% Add the asymptotes + \draw [blue, dotted, thick] (axis cs:-2.5,-1)-- (axis cs:0,-1); + \draw [blue, dotted, thick] (axis cs:+2.5,+1)-- (axis cs:0,+1); + \end{axis} +\end{tikzpicture} +\caption{Taylorapproximation des Grades 7 +\label{motivation:figure:Taylor}} +\end{figure} +\subsection{Problem} +Wie in Abbildung \ref{motivation:figure:Taylor} ersichtlich, ist der Approximationsfehler sogar bei Grad 7 des Polynoms sehr gross. Dies liegt ist unter anderem an der Unbeschränktheit, die solche Polynome besitzen. diff --git a/buch/papers/transfer/teil2.tex b/buch/papers/transfer/teil2.tex index ce8f798..aae81a7 100644 --- a/buch/papers/transfer/teil2.tex +++ b/buch/papers/transfer/teil2.tex @@ -1,40 +1,68 @@ % -% teil2.tex -- Beispiel-File für teil2 +% teil1.tex -- Beispiel-File für das Paper % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 2 +\section{Padé-Approximation \label{transfer:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +\rhead{} + +\subsection{Idee + \label{transfer:pade:idee}} +Die Taylorapproximation ist für den Gebrauch als Ersatz des Tangenshyperbolicus als Transferfunktion nicht brauchbar. Die Padé-Approximation kann die grössten Probleme aber entschärfen und dies mit sehr begrenztem zusätzlichen Rechenaufwand. Dafür wird die Taylorapproximation in einen Bruch von zwei Polynom zerlegt. + +\subsection{Definition +\label{transfer:pade:definition}} +Sei +\begin{equation} + R(x)=\frac{\sum_{j=0}^{m} a_{j} x^{j}}{1+\sum_{k=1}^{n} b_{k} x^{k}}=\frac{a_{0}+a_{1} x+a_{2} x^{2}+\cdots+a_{m} x^{m}}{1+b_{1} x+b_{2} x^{2}+\cdots+b_{n} x^{n}} +\end{equation} +und gilt +\begin{gather*} + f(0) =R(0) \\ + f^{\prime}(0) =R^{\prime}(0) \\ + f^{\prime \prime}(0) =R^{\prime \prime}(0) \\ + \vdots \\ + f^{(m+n)}(0) =R^{(m+n)}(0), +\end{gather*} +so ist $R(x)$ die Padé-Approximation von $f(x)$. +\subsection{Beispiel + \label{transfer:pade:beispiel}} +Sei $f(x) = \tanh (x)$ und $T_{5} \tanh(x ; a) = x-\frac{x^{3}}{3}+\frac{2 x^{5}}{15}$, dann gilt +$$ + \begin{gathered} + [3 / 2]_{f}(x) = \frac{A_{0}+A_{1} x+A_{2} x^{2}+A_{3} x^{3}}{B_{0}+B_{1} x+B_{2} x^{2}}=x-\frac{x^{3}}{3}+\frac{2 x^{5}}{15}+O\left(x^{6}\right), B_{0} = 1,\\ + \Downarrow \\ + [3 / 2]_{f}(x) = \frac{15x+x^3}{15+6x^2} +\end{gathered} +$$ + +\begin{figure} +\centering +\begin{tikzpicture} + \begin{axis}[ + xmin=-3.5, xmax=3.5, + ymin=-1.5, ymax=1.5, + axis lines=center, + axis on top=true, + domain=-3.5:3.5, + ylabel=$y$, + xlabel=$x$, + ] + + \addplot [mark=none,draw=red,thick] {tanh(\x)}; + \node [right, red] at (axis cs: 1.4,0.7) {$\tanh(x)$}; + \addplot [mark=none,draw=blue,ultra thick, samples=100, smooth] expression{x*(15+x^2)/(15+6*x^2)}; + \node [right, blue] at (axis cs: -1.8,0.7) {$Padé$}; + + %% Add the asymptotes + \draw [blue, dotted, thick] (axis cs:-2.5,-1)-- (axis cs:0,-1); + \draw [blue, dotted, thick] (axis cs:+2.5,+1)-- (axis cs:0,+1); + \end{axis} +\end{tikzpicture} +\caption{$[3 / 2]_{f}(x)$ +\label{motivation:figure:Pade32}} +\end{figure} -\subsection{De finibus bonorum et malorum -\label{transfer:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. diff --git a/buch/papers/transfer/teil3.tex b/buch/papers/transfer/teil3.tex index f707587..5bbe0c1 100644 --- a/buch/papers/transfer/teil3.tex +++ b/buch/papers/transfer/teil3.tex @@ -1,40 +1,26 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% teil2.tex -- Beispiel-File für teil2 % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 3 +\section{MiniMax-Polynom \label{transfer:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +\rhead{MiniMax-Polynom} -\subsection{De finibus bonorum et malorum -\label{transfer:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. + + +\subsection{Idee +\label{transfer:subsection:idee}} +Finde das Polynom eines bestimmten Grades, welches eine Funktion in einem Intervall am besten approximiert. + + +\subsection{Definition + \label{transfer:subsection:definition}} +Das Polynom welches + $$ \max _{a \leq x \leq b}|f(x)-P(x)| , a \in \mathbb{R}, b \in \mathbb{R}.$$ +minimiert. +\subsection{Beispiel + \label{transfer:subsection:beispiel}} +Um ein MiniMax-Polynom zu berechnen, kann der Remez-Algorithmus verwendet werden. Dieser basiert im wesentlichen auf dem Alternantensatz von Tschebyschow. diff --git a/buch/papers/transfer/teil4.tex b/buch/papers/transfer/teil4.tex new file mode 100644 index 0000000..d652e2d --- /dev/null +++ b/buch/papers/transfer/teil4.tex @@ -0,0 +1,218 @@ +% +% teil4.tex +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{K-Tanh +\label{transfer:section:teil4}} +\rhead{K-Tanh} + +\subsection{Idee + \label{transfer:subsection:Ktanh-Idee}} +Um die Berechnung des Tangens hyperbolicus wirklich zu beschleunigen, braucht es einen Algorithmus, der ohne Gleitkommaoperationen auskommt. Um dies zu bewerkstelligen, ist eine Unterteilung der Funktion in mehrere Abschnitte nötig. Diese können dann linear approximiert werden. Die dazugehörigen Parameter können einmal berechnet werden und zu Rechenzeit aus einem LUT????? gelesen und danach mit integer Operationen verrechnet werden. + + +\subsection{Definitionen + \label{transfer:subsection:Ktanh-Definition}} + +\subsubsection{Gleitkommazahlen nach IEEE-754 + \label{transfer:subsection:Ktanh-Algorithmus:Gleitkommazahl}} +Da ein Computer nur mit binären Werten arbeiten kann, müssen Zahlen durch sogenannte Gleitkommazahlen approximiert werden. Dafür wird die Zahl in zwei Teile aufgeteilt, die Mantisse und den Exponenten. Die Zahl setzt sich dann wie folgt zusammen: +$$ +\begin{array}{|l|l|l|} + \hline S & E & M \\ + \hline +\end{array} +$$ +Aus dem sich die Dezimalzahl wie folgt berechnet +$$ +x=s \cdot m \cdot b^{e} +$$ +wobei +$$ +\begin{aligned} + &s=(-1)^{S} \\ + &e=E-B\\ + &B=2^{r-1}-1 + &m=1+M / 2^{p} +\end{aligned} +$$ +mit $r$ = Anzahl der Exponenten bits und p = Anzahl mantisse Bits. + + +\subsubsection{K-tanh Algorithmus +\label{transfer:subsection:Ktanh-Algorithmus}} +\cite{transfer:DBLP:journals/corr/abs-1909-07729} + +Negative Werte werden nicht separat behandelt. Diese werden dank der Symertrie um den Ursprung mit einem einfachen Vorzeichenwechsel aus den positiven berechnet. +Für $x < 0.25$ gilt $y = x$. +Ist $x > 3.75$ gitl $y = 1$. +Ist der Wert zwischen diesen Grenzen, werden über einen Lookuptable geeignete Werte gefunden um aus dem $x$ die Approximation des Tanh zu berechnen. +Dafür werden eine bestimmte Anzahl LSBs des Exponenten und MSBs der Mantisse zu einem Index $t$ zusammengestzt. Der dann die Stelle im Lookuptable zeigt. +Damit werden die richtigen Werte für $E_{t}, r_{t}, b_{t}$ aus der Tabelle, die im Vorhinein schon berechnet wurden, ausgelesen. +Damit hat man das $E$ bereits gefunden und mit der Formel +\[ + M_{o} \leftarrow\left(M_{i} \gg r\right)+b +\] + +kann das neue $M$ berechnet werden. + +\begin{figure} +\centering +\tikzset{ + every node/.style={ + font=\scriptsize + }, + decision/.style={ + shape=rectangle, + minimum height=1cm, + text width=3cm, + text centered, + rounded corners=1ex, + draw, + label={[yshift=0.2cm]left:ja}, + label={[yshift=0.2cm]right:nein}, + }, + outcome/.style={ + shape=ellipse, + fill=gray!15, + draw, + text width=1.5cm, + text centered + }, + decision tree/.style={ + edge from parent path={[-latex] (\tikzparentnode) -| (\tikzchildnode)}, + sibling distance=4cm, + level distance=1.5cm + } +} +\begin{tikzpicture} + + \node [decision] { $x<0.25$ } + [decision tree] + child { node [outcome] { $x$ } } + child { node [decision] { $x>3.75$} + child { node [outcome] { $1$ } } + child { node [outcome] { $K-tanh$ } } + }; + +\end{tikzpicture} +\caption{Gesamter Algorithmus +\label{motivation:figure:gesalgo}} +\end{figure} + +\begin{figure} +\centering +\begin{tikzpicture} + [>=stealth', auto, node distance=2cm, scale=1.2] + + \tikzstyle{dot} = [circle, draw, fill, inner sep=0.03cm] + + \tikzstyle{brace} = [decorate, decoration={brace,amplitude=4pt}] + + \begin{scope}[] + + \node[ minimum width=0.5cm] (s) at (0, 0) {$s$}; + \node[anchor=west, minimum width=1.5cm] (e) at (s.east) {$E_i$}; + \node[anchor=west, minimum width=1.5cm] (m) at (e.east) {$M_i$}; + \draw[blue] (e.north west) -- (e.south west) (e.north east) -- (e.south east); + \node[draw, green!50!black, rounded corners=0.1cm, fit=(s) (e) (m), inner sep = 0] (a) {}; + + \node[minimum width=0.5cm] (s) at (5, 0) {$s$}; + \node[anchor=west, minimum width=1.5cm] (e) at (s.east) {$E_o$}; + \node[anchor=west, minimum width=1.5cm] (m) at (e.east) {$M_o$}; + \draw[blue] (e.north west) -- (e.south west) (e.north east) -- (e.south east); + \node[draw, green!50!black, rounded corners=0.1cm, fit=(s) (e) (m), inner sep = 0] (b) {}; + + \draw[yshift=-0.4cm, decorate,decoration={brace,amplitude=4pt}] (a.south) ++(0, -0.2) +(0.5,0) -- +(-0.5,0 ); + + \node[draw=black, fill=black!20, minimum width=1.5cm, minimum height= 2cm, below=1cm of a] (lut) {}; + + \node[draw=blue, inner sep=0.2cm, right = 1.5cm of lut, align=left] (box) {$E_0 \gets E$ \\ $M_0 \gets (M_i \gg r) + b$}; + + \draw[->] (a.south) +(0, -0.5) -- (lut); + \draw[->] (lut) -- node[above]{$(E,r,b)$} (box); + \draw[->] (box) -| ([xshift=0.5cm, yshift=-0.3cm]b.south); + + \end{scope} + +\end{tikzpicture} +\caption{Ablauf der K-tanh Berechnung +\label{motivation:figure:Ktanhablauf}} +\end{figure} + + +\subsection{Beispiel +\label{transfer:subsection:Ktanh-Algorithmus:Beispiel}} + +%TODO + +In diesem Abschnitt wird das Verfahren am einem Beispiel mit dem BFloat16 erklärt. Das bedeutet die Gleitkommazahlen werden mit 8 Exponenten, 7 Mantisse und einem Vorzeichen bit dargestellt. + +\subsubsection{Algorithmus für die Bestimmung der Parameter + \label{transfer:subsection:Ktanh-Algorithmus:Algo}} + +\begin{enumerate} + \item Wir berechnen zuerst den Tanh für ein gegebenes x und finden die zugehörige BFloat16-Darstellung. + \[ + y_{i}=\operatorname{TanH}\left(x_{i}\right)=(-1)^{s} \cdot 2^{E_{i}} \cdot\left(1+M_{i} / 2^{q}\right) + \] + + \item Sollten die Exponenten in einem Intervall $t$ nicht gleich sein, muss ein gemeinsamer Exponent gefunden werden, so dass + $$ + \underset{E, \hat{M}_{i} \in \mathbb{Z}}{\operatorname{argmin}} \sum_{i}\left(y_{i}-\hat{y}_{i}\right)^{2}, \quad \text { mit } \quad E \in\left\{E_{i}\right\}, \hat{M}_{i} \in[0,127] + $$ + minimiert wird. Was bedeutet, dass der Exponent mit welchem der kleinsten quadrierten und aufsummierten Fehler entsteht gewählt wird. + ?????We pick E from the set of exponents {Ei}. If E = Ej , + then, Mˆ + j = Mj , for all j. If E > Ej , then, Mˆ + j = 0. + Similarly, for E < Ej , Mˆ + j = 2q − 1. Store this E in the + parameter table TE.????? + \item Um den Verschiebungsparameter r und den Additionsterm b zu finden, muss das folgende Optimierungsproblem gelöst werden. Auch hier wird einfach der kleinste quadrierte und aufsummierte Fehler gesucht wird. + $$ + \begin{array}{ll} + & \underset{r, b \in \mathbb{Z}}{\operatorname{argmin}} \sum_{i}\left(\hat{M}_{i}-\left(m_{i} / 2^{r}+b\right)\right)^{2} \\ + \text { mit } & 0 \leq r \leq r_{\max } \leq p, \quad b_{\min } \leq b \leq b_{\max } + \end{array} + $$ + Dabei müssen $r_max$, $b_min$ und $b_max$ sorgfältig gewählt werden, so dass kein +\end{enumerate} + +\subsubsection{Numerisches Beispiel + \label{transfer:subsection:Ktanh-Algorithmus:Num}} +Zum Index $t = 00000$ gehört neben Anderen der Wert $x_i = 2$. Denn mit \ref{transfer:subsection:Ktanh-Algorithmus:Gleitkommazahl} folgt + +$$ +\begin{array}{|l|l|l|} + \hline S_i & E_{i} & M_{i} \\ + \hline 0 & 100000 \textbf{00} & \textbf{000} 0000 \\ + \hline +\end{array} +$$ +Der dazugehörige Tanh Wert ist +$y_i = \tanh{x_i}=0.96402758\ldots$. Es lässt sich die dazugehörige BFloat-16-Darstellung finden + +$$ +\begin{array}{|l|l|l|} + \hline S_{y_{i}} & E_{y_{i}} & M_{y_{i}} \\ + \hline 0 & 01111110 & 1110110 \\ + \hline +\end{array} +$$ +Nun müssen alle anderen Werte dieses Intervalls $t = 00000$ ausgewertet werden. Stimmen nicht alle Exponenten der $S_{y}$ überein, so muss noch ein gemeinsamer Exponent mit dem Optimierungproblem \ref{} gefunden werden. Danach kann der Verschiebe- und Additionsfaktor für das Intervall berechnet werden. +Es ergeben sich die Werte: +$$ +\begin{array}{c|ccc} + \text { Index } t & E_{t} & r_{t} & b_{t} \\ + \hline 00111 & 126 & 2 & 119 +\end{array} +$$ + + + + + + + |