diff options
Diffstat (limited to 'buch/papers')
-rw-r--r-- | buch/papers/0f1/images/konvergenzAiry.pdf | bin | 0 -> 15785 bytes | |||
-rw-r--r-- | buch/papers/0f1/images/konvergenzNegativ.pdf | bin | 0 -> 18155 bytes | |||
-rw-r--r-- | buch/papers/0f1/images/konvergenzPositiv.pdf | bin | 0 -> 18581 bytes | |||
-rw-r--r-- | buch/papers/0f1/images/stabilitaet.pdf | bin | 0 -> 19612 bytes | |||
-rw-r--r-- | buch/papers/0f1/listings/kettenbruchIterativ.c | 53 | ||||
-rw-r--r-- | buch/papers/0f1/listings/kettenbruchRekursion.c | 27 | ||||
-rw-r--r-- | buch/papers/0f1/listings/potenzreihe.c | 69 | ||||
-rw-r--r-- | buch/papers/0f1/main.tex | 60 | ||||
-rw-r--r-- | buch/papers/0f1/references.bib | 104 | ||||
-rw-r--r-- | buch/papers/0f1/teil0.tex | 37 | ||||
-rw-r--r-- | buch/papers/0f1/teil1.tex | 156 | ||||
-rw-r--r-- | buch/papers/0f1/teil2.tex | 212 | ||||
-rw-r--r-- | buch/papers/0f1/teil3.tex | 104 | ||||
-rw-r--r-- | buch/papers/fm/00_modulation.tex | 28 | ||||
-rw-r--r-- | buch/papers/fm/01_AM-FM.tex | 36 | ||||
-rw-r--r-- | buch/papers/fm/01_AM.tex | 29 | ||||
-rw-r--r-- | buch/papers/fm/02_FM.tex (renamed from buch/papers/fm/02_frequenzyspectrum.tex) | 9 | ||||
-rw-r--r-- | buch/papers/fm/03_bessel.tex | 168 | ||||
-rw-r--r-- | buch/papers/fm/04_fazit.tex | 32 | ||||
-rw-r--r-- | buch/papers/fm/FM presentation/FM_presentation.pdf (renamed from buch/papers/fm/RS presentation/FM_presentation.pdf) | bin | 357597 -> 357597 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/FM_presentation.tex (renamed from buch/papers/fm/RS presentation/FM_presentation.tex) | 4 | ||||
-rw-r--r-- | buch/papers/fm/FM presentation/README.txt | 1 | ||||
-rw-r--r-- | buch/papers/fm/FM presentation/images/100HZ.png (renamed from buch/papers/fm/RS presentation/images/100HZ.png) | bin | 8601 -> 8601 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/200HZ.png (renamed from buch/papers/fm/RS presentation/images/200HZ.png) | bin | 8502 -> 8502 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/300HZ.png (renamed from buch/papers/fm/RS presentation/images/300HZ.png) | bin | 9059 -> 9059 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/400HZ.png (renamed from buch/papers/fm/RS presentation/images/400HZ.png) | bin | 9949 -> 9949 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/bessel.png (renamed from buch/papers/fm/RS presentation/images/bessel.png) | bin | 40393 -> 40393 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/bessel2.png (renamed from buch/papers/fm/RS presentation/images/bessel2.png) | bin | 102494 -> 102494 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/bessel_beta1.png (renamed from buch/papers/fm/RS presentation/images/bessel_beta1.png) | bin | 40696 -> 40696 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/bessel_frequenz.png (renamed from buch/papers/fm/RS presentation/images/bessel_frequenz.png) | bin | 11264 -> 11264 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/beta_0.001.png (renamed from buch/papers/fm/RS presentation/images/beta_0.001.png) | bin | 6233 -> 6233 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/beta_0.1.png (renamed from buch/papers/fm/RS presentation/images/beta_0.1.png) | bin | 6630 -> 6630 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/beta_0.5.png (renamed from buch/papers/fm/RS presentation/images/beta_0.5.png) | bin | 8167 -> 8167 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/beta_1.png (renamed from buch/papers/fm/RS presentation/images/beta_1.png) | bin | 11303 -> 11303 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/beta_2.png (renamed from buch/papers/fm/RS presentation/images/beta_2.png) | bin | 14703 -> 14703 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/beta_3.png (renamed from buch/papers/fm/RS presentation/images/beta_3.png) | bin | 20377 -> 20377 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/fm_10Hz.png (renamed from buch/papers/fm/RS presentation/images/fm_10Hz.png) | bin | 6781 -> 6781 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/fm_20hz.png (renamed from buch/papers/fm/RS presentation/images/fm_20hz.png) | bin | 7834 -> 7834 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/fm_30Hz.png (renamed from buch/papers/fm/RS presentation/images/fm_30Hz.png) | bin | 8601 -> 8601 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/fm_3Hz.png (renamed from buch/papers/fm/RS presentation/images/fm_3Hz.png) | bin | 6558 -> 6558 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/fm_40Hz.png (renamed from buch/papers/fm/RS presentation/images/fm_40Hz.png) | bin | 8795 -> 8795 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/fm_5Hz.png (renamed from buch/papers/fm/RS presentation/images/fm_5Hz.png) | bin | 5766 -> 5766 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/fm_7Hz.png (renamed from buch/papers/fm/RS presentation/images/fm_7Hz.png) | bin | 6337 -> 6337 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/fm_frequenz.png (renamed from buch/papers/fm/RS presentation/images/fm_frequenz.png) | bin | 11042 -> 11042 bytes | |||
-rw-r--r-- | buch/papers/fm/FM presentation/images/fm_in_time.png (renamed from buch/papers/fm/RS presentation/images/fm_in_time.png) | bin | 27400 -> 27400 bytes | |||
-rw-r--r-- | buch/papers/fm/Makefile | 13 | ||||
-rw-r--r-- | buch/papers/fm/Makefile.inc | 5 | ||||
-rw-r--r-- | buch/papers/fm/Python animation/Bessel-FM.ipynb | 26 | ||||
-rw-r--r-- | buch/papers/fm/Quellen/A2-14.pdf | bin | 0 -> 259673 bytes | |||
-rw-r--r-- | buch/papers/fm/Quellen/FM_presentation.pdf | bin | 0 -> 357597 bytes | |||
-rw-r--r-- | buch/papers/fm/Quellen/Frequency modulation (FM) and Bessel functions.pdf (renamed from buch/papers/fm/RS presentation/Frequency modulation (FM) and Bessel functions.pdf) | bin | 159598 -> 159598 bytes | |||
-rw-r--r-- | buch/papers/fm/Quellen/Seydel2022_Book_HöhereMathematikImAlltag.pdf | bin | 0 -> 4118379 bytes | |||
-rw-r--r-- | buch/papers/fm/RS presentation/README.txt | 1 | ||||
-rw-r--r-- | buch/papers/fm/RS presentation/RS.tex | 123 | ||||
-rw-r--r-- | buch/papers/fm/main.tex | 8 | ||||
-rw-r--r-- | buch/papers/fm/packages.tex | 2 | ||||
-rw-r--r-- | buch/papers/fm/references.bib | 11 | ||||
-rw-r--r-- | buch/papers/kreismembran/main.tex | 5 | ||||
-rw-r--r-- | buch/papers/kreismembran/references.bib | 51 | ||||
-rw-r--r-- | buch/papers/kreismembran/teil0.tex | 74 | ||||
-rw-r--r-- | buch/papers/kreismembran/teil1.tex | 97 | ||||
-rw-r--r-- | buch/papers/kreismembran/teil2.tex | 107 | ||||
-rw-r--r-- | buch/papers/kreismembran/teil3.tex | 42 | ||||
-rw-r--r-- | buch/papers/kreismembran/teil4.tex | 16 | ||||
-rw-r--r-- | buch/papers/laguerre/definition.tex | 88 | ||||
-rw-r--r-- | buch/papers/laguerre/eigenschaften.tex | 151 | ||||
-rw-r--r-- | buch/papers/laguerre/gamma.tex | 247 | ||||
-rw-r--r-- | buch/papers/laguerre/images/estimates.pdf | bin | 13780 -> 13813 bytes | |||
-rw-r--r-- | buch/papers/laguerre/images/laguerre_poly.pdf | bin | 19815 -> 19815 bytes | |||
-rw-r--r-- | buch/papers/laguerre/images/rel_error_simple.pdf | bin | 23353 -> 24455 bytes | |||
-rw-r--r-- | buch/papers/laguerre/images/targets.pdf | bin | 14462 -> 14495 bytes | |||
-rw-r--r-- | buch/papers/laguerre/main.tex | 23 | ||||
-rw-r--r-- | buch/papers/laguerre/presentation/presentation.pdf | bin | 394774 -> 0 bytes | |||
-rw-r--r-- | buch/papers/laguerre/presentation/sections/gamma_approx.tex | 4 | ||||
-rw-r--r-- | buch/papers/laguerre/quadratur.tex | 109 | ||||
-rw-r--r-- | buch/papers/laguerre/references.bib | 4 | ||||
-rw-r--r-- | buch/papers/laguerre/scripts/estimates.py | 2 | ||||
-rw-r--r-- | buch/papers/laguerre/scripts/laguerre_poly.py | 2 | ||||
-rw-r--r-- | buch/papers/laguerre/scripts/rel_error_simple.py | 2 | ||||
-rw-r--r-- | buch/papers/laguerre/scripts/targets.py | 2 | ||||
-rw-r--r-- | buch/papers/lambertw/Bilder/Strategie.pdf | bin | 0 -> 120904 bytes | |||
-rw-r--r-- | buch/papers/lambertw/Bilder/Strategie.py | 52 | ||||
-rw-r--r-- | buch/papers/lambertw/Bilder/Strategie.svg | 790 | ||||
-rw-r--r-- | buch/papers/lambertw/Bilder/VerfolgungskurveBsp.png | bin | 124329 -> 297455 bytes | |||
-rw-r--r-- | buch/papers/lambertw/Bilder/pursuerDGL2.ggb | bin | 17954 -> 21894 bytes | |||
-rw-r--r-- | buch/papers/lambertw/Bilder/pursuerDGL2.pdf | bin | 17941 -> 21894 bytes | |||
-rw-r--r-- | buch/papers/lambertw/Bilder/pursuerDGL2.png | bin | 0 -> 48606 bytes | |||
-rw-r--r-- | buch/papers/lambertw/main.log | 686 | ||||
-rw-r--r-- | buch/papers/lambertw/main.tex | 46 | ||||
-rw-r--r-- | buch/papers/lambertw/teil0.tex | 119 | ||||
-rw-r--r-- | buch/papers/lambertw/teil1.tex | 328 | ||||
-rw-r--r-- | buch/papers/lambertw/teil4.tex | 465 |
92 files changed, 3045 insertions, 1785 deletions
diff --git a/buch/papers/0f1/images/konvergenzAiry.pdf b/buch/papers/0f1/images/konvergenzAiry.pdf Binary files differnew file mode 100644 index 0000000..206cd3a --- /dev/null +++ b/buch/papers/0f1/images/konvergenzAiry.pdf diff --git a/buch/papers/0f1/images/konvergenzNegativ.pdf b/buch/papers/0f1/images/konvergenzNegativ.pdf Binary files differnew file mode 100644 index 0000000..03b2ba1 --- /dev/null +++ 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 differnew file mode 100644 index 0000000..2e45129 --- /dev/null +++ b/buch/papers/0f1/images/konvergenzPositiv.pdf diff --git a/buch/papers/0f1/images/stabilitaet.pdf b/buch/papers/0f1/images/stabilitaet.pdf Binary files differnew file mode 100644 index 0000000..13dea39 --- /dev/null +++ b/buch/papers/0f1/images/stabilitaet.pdf diff --git a/buch/papers/0f1/listings/kettenbruchIterativ.c b/buch/papers/0f1/listings/kettenbruchIterativ.c new file mode 100644 index 0000000..d897b8f --- /dev/null +++ b/buch/papers/0f1/listings/kettenbruchIterativ.c @@ -0,0 +1,53 @@ +/**
+ * @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 fractionRekursion0f1(const double c, const double z, unsigned int n)
+{
+ //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;
+
+ for (unsigned int k = 0; k <= n; ++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;
+ }
+ //approximation fraction
+ return Ak/Bk;
+}
diff --git a/buch/papers/0f1/listings/kettenbruchRekursion.c b/buch/papers/0f1/listings/kettenbruchRekursion.c new file mode 100644 index 0000000..3caaf43 --- /dev/null +++ b/buch/papers/0f1/listings/kettenbruchRekursion.c @@ -0,0 +1,27 @@ +/**
+ * @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 fractionIter0f1(const double c, const double z, unsigned int k)
+{
+ //declaration
+ double a = 0.0;
+ double b = 0.0;
+ double abk = 0.0;
+ double temp = 0.0;
+
+ for (; k > 0; --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)
+ }
+
+ return a + temp; //a0 + temp
+}
\ No newline at end of file diff --git a/buch/papers/0f1/listings/potenzreihe.c b/buch/papers/0f1/listings/potenzreihe.c new file mode 100644 index 0000000..23fdfea --- /dev/null +++ b/buch/papers/0f1/listings/potenzreihe.c @@ -0,0 +1,69 @@ +#include <math.h>
+
+/**
+ * @brief Calculates pochhammer
+ * @param (a+n-1)!
+ * @return Result
+ */
+static double pochhammer(const double x, double n)
+{
+ double temp = x;
+
+ if (n > 0)
+ {
+ while (n > 1)
+ {
+ temp *= (x + n - 1);
+ --n;
+ }
+
+ return temp;
+ }
+ else
+ {
+ return 1;
+ }
+}
+
+/**
+ * @brief Calculates the Factorial
+ * @param n!
+ * @return Result
+ */
+static double fac(int n)
+{
+ double temp = n;
+
+ if (n > 0)
+ {
+ while (n > 1)
+ {
+ --n;
+ temp *= n;
+ }
+ return temp;
+ }
+ else
+ {
+ return 1;
+ }
+}
+
+/**
+ * @brief Calculates the Hypergeometric Function 0F1(;b;z)
+ * @param c in 0F1(;c;z)
+ * @param z in 0F1(;c;z)
+ * @param n number of itertions (precision)
+ * @return Result
+ */
+static double powerseries(const double c, const double z, unsigned int n)
+{
+ double temp = 0.0;
+
+ for (unsigned int k = 0; k < n; ++k)
+ {
+ temp += pow(z, k) / (factorial(k) * pochhammer(c, k));
+ }
+
+ return temp;
+}
\ No newline at end of file diff --git a/buch/papers/0f1/main.tex b/buch/papers/0f1/main.tex index 264ad56..0b1020f 100644 --- a/buch/papers/0f1/main.tex +++ b/buch/papers/0f1/main.tex @@ -1,36 +1,24 @@ -% -% main.tex -- Paper zum Thema <0f1> -% -% (c) 2020 Hochschule Rapperswil -% -\chapter{Thema\label{chapter:0f1}} -\lhead{Thema} -\begin{refsection} -\chapterauthor{Hans Muster} - -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} - -\input{papers/0f1/teil0.tex} -\input{papers/0f1/teil1.tex} -\input{papers/0f1/teil2.tex} -\input{papers/0f1/teil3.tex} - -\printbibliography[heading=subbibliography] -\end{refsection} +%
+% main.tex -- Paper zum Thema <0f1>
+%
+% (c) 2020 Hochschule Rapperswil
+%
+%
+
+
+
+\chapter{Algorithmus zur Berechnung von $\mathstrut_0F_1$\label{chapter:0f1}}
+\lhead{Algorithmus zur Berechnung von $\mathstrut_0F_1$}
+\begin{refsection}
+\chapterauthor{Fabian Dünki}
+
+
+
+
+\input{papers/0f1/teil0.tex}
+\input{papers/0f1/teil1.tex}
+\input{papers/0f1/teil2.tex}
+\input{papers/0f1/teil3.tex}
+
+\printbibliography[heading=subbibliography]
+\end{refsection}
diff --git a/buch/papers/0f1/references.bib b/buch/papers/0f1/references.bib index fb9cd8b..47555da 100644 --- a/buch/papers/0f1/references.bib +++ b/buch/papers/0f1/references.bib @@ -4,32 +4,82 @@ % (c) 2020 Autor, Hochschule Rapperswil % -@online{0f1:bibtex, - title = {BibTeX}, - url = {https://de.wikipedia.org/wiki/BibTeX}, - date = {2020-02-06}, - year = {2020}, - month = {2}, - day = {6} -} - -@book{0f1:numerical-analysis, - title = {Numerical Analysis}, - author = {David Kincaid and Ward Cheney}, - publisher = {American Mathematical Society}, - year = {2002}, - isbn = {978-8-8218-4788-6}, - inseries = {Pure and applied undegraduate texts}, - volume = {2} -} - -@article{0f1:mendezmueller, - author = { Tabea Méndez and Andreas Müller }, - title = { Noncommutative harmonic analysis and image registration }, - journal = { Appl. Comput. Harmon. Anal.}, - year = 2019, - volume = 47, - pages = {607--627}, - url = {https://doi.org/10.1016/j.acha.2017.11.004} +@online{0f1:library-gsl, + title = {GNU Scientific Library}, + url ={https://www.gnu.org/software/gsl/}, + date = {2022-07-07}, + year = {2022}, + month = {7}, + day = {7} } +@online{0f1:wiki-airyFunktion, + title = {Airy-Funktion}, + url ={https://de.wikipedia.org/wiki/Airy-Funktion}, + date = {2022-07-07}, + year = {2022}, + month = {7}, + day = {7} +} + +@online{0f1:wiki-kettenbruch, + title = {Kettenbruch}, + url ={https://de.wikipedia.org/wiki/Kettenbruch}, + date = {2022-07-07}, + year = {2022}, + month = {7}, + day = {25} +} + +@online{0f1:double, + title = {C - Data Types}, + url ={https://www.tutorialspoint.com/cprogramming/c_data_types.htm}, + date = {2022-07-07}, + year = {2022}, + month = {7}, + day = {7} +} + +@online{0f1:wolfram-0f1, + title = {Hypergeometric 0F1}, + url ={https://functions.wolfram.com/webMathematica/FunctionEvaluation.jsp?name=Hypergeometric0F1}, + date = {2022-07-07}, + year = {2022}, + month = {7}, + day = {7} +} + +@online{0f1:wiki-fraction, + title = {Gauss continued fraction}, + url ={https://en.wikipedia.org/wiki/Gauss%27s_continued_fraction}, + date = {2022-07-07}, + year = {2022}, + month = {7}, + day = {7} +} + +@online{0f1:code, + title = {Vollständiger C-Code}, + url ={https://github.com/AndreasFMueller/SeminarSpezielleFunktionen/tree/master/buch/papers/0f1/listings}, + date = {2022-07-07}, + year = {2022}, + month = {7}, + day = {7} +} + +@book{0f1:SeminarNumerik, + title = {Mathematisches Seminar Numerik}, + author = {Andreas Müller et al}, + publisher = {Andreas Müller}, + year = {2022}, +} + +@article{0f1:kettenbrueche, + author = { Benjamin Bouhafs-Keller }, + title = { Kettenbrüche }, + journal = { Mathematisches Seminar Numerik }, + year = 2020, + volume = 13, + pages = {363--376}, + url = {https://github.com/AndreasFMueller/SeminarNumerik} +} diff --git a/buch/papers/0f1/teil0.tex b/buch/papers/0f1/teil0.tex index 9087808..adccac7 100644 --- a/buch/papers/0f1/teil0.tex +++ b/buch/papers/0f1/teil0.tex @@ -1,22 +1,15 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{0f1: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{0f1: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. - - +%
+% einleitung.tex -- Einleitung
+%
+% (c) 2022 Fabian Dünki, Hochschule Rapperswil
+%
+\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.
+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.
+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.
diff --git a/buch/papers/0f1/teil1.tex b/buch/papers/0f1/teil1.tex index aca84d2..2ca9647 100644 --- a/buch/papers/0f1/teil1.tex +++ b/buch/papers/0f1/teil1.tex @@ -1,55 +1,101 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{0f1: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{0f1: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{0f1: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{0f1: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{0f1: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. - - +%
+% teil1.tex -- Mathematischer Hintergrund
+%
+% (c) 2022 Fabian Dünki, Hochschule Rapperswil
+%
+\section{Mathematischer Hintergrund
+\label{0f1:section:mathHintergrund}}
+\rhead{Mathematischer Hintergrund}
+Basierend auf den Herleitungen des vorhergehenden Kapitels \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 Unterfunktion der allgemein definierten Funktion $\mathstrut_pF_q$.
+
+\begin{definition}
+ \label{0f1:math:qFp:def}
+ Die hypergeometrische Funktion
+ $\mathstrut_pF_q$ ist definiert durch die Reihe
+ \[
+ \mathstrut_pF_q
+ \biggl(
+ \begin{matrix}
+ a_1,\dots,a_p\\
+ b_1,\dots,b_q
+ \end{matrix}
+ ;
+ x
+ \biggr)
+ =
+ \mathstrut_pF_q(a_1,\dots,a_p;b_1,\dots,b_q;x)
+ =
+ \sum_{k=0}^\infty
+ \frac{(a_1)_k\cdots(a_p)_k}{(b_1)_k\cdots(b_q)_k}\frac{x^k}{k!}.
+ \]
+\end{definition}
+
+Angewendet auf die Funktion $\mathstrut_pF_q$ ergibt sich für $\mathstrut_0F_1$:
+
+\begin{equation}
+ \label{0f1:math:0f1:eq}
+ \mathstrut_0F_1
+ \biggl(
+ \begin{matrix}
+ \\
+ b_1
+ \end{matrix}
+ ;
+ x
+ \biggr)
+ =
+ \mathstrut_0F_1(;b_1;x)
+ =
+ \sum_{k=0}^\infty
+ \frac{x^k}{(b_1)_k \cdot k!}.
+\end{equation}
+
+
+
+
+\subsection{Airy Funktion
+\label{0f1:subsection:airy}}
+Die Airy-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}
+
+\begin{definition}
+ \label{0f1:airy:differentialgleichung:def}
+ Die Differentialgleichung
+ $y'' - xy = 0$
+ heisst die {\em Airy-Differentialgleichung}. \cite{0f1:wiki-airyFunktion}
+\end{definition}
+
+Die Airy Funktion lässt sich auf verschiedene Arten darstellen. \cite{0f1:wiki-airyFunktion}
+Als hypergeometrische Funktion berechnet, ergibt sich wie in Kapitel \ref{buch:differentialgleichungen:section:hypergeometrisch} hergeleitet, folgende Lösungen der Airy-Differentialgleichung zu den Anfangsbedingungen $A(0)=1$ und $A'(0)=0$, sowie $B(0)=0$ und $B'(0)=0$.
+
+\begin{align}
+\label{0f1:airy:hypergeometrisch:eq}
+Ai(x)
+=
+\sum_{k=0}^\infty
+\frac{1}{(\frac23)_k} \frac{1}{k!}\biggl(\frac{x^3}{9}\biggr)^k
+=
+\mathstrut_0F_1\biggl(
+\begin{matrix}\text{---}\\\frac23\end{matrix};\frac{x^3}{9}
+\biggr).
+\\
+Bi(x)
+=
+\sum_{k=0}^\infty
+\frac{1}{(\frac43)_k} \frac{1}{k!}\biggl(\frac{x^3}{9}\biggr)^k
+=
+x\cdot\mathstrut_0F_1\biggl(
+\begin{matrix}\text{---}\\\frac43\end{matrix};
+\frac{x^3}{9}
+\biggr).
+\qedhere
+\end{align}
+
+In diesem speziellem Fall wird die Airy Funktion $Ai(x)$ \eqref{0f1:airy:hypergeometrisch:eq}
+benutzt, um die Stabilität der Algorithmen zu $\mathstrut_0F_1$ zu überprüfen.
+
+
diff --git a/buch/papers/0f1/teil2.tex b/buch/papers/0f1/teil2.tex index 804d11b..9269961 100644 --- a/buch/papers/0f1/teil2.tex +++ b/buch/papers/0f1/teil2.tex @@ -1,40 +1,172 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{0f1: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{0f1: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. - - +%
+% teil2.tex -- Umsetzung in C Programmen
+%
+% (c) 2022 Fabian Dünki, Hochschule Rapperswil
+%
+\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.
+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-Libray 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}
+
+\begin{align}
+ \label{0f1:umsetzung:0f1:eq}
+ \mathstrut_0F_1(;c;z)
+ &=
+ \sum_{k=0}^\infty
+ \frac{z^k}{(c)_k \cdot k!}
+ &=
+ \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}}
+\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
+\begin{equation*}
+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 darstellen.
+Die Kurzschreibweise für einen allgemeinen Kettenbruch ist
+\begin{equation*}
+ a_0 + \frac{a_1|}{|b_1} + \frac{a_2|}{|b_2} + \frac{a_3|}{|b_3} + \cdots
+\end{equation*}
+und ist somit verknüpfbar mit der Potenzreihe.
+\cite{0f1:wiki-kettenbruch}
+Angewendet auf die Funktion $\mathstrut_0F_1$ bedeutet dies\cite{0f1:wiki-fraction}:
+\begin{equation*}
+ \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*}
+Nach allen Umformungen ergibt sich folgender, irregulärer Kettenbruch \eqref{0f1:math:kettenbruch:0f1:eq}
+\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 \ref{0f1:listing:kettenbruchIterativ} umgesetzt wurde.
+\cite{0f1:wolfram-0f1}
+
+\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}
+
+\subsubsection{Herleitung}
+Ein Näherungsbruch in der Form
+\begin{align*}
+ \cfrac{A_k}{B_k} = a_k + \cfrac{b_{k + 1}}{a_{k + 1} + \cfrac{p}{q}}
+\end{align*}
+lässt sich zu
+\begin{align*}
+ \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:
+\begin{equation*}
+ \begin{pmatrix}
+ A_k\\
+ B_k
+ \end{pmatrix}
+ = \begin{pmatrix}
+ b_{k+1} \cdot q\\
+ a_{k+1} \cdot q + p
+ \end{pmatrix}
+ =\begin{pmatrix}
+ 0& b_{k+1}\\
+ 1& a_{k+1}
+ \end{pmatrix}
+ \begin{pmatrix}
+ p \\
+ q
+ \end{pmatrix}.
+ %\label{0f1:math:rekursionsformel:herleitung}
+\end{equation*}
+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:
+
+\begin{align*}
+ \begin{pmatrix}
+ A_k\\
+ B_k
+ \end{pmatrix}
+ &=
+ \begin{pmatrix}
+ 1& a_0\\
+ 0& 1
+ \end{pmatrix}
+ \begin{pmatrix}
+ 0& b_1\\
+ 1& a_1
+ \end{pmatrix}
+ \cdots
+ \begin{pmatrix}
+ 0& b_{k-1}\\
+ 1& a_{k-1}
+ \end{pmatrix}
+ \begin{pmatrix}
+ b_k\\
+ a_k
+ \end{pmatrix}
+\end{align*}
+Nach vollständiger Induktion ergibt sich für den Schritt $k$, die Matrix
+\begin{equation}
+ \label{0f1:math:matrix:ende:eq}
+ \begin{pmatrix}
+ A_{k}\\
+ B_{k}
+ \end{pmatrix}
+ =
+ \begin{pmatrix}
+ A_{k-2}& A_{k-1}\\
+ B_{k-2}& B_{k-1}
+ \end{pmatrix}
+ \begin{pmatrix}
+ b_k\\
+ a_k
+ \end{pmatrix}.
+\end{equation}
+Und Schlussendlich kann der Näherungsbruch
+\[
+\frac{Ak}{Bk}
+\]
+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}
+\begin{itemize}
+\item Startbedingungen:
+\begin{align*}
+A_{-1} &= 0 & A_0 &= a_0 \\
+B_{-1} &= 1 & B_0 &= 1
+\end{align*}
+\item Schritt $k\to k+1$:
+\[
+\begin{aligned}
+\label{0f1:math:loesung:eq}
+k &\rightarrow k + 1:
+&
+A_{k+1} &= A_{k-1} \cdot b_k + A_k \cdot a_k \\
+&&
+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}$
+\end{itemize}
+
+Ein grosser Vorteil dieser Umsetzung \ref{0f1:listing:kettenbruchRekursion} ist, dass im Vergleich zum Code \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 25472cb..2855e26 100644 --- a/buch/papers/0f1/teil3.tex +++ b/buch/papers/0f1/teil3.tex @@ -1,40 +1,64 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{0f1: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{0f1: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. - - +%
+% teil3.tex -- Resultate und Ausblick
+%
+% (c) 2022 Fabian Dünki, Hochschule Rapperswil
+%
+\section{Auswertung
+\label{0f1:section:teil3}}
+\rhead{Resultate}
+Im Verlauf des Seminares hat sich gezeigt,
+das ein einfacher mathematischer 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}
+
+\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.
+
+Erst wenn mehrere Durchläufe 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. 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.\ref{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.
+
+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 \ref{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 \ref{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 \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 Fakultät im Nenner, 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.
+
+
+
+\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$.
+ \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.
+ \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.
+ \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)$.
+ \label{0f1:ausblick:plot:airy:stabilitaet}}
+\end{figure}
+
diff --git a/buch/papers/fm/00_modulation.tex b/buch/papers/fm/00_modulation.tex new file mode 100644 index 0000000..dc99b40 --- /dev/null +++ b/buch/papers/fm/00_modulation.tex @@ -0,0 +1,28 @@ +% +% teil3.tex -- Beispiel-File für Teil 3 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\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. +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 +Jedoch ist das für die Vielfalt der Modulationsarten keine Einschrenkung. +Ein Nachrichtensignal kann auch über die Momentanfrequenz (instantenous frequency) \(\omega_i\) eines trägers verändert werden. +Mathematisch wird dann daraus +\[ + \omega_i = \omega_c + \frac{d \varphi(t)}{dt} +\] +mit der Ableitung der Phase\cite{fm:NAT}. +Mit diesen drei parameter ergeben sich auch drei modulationsarten, die Amplitudenmodulation welche \(A_c\) benutzt, +die Phasenmodulation \(\varphi\) und dann noch die Momentankreisfrequenz \(\omega_i\): +\newline +\newline +To do: Bilder jeder Modulationsart + + + diff --git a/buch/papers/fm/01_AM-FM.tex b/buch/papers/fm/01_AM-FM.tex deleted file mode 100644 index ef55d55..0000000 --- a/buch/papers/fm/01_AM-FM.tex +++ /dev/null @@ -1,36 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{AM - FM\label{fm:section:teil0}} -\rhead{AM- FM} - -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. -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 -Jedoch ist das für die Vilfalt der Modulationsarten keine Einschrenkung. -Ein Nachrichtensignal kann auch über die Momentanfrequenz (instantenous frequency) \(\omega_i\) eines trägers verändert werden. -Mathematisch wird dann daraus -\[ - \omega_i = \omega_c + \frac{d \varphi(t)}{dt} -\] -mit der Ableitung der Phase. -\newline -\newline -TODO: -Hier beschrieib ich was AmplitudenModulation ist und mache dan den link zu Frequenzmodulation inkl Formel \[cos( cos x)\] - - - -%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{fm: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. - - diff --git a/buch/papers/fm/01_AM.tex b/buch/papers/fm/01_AM.tex new file mode 100644 index 0000000..921fcf2 --- /dev/null +++ b/buch/papers/fm/01_AM.tex @@ -0,0 +1,29 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Amplitudenmodulation\label{fm:section:teil0}} +\rhead{AM} + +Das Ziel ist FM zu verstehen doch dazu wird zuerst AM erklärt welches einwenig einfacher zu verstehen ist und erst dann übertragen wir die Ideen in FM. +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 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}. +\] +Dabei ist die negative Frequenz der zweiten komplexen Schwingung zwingend erforderlich, damit in der Summe immer ein reelwertiges Trägersignal ergibt. +Nun wird der parameter \(A_c\) durch das Moduierende Signal \(m(t)\) ersetzt, wobei so \(m(t) \leqslant |1|\) normiert wurde. +\newline +\newline +TODO: +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}
\ No newline at end of file diff --git a/buch/papers/fm/02_frequenzyspectrum.tex b/buch/papers/fm/02_FM.tex index 1c6044d..fedfaaa 100644 --- a/buch/papers/fm/02_frequenzyspectrum.tex +++ b/buch/papers/fm/02_FM.tex @@ -3,11 +3,12 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{AM-FM im Frequenzspektrum +\section{FM \label{fm:section:teil1}} -\rhead{Problemstellung} - -Hier Beschreiben ich das Frequenzspektrum und wie AM und FM aussehen und generiert werden. +\rhead{FM} +\subsection{Frequenzspektrum} +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 fdaa0d1..760cdc4 100644 --- a/buch/papers/fm/03_bessel.tex +++ b/buch/papers/fm/03_bessel.tex @@ -4,25 +4,159 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{FM und Besselfunktion -\label{fm:section:teil2}} -\rhead{Teil 2} +\label{fm:section:proof}} +\rhead{Herleitung} +Die momentane Trägerkreisfrequenz \(\omega_i\) wie schon in (ref) beschrieben ist, bringt die Vorigen Kapittel beschreiben. (Ableitung \(\frac{d \varphi(t)}{dt}\) mit sich). +Diese wiederum kann durch \(\beta\sin(\omega_mt)\) ausgedrückt werden, wobei es das Modulierende Signal \(m(t)\) ist. +Somit haben wir unser \(x_c\) welches +\[ +\cos(\omega_c t+\beta\sin(\omega_mt)) +\] +ist. +\subsection{Herleitung} +Das Ziel ist es unser moduliertes Signal mit der Besselfunktion so auszudrücken: +\begin{align} + x_c(t) + = + \cos(\omega_ct+\beta\sin(\omega_mt)) + &= + \sum_{k= -\infty}^\infty J_{k}(\beta) \cos((\omega_c+k\omega_m)t) + \label{fm:eq:proof} +\end{align} +\subsubsection{Hilfsmittel} +Doch dazu brauchen wir die Hilfe der Additionsthoerme +\begin{align} + \cos(A + B) + &= + \cos(A)\cos(B)-\sin(A)\sin(B) + \label{fm:eq:addth1} + \\ + 2\cos (A)\cos (B) + &= + \cos(A-B)+\cos(A+B) + \label{fm:eq:addth2} + \\ + 2\sin(A)\sin(B) + &= + \cos(A-B)-\cos(A+B) + \label{fm:eq:addth3} +\end{align} +und die drei Besselfunktions indentitäten, +\begin{align} + \cos(\beta\sin\phi) + &= + J_0(\beta) + 2\sum_{k=1}^\infty J_{2k}(\beta) \cos(2k\phi) + \label{fm:eq:besselid1} + \\ + \sin(\beta\sin\phi) + &= + J_0(\beta) + 2\sum_{k=1}^\infty J_{2k+1}(\beta) \cos((2k+1)\phi) + \label{fm:eq:besselid2} + \\ + J_{-n}(\beta) &= (-1)^n J_n(\beta) + \label{fm:eq:besselid3} +\end{align} +welche man im Kapitel (ref), ref, ref findet. + +\subsubsection{Anwenden des Additionstheorem} +Mit dem \eqref{fm:eq:addth1} wird aus dem modulierten Signal +\[ + x_c(t) + = + \cos(\omega_c t + \beta\sin(\omega_mt)) + = + \cos(\omega_c t)\cos(\beta\sin(\omega_m t))-\sin(\omega_c)\sin(\beta\sin(\omega_m t)). + \label{fm:eq:start} +\] +\subsubsection{Cos-Teil} +Zu beginn wird der Cos-Teil +\[ + \cos(\omega_c)\cos(\beta\sin(\omega_mt)) +\] +mit hilfe der Besselindentität \eqref{fm:eq:besselid1} zum +\begin{align*} + \cos(\omega_c t) \cdot \bigg[\, J_0(\beta) + 2\sum_{k=1}^\infty J_{2k}(\beta) \cos( 2k \omega_m t)\, \bigg] + &=\\ + J_0(\beta)\cos(\omega_c t) + \sum_{k=1}^\infty J_{2k}(\beta) + \underbrace{2\cos(\omega_c t)\cos(2k\omega_m t)}_{\text{Additionstheorem}} +\end{align*} +wobei mit dem Additionstheorem \eqref{fm:eq:addth2} \(A = \omega_c t\) und \(B = 2k\omega_m t \) zum +\[ + 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) \} +\] +wird. +Wenn dabei \(2k\) durch alle geraden Zahlen von \(-\infty \to \infty\) mit \(n\) substituiert erhält man den vereinfachten Term +\[ + \sum_{n\, \text{gerade}} J_{n}(\beta) \cos((\omega_c + n\omega_m) t), + \label{fm:eq:gerade} +\] +dabei gehen nun die Terme von \(-\infty \to \infty\), dabei bleibt n Ganzzahlig. + +\subsubsection{Sin-Teil} +Nun zum zweiten Teil des Term \eqref{fm:eq:start}, den Sin-Teil +\[ + \sin(\omega_c)\sin(\beta\sin(\omega_m t)). +\] +Dieser wird mit der \eqref{fm:eq:besselid2} Besselindentität zu +\begin{align*} + \sin(\omega_c t) \cdot \bigg[ J_0(\beta) + 2 \sum_{k=1}^\infty J_{ 2k + 1}(\beta) \cos(( 2k + 1) \omega_m t) \bigg] + &=\\ + J_0(\beta) \cdot \sin(\omega_c t) + \sum_{k=1}^\infty J_{2k+1}(\beta) \underbrace{2\sin(\omega_c t)\cos((2k+1)\omega_m t)}_{\text{Additionstheorem}}. +\end{align*} +Auch hier wird ein Additionstheorem \eqref{fm:eq:addth3} gebraucht, dabei ist \(A = \omega_c t\) und \(B = (2k+1)\omega_m t \), +somit wird daraus +\[ + J_0(\beta) \cdot \sin(\omega_c) + \sum_{k=1}^\infty J_{2k+1}(\beta) \{ \underbrace{\cos((\omega_c-(2k+1)\omega_m) t)}_{\text{neg.Teil}} - \cos((\omega_c+(2k+1)\omega_m) t) \} +\]dieser Term. +Wenn dabei \(2k +1\) durch alle ungeraden Zahlen von \(-\infty \to \infty\) mit \(n\) substituiert. +Zusätzlich dabei noch die letzte Besselindentität \eqref{fm:eq:besselid3} brauchen, ist bei allen ungeraden negativen \(n : J_{-n}(\beta) = -1\cdot J_n(\beta)\). +Somit wird neg.Teil zum Term \(-\cos((\omega_c+(2k+1)\omega_m) t)\) und die Summe vereinfacht sich zu +\[ + \sum_{n\, \text{ungerade}} -1 \cdot J_{n}(\beta) \cos((\omega_c + n\omega_m) t). + \label{fm:eq:ungerade} +\] +Substituiert man nun noch \(n \text{mit} -n \) so fällt das \(-1\) weg. + +\subsubsection{Summe Zusammenführen} +Beide Teile \eqref{fm:eq:gerade} Gerade +\[ + \sum_{n\, \text{gerade}} J_{n}(\beta) \cos((\omega_c + n\omega_m) t) +\]und \eqref{fm:eq:ungerade} Ungerade +\[ + \sum_{n\, \text{ungerade}} J_{n}(\beta) \cos((\omega_c + n\omega_m) t) +\] +ergeben zusammen +\[ + \cos(\omega_ct+\beta\sin(\omega_mt)) + = + \sum_{k= -\infty}^\infty J_{k}(\beta) \cos((\omega_c+k\omega_m)t). +\] +Somit ist \eqref{fm:eq:proof} bewiesen. +\newpage + +%---------------------------------------------------------------------------- +\subsection{Bessel und Frequenzspektrum} +Um sich das ganze noch einwenig Bildlicher vorzustellenhier einmal die Besselfunktion \(J_{k}(\beta)\) in geplottet. +\begin{figure} + \centering +% \input{./PyPython animation/bessel.pgf} + \caption{Bessle Funktion \(J_{k}(\beta)\)} + \label{fig:bessel} +\end{figure} +TODO Grafik einfügen, +\newline +Nun einmal das Modulierte FM signal im Frequenzspektrum mit den einzelen Summen dargestellt + +TODO Hier wird beschrieben wie die Bessel Funktion der FM im Frequenzspektrum hilft, wieso diese gebrauch wird und ihre Vorteile. -%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? -% +\begin{itemize} + \item Zuerest einmal die Herleitung von FM zu der Besselfunktion + \item Im Frequenzspektrum darstellen mit Farben, ersichtlich machen. + \item Parameter tuing der Trägerfrequenz, Modulierende frequenz und Beta. +\end{itemize} + + %\subsection{De finibus bonorum et malorum %\label{fm:subsection:bonorum}} diff --git a/buch/papers/fm/04_fazit.tex b/buch/papers/fm/04_fazit.tex index 8c6c002..8d5eca4 100644 --- a/buch/papers/fm/04_fazit.tex +++ b/buch/papers/fm/04_fazit.tex @@ -6,35 +6,7 @@ \section{Fazit \label{fm:section:fazit}} \rhead{Zusamenfassend} -%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{fm: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. + +TODO Anwendungen erklären und Sinn des Ganzen. diff --git a/buch/papers/fm/RS presentation/FM_presentation.pdf b/buch/papers/fm/FM presentation/FM_presentation.pdf Binary files differindex 496e35e..496e35e 100644 --- a/buch/papers/fm/RS presentation/FM_presentation.pdf +++ b/buch/papers/fm/FM presentation/FM_presentation.pdf diff --git a/buch/papers/fm/RS presentation/FM_presentation.tex b/buch/papers/fm/FM presentation/FM_presentation.tex index 92cb501..2801e69 100644 --- a/buch/papers/fm/RS presentation/FM_presentation.tex +++ b/buch/papers/fm/FM presentation/FM_presentation.tex @@ -1,4 +1,4 @@ -%% !TeX root = RS.tex +%% !TeX root = .tex \documentclass[11pt,aspectratio=169]{beamer} \usepackage[utf8]{inputenc} @@ -15,7 +15,7 @@ \logo{} \institute{OST Ostschweizer Fachhochschule} \date{16.5.2022} - \subject{Mathematisches Seminar} + \subject{Mathematisches Seminar - Spezielle Funktionen} %\setbeamercovered{transparent} \setbeamercovered{invisible} \setbeamertemplate{navigation symbols}{} diff --git a/buch/papers/fm/FM presentation/README.txt b/buch/papers/fm/FM presentation/README.txt new file mode 100644 index 0000000..65f390d --- /dev/null +++ b/buch/papers/fm/FM presentation/README.txt @@ -0,0 +1 @@ +Dies ist die Presentation des FM - Bessel
\ No newline at end of file diff --git a/buch/papers/fm/RS presentation/images/100HZ.png b/buch/papers/fm/FM presentation/images/100HZ.png Binary files differindex 371b9bf..371b9bf 100644 --- a/buch/papers/fm/RS presentation/images/100HZ.png +++ b/buch/papers/fm/FM presentation/images/100HZ.png diff --git a/buch/papers/fm/RS presentation/images/200HZ.png b/buch/papers/fm/FM presentation/images/200HZ.png Binary files differindex f6836bd..f6836bd 100644 --- a/buch/papers/fm/RS presentation/images/200HZ.png +++ b/buch/papers/fm/FM presentation/images/200HZ.png diff --git a/buch/papers/fm/RS presentation/images/300HZ.png b/buch/papers/fm/FM presentation/images/300HZ.png Binary files differindex 6762c1a..6762c1a 100644 --- a/buch/papers/fm/RS presentation/images/300HZ.png +++ b/buch/papers/fm/FM presentation/images/300HZ.png diff --git a/buch/papers/fm/RS presentation/images/400HZ.png b/buch/papers/fm/FM presentation/images/400HZ.png Binary files differindex 236c428..236c428 100644 --- a/buch/papers/fm/RS presentation/images/400HZ.png +++ b/buch/papers/fm/FM presentation/images/400HZ.png diff --git a/buch/papers/fm/RS presentation/images/bessel.png b/buch/papers/fm/FM presentation/images/bessel.png Binary files differindex f4c83ea..f4c83ea 100644 --- a/buch/papers/fm/RS presentation/images/bessel.png +++ b/buch/papers/fm/FM presentation/images/bessel.png diff --git a/buch/papers/fm/RS presentation/images/bessel2.png b/buch/papers/fm/FM presentation/images/bessel2.png Binary files differindex ccda3f9..ccda3f9 100644 --- a/buch/papers/fm/RS presentation/images/bessel2.png +++ b/buch/papers/fm/FM presentation/images/bessel2.png diff --git a/buch/papers/fm/RS presentation/images/bessel_beta1.png b/buch/papers/fm/FM presentation/images/bessel_beta1.png Binary files differindex 1f5c47e..1f5c47e 100644 --- a/buch/papers/fm/RS presentation/images/bessel_beta1.png +++ b/buch/papers/fm/FM presentation/images/bessel_beta1.png diff --git a/buch/papers/fm/RS presentation/images/bessel_frequenz.png b/buch/papers/fm/FM presentation/images/bessel_frequenz.png Binary files differindex 4f228b9..4f228b9 100644 --- a/buch/papers/fm/RS presentation/images/bessel_frequenz.png +++ b/buch/papers/fm/FM presentation/images/bessel_frequenz.png diff --git a/buch/papers/fm/RS presentation/images/beta_0.001.png b/buch/papers/fm/FM presentation/images/beta_0.001.png Binary files differindex 7e4e276..7e4e276 100644 --- a/buch/papers/fm/RS presentation/images/beta_0.001.png +++ b/buch/papers/fm/FM presentation/images/beta_0.001.png diff --git a/buch/papers/fm/RS presentation/images/beta_0.1.png b/buch/papers/fm/FM presentation/images/beta_0.1.png Binary files differindex e7722b3..e7722b3 100644 --- a/buch/papers/fm/RS presentation/images/beta_0.1.png +++ b/buch/papers/fm/FM presentation/images/beta_0.1.png diff --git a/buch/papers/fm/RS presentation/images/beta_0.5.png b/buch/papers/fm/FM presentation/images/beta_0.5.png Binary files differindex 5261b43..5261b43 100644 --- a/buch/papers/fm/RS presentation/images/beta_0.5.png +++ b/buch/papers/fm/FM presentation/images/beta_0.5.png diff --git a/buch/papers/fm/RS presentation/images/beta_1.png b/buch/papers/fm/FM presentation/images/beta_1.png Binary files differindex 6d3535c..6d3535c 100644 --- a/buch/papers/fm/RS presentation/images/beta_1.png +++ b/buch/papers/fm/FM presentation/images/beta_1.png diff --git a/buch/papers/fm/RS presentation/images/beta_2.png b/buch/papers/fm/FM presentation/images/beta_2.png Binary files differindex 6930eae..6930eae 100644 --- a/buch/papers/fm/RS presentation/images/beta_2.png +++ b/buch/papers/fm/FM presentation/images/beta_2.png diff --git a/buch/papers/fm/RS presentation/images/beta_3.png b/buch/papers/fm/FM presentation/images/beta_3.png Binary files differindex c6df82c..c6df82c 100644 --- a/buch/papers/fm/RS presentation/images/beta_3.png +++ b/buch/papers/fm/FM presentation/images/beta_3.png diff --git a/buch/papers/fm/RS presentation/images/fm_10Hz.png b/buch/papers/fm/FM presentation/images/fm_10Hz.png Binary files differindex 51bddc7..51bddc7 100644 --- a/buch/papers/fm/RS presentation/images/fm_10Hz.png +++ b/buch/papers/fm/FM presentation/images/fm_10Hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_20hz.png b/buch/papers/fm/FM presentation/images/fm_20hz.png Binary files differindex 126ecf3..126ecf3 100644 --- a/buch/papers/fm/RS presentation/images/fm_20hz.png +++ b/buch/papers/fm/FM presentation/images/fm_20hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_30Hz.png b/buch/papers/fm/FM presentation/images/fm_30Hz.png Binary files differindex 371b9bf..371b9bf 100644 --- a/buch/papers/fm/RS presentation/images/fm_30Hz.png +++ b/buch/papers/fm/FM presentation/images/fm_30Hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_3Hz.png b/buch/papers/fm/FM presentation/images/fm_3Hz.png Binary files differindex d4098af..d4098af 100644 --- a/buch/papers/fm/RS presentation/images/fm_3Hz.png +++ b/buch/papers/fm/FM presentation/images/fm_3Hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_40Hz.png b/buch/papers/fm/FM presentation/images/fm_40Hz.png Binary files differindex 4cf11d4..4cf11d4 100644 --- a/buch/papers/fm/RS presentation/images/fm_40Hz.png +++ b/buch/papers/fm/FM presentation/images/fm_40Hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_5Hz.png b/buch/papers/fm/FM presentation/images/fm_5Hz.png Binary files differindex e495b5c..e495b5c 100644 --- a/buch/papers/fm/RS presentation/images/fm_5Hz.png +++ b/buch/papers/fm/FM presentation/images/fm_5Hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_7Hz.png b/buch/papers/fm/FM presentation/images/fm_7Hz.png Binary files differindex b3dd7e3..b3dd7e3 100644 --- a/buch/papers/fm/RS presentation/images/fm_7Hz.png +++ b/buch/papers/fm/FM presentation/images/fm_7Hz.png diff --git a/buch/papers/fm/RS presentation/images/fm_frequenz.png b/buch/papers/fm/FM presentation/images/fm_frequenz.png Binary files differindex 26bfd86..26bfd86 100644 --- a/buch/papers/fm/RS presentation/images/fm_frequenz.png +++ b/buch/papers/fm/FM presentation/images/fm_frequenz.png diff --git a/buch/papers/fm/RS presentation/images/fm_in_time.png b/buch/papers/fm/FM presentation/images/fm_in_time.png Binary files differindex 068eafc..068eafc 100644 --- a/buch/papers/fm/RS presentation/images/fm_in_time.png +++ b/buch/papers/fm/FM presentation/images/fm_in_time.png diff --git a/buch/papers/fm/Makefile b/buch/papers/fm/Makefile index c84963f..f30c4a9 100644 --- a/buch/papers/fm/Makefile +++ b/buch/papers/fm/Makefile @@ -5,8 +5,9 @@ # SOURCES := \ - 01_AM-FM.tex \ - 02_frequenzyspectrum.tex \ + 00_modulation.tex \ + 01_AM.tex \ + 02_FM.tex \ 03_bessel.tex \ 04_fazit.tex \ main.tex @@ -16,15 +17,17 @@ SOURCES := \ #FIGURES := $(patsubst tikz/%.tex, figures/%.pdf, $(TIKZFIGURES)) -#.PHONY: images -#images: $(FIGURES) +all: images standalone + +.PHONY: images +images: $(FIGURES) #figures/%.pdf: tikz/%.tex # mkdir -p figures # pdflatex --output-directory=figures $< .PHONY: standalone -standalone: standalone.tex $(SOURCES) #$(FIGURES) +standalone: standalone.tex $(SOURCES) $(FIGURES) mkdir -p standalone cd ../..; \ pdflatex \ diff --git a/buch/papers/fm/Makefile.inc b/buch/papers/fm/Makefile.inc index e5cd9f6..40f23b1 100644 --- a/buch/papers/fm/Makefile.inc +++ b/buch/papers/fm/Makefile.inc @@ -6,8 +6,9 @@ dependencies-fm = \ papers/fm/packages.tex \ papers/fm/main.tex \ - papers/fm/01_AM-FM.tex \ - papers/fm/02_frequenzyspectrum.tex \ + papers/fm/00_modulation.tex \ + papers/fm/01_AM.tex \ + papers/fm/02_FM.tex \ papers/fm/03_bessel.tex \ papers/fm/04_fazit.tex \ papers/fm/references.bib diff --git a/buch/papers/fm/Python animation/Bessel-FM.ipynb b/buch/papers/fm/Python animation/Bessel-FM.ipynb index bfbb83d..6f099a7 100644 --- a/buch/papers/fm/Python animation/Bessel-FM.ipynb +++ b/buch/papers/fm/Python animation/Bessel-FM.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 117, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -11,6 +11,9 @@ "from scipy.fft import fft, ifft, fftfreq\n", "import scipy.special as sc\n", "import scipy.fftpack\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", "def fm(beta):\n", @@ -94,12 +97,12 @@ }, { "cell_type": "code", - "execution_count": 122, + "execution_count": 29, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -119,18 +122,19 @@ ], "source": [ "\n", - "for n in range (-4,4):\n", - " x = np.linspace(0,11,1000)\n", + "for n in range (-2,4):\n", + " x = np.linspace(-11,11,1000)\n", " y = sc.jv(n,x)\n", - " plt.plot(x, y, '-')\n", - "plt.plot([1,1],[sc.jv(0,1),sc.jv(-1,1)],)\n", - "plt.xlim(0,10)\n", + " plt.plot(x, y, '-',label='n='+str(n))\n", + "#plt.plot([1,1],[sc.jv(0,1),sc.jv(-1,1)],)\n", + "plt.xlim(-10,10)\n", "plt.grid(True)\n", - "plt.ylabel('Bessel J_n(b)')\n", - "plt.xlabel('b')\n", + "plt.ylabel('Bessel $J_n(\\\\beta)$')\n", + "plt.xlabel(' $ \\\\beta $ ')\n", "plt.plot(x, y)\n", + "plt.legend()\n", "plt.show()\n", - "\n", + "#plt.savefig('bessel.pgf', format='pgf')\n", "print(sc.jv(0,1))" ] }, diff --git a/buch/papers/fm/Quellen/A2-14.pdf b/buch/papers/fm/Quellen/A2-14.pdf Binary files differnew file mode 100644 index 0000000..7348cca --- /dev/null +++ b/buch/papers/fm/Quellen/A2-14.pdf diff --git a/buch/papers/fm/Quellen/FM_presentation.pdf b/buch/papers/fm/Quellen/FM_presentation.pdf Binary files differnew file mode 100644 index 0000000..496e35e --- /dev/null +++ b/buch/papers/fm/Quellen/FM_presentation.pdf diff --git a/buch/papers/fm/RS presentation/Frequency modulation (FM) and Bessel functions.pdf b/buch/papers/fm/Quellen/Frequency modulation (FM) and Bessel functions.pdf Binary files differindex a6e701c..a6e701c 100644 --- a/buch/papers/fm/RS presentation/Frequency modulation (FM) and Bessel functions.pdf +++ b/buch/papers/fm/Quellen/Frequency modulation (FM) and Bessel functions.pdf diff --git a/buch/papers/fm/Quellen/Seydel2022_Book_HöhereMathematikImAlltag.pdf b/buch/papers/fm/Quellen/Seydel2022_Book_HöhereMathematikImAlltag.pdf Binary files differnew file mode 100644 index 0000000..2a0bddd --- /dev/null +++ b/buch/papers/fm/Quellen/Seydel2022_Book_HöhereMathematikImAlltag.pdf diff --git a/buch/papers/fm/RS presentation/README.txt b/buch/papers/fm/RS presentation/README.txt deleted file mode 100644 index 4d0620f..0000000 --- a/buch/papers/fm/RS presentation/README.txt +++ /dev/null @@ -1 +0,0 @@ -Dies ist die Presentation des Reed-Solomon-Code
\ No newline at end of file diff --git a/buch/papers/fm/RS presentation/RS.tex b/buch/papers/fm/RS presentation/RS.tex deleted file mode 100644 index 8a67619..0000000 --- a/buch/papers/fm/RS presentation/RS.tex +++ /dev/null @@ -1,123 +0,0 @@ -%% !TeX root = RS.tex - -\documentclass[11pt,aspectratio=169]{beamer} -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage{lmodern} -\usepackage[ngerman]{babel} -\usepackage{tikz} -\usetheme{Hannover} - -\begin{document} - \author{Joshua Bär} - \title{FM - Bessel} - \subtitle{} - \logo{} - \institute{OST Ostschweizer Fachhochschule} - \date{16.5.2022} - \subject{Mathematisches Seminar- Spezielle Funktionen} - %\setbeamercovered{transparent} - \setbeamercovered{invisible} - \setbeamertemplate{navigation symbols}{} - \begin{frame}[plain] - \maketitle - \end{frame} -%------------------------------------------------------------------------------- -\section{Einführung} - \begin{frame} - \frametitle{Frequenzmodulation} - - \visible<1->{\begin{equation} \cos(\omega_c t+\beta\sin(\omega_mt))\end{equation}} - - \only<2>{\includegraphics[scale= 0.7]{images/fm_in_time.png}} - \only<3>{\includegraphics[scale= 0.7]{images/fm_frequenz.png}} - \only<4>{\includegraphics[scale= 0.7]{images/bessel_frequenz.png}} - - - \end{frame} -%------------------------------------------------------------------------------- -\section{Proof} -\begin{frame} - \frametitle{Bessel} - - \visible<1->{\begin{align} - \cos(\beta\sin\varphi) - &= - J_0(\beat) + 2\sum_{m=1}^\infty J_{2m}(\beta) \cos(2m\varphi) - \\ - \sin(\beta\sin\varphi) - &= - J_0(\beat) + 2\sum_{m=1}^\infty J_{2m}(\beta) \cos(2m\varphi) - \\ - J_{-n}(\beat) &= (-1)^n J_n(\beta) - \end{align}} - \visible<2->{\begin{align} - \cos(A + B) - &= - \cos(A)\cos(B)-\sin(A)\sin(B) - \\ - 2\cos (A)\cos (B) - &= - \cos(A-B)+\cos(A+B) - \\ - 2\sin(A)\sin(B) - &= - \cos(A-B)-\cos(A+B) - \end{align}} -\end{frame} - -%------------------------------------------------------------------------------- -\begin{frame} - \frametitle{Prof->Done} - \begin{align} - \cos(\omega_ct+\beta\sin(\omega_mt)) - &= - \sum_{k= -\infty}^\infty J_{k}(\beta) \cos((\omega_c+k\omgea_m)t) - \end{align} - \end{frame} -%------------------------------------------------------------------------------- - \begin{frame} - \begin{figure} - \only<1>{\includegraphics[scale = 0.75]{images/fm_frequenz.png}} - \only<2>{\includegraphics[scale = 0.75]{images/bessel_frequenz.png}} - \end{figure} - \end{frame} -%------------------------------------------------------------------------------- -\section{Input Parameter} - \begin{frame} - \frametitle{Träger-Frequenz Parameter} - \onslide<1->{\begin{equation}\cos(\omega_ct+\beta\sin(\omega_mt))\end{equation}} - \only<1>{\includegraphics[scale=0.75]{images/100HZ.png}} - \only<2>{\includegraphics[scale=0.75]{images/200HZ.png}} - \only<3>{\includegraphics[scale=0.75]{images/300HZ.png}} - \only<4>{\includegraphics[scale=0.75]{images/400HZ.png}} - \end{frame} -%------------------------------------------------------------------------------- -\begin{frame} -\frametitle{Modulations-Frequenz Parameter} -\onslide<1->{\begin{equation}\cos(\omega_ct+\beta\sin(\omega_mt))\end{equation}} -\only<1>{\includegraphics[scale=0.75]{images/fm_3Hz.png}} -\only<2>{\includegraphics[scale=0.75]{images/fm_5Hz.png}} -\only<3>{\includegraphics[scale=0.75]{images/fm_7Hz.png}} -\only<4>{\includegraphics[scale=0.75]{images/fm_10Hz.png}} -\only<5>{\includegraphics[scale=0.75]{images/fm_20Hz.png}} -\only<6>{\includegraphics[scale=0.75]{images/fm_30Hz.png}} -\end{frame} -%------------------------------------------------------------------------------- -\begin{frame} -\frametitle{Beta Parameter} - \onslide<1->{\begin{equation}\sum_{k= -\infty}^\infty J_{k}(\beta) \cos((\omega_c+k\omgea_m)t)\end{equation}} - \only<1>{\includegraphics[scale=0.7]{images/beta_0.001.png}} - \only<2>{\includegraphics[scale=0.7]{images/beta_0.1.png}} - \only<3>{\includegraphics[scale=0.7]{images/beta_0.5.png}} - \only<4>{\includegraphics[scale=0.7]{images/beta_1.png}} - \only<5>{\includegraphics[scale=0.7]{images/beta_2.png}} - \only<6>{\includegraphics[scale=0.7]{images/beta_3.png}} - \only<7>{\includegraphics[scale=0.7]{images/bessel.png}} -\end{frame} -%------------------------------------------------------------------------------- -\begin{frame} - \includegraphics[scale=0.5]{images/beta_1.png} - \includegraphics[scale=0.5]{images/bessel.png} -\end{frame} -\end{document} diff --git a/buch/papers/fm/main.tex b/buch/papers/fm/main.tex index fcf4d1a..731f56f 100644 --- a/buch/papers/fm/main.tex +++ b/buch/papers/fm/main.tex @@ -27,10 +27,12 @@ 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. +Nun zur Modulation im nächsten Abschnitt.\cite{fm:NAT} -\input{papers/fm/01_AM-FM.tex} -\input{papers/fm/02_frequenzyspectrum.tex} + +\input{papers/fm/00_modulation.tex} +\input{papers/fm/01_AM.tex} +\input{papers/fm/02_FM.tex} \input{papers/fm/03_bessel.tex} \input{papers/fm/04_fazit.tex} diff --git a/buch/papers/fm/packages.tex b/buch/papers/fm/packages.tex index 4cba2b6..f0ca8cc 100644 --- a/buch/papers/fm/packages.tex +++ b/buch/papers/fm/packages.tex @@ -7,4 +7,4 @@ % if your paper needs special packages, add package commands as in the % following example %\usepackage{packagename} - +\usepackage{xcolor} diff --git a/buch/papers/fm/references.bib b/buch/papers/fm/references.bib index 76eb265..21b910b 100644 --- a/buch/papers/fm/references.bib +++ b/buch/papers/fm/references.bib @@ -23,6 +23,17 @@ volume = {2} } +@book{fm:NAT, + title = {Nachrichtentechnik 1 + 2}, + author = {Thomas Kneubühler}, + publisher = {None}, + year = {2021}, + isbn = {}, + inseries = {Script for students}, + volume = {} +} + + @article{fm:mendezmueller, author = { Tabea Méndez and Andreas Müller }, title = { Noncommutative harmonic analysis and image registration }, diff --git a/buch/papers/kreismembran/main.tex b/buch/papers/kreismembran/main.tex index e63a118..f6000a1 100644 --- a/buch/papers/kreismembran/main.tex +++ b/buch/papers/kreismembran/main.tex @@ -3,8 +3,8 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Schwingungen einer kreisförmligen Membran\label{chapter:kreismembran}} -\lhead{Schwingungen einer kreisförmligen Membran} +\chapter{Schwingungen einer kreisförmigen Membran\label{chapter:kreismembran}} +\lhead{Schwingungen einer kreisförmigen Membran} \begin{refsection} \chapterauthor{Andrea Mozzini Vellen und Tim Tönz} @@ -12,6 +12,7 @@ \input{papers/kreismembran/teil1.tex} \input{papers/kreismembran/teil2.tex} \input{papers/kreismembran/teil3.tex} +\input{papers/kreismembran/teil4.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/kreismembran/references.bib b/buch/papers/kreismembran/references.bib index 0b6a683..acf8f90 100644 --- a/buch/papers/kreismembran/references.bib +++ b/buch/papers/kreismembran/references.bib @@ -4,6 +4,25 @@ % (c) 2020 Autor, Hochschule Rapperswil % +@online{kreismembran:Duden:Membran, + title = {Duden:Membran}, + url = {https://www.duden.de/rechtschreibung/Membran}, + date = {2022-07-20}, + year = {2022}, + month = {7}, + day = {20} +} + +@online{kreismembran:wellengleichung_herleitung, + title = {Derivation of the 2D Wave Equation}, + author = {Dr. Christopher Lum}, + url = {https://www.youtube.com/watch?v=KAS7JBztw8E&t=0s}, + date = {2022-07-20}, + year = {2022}, + month = {7}, + day = {20} +} + @online{kreismembran:bibtex, title = {BibTeX}, url = {https://de.wikipedia.org/wiki/BibTeX}, @@ -24,7 +43,7 @@ } @article{kreismembran:mendezmueller, - author = { Tabea Méndez and Andreas Müller }, + author = { Tabea Méndez and Andreas Müller }, title = { Noncommutative harmonic analysis and image registration }, journal = { Appl. Comput. Harmon. Anal.}, year = 2019, @@ -33,3 +52,33 @@ url = {https://doi.org/10.1016/j.acha.2017.11.004} } +@book{lokenath_debnath_integral_2015, + edition = {Third Edition}, + title = {Integral Tansforms and Their Applications}, + publisher = {{CRC} Press}, + author = {{Lokenath Debnath} and Dambaru Bhatta}, + date = {2015}, +} + +@thesis{nishanth_p_vibrations_2018, + title = {Vibrations of a Circular Membrane - Some Undergraduadte Exercises}, + type = {phdthesis}, + author = {{Nishanth P.} and {Udayanandan K. M.}}, + date = {2018}, +} + +@thesis{prof_dr_horst_knorrer_kreisformige_2013, + title = {Kreisförmige Membranen}, + institution = {{ETHZ}}, + type = {phdthesis}, + author = {{Prof. Dr. Horst Knörrer}}, + date = {2013}, +} + +@thesis{kreismembran:membrane_vs_thin_plate, + title = {Modeling and Control of SPIDER Satellite Components}, + institution = {{faculty of the Virginia Polytechnic Institute and State University}}, + type = {Dissertation}, + author = {{Eric John Ruggiero Doctor of Philosophy In Mechanical Engineering}}, + date = {2005}, +}
\ No newline at end of file diff --git a/buch/papers/kreismembran/teil0.tex b/buch/papers/kreismembran/teil0.tex index 1552259..bb8188d 100644 --- a/buch/papers/kreismembran/teil0.tex +++ b/buch/papers/kreismembran/teil0.tex @@ -4,7 +4,79 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Einleitung\label{kreismembran:section:teil0}} -\rhead{Einleitung} +\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 ...". +Ein dünnes Blättchen aus Metall zeig jedoch nicht die selben dynamischen Eigenschaften auf, 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. +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. +Sie besteht herkömmlicher weise aus einem Leder (Fell), welches auf einen offenen Zylinder (Zargen) aufgespannt wird. +Das Leder alleine erzeugt nach einem Aufschlag keine hörbaren Schwingungen. +Sobald das Fell jedoch über den Zargen gespannt wird, kann das Fell auf verschiedensten weisen weiter schwingen, was für den Klang der Trommel verantwortlich ist. +Wie genau diese Schwingungen untersucht werden können wird in der Folgenden Arbeit Diskutiert. +\paragraph{Annahmen} +Um die Wellengleichung herzuleiten \cite{kreismembran:wellengleichung_herleitung}, muss ein Modell einer Membran definiert werden. +Das untersuchte Modell einer Membrane Erfüllt folgende Eigenschaften: +\begin{enumerate}[i] + \item Die Membran ist homogen. + Dies bedeutet, dass die Membran über die ganze Fläche die selbe Dichte $ \rho $ und Elastizität hat. + Durch die konstante Elastizität ist die ganze Membran unter gleichmässiger Spannung $ T $. + \item Die Membran ist perfekt flexibel. + Daraus folgt, dass die Membran ohne Kraftaufwand verbogen werden kann. + Die Membran ist dadurch nicht allein stehend schwing-fähig, hierzu muss sie gespannt werden mit einer Kraft $ T $. + \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 resultierende Schwingung wird daher nicht gedämpft sein. + +\end{enumerate} + +\subsection{Wellengleichung} Um die Wellengleichung einer Membran herzuleiten wird vorerst eine schwingende Saite betrachtet. +Es lohnt sich das Verhalten einer Saite zu beschreiben da eine Saite das selbe Verhalten wie eine Membran aufweist mit dem Unterschied einer fehlenden Dimension. +Die Verbindung zwischen Membran und Saite ist intuitiv ersichtlich, stellt man sich einen Querschnitt einer Trommel vor. +%Wie analog zur Membran kann eine Saite erst unter Spannung schwingen. + +Abbildung \ref{TODO} ist ein infinitesimales Stück einer Saite mit Länge $ dx $ skizziert. +Wie für die Membran ist die Annahme iii gültig, keine Bewegung in die Richtung $ \hat{x} $. +Um dies zu erfüllen muss der Punkt $ P_1 $ gleich stark in Richtung $ -\hat{x} $ gezogen werden wie der Punkt $ P_2 $ in Richtung $ \hat{x} $ gezogen wird. Ist $ T_1 $ die Kraft welche mit Winkel $ \alpha $ auf Punkt $ P_1 $ wirkt sowie $ T_2 $ und $ \beta$ das analoge für Punkt $ P_2 $ ist, so können die Kräfte +\begin{equation}\label{kreismembran:eq:no_translation} + T_1 \cos \alpha = T_2 \cos \beta = T +\end{equation} +gleichgesetzt werden. +Das dynamische verhalten der senkrechten Auslenkung $ u(x,t) $ muss das newtonsche Gesetz +\begin{equation*} + \sum F = m \cdot a +\end{equation*} +befolgen. Die senkrecht wirkenden Kräfte werden mit $ T_1 $ und $ T_2 $ ausgedrückt, die Masse als Funktion der Dichte $ \rho $ und die Beschleunigung in Form der zweiten Ableitung als +\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 +\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*} +vereinfacht als +\begin{equation*} + \tan \beta - \tan \alpha = \frac{\rho dx}{T} \frac{\partial^2 u}{\partial t^2} +\end{equation*} +geschrieben werden. +Der $ \tan \alpha $ entspricht der örtlichen Ableitung von $ u(x,t) $ an der Stelle $ x_0 $ und analog der $ \tan \beta $ für die Stelle $ x_0 + dx $. +Die Gleichung wird dadurch zu +\begin{equation*} + \frac{\partial u}{\partial x} \big\vert_{x_0 + dx} - \frac{\partial u}{\partial x} \big\vert_{x_0} = \frac{\rho dx}{T} \frac{\partial^2 u}{\partial t^2}. +\end{equation*} +Durch die Division mit $ dx $ entsteht +\begin{equation*} + \frac{1}{dx} \bigg[\frac{\partial u}{\partial x} \big\vert_{x_0 + dx} - \frac{\partial u}{\partial x} \big\vert_{x_0}\bigg] = \frac{\rho}{T}\frac{\partial^2 u}{\partial t^2}. +\end{equation*} +Auf der Linken Seite der Gleichung wird die Differenz der Steigungen durch die Intervall-Länge geteilt, in anderen Worten die zweite Ableitung von $ u(x,t) $ nach $ x $ berechnet. Der Term $ \frac{\rho}{T} $ wird mit $ c^2 $ ersetzt, da der Bruch für eine gegebene Membran eine positive Konstante sein muss. Somit resultiert die, in der Literatur gebräuchliche Form +\begin{equation} + \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 die Ableitung in zwei Dimensionen gerechnet werden.
\ No newline at end of file diff --git a/buch/papers/kreismembran/teil1.tex b/buch/papers/kreismembran/teil1.tex index aef5b79..39ca598 100644 --- a/buch/papers/kreismembran/teil1.tex +++ b/buch/papers/kreismembran/teil1.tex @@ -7,13 +7,14 @@ \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 Kapitel wird sie mit Hilfe der Separationsmetode gelöst. +An diesem Punkt bleibt also nur noch die Lösung der partiellen Differentialgleichung. In diesem Kapitel wird sie mit Hilfe der Separationsmethode gelöst. -Wie im vorherigen Kapitel gezeigt, lautet die partielle Differentialgleichung, die die Schwingungen einer Membran beschreibt: +\subsection{Aufgabestellung\label{sub:aufgabestellung}} +Wie im vorherigen Abschnitt gezeigt, lautet die partielle Differentialgleichung, die die Schwingungen einer Membran beschreibt: \begin{equation*} - \frac{1}{c^2}\frac{\partial^2u}{\partial t^2} = \Delta u + \frac{1}{c^2}\frac{\partial^2u}{\partial t^2} = \Delta u. \end{equation*} -Da es sich um eine Kreisscheibe handelt, werden Polarkoordinaten verwendet, so dass sich der Laplaceoperator ergibt: +Da es sich um eine Kreisscheibe handelt, werden Polarkoordinaten verwendet, so dass sich der Laplaceoperator \begin{equation*} \Delta = @@ -23,78 +24,98 @@ Da es sich um eine Kreisscheibe handelt, werden Polarkoordinaten verwendet, so d \frac{\partial}{\partial r} + \frac{1}{r 2} - \frac{\partial^2}{\partial\varphi^2}. + \frac{\partial^2}{\partial\varphi^2} \label{buch:pde:kreis:laplace} \end{equation*} +ergibt. -Es wird eine runde elastische Membran berücksichtigt, die den Gebietbereich $\Omega$ abdeckt und am Rand $\Gamma$ befestigt ist. +Es wird eine runde elastische Membran berücksichtigt, die das Gebiet $\Omega$ abdeckt und am Rand $\Gamma$ befestigt ist. Es wird daher davon ausgegangen, dass die Membran aus einem homogenen Material von vernachlässigbarer Dicke gefertigt ist. -Die Membran kann verformt werden, aber innere elastische Kräfte wirken den Verformungen entgegen. Es wirken keine äusseren Kräfte. Es handelt sich somit von einer kreisförmligen eigespannten homogenen schwingenden Membran. +Die Membran kann verformt werden, aber innere elastische Kräfte wirken den Verformungen entgegen. Es wirken keine äusseren Kräfte. Es handelt sich somit von einer kreisförmligen eingespannten homogenen schwingenden Membran. Daher ist die Membranabweichung im Punkt $(r,\varphi)$ $\in$ $\overline{\rm \Omega}$ zum Zeitpunkt $t$: \begin{align*} u: \overline{\rm \Omega} \times \mathbb{R}_{\geq 0} &\longrightarrow \mathbb{R}\\ (r,\varphi,t) &\longmapsto u(r,\varphi,t) \end{align*} -Da die Membran am Rand befestigt ist, kann es keine Schwingungen geben, so dass die \textit{Dirichlet-Randbedingung} gilt: +Da die Membran am Rand befestigt ist, kann es keine Schwingungen geben, so dass die \textit{Dirichlet-Randbedingung} \cite{prof_dr_horst_knorrer_kreisformige_2013} \begin{equation*} - u\big|_{\Gamma} = 0 + u\big|_{\Gamma} = 0 \quad \text{für} \quad 0 \leq \varphi \leq 2\pi,\quad t \geq 0 \end{equation*} +gilt. + Um eine eindeutige Lösung bestimmen zu können, werden die folgenden Anfangsbedingungen festgelegt: \begin{align*} u(r,\varphi, 0) &= f(r,\varphi)\\ - \frac{\partial}{\partial t} u(r,\varphi, 0) &= g(r,\varphi) + u_t(r,\varphi, 0) &= g(r,\varphi). \end{align*} + +\subsection{Lösung\label{sub:lösung1}} +\subsubsection{Ansatz der Separation der Variablen\label{subsub:ansatz_separation}} Daher muss an dieser Stelle von einer Separation der Variablen ausgegangen werden: \begin{equation*} u(r,\varphi, t) = F(r)G(\varphi)T(t) \end{equation*} -Dank der Randbedingungen kann also gefordert werden, dass $F(R)=0$ ist, und natürlich, dass $G(\varphi)$ $2\pi$ periodisch ist. Eingesetz in der Differenzialgleichung ergibt: +Dank der Randbedingungen kann also gefordert werden, dass $F(R)=0$ ist, und natürlich, dass $G(\varphi)$ $2\pi$ periodisch ist. Eingesetzt in der Differenzialgleichung ergibt sich: \begin{equation*} - \frac{1}{c^2}\frac{T''(t)}{T(t)}=\frac{F''(r)}{F(r)}+\frac{1}{r}\frac{F'(r)}{F(r)}+\frac{1}{r^2}\frac{G''(\varphi)}{G(\varphi)} + \frac{1}{c^2}\frac{T''(t)}{T(t)}=\frac{F''(r)}{F(r)}+\frac{1}{r}\frac{F'(r)}{F(r)}+\frac{1}{r^2}\frac{G''(\varphi)}{G(\varphi)}. \end{equation*} -Da die linke Seite nur von $t$ und die rechte Seite nur von $r$ und $\varphi$ abhängt, müssen sie gleich einer reellen Zahl sein. Aus physikalischen Grunden suchen wir nach Lösungen, die weder exponentiell in der Zeit wachsen noch exponentiell abklingen. Dies bedeutet, dass die Konstante negativ sein muss, also schreibt man $k=-k^2$. Daraus ergeben sich die folgenden zwei Gleichungen: -\begin{gather*} - T''(t) + c^2\kappa^2T(t) = 0\\ - r^2\frac{F''(r)}{F(r)} + r \frac{F'(r)}{F(r)} +\kappa^2 r^2 = - \frac{G''(\varphi)}{G(\varphi)} -\end{gather*} +Da die linke Seite nur von $t$ und die rechte Seite nur von $r$ und $\varphi$ abhängt, müssen sie gleich einer reellen Zahl sein. Aus physikalischen Gründen suchen wir nach Lösungen, die weder exponentiell in der Zeit wachsen noch exponentiell abklingen. Dies bedeutet, dass die Konstante negativ sein muss, also schreibt man $k=-k^2$. Daraus ergeben sich die folgenden zwei Gleichungen: +\begin{align*} + T''(t) + c^2\kappa^2T(t) &= 0\\ + r^2\frac{F''(r)}{F(r)} + r \frac{F'(r)}{F(r)} +\kappa^2 r^2 &= - \frac{G''(\varphi)}{G(\varphi)}. +\end{align*} In der zweiten Gleichung hängt die linke Seite nur von $r$ ab, während die rechte Seite nur von $\varphi$ abhängt. Sie müssen also wiederum gleich einer reellen Zahl $\nu$ sein. Also das: -\begin{gather*} - r^2F''(r) + rF'(r) + (\kappa^2 r^2 - \nu)F(r) = 0 \\ - G''(\varphi) = \nu G(\varphi) -\end{gather*} -$G$ kann in einer Fourierreihe entwickelt werden, so dass man sieht, dass $\nu$ die Form $n^2$ mit einer positiven ganzen Zahl sein muss, also: +\begin{align*} + r^2F''(r) + rF'(r) + (\kappa^2 r^2 - \nu)F(r) &= 0 \\ + G''(\varphi) &= \nu G(\varphi). +\end{align*} + +\subsubsection{Lösung für $G(\varphi)$\label{subsub:lösung_G}} +Da für die Zweite Gelichung Lösungen von Schwingungen erwartet werden, für die $G''(\varphi)=-\omega^2 G(\varphi)$ gilt, schreibt die gemeinsame Konstante als $-\nu^2$, was die Formeln später vereinfacht. Also: \begin{equation*} G(\varphi) = C_n \cos(\varphi) + D_n \sin(\varphi) + \label{eq:cos_sin_überlagerung} \end{equation*} -Die Gleichung $F$ hat die Gestalt -\begin{equation*} - r^2F''(r) + rF'(r) + (\kappa^2 r^2 - n^2)F(r) = 0 \quad (*) -\end{equation*} -Wir bereits in der Vorlesung von Prof. Müller gezeigt, sind die Besselfunktionen + +\subsubsection{Lösung für $F(r)$\label{subsub:lösung_F}} +Die Gleichung für $F$ hat die Gestalt +\begin{align} + r^2F''(r) + rF'(r) + (\kappa^2 r^2 - n^2)F(r) = 0 + \label{eq:2nd_degree_PDE} +\end{align} +Wir bereits in Kapitel \ref{buch:differntialgleichungen:section:bessel} gezeigt, sind die Besselfunktionen \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)} \end{equation*} -Lösungen der "Besselschen Differenzialgleichung" +Lösungen der Besselschen Differenzialgleichung \begin{equation*} x^2 y'' + xy' + (x^2 - \nu^2)y = 0 \end{equation*} -Die Funktionen $F(r) = J_n(\kappa r)$ lösen also die Differentialgleichung $(*)$. Die +Die Funktionen $F(r) = J_n(\kappa r)$ lösen also die Differentialgleichung \eqref{eq:2nd_degree_PDE}. Die Randbedingung $F(R)=0$ impliziert, dass $\kappa R$ eine Nullstelle der Besselfunktion $J_n$ sein muss. Man kann zeigen, dass die Besselfunktionen $J_n, n \geq 0$, alle unendlich viele Nullstellen \begin{equation*} \alpha_{1n} < \alpha_{2n} < ... \end{equation*} -haben, und dass $\underset{\substack{m\to\infty}}{\text{lim}} \alpha_{mn}=\infty$. Somit ergit sich, dass $\kappa = \frac{\alpha_{mn}}{R}$ für ein $m\geq 1$, und dass +haben, und dass $\underset{\substack{m\to\infty}}{\text{lim}} \alpha_{mn}=\infty$. Somit ergibt sich, dass $\kappa = \frac{\alpha_{mn}}{R}$ für ein $m\geq 1$, und dass \begin{equation*} - F(r) = J_n (\kappa_{mn}r) \quad mit \quad \kappa_{mn}=\frac{\alpha_{mn}}{R} + F(r) = J_n (\kappa_{mn}r) \quad \text{mit} \quad \kappa_{mn}=\frac{\alpha_{mn}}{R} \end{equation*} -Die Differenzialgleichung $T''(t) + c^2\kappa^2T(t) = 0$, wird auf ähnliche Weise gelöst wie $G(\varphi)$. Durch Überlagerung aller Ergebnisse erhält man die Lösung -\begin{equation} - u(r, \varphi, t) = \displaystyle\sum_{m=1}^{\infty}\displaystyle\sum_{n=0}^{\infty} J_n (k_{mn}r)\cos(n\varphi)[a_{mn}\cos(c \kappa_{mn} t)+b_{mn}\sin(c \kappa_{mn} t)] -\end{equation} -Dabei sind m und n ganze Zahlen, wobei m für die Anzahl der Knotenkreise und n -für die Anzahl der Knotenlinien steht. Es gibt bestimmte Bereiche auf der Membran, in denen es keine Bewegung oder Vibration gibt. Wenn der nicht schwingende Bereich ein Kreis ist, nennt man ihn einen Knotenkreis, und wenn er eine Linie ist, nennt man ihn ebenfalls eine Knotenlinie. $Jn(\kappa_{mn}r)$ ist die Besselfunktion $n$-ter Ordnung, wobei kmn die Wellenzahl und $r$ der Radius ist. $a_{mn}$ und $b_{mn}$ sind die zu bestimmenden Konstanten. -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 und Diskussion mit Prof. Müller wurde festgestellt, dass die beste 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. +\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)$. + +\subsubsection{Zusammenfassung der Lösungen\label{subsub:zusammenfassung_lösungen}} +Durch Überlagerung aller Ergebnisse erhält man die Lösung +\begin{align} + u(r, \varphi, t) = \displaystyle\sum_{m=1}^{\infty}\displaystyle\sum_{n=0}^{\infty} J_n (k_{mn}r)[a_{mn}\cos(n\varphi) + b_{mn}\sin(n\varphi)](n\varphi)[c_{mn}\cos(c \kappa_{mn} t)+d_{mn}\sin(c \kappa_{mn} t)] + \label{eq:lösung_endliche_generelle} +\end{align} + +Dabei sind $m$ und $n$ ganze Zahlen, wobei $m$ für die Anzahl der Knotenkreise und $n$ +für die Anzahl der Knotenlinien steht. Es gibt bestimmte Bereiche auf der Membran, in denen es keine Bewegung oder Vibration gibt. Wenn der nicht schwingende Bereich ein Kreis ist, nennt man ihn einen Knotenkreis, und wenn er eine Linie ist, nennt man ihn ebenfalls eine Knotenlinie. $Jn(\kappa_{mn}r)$ ist die Besselfunktion $n$-ter Ordnung, wobei $\kappa mn$ die Wellenzahl und $r$ der Radius ist. $a_{mn}$ und $b_{mn}$ sind die zu bestimmenden Konstanten. + + +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 die beste 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 8afe817..6efda49 100644 --- a/buch/papers/kreismembran/teil2.tex +++ b/buch/papers/kreismembran/teil2.tex @@ -5,95 +5,98 @@ \section{Die Hankel Transformation \label{kreismembran:section:teil2}} \rhead{Die Hankel Transformation} -Hermann Hankel (1839-1873) war ein deutscher Mathematiker, der für seinen Beitrag zur mathematischen Analyse und insbesondere für seine namensgebende Transformation bekannt ist. -Diese Transformation tritt bei der Untersuchung von funktionen auf, die nur von der Enternung des Ursprungs abhängen. -Er studierte auch funktionen, jetzt Hankel- oder Bessel- Funktionen genannt, der dritten Art. -Die Hankel Transformation mit Bessel Funktionen al Kern taucht natürlich bei achsensymmetrischen Problemen auf, die in Zylindrischen Polarkoordinaten formuliert sind. -In diesem Kapitel werden die Theorie der Transformation und einige Eigenschaften der Grundoperationen erläutert. - - -Wir führen die Definition der Hankel Transformation aus der zweidimensionalen Fourier Transformation und ihrer Umkehrung ein, die durch: +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 studierte 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{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: \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} + \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} \end{align} -wo $\mathbf{r}=(x,y)$ und $\bm{\kappa}=(k,l)$. Wie bereits erwähnt, sind Polarkoordinaten für diese Art von Problemen am besten geeignet, also mit, $(x,y)=r(\cos\theta,\sin\theta)$ und $(k,l)=\kappa(\cos\phi,\sin\phi)$, findet man $\bm{\kappa}\cdot\mathbf{r}=\kappa r(\cos(\theta-\phi))$ und danach: +wo $\mathbf{r}=(x,y)$ und $\bm{\kappa}=(k,l)$. Polarkoordinaten sind für diese Art von Problemen am besten geeignet, mit $(x,y)=r(\cos\theta,\sin\theta)$ und $(k,l)=\kappa(\cos\phi,\sin\phi)$ findet man $\bm{\kappa}\cdot\mathbf{r}=\kappa r(\cos(\theta-\phi))$ und danach: \begin{align} - F(k,\phi)=\frac{1}{2\pi}\int_{0}^{\infty}r dr \int_{0}^{2\pi}e^{-ikr\cos(\theta-\phi)}f(r,\theta) d\phi. + F(k,\phi)=\frac{1}{2\pi}\int_{0}^{\infty}r \; dr \int_{0}^{2\pi}e^{-ikr\cos(\theta-\phi)}f(r,\theta) \; d\phi. \label{equation:F_ohne_variable_wechsel} \end{align} Dann wird angenommen dass, $f(r,\theta)=e^{in\theta}f(r)$, was keine strenge Einschränkung ist, und es wird eine Änderung der Variabeln vorgenommen $\theta-\phi=\alpha-\frac{\pi}{2}$, um \eqref{equation:F_ohne_variable_wechsel} zu reduzieren: \begin{align} - F(k,\phi)=\frac{1}{2\pi}\int_{0}^{\infty}rf(r) dr \int_{\phi_{0}}^{2\pi+\phi_{0}}e^{in(\phi-\frac{\pi}{2})+i(n\alpha-kr\sin\alpha)} d\alpha, + F(k,\phi)=\frac{1}{2\pi}\int_{0}^{\infty}rf(r) \; dr \int_{\phi_{0}}^{2\pi+\phi_{0}}e^{in(\phi-\frac{\pi}{2})+i(n\alpha-kr\sin\alpha)} \; d\alpha, \label{equation:F_ohne_bessel} \end{align} wo $\phi_{0}=(\frac{\pi}{2}-\phi)$. -Unter Verwendung der Integral Darstellung der Besselfunktion vom Ordnung n -\begin{align} - J_n(\kappa r)=\frac{1}{2\pi}\int_{\phi_{0}}^{2\pi + \phi_{0}}e^{i(n\alpha-\kappa r \sin \alpha)} d\alpha +Unter Verwendung der Integraldarstellung der Besselfunktion vom Ordnung $n$ \eqref{buch:fourier:eqn:bessel-integraldarstellung} +\begin{equation*} + J_n(\kappa r)=\frac{1}{2\pi}\int_{\phi_{0}}^{2\pi + \phi_{0}}e^{i(n\alpha-\kappa r \sin \alpha)} \; d\alpha \label{equation:bessel_n_ordnung} -\end{align} +\end{equation*} \eqref{equation:F_ohne_bessel} wird sie zu: \begin{align} - F(k,\phi)&=e^{in(\phi-\frac{\pi}{2})}\int_{0}^{\infty}rJ_n(\kappa r) f(r) dr \label{equation:F_mit_bessel_step_1} \\ + F(k,\phi)&=e^{in(\phi-\frac{\pi}{2})}\int_{0}^{\infty}rJ_n(\kappa r) f(r) \; dr \nonumber \\ &=e^{in(\phi-\frac{\pi}{2})}\tilde{f}_n(\kappa), \label{equation:F_mit_bessel_step_2} \end{align} -wo $\tilde{f}_n(\kappa)$ ist die \textit{Hankel Transformation} von $f(r)$ und ist formell definiert durch: +wo $\tilde{f}_n(\kappa)$ ist die \textit{Hankel-Transformation} von $f(r)$ und ist formell definiert durch: \begin{align} - \mathscr{H}_n\{f(r)\}=\tilde{f}_n(\kappa)=\int_{0}^{\infty}rJ_n(\kappa r) f(r) dr. + \mathscr{H}_n\{f(r)\}=\tilde{f}_n(\kappa)=\int_{0}^{\infty}rJ_n(\kappa r) f(r) \; dr. \label{equation:hankel} \end{align} +\subsubsection{Inverse Hankel-Transformation \label{subsub:inverse_hankel_tansformation}} Ähnlich verhält es sich mit der inversen Fourier Transformation in Form von polaren Koordinaten unter der Annahme $f(r,\theta)=e^{in\theta}f(r)$ mit \eqref{equation:F_mit_bessel_step_2}, wird die inverse Fourier Transformation \eqref{equation:inv_fourier_transform}: -\begin{align} - e^{in\theta}f(r)&=\frac{1}{2\pi}\int_{0}^{\infty}\kappa d\kappa \int_{0}^{2\pi}e^{i\kappa r \cos (\theta - \phi)}F(\kappa,\phi) d\phi\\ - &= \frac{1}{2\pi}\int_{0}^{\infty}\kappa \tilde{f}_n(\kappa) d\kappa \int_{0}^{2\pi}e^{in(\phi - \frac{\pi}{2})- i\kappa r \cos (\theta - \phi)} d\phi, -\end{align} +\begin{align*} + e^{in\theta}f(r)&=\frac{1}{2\pi}\int_{0}^{\infty}\kappa \; d\kappa \int_{0}^{2\pi}e^{i\kappa r \cos (\theta - \phi)}F(\kappa,\phi) \; d\phi \\ + &= \frac{1}{2\pi}\int_{0}^{\infty}\kappa \tilde{f}_n(\kappa) \; d\kappa \int_{0}^{2\pi}e^{in(\phi - \frac{\pi}{2})- i\kappa r \cos (\theta - \phi)} \; d\phi, +\end{align*} was durch den Wechsel der Variablen $\theta-\phi=-(\alpha+\frac{\pi}{2})$ und $\theta_0=-(\theta+\frac{\pi}{2})$, -\begin{align} - &= \frac{1}{2\pi}\int_{0}^{\infty}\kappa \tilde{f}_n(\kappa) d\kappa \int_{\theta_0}^{2\pi+\theta_0}e^{in(\theta + \alpha - i\kappa r \sin\alpha)} d\alpha \nonumber \\ - &= e^{in\theta}\int_{0}^{\infty}\kappa J_n(\kappa r) \tilde{f}_n(\kappa) d\kappa,\quad \text{von \eqref{equation:bessel_n_ordnung}} -\end{align} +\begin{align*} + &= \frac{1}{2\pi}\int_{0}^{\infty}\kappa \tilde{f}_n(\kappa) \; d\kappa \int_{\theta_0}^{2\pi+\theta_0}e^{in(\theta + \alpha - i\kappa r \sin\alpha)} \; d\alpha \\ + &= e^{in\theta}\int_{0}^{\infty}\kappa J_n(\kappa r) \tilde{f}_n(\kappa) \; d\kappa, +\end{align*} -Also, die inverse \textit{Hankel Transformation} ist so definiert: +von \eqref{equation:bessel_n_ordnung} also ist, die inverse \textit{Hankel-Transformation} so definiert: \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. + \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} -Anstelle von $\tilde{f}_n(\kappa)$, wird häufig für die Hankel Transformation verwendet, indem die Ordnung angegeben wird. +Anstelle von $\tilde{f}_n(\kappa)$, wird häufig für die Hankel-Transformation verwendet, indem die Ordnung angegeben wird. \eqref{equation:hankel} und \eqref{equation:inv_hankel} Integralen existieren für eine grosse Klasse von Funktionen, die normalerweise in physikalischen Anwendungen benötigt werden. -Alternativ kann auch die berühmte Hankel Transformationsformel verwendet werden, +Alternativ kann auch die berühmte Hankel-Transformationsformel verwendet werden, -\begin{align} - f(r) = \int_{0}^{\infty}\kappa J_n(\kappa r) d\kappa \int_{0}^{\infty} p J_n(\kappa p)f(p) dp, +\begin{align*} + f(r) = \int_{0}^{\infty}\kappa J_n(\kappa r) \; d\kappa \int_{0}^{\infty} p J_n(\kappa p)f(p) \; dp, \label{equation:hankel_integral_formula} -\end{align} -um die Hankel Transformation \eqref{equation:hankel} und ihre Inverse \eqref{equation:inv_hankel} zu definieren. -Insbesondere die Hankel Transformation der nullten Ordnung ($n=0$) und der ersten Ordnung ($n=1$) sind häufig nützlich, um Lösungen für Probleme mit der Laplace Gleichung in einer achsensymmetrischen zylindrischen Geometrie zu finden. - -\subsection{Operative Eigenschaften der Hankel Transformation\label{sub:op_properties_hankel}} -In diesem Kapitel werden die operativen Eigenschaften der Hankel Transformation aufgeführt. Der Beweis für ihre Gültigkeit wird jedoch nicht analysiert. +\end{align*} +um die Hankel-Transformation \eqref{equation:hankel} und ihre Inverse \eqref{equation:inv_hankel} zu definieren. +Insbesondere die Hankel-Transformation der nullten Ordnung ($n=0$) und der ersten Ordnung ($n=1$) sind häufig nützlich, um Lösungen für Probleme mit der Laplace Gleichung in einer achsensymmetrischen zylindrischen Geometrie zu finden. -\subsubsection{Theorem 1: Skalierung \label{subsub:skalierung}} -Wenn $\mathscr{H}_n\{f(r)\}=\tilde{f}_n(\kappa)$, dann: +\subsection{Operative Eigenschaften der Hankel-Transformation\label{sub:op_properties_hankel}} +In diesem Kapitel werden die operativen Eigenschaften der Hankel-Transformation aufgeführt. Der Beweis für ihre Gültigkeit wird jedoch nicht analysiert. -\begin{equation*} - \mathscr{H}_n\{f(ar)\}=\frac{1}{a^{2}}\tilde{f}_n \left(\frac{\kappa}{a}\right), \quad a>0. -\end{equation*} +\begin{satz}{Skalierung:} + Wenn $\mathscr{H}_n\{f(r)\}=\tilde{f}_n(\kappa)$, dann: + + \begin{equation*} + \mathscr{H}_n\{f(ar)\}=\frac{1}{a^{2}}\tilde{f}_n \left(\frac{\kappa}{a}\right), \quad a>0. + \end{equation*} +\end{satz} -\subsubsection{Theorem 2: Persevalsche Relation \label{subsub:perseval}} +\begin{satz}{Persevalsche Relation (Skalarprodukt bleibt erhalten):} Wenn $\tilde{f}(\kappa)=\mathscr{H}_n\{f(r)\}$ und $\tilde{g}(\kappa)=\mathscr{H}_n\{g(r)\}$, dann: \begin{equation*} - \int_{0}^{\infty}rf(r) dr = \int_{0}^{\infty}\kappa\tilde{f}(\kappa)\tilde{g}(\kappa) d\kappa. + \int_{0}^{\infty}rf(r)g(r) \; dr = \int_{0}^{\infty}\kappa\tilde{f}(\kappa)\tilde{g}(\kappa) \; d\kappa. \end{equation*} +\end{satz} -\subsubsection{Theorem 3: Hankel Transformationen von Ableitungen \label{subsub:ableitungen}} +\begin{satz}{Hankel-Transformationen von Ableitungen:} Wenn $\tilde{f}_n(\kappa)=\mathscr{H}_n\{f(r)\}$, dann: \begin{align*} @@ -101,13 +104,13 @@ Wenn $\tilde{f}_n(\kappa)=\mathscr{H}_n\{f(r)\}$, dann: &\mathscr{H}_1\{f'(r)\}=-\kappa \tilde{f}_0(\kappa), \end{align*} bereitgestellt dass $[rf(r)]$ verschwindet als $r\to0$ und $r\to\infty$. +\end{satz} -\subsubsection{Theorem 4 \label{subsub:thorem4}} +\begin{satz} Wenn $\mathscr{H}_n\{f(r)\}=\tilde{f}_n(\kappa)$, dann: \begin{equation*} \mathscr{H}_n \left\{ \left( \nabla^2 - \frac{n^2}{r^2} f(r)\right)\right\}= \mathscr{H}_n\left\{\frac{1}{r}\frac{d}{dr}\left(r\frac{df}{dr}\right) - \frac{n^2}{r^2}f(r)\right\}=-\kappa^2\tilde{f}_{n}(\kappa), \end{equation*} -bereitgestellt dass $rf'(r)$ und $rf(r)$ verschwinden als $r\to0$ und $r\to\infty$. - - +bereitgestellt dass $rf'(r)$ und $rf(r)$ verschwinden für $r\to0$ und $r\to\infty$. +\end{satz} diff --git a/buch/papers/kreismembran/teil3.tex b/buch/papers/kreismembran/teil3.tex index bef8b5f..7d5648a 100644 --- a/buch/papers/kreismembran/teil3.tex +++ b/buch/papers/kreismembran/teil3.tex @@ -6,7 +6,10 @@ \section{Lösungsmethode 2: Transformationsmethode \label{kreismembran:section:teil3}} \rhead{Lösungsmethode 2: Transformationsmethode} -Die Hankel-Transformation wird dann zur Lösung der Differentialgleichung verwendet. Es müssen jedoch einige Änderungen an dem Problem vorgenommen werden, damit es mit den Annahmen übereinstimmt, die für die Verwendung der Hankel-Transformation erforderlich sind. Das heisst, dass die Funktion u nur von der Entfernung zum Ausgangspunkt abhängt. Wir führen also das Konzept einer unendlichen und achsensymmetrischen Membran ein: +Die Hankel-Transformation wird dann zur Lösung der Differentialgleichung verwendet. Es müssen jedoch einige Änderungen an dem Problem vorgenommen werden, damit es mit den Annahmen übereinstimmt, die für die Verwendung der Hankel-Transformation erforderlich sind. Das heisst, dass die Funktion $u$ nur von der Entfernung zum Ausgangspunkt abhängt. + +\subsubsection{Transformation und Reduktion auf eine algebraische Gleichung\label{subsub:transf_reduktion}} +Führt man also das Konzept einer unendlichen und achsensymmetrischen Membran ein: \begin{equation*} \frac{\partial^2u}{\partial t^2} = @@ -18,16 +21,15 @@ Die Hankel-Transformation wird dann zur Lösung der Differentialgleichung verwen \end{equation*} \begin{align} - u(r,0)=f(r), \quad \frac{\partial}{\partial t} u(r,0) = g(r), \quad \text{für} \quad 0<r<\infty + u(r,0)=f(r), \quad u_t(r,0) = g(r), \quad \text{für} \quad 0<r<\infty \label{eq:PDE_inf_membane_RB} \end{align} Mit Anwendung der Hankel-Transformation nullter Ordnung in Abhängigkeit von $r$ auf die Gleichungen \eqref{eq:PDE_inf_membane} und \eqref{eq:PDE_inf_membane_RB}: \begin{align} - \tilde{u}(\kappa,t)=\int_{0}^{\infty}r J_0(\kappa r)u(r,t) dr, + \tilde{u}(\kappa,t)=\int_{0}^{\infty}r J_0(\kappa r)u(r,t) \; dr, \end{align} - bekommt man: \begin{equation*} @@ -36,43 +38,47 @@ bekommt man: \begin{equation*} \tilde{u}(\kappa,0)=\tilde{f}(\kappa), \quad - \frac{\partial}{\partial t}\tilde{u}(\kappa,0)=\tilde{g}(\kappa). + \tilde{u}_t(\kappa,0)=\tilde{g}(\kappa). \end{equation*} - -Die allgemeine Lösung für diese Transformation lautet, wie schon gesehen, wie folgt +Die allgemeine Lösung für diese Transformation lautet, wie in Gleighung \eqref{eq:cos_sin_überlagerung} gesehen, wie folgt \begin{equation*} \tilde{u}(\kappa,t)=\tilde{f}(\kappa)\cos(c\kappa t) + \frac{1}{c\kappa}\tilde{g}(\kappa)\sin(c\kappa t). \end{equation*} - Wendet man an nun die inverse Hankel-Transformation an, so erhält man die formale Lösung \begin{align} - u(r,t)=\int_{0}^{\infty}\kappa\tilde{f}(\kappa)\cos(c\kappa t) J_0(\kappa r) d\kappa +\frac{1}{c}\int_{0}^{\infty}\tilde{g}(\kappa)\sin(c\kappa t)J_0(\kappa r) d\kappa. + u(r,t)=\int_{0}^{\infty}\kappa\tilde{f}(\kappa)\cos(c\kappa t) J_0(\kappa r) \; d\kappa +\frac{1}{c}\int_{0}^{\infty}\tilde{g}(\kappa)\sin(c\kappa t)J_0(\kappa r) \; d\kappa. \label{eq:formale_lösung} \end{align} -Es wird daher davon ausgegangen, dass sich die Membran verformt und zum Zeitpunkt $t=0$ freigegeben wird +\subsubsection{Erfüllung der Anfangsbedingungen\label{subsub:erfüllung_AB}} +Es wird in Folgenden davon ausgegangen, dass sich die Membran verformt und zum Zeitpunkt $t=0$ freigegeben wird \begin{equation*} - u(r,0)=f(r)=Aa(r^2 + a^2)^{-\frac{1}{2}}, \quad \frac{d}{dt}(r,0)=g(r)=0 + u(r,0)=f(r)=Aa(r^2 + a^2)^{-\frac{1}{2}}, \quad u_t(r,0)=g(r)=0 \end{equation*} - so dass $\tilde{g}(\kappa)\equiv 0$ und - \begin{equation*} - \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} + \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*} - 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\\ + 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*} +Nimmt man jedoch die allgemeine Lösung mit Summationen, + +\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)] + \label{eq:lösung_unendliche_generelle} +\end{align} +kann man die Lösungsmethoden 1 und 2 vergleichen. -\subsection{Vergleich der Lösungen +\subsection{Vergleich der Analytischen Lösungen \label{kreismembran:vergleich}} -Hier kommt noch der Vergleich der Lösungen ;) +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, und in einer unendlichen Membran gibt es keine. 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 $0$-ter Ordnung. diff --git a/buch/papers/kreismembran/teil4.tex b/buch/papers/kreismembran/teil4.tex new file mode 100644 index 0000000..c124354 --- /dev/null +++ b/buch/papers/kreismembran/teil4.tex @@ -0,0 +1,16 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Lösungsmethode 3: Simulation + \label{kreismembran:section:teil4}} +\paragraph{TODO Einleitung} + +Um numerisch das Verhalten einer Membran zu ermitteln, muss eine numerische Darstellung definiert werden. +Die Membran wird hier in Form der Matrix $ A $ digitalisiert. +Jedes Element $ A_{ij} $ steh für die Auslenkung der Membran $ u(x,y,t) $ an der Stelle $ \{x,y\}=\{i,j\} $. +Die zeitliche Dimension wird in Form des Array $ X[] $ aus $ v \times A $ Matrizen dargestellt. +Das Element auf Zeile $ i $, Spalte $ j $ der $ w $-ten Matrix von $ X[] $ also $ X[w]_{ij} $ entspricht der Auslenkung $ u(i,j,w) $. + +\paragraph{title}
\ No newline at end of file diff --git a/buch/papers/laguerre/definition.tex b/buch/papers/laguerre/definition.tex index 4729a93..61549e0 100644 --- a/buch/papers/laguerre/definition.tex +++ b/buch/papers/laguerre/definition.tex @@ -3,38 +3,58 @@ % % (c) 2022 Patrik Müller, Ostschweizer Fachhochschule % -\section{Definition +\section{Herleitung% + % \section{Einleitung + % \section{Definition \label{laguerre:section:definition}} -\rhead{Definition} -Die verallgemeinerte Laguerre-Differentialgleichung ist gegeben durch +\rhead{Definition}% +In einem ersten Schritt möchten wir die Laguerre-Polynome +aus der Laguerre-\-Differentialgleichung herleiten. +Zudem werden wir die Lösung auf die assoziierten Laguerre-Polynome ausweiten. +Im Anschluss soll dann noch die Orthogonalität dieser Polynome bewiesen werden. + +\subsection{Assoziierte Laguerre-Differentialgleichung} +Die assoziierte Laguerre-Differentialgleichung ist gegeben durch \begin{align} x y''(x) + (\nu + 1 - x) y'(x) + n y(x) = 0 , \quad -n \in \mathbb{N}_0 +n \in \mathbb{N} , \quad x \in \mathbb{R} \label{laguerre:dgl} . \end{align} -Spannenderweise wurde die verallgemeinerte Laguerre-Differentialgleichung +Spannenderweise wurde die assoziierte Laguerre-Differentialgleichung zuerst von Yacovlevich Sonine (1849 - 1915) beschrieben, aber aufgrund ihrer Ähnlichkeit nach Laguerre benannt. Die klassische Laguerre-Diffentialgleichung erhält man, wenn $\nu = 0$. -Hier wird die verallgemeinerte Laguerre-Differentialgleichung verwendet, + +\subsection{Potenzreihenansatz% +\label{laguerre:subsection:potenzreihenansatz}} +Hier wird die assoziierte Laguerre-Differentialgleichung verwendet, weil die Lösung mit derselben Methode berechnet werden kann. Zusätzlich erhält man aber die Lösung für den allgmeinen Fall. -Zur Lösung von \eqref{laguerre:dgl} verwenden wir einen -Potenzreihenansatz. -Da wir bereits wissen, dass die Lösung orthogonale Polynome sind, -erscheint dieser Ansatz sinnvoll. -Setzt man nun den Ansatz +Wir stellen die Vermutung auf, +dass die Lösungen orthogonale Polynome sind. +Die Orthogonalität der Lösung werden wir im +Abschnitt~\ref{laguerre:subsection:orthogonal} beweisen. +Zur Lösung von \eqref{laguerre:dgl} verwenden wir aufgrund +der getroffenen Vermutungen einen Potenzreihenansatz. +Der Potenzreihenansatz ist gegeben als +% Da wir bereits wissen, +% dass die Lösung orthogonale Polynome sind, +% erscheint dieser Ansatz sinnvoll. \begin{align*} y(x) & = \sum_{k=0}^\infty a_k x^k -\\ +% \\ +. +\end{align*} +Für die 1. und 2. Ableitungen erhalten wir +\begin{align*} y'(x) & = \sum_{k=1}^\infty k a_k x^{k-1} @@ -46,8 +66,16 @@ y''(x) \sum_{k=2}^\infty k (k-1) a_k x^{k-2} = \sum_{k=1}^\infty (k+1) k a_{k+1} x^{k-1} +. \end{align*} -in die Differentialgleichung ein, erhält man + +\subsection{Lösen der Laguerre-Differentialgleichung} +Setzt man nun den Potenzreihenansatz in +\eqref{laguerre:dgl} +%die Differentialgleichung +ein, +% erhält man +resultiert \begin{align*} \sum_{k=1}^\infty (k+1) k a_{k+1} x^k + @@ -64,18 +92,21 @@ n \sum_{k=0}^\infty a_k x^k 0. \end{align*} Daraus lässt sich die Rekursionsbeziehung -\begin{align*} +\begin{align} a_{k+1} & = \frac{k-n}{(k+1) (k + \nu + 1)} a_k -\end{align*} +\label{laguerre:rekursion} +\end{align} ableiten. Für ein konstantes $n$ erhalten wir als Potenzreihenlösung ein Polynom vom Grad $n$, denn für $k=n$ wird $a_{n+1} = 0$ und damit auch $a_{n+2}=a_{n+3}=\ldots=0$. -Aus der Rekursionsbeziehung ist zudem ersichtlich, +Aus %der Rekursionsbeziehung +\eqref{laguerre:rekursion} ist zudem ersichtlich, dass $a_0 \neq 0$ beliebig gewählt werden kann. -Wählen wir nun $a_0 = 1$, dann folgt für die Koeffizienten $a_1, a_2, a_3$ +Wählen wir nun $a_0 = 1$, dann folgt für die Koeffizienten +% $a_1, a_2, a_3$ \begin{align*} a_1 = @@ -105,8 +136,10 @@ k & >n: & a_k & = -0. +0 +. \end{align*} +Die Koeffizienten wechseln also für $k \leq n$ das Vorzeichen. Somit erhalten wir für $\nu = 0$ die Laguerre-Polynome \begin{align} L_n(x) @@ -114,7 +147,7 @@ L_n(x) \sum_{k=0}^{n} \frac{(-1)^k}{k!} \binom{n}{k} x^k \label{laguerre:polynom} \end{align} -und mit $\nu \in \mathbb{R}$ die verallgemeinerten Laguerre-Polynome +und mit $\nu \in \mathbb{R}$ die assoziierten Laguerre-Polynome \begin{align} L_n^\nu(x) = @@ -132,22 +165,27 @@ Abbildung~\ref{laguerre:fig:polyeval} dargestellt. \end{figure} \subsection{Analytische Fortsetzung} -Durch die analytische Fortsetzung erhalten wir zudem noch die zweite Lösung der -Differentialgleichung mit der Form +Durch die analytische Fortsetzung können wir zudem noch die zweite Lösung der +Differentialgleichung erhalten. +Laut \eqref{buch:funktionentheorie:singularitäten:eqn:w1} hat die Lösung +die Form \begin{align*} \Xi_n(x) = -L_n(x) \ln(x) + \sum_{k=1}^\infty d_k x^k +L_n(x) \log(x) + \sum_{k=1}^\infty d_k x^k . \end{align*} -Nach einigen aufwändigen Rechnungen, +Eine Herleitung dazu lässt sich im +Abschnitt \ref{buch:funktionentheorie:subsection:dglsing} +im ersten Teil des Buches finden. +Nach einigen aufwändigen Rechnungen, % die am besten ein Computeralgebrasystem übernimmt, -die den Rahmen dieses Kapitel sprengen würden, +die den Rahmen dieses Kapitels sprengen würden, erhalten wir \begin{align*} \Xi_n = -L_n(x) \ln(x) +L_n(x) \log(x) + \sum_{k=1}^n \frac{(-1)^k}{k!} \binom{n}{k} (\alpha_{n-k} - \alpha_n - 2 \alpha_k)x^k diff --git a/buch/papers/laguerre/eigenschaften.tex b/buch/papers/laguerre/eigenschaften.tex index 4adbe86..b007c2d 100644 --- a/buch/papers/laguerre/eigenschaften.tex +++ b/buch/papers/laguerre/eigenschaften.tex @@ -3,32 +3,83 @@ % % (c) 2022 Patrik Müller, Ostschweizer Fachhochschule % -\section{Orthogonalität - \label{laguerre:section:orthogonal}} -Im Abschnitt~\ref{laguerre:section:definition} +\subsection{Orthogonalität% +\label{laguerre:subsection:orthogonal}} +\rhead{Orthogonalität}% +Im Abschnitt~\ref{laguerre:subsection:potenzreihenansatz} haben wir die Behauptung aufgestellt, dass die Laguerre-Polynome orthogonal sind. Zu dieser Behauptung möchten wir nun einen Beweis liefern. -Wenn wir \eqref{laguerre:dgl} in ein -Sturm-Liouville-Problem umwandeln können, haben wir bewiesen, dass es sich -bei den Laguerre-Polynomen um orthogonale Polynome handelt (siehe -Abschnitt~\ref{buch:integrale:subsection:sturm-liouville-problem}). -Der Beweis kann äquivalent auch über den Sturm-Liouville-Operator +% +Um die Orthogonalität von Funktionen zu zeigen, +bieten sich folgende Möglichkeiten an: +\begin{enumerate} +\item Identifizieren der Funktion als Eigenfunktion eines Skalarproduktes +mit einem selbstadjungierten Operator. +Dafür muss aber zuerst bewiesen werden, +dass der verwendete Operator selbstadjungiert ist. +Die Theorie dazu findet sich in den +Abschnitten~\ref{buch:orthogonal:section:orthogonale-polynome-und-dgl} und +\ref{buch:orthogonalitaet:section:bessel}. +\item Umformen der Differentialgleichung in die Form der +Sturm-Liouville-Differentialgleichung, +denn für dieses verallgemeinerte Problem +ist die Orthogonalität bereits bewiesen. +Die Theorie dazu findet sich im Abschnitt~\ref{buch:integrale:subsection:sturm-liouville-problem}. +\end{enumerate} + +% \subsubsection{Plan} +\subsubsection{Idee} +Für den Beweis der Orthogonalität der Laguerre-Polynome möchten +wir den zweiten Ansatz über das Sturm-Liouville-Problem verwenden. +% Dazu müssen wir die Laguerre-Differentialgleichung~\eqref{laguerre:dgl} +% in die Form der Sturm-Liouville-Differentialgleichung bringen. +Allerdings möchten wir nicht die Laguerre-Differentialgleichung +in die richtige Form bringen, +sondern den Laguerre-Operator \begin{align} -S +\Lambda = -\frac{1}{w(x)} \left(-\frac{d}{dx}p(x) \frac{d}{dx} + q(x) \right). -\label{laguerre:slop} +x \frac{d}{dx^2} + (\nu + 1 -x) \frac{d}{dx} +\label{laguerre:lagop} +. \end{align} -und den Laguerre-Operator +Da es sich beim Sturm-Liouville-Problem um ein Eigenwertproblem handelt, +kann die Orthogonalität äquivalent über denn Sturm-Liouville-Operator \begin{align} -\Lambda +S = -x \frac{d}{dx^2} + (\nu + 1 -x) \frac{d}{dx} +\frac{1}{w(x)} \left(-\frac{d}{dx}p(x) \frac{d}{dx} + q(x) \right). +\label{laguerre:slop} \end{align} -erhalten werden, -indem wir diese Operatoren einander gleichsetzen. -Aus der Beziehung +bewiesen werden. +Dazu müssen wir die Operatoren einander gleichsetzen. + +% Wenn wir \eqref{laguerre:dgl} in ein +% Sturm-Liouville-Problem umwandeln können, haben wir bewiesen, dass es sich +% bei den Laguerre-Polynomen um orthogonale Polynome handelt (siehe +% Abschnitt~\ref{buch:integrale:subsection:sturm-liouville-problem}). +% Der Beweis kann äquivalent auch über den Sturm-Liouville-Operator +% \begin{align} +% S +% = +% \frac{1}{w(x)} \left(-\frac{d}{dx}p(x) \frac{d}{dx} + q(x) \right). +% \label{laguerre:slop} +% \end{align} +% und den Laguerre-Operator +% \begin{align} +% \Lambda +% = +% x \frac{d}{dx^2} + (\nu + 1 -x) \frac{d}{dx} +% \end{align} +% erhalten werden, +% indem wir diese Operatoren einander gleichsetzen. + +\subsubsection{Umformen in Sturm-Liouville-Operator} +% Aus der Beziehung von +Setzen wir nun +\eqref{laguerre:lagop} und \eqref{laguerre:slop} +einander gleich \begin{align} S & = @@ -39,48 +90,52 @@ S & = x \frac{d^2}{dx^2} + (\nu + 1 - x) \frac{d}{dx} \label{laguerre:sl-lag} +, \end{align} lässt sich sofort erkennen, dass $q(x) = 0$. Ausserdem ist ersichtlich, dass $p(x)$ die Differentialgleichung \begin{align*} x \frac{dp}{dx} = --(\nu + 1 - x) p +(\nu + 1 - x) p \end{align*} erfüllen muss. Durch Separation erhalten wir dann \begin{align*} \int \frac{dp}{p} & = --\int \frac{\nu + 1 - x}{x} \, dx +\int \frac{\nu + 1 - x}{x} \, dx = --\int \frac{\nu + 1}{x} \, dx - \int 1\, dx +\int \frac{\nu + 1}{x} \, dx - \int 1\, dx \\ \log p & = --(\nu + 1)\log x - x + c +(\nu + 1)\log x - x + c \\ p(x) & = --C x^{\nu + 1} e^{-x} +C x^{\nu + 1} e^{-x} . \end{align*} Eingefügt in Gleichung~\eqref{laguerre:sl-lag} ergibt sich \begin{align*} \frac{C}{w(x)} \left( -x^{\nu+1} e^{-x} \frac{d^2}{dx^2} + +-x^{\nu+1} e^{-x} \frac{d^2}{dx^2} - (\nu + 1 - x) x^{\nu} e^{-x} \frac{d}{dx} \right) = x \frac{d^2}{dx^2} + (\nu + 1 - x) \frac{d}{dx}. \end{align*} -Mittels Koeffizientenvergleich kann nun abgelesen werden, dass $w(x) = x^\nu -e^{-x}$ und $C=1$ mit $\nu > -1$. -Die Gewichtsfunktion $w(x)$ wächst für $x\rightarrow-\infty$ sehr schnell an, -deshalb ist die Laguerre-Gewichtsfunktion nur geeignet für den -Definitionsbereich $(0, \infty)$. -Bleibt nur noch sicherzustellen, dass die Randbedingungen, +Mittels Koeffizientenvergleich kann nun abgelesen werden, +dass $w(x) = x^\nu e^{-x}$ und $C=-1$. %mit $\nu \geq 0$. +Die Gewichtsfunktion $w(x)$ wächst für $x\rightarrow-\infty$ sehr schnell an. +Ausserdem hat die Gewichtsfunktion $w(x)$ für negative $\nu$ einen Pol bei $x=0$, +daher ist die Laguerre-Gewichtsfunktion nur für den +Definitionsbereich $(0, \infty)$ geeignet. + +\subsubsection{Randbedingungen} +Bleibt nur noch sicherzustellen, dass die Randbedingungen \begin{align} k_0 y(0) + h_0 p(0)y'(0) & = @@ -93,10 +148,12 @@ k_\infty y(\infty) + h_\infty p(\infty) y'(\infty) \label{laguerre:sllag_randb} \end{align} mit $|k_i|^2 + |h_i|^2 \neq 0,\,\forall i \in \{0, \infty\}$, erfüllt sind. -Am linken Rand (Gleichung~\eqref{laguerre:sllag_randa}) kann $y(0) = 1$, $k_0 = -0$ und $h_0 = 1$ verwendet werden, +% +Am linken Rand \eqref{laguerre:sllag_randa} kann $y(0) = 1$, $k_0 = 0$ und +$h_0 = 1$ verwendet werden, was auch die Laguerre-Polynome ergeben haben. -Für den rechten Rand ist die Bedingung (Gleichung~\eqref{laguerre:sllag_randb}) + +Für den rechten Rand ist die Bedingung \eqref{laguerre:sllag_randb} \begin{align*} \lim_{x \rightarrow \infty} p(x) y'(x) & = @@ -105,9 +162,27 @@ Für den rechten Rand ist die Bedingung (Gleichung~\eqref{laguerre:sllag_randb}) 0 \end{align*} für beliebige Polynomlösungen erfüllt für $k_\infty=0$ und $h_\infty=1$. -Damit können wir schlussfolgern: -Die verallgemeinerten Laguerre-Polynome sind orthogonal -bezüglich des Skalarproduktes auf dem Intervall $(0, \infty)$ -mit der verallgemeinerten Laguerre\--Gewichtsfunktion $w(x)=x^\nu e^{-x}$. -Die Laguerre-Polynome ($\nu=0$) sind somit orthognal im Intervall $(0, \infty)$ -mit der Gewichtsfunktion $w(x)=e^{-x}$. + +% Somit können wir schlussfolgern: +\begin{satz} +Die Laguerre-Polynome %($\nu=0$) +\eqref{laguerre:polynom} +% \begin{align*} +% L_n(x) +% = +% \sum_{k=0}^{n} \frac{(-1)^k}{k!} \binom{n}{k} x^k +% \end{align*} +sind orthognale Polynome bezüglich des Skalarproduktes +im Intervall~$(0, \infty)$ mit der Gewichts\-funktion~$w(x)=e^{-x}$. +\end{satz} + +\begin{satz} +Die assoziierten Laguerre-Polynome \eqref{laguerre:allg_polynom} +% \begin{align*} +% L_n^\nu(x) +% = +% \sum_{k=0}^{n} \frac{(-1)^k}{(\nu + 1)_k} \binom{n}{k} x^k. +% \end{align*} +sind orthogonale Polynome bezüglich des Skalarproduktes +im Intervall~$(0, \infty)$ mit der Gewichts\-funktion~$w(x)=x^\nu e^{-x}$. +\end{satz} diff --git a/buch/papers/laguerre/gamma.tex b/buch/papers/laguerre/gamma.tex index 2e5fc06..0cf17b9 100644 --- a/buch/papers/laguerre/gamma.tex +++ b/buch/papers/laguerre/gamma.tex @@ -3,17 +3,34 @@ % % (c) 2022 Patrik Müller, Ostschweizer Fachhochschule % -\section{Anwendung: Berechnung der Gamma-Funktion +\section{Anwendung: Berechnung der + Gamma-Funktion% \label{laguerre:section:quad-gamma}} +\rhead{Approximation der Gamma-Funktion}% Die Gauss-Laguerre-Quadratur kann nun verwendet werden, -um exponentiell abfallende Funktionen im Definitionsbereich $(0, \infty)$ zu -berechnen. -Dabei bietet sich z.B. die Gamma-Funkion hervorragend an, +um exponentiell abfallende Funktionen im Definitionsbereich~$(0, \infty)$ +zu berechnen. +Dabei bietet sich zum Beispiel die Gamma-Funktion hervorragend an, wie wir in den folgenden Abschnitten sehen werden. -\subsection{Gamma-Funktion} +Im ersten Abschnitt~\ref{laguerre:subsection:gamma} möchten wir noch einmal +die wichtigsten Eigenschaften der Gamma-Funktion betrachten, +bevor wir dann im zweiten Abschnitt~\ref{laguerre:subsection:gauss-lag-gamma} +diese Eigenschaften nutzen werden, +damit wir die Gauss-Laguerre-Quadratur für die Gamma-Funktion +markant verbessern können. +% damit wir sie dann in einem nächsten Schritt verwenden können, +% um unsere Approximationsmethode zu verbessern +% Im zweiten Abschnitt~\ref{laguerre:subsection:gauss-lag-gamma} +% wenden wir dann die Gauss-Laguerre-Quadratur auf die Gamma-Funktion und +% erweitern die Methode + +\subsection{Gamma-Funktion% +\label{laguerre:subsection:gamma}} Die Gamma-Funktion ist eine Erweiterung der Fakultät auf die reale und komplexe Zahlenmenge. +Mehr Informationen zur Gamma-Funktion lassen sich im +Abschnitt~\ref{buch:rekursion:section:gamma} finden. Die Definition~\ref{buch:rekursion:def:gamma} beschreibt die Gamma-Funktion als Integral der Form \begin{align} @@ -22,24 +39,30 @@ Integral der Form \int_0^\infty x^{z-1} e^{-x} \, dx , \quad -\text{wobei Realteil von $z$ grösser als $0$} +\text{wobei } \operatorname{Re}(z) > 0 \label{laguerre:gamma} . \end{align} -Der Term $e^{-t}$ im Integranden und der Integrationsbereich erfüllen -genau die Bedingungen der Laguerre-Integration. +Der Term $e^{-x}$ im Integranden und der Integrationsbereich erfüllen +genau die Bedingungen der Gauss-Laguerre-Integration. % Der Term $e^{-t}$ ist genau die Gewichtsfunktion der Laguerre-Integration und % der Definitionsbereich passt ebenfalls genau für dieses Verfahren. -Weiter zu erwähnen ist, dass für die verallgemeinerte Laguerre-Integration die -Gewichtsfunktion $t^\nu e^{-t}$ exakt dem Integranden für $\nu=z-1$ entspricht. +Weiter zu erwähnen ist, dass für die assoziierte Gauss-Laguerre-Integration die +Gewichtsfunktion $x^\nu e^{-x}$ exakt dem Integranden +für $\nu = z - 1$ entspricht. \subsubsection{Funktionalgleichung} Die Gamma-Funktion besitzt die gleiche Rekursionsbeziehung wie die Fakultät, nämlich \begin{align} +\Gamma(z+1) += z \Gamma(z) +\quad +\text{mit } +\Gamma(1) = -\Gamma(z+1) +1 . \label{laguerre:gamma_funktional} \end{align} @@ -61,21 +84,65 @@ her. Dadurch lassen Werte der Gamma-Funktion sich für $z$ in der rechten Halbebene leicht in die linke Halbebene übersetzen und umgekehrt. -\subsection{Berechnung mittels Gauss-Laguerre-Quadratur} +\subsection{Berechnung mittels +Gauss-Laguerre-Quadratur% +\label{laguerre:subsection:gauss-lag-gamma}} In den vorherigen Abschnitten haben wir gesehen, -dass sich die Gamma-Funktion bestens für die Gauss-Laguerre-Quadratur eignet. +dass sich die Gamma-Funktion bestens für die Gauss-Laguerre-Quadratur +\begin{align*} +\int_0^\infty x^{z-1} e^{-x} \, dx += +\int_0^\infty f(x) w(x) \, dx +\approx +\sum_{i=1}^n f(x_i) A_i +\end{align*} +eignet. Nun bieten sich uns zwei Optionen, diese zu berechnen: \begin{enumerate} -\item Wir verwenden die verallgemeinerten Laguerre-Polynome, dann $f(x)=1$. -\item Wir verwenden die Laguerre-Polynome, dann $f(x)=x^{z-1}$. +\item Wir verwenden die assoziierten Laguerre-Polynome $L_n^\nu(x)$ mit +$w(x) = x^\nu e^{-x}$, $\nu = z - 1$ und $f(x) = 1$. +% $f(x)=1$. +% \begin{align*} +% \int_0^\infty x^{z-1} e^{-x} \, dx +% = +% \int_0^\infty f(x) w(x) \, dx +% \quad +% \text{mit } +% w(x) +% = +% x^\nu e^{-x}, +% \nu +% = +% z - 1 +% \text{ und } +% f(x) = 1 +% . +% \end{align*} +\item Wir verwenden die Laguerre-Polynome $L_n(x)$ mit +$w(x) = e^{-x}$ und $f(x) = x^{z - 1}$. +% $f(x)=x^{z-1}$ +% \begin{align*} +% \int_0^\infty x^{z-1} e^{-x} \, dx +% = +% \int_0^\infty f(x) w(x) \, dx +% \quad +% \text{mit } +% w(x) +% = +% e^{-x} +% \text{ und } +% f(x) = x^{z - 1} +% . +% \end{align*} \end{enumerate} Die erste Variante wäre optimal auf das Problem angepasst, allerdings müssten die Gewichte und Nullstellen für jedes $z$ neu berechnet werden, da sie per Definition von $z$ abhängen. Dazu kommt, -dass die Berechnung der Gewichte $A_i$ nach \cite{laguerre:Cassity1965AbcissasCA} +dass die Berechnung der Gewichte $A_i$ nach +\cite{laguerre:Cassity1965AbcissasCA} \begin{align*} A_i = @@ -103,6 +170,18 @@ Somit entscheiden wir uns aufgrund der vorherigen Punkte, die zweite Variante weiterzuverfolgen. \subsubsection{Direkter Ansatz} +% +\begin{figure} +\centering +% \input{papers/laguerre/images/rel_error_simple.pgf} +\includegraphics{papers/laguerre/images/rel_error_simple.pdf} +%\vspace{-12pt} +\caption{Relativer Fehler des direkten Ansatzes +für verschiedene reelle Werte von $z$ und Grade $n$ der +Laguerre-Polynome}% +\label{laguerre:fig:rel_error_simple} +\end{figure} +%. Wenden wir also die Gauss-Laguerre-Quadratur aus \eqref{laguerre:laguerrequadratur} auf die Gamma-Funktion \eqref{laguerre:gamma} an, @@ -110,20 +189,10 @@ ergibt sich \begin{align} \Gamma(z) \approx -\sum_{i=1}^n x_i^{z-1} A_i. +\sum_{i=1}^n x_i^{z-1} A_i \label{laguerre:naive_lag} +. \end{align} - -\begin{figure} -\centering -% \input{papers/laguerre/images/rel_error_simple.pgf} -\includegraphics{papers/laguerre/images/rel_error_simple.pdf} -%\vspace{-12pt} -\caption{Relativer Fehler des direkten Ansatzes -für verschiedene reele Werte von $z$ und Grade $n$ der Laguerre-Polynome} -\label{laguerre:fig:rel_error_simple} -\end{figure} - Bevor wir die Gauss-Laguerre-Quadratur anwenden, möchten wir als ersten Schritt eine Fehlerabschätzung durchführen. Für den Fehlerterm \eqref{laguerre:lag_error} wird die $2n$-te Ableitung @@ -146,7 +215,7 @@ R_n , \label{laguerre:gamma_err_simple} \end{align} -wobei $\xi$ ein geeigneter Wert im Interval $(0, \infty)$ ist +wobei $\xi$ ein geeigneter Wert im Intervall $(0, \infty)$ ist und $n$ der Grad des verwendeten Laguerre-Polynoms. Eine Fehlerabschätzung mit dem Fehlerterm stellt sich als unnütz heraus, da $R_n$ für $z < 2n - 1$ bei $\xi \rightarrow 0$ eine Singularität aufweist @@ -154,8 +223,8 @@ und für $z > 2n - 1$ bei $\xi \rightarrow \infty$ divergiert. Nur für den unwahrscheinlichen Fall $ z = 2n - 1$ wäre eine Fehlerabschätzung plausibel. -Wenden wir nun also direkt die Gauss-Laguerre-Quadratur auf die Gamma-Funktion -an. +Wenden wir nun also direkt die Gauss-Laguerre-Quadratur +auf die Gamma-Funktion an. Dazu benötigen wir die Gewichte nach \eqref{laguerre:quadratur_gewichte} und als Stützstellen die Nullstellen des Laguerre-Polynomes $L_n$. @@ -163,18 +232,17 @@ Evaluieren wir den relativen Fehler unserer Approximation zeigt sich ein Bild wie in Abbildung~\ref{laguerre:fig:rel_error_simple}. Man kann sehen, wie der relative Fehler Nullstellen aufweist für ganzzahlige $z \leq 2n$. -Laut der Theorie der Gauss-Quadratur auch ist das zu erwarten, +Laut der Theorie der Gauss-Quadratur ist das auch zu erwarten, da die Approximation via Gauss-Quadratur -exakt ist für zu integrierende Polynome mit Grad $\leq 2n-1$ -und hinzukommt, -dass zudem von $z$ noch $1$ abgezogen wird im Exponenten. +exakt ist für zu integrierende Polynome mit Grad $\leq 2n-1$ und +der Integrand $x^{z-1}$ wird für $z \in \mathbb{N} \setminus \{0\}$ +zu einem Polynom . +% Hinzukommt, dass zudem von $z$ noch $1$ abgezogen wird im Exponenten. Es ist ersichtlich, -dass sich für den Polynomgrad $n$ ein Interval gibt, +dass sich für den Polynomgrad $n$ ein Intervall gibt, in dem der relative Fehler minimal ist. Links steigt der relative Fehler besonders stark an, während er auf der rechten Seite zu konvergieren scheint. -Um die linke Hälfte in den Griff zu bekommen, -könnten wir die Reflektionsformel der Gamma-Funktion ausnutzen. \begin{figure} \centering @@ -182,10 +250,12 @@ könnten wir die Reflektionsformel der Gamma-Funktion ausnutzen. \includegraphics{papers/laguerre/images/rel_error_mirror.pdf} %\vspace{-12pt} \caption{Relativer Fehler des Ansatzes mit Spiegelung negativer Realwerte -für verschiedene reele Werte von $z$ und Grade $n$ der Laguerre-Polynome} +für verschiedene reelle Werte von $z$ und Grade $n$ der Laguerre-Polynome} \label{laguerre:fig:rel_error_mirror} \end{figure} +Um die linke Hälfte in den Griff zu bekommen, +könnten wir die Reflektionsformel der Gamma-Funktion verwenden. Spiegelt man nun $z$ mit negativem Realteil mittels der Reflektionsformel, ergibt sich ein stabilerer Fehler in der linken Hälfte, wie in Abbildung~\ref{laguerre:fig:rel_error_mirror}. @@ -203,9 +273,10 @@ das Problem in den Griff zu bekommen. \subsubsection{Analyse des Integranden} Wie wir im vorherigen Abschnitt gesehen haben, scheint der Integrand problematisch. -Darum möchten wir jetzt den Integranden analysieren, -um ihn besser verstehen zu können und -dadurch geeignete Gegenmassnahmen zu entwickeln. +Darum möchten wir ihn jetzt analysieren, +damit wir ihn besser verstehen können. +Dies sollte es uns ermöglichen, +anschliessend geeignete Gegenmassnahmen zu entwickeln. % Dieser Abschnitt soll eine grafisches Verständnis dafür schaffen, % wieso der Integrand so problematisch ist. @@ -245,16 +316,17 @@ dass kleine Exponenten um $0$ genauere Resultate liefern sollten. In Abbildung~\ref{laguerre:fig:integrand_exp} fügen wir die Dämpfung der Gewichtsfunktion $w(x)$ der Gauss-Laguerre-Quadratur wieder hinzu -und erhalten so wieder den kompletten Integranden $x^{z-1} e^{-x}$ +und erhalten so wieder den kompletten Integranden $x^{z} e^{-x}$ der Gamma-Funktion. Für negative $z$ ergeben sich immer noch Singularitäten, wenn $x \rightarrow 0$. -Um $1$ wächst der Term $x^z$ schneller als die Dämpfung $e^{-x}$, +Um $x = 1$ wächst der Term $x^z$ für positive $z$ +schneller als die Dämpfung $e^{-x}$, aber für $x \rightarrow \infty$ geht der Integrand gegen $0$. Das führt zu glockenförmigen Kurven, die für grosse Exponenten $z$ nach der Stelle $x=1$ schnell anwachsen. Zu grosse Exponenten $z$ sind also immer noch problematisch. -Kleine positive $z$ scheinen nun also auch zulässig zu sein. +Kleine positive $z$ scheinen nun aber auch zulässig zu sein. Damit formulieren wir die Vermutung, dass $a(n)$, welches das Intervall $[a(n), a(n) + 1]$ definiert, @@ -263,7 +335,7 @@ grösser als $0$ und kleiner als $2n-1$ ist. \subsubsection{Ansatz mit Verschiebungsterm} % Mittels der Funktionalgleichung \eqref{laguerre:gamma_funktional} -% kann der Wert von $\Gamma(z)$ im Interval $z \in [a,a+1]$, +% kann der Wert von $\Gamma(z)$ im Intervall $z \in [a,a+1]$, % in dem der relative Fehler minimal ist, % evaluiert werden und dann mit der Funktionalgleichung zurückverschoben werden. Nun stellt sich die Frage, @@ -322,28 +394,15 @@ s(z, m) \cdot (z - 2n)_{2n} \frac{(n!)^2}{(2n)!} \xi^{z + m - 2n - 1} \label{laguerre:gamma_err_shifted} . \end{align} - +% \begin{figure} \centering \includegraphics{papers/laguerre/images/targets.pdf} % %\vspace{-12pt} -\caption{$a$ in Abhängigkeit von $z$ und $n$} +\caption{$m^*$ in Abhängigkeit von $z$ und $n$} \label{laguerre:fig:targets} \end{figure} -% wobei ist -% mit $z^*(n) \in \mathbb{R}$ wollen wir finden, -% in dem wir den Fehlerterm \eqref{laguerre:lag_error} anpassen -% und in einem nächsten Schritt minimieren. -% Zudem nehmen wir an, -% dass $z < z^*(n)$ ist. -% Wir fügen einen Verschiebungsterm um $m \in \mathbb{N}$ Stellen ein, -% daraus folgt % -% Damit wir den idealen Verschiebungsterm $m^*$ finden können, -% müssen wir mittels des Fehlerterms \eqref{laguerre:gamma_err_shifted} -% ein Optimierungsproblem -% -% Das Optimierungsproblem daraus lässt sich als Daraus formulieren wir das Optimierungproblem \begin{align*} m^* @@ -361,9 +420,10 @@ nur wirklich praktisch sinnvoll für kleine $n$ ist, können die Intervalle $[a(n), a(n)+1]$ empirisch gesucht werden. Wir bestimmen nun die optimalen Verschiebungsterme empirisch -für $n = 2,\ldots, 12$ im Intervall $z \in (0, 1)$, -da $z$ sowieso um den Term $m$ verschoben wird, -reicht die $m^*$ nur in diesem Intervall zu analysieren. +für $n = 1,\ldots, 12$ im Intervall $z \in (0, 1)$, +da $z$ sowieso mit den Term $m$ verschoben wird, +reicht es, +die $m^*$ nur in diesem Intervall zu analysieren. In Abbildung~\ref{laguerre:fig:targets} sind die empirisch bestimmten $m^*$ abhängig von $z$ und $n$ dargestellt. In $n$-Richtung lässt sich eine klare lineare Abhängigkeit erkennen und @@ -382,7 +442,7 @@ Den linearen Regressor = \alpha n + \beta \end{align*} -machen wir nur abhängig von $n$ +machen wir nur abhängig von $n$, in dem wir den Mittelwert $\overline{m}$ von $m^*$ über $z$ berechnen. \begin{figure} @@ -395,8 +455,8 @@ in dem wir den Mittelwert $\overline{m}$ von $m^*$ über $z$ berechnen. \end{figure} In Abbildung~\ref{laguerre:fig:schaetzung} sind die Resultate -der linearen Regression aufgezeigt mit $\alpha = 1.34094$ und $\beta = -0.854093$. +der linearen Regression aufgezeigt mit $\alpha = 1.34154$ und $\beta = +0.848786$. Die lineare Beziehung ist ganz klar ersichtlich und der Fit scheint zu genügen. Der optimale Verschiebungsterm kann nun mit \begin{align*} @@ -413,8 +473,8 @@ gefunden werden. In einem ersten Schritt möchten wir analysieren, wie gut die Abschätzung des optimalen Verschiebungsterms ist. Dazu bestimmen wir den relativen Fehler für verschiedene Verschiebungsterme $m$ -rund um $m^*$ bei gegebenem Polynomgrad $n = 8$ für $z \in (0, 1)$. -Abbildung~\ref{laguerre:fig:rel_error_shifted} sind die relativen Fehler +in der Nähe von $m^*$ bei gegebenem Polynomgrad $n = 8$ für $z \in (0, 1)$. +In Abbildung~\ref{laguerre:fig:rel_error_shifted} sind die relativen Fehler der Approximation dargestellt. Man kann deutlich sehen, dass der relative Fehler anwächst, @@ -428,7 +488,7 @@ dann beim Übergang auf die orange Linie wechselt. \includegraphics{papers/laguerre/images/rel_error_shifted.pdf} %\vspace{-12pt} \caption{Relativer Fehler des Ansatzes mit Verschiebungsterm -für verschiedene reele Werte von $z$ und Verschiebungsterme $m$. +für verschiedene reelle Werte von $z$ und Verschiebungsterme $m$. Das verwendete Laguerre-Polynom besitzt den Grad $n = 8$. $m^*$ bezeichnet hier den optimalen Verschiebungsterm.} \label{laguerre:fig:rel_error_shifted} @@ -467,7 +527,7 @@ Abbildung~\ref{laguerre:fig:rel_error_range}. \includegraphics{papers/laguerre/images/rel_error_range.pdf} %\vspace{-12pt} \caption{Relativer Fehler des Ansatzes mit optimalen Verschiebungsterm -für verschiedene reele Werte von $z$ und Laguerre-Polynome vom Grad $n$} +für verschiedene reelle Werte von $z$ und Laguerre-Polynome vom Grad $n$} \label{laguerre:fig:rel_error_range} \end{figure} @@ -512,21 +572,36 @@ H_k(z) \frac{(-1)^k (-z)_k}{(z+1)_k} \end{align*} mit $H_0 = 1$ und $\sum_0^n g_k = 1$ (siehe \cite{laguerre:lanczos}). -Diese Methode wurde zum Beispiel in -{\em GNU Scientific Library}, {\em Boost}, {\em CPython} und +Diese Methode wurde zum Beispiel in +{\em GNU Scientific Library}, {\em Boost}, {\em CPython} und {\em musl} implementiert. -Diese Methode erreicht für $n = 7$ typischerweise Genauigkeit von $13$ -korrekten, signifikanten Stellen für reele Argumente. -Zum Vergleich: die vorgestellte Methode erreicht für $n = 7$ -eine minimale Genauigkeit von $6$ korrekten, signifikanten Stellen -für reele Argumente. -Das Resultat ist etwas enttäuschend, -aber nicht unerwartet, -da die Lanczos-Methode spezifisch auf dieses Problem zugeschnitten ist und +Diese Methode erreicht für $n = 7$ typischerweise eine Genauigkeit von $13$ +korrekten, signifikanten Stellen für reelle Argumente. +Zum Vergleich: die vorgestellte Methode erreicht für $n = 7$ +eine minimale Genauigkeit von $6$ korrekten, signifikanten Stellen +für reelle Argumente. + +\subsubsection{Fazit} +% Das Resultat ist etwas enttäuschend, +Die Genauigkeit der vorgestellten Methode schneidet somit schlechter ab +als die Lanczos-Methode. +Dieser Erkenntnis kommt nicht ganz unerwartet, +% aber nicht unerwartet, +da die Lanczos-Methode spezifisch auf dieses Problem zugeschnitten ist und unsere Methode eine erweiterte allgemeine Methode ist. -Was die Komplexität der Berechnungen im Betrieb angeht, -ist die Gauss-Laguerre-Quadratur wesentlich ressourcensparender, -weil sie nur aus $n$ Funktionsevaluationen, -wenigen Multiplikationen und Additionen besteht. +Allerdings besticht die vorgestellte Methode +durch ihre stark reduzierte Komplexität. % und Rechenaufwand. +% Was die Komplexität der Berechnungen im Betrieb angeht, +% ist die Gauss-Laguerre-Quadratur wesentlich ressourcensparender, +% weil sie nur aus $n$ Funktionsevaluationen, +% wenigen Multiplikationen und Additionen besteht. +Was den Rechenaufwand angeht, +benötigt die vorgestellte Methode, +für eine Genauigkeit von $n-1$ signifikanten Stellen, +nur $n$ Funktionsevaluationen +und wenige zusätzliche Multiplikationen und Additionen. Demzufolge könnte diese Methode Anwendung in Systemen mit wenig Rechenleistung -und/oder knappen Energieressourcen finden.
\ No newline at end of file +und/oder knappen Energieressourcen finden. +Die vorgestellte Methode ist ein weiteres Beispiel dafür, +wie Verfahren durch die Kenntnis der Eigenschaften einer Funktion +verbessert werden können.
\ No newline at end of file diff --git a/buch/papers/laguerre/images/estimates.pdf b/buch/papers/laguerre/images/estimates.pdf Binary files differindex bd995de..fe48f47 100644 --- a/buch/papers/laguerre/images/estimates.pdf +++ b/buch/papers/laguerre/images/estimates.pdf diff --git a/buch/papers/laguerre/images/laguerre_poly.pdf b/buch/papers/laguerre/images/laguerre_poly.pdf Binary files differindex 21278f5..f31d81d 100644 --- a/buch/papers/laguerre/images/laguerre_poly.pdf +++ b/buch/papers/laguerre/images/laguerre_poly.pdf diff --git a/buch/papers/laguerre/images/rel_error_simple.pdf b/buch/papers/laguerre/images/rel_error_simple.pdf Binary files differindex 3212e42..0072d28 100644 --- a/buch/papers/laguerre/images/rel_error_simple.pdf +++ b/buch/papers/laguerre/images/rel_error_simple.pdf diff --git a/buch/papers/laguerre/images/targets.pdf b/buch/papers/laguerre/images/targets.pdf Binary files differindex 9514a6d..dc61c88 100644 --- a/buch/papers/laguerre/images/targets.pdf +++ b/buch/papers/laguerre/images/targets.pdf diff --git a/buch/papers/laguerre/main.tex b/buch/papers/laguerre/main.tex index 57a6560..133d686 100644 --- a/buch/papers/laguerre/main.tex +++ b/buch/papers/laguerre/main.tex @@ -8,24 +8,27 @@ \begin{refsection} \chapterauthor{Patrik Müller} -{\parindent0pt Die} Laguerre\--Polynome, -benannt nach Edmond Laguerre (1834 - 1886), -sind Lösungen der ebenfalls nach Laguerre benannten Differentialgleichung. -Laguerre entdeckte diese Polynome, als er Approximations\-methoden -für das Integral +{\parindent0pt Die} Laguerre\--Polynome, +benannt nach Edmond Laguerre (1834 -- 1886), +sind Lösungen der ebenfalls nach %Laguerre +ihm +benannten Differentialgleichung. +Laguerre entdeckte diese Polynome, als er Approximations\-methoden +für das Integral % $\int_0^\infty \exp(-x) / x \, dx $ \begin{align*} \int_0^\infty \frac{e^{-x}}{x} \, dx \end{align*} suchte. -Darum möchten wir uns in diesem Kapitel, +Darum möchten wir uns in diesem Kapitel, ganz im Sinne des Entdeckers, -den Laguerre-Polynomen für Approximationen von Integralen mit -exponentiell-abfallenden Funktionen widmen. +den Laguerre-Polynomen für Approximationen von Integralen mit +exponentiell abfallenden Funktionen widmen. Namentlich werden wir versuchen, mittels Laguerre-Polynomen und -der Gauss-Quadratur eine geeignete Approximation für die Gamma-Funktion zu finden. +der Gauss-Quadratur eine geeignete Approximation für die Gamma-Funktion zu +finden. -Laguerre-Polynome tauchen zudem auch in der Quantenmechanik im radialen Anteil +Laguerre-Polynome tauchen zudem auch in der Quantenmechanik im radialen Anteil der Lösung für die Schrödinger-Gleichung eines Wasserstoffatoms auf. \input{papers/laguerre/definition} diff --git a/buch/papers/laguerre/presentation/presentation.pdf b/buch/papers/laguerre/presentation/presentation.pdf Binary files differdeleted file mode 100644 index 3d00de3..0000000 --- a/buch/papers/laguerre/presentation/presentation.pdf +++ /dev/null diff --git a/buch/papers/laguerre/presentation/sections/gamma_approx.tex b/buch/papers/laguerre/presentation/sections/gamma_approx.tex index ecd02ab..b5e1131 100644 --- a/buch/papers/laguerre/presentation/sections/gamma_approx.tex +++ b/buch/papers/laguerre/presentation/sections/gamma_approx.tex @@ -51,7 +51,7 @@ R_n(\xi) % \scalebox{0.91}{\input{../images/rel_error_simple.pgf}} % \resizebox{!}{0.72\textheight}{\input{../images/rel_error_simple.pgf}} \includegraphics[width=0.77\textwidth]{../images/rel_error_simple.pdf} -\caption{Relativer Fehler des einfachen Ansatzes für verschiedene reele Werte +\caption{Relativer Fehler des einfachen Ansatzes für verschiedene reelle Werte von $z$ und Grade $n$ der Laguerre-Polynome} \end{figure} @@ -163,7 +163,7 @@ da Gauss-Quadratur nur für kleine $n$ praktischen Nutzen hat} \alpha n + \beta \\ &\approx -1.34093 n + 0.854093 +1.34154 n + 0.848786 \\ m^* &= diff --git a/buch/papers/laguerre/quadratur.tex b/buch/papers/laguerre/quadratur.tex index a494362..0e32012 100644 --- a/buch/papers/laguerre/quadratur.tex +++ b/buch/papers/laguerre/quadratur.tex @@ -3,20 +3,21 @@ % % (c) 2022 Patrik Müller, Ostschweizer Fachhochschule % -\section{Gauss-Quadratur +\section{Gauss-Quadratur% \label{laguerre:section:quadratur}} +\rhead{Gauss-Quadratur}% Die Gauss-Quadratur ist ein numerisches Integrationsverfahren, welches die Eigenschaften von orthogonalen Polynomen verwendet. -Herleitungen und Analysen der Gauss-Quadratur können im +Herleitungen und Analysen der Gauss-Quadratur können im Abschnitt~\ref{buch:orthogonal:section:gauss-quadratur} gefunden werden. Als grundlegende Idee wird die Beobachtung, dass viele Funktionen sich gut mit Polynomen approximieren lassen, verwendet. Stellt man also sicher, -dass ein Verfahren gut für Polynome funktioniert, +dass ein Verfahren gut für Polynome funktioniert, sollte es auch für andere Funktionen angemessene Resultate liefern. -Es wird ein Polynom verwendet, -welches an den Punkten $x_0 < x_1 < \ldots < x_n$ +Es wird ein Interpolationspolynom verwendet, +welches an den Punkten $x_0 < x_1 < \ldots < x_n$ die Funktionwerte~$f(x_i)$ annimmt. Als Resultat kann das Integral via einer gewichteten Summe der Form \begin{align} @@ -29,25 +30,35 @@ berechnet werden. Die Gauss-Quadratur ist exakt für Polynome mit Grad $2n -1$, wenn ein Interpolationspolynom von Grad $n$ gewählt wurde. -\subsection{Gauss-Laguerre-Quadratur +\subsection{Gauss-Laguerre-Quadratur% \label{laguerre:subsection:gausslag-quadratur}} Wir möchten nun die Gauss-Quadratur auf die Berechnung von uneigentlichen Integralen erweitern, -spezifisch auf das Interval $(0, \infty)$. +spezifisch auf das Intervall~$(0, \infty)$. Mit dem vorher beschriebenen Verfahren ist dies nicht direkt möglich. -Mit einer Transformation die das unendliche Intervall $(a, \infty)$ mit -\begin{align*} -x -= -a + \frac{1 - t}{t} -\end{align*} -auf das Intervall $[0, 1]$ transformiert, -kann dies behoben werden. -Für unseren Fall gilt $a = 0$. +% Mit einer Transformation +% \begin{align*} +% x +% = +% % a + +% \frac{1 - t}{t} +% \end{align*} +% die das unendliche Intervall~$(0, \infty)$ +% auf das Intervall~$[0, 1]$ transformiert, +% kann dies behoben werden. +% % Für unseren Fall gilt $a = 0$. Das Integral eines Polynomes in diesem Intervall ist immer divergent. -Darum müssen wir das Polynom mit einer Funktion multiplizieren, -die schneller als jedes Polynom gegen $0$ geht, -damit das Integral immer noch konvergiert. +Es ist also nötig, +den Integranden durch Funktionen zu approximieren, +die genügend schnell gegen $0$ gehen. +Man kann Polynome beliebigen Grades verwenden, +wenn sie mit einer Funktion multipliziert werden, +die schneller gegen $0$ geht als jedes Polynom. +Damit stellen wir sicher, +dass das Integral immer noch konvergiert. +% Darum müssen wir das Polynom mit einer Funktion multiplizieren, +% die schneller als jedes Polynom gegen $0$ geht, +% damit das Integral immer noch konvergiert. Die Laguerre-Polynome $L_n$ schaffen hier Abhilfe, da ihre Gewichtsfunktion $w(x) = e^{-x}$ schneller gegen $0$ konvergiert als jedes Polynom. @@ -55,20 +66,33 @@ gegen $0$ konvergiert als jedes Polynom. % $L_n$ ausweiten. % Diese sind orthogonal im Intervall $(0, \infty)$ bezüglich % der Gewichtsfunktion $e^{-x}$. -Die Gleichung~\eqref{laguerre:gaussquadratur} lässt sich wie folgt -umformulieren: +Um also das Integral einer Funktion $g(x)$ im Intervall~$(0,\infty)$ zu +berechen, +formt man das Integral wie folgt um: +\begin{align*} +\int_0^\infty g(x) \, dx += +\int_0^\infty f(x) e^{-x} \, dx +\end{align*} +Wir approximieren dann $f(x)$ durch ein Interpolationspolynom +wie bei der Gauss-Quadratur. +% Die Gleichung~\eqref{laguerre:gaussquadratur} lässt sich daher wie folgt +% umformulieren: +Die Gleichung~\eqref{laguerre:gaussquadratur} wird also +für die Gauss-Laguerre-Quadratur zu \begin{align} \int_{0}^{\infty} f(x) e^{-x} dx \approx \sum_{i=1}^{n} f(x_i) A_i \label{laguerre:laguerrequadratur} +. \end{align} \subsubsection{Stützstellen und Gewichte} Nach der Definition der Gauss-Quadratur müssen als Stützstellen die Nullstellen -des verwendeten Polynoms genommen werden. -Für das Laguerre-Polynom $L_n$ müssen demnach dessen Nullstellen $x_i$ und -als Gewichte $A_i$ die Integrale $l_i(x)e^{-x}$ verwendet werden. +des Approximationspolynoms genommen werden. +Für das Laguerre-Polynom $L_n(x)$ müssen demnach dessen Nullstellen $x_i$ und +als Gewichte $A_i$ die Integrale von $l_i(x) e^{-x}$ verwendet werden. Dabei sind \begin{align*} l_i(x_j) @@ -76,12 +100,12 @@ l_i(x_j) \delta_{ij} = \begin{cases} -1 & i=j \\ +1 & i=j \\ 0 & \text{sonst} \end{cases} % . \end{align*} -die Lagrangschen Interpolationspolynome. +die Lagrangeschen Interpolationspolynome. Laut \cite{laguerre:hildebrand2013introduction} können die Gewichte mit \begin{align*} A_i @@ -97,8 +121,11 @@ des orthogonalen Polynoms $\phi_n(x)$, $\forall i =0,\ldots,n$ und \int_0^\infty w(x) \phi_n^2(x)\,dx \end{align*} dem Normalisierungsfaktor. + Wir setzen nun $\phi_n(x) = L_n(x)$ und -nutzen den Vorzeichenwechsel der Laguerre-Koeffizienten aus, +nutzen den Vorzeichenwechsel der Laguerre-Koeffizienten +(ersichtlich am Term $(-1)^k$ in \eqref{laguerre:polynom}) +aus, damit erhalten wir \begin{align*} A_i @@ -122,39 +149,41 @@ Für Laguerre-Polynome gilt Daraus folgt \begin{align} A_i -&= + & = - \frac{1}{n L_{n-1}(x_i) L'_n(x_i)} -. \label{laguerre:gewichte_lag_temp} +. \end{align} Nun kann die Rekursionseigenschaft der Laguerre-Polynome +\cite{laguerre:hildebrand2013introduction} +% (siehe \cite{laguerre:hildebrand2013introduction}) \begin{align*} -x L'_n(x) -&= +x L'_n(x) + & = n L_n(x) - n L_{n-1}(x) \\ -&= (x - n - 1) L_n(x) + (n + 1) L_{n+1}(x) + & = (x - n - 1) L_n(x) + (n + 1) L_{n+1}(x) \end{align*} umgeformt werden und da $x_i$ die Nullstellen von $L_n(x)$ sind, -vereinfacht sich der Term zu +vereinfacht sich die Gleichung zu \begin{align*} x_i L'_n(x_i) -&= -- n L_{n-1}(x_i) + & = +- n L_{n-1}(x_i) \\ -&= - (n + 1) L_{n+1}(x_i) + & = +(n + 1) L_{n+1}(x_i) . \end{align*} -Setzen wir das nun in \eqref{laguerre:gewichte_lag_temp} ein, +Setzen wir diese Beziehung nun in \eqref{laguerre:gewichte_lag_temp} ein, ergibt sich \begin{align} \nonumber A_i -&= + & = \frac{1}{x_i \left[ L'_n(x_i) \right]^2} \\ -&= + & = \frac{x_i}{(n+1)^2 \left[ L_{n+1}(x_i) \right]^2} . \label{laguerre:quadratur_gewichte} diff --git a/buch/papers/laguerre/references.bib b/buch/papers/laguerre/references.bib index d21009b..1a4a903 100644 --- a/buch/papers/laguerre/references.bib +++ b/buch/papers/laguerre/references.bib @@ -10,15 +10,13 @@ series={Dover Books on Mathematics}, year={2013}, publisher={Dover Publications}, - pages = {389} + pages = {389-392} } @book{laguerre:abramowitz+stegun, added-at = {2008-06-25T06:25:58.000+0200}, address = {New York}, author = {Abramowitz, Milton and Stegun, Irene A.}, - biburl = {https://www.bibsonomy.org/bibtex/223ec744709b3a776a1af0a3fd65cd09f/a_olympia}, - description = {BibTeX - Wikipedia, the free encyclopedia}, edition = {ninth Dover printing, tenth GPO printing}, interhash = {d4914a420f489f7c5129ed01ec3cf80c}, intrahash = {23ec744709b3a776a1af0a3fd65cd09f}, diff --git a/buch/papers/laguerre/scripts/estimates.py b/buch/papers/laguerre/scripts/estimates.py index 21551f3..1acd7f7 100644 --- a/buch/papers/laguerre/scripts/estimates.py +++ b/buch/papers/laguerre/scripts/estimates.py @@ -15,7 +15,7 @@ if __name__ == "__main__": ) N = 200 - ns = np.arange(2, 13) + ns = np.arange(1, 13) step = 1 / (N - 1) x = np.linspace(step, 1 - step, N + 1) diff --git a/buch/papers/laguerre/scripts/laguerre_poly.py b/buch/papers/laguerre/scripts/laguerre_poly.py index 9700ab4..05db5d3 100644 --- a/buch/papers/laguerre/scripts/laguerre_poly.py +++ b/buch/papers/laguerre/scripts/laguerre_poly.py @@ -46,7 +46,7 @@ if __name__ == "__main__": ax.set_yticks(get_ticks(-ylim, ylim), minor=True) ax.set_yticks(get_ticks(-step * (ylim // step), ylim, step)) ax.set_ylim(-ylim, ylim) - ax.set_ylabel(r"$y$", y=0.95, labelpad=-18, rotation=0, fontsize="large") + ax.set_ylabel(r"$y$", y=0.95, labelpad=-14, rotation=0, fontsize="large") ax.legend(ncol=2, loc=(0.125, 0.01), fontsize="large") diff --git a/buch/papers/laguerre/scripts/rel_error_simple.py b/buch/papers/laguerre/scripts/rel_error_simple.py index 686500b..e1ea36a 100644 --- a/buch/papers/laguerre/scripts/rel_error_simple.py +++ b/buch/papers/laguerre/scripts/rel_error_simple.py @@ -18,7 +18,7 @@ if __name__ == "__main__": # Simple / naive xmin = -5 - xmax = 30 + xmax = 25 ns = np.arange(2, 12, 2) ylim = np.array([-11, 6]) x = np.linspace(xmin + ga.EPSILON, xmax - ga.EPSILON, 400) diff --git a/buch/papers/laguerre/scripts/targets.py b/buch/papers/laguerre/scripts/targets.py index 3bc7f52..69f94ba 100644 --- a/buch/papers/laguerre/scripts/targets.py +++ b/buch/papers/laguerre/scripts/targets.py @@ -38,7 +38,7 @@ if __name__ == "__main__": ) N = 200 - ns = np.arange(2, 13) + ns = np.arange(1, 13) bests = find_best_loc(N, ns=ns) diff --git a/buch/papers/lambertw/Bilder/Strategie.pdf b/buch/papers/lambertw/Bilder/Strategie.pdf Binary files differnew file mode 100644 index 0000000..0de3001 --- /dev/null +++ b/buch/papers/lambertw/Bilder/Strategie.pdf diff --git a/buch/papers/lambertw/Bilder/Strategie.py b/buch/papers/lambertw/Bilder/Strategie.py new file mode 100644 index 0000000..b9b41bf --- /dev/null +++ b/buch/papers/lambertw/Bilder/Strategie.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +""" +Created on Fri Jul 29 09:40:11 2022 + +@author: yanik +""" +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]) +VZ = Z-V +vzScale = 0.4 + + +a = [N, N, V] +b = [V, Z, vzScale*VZ] + +X = np.array([i[0] for i in a]) +Y = np.array([i[1] for i in a]) +U = np.array([i[0] for i in b]) +W = np.array([i[1] for i in b]) + +xlim = 6 +ylim = 6 +fig, ax = plt.subplots(1,1) +ax.set_xlim([0, xlim]) #<-- set the x axis limits +ax.set_ylim([0, ylim]) #<-- set the y axis limits +#plt.figure(figsize=(xlim, ylim)) +ax.quiver(X, Y, U, W, angles='xy', scale_units='xy', scale=1, headwidth=5, headlength=7, headaxislength=5.5) + +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.text(2.5, 4.5, "Visierlinie", size=20, rotation=10) + +plt.rcParams.update({ + "text.usetex": True, + "font.family": "serif", + "font.serif": ["New Century Schoolbook"], +}) + +ax.text(1.6, 4.3, r"$\vec{v}$", size=30) +ax.text(0.6, 3.9, r"$V$", size=30, c='b') +ax.text(5.1, 4.77, r"$Z$", size=30, c='b') + + + diff --git a/buch/papers/lambertw/Bilder/Strategie.svg b/buch/papers/lambertw/Bilder/Strategie.svg new file mode 100644 index 0000000..30f9f22 --- /dev/null +++ b/buch/papers/lambertw/Bilder/Strategie.svg @@ -0,0 +1,790 @@ +<?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 53eb2f9..90758cd 100644 --- a/buch/papers/lambertw/Bilder/VerfolgungskurveBsp.png +++ b/buch/papers/lambertw/Bilder/VerfolgungskurveBsp.png diff --git a/buch/papers/lambertw/Bilder/pursuerDGL2.ggb b/buch/papers/lambertw/Bilder/pursuerDGL2.ggb Binary files differindex 0bd39b2..3c4500b 100644 --- a/buch/papers/lambertw/Bilder/pursuerDGL2.ggb +++ b/buch/papers/lambertw/Bilder/pursuerDGL2.ggb diff --git a/buch/papers/lambertw/Bilder/pursuerDGL2.pdf b/buch/papers/lambertw/Bilder/pursuerDGL2.pdf Binary files differindex 284dd7d..932d9d9 100644 --- a/buch/papers/lambertw/Bilder/pursuerDGL2.pdf +++ b/buch/papers/lambertw/Bilder/pursuerDGL2.pdf diff --git a/buch/papers/lambertw/Bilder/pursuerDGL2.png b/buch/papers/lambertw/Bilder/pursuerDGL2.png Binary files differnew file mode 100644 index 0000000..f41dffe --- /dev/null +++ b/buch/papers/lambertw/Bilder/pursuerDGL2.png diff --git a/buch/papers/lambertw/main.log b/buch/papers/lambertw/main.log index 4b0af4d..754563d 100644 --- a/buch/papers/lambertw/main.log +++ b/buch/papers/lambertw/main.log @@ -1,14 +1,12 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021/W32TeX) (preloaded format=pdflatex 2021.11.16) 15 MAR 2022 13:23 +This is pdfTeX, Version 3.141592653-2.6-1.40.23 (MiKTeX 21.8) (preloaded format=pdflatex 2021.9.21) 20 JUL 2022 18:38 entering extended mode - restricted \write18 enabled. - %&-line parsing enabled. -**main.tex -(./main.tex -LaTeX2e <2021-11-15> -L3 programming layer <2021-11-12> +**./main.tex +(main.tex +LaTeX2e <2021-06-01> patch level 1 +L3 programming layer <2021-08-27> ! Undefined control sequence. l.6 \chapter - {Thema\label{chapter:lambertw}} + {Verfolgungskurven\label{chapter:lambertw}} The control sequence at the end of the top line of your error message was never \def'ed. If you have misspelled it (e.g., `\hobx'), type `I' and the correct @@ -22,16 +20,28 @@ See the LaTeX manual or LaTeX Companion for explanation. Type H <return> for immediate help. ... -l.6 \chapter{T - hema\label{chapter:lambertw}} +l.6 \chapter{V + erfolgungskurven\label{chapter:lambertw}} You're in trouble here. Try typing <return> to proceed. If that doesn't work, type X <return> to quit. -Missing character: There is no T in font nullfont! -Missing character: There is no h in font nullfont! +Missing character: There is no V in font nullfont! Missing character: There is no e in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! ! Undefined control sequence. l.7 \lhead {Thema} @@ -61,666 +71,46 @@ or <return> to continue without it. ! Undefined control sequence. l.9 \chapterauthor - {Hans Muster} + {David Hugentobler und Yanik Kuster} The control sequence at the end of the top line of your error message was never \def'ed. If you have misspelled it (e.g., `\hobx'), type `I' and the correct spelling (e.g., `I\hbox'). Otherwise just continue, and I'll forget about whatever was undefined. -Missing character: There is no H in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no M in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! - -Overfull \hbox (20.0pt too wide) in paragraph at lines 6--10 -[][] - [] - - -! LaTeX Error: Missing \begin{document}. - -See the LaTeX manual or LaTeX Companion for explanation. -Type H <return> for immediate help. - ... - -l.11 E - in paar Hinweise für die korrekte Formatierung des Textes -You're in trouble here. Try typing <return> to proceed. -If that doesn't work, type X <return> to quit. - -Missing character: There is no E in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no H in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no w in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no f in font nullfont! -LaTeX Font Info: Trying to load font information for +cmr on input line 11. -LaTeX Font Info: No file cmr.fd. on input line 11. - -LaTeX Font Warning: Font shape `/cmr/m/n' undefined -(Font) using `/cmr/m/n' instead on input line 11. - -! Corrupted NFSS tables. -wrong@fontshape ...message {Corrupted NFSS tables} - error@fontshape else let f... -l.11 Ein paar Hinweise fü - r die korrekte Formatierung des Textes -This error message was generated by an \errmessage -command, so I can't give any explicit help. -Pretend that you're Hercule Poirot: Examine all clues, -and deduce the truth by order and method. - - -LaTeX Font Warning: Font shape `/cmr/m/n' undefined -(Font) using `OT1/cmr/m/n' instead on input line 11. - -Missing character: There is no r in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no k in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no k in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no F in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no T in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no x in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no s in font nullfont! - -Overfull \hbox (20.0pt too wide) in paragraph at lines 11--12 -[] - [] - - -Overfull \hbox (10.55559pt too wide) in paragraph at lines 11--12 -\/cmr/m/n/10 ^^?u - [] - -Missing character: There is no A in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no z in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no w in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no , in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no L in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no z in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no f in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no . in font nullfont! Missing character: There is no D in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no V in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no w in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no v in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no T in font nullfont! Missing character: There is no a in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no A in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no y in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no . in font nullfont! - -Overfull \hbox (5.00002pt too wide) in paragraph at lines 14--17 -\/cmr/m/n/10 ^^?a - [] - - -Overfull \hbox (5.55557pt too wide) in paragraph at lines 14--17 -\/cmr/m/n/10 ^^?u - [] - - -Overfull \hbox (10.49991pt too wide) in paragraph at lines 14--17 -[][]\OT1/cmtt/m/n/10 \\ - [] - -Missing character: There is no D in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no x in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no z in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no P in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no z in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! Missing character: There is no v in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no B in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no , in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no O in font nullfont! -Missing character: There is no p in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no w in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no . in font nullfont! -Missing character: There is no V in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no w in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no S in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no L in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no V in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no w in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no , in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no f in font nullfont! -Missing character: There is no B in font nullfont! Missing character: There is no i in font nullfont! -Missing character: There is no l in font nullfont! Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no z in font nullfont! +Missing character: There is no H in font nullfont! Missing character: There is no u in font nullfont! -Missing character: There is no w in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no . in font nullfont! - -Overfull \hbox (5.00002pt too wide) in paragraph at lines 17--21 -\/cmr/m/n/10 ^^?o - [] - -Missing character: There is no B in font nullfont! -Missing character: There is no e in font nullfont! Missing character: There is no g in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no S in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no j in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no d in font nullfont! Missing character: There is no e in font nullfont! Missing character: There is no n in font nullfont! -Missing character: There is no S in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no z in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no f in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no Z in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no . in font nullfont! -Missing character: There is no D in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no i in font nullfont! Missing character: There is no t in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no S in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no V in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no i in font nullfont! Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no v in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no w in font nullfont! -Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! Missing character: There is no l in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no y in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no , in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! Missing character: There is no e in font nullfont! Missing character: There is no r in font nullfont! Missing character: There is no u in font nullfont! Missing character: There is no n in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no v in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no e in font nullfont! Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no S in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no z in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no v in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no v in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no A in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no K in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no f in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no k in font nullfont! -Missing character: There is no t in font nullfont! +Missing character: There is no Y in font nullfont! Missing character: There is no a in font nullfont! Missing character: There is no n in font nullfont! -Missing character: There is no z in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no w in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no . in font nullfont! - -Overfull \hbox (5.00002pt too wide) in paragraph at lines 21--26 -\/cmr/m/n/10 ^^?o - [] - - -Overfull \hbox (7.50002pt too wide) in paragraph at lines 21--26 -[]\/cmr/m/n/10 A - [] - - -Overfull \hbox (5.00002pt too wide) in paragraph at lines 21--26 -\/cmr/m/n/10 ^^?a - [] - -Missing character: There is no B in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no S in font nullfont! Missing character: There is no i in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no f in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no F in font nullfont! -Missing character: There is no o in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no n in font nullfont! Missing character: There is no k in font nullfont! +Missing character: There is no K in font nullfont! Missing character: There is no u in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no z in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no Z in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no , in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! Missing character: There is no s in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no s in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no w in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no g in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no , in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no a in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no h in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no m in font nullfont! -Missing character: There is no G in font nullfont! -Missing character: There is no I in font nullfont! -Missing character: There is no T in font nullfont! -Missing character: There is no d in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no A in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no b in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no t in font nullfont! -Missing character: There is no z in font nullfont! -Missing character: There is no u in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no r in font nullfont! -Missing character: There is no l in font nullfont! -Missing character: There is no e in font nullfont! -Missing character: There is no i in font nullfont! -Missing character: There is no c in font nullfont! -Missing character: There is no h in font nullfont! Missing character: There is no t in font nullfont! Missing character: There is no e in font nullfont! Missing character: There is no r in font nullfont! -Missing character: There is no n in font nullfont! -Missing character: There is no . in font nullfont! - -Overfull \hbox (5.55557pt too wide) in paragraph at lines 26--28 -\/cmr/m/n/10 ^^?u - [] - -Overfull \hbox (7.50002pt too wide) in paragraph at lines 26--28 -[]\/cmr/m/n/10 U +Overfull \hbox (20.0pt too wide) in paragraph at lines 6--10 +[][] [] @@ -734,16 +124,16 @@ Enter file name: <read *> l.30 \input{papers/lambertw/teil0.tex} - ^^M + *** (cannot \read from terminal in nonstop modes) Here is how much of TeX's memory you used: - 36 strings out of 478371 - 593 string characters out of 5852527 - 296836 words of memory out of 5000000 - 18242 multiletter control sequences out of 15000+600000 - 403598 words of font info for 28 fonts, out of 8000000 for 9000 + 22 strings out of 478927 + 609 string characters out of 2852535 + 290175 words of memory out of 3000000 + 17980 multiletter control sequences out of 15000+600000 + 403430 words of font info for 27 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 - 23i,1n,32p,120b,183s stack positions out of 5000i,500n,10000p,200000b,80000s + 16i,0n,26p,94b,28s stack positions out of 5000i,500n,10000p,200000b,80000s ! ==> Fatal error occurred, no output PDF file produced! diff --git a/buch/papers/lambertw/main.tex b/buch/papers/lambertw/main.tex index 68b7a5d..394963f 100644 --- a/buch/papers/lambertw/main.tex +++ b/buch/papers/lambertw/main.tex @@ -4,34 +4,34 @@ % (c) 2020 Hochschule Rapperswil % \chapter{Verfolgungskurven\label{chapter:lambertw}} -\lhead{Thema} +\lhead{Verfolgungskurven} \begin{refsection} \chapterauthor{David Hugentobler und Yanik Kuster} - -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} - +% +%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} +% \input{papers/lambertw/teil0.tex} -%\input{papers/lambertw/teil1.tex} %\input{papers/lambertw/teil2.tex} %\input{papers/lambertw/teil3.tex} \input{papers/lambertw/teil4.tex} - +\input{papers/lambertw/teil1.tex} +% \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/lambertw/teil0.tex b/buch/papers/lambertw/teil0.tex index 73fe187..8fa8f9b 100644 --- a/buch/papers/lambertw/teil0.tex +++ b/buch/papers/lambertw/teil0.tex @@ -4,99 +4,112 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Was sind Verfolgungskurven? -\label{lambertw:section:teil0}} -\rhead{Teil 0} - -Verfolgungskurven tauchen oft auf bei fragen wie, welchen Pfad begeht ein Hund während er einer Katze nachrennt. Ein solches Problem hat im Kern immer ein Verfolger und sein Ziel. Der Verfolger versucht sein Ziel zu ergattern und das Ziel versucht zu entkommen. Der Pfad, der der Verfolger während der Verfolgung begeht, wird Verfolgungskurve genannt. Um diese Kurve zu bestimmen, kann das Verfolgungsproblem als DGL formuliert werden. Diese DGL entspringt der Verfolgungsstrategie des Verfolgers. - - +\label{lambertw:section:Was_sind_Verfolgungskurven}} +\rhead{Was sind Verfolgungskurven?} +% +Verfolgungskurven tauchen oft auf bei Fragen wie "Welchen Pfad begeht ein Hund während er einer Katze nachrennt?". +Ein solches Problem hat im Kern immer ein Verfolger und sein Ziel. +Der Verfolger verfolgt sein Ziel, das versucht zu entkommen. +Der Pfad, den der Verfolger während der Verfolgung begeht, wird Verfolgungskurve genannt. +Um diese Kurve zu bestimmen, kann das Verfolgungsproblem als Differentialgleichung formuliert werden. +Diese Differentialgleichung entspringt der Verfolgungsstrategie des Verfolgers. +% \subsection{Verfolger und Verfolgungsstrategie \label{lambertw:subsection:Verfolger}} -Wie bereits erwähnt, wird der Verfolger durch seine Verfolgungsstrategie definiert. Wir nehmen an, dass sich der Verfolger stur an eine Verfolgungsstrategie hält. Dabei gibt es viele mögliche Strategien, die der Verfolger wählen könnte. Die möglichen Strategien entstehen durch Festlegung einzelner Parameter, die der Verfolger kontrollieren kann. Der Verfolger hat nur einen direkten Einfluss auf seinen Geschwindigkeitsvektor. Mit diesem kann er neben Richtung und Betrag auch den Abstand zwischen Verfolger und Ziel kontrollieren. Wenn zwei dieser drei Parameter durch die Strategie definiert werden, ist der dritte nicht mehr frei. Daraus folgt, dass eine Strategie zwei dieser drei Parameter festlegen muss, um den Verfolger komplett zu beschreiben. - +Wie bereits erwähnt, wird der Verfolger durch seine Verfolgungsstrategie definiert. +Wir nehmen an, dass sich der Verfolger stur an eine Verfolgungsstrategie hält. +Dabei gibt es viele mögliche Strategien, die der Verfolger wählen könnte. +Die möglichen Strategien entstehen durch Festlegung einzelner Parameter, die der Verfolger kontrollieren kann. +Der Verfolger hat nur einen direkten Einfluss auf seinen Geschwindigkeitsvektor. +Mit diesem kann er neben Richtung und Betrag auch den Abstand zwischen Verfolger und Ziel kontrollieren. +Wenn zwei dieser drei Parameter durch die Strategie definiert werden, ist der dritte nicht mehr frei. +Daraus folgt, dass eine Strategie zwei dieser drei Parameter festlegen muss, um den Verfolger komplett zu beschreiben. +% \begin{table} \centering \begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} \hline - \text{}&\text{Geschwindigkeit}&\text{Abstand}&\text{Richtung}\\ + \text{Strategie}&\text{Geschwindigkeit}&\text{Abstand}&\text{Richtung}\\ \hline - \text{Strategie 1} + \text{Jagd} & \text{konstant} & \text{-} & \text{direkt auf Ziel hinzu}\\ - \text{Strategie 2} + \text{Beschattung} & \text{-} & \text{konstant} & \text{direkt auf Ziel hinzu}\\ - \text{Strategie 3} + \text{Vorhalt} & \text{konstant} & \text{-} & \text{etwas voraus Zielen}\\ \hline \end{tabular} \caption{mögliche Verfolgungsstrategien} - \label{lambertw:Strategien} + \label{lambertw:table:Strategien} \end{table} - - - - -%\begin{figure} -% \centering -% \includegraphics{.\papers\lambertw\Bilder\pursuerDGL2.pdf} -% \label{pursuer:pursuerDGL2} -%\end{figure} - -In der Tabelle \eqref{lambertw:Strategien} sind drei mögliche Strategien aufgezählt. -Folgend wird nur noch auf die Strategie 1 eingegangen. -Bei dieser Strategie ist die Geschwindigkeit konstant und der Verfolger bewegt sich immer direkt auf sein Ziel hinzu. -In der Grafik \eqref{lambertw:pursuerDGL2} ist das Problem dargestellt. -Wobei $\overrightarrow{V}$ der Ortsvektor des Verfolgers, $\overrightarrow{Z}$ der Ortsvektor des Ziels und $\overrightarrow{\dot{V}}$ der Geschwindigkeitsvektor des Verfolgers ist. +% +\begin{figure} + \centering + \includegraphics[scale=0.6]{./papers/lambertw/Bilder/Strategie.pdf} + \caption{Vektordarstellung Jagdstrategie} + \label{lambertw:grafic:pursuerDGL2} +\end{figure} +% +In der Tabelle \ref{lambertw:table:Strategien} sind drei mögliche Strategien aufgezählt. +Im Folgenden wird nur noch auf die Jagdstrategie eingegangen. +Bei dieser Strategie ist die Geschwindigkeit konstant und der Verfolger bewegt sich immer direkt auf sein Ziel zu. +Der Verfolger und sein Ziel werden als Punkte $V$ und $Z$ modelliert. +In der Abbildung \ref{lambertw:grafic:pursuerDGL2} ist das Problem dargestellt, +wobei $v$ der Ortsvektor des Verfolgers, $z$ der Ortsvektor des Ziels und $\dot{v}$ der Geschwindigkeitsvektor des Verfolgers ist. +Der Geschwindigkeitsvektor entspricht dem Richtungsvektors des Verfolgers. Die konstante Geschwindigkeit kann man mit der Gleichung +% \begin{equation} - |\overrightarrow{\dot{V}}| - = konst = A - \quad|A\in\mathbb{R}>0 + |\dot{v}| + = \operatorname{const} = A + \text{,}\quad A\in\mathbb{R}^+ \end{equation} -darstellen. Der Geschwindigkeitsvektor wiederum kann mit der Gleichung +% +darstellen. Der Geschwindigkeitsvektor kann mit der Gleichung +% \begin{equation} - \frac{\overrightarrow{Z}-\overrightarrow{V}}{|\overrightarrow{Z}-\overrightarrow{V}|}\cdot|\overrightarrow{\dot{V}}| + \frac{z-v}{|z-v|}\cdot|\dot{v}| = - \overrightarrow{\dot{V}} + \dot{v} \end{equation} -beschrieben werden. -Durch die Subtraktion der Ortsvektoren $\overrightarrow{V}$ und $\overrightarrow{Z}$ entsteht ein Vektor der vom Punkt $V$ auf $Z$ zeigt. -Da die Länge dieses Vektors beliebig sein kann, wird durch Division mit dem Betrag, die Länge auf eins festgelegt. +% +beschrieben werden, wenn die Jagdstrategie verwendet wird. +Die Differenz der Ortsvektoren $v$ und $z$ ist ein Vektor der vom Punkt $V$ auf $Z$ zeigt. +Da die Länge dieses Vektors beliebig sein kann, wird durch Division durch den Betrag, ein Einheitsvektor erzeugt. 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. -Nun wird die Gleichung mit deren rechten Seite skalar multipliziert, um das Gleichungssystem von zwei auf eine Gleichung zu reduzieren. +% +Nun wird die Gleichung mit $\dot{v}$ skalar multipliziert, um das Gleichungssystem von zwei auf eine Gleichung zu reduzieren. Somit ergeben sich \begin{align} - \label{pursuer:pursuerDGL} - \frac{\overrightarrow{Z}-\overrightarrow{V}}{|\overrightarrow{Z}-\overrightarrow{V}|}\cdot - \overrightarrow{\dot{V}} + \frac{z-v}{|z-v|}\cdot|\dot{v}|\cdot\dot{v} &= - |\overrightarrow{\dot{V}}|^2 + |\dot{v}|^2 \\ - \frac{\overrightarrow{Z}-\overrightarrow{V}}{|\overrightarrow{Z}-\overrightarrow{V}|}\cdot \frac{\overrightarrow{\dot{V}}}{|\overrightarrow{\dot{V}}|} + \label{lambertw:pursuerDGL} + \frac{z-v}{|z-v|}\cdot \frac{\dot{v}}{|\dot{v}|} &= - 1 + 1 \text{.} \end{align} -Diese DGL ist der Kern des Verfolgungsproblems, insofern der Verfolger die Strategie 1 verwendet. - - +Die Lösungen dieser Differentialgleichung sind die gesuchten Verfolgungskurven, insofern der Verfolger die Jagdstrategie verwendet. +% \subsection{Ziel \label{lambertw:subsection:Ziel}} Als nächstes gehen wir auf das Ziel ein. Wie der Verfolger wird auch unser Ziel sich strikt an eine Fluchtstrategie halten, welche von Anfang an bekannt ist. Diese Strategie kann als Parameterdarstellung der Position nach der Zeit beschrieben werden. Zum Beispiel könnte ein Ziel auf einer Geraden flüchten, welches auf einer Ebene mit der Parametrisierung +% \begin{equation} - \vec{r}(t) + z(t) = - \begin{Bmatrix} - 0\\ - t - \end{Bmatrix} + \left( \begin{array}{c} 0 \\ t \end{array} \right) \end{equation} +% beschrieben werden könnte. Mit dieser Gleichung ist das Ziel auch schon vollumfänglich definiert. -Die Fluchtkurve kann eine beliebige Form haben, jedoch wird die zu lösende DGL immer komplexer. +Für die Fluchtkurve kann eine beliebige Form gewählt werden, jedoch wird die zu lösende Differentialgleichung für die Verfolgungskurve komplexer. diff --git a/buch/papers/lambertw/teil1.tex b/buch/papers/lambertw/teil1.tex index cc4a62a..2733759 100644 --- a/buch/papers/lambertw/teil1.tex +++ b/buch/papers/lambertw/teil1.tex @@ -3,160 +3,210 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Ziel -\label{lambertw:section:teil1}} -\rhead{Problemstellung} - - - -%\begin{figure}[H] -% \centering -% \includegraphics[width=0.5\textwidth]{.\Bilder\something.pdf} -% \label{pursuer:grafik1} -%\end{figure} - - - -Je nach Verfolgungsstrategie die der Verfolger verwendet, entsteht eine andere DGL. -Für dieses konkrete Beispiel wird einfachheitshalber die simpelste Strategie gewählt. -Bei dieser Strategie bewegt sich der Verfolger immer direkt auf sein Ziel hinzu. -Womit der Geschwindigkeitsvektor des Verfolgers zu jeder Zeit direkt auf das Ziel zeigt. - -Um die DGL dieses Problems herzuleiten wird der Sachverhalt in der Grafik \eqref{pursuer:grafik1} aufgezeigt. -Der Punkt $P$ ist der Verfolger und der Punkt $A$ ist sein Ziel. - -Um dies mathematisch beschreiben zu können, wird der Richtungsvektor +\section{Wird das Ziel erreicht? +\label{lambertw:section:Wird_das_Ziel_erreicht}} +\rhead{Wird das Ziel erreicht?} +% +Sehr oft kommt es vor, dass bei Verfolgungsproblemen die Frage auftaucht, ob das Ziel überhaupt erreicht wird. +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. + +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. +Somit gilt es +% +\begin{equation*} + z(t_1)=v(t_1) +\end{equation*} +% +zu lösen. +Die Parametrisierung von $z(t)$ ist im Beispiel definiert als \begin{equation} - \frac{A-P}{|A-P|} + z(t) = - \frac{\dot{P}}{|\dot{P}|} + \left( \begin{array}{c} 0 \\ t \end{array} \right)\text{.} \end{equation} -benötigt. Durch die Subtraktion der Ortsvektoren $\overrightarrow{OP}$ und $\overrightarrow{OA}$ entsteht ein Vektor der vom Punkt $P$ auf $A$ zeigt. -Da die Länge dieses Vektors beliebig sein kann, wird durch Division mit dem Betrag, die Länge auf eins festgelegt. -Aus dem Verfolgungsproblem ist auch ersichtlich, dass die Punkte $A$ und $P$ nicht am gleichen Ort starten und so eine Division durch Null ausgeschlossen ist. -Wenn die Punkte $A$ und $P$ trotzdem am gleichen Ort starten, ist die Lösung trivial. - -Nun wird die Gleichung mit deren rechten Seite skalar multipliziert, um das Gleichungssystem von zwei auf eine Gleichung zu reduzieren. +% +Die Parametrisierung von $v(t)$ ist von den Startbedingungen abhängig. Deshalb wird die obige Bedingung jeweils für die unterschiedlichen Startbedingungen separat analysiert. +% +\subsection{Anfangsbedingung im \RN{1}-Quadranten} +% +Wenn der Verfolger im \RN{1}-Quadranten startet, dann kann $v(t)$ mit den Gleichungen aus \eqref{lambertw:eqFunkXNachT}, welche +\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)} \\ + y(t) + &= + \frac{1}{4}\left(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(r_0-y_0\right)\operatorname{ln}\left(\left(\frac{x(t)}{x_0}\right)^2\right)-r_0+3y_0\right)\\ + \chi + &= + \frac{r_0+y_0}{r_0-y_0}, \quad + \eta + = + \left(\frac{x}{x_0}\right)^2,\quad + r_0 + = + \sqrt{x_0^2+y_0^2} +\end{align*} +% +Der Folger ist durch \begin{equation} - \label{pursuer:pursuerDGL} - \frac{A-P}{|A-P|}\cdot \frac{\dot{P}}{|\dot{P}|} + v(t) = - 1 + \left( \begin{array}{c} x(t) \\ y(t) \end{array} \right) + \text{.} \end{equation} -Diese DGL ist der Kern des Verfolgungsproblems, insofern sich der Verfolger immer direkt auf sein Ziel zubewegt. - - -\subsection{Beispiel} -Das Verfolgungsproblem wird mithilfe eines konkreten Beispiels veranschaulicht. Dafür wird die einfachste Strategie verwendet, bei der sich der Verfolger direkt auf sein Ziel hinzu bewegt. Für dieses Problem wurde bereits die DGL \eqref{pursuer:pursuerDGL} hergeleitet. - -Um dieses Beispiel einfach zu halten, wird für den Verfolger und das Ziel jeweils eine konstante Geschwindigkeit von eins gewählt. Das Ziel wiederum startet im Ursprung und bewegt sich linear auf der positiven Y-Achse. - -\begin{align} - v_P^2 +% +parametrisiert, wobei $y(t)$ viel komplexer ist als $x(t)$. +Daher wird das Problem in zwei einzelne Teilprobleme zerlegt, wodurch die Bedingung der $x$- und $y$-Koordinaten einzeln überprüft werden müssen. Es entstehen daher folgende Bedingungen +% +\begin{align*} + 0 &= - \dot{P}\cdot\dot{P} + x(t) = - 1 - \\[5pt] - v_A - &= - 1 - \\[5pt] - A + x_0\sqrt{\frac{1}{\chi}W\left(\chi\cdot \exp\left( \chi-\frac{4t}{r_0-y_0}\right)\right)} + \\ + t &= - \begin{pmatrix} - 0 \\ - v_A\cdot t - \end{pmatrix} - = - \begin{pmatrix} - 0 \\ - t - \end{pmatrix} - \\[5pt] - P - &= - \begin{pmatrix} - x \\ - y - \end{pmatrix} -\end{align} - -Die Anfangsbedingungen dieses Problems sind. - -\begin{align} - y(t)\bigg|_{t=0} - &= - y_0 - \\[5pt] - x(t)\bigg|_{t=0} - &= - x_0 \\[5pt] - \frac{\,dy}{\,dx}(t)\bigg|_{t=0} - &= - \frac{y_A(t) -y_P(t)}{x_A(t)-x_P(t)}\bigg|_{t=0} -\end{align} - -Mit den vorangegangenen Definitionen kann nun die DGL \eqref{pursuer:pursuerDGL} gelöst werden. -Dafür wird als erstes das Skalarprodukt ausgerechnet. - + y(t) + = + \frac{1}{4}\left(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(r_0-y_0\right)\operatorname{ln}\left(\left(\frac{x(t)}{x_0}\right)^2\right)-r_0+3y_0\right)\text{,} +\end{align*} +% +welche Beide gleichzeitig erfüllt sein müssen, damit das Ziel erreicht wurde. +Zuerst wird die Bedingung der $x$-Koordinate betrachtet. +Da $x_0 \neq 0$ und $\chi \neq 0$ mit \begin{equation} - \dfrac{-x\cdot\dot{x}+(t-y)\cdot\dot{y}}{\sqrt{x^2+(t-y)^2}} = 1 + 0 + = + x_0\sqrt{\frac{1}{\chi}W\left(\chi\cdot \exp\left( \chi-\frac{4t}{r_0-y_0}\right)\right)} \end{equation} - - - - - - - - - - -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 +ist diese Bedingung genau dann erfüllt, wenn \begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{lambertw:equation1} + 0 + = + W\left(\chi\cdot \exp\left( \chi-\frac{4t}{r_0-y_0}\right)\right) + \text{.} +\end{equation} +% +Es ist zu beachten, dass $W(x)$ die Lambert W-Funktion ist, welche im Kapitel \eqref{buch:section:lambertw} behandelt wurde. +Diese Gleichung entspricht genau den Nullstellen der Lambert W-Funktion. Da die Lambert W-Funktion genau eine Nullstelle bei +\begin{equation} + W(0)=0 +\end{equation} +% +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. +% +% +% +%Diese kann durch dividieren durch $x_0$, anschliessendes quadrieren und multiplizieren von $\chi$ vereinfacht werden. Daraus folgt +%\begin{equation} +% 0 +% = +% W\left(\chi\cdot \exp\left( \chi-\frac{4t}{r_0-y_0}\right)\right) +% \text{.} +%5\end{equation} +% +%Es ist zu beachten, dass $W(x)$ die Lambert W-Funktion ist, welche im Kapitel \eqref{buch:section:lambertw} behandelt wurde. +%Diese Gleichung entspricht genau den Nullstellen der Lambert W-Funktion. Da die Lambert W-Funktion genau eine Nullstelle bei +% +%\begin{equation*} +% W(0)=0 +%\end{equation*} +% +%besitzt, kann die Bedingung weiter vereinfacht werden zu +% +%\begin{equation} +% 0 +% = +% \chi\cdot \exp\left( \chi-\frac{4t}{r_0-y_0}\right) +% \text{.} +%\end{equation} +% +%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. +% +\subsection{Anfangsbedingung $y_0<0$} +Da die Geschwindigkeit des Verfolgers und des Ziels übereinstimmen, kann der Verfolgers niemals das Ziel einholen. +Dies kann veranschaulicht werden anhand +% +\begin{equation} + v(t)\cdot \left( \begin{array}{c} 0 \\ 1 \end{array}\right) + \leq + z(t)\cdot \left( \begin{array}{c} 0 \\ 1 \end{array}\right) + = + 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. +% +\subsection{Anfangsbedingung auf positiven $y$-Achse} +Wenn der Verfolger auf der positiven $y$-Achse startet, befindet er sich direkt auf der Fluchtgeraden des Ziels. +Dies führt dazu, dass der Verfolger und das Ziel sich direkt aufeinander zu bewegen, da der Geschwindigkeitsvektor des Verfolgers auf das Ziel zeigt. +Die Folge ist, dass das Ziel zwingend erreicht wird. +Um $t_1$ zu bestimmen, kann die Verfolgungskurve in diesem Fall mit +% +\begin{equation} + v(t) + = + \left( \begin{array}{c} 0 \\ y_0-t \end{array} \right) +\end{equation} +% +parametrisiert werden. +Nun kann der Abstand zwischen Verfolger und Ziel leicht bestimmt und nach 0 aufgelöst werden. +Woraus folgt +% +\begin{equation} + 0 + = + |v(t_1)-z(t_1)| + = + y_0-2t_1\text{,} +\end{equation} +% +was aufgelöst zu +% +\begin{equation} + t_1 + = + \frac{y_0}{2} +\end{equation} +% +führt. +Somit wird das Ziel immer erreicht bei $t_1$, wenn der Verfolger auf der positiven $y$-Achse startet. +\subsection{Fazit} +Durch die Symmetrie der Fluchtkurve an der $y$-Achse führen die Anfangsbedingungen in den Quadranten \RN{1} und \RN{2} 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. +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 +% +\begin{equation} + |v-z|<a_{min} \text{,}\quad a_{min}\in\mathbb{R}^+ \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. +% +beschrieben werden, wobei $a_{min}$ dem Trefferradius entspricht. +Durch quadrieren verschwindet die Wurzel des Betrages, womit +% +\begin{equation} + |v-z|^2<a_{min}^2 \text{,}\quad a_{min}\in \mathbb{R}^+ +\end{equation} +% +die neue Bedingung ist. +Da sowohl der Betrag als auch $a_{min}$ grösser null sind, bleibt die Aussage unverändert. -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{lambertw: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{lambertw: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{lambertw: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/lambertw/teil4.tex b/buch/papers/lambertw/teil4.tex index 6184369..c79aa0c 100644 --- a/buch/papers/lambertw/teil4.tex +++ b/buch/papers/lambertw/teil4.tex @@ -3,156 +3,209 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Beispiel Verfolgungskurve +\section{Beispiel einer Verfolgungskurve \label{lambertw:section:teil4}} -\rhead{Beispiel Verfolgungskurve} -In diesem Abschnitt wird rechnerisch das Beispiel einer Verfolgungskurve mit der Verfolgungsstrategie 1 beschreiben. +\rhead{Beispiel einer Verfolgungskurve} +In diesem Abschnitt wird rechnerisch das Beispiel einer Verfolgungskurve mit der Verfolgungsstrategie 1 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. -Das zu verfolgende Ziel \(\overrightarrow{Z}\) wandert auf einer Gerade mit konstanter Geschwindigkeit \(v = 1\), wobei diese Gerade der \(y\)-Achse entspricht. Der Verfolger \(\overrightarrow{V}\) startet auf einem beliebigen Punkt im ersten Quadrant und bewegt sich auch mit konstanter Geschwindigkeit. Diese Anfangspunkte oder Anfangsbedingungen können wie folgt formuliert werden: +\subsection{Anfangsbedingungen definieren und einsetzen + \label{lambertw:subsection:Anfangsbedingungen}} +Das zu verfolgende Ziel \(Z\) bewegt sich entlang der \(y\)-Achse mit konstanter Geschwindigkeit \(v = 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: \begin{equation} - \overrightarrow{Z} + Z = \left( \begin{array}{c} 0 \\ v \cdot t \end{array} \right) = \left( \begin{array}{c} 0 \\ t \end{array} \right) - ; - \overrightarrow{V} + ,\: + V = \left( \begin{array}{c} x \\ y \end{array} \right) - \label{lambertw:Anfangspunkte} + \:\text{und}\:\: + \bigl| \dot{V} \bigl| + = + 1. + \label{lambertw:Anfangsbed} \end{equation} -Wenn man diese Startpunkte in die Gleichung der Verfolgungskurve \eqref{lambertw:pursuerDGL} einfügt ergibt sich folgender Ausdruck: +Wir haben nun die Anfangsbedingungen definiert, jetzt fehlt nur noch eine DGL, welche die fortlaufende Änderung der Position und Bewegungsrichtung des Verfolgers beschreibt. +Diese DGL haben wir bereits in Kapitel \ref{lambertw:subsection:Verfolger} definiert, und zwar Gleichung \eqref{lambertw:pursuerDGL}. Wenn man die Startpunkte einfügt, ergibt sich folgender Ausdruck: \begin{equation} \frac{\left( \begin{array}{c} 0-x \\ t-y \end{array} \right)}{\sqrt{x^2 + (t-y)^2}} - \circ + \cdot \left(\begin{array}{c} \dot{x} \\ \dot{y} \end{array}\right) = - 1 - \label{lambertw:eqMitAnfangspunkte} + 1. + \label{lambertw:eqMitAnfangsbed} \end{equation} -Macht man den linken Term Bruchfrei und löst das Skalarprodukt auf, dann ergibt sich folgende DGL: -\[ - \left( \begin{array}{c} 0-x \\ t-y \end{array} \right) - \circ - \left(\begin{array}{c} \dot{x} \\ \dot{y} \end{array}\right) - = \sqrt{x^2 + (t-y)^2}\\ -\] + +\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. + +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 einfach nur mühsam machen würden, werden wir uns hier nur die wesentlichsten Schritte konzentrieren, welche notwendig sind, um den Lösungsweg nachvollziehen zu können. + +\subsubsection{Skalarprodukt auflösen + \label{lambertw:subsubsection:SkalProdAufl}} +Zuerst müssen wir den Bruch und das Skalarprodukt in \eqref{lambertw:eqMitAnfangsbed} wegbringen, damit wir eine. Dies führt zu: \begin{equation} -x \cdot \dot{x} + (t-y) \cdot \dot{y} - = \sqrt{x^2 + (t-y)^2} - \label{lambertw:eq1BspVerfolgKurve} -\end{equation} -Im nächsten Schritt quadriert man beide Seiten, erweitert den neu entstandenen quadratischen Term, bringt alles auf die linke Seite und klammert gemeinsames aus. -\begin{align*} - ((t-y) \dot{y} - x \dot{x})^2 - &= x^2 + (t-y)^2 \\ - x^2 \dot{x}^2 - 2x(t-y) \dot{x} \dot{y} + (t-y)^2 \dot{y} - &= x^2 + (t-y)^2 \\ - \dot{x}^2 x^2 - x^2 - 2x(t-y) \dot{x} \dot{y} + \dot{y}^2 (t-y)^2 - (t-y)^2 - &= 0 \\ - (\dot{x}^2 - 1) \cdot x^2 - 2x(t-y) \dot{x} \dot{y} + (\dot{y}^2 - 1) \cdot (t-y)^2 - &= 0 -\end{align*} -Der letzte Ausdruck kann mittels folgender Beziehung \(\dot{x}^2 + \dot{y}^2 = 1\) vereinfacht werden, anschliessend wird die Gleichung mit \(-1\) multipliziert: -\[ - \underbrace{(\dot{x}^2 - 1)}_{\mathclap{-\dot{y}^2}} \cdot x^2 - 2x(t-y) \dot{x} \dot{y} + \underbrace{(\dot{y}^2 - 1)}_{\mathclap{-\dot{x}^2}} \cdot (t-y)^2 - = 0 -\] -\begin{align*} - - \dot{y}^2 \cdot x^2 - 2x(t-y) \dot{x} \dot{y} - \dot{x}^2 \cdot (t-y)^2 - &= 0 \\ - \dot{y}^2 \cdot x^2 + 2x(t-y) \dot{x} \dot{y} + \dot{x}^2 \cdot (t-y)^2 - &= 0 -\end{align*} -Im letzten Ausdruck erkennt man das Muster einer binomischen Formel, was den Ausdruck wesentlich vereinfacht: -\begin{align*} - x^2 \dot{y}^2 + 2 \cdot x \dot{y} \cdot (t-y) \dot{x} + (t-y)^2 \dot{x}^2 - &= 0 \\ + = \sqrt{x^2 + (t-y)^2}. + \label{lambertw:eqOhneSkalarprod} +\end{equation} +Im letzten Schritt, fällt die Nützlichkeit des Skalarproduktes in der Verfolgungsgleichung \eqref{lambertw:pursuerDGL} markant auf. Anstatt zwei gekoppelte Differentialgleichungen zu erhalten, eine für die \(x\) und die andere für die \(y\)-Komponente, erhält man einen einzigen Ausdruck, was in der Regel mit weniger Lösungsaufwand verbunden ist. + +\subsubsection{Quadrieren und Gruppieren + \label{lambertw:subsubsection:QuadUndGrup}} +Mit der Quadratwurzel in \ref{lambertw:eqOhneSkalarprod} kann man nichts anfangen, sie steht nur im Weg, also muss man sie loswerden. Wenn man dies macht, kann \eqref{lambertw:eqOhneSkalarprod} auf folgende Form gebracht werden: +\begin{equation} + \left(\dot{x}^2-1\right) \cdot x^2 -2x \left(t-y\right) \dot{x}\dot{y} + \left(\dot{y}^2-1\right) \cdot \left(t-y\right)^2 + =0. + \label{lambertw:eqOhneWurzel} +\end{equation} +Diese Form mag auf den ersten Blick nicht gerade nützlich sein, aber man kann sie mit einer Substitution weiter vereinfachen. + +\subsubsection{Wichtige Substitution + \label{lambertw:subsubsection:WichtSubst}} +Wenn man beachtet, dass die Geschwindigkeit des Verfolgers konstant und gleich 1 ist, dann kann man folgende Gleichung aufstellen: +\begin{equation} + \dot{x}^2 + \dot{y}^2 + = 1. + \label{lambertw:eqGeschwSubst} +\end{equation} +Umformungen der Gleichung \eqref{lambertw:eqGeschwSubst} können in \eqref{lambertw:eqOhneWurzel} erkannt werden. Ersetzt führen sie zu folgendem Ausdruck: +\begin{equation} + \dot{y}^2 \cdot x^2 +2x \left(t-y\right) \dot{x}\dot{y} + \dot{x}^2 \cdot \left(t-y\right)^2 + =0. + \label{lambertw:eqGeschwSubstituiert} +\end{equation} +Diese unscheinbare Substitution führt dazu, dass weitere Vereinfachungen durchgeführt werden können. + +\subsubsection{Binom erkennen und vereinfachen + \label{lambertw:subsubsection:BinomVereinfach}} +Versteckt im Ausdruck \eqref{lambertw:eqGeschwSubstituiert} befindet sich die erste binomische Formel, welche zu folgender Gleichung führt: +\begin{equation} (x \dot{y} + (t-y) \dot{x})^2 - &= 0 -\end{align*} -Wenn man nun beidseitig die Quadratwurzel zieht, dann ergibt sich im Vergleich zu \eqref{lambertw:eq1BspVerfolgKurve} eine wesentlich einfachere DGL: + = 0. + \label{lambertw:eqAlgVerinfacht} +\end{equation} +Da der linke Term gleich Null ist, muss auch der Inhalt des Quadrates gleich Null sein, somit folgt eine weitere Vereinfachung, welche zu einer im Vergleich zu \eqref{lambertw:eqOhneSkalarprod} wesentlich einfacheren DGL führt: \begin{equation} x \dot{y} + (t-y) \dot{x} - = 0 - \label{lambertw:equation5} + = 0. + \label{lambertw:eqGanzVerinfacht} \end{equation} -Um die Ableitung nach der Zeit wegzubringen, wird beidseitig mit \(\dot{x}\) dividiert, wobei \(\frac{\dot{y}}{\dot{x}} = \frac{dy}{dt}/\frac{dx}{dt} = \frac{dy}{dx}\) entspricht. -\[ +Kompakt, ohne Wurzelterme und Quadrate, nur elementare Operationen und Ableitungen. Nun stellt sich die Frage wie es weiter gehen soll, bei der Gleichung \eqref{lambertw:eqGanzVerinfacht} scheinen keine weiteren Vereinfachungen möglich zu sein. Wir brauchen einen neuen Ansatz, um unser Ziel einer möglichen Lösung zu verfolgen. + +\subsection{Zeitabhängigkeit loswerden + \label{lambertw:subsection:ZeitabhLoswerden}} +Der nächste logischer Schritt scheint irgendwie die Zeitabhängigkeit in der Gleichung \eqref{lambertw:eqGanzVerinfacht} loszuwerden, aber wieso? Nun, wie am Anfang von Abschnitt \ref{lambertw:subsection:DGLvereinfach} beschrieben, suchen wir eine Lösung der Art \(y(x)\), dies ist natürlich erst möglich wenn wir die Abhängigkeit nach \(t\) eliminieren können. + +\subsubsection{Zeitliche Ableitungen loswerden + \label{lambertw:subsubsection:ZeitAbleit}} +Der erste Schritt auf dem Weg zur Funktion \(y(x)\), ist es die zeitlichen Ableitungen los zu werden, dafür wird \eqref{lambertw:eqGanzVerinfacht} beidseitig mit \(\dot{x}\) dividiert, was erlaubt ist, weil diese Änderung ungleich Null ist: +\begin{equation} x \frac{\dot{y}}{\dot{x}} + (t-y) \frac{\dot{x}}{\dot{x}} - = 0 -\] -Nach dem Kürzen und Vereinfachen ergibt sich folgende DGL: + = 0. + \label{lambertw:eqVorKeineZeitAbleit} +\end{equation} +Der Grund dafür ist, dass +\begin{equation} + \frac{\displaystyle\dot{y}}{\displaystyle\dot{x}} + = \frac{\displaystyle\frac{dy}{dt}}{\displaystyle\frac{dx}{dt}} + = \frac{dy}{dx} + = y^{\prime}, + \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 \begin{equation} x y^{\prime} + t - y - = 0 + = 0. \label{lambertw:DGLmitT} \end{equation} -Hier wäre es passend wenn man die Abhängigkeit nach \(t\) komplett wegbringen könnte. Um dies zu erreichen muss man auf die Definition der Bogenlänge aus Analysis 2 zurückgreifen: + +\subsubsection{Variable \(t\) eliminieren + \label{lambertw:subsubsection:ZeitAbleit}} +Hier wäre es natürlich passend, wenn man die Abhängigkeit nach \(t\) komplett wegbringen könnte. Um dies zu erreichen, muss man auf die Definition der Bogenlänge zurückgreifen. +Die Strecke \(s\) entspricht \begin{equation} s = v \cdot t = + 1 \cdot t + = t = - \int_{x_0}^{x_{end}}\sqrt{1+y^{\prime\, 2}} \: dx + \int_{\displaystyle x_0}^{\displaystyle x_{\text{end}}}\sqrt{1+y^{\prime\, 2}} \: dx. \label{lambertw:eqZuBogenlaenge} \end{equation} -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. Wenn man nun \eqref{lambertw:eqZuBogenlaenge} in die DGL \eqref{lambertw:DGLmitT} einfügt, dann ergibt sich folgender Ausdruck: + +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. + +Wenn man nun \eqref{lambertw:eqZuBogenlaenge} in die DGL \eqref{lambertw:DGLmitT} einfügt, dann ergibt sich folgender Ausdruck: \begin{equation} x y^{\prime} - \int\sqrt{1+y^{\prime\, 2}} \: dx - y - = 0 + = 0. \label{lambertw:DGLohneT} \end{equation} -Um das Integral los zu werden, leitet man den vorherigen Ausdruck \eqref{lambertw:DGLohneT} nach \(x\) ab: -\begin{align*} +Um das Integral los zu werden, leitet man den vorherigen Ausdruck \eqref{lambertw:DGLohneT} nach \(x\) ab und erhaltet folgende DGL zweiter Ordnung \eqref{lambertw:DGLohneInt}: +\begin{align} y^{\prime}+ xy^{\prime\prime} - \sqrt{1+y^{\prime\, 2}} - y^{\prime} - &= 0 \\ + &= 0, \\ xy^{\prime\prime} - \sqrt{1+y^{\prime\, 2}} - &= 0 -\end{align*} -Mittels der Substitution \(y^{\prime} = u\) kann vorherige DGL in eine erster Ordnung umgewandelt werden: -\begin{equation*} + &= 0. + \label{lambertw:DGLohneInt} +\end{align} +Nun sind wir unserem Ziel einen weiteren Schritt näher. Die Gleichung \eqref{lambertw:DGLohneInt} mag auf den ersten Blick nicht gerade einfach sein, aber im Nächsten Abschnitt werden wir sehen, dass sie relativ einfach zu lösen ist. + +\subsection{Differentialgleichung lösen + \label{lambertw:subsection:DGLloes}} +Die Gleichung \eqref{lambertw:DGLohneInt} ist eine DGL zweiter Ordnung, in der \(y\) nicht vorkommt. Sie kann mittels der Substitution \(y^{\prime} = u\) in eine DGL erster Ordnung umgewandelt werden: +\begin{equation} xu^{\prime} - \sqrt{1+u^2} - = 0 + = 0. \label{lambertw:DGLmitU} -\end{equation*} -Welche mittels Separation gelöst werden kann: -\begin{align*} - arsinh(u) + C_L - &= - ln(x) + C_R \\ - arsinh(u) +\end{equation} +Diese Gleichung ist separierbar, was sie viel handlicher macht. In der separierten Form +\begin{equation} + \int{\frac{1}{\sqrt{1+u^2}}\:du} + = + \int{\frac{1}{x}\:dx}, +\end{equation} +lässt sich die Gleichung mittels einer Integrationstabelle sehr rasch lösen. +Mit dem Ergebnis: +\begin{align} + \operatorname{arsinh}(u) &= - ln(x) + C \\ + \operatorname{ln}(x) + C, \\ u &= - sinh(ln(x) + C) -\end{align*} -In dem man die Substitution rückgängig macht, erhält man eine weitere DGL erster Ordnung die bereits separiert ist: + \operatorname{sinh}(\operatorname{ln}(x) + C). + \label{lambertw:loesDGLmitU} +\end{align} +Wenn man in \eqref{lambertw:loesDGLmitU} die Substitution rückgängig macht, erhält man folgende DGL erster Ordnung, die bereits separiert ist: \begin{equation} y^{\prime} = - sinh(ln(x) + C) + \operatorname{sinh}(\operatorname{ln}(x) + C). + \label{lambertw:loesDGLmitY} \end{equation} -Diese kann mit den selben Methoden gelöst werden, diesmal in Kombination mit der exponentiellen Definition der \(sinh\)-Funktion: -\begin{align*} +Ersetzt man den \(\operatorname{sinh}\) mit seiner exponentiellen Definition \(\operatorname{sinh}(x)=\frac{1}{2}(e^x-e^{-x})\), so resultiert auf sehr einfache Art folgende Lösung für \eqref{lambertw:loesDGLmitY}: +\begin{equation} y - &= - \int sinh(ln(x) + C) \\ - &= - \int \frac{1}{2} (e^{ln(x)+C} - e^{-(ln(x)+C)}) \\ - &= - \frac{e^C}{4} x^2 - \frac{ln(x)}{2 \cdot e^C} + C_1 \\ - &= - C_1 + C_2 x^2 - \frac{ln(x)}{8 \cdot C_2} -\end{align*} + = + C_1 + C_2 x^2 - \frac{\operatorname{ln}(x)}{8 \cdot C_2}. +\end{equation} +Nun haben wir eine Lösung, aber wie es immer mit Lösungen ist, stellt sich die Frage, ob sie überhaupt plausibel ist. Dieser Frage werden wir im nächsten Abschnitt nachgehen. + +\subsection{Lösung analysieren + \label{lambertw:subsection:LoesAnalys}} \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{ln(x)}-Teil entspricht. + \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. \label{lambertw:BildFunkLoes} } \end{figure} @@ -161,92 +214,210 @@ Das Resultat, wie ersichtlich, ist folgende Funktion \eqref{lambertw:funkLoes} w \begin{equation} {\color{red}{y(x)}} = - C_1 + C_2 {\color{darkgreen}{x^2}} {\color{blue}{-}} \frac{\color{blue}{ln(x)}}{8 \cdot C_2} + C_1 + C_2 {\color{darkgreen}{x^2}} {\color{blue}{-}} \frac{\color{blue}{\operatorname{ln}(x)}}{8 \cdot C_2}. \label{lambertw:funkLoes} \end{equation} -Für die Koeffizienten \(C_1\) und \(C_2\) ergibt sich ein Anfangswertproblem, welches für deren Bestimmung gelöst werden muss. Zuerst soll aber eine qualitative Intuition, oder Idee für das Aussehen der Funktion \(\bf{y(x)}\) geschaffen werden: +Für die Koeffizienten \(C_1\) und \(C_2\) ergibt sich ein Anfangswertproblem, welches für deren Bestimmung gelöst werden muss. Zuerst soll aber eine qualitative Intuition oder Idee für das Aussehen der Funktion \(y(x)\) geschaffen werden: \begin{itemize} \item - Für grosse \(x\)-Werte welche in der Regel in der Nähe von \(x_0\) sein sollten, ist der quadratisch Term in der Funktion dominant und somit für immer kleiner werdende \(x\) geht der Verfolger in Richtung \(y\)-Achse wobei seine Steigung stetig sinkt, was Sinn macht wenn der Verfolgte entlang der \(y\)-Achse steigt. + Für grosse \(x\)-Werte, welche in der Regel in der Nähe von \(x_0\) sein sollten, ist der quadratisch Term in der Funktion \eqref{lambertw:funkLoes} dominant. + \item + Für immer kleiner werdende \(x\) geht der Verfolger in Richtung \(y\)-Achse, wobei seine Steigung stetig sinkt, was Sinn macht wenn der Verfolgte entlang der \(y\)-Achse steigt. Irgendwann werden Verfolger und Ziel auf gleicher Höhe sein, also gleiche \(y\) aber verschiedene \(x\)-Koordinate besitzen. \item - Für \(x\)-Werte in der Nähe von \(0\) ist das asymptotische Verhalten des Logarithmus dominant, dies macht auch Sinn da sich der Verfolgte auf der \(y\)-Achse bewegt und der Verfolger im nachgeht. + Für \(x\)-Werte in der Nähe von \(0\) ist das asymptotische Verhalten des Logarithmus dominant, dies macht auch Sinn, da sich der Verfolgte auf der \(y\)-Achse bewegt und der Verfolger ihm nachgeht. \item - Aufgrund des Monotoniewechsels in der Kurve muss es auch ein Minimum aufweisen. Es stellt sich nun die Frage: Wo befindet sich dieser Punkt? Durch eine logische Überlegung kann eine Abschätzung darüber getroffen werden und zwar, dass dieser dann entsteht, wenn \(A\) und \(P\) die gleiche \(y\)-Koordinaten besitzen. In diesem Moment ändert die Richtung der \(y\)-Komponente der Geschwindigkeit und somit auch sein Vorzeichen. + Aufgrund des Monotoniewechsels in der Kurve \eqref{lambertw:funkLoes} muss diese auch ein Minimum aufweisen. Es stellt sich nun die Frage: Wo befindet sich dieser Punkt? + Eine Abschätzung darüber kann getroffen werden und zwar, dass dieser dann entsteht, wenn \(A\) und \(P\) die gleiche \(y\)-Koordinaten besitzen. In diesem Moment ändert die Richtung der \(y\)-Komponente der Geschwindigkeit des Verfolgers, somit auch sein Vorzeichen und dadurch entsteht auch das Minimum. \end{itemize} -Alle diese Eigenschafte stimmen mit dem überein, was man von einer Kurve dieser Art erwarten würde, siehe \ref{lambertw:BildFunkLoes}. Nun stellt sich die Frage wie die Kurve wirklich aussieht, dies wird durch das Einsetzen folgender Anfangsbedingungen erreicht: +Alle diese Eigenschaften stimmen mit dem überein, was man von einer Kurve dieser Art erwarten würde, welche durch die Grafik \ref{lambertw:BildFunkLoes} repräsentiert wurde. + +\subsection{Anfangswertproblem + \label{lambertw:subsection:AllgLoes}} +In diesem Abschnitt soll eine Parameterfunktion hergeleitet werden, bei der jeder beliebige Anfangspunkt im ersten Quadranten eingesetzt werden kann, ausser der Ursprung im Koordinatensystem. Diese Aufgabe erfordert ein Anfangswertproblem. + +Das Lösen des Anfangswertproblems ist ein Problem aus der Algebra, auf welches hier nicht explizit eingegangen wird. Zur Vollständigkeit und Nachvollziehbarkeit, wird aber das Gleichungssystem präsentiert, welches notwendig ist, um das Anfangswertproblem zu lösen. + +\subsubsection{Anfangswerte bestimmen + \label{lambertw:subsubsection:Anfangswerte}} +Der erste Schritt auf dem Weg zur gesuchten Parameterfunktion ist, die Anfangswerte \eqref{lambertw:eq1Anfangswert} zu definieren. +Die Anfangswerte sind: \begin{equation} y(x)\big \vert_{t=0} = y(x_0) = y_0 - \:;\: + \label{lambertw:eq1Anfangswert} +\end{equation} +und +\begin{equation} \frac{dy}{dx}\bigg \vert_{t=0} = y^{\prime}(x_0) = - \frac{y_0}{x_0} + \frac{y_0}{x_0}. + \label{lambertw:eq2Anfangswert} \end{equation} -Leitet man die Funktion \eqref{lambertw:funkLoes} nach x ab und setzt die Anfangsbedingungen ein, dann ergibt sich folgendes Gleichungssystem: +Der zweite Anfangswert \eqref{lambertw:eq2Anfangswert} mag nicht grade offensichtlich sein. Die Erklärung dafür ist aber simpel: Der Verfolger wird sich zum Zeitpunkt \(t=0\) in Richtung Koordinatenursprung bewegen wollen, wo sich das Ziel befindet. Somit entsteht das Steigungsdreieck mit \(\Delta x = x_0\) und \(\Delta y = y_0\). + +\subsubsection{Gleichungssystem aufstellen und lösen + \label{lambertw:subsubsection:GlSys}} +Wenn man die Anfangswerte \eqref{lambertw:eq1Anfangswert} und \eqref{lambertw:eq2Anfangswert} in die Gleichung \eqref{lambertw:funkLoes} und deren Ableitung \(y^{\prime}(x)\) einsetzt, dann ergibt sich folgendes Gleichungssystem: \begin{subequations} \begin{align} y_0 &= - C_1 + C_2 x^2_0 - \frac{ln(x_0)}{8 \cdot C_2} \\ + C_1 + C_2 x^2_0 - \frac{\operatorname{ln}(x_0)}{8 \cdot C_2}, \\ \frac{y_0}{x_0} &= - 2 \cdot C_2 x_0 - \frac{ln(x_0)}{8 \cdot C_2} + 2 \cdot C_2 x_0 - \frac{1}{8 \cdot C_2 \cdot x_0}. + \end{align} + \label{lambertw:eqGleichungssystem} +\end{subequations} +Damit die gesuchte Funktion im ersten Quadranten bleibt, werden nur die positiven Lösungen des Gleichungssystems gewählt, welche wie folgt aussehen: +\begin{subequations} + \begin{align} + \label{lambertw:eqKoeff1} + C_1 + &= + \frac{2\cdot\operatorname{ln}(x_0)\left(\sqrt{x_0^2 + y_0^2} - y_0 \right) - \sqrt{x_0^2 + y_0^2} + 3 y_0}{4}, \\ + \label{lambertw:eqKoeff2} + C_2 + &= + \frac{\sqrt{x_0^2 + y_0^2} + y_0}{4x_0^2}. \end{align} \end{subequations} -... Mit folgenden Formeln geht es weiter: -\begin{align*} +\subsubsection{Gesuchte Parameterfunktion aufstellen + \label{lambertw:subsubsection:ParamFunk}} +Wenn man die Koeffizienten \eqref{lambertw:eqKoeff1} und \eqref{lambertw:eqKoeff2} in die Funktion \eqref{lambertw:funkLoes} einsetzt, dann ergibt sich nach dem Vereinfachen die gesuchte Parameterfunktion: +\begin{equation} + y(x) + = + \frac{1}{4}\left(\left(y_0+r_0\right)\eta+\left(r_0-y_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: +\begin{equation} \eta - &= - \left(\frac{x}{x_0}\right)^2 - \:;\: + = + \left(\frac{x}{x_0}\right)^2 + \:\:\text{und}\:\: r_0 = - \sqrt{x_0^2+y_0^2} \\ - y - &= - \frac{1}{4}\left(\left(y_0+r_0\right)\eta+\left(r_0-y_0\right)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(r_0-y_0\right)\frac{1}{x}\right) \\ + \sqrt{x_0^2+y_0^2}. +\end{equation} +Diese neue allgemeine Funktion \eqref{lambertw:eqAllgLoes} weist immer noch die selbe Struktur wie die vorher hergeleitete Funktion \eqref{lambertw:funkLoes} auf. Sie enthält einerseits einen quadratischen Teil, der in \(\eta\) enthalten ist, anderseits den \(\operatorname{ln}\)-Teil. Aus dieser Ähnlichkeit kann geschlossen werden, dass sich \eqref{lambertw:eqAllgLoes} auf eine ähnliche Art verhalten wird. + +Nun sind wir soweit, dass wir eine \(y(x)\)-Beziehung für beliebige Anfangswerte darstellen können, unser erstes Ziel wurde erreicht. Wir können aber einen Schritt weiter gehen und uns Fragen: Ist es analytisch möglich herauszufinden, wo sich Verfolger und Ziel zu jedem Zeitpunkt befinden? Dieser Frage werden wir im nächsten Abschnitt nachgehen. + +\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. + +\subsubsection{Zeitabhängigkeit wiederherstellen + \label{lambertw:subsubsection:ZeitabhWiederherst}} +Der erste Schritt ist es herauszufinden, wie die Zeitabhängigkeit wieder hineingebracht werden kann. Dafür greifen wir auf die letzte Gleichung zu, in welcher \(t\) noch enthalten war, und zwar DGL \eqref{lambertw:DGLmitT}, welche zur Übersichtlichkeit hier nochmals aufgeführt wird: +\begin{equation} + x y^{\prime} + t - y + = 0. + \label{lambertw:eqDGLmitTnochmals} +\end{equation} +Wie in \eqref{lambertw:eqDGLmitTnochmals} zu sehen ist, werden \(y\) und deren Ableitung \(y^{\prime}\) benötigt, diese sind: +\begin{subequations} + \begin{align} + y + &= + \frac{1}{4}\left(\left(y_0+r_0\right)\eta+\left(r_0-y_0\right)\operatorname{ln}\left(\eta\right)-r_0+3y_0\right), \\ + \label{lambertw:eqFunkUndAbleit1} + y^\prime + &= + \frac{1}{2}\left(\left(y_0+r_0\right)\frac{x}{x_0^2}+\left(r_0-y_0\right)\frac{1}{x}\right). + \end{align} + \label{lambertw:eqFunkUndAbleit} +\end{subequations} + +Wenn man diese Gleichungen \ref{lambertw:eqFunkUndAbleit} in die DGL \label{lambertw:eqDGLmitTnochmals} einfügt, vereinfacht und nach \(t\) auflöst, dann ergibt sich folgenden Ausdruck: +\begin{equation} -4t - &= - \left(y_0+r_0\right)\left(\eta-1\right)+\left(r_0-y_0\right)ln\left(\eta\right) \\ + = + \left(y_0+r_0\right)\left(\eta-1\right)+\left(r_0-y_0\right)\operatorname{ln}\left(\eta\right). + \label{lambertw:eqFunkUndAbleitEingefuegt} +\end{equation} + +\subsubsection{Umformungen die zur Funktion nach der Zeit führen + \label{lambertw:subsubsection:UmformBisZumZiel}} +Mit dem Ausdruck \eqref{lambertw:eqFunkUndAbleitEingefuegt}, welcher Terme mit \(x\) und \(t\) verbindet, kann nun nach der gesuchten Variable \(x\) aufgelöst werden. + + +In einem nächsten Schritt wird alles mit \(x\) auf die eine Seite gebracht, der Rest auf die andere Seite und anschliessend beidseitig exponentiert, was wie folgt aussieht: +\begin{align} -4t+\left(y_0+r_0\right) &= - \left(y_0+r_0\right)\eta+\left(r_0-y_0\right)ln\left(\eta\right) \\ - e^{-4t+\left(y_0+r_0\right)} - &= - e^{\left(y_0+r_0\right)\eta}\cdot\eta^{\left(r_0-y_0\right)} \\ - e^{\frac{-4t}{r_0-y_0}+\frac{y_0+r_0}{r_0-y_0}} + \left(y_0+r_0\right)\eta+\left(r_0-y_0\right)\operatorname{ln}\left(\eta\right), \\ + e^{\displaystyle -4t+\left(y_0+r_0\right)} &= - e^{\frac{y_0+r_0}{r_0-y_0}\eta}\cdot\eta\ \\ + e^{\displaystyle \left(y_0+r_0\right)\eta}\cdot\eta^{\displaystyle \left(r_0-y_0\right)}. + \label{lambertw:eqMitExp} +\end{align} +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: +\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 folgender Substitution gelöst werden: +\begin{equation} \chi - &= - \frac{y_0+r_0}{r_0-y_0}; \cdot\chi \\ - \chi\cdot e^{\chi-\frac{4t}{r_0-y_0}} - &= - \chi\eta\cdot e^{\chi\eta} \\ - W\left(\chi\cdot e^{\chi-\frac{4t}{r_0-y_0}}\right) - &= - \chi\eta \\ - \frac{W\left(\chi\cdot e^{\chi-\frac{4t}{r_0-y_0}}\right)}{\chi} - &= - \eta \\ - \frac{W\left(\chi\cdot e^{\chi-\frac{4t}{r_0-y_0}}\right)}{\chi} - &= - \left(\frac{x}{x_0}\right)^2 \\ - x\left(t\right) - &= - \sqrt{\frac{W\left(\chi\cdot e^{\chi-\frac{4t}{r_0-y_0}}\right)}{\chi}} -\end{align*} + = + \frac{y_0+r_0}{r_0-y_0}. + \label{lambertw:eqChiSubst} +\end{equation} +Es gäbe natürlich andere Substitutionen wie z.B. +\[\displaystyle \chi=\frac{y_0+r_0}{r_0-y_0}\cdot\eta,\] +die auf dasselbe Ergebnis führen würden, aber \eqref{lambertw:eqChiSubst} liefert in einem Schritt die kompakteste Lösung. Also fahren wir mit der Substitution \eqref{lambertw:eqChiSubst} weiter, setzen diese in die Gleichung \eqref{lambertw:eqOhnePotenz} ein und multiplizieren beidseitig mit \(\chi\). Daraus erhalten wir folgende Gleichung: +\begin{equation} + \chi\cdot \operatorname{exp}\left(\displaystyle \chi-\frac{4t}{r_0-y_0}\right) + = + \chi\eta\cdot e^{\displaystyle \chi\eta}. + \label{lambertw:eqNachSubst} +\end{equation} +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 folgenden Ausdruck: +\begin{equation} + W\left(\chi\cdot \operatorname{exp}\left(\displaystyle \chi-\frac{4t}{r_0-y_0}\right)\right) + = + \chi\eta. +\end{equation} +Nach dem Auflösen nach \(x\) welches in \(\eta\) enthalten ist, erhalten wir die gesuchte \(x(t)\)-Funktion \eqref{lambertw:eqFunkXNachT}. Dieses \(x(t)\) in Kombination mit \eqref{lambertw:eqFunkUndAbleit1} liefert die Position des Verfolgers zu jedem Zeitpunkt. Das Gleichungspaar \eqref{lambertw:eqFunktionenNachT}, besteht aus folgenden Gleichungen: +\begin{subequations} + \begin{align} + \label{lambertw:eqFunkXNachT} + x(t) + &= + x_0\cdot\sqrt{\frac{W\left(\chi\cdot \operatorname{exp}\left(\displaystyle \chi-\frac{4t}{r_0-y_0}\right)\right)}{\chi}}, \\ + \label{lambertw:eqFunkYNachT} + y(x(t)) + = + y(t) + &= + \frac{1}{4}\left(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(r_0-y_0\right)\operatorname{ln}\left(\left(\frac{x(t)}{x_0}\right)^2\right)-r_0+3y_0\right). + \end{align} + \label{lambertw:eqFunktionenNachT} +\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, dass 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(t) + y = - \frac{1}{4}\left(\left(y_0+r_0\right)\frac{W\left(\chi\cdot e^{\chi\ -\ \frac{4t}{r_0-y_0}}\right)}{\chi}+\left(r_0-y_0\right)\cdot\mathrm{ln}\ \left(\frac{W\left(\chi\cdot e^{\chi\ -\ \frac{4t}{r_0-y_0}}\right)}{\chi}\right)-r_0+3y_0\right) - \label{lambertw:funkNachT} + p(x) +\operatorname{ln}(x), + \label{lambertw:eqEinsatzLambW} \end{equation} +bei welcher \(p(x)\) eine beliebige Potenz von \(x\) darstellt. + +Jedes Mal wenn \(x\) gesucht ist und in einer Struktur der Art \eqref{lambertw:eqEinsatzLambW} vorkommt, dann kann mit ein paar Umformungen die Struktur \(f(x)e^{f(x)}\) erzielt werden. Wie bereits in diesem Abschnitt \ref{lambertw:subsection:FunkNachT} gezeigt wurde, kann \(x\) nun mittels der \(W(x)\)-Funktion aufgelöst werden. Erstaunlicherweise ist \eqref{lambertw:eqEinsatzLambW} eine Struktur die oftmals vorkommt, was die Lambert-\(W\)-Funktion so wichtig macht.
\ No newline at end of file |