From ff4ef37bd6529f26066ca8df8dd9b98fed71577a Mon Sep 17 00:00:00 2001 From: Marc Benz Date: Thu, 12 May 2022 15:46:25 +0200 Subject: first changes --- buch/papers/transfer/references.bib | 27 ++++++++++++++++++-- buch/papers/transfer/teil0.tex | 18 +++----------- buch/papers/transfer/teil1.tex | 2 +- buch/papers/transfer/teil2.tex | 38 ++++++---------------------- buch/papers/transfer/teil3.tex | 49 ++++++++++++++----------------------- 5 files changed, 56 insertions(+), 78 deletions(-) diff --git a/buch/papers/transfer/references.bib b/buch/papers/transfer/references.bib index 75f5d68..181682c 100644 --- a/buch/papers/transfer/references.bib +++ b/buch/papers/transfer/references.bib @@ -4,6 +4,30 @@ % (c) 2020 Autor, Hochschule Rapperswil % + + +@article{transfer:DBLP:journals/corr/abs-1909-07729, + author = {Abhisek Kundu and + Sudarshan Srinivasan and + Eric C. Qin and + Dhiraj D. Kalamkar and + Naveen K. Mellempudi and + Dipankar Das and + Kunal Banerjee and + Bharat Kaul and + Pradeep Dubey}, + title = {K-TanH: Hardware Efficient Activations For Deep Learning}, + journal = {CoRR}, + volume = {abs/1909.07729}, + year = {2019}, + url = {http://arxiv.org/abs/1909.07729}, + eprinttype = {arXiv}, + eprint = {1909.07729}, + timestamp = {Sat, 04 Apr 2020 17:18:32 +0200}, + biburl = {https://dblp.org/rec/journals/corr/abs-1909-07729.bib}, + bibsource = {dblp computer science bibliography, https://dblp.org} +} + @online{transfer:bibtex, title = {BibTeX}, url = {https://de.wikipedia.org/wiki/BibTeX}, @@ -31,5 +55,4 @@ volume = 47, pages = {607--627}, url = {https://doi.org/10.1016/j.acha.2017.11.004} -} - +} \ No newline at end of file diff --git a/buch/papers/transfer/teil0.tex b/buch/papers/transfer/teil0.tex index 19d4961..4bec5bd 100644 --- a/buch/papers/transfer/teil0.tex +++ b/buch/papers/transfer/teil0.tex @@ -3,20 +3,10 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 0\label{transfer:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{transfer:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. +\section{Einleitung\label{transfer:section:teil0}} +\rhead{Einleitung} + + -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. diff --git a/buch/papers/transfer/teil1.tex b/buch/papers/transfer/teil1.tex index c60f1ea..611e1ea 100644 --- a/buch/papers/transfer/teil1.tex +++ b/buch/papers/transfer/teil1.tex @@ -3,7 +3,7 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 1 +\section{Padé-Approximation \label{transfer:section:teil1}} \rhead{Problemstellung} Sed ut perspiciatis unde omnis iste natus error sit voluptatem diff --git a/buch/papers/transfer/teil2.tex b/buch/papers/transfer/teil2.tex index ce8f798..d79d80c 100644 --- a/buch/papers/transfer/teil2.tex +++ b/buch/papers/transfer/teil2.tex @@ -3,38 +3,16 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 2 +\section{MiniMax-Polinom \label{transfer:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +\rhead{MiniMax-Polinom} -\subsection{De finibus bonorum et malorum + + +\subsection{Problemstellung \label{transfer:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +\[ +\max _{a \leq x \leq b}|\operatorname{TanH}(x)-P(x)| +\] diff --git a/buch/papers/transfer/teil3.tex b/buch/papers/transfer/teil3.tex index f707587..4464875 100644 --- a/buch/papers/transfer/teil3.tex +++ b/buch/papers/transfer/teil3.tex @@ -3,38 +3,25 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 3 +\section{K-Tanh \label{transfer:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +\rhead{K-Tanh} -\subsection{De finibus bonorum et malorum -\label{transfer:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +\subsection{Algorithmus +\label{transfer:subsection:Ktanh-Algorithmus}} +\cite{transfer:DBLP:journals/corr/abs-1909-07729} +\subsubsection{Vereinfacht +\label{transfer:subsection:Ktanh-Algorithmus:Vereinfacht}} +Negative Werte werden nicht separat behandelt. Diese werden dank der Syymertrie um den Ursprung mit einem einfachen Vorzeichenwechsel aus den positiven berechnet. +Für $x < 0.25$ gilt $y = x$. +Ist $x > 3.75$ gitl $y = 1$. +Ist der Wert zwischen diesen Grenzen, werden über einen Lookuptable geeignete Werte gefunden um aus dem $x$ die Approximation des Tanh zu berechnen. +Dafür werden eine bestimmte Anzahl LSBs des Exponenten und MSBs der Mantisse zu einem Index $t$ zusammengestzt. Der dann die Stelle im Lookuptable zeigt. +Damit werden die richtigen Werte für $E_{t}, r_{t}, b_{t}$ aus der Tabelle, die im Vorhinein schon berechnet wurden, ausgelesen. +Damit hat man das $E$ bereits gefunden und mit der Formel +\[ + M_{o} \leftarrow\left(M_{i} \gg r\right)+b +\] +kann das neue $M$ berechnet werden. -- cgit v1.2.1 From 022616988c2a0ad10d83133a330e4194f4d7d4a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Tue, 26 Jul 2022 13:04:26 +0200 Subject: Changed Authors of Sturm-Liouville chapter. --- buch/papers/sturmliouville/main.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buch/papers/sturmliouville/main.tex b/buch/papers/sturmliouville/main.tex index a7d2857..f1a500e 100644 --- a/buch/papers/sturmliouville/main.tex +++ b/buch/papers/sturmliouville/main.tex @@ -6,7 +6,7 @@ \chapter{Thema\label{chapter:sturmliouville}} \lhead{Thema} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Réda Haddouche und Erik Löffler} Ein paar Hinweise für die korrekte Formatierung des Textes \begin{itemize} -- cgit v1.2.1 From 1073ef257d9f511a1d5b6c733401390933c7566a Mon Sep 17 00:00:00 2001 From: haddoucher Date: Tue, 26 Jul 2022 13:12:42 +0200 Subject: change title --- buch/papers/sturmliouville/main.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buch/papers/sturmliouville/main.tex b/buch/papers/sturmliouville/main.tex index f1a500e..9b04219 100644 --- a/buch/papers/sturmliouville/main.tex +++ b/buch/papers/sturmliouville/main.tex @@ -3,7 +3,7 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:sturmliouville}} +\chapter{Sturm-Liouville-Problem\label{chapter:sturmliouville}} \lhead{Thema} \begin{refsection} \chapterauthor{Réda Haddouche und Erik Löffler} -- cgit v1.2.1 From 8d3f5416af1f8a5ce30db4eb275be3cdae67c8eb Mon Sep 17 00:00:00 2001 From: haddoucher Date: Tue, 26 Jul 2022 13:53:12 +0200 Subject: makefile makefile --- buch/papers/sturmliouville/Makefile | 34 +++++++++++++++++++-- buch/papers/sturmliouville/einleitung.tex | 22 +++++++++++++ buch/papers/sturmliouville/main.tex | 2 +- buch/papers/sturmliouville/standalone.tex | 31 +++++++++++++++++++ .../sturmliouville/standalone/standalone.pdf | Bin 0 -> 77574 bytes buch/papers/sturmliouville/teil0.tex | 22 ------------- 6 files changed, 85 insertions(+), 26 deletions(-) create mode 100644 buch/papers/sturmliouville/einleitung.tex create mode 100644 buch/papers/sturmliouville/standalone.tex create mode 100644 buch/papers/sturmliouville/standalone/standalone.pdf delete mode 100644 buch/papers/sturmliouville/teil0.tex diff --git a/buch/papers/sturmliouville/Makefile b/buch/papers/sturmliouville/Makefile index da902e7..70de9fc 100644 --- a/buch/papers/sturmliouville/Makefile +++ b/buch/papers/sturmliouville/Makefile @@ -1,9 +1,37 @@ # -# Makefile -- make file for the paper sturmliouville +# Makefile -- make file for the paper fm # # (c) 2020 Prof Dr Andreas Mueller # -images: - @echo "no images to be created in sturmliouville" +SOURCES := \ + einleitung.tex\ + teil1.tex \ + teil2.tex \ + teil3.tex \ + main.tex +#TIKZFIGURES := \ + tikz/atoms-grid-still.tex \ + +#FIGURES := $(patsubst tikz/%.tex, figures/%.pdf, $(TIKZFIGURES)) + +#.PHONY: images +#images: $(FIGURES) + +#figures/%.pdf: tikz/%.tex +# mkdir -p figures +# pdflatex --output-directory=figures $< + +.PHONY: standalone +standalone: standalone.tex $(SOURCES) #$(FIGURES) + mkdir -p standalone + cd ../..; \ + pdflatex \ + --halt-on-error \ + --shell-escape \ + --output-directory=papers/sturmliouville/standalone \ + papers/sturmliouville/standalone.tex; + cd standalone; \ + bibtex standalone; \ + makeindex standalone; \ No newline at end of file diff --git a/buch/papers/sturmliouville/einleitung.tex b/buch/papers/sturmliouville/einleitung.tex new file mode 100644 index 0000000..ffcb8f3 --- /dev/null +++ b/buch/papers/sturmliouville/einleitung.tex @@ -0,0 +1,22 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Teil 0\label{sturmliouville:section:teil0}} +\rhead{Teil 0} +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam +nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam +erat, sed diam voluptua \cite{sturmliouville:bibtex}. +At vero eos et accusam et justo duo dolores et ea rebum. +Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum +dolor sit amet. + +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam +nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam +erat, sed diam voluptua. +At vero eos et accusam et justo duo dolores et ea rebum. Stet clita +kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit +amet. + + diff --git a/buch/papers/sturmliouville/main.tex b/buch/papers/sturmliouville/main.tex index 9b04219..2a779db 100644 --- a/buch/papers/sturmliouville/main.tex +++ b/buch/papers/sturmliouville/main.tex @@ -27,7 +27,7 @@ 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/sturmliouville/teil0.tex} +\input{papers/sturmliouville/einleitung.tex} \input{papers/sturmliouville/teil1.tex} \input{papers/sturmliouville/teil2.tex} \input{papers/sturmliouville/teil3.tex} diff --git a/buch/papers/sturmliouville/standalone.tex b/buch/papers/sturmliouville/standalone.tex new file mode 100644 index 0000000..cd0e8dc --- /dev/null +++ b/buch/papers/sturmliouville/standalone.tex @@ -0,0 +1,31 @@ +\documentclass{book} + +\def\IncludeBookCover{0} +\input{common/packages.tex} + +% additional packages used by the individual papers, add a line for +% each paper +\input{papers/common/addpackages.tex} + +% workaround for biblatex bug +\makeatletter +\def\blx@maxline{77} +\makeatother +\addbibresource{chapters/references.bib} + +% Bibresources for each article +\input{papers/common/addbibresources.tex} + +% make sure the last index starts on an odd page +\AtEndDocument{\clearpage\ifodd\value{page}\else\null\clearpage\fi} +\makeindex + +%\pgfplotsset{compat=1.12} +\setlength{\headheight}{15pt} % fix headheight warning +\DeclareGraphicsRule{*}{mps}{*}{} + +\begin{document} + \input{common/macros.tex} + \def\chapterauthor#1{{\large #1}\bigskip\bigskip} + \input{papers/sturmliouville/main.tex} +\end{document} diff --git a/buch/papers/sturmliouville/standalone/standalone.pdf b/buch/papers/sturmliouville/standalone/standalone.pdf new file mode 100644 index 0000000..1b5acdb Binary files /dev/null and b/buch/papers/sturmliouville/standalone/standalone.pdf differ diff --git a/buch/papers/sturmliouville/teil0.tex b/buch/papers/sturmliouville/teil0.tex deleted file mode 100644 index ffcb8f3..0000000 --- a/buch/papers/sturmliouville/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{sturmliouville:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{sturmliouville:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - -- cgit v1.2.1 From 08931fd248fc0c14173b5ee9bb34e545d7d4bf03 Mon Sep 17 00:00:00 2001 From: haddoucher Date: Tue, 26 Jul 2022 15:05:25 +0200 Subject: struktur verbessert --- buch/papers/sturmliouville/Makefile | 1 + buch/papers/sturmliouville/beispiele.tex | 40 +++++++++++++++ buch/papers/sturmliouville/eigenschaften.tex | 55 +++++++++++++++++++++ buch/papers/sturmliouville/einleitung.tex | 2 +- buch/papers/sturmliouville/main.tex | 8 +-- ...2008_Chapter_Sturm-Liouville-ProblemeUndSpe.pdf | Bin 0 -> 548591 bytes buch/papers/sturmliouville/teil1.tex | 55 --------------------- buch/papers/sturmliouville/teil2.tex | 40 --------------- buch/papers/sturmliouville/teil3.tex | 40 --------------- 9 files changed, 102 insertions(+), 139 deletions(-) create mode 100644 buch/papers/sturmliouville/beispiele.tex create mode 100644 buch/papers/sturmliouville/eigenschaften.tex create mode 100644 buch/papers/sturmliouville/papers/sturmliouville/2008_Chapter_Sturm-Liouville-ProblemeUndSpe.pdf delete mode 100644 buch/papers/sturmliouville/teil1.tex delete mode 100644 buch/papers/sturmliouville/teil2.tex delete mode 100644 buch/papers/sturmliouville/teil3.tex diff --git a/buch/papers/sturmliouville/Makefile b/buch/papers/sturmliouville/Makefile index 70de9fc..23214a2 100644 --- a/buch/papers/sturmliouville/Makefile +++ b/buch/papers/sturmliouville/Makefile @@ -31,6 +31,7 @@ standalone: standalone.tex $(SOURCES) #$(FIGURES) --halt-on-error \ --shell-escape \ --output-directory=papers/sturmliouville/standalone \ + --extra-mem-top=10000000 \ papers/sturmliouville/standalone.tex; cd standalone; \ bibtex standalone; \ diff --git a/buch/papers/sturmliouville/beispiele.tex b/buch/papers/sturmliouville/beispiele.tex new file mode 100644 index 0000000..7fc3d2c --- /dev/null +++ b/buch/papers/sturmliouville/beispiele.tex @@ -0,0 +1,40 @@ +% +% teil2.tex -- Beispiel-File für teil2 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Teil 2 +\label{sturmliouville:section:teil2}} +\rhead{Teil 2} +Sed ut perspiciatis unde omnis iste natus error sit voluptatem +accusantium doloremque laudantium, totam rem aperiam, eaque ipsa +quae ab illo inventore veritatis et quasi architecto beatae vitae +dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit +aspernatur aut odit aut fugit, sed quia consequuntur magni dolores +eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam +est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci +velit, sed quia non numquam eius modi tempora incidunt ut labore +et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima +veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, +nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure +reprehenderit qui in ea voluptate velit esse quam nihil molestiae +consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla +pariatur? + +\subsection{De finibus bonorum et malorum +\label{sturmliouville:subsection:bonorum}} +At vero eos et accusamus et iusto odio dignissimos ducimus qui +blanditiis praesentium voluptatum deleniti atque corrupti quos +dolores et quas molestias excepturi sint occaecati cupiditate non +provident, similique sunt in culpa qui officia deserunt mollitia +animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis +est et expedita distinctio. Nam libero tempore, cum soluta nobis +est eligendi optio cumque nihil impedit quo minus id quod maxime +placeat facere possimus, omnis voluptas assumenda est, omnis dolor +repellendus. Temporibus autem quibusdam et aut officiis debitis aut +rerum necessitatibus saepe eveniet ut et voluptates repudiandae +sint et molestiae non recusandae. Itaque earum rerum hic tenetur a +sapiente delectus, ut aut reiciendis voluptatibus maiores alias +consequatur aut perferendis doloribus asperiores repellat. + + diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex new file mode 100644 index 0000000..c23c1d6 --- /dev/null +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -0,0 +1,55 @@ +% +% teil1.tex -- Beispiel-File für das Paper +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Teil 1 +\label{sturmliouville:section:teil1}} +\rhead{Problemstellung} +Sed ut perspiciatis unde omnis iste natus error sit voluptatem +accusantium doloremque laudantium, totam rem aperiam, eaque ipsa +quae ab illo inventore veritatis et quasi architecto beatae vitae +dicta sunt explicabo. +Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit +aut fugit, sed quia consequuntur magni dolores eos qui ratione +voluptatem sequi nesciunt +\begin{equation} +\int_a^b x^2\, dx += +\left[ \frac13 x^3 \right]_a^b += +\frac{b^3-a^3}3. +\label{sturmliouville:equation1} +\end{equation} +Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, +consectetur, adipisci velit, sed quia non numquam eius modi tempora +incidunt ut labore et dolore magnam aliquam quaerat voluptatem. + +Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis +suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? +Quis autem vel eum iure reprehenderit qui in ea voluptate velit +esse quam nihil molestiae consequatur, vel illum qui dolorem eum +fugiat quo voluptas nulla pariatur? + +\subsection{De finibus bonorum et malorum +\label{sturmliouville:subsection:finibus}} +At vero eos et accusamus et iusto odio dignissimos ducimus qui +blanditiis praesentium voluptatum deleniti atque corrupti quos +dolores et quas molestias excepturi sint occaecati cupiditate non +provident, similique sunt in culpa qui officia deserunt mollitia +animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. + +Et harum quidem rerum facilis est et expedita distinctio +\ref{sturmliouville:section:loesung}. +Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil +impedit quo minus id quod maxime placeat facere possimus, omnis +voluptas assumenda est, omnis dolor repellendus +\ref{sturmliouville:section:folgerung}. +Temporibus autem quibusdam et aut officiis debitis aut rerum +necessitatibus saepe eveniet ut et voluptates repudiandae sint et +molestiae non recusandae. +Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis +voluptatibus maiores alias consequatur aut perferendis doloribus +asperiores repellat. + + diff --git a/buch/papers/sturmliouville/einleitung.tex b/buch/papers/sturmliouville/einleitung.tex index ffcb8f3..073ba6e 100644 --- a/buch/papers/sturmliouville/einleitung.tex +++ b/buch/papers/sturmliouville/einleitung.tex @@ -3,7 +3,7 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 0\label{sturmliouville:section:teil0}} +\section{Was ist Sturm-Liouville-Problem\label{sturmliouville:section:wa}} \rhead{Teil 0} Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam diff --git a/buch/papers/sturmliouville/main.tex b/buch/papers/sturmliouville/main.tex index 2a779db..0dd3ca5 100644 --- a/buch/papers/sturmliouville/main.tex +++ b/buch/papers/sturmliouville/main.tex @@ -28,9 +28,11 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \end{itemize} \input{papers/sturmliouville/einleitung.tex} -\input{papers/sturmliouville/teil1.tex} -\input{papers/sturmliouville/teil2.tex} -\input{papers/sturmliouville/teil3.tex} +%einleitung "was ist das sturm-liouville-problem" +ng\input{papers/sturmliouville/eigenschaften.tex} +%Eigenschaften von Lösungen eines solchen Problems +\input{papers/sturmliouville/beispiele.tex} +%Beispiele sind: Wärmeleitung in einem Stab, Tschebyscheff-Polynome \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/sturmliouville/papers/sturmliouville/2008_Chapter_Sturm-Liouville-ProblemeUndSpe.pdf b/buch/papers/sturmliouville/papers/sturmliouville/2008_Chapter_Sturm-Liouville-ProblemeUndSpe.pdf new file mode 100644 index 0000000..2237e55 Binary files /dev/null and b/buch/papers/sturmliouville/papers/sturmliouville/2008_Chapter_Sturm-Liouville-ProblemeUndSpe.pdf differ diff --git a/buch/papers/sturmliouville/teil1.tex b/buch/papers/sturmliouville/teil1.tex deleted file mode 100644 index c23c1d6..0000000 --- a/buch/papers/sturmliouville/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{sturmliouville:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{sturmliouville:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{sturmliouville:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{sturmliouville:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{sturmliouville:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/sturmliouville/teil2.tex b/buch/papers/sturmliouville/teil2.tex deleted file mode 100644 index 7fc3d2c..0000000 --- a/buch/papers/sturmliouville/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{sturmliouville:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{sturmliouville:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/sturmliouville/teil3.tex b/buch/papers/sturmliouville/teil3.tex deleted file mode 100644 index 3aa1b40..0000000 --- a/buch/papers/sturmliouville/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{sturmliouville:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{sturmliouville:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - -- cgit v1.2.1 From 12b32e8ba83f426f96364327e013517f3356723a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Tue, 26 Jul 2022 15:12:58 +0200 Subject: added .gitignore to sturm liouville folder --- buch/papers/sturmliouville/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 buch/papers/sturmliouville/.gitignore diff --git a/buch/papers/sturmliouville/.gitignore b/buch/papers/sturmliouville/.gitignore new file mode 100644 index 0000000..f08278d --- /dev/null +++ b/buch/papers/sturmliouville/.gitignore @@ -0,0 +1 @@ +*.pdf \ No newline at end of file -- cgit v1.2.1 From 355193f2047a9c34e6a96281c73ed04cc8287c1e Mon Sep 17 00:00:00 2001 From: haddoucher Date: Tue, 26 Jul 2022 15:36:01 +0200 Subject: =?UTF-8?q?=C3=A4nderungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/sturmliouville/beispiele.tex | 35 +-------------- buch/papers/sturmliouville/eigenschaften.tex | 49 +-------------------- buch/papers/sturmliouville/einleitung.tex | 17 +------ buch/papers/sturmliouville/main.tex | 19 +------- ...2008_Chapter_Sturm-Liouville-ProblemeUndSpe.pdf | Bin 548591 -> 0 bytes 5 files changed, 7 insertions(+), 113 deletions(-) delete mode 100644 buch/papers/sturmliouville/papers/sturmliouville/2008_Chapter_Sturm-Liouville-ProblemeUndSpe.pdf diff --git a/buch/papers/sturmliouville/beispiele.tex b/buch/papers/sturmliouville/beispiele.tex index 7fc3d2c..d5ec3f9 100644 --- a/buch/papers/sturmliouville/beispiele.tex +++ b/buch/papers/sturmliouville/beispiele.tex @@ -3,38 +3,7 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 2 +\section{Beispiele \label{sturmliouville:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{sturmliouville:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - +\rhead{Beispiele} diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex index c23c1d6..6d37612 100644 --- a/buch/papers/sturmliouville/eigenschaften.tex +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -3,53 +3,8 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 1 +\section{Eigenschaften von Lösungen \label{sturmliouville:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{sturmliouville:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{sturmliouville:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{sturmliouville:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{sturmliouville:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. +\rhead{Eigenschaften von Lösungen} diff --git a/buch/papers/sturmliouville/einleitung.tex b/buch/papers/sturmliouville/einleitung.tex index 073ba6e..384a642 100644 --- a/buch/papers/sturmliouville/einleitung.tex +++ b/buch/papers/sturmliouville/einleitung.tex @@ -3,20 +3,7 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Was ist Sturm-Liouville-Problem\label{sturmliouville:section:wa}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{sturmliouville:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. +\section{Was ist Sturm-Liouville-Problem\label{sturmliouville:section:teil0}} +\rhead{Einleitung} diff --git a/buch/papers/sturmliouville/main.tex b/buch/papers/sturmliouville/main.tex index 0dd3ca5..dfd2c38 100644 --- a/buch/papers/sturmliouville/main.tex +++ b/buch/papers/sturmliouville/main.tex @@ -8,24 +8,7 @@ \begin{refsection} \chapterauthor{Réda Haddouche und Erik Löffler} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} + \input{papers/sturmliouville/einleitung.tex} %einleitung "was ist das sturm-liouville-problem" diff --git a/buch/papers/sturmliouville/papers/sturmliouville/2008_Chapter_Sturm-Liouville-ProblemeUndSpe.pdf b/buch/papers/sturmliouville/papers/sturmliouville/2008_Chapter_Sturm-Liouville-ProblemeUndSpe.pdf deleted file mode 100644 index 2237e55..0000000 Binary files a/buch/papers/sturmliouville/papers/sturmliouville/2008_Chapter_Sturm-Liouville-ProblemeUndSpe.pdf and /dev/null differ -- cgit v1.2.1 From 188c4356ae2e9431ce68b2f6332256da915b6ce9 Mon Sep 17 00:00:00 2001 From: haddoucher Date: Tue, 26 Jul 2022 15:37:27 +0200 Subject: Delete standalone.pdf --- buch/papers/sturmliouville/standalone/standalone.pdf | Bin 77574 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 buch/papers/sturmliouville/standalone/standalone.pdf diff --git a/buch/papers/sturmliouville/standalone/standalone.pdf b/buch/papers/sturmliouville/standalone/standalone.pdf deleted file mode 100644 index 1b5acdb..0000000 Binary files a/buch/papers/sturmliouville/standalone/standalone.pdf and /dev/null differ -- cgit v1.2.1 From b781675d44f18b172ebdd24c8c011f75d1d30e6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Tue, 26 Jul 2022 15:40:05 +0200 Subject: Added missing new line in .gitignore file. --- buch/papers/sturmliouville/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buch/papers/sturmliouville/.gitignore b/buch/papers/sturmliouville/.gitignore index f08278d..a136337 100644 --- a/buch/papers/sturmliouville/.gitignore +++ b/buch/papers/sturmliouville/.gitignore @@ -1 +1 @@ -*.pdf \ No newline at end of file +*.pdf -- cgit v1.2.1 From 26ed6c0f968b723821c92606a1c5aa53fa274754 Mon Sep 17 00:00:00 2001 From: haddoucher Date: Tue, 26 Jul 2022 15:44:27 +0200 Subject: Update Makefile --- buch/papers/sturmliouville/Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/buch/papers/sturmliouville/Makefile b/buch/papers/sturmliouville/Makefile index 23214a2..8d3e0af 100644 --- a/buch/papers/sturmliouville/Makefile +++ b/buch/papers/sturmliouville/Makefile @@ -6,9 +6,8 @@ SOURCES := \ einleitung.tex\ - teil1.tex \ - teil2.tex \ - teil3.tex \ + eigenschaften.tex \ + beispiele.tex \ main.tex #TIKZFIGURES := \ -- cgit v1.2.1 From 796f2b607d90c7d2aed4ac38b39830bb2a93cfea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Tue, 26 Jul 2022 16:04:10 +0200 Subject: Added comments on what to work on. --- buch/papers/sturmliouville/beispiele.tex | 2 +- buch/papers/sturmliouville/eigenschaften.tex | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/buch/papers/sturmliouville/beispiele.tex b/buch/papers/sturmliouville/beispiele.tex index d5ec3f9..49703c9 100644 --- a/buch/papers/sturmliouville/beispiele.tex +++ b/buch/papers/sturmliouville/beispiele.tex @@ -6,4 +6,4 @@ \section{Beispiele \label{sturmliouville:section:teil2}} \rhead{Beispiele} - +% Fourier: Erik work diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex index 6d37612..a397dcc 100644 --- a/buch/papers/sturmliouville/eigenschaften.tex +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -6,5 +6,4 @@ \section{Eigenschaften von Lösungen \label{sturmliouville:section:teil1}} \rhead{Eigenschaften von Lösungen} - - +% Erik work -- cgit v1.2.1 From 250488bcb7e08beeb0d2a8b8b50c917aa12fd2a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Wed, 27 Jul 2022 14:08:52 +0200 Subject: Added comment to main.tex pointing to buch.tex in order to compile from sturmlouville folder directly. --- buch/papers/sturmliouville/main.tex | 1 + 1 file changed, 1 insertion(+) diff --git a/buch/papers/sturmliouville/main.tex b/buch/papers/sturmliouville/main.tex index dfd2c38..4956664 100644 --- a/buch/papers/sturmliouville/main.tex +++ b/buch/papers/sturmliouville/main.tex @@ -1,3 +1,4 @@ +% !TeX root = ../../buch.tex % % main.tex -- Paper zum Thema % -- cgit v1.2.1 From c97459b91cd980d3db65c3ca1944d8998ccf7006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Wed, 27 Jul 2022 14:46:02 +0200 Subject: Added file for fourier example. --- buch/papers/sturmliouville/waermeleitung_beispiel.tex | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 buch/papers/sturmliouville/waermeleitung_beispiel.tex diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex new file mode 100644 index 0000000..6cfb50f --- /dev/null +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -0,0 +1,8 @@ +% +% waermeleitung_beispiel.tex -- Beispiel Wärmeleitung in homogenem Stab. +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% + +\subsubsection{Wärmeleitung in einem Homogenen Stab} + -- cgit v1.2.1 From d9bbd9cc6541847425f1fced501b5865e2ba282e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Wed, 27 Jul 2022 14:48:48 +0200 Subject: Adjusted labels and included new file. --- buch/papers/sturmliouville/beispiele.tex | 4 +++- buch/papers/sturmliouville/eigenschaften.tex | 2 +- buch/papers/sturmliouville/main.tex | 4 +--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/buch/papers/sturmliouville/beispiele.tex b/buch/papers/sturmliouville/beispiele.tex index 49703c9..b23593e 100644 --- a/buch/papers/sturmliouville/beispiele.tex +++ b/buch/papers/sturmliouville/beispiele.tex @@ -4,6 +4,8 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Beispiele -\label{sturmliouville:section:teil2}} +\label{sturmliouville:section:examples}} \rhead{Beispiele} + % Fourier: Erik work +\input{papers/sturmliouville/waermeleitung_beispiel.tex} \ No newline at end of file diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex index a397dcc..9f20070 100644 --- a/buch/papers/sturmliouville/eigenschaften.tex +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -4,6 +4,6 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Eigenschaften von Lösungen -\label{sturmliouville:section:teil1}} +\label{sturmliouville:section:solution-properties}} \rhead{Eigenschaften von Lösungen} % Erik work diff --git a/buch/papers/sturmliouville/main.tex b/buch/papers/sturmliouville/main.tex index 4956664..d21b013 100644 --- a/buch/papers/sturmliouville/main.tex +++ b/buch/papers/sturmliouville/main.tex @@ -9,11 +9,9 @@ \begin{refsection} \chapterauthor{Réda Haddouche und Erik Löffler} - - \input{papers/sturmliouville/einleitung.tex} %einleitung "was ist das sturm-liouville-problem" -ng\input{papers/sturmliouville/eigenschaften.tex} +\input{papers/sturmliouville/eigenschaften.tex} %Eigenschaften von Lösungen eines solchen Problems \input{papers/sturmliouville/beispiele.tex} %Beispiele sind: Wärmeleitung in einem Stab, Tschebyscheff-Polynome -- cgit v1.2.1 From 6b0cb2b62e6d5da19dffc90c49d11dea48f5cdbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Wed, 27 Jul 2022 15:12:50 +0200 Subject: Added intro and differential equation to fourier example. --- buch/papers/sturmliouville/main.tex | 2 +- buch/papers/sturmliouville/waermeleitung_beispiel.tex | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/buch/papers/sturmliouville/main.tex b/buch/papers/sturmliouville/main.tex index d21b013..4b5b8af 100644 --- a/buch/papers/sturmliouville/main.tex +++ b/buch/papers/sturmliouville/main.tex @@ -5,7 +5,7 @@ % (c) 2020 Hochschule Rapperswil % \chapter{Sturm-Liouville-Problem\label{chapter:sturmliouville}} -\lhead{Thema} +\lhead{Sturm-Liouville-Problem} \begin{refsection} \chapterauthor{Réda Haddouche und Erik Löffler} diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 6cfb50f..64bf974 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -6,3 +6,15 @@ \subsubsection{Wärmeleitung in einem Homogenen Stab} +In diesem Abschnitt betrachten wir das Problem der Wärmeleitung in einem +homogenen Stab und wie das Sturm-Liouville-Problem bei der Beschreibung dieses +physikalischen Phänomenes auftritt. + +Zunächst wird ein eindimensionaler homogener Stab der Länge $l$ und +Wärmeleitkoeffizient $\kappa$. Somit ergibt sich für das Wärmeleitungsproblem +die partielle Differentialgleichung + +\[ + \frac{\partial u}{\partial t} = + \kappa \frac{\partial^{2}u}{{\partial x}^{2}}. +\] \ No newline at end of file -- cgit v1.2.1 From 3e57ab690350ad4ab447cdd0d263d87c414c96b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Wed, 27 Jul 2022 15:53:20 +0200 Subject: Added boundary condiutions for fourier example. --- .../sturmliouville/waermeleitung_beispiel.tex | 54 ++++++++++++++++++++-- 1 file changed, 49 insertions(+), 5 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 64bf974..243d0e1 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -1,10 +1,11 @@ % % waermeleitung_beispiel.tex -- Beispiel Wärmeleitung in homogenem Stab. +%%%%%%%%%%%%%%%%%%%%%%%%%%% Erster Entwurf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\subsubsection{Wärmeleitung in einem Homogenen Stab} +\subsection{Wärmeleitung in einem Homogenen Stab} In diesem Abschnitt betrachten wir das Problem der Wärmeleitung in einem homogenen Stab und wie das Sturm-Liouville-Problem bei der Beschreibung dieses @@ -12,9 +13,52 @@ physikalischen Phänomenes auftritt. Zunächst wird ein eindimensionaler homogener Stab der Länge $l$ und Wärmeleitkoeffizient $\kappa$. Somit ergibt sich für das Wärmeleitungsproblem -die partielle Differentialgleichung - +die partielle Differentialgleichung \[ \frac{\partial u}{\partial t} = - \kappa \frac{\partial^{2}u}{{\partial x}^{2}}. -\] \ No newline at end of file + \kappa \frac{\partial^{2}u}{{\partial x}^{2}} +\] +wobei der Stab in diesem Fall auf der X-Achse im Intervall $[0,l]$ liegt. + +Da diese Differentialgleichung das Problem allgemein für einen homogenen +Stab beschreibt, werden zusätzliche Bedingungen benötigt, um beispielsweise +die Lösung für einen Stab zu finden, bei dem die Enden auf konstanter +Tempreatur gehalten werden. + +%%%%%%%%%%%%% Randbedingungen für Stab mit konstanten Endtemperaturen %%%%%%%%% + +\subsubsection{Stab mit Enden auf konstanter Temperatur} + +Die Enden des Stabes auf konstanter Temperatur zu halten bedeutet, dass die +Lösungsfunktion $u(t,x)$ bei $x = 0$ und $x = l$ nur die vorgegebene +Temperatur zurückgeben darf. Es folgen nun +\[ + u(t,0) + = + u(t,l) + = + 0 +\] +als Randbedingungen. + +%%%%%%%%%%%%% Randbedingungen für Stab mit isolierten Enden %%%%%%%%%%%%%%%%%%% + +\subsubsection{Stab mit isolierten Enden} + +Bei isolierten Enden des Stabes können belibige Temperaturen für $x = 0$ und +$x = l$ auftreten. In diesem Fall nicht erlaubt ist es, dass Wärme vom Stab +an die Umgebung oder von der Umgebung an den Stab abgegeben wird. + +Aus der Physik ist bekannt, dass Wärme immer von der höheren zur tieferen +Temperatur fliesst. Um Wärmefluss zu unterdrücken, muss also dafür gesorgt +werden, dass am Rand des Stabes keine Temperaturdifferenz existiert oder +indem die partielle Ableitung von $u(t,x)$ nach $x$ bei $x = 0$ und $x = l$ +verschwinden. Somit folgen +\[ + \frac{\partial}{\partial x} u(t, 0) + = + \frac{\partial}{\partial x} u(t, l) + = + 0 +\] +als Randbedingungen. \ No newline at end of file -- cgit v1.2.1 From d71e2db54a66ac9233757253b85eb678cc3e5f78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Wed, 27 Jul 2022 16:19:37 +0200 Subject: Added separation for diff. eq. in fourier example. --- .../sturmliouville/waermeleitung_beispiel.tex | 48 +++++++++++++++++++++- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 243d0e1..cd7a620 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -52,7 +52,7 @@ an die Umgebung oder von der Umgebung an den Stab abgegeben wird. Aus der Physik ist bekannt, dass Wärme immer von der höheren zur tieferen Temperatur fliesst. Um Wärmefluss zu unterdrücken, muss also dafür gesorgt werden, dass am Rand des Stabes keine Temperaturdifferenz existiert oder -indem die partielle Ableitung von $u(t,x)$ nach $x$ bei $x = 0$ und $x = l$ +dass die partiellen Ableitungen von $u(t,x)$ nach $x$ bei $x = 0$ und $x = l$ verschwinden. Somit folgen \[ \frac{\partial}{\partial x} u(t, 0) @@ -61,4 +61,48 @@ verschwinden. Somit folgen = 0 \] -als Randbedingungen. \ No newline at end of file +als Randbedingungen. + +%%%%%%%%%%% Lösung der Differenzialgleichung %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\subsubsection{Lösung der Differenzialgleichung} + +% TODO: Referenz Separationsmethode +% TODO: Formeln sauber in Text einbinden. + +Da die Lösungsfunktion von zwei Variablen abhängig ist, wird als Lösungsansatz +die Separationsmethode verwendet. + +\[ + u(t,x) + = + T(t)X(x) +\] +Dieser Ausdruck wird in die ursprüngliche Differenzialgleichung eingesetzt: +\[ + T^{\prime}(t)X(x) + = + \kappa T(t)X^{\prime \prime}(x) +\] +Nun können alle von $t$ abhängigen Ausdrücke auf die linke Seite, sowie alle +von $x$ abhängigen Ausdrücke auf die rechte Seite gebracht werden und mittels +der neuen Variablen $\mu$ gekoppelt werden: +\[ + \frac{T^{\prime}(t)}{\kappa T(t)} + = + \frac{X^{\prime \prime}(x)}{X(x)} + = + \mu +\] +Durch die Einführung von $\mu$ kann das Problem nun in zwei separate +Differenzialgleichungen aufgeteilt werden: +\[ + T^{\prime}(t) - \kappa \mu T(t) + = + 0 +\] +\[ + X^{\prime \prime}(x) - \mu X(x) + = + 0 +\] -- cgit v1.2.1 From 29fd344738894593ae434a271613815d1aa563ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Thu, 28 Jul 2022 12:56:49 +0200 Subject: Added solutions for heat conduction. --- .../sturmliouville/waermeleitung_beispiel.tex | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index cd7a620..a493749 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -106,3 +106,35 @@ Differenzialgleichungen aufgeteilt werden: = 0 \] + +% TODO: Rechenweg +TODO: Rechenweg... Enden auf konstanter Temperatur: +\[ + u(t,x) + = + \sum_{n=1}^{\infty}a_{n}e^{-\frac{n^{2}\pi^{2}\kappa}{l^{2}}t} + \sin\left(\frac{n\pi}{l}x\right) +\] +\[ + a_{n} + = + \frac{2}{l}\int_{0}^{l}u(0,x)sin\left(\frac{n\pi}{l}x\right) dx +\] + +TODO: Rechenweg... Enden isoliert: +\[ + u(t,x) + = + a_{0} + \sum_{n=1}^{\infty}a_{n}e^{-\frac{n^{2}\pi^{2}\kappa}{l^{2}}t} + \cos\left(\frac{n\pi}{l}x\right) +\] +\[ + a_{0} + = + \frac{1}{l}\int_{0}^{l}u(0,x) dx +\] +\[ + a_{n} + = + \frac{2}{l}\int_{0}^{l}u(0,x)sin\left(\frac{n\pi}{l}x\right) dx +\] -- cgit v1.2.1 From 2fa5e32a5bbb88cb0f676ac080f0bef54623599e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Thu, 28 Jul 2022 16:22:07 +0200 Subject: Added solution for T(t) in fourier example. --- .../sturmliouville/waermeleitung_beispiel.tex | 31 +++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index a493749..b25fc89 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -71,19 +71,20 @@ als Randbedingungen. % TODO: Formeln sauber in Text einbinden. Da die Lösungsfunktion von zwei Variablen abhängig ist, wird als Lösungsansatz -die Separationsmethode verwendet. - +die Separationsmethode verwendet. Dazu wird \[ u(t,x) = T(t)X(x) \] -Dieser Ausdruck wird in die ursprüngliche Differenzialgleichung eingesetzt: +in die ursprüngliche Differenzialgleichung eingesetzt. Daraus ergibt sich \[ T^{\prime}(t)X(x) = \kappa T(t)X^{\prime \prime}(x) \] +als neue Form. + Nun können alle von $t$ abhängigen Ausdrücke auf die linke Seite, sowie alle von $x$ abhängigen Ausdrücke auf die rechte Seite gebracht werden und mittels der neuen Variablen $\mu$ gekoppelt werden: @@ -107,6 +108,30 @@ Differenzialgleichungen aufgeteilt werden: 0 \] +Es ist an dieser Stelle zu bemerken, dass die Gleichung in $x$ in +Sturm-Liouville-Form ist. Erfüllen die Randbedingungen des Stab-Problems auch +die Randbedingungen des Sturm-Liouville-Problems, kann bereits die Aussage +getroffen werden, dass alle Lösungen für die Gleichung in $x$ orthogonal sein +werden. + +Widmen wir uns zunächst der ersten Gleichung. Diese Lösen wir über das +charakteristische Polynom +\[ + \lambda - \kappa \mu + = + 0. +\] +Es ist direkt ersichtlich, dass $\lambda = \kappa \mu$ gelten muss, was zur +Lösung +\[ + T(t) + = + e^{\kappa \mu t} +\] +führt. + +Etwas aufwändiger wird es, die zweite Gleichung zu lösen. + % TODO: Rechenweg TODO: Rechenweg... Enden auf konstanter Temperatur: \[ -- cgit v1.2.1 From 02ad63db71adf381e21c0230c502c3ead7e11ecc Mon Sep 17 00:00:00 2001 From: haddoucher Date: Fri, 29 Jul 2022 16:49:36 +0200 Subject: erste Variante Einleitung Kapitel "Was ist das Sturm-Liouville-Problem" --- buch/chapters/070-orthogonalitaet/sturm.tex | 2 +- buch/papers/sturmliouville/einleitung.tex | 58 ++++++++++++++++++++++++++++- buch/papers/sturmliouville/main.tex | 1 + 3 files changed, 59 insertions(+), 2 deletions(-) diff --git a/buch/chapters/070-orthogonalitaet/sturm.tex b/buch/chapters/070-orthogonalitaet/sturm.tex index 742ec0a..ab68377 100644 --- a/buch/chapters/070-orthogonalitaet/sturm.tex +++ b/buch/chapters/070-orthogonalitaet/sturm.tex @@ -15,7 +15,7 @@ Skalarproduktes selbstadjungierten Operators erkannt wurden. % % Differentialgleichungen % -\subsection{Differentialgleichung} +\subsection{Differentialgleichung \label{sub:differentailgleichung}} Das klassische Sturm-Liouville-Problem ist das folgende Eigenwertproblem. Gesucht sind Lösungen der Differentialgleichung \begin{equation} diff --git a/buch/papers/sturmliouville/einleitung.tex b/buch/papers/sturmliouville/einleitung.tex index 384a642..ec37a3f 100644 --- a/buch/papers/sturmliouville/einleitung.tex +++ b/buch/papers/sturmliouville/einleitung.tex @@ -3,7 +3,63 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Was ist Sturm-Liouville-Problem\label{sturmliouville:section:teil0}} +\section{Was ist das Sturm-Liouville-Problem\label{sturmliouville:section:teil0}} \rhead{Einleitung} +Das Sturm-Liouville-Problem wurde benannt nach dem schweizerisch-französischer Mathematiker und Physiker Jacques Charles Fran\c{c}ois Sturm und dem französischer Mathematiker Joseph Liouville. +Gemeinsam haben sie in der mathematischen Physik die Sturm-Liouville-Theorie entwickelt und gilt für die Lösung von gewohnlichen Differentialgleichungen, jedoch verwendet man die Theorie öfters bei der Lösung von partiellen Differentialgleichungen. +Normalerweise betrachtet man für das Strum-Liouville-Problem eine gewöhnliche Differentialgleichung 2. Ordnung, und wenn es sich um eine partielle Differentialgleichung handelt, kann man sie mit Hilfe einiger Methoden in mehrere gewöhnliche Differentialgleichungen umwandeln, wie z. B. den Separationsansatz, die partielle Differentialgleichung mit mehreren Variablen. +Angenommen man hat die lineare homogene Differentialgleichung + +\begin{equation} + \frac{d^2y}{dx^2} + a(x)\frac{dy}{dx} + b(x)y = 0 +\end{equation} + +und schreibt die Gleichung um in: + +\begin{equation} + \label{eq:sturm-liouville-equation} + \frac{d}{dx}\lbrack p(x) \frac{dy}{dx} \rbrack + \lbrack q(x) + \lambda w(x) \rbrack y = 0 +\end{equation}, + +diese Gleichung wird dann Sturm-liouville-Gleichung bezeichnet. +Alle homogene 2.Ordnung lineare gewöhnliche Differentialgleichungen können in die Form der Gleichung \ref{eq:sturm-liouville-equation} umgeformt werden. +Die Sturm-Liouville-Theorie besagt, dass, wenn man die Sturm-Liouville-Gleichung mit den homogenen Randbedingungen + +\begin{equation} +\begin{aligned} + \label{ali:randbedingungen} + k_a y(a) + h_a p(a) y'(a) &= 0 \\ + k_b y(b) + h_b p(b) y'(b) &= 0 +\end{aligned} +\end{equation} + +kombiniert, wie schon im Kapitel \ref{sub:differentailgleichung} erwähnt, auf dem Intervall (a,b), dann bekommt man das klassische Sturm-Liouville-Problem. +Lösungen die nicht Null sind, werden nicht betrachtet und diese zwei Gleichungen (\ref{eq:sturm-liouville-equation} und \ref{ali:randbedingungen}) kombiniert, nennt man Eigenfunktionen. +Wenn bei der Sturm-Liouville-Gleichung \ref{eq:sturm-liouville-equation} alles konstant bleibt, aber der Wert von $\lambda$ sich ändert, erhält man eine andere Eigenfunktion, weil man eine andere gewöhnliche Differentialgleichung löst; +der Parameter $\lambda$ wird als Eigenwert bezeichnet. +Es ist genau das gleiche Prinzip wie bei den Matrizen, andere Eigenwerte ergeben andere Eigenvektoren. +Es besteht eine Korrespondenz zwischen den Eigenwerten und den Eigenvektoren. +Das gleiche gilt auch beim Sturm-Liouville-Problem, und zwar + +\begin{equation} + \lambda \overset{Korrespondenz}\leftrightarrow y +\end{equation}. + +Die Theorie besagt, wenn $y_m$, $y_n$ Eigenfuktionen des Sturm-Liouville-Problems sind, die verschiedene Eigenwerte $\lambda_m$, $\lambda_n$ ($\lambda_m \neq \lambda_n$) entsprechen, so sind $y_m$, $y_n$ orthogonal zu y - +dies gilt für das Intervall (a,b). +Somit ergibt die Gleichung + +\begin{equation} + \int_{a}^{b} w(x)y_m y_n = 0 +\end{equation}. + +Die Funktionen $p(x)$, $q(x)$ und $w(x)$ werden als Koeffizientenfunktionen mit ihren freien Variablen $x$ bezeichnet. Die Funktion $w(x)$ (manchmal auch $r(x)$ genannt) wird als Gewichtsfunktion oder Dichtefunktion bezeichnet. + + + + + + + diff --git a/buch/papers/sturmliouville/main.tex b/buch/papers/sturmliouville/main.tex index dfd2c38..4c25843 100644 --- a/buch/papers/sturmliouville/main.tex +++ b/buch/papers/sturmliouville/main.tex @@ -10,6 +10,7 @@ + \input{papers/sturmliouville/einleitung.tex} %einleitung "was ist das sturm-liouville-problem" ng\input{papers/sturmliouville/eigenschaften.tex} -- cgit v1.2.1 From de76ac03caa4e7a09a99fe1271fb6a22a809ade2 Mon Sep 17 00:00:00 2001 From: haddoucher Date: Tue, 2 Aug 2022 17:38:32 +0200 Subject: Was ist das Sturm-Liouville-Problem erste Version --- buch/papers/sturmliouville/einleitung.tex | 48 ++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/buch/papers/sturmliouville/einleitung.tex b/buch/papers/sturmliouville/einleitung.tex index ec37a3f..7d39cf4 100644 --- a/buch/papers/sturmliouville/einleitung.tex +++ b/buch/papers/sturmliouville/einleitung.tex @@ -23,17 +23,30 @@ und schreibt die Gleichung um in: diese Gleichung wird dann Sturm-liouville-Gleichung bezeichnet. Alle homogene 2.Ordnung lineare gewöhnliche Differentialgleichungen können in die Form der Gleichung \ref{eq:sturm-liouville-equation} umgeformt werden. -Die Sturm-Liouville-Theorie besagt, dass, wenn man die Sturm-Liouville-Gleichung mit den homogenen Randbedingungen +Die Sturm-Liouville-Theorie besagt, dass, wenn man die Sturm-Liouville-Gleichung mit den homogenen Randbedingungen des dritten Typs\footnote{Die Randbedingung des dritten Typs, oder Robin-Randbedingungen (benannt nach dem französischen mathematischen Analytiker und angewandten Mathematiker Victor Gustave Robin), wird genannt, wenn sie einer gewöhnlichen oder partiellen Differentialgleichung auferlegt wird, so sind die Spezifikationen einer Linearkombination der Werte einer Funktion sowie die Werte ihrer Ableitung am Rande des Bereichs} \begin{equation} \begin{aligned} - \label{ali:randbedingungen} + \label{eq:randbedingungen} k_a y(a) + h_a p(a) y'(a) &= 0 \\ k_b y(b) + h_b p(b) y'(b) &= 0 \end{aligned} \end{equation} - + kombiniert, wie schon im Kapitel \ref{sub:differentailgleichung} erwähnt, auf dem Intervall (a,b), dann bekommt man das klassische Sturm-Liouville-Problem. +Wenn von der Funktion $y(x)$ die Werte $x$ des jeweiligen Randes des Definitionsbereiches anzunehmen sind,also + +\begin{equation} + y(a) = y(b) = 0 +\end{equation} + +, so spricht man von einer Dirichlet-Randbedingung, und von einer Neumann-Randbedingung spricht man, wenn + +\begin{equation} + y'(a) = y'(b) = 0 +\end{equation} + +ergibt - die Existenz und Eindeutigkeit der Lösung kann mit den zwei Randbedingungen sichergestellt werden Lösungen die nicht Null sind, werden nicht betrachtet und diese zwei Gleichungen (\ref{eq:sturm-liouville-equation} und \ref{ali:randbedingungen}) kombiniert, nennt man Eigenfunktionen. Wenn bei der Sturm-Liouville-Gleichung \ref{eq:sturm-liouville-equation} alles konstant bleibt, aber der Wert von $\lambda$ sich ändert, erhält man eine andere Eigenfunktion, weil man eine andere gewöhnliche Differentialgleichung löst; der Parameter $\lambda$ wird als Eigenwert bezeichnet. @@ -53,10 +66,37 @@ Somit ergibt die Gleichung \int_{a}^{b} w(x)y_m y_n = 0 \end{equation}. -Die Funktionen $p(x)$, $q(x)$ und $w(x)$ werden als Koeffizientenfunktionen mit ihren freien Variablen $x$ bezeichnet. Die Funktion $w(x)$ (manchmal auch $r(x)$ genannt) wird als Gewichtsfunktion oder Dichtefunktion bezeichnet. +Die Funktionen $p(x)$, $q(x)$ und $w(x)$ werden als Koeffizientenfunktionen mit ihren freien Variablen $x$ bezeichnet. +Die Funktion $w(x)$ (manchmal auch $r(x)$ genannt) wird als Gewichtsfunktion oder Dichtefunktion bezeichnet. +Es gibt zwei verschiedene Sturm-Liouville-Probleme: das reguläre Sturm-Liouville-Problem und das singuläre Sturm-Liouville-Problem. +Die Funktionen für das reguläre und das singuläre Sturm-Liouville-Problem sind nicht dieselben. + +\subsection{Das reguläre Sturm-Liouville-Problem\label{sub:reguläre_sturm_liouville_problem}} +Damit es sich um ein reguläres Sturm-Liouville-Problem handelt, müssen einige Bedingungen beachtet werden. + +\begin{itemize} + \item Die Funktionen $p(x), p'(x), q(x)$ und $w(x)$ müssen stetig und reell sein. + \item sowie müssen in einem Endlichen Intervall $[ \ a,b] \ $ integrierbar sein. + \item $p(x)^{-1}$ und $w(x)$ sind $>0$. + \item Es gelten die Randbedingungen \ref{eq:randbedingungen}, wobei $|k_i|^2 + |h_i|^2\ne 0$ mit $i=a,b$. +\end{itemize} + +Bei einem regulären Sturm-Liouville-Problem geht es darum, ohne genaue Kenntnis der Eigenfunktionen diese dennoch beschreiben zu können. + +\subsection{Das singuläre Sturm-Liouville-Problem\label{sub:singuläre_sturm_liouville_problem}} +Von einem singulären Sturm-Liouville-Problem spricht man, wenn die oben genannten Bedingungen nicht erfüllt sind, d.h: +\begin{itemize} + \item wenn sein Definitionsbereich auf dem Intervall $[ \ a,b] \ $ unbeschränkt ist oder + \item wenn die Koeffizienten an den Randpunkten Singularitäten haben. +\end{itemize} +Allerdings kann nur eine der Bedingungen nicht erfüllt sein, so dass es sich bereits um ein singuläres Sturm-Liouville-Problem handelt. +Verwendet man das reguläre Sturm-Liouville-Problem, obwohl eine oder beide Bedingungen nicht erfüllt sind, dann ist es schwierig zu sagen, ob die Lösung fundierte Ergebnisse hat. +Es ist schwierig, bestehende Kriterien anzuwenden, da die Formulierungen z.B. in der Lösungsfunktion liegen. +Das Spektrum besteht im singulärem Problem nicht mehr nur aus Eigenwerte, sondern kann auch einen stetigen Anteil enthalten. +Ähnlich wie bei der Fourier-Reihe gegenüber der Fourier-Transformation gibt es immer noch eine zugehörige Eigenfunktionsentwicklung, und zwar die Integraltransformation sowie gibt es weiterhin eine verallgemeinerte Eigenfunktionen. -- cgit v1.2.1 From 796815b4b22a3cae2db58125be8045a72fe30471 Mon Sep 17 00:00:00 2001 From: haddoucher Date: Tue, 2 Aug 2022 21:17:50 +0200 Subject: Update einleitung.tex Korrektur der Einleitung --- buch/papers/sturmliouville/einleitung.tex | 84 ++++++++++++++++++++----------- 1 file changed, 54 insertions(+), 30 deletions(-) diff --git a/buch/papers/sturmliouville/einleitung.tex b/buch/papers/sturmliouville/einleitung.tex index 7d39cf4..44c3192 100644 --- a/buch/papers/sturmliouville/einleitung.tex +++ b/buch/papers/sturmliouville/einleitung.tex @@ -8,23 +8,23 @@ Das Sturm-Liouville-Problem wurde benannt nach dem schweizerisch-französischer Mathematiker und Physiker Jacques Charles Fran\c{c}ois Sturm und dem französischer Mathematiker Joseph Liouville. Gemeinsam haben sie in der mathematischen Physik die Sturm-Liouville-Theorie entwickelt und gilt für die Lösung von gewohnlichen Differentialgleichungen, jedoch verwendet man die Theorie öfters bei der Lösung von partiellen Differentialgleichungen. Normalerweise betrachtet man für das Strum-Liouville-Problem eine gewöhnliche Differentialgleichung 2. Ordnung, und wenn es sich um eine partielle Differentialgleichung handelt, kann man sie mit Hilfe einiger Methoden in mehrere gewöhnliche Differentialgleichungen umwandeln, wie z. B. den Separationsansatz, die partielle Differentialgleichung mit mehreren Variablen. -Angenommen man hat die lineare homogene Differentialgleichung +\begin{definition} + \index{Sturm-Liouville-Gleichung} +Angenommen man hat die lineare homogene Differentialgleichung \begin{equation} \frac{d^2y}{dx^2} + a(x)\frac{dy}{dx} + b(x)y = 0 \end{equation} - und schreibt die Gleichung um in: - \begin{equation} \label{eq:sturm-liouville-equation} \frac{d}{dx}\lbrack p(x) \frac{dy}{dx} \rbrack + \lbrack q(x) + \lambda w(x) \rbrack y = 0 -\end{equation}, +\end{equation} +, diese Gleichung wird dann Sturm-liouville-Gleichung bezeichnet. +\end{definition} -diese Gleichung wird dann Sturm-liouville-Gleichung bezeichnet. Alle homogene 2.Ordnung lineare gewöhnliche Differentialgleichungen können in die Form der Gleichung \ref{eq:sturm-liouville-equation} umgeformt werden. Die Sturm-Liouville-Theorie besagt, dass, wenn man die Sturm-Liouville-Gleichung mit den homogenen Randbedingungen des dritten Typs\footnote{Die Randbedingung des dritten Typs, oder Robin-Randbedingungen (benannt nach dem französischen mathematischen Analytiker und angewandten Mathematiker Victor Gustave Robin), wird genannt, wenn sie einer gewöhnlichen oder partiellen Differentialgleichung auferlegt wird, so sind die Spezifikationen einer Linearkombination der Werte einer Funktion sowie die Werte ihrer Ableitung am Rande des Bereichs} - \begin{equation} \begin{aligned} \label{eq:randbedingungen} @@ -32,28 +32,22 @@ Die Sturm-Liouville-Theorie besagt, dass, wenn man die Sturm-Liouville-Gleichung k_b y(b) + h_b p(b) y'(b) &= 0 \end{aligned} \end{equation} - kombiniert, wie schon im Kapitel \ref{sub:differentailgleichung} erwähnt, auf dem Intervall (a,b), dann bekommt man das klassische Sturm-Liouville-Problem. -Wenn von der Funktion $y(x)$ die Werte $x$ des jeweiligen Randes des Definitionsbereiches anzunehmen sind,also - +Wenn von der Funktion $y(x)$ die Werte $x$ des jeweiligen Randes des Definitionsbereiches anzunehmen sind, also \begin{equation} y(a) = y(b) = 0 \end{equation} - , so spricht man von einer Dirichlet-Randbedingung, und von einer Neumann-Randbedingung spricht man, wenn - \begin{equation} y'(a) = y'(b) = 0 \end{equation} - -ergibt - die Existenz und Eindeutigkeit der Lösung kann mit den zwei Randbedingungen sichergestellt werden -Lösungen die nicht Null sind, werden nicht betrachtet und diese zwei Gleichungen (\ref{eq:sturm-liouville-equation} und \ref{ali:randbedingungen}) kombiniert, nennt man Eigenfunktionen. +ergibt - die Existenz und Eindeutigkeit der Lösung kann mit den zwei Randbedingungen sichergestellt werden. +Lösungen die nicht Null sind, werden nicht betrachtet und diese zwei Gleichungen (\ref{eq:sturm-liouville-equation} und \ref{eq:randbedingungen}) kombiniert, nennt man Eigenfunktionen. Wenn bei der Sturm-Liouville-Gleichung \ref{eq:sturm-liouville-equation} alles konstant bleibt, aber der Wert von $\lambda$ sich ändert, erhält man eine andere Eigenfunktion, weil man eine andere gewöhnliche Differentialgleichung löst; der Parameter $\lambda$ wird als Eigenwert bezeichnet. Es ist genau das gleiche Prinzip wie bei den Matrizen, andere Eigenwerte ergeben andere Eigenvektoren. Es besteht eine Korrespondenz zwischen den Eigenwerten und den Eigenvektoren. Das gleiche gilt auch beim Sturm-Liouville-Problem, und zwar - \begin{equation} \lambda \overset{Korrespondenz}\leftrightarrow y \end{equation}. @@ -61,7 +55,6 @@ Das gleiche gilt auch beim Sturm-Liouville-Problem, und zwar Die Theorie besagt, wenn $y_m$, $y_n$ Eigenfuktionen des Sturm-Liouville-Problems sind, die verschiedene Eigenwerte $\lambda_m$, $\lambda_n$ ($\lambda_m \neq \lambda_n$) entsprechen, so sind $y_m$, $y_n$ orthogonal zu y - dies gilt für das Intervall (a,b). Somit ergibt die Gleichung - \begin{equation} \int_{a}^{b} w(x)y_m y_n = 0 \end{equation}. @@ -71,28 +64,60 @@ Die Funktion $w(x)$ (manchmal auch $r(x)$ genannt) wird als Gewichtsfunktion ode Es gibt zwei verschiedene Sturm-Liouville-Probleme: das reguläre Sturm-Liouville-Problem und das singuläre Sturm-Liouville-Problem. Die Funktionen für das reguläre und das singuläre Sturm-Liouville-Problem sind nicht dieselben. +% +%Kapitel mit "Das reguläre Sturm-Liouville-Problem" +% + \subsection{Das reguläre Sturm-Liouville-Problem\label{sub:reguläre_sturm_liouville_problem}} Damit es sich um ein reguläres Sturm-Liouville-Problem handelt, müssen einige Bedingungen beachtet werden. +\begin{definition} + \index{regläres Sturm-Liouville-Problem} + Die Bedingungen für ein reguläres Sturm-Liouville-Problem sind: + \begin{itemize} + \item Die Funktionen $p(x), p'(x), q(x)$ und $w(x)$ müssen stetig und reell sein. + \item sowie müssen in einem Endlichen Intervall $[ \ a,b] \ $ integrierbar sein. + \item $p(x)^{-1}$ und $w(x)$ sind $>0$. + \item Es gelten die Randbedingungen \ref{eq:randbedingungen}, wobei $|k_i|^2 + |h_i|^2\ne 0$ mit $i=a,b$. + \end{itemize} +\end{definition} +Bei einem regulären Sturm-Liouville-Problem geht es darum, ohne genaue Kenntnis der Eigenfunktionen diese dennoch beschreiben zu können. -\begin{itemize} - \item Die Funktionen $p(x), p'(x), q(x)$ und $w(x)$ müssen stetig und reell sein. - \item sowie müssen in einem Endlichen Intervall $[ \ a,b] \ $ integrierbar sein. - \item $p(x)^{-1}$ und $w(x)$ sind $>0$. - \item Es gelten die Randbedingungen \ref{eq:randbedingungen}, wobei $|k_i|^2 + |h_i|^2\ne 0$ mit $i=a,b$. -\end{itemize} -Bei einem regulären Sturm-Liouville-Problem geht es darum, ohne genaue Kenntnis der Eigenfunktionen diese dennoch beschreiben zu können. +% +%Kapitel mit "Das singuläre Sturm-Liouville-Problem" +% \subsection{Das singuläre Sturm-Liouville-Problem\label{sub:singuläre_sturm_liouville_problem}} -Von einem singulären Sturm-Liouville-Problem spricht man, wenn die oben genannten Bedingungen nicht erfüllt sind, d.h: +Von einem singulären Sturm-Liouville-Problem spricht man, wenn die Bedingungen des regulärem Problem nicht erfüllt sind. +\begin{definition} + \index{singuläres Sturm-Liouville-Problem} +Es handelt sich um ein singuläres Sturm-Liouville-Problem, wenn: + \begin{itemize} + \item wenn sein Definitionsbereich auf dem Intervall $[ \ a,b] \ $ unbeschränkt ist oder + \item wenn die Koeffizienten an den Randpunkten Singularitäten haben. + \end{itemize} +\end{definition} +Allerdings kann nur eine der Bedingungen nicht erfüllt sein, so dass es sich bereits um ein singuläres Sturm-Liouville-Problem handelt. -\begin{itemize} - \item wenn sein Definitionsbereich auf dem Intervall $[ \ a,b] \ $ unbeschränkt ist oder - \item wenn die Koeffizienten an den Randpunkten Singularitäten haben. -\end{itemize} +\begin{beispiel} + Das Randwertproblem + \begin{equation} + \begin{aligned} + x^2y'' + xy' + (\lambda^2x^2 - m^2)y &= 0, 0 Date: Fri, 5 Aug 2022 11:27:41 +0200 Subject: Resolved issue in main.tex --- buch/papers/sturmliouville/main.tex | 1 - 1 file changed, 1 deletion(-) diff --git a/buch/papers/sturmliouville/main.tex b/buch/papers/sturmliouville/main.tex index 559a448..4b5b8af 100644 --- a/buch/papers/sturmliouville/main.tex +++ b/buch/papers/sturmliouville/main.tex @@ -9,7 +9,6 @@ \begin{refsection} \chapterauthor{Réda Haddouche und Erik Löffler} -<<<<<<< HEAD \input{papers/sturmliouville/einleitung.tex} %einleitung "was ist das sturm-liouville-problem" \input{papers/sturmliouville/eigenschaften.tex} -- cgit v1.2.1 From 6ec66a72b31ad7a47eb54d373d24f494318d35fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Fri, 5 Aug 2022 12:05:26 +0200 Subject: Added partial solution to X equation. --- .../sturmliouville/waermeleitung_beispiel.tex | 60 +++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index b25fc89..cc88f6a 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -130,7 +130,65 @@ Lösung \] führt. -Etwas aufwändiger wird es, die zweite Gleichung zu lösen. +Etwas aufwändiger wird es, die zweite Gleichung zu lösen. Aufgrund der Struktur +der Gleichung +\[ + X^{\prime \prime}(x) - \mu X(x) + = + 0 +\] +wird ein trigonometrischer Ansatz gewählt. Die Lösungen für $X(x)$ sind also +von der Form +\[ + X(x) + = + A \sin \left( \alpha x\right) + B \cos \left( \beta x\right). +\] + +Dieser Ansatz wird nun solange differenziert, bis alle in Gleichung (TODO: ref) +enthaltenen Ableitungen vorhanden sind. Man erhält also +\[ + X^{\prime}(x) + = + A \alpha \cos \left( \alpha x \right) - + B \beta \sin \left( \beta x \right) +\] +und +\[ + X^{\prime \prime}(x) + = + -A \alpha^{2} \sin \left( \alpha x \right) - + B \beta^{2} \cos \left( \beta x \right). +\] + +Eingesetzt in Gleichung (TDOD: ref) ergibt dies +\[ + -A\alpha^{2}\sin(\alpha x) - B\beta^{2}\cos(\beta x) - + \mu\left(A\sin(\alpha x) + B\cos(\beta x)\right) + = + 0 +\] +und durch umformen somit +\[ + \mu A\sin(\alpha x) + \mu B\cos(\beta x) + = + A\alpha^{2}\sin(\alpha x) + B\beta^{2}\cos(\beta x). +\] + +Durch Koeffizientenvergleich von +\[ + \mu A\sin(\alpha x) + = + A\alpha^{2}\sin(\alpha x) +\] +\[ + \mu B\cos(\beta x) + = + B\beta^{2}\cos(\beta x) +\] +ist schnell ersichtlich, dass $ \mu = \alpha^{2} = \beta^{2} $ gelten muss für +$ A \neq 0 $ und $ B \neq 0 $. Zur Berechnung von $ \mu $ bleiben also noch +$ \alpha $ und $ \beta $ zu bestimmen. % TODO: Rechenweg TODO: Rechenweg... Enden auf konstanter Temperatur: -- cgit v1.2.1 From 35be5a6ccc01f2fbd39b44134aa4f8bca6705901 Mon Sep 17 00:00:00 2001 From: daHugen Date: Fri, 5 Aug 2022 16:48:03 +0200 Subject: Update contains: syntax correction and changes in structure (added subsubsections). --- buch/papers/lambertw/teil4.tex | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/buch/papers/lambertw/teil4.tex b/buch/papers/lambertw/teil4.tex index 1053dd1..2de3663 100644 --- a/buch/papers/lambertw/teil4.tex +++ b/buch/papers/lambertw/teil4.tex @@ -6,11 +6,11 @@ \section{Beispiel einer Verfolgungskurve \label{lambertw:section:teil4}} \rhead{Beispiel einer Verfolgungskurve} -In diesem Abschnitt wird rechnerisch das Beispiel einer Verfolgungskurve mit der Verfolgungsstrategie ``Jagd'' beschreiben. Dafür werden zuerst Bewegungsraum, Anfangspositionen und Bewegungsverhalten definiert, in einem nächsten Schritt soll eine Differentialgleichung dafür aufgestellt und anschliessend gelöst werden. +In diesem Abschnitt wird rechnerisch das Beispiel einer Verfolgungskurve mit der Verfolgungsstrategie ``Jagd'' beschrieben. Dafür werden zuerst Bewegungsraum, Anfangspositionen und Bewegungsverhalten definiert, in einem nächsten Schritt soll eine Differentialgleichung dafür aufgestellt und anschliessend gelöst werden. \subsection{Anfangsbedingungen definieren und einsetzen \label{lambertw:subsection:Anfangsbedingungen}} -Das zu verfolgende Ziel \(Z\) bewegt sich entlang der \(y\)-Achse mit konstanter Geschwindigkeit \(|\dot{z}| = 1\), beginnend beim Ursprung des Kartesischen Koordinatensystems. Der Verfolger \(V\) startet auf einem beliebigen Punkt im ersten Quadranten und bewegt sich auch mit konstanter Geschwindigkeit \(|\dot{v}| = 1\) in Richtung Ziel. Diese Anfangspunkte oder Anfangsbedingungen können wie folgt formuliert werden: +Das zu verfolgende Ziel \(Z\) bewegt sich entlang der \(y\)-Achse mit konstanter Geschwindigkeit \(|\dot{z}| = 1\), beginnend beim Ursprung des kartesischen Koordinatensystems. Der Verfolger \(V\) startet auf einem beliebigen Punkt im ersten Quadranten und bewegt sich auch mit konstanter Geschwindigkeit \(|\dot{v}| = 1\) in Richtung Ziel. Diese Anfangspunkte oder Anfangsbedingungen können wie folgt formuliert werden: \begin{equation} Z = @@ -40,7 +40,7 @@ Diese DGL haben wir bereits in Kapitel \ref{lambertw:subsection:Verfolger} defin \subsection{Differentialgleichung vereinfachen \label{lambertw:subsection:DGLvereinfach}} -Nun haben wir eine Gleichung, es stellt sich aber die Frage, ob es überhaupt eine geschlossene Lösung dafür gibt. Eine Funktion welche die Beziehung \(y(x)\) beschreibt oder sogar \(x(t)\) und \(y(t)\) liefert. Zum jetzigen Zeitpunkt mag es nicht trivial scheinen, aber mit den gewählten Anfangsbedingungen \eqref{lambertw:Anfangsbed} ist es möglich eine geschlossene Lösung für die Gleichung \eqref{lambertw:eqMitAnfangsbed} zu finden. +Nun haben wir eine Gleichung, es stellt sich aber die Frage, ob es überhaupt eine geschlossene Lösung dafür gibt. Eine Funktion welche die Beziehung \(y(x)\) beschreibt oder sogar \(x(t)\) und \(y(t)\) liefert. Zum jetzigen Zeitpunkt mag es nicht trivial scheinen, aber mit den gewählten Anfangsbedingungen \eqref{lambertw:Anfangsbed} ist es möglich, eine geschlossene Lösung für die Gleichung \eqref{lambertw:eqMitAnfangsbed} zu finden. Auf dem Weg dahin muss die definierte DGL zuerst wesentlich vereinfacht werden, sei es mittels algebraischer Umformungen oder mit den Tools aus der Analysis. Da die nächsten Schritte sehr algebralastig sind und sie das Lesen dieses Papers träge machen würden, werden wir uns hier nur auf die wesentlichsten Schritte konzentrieren, welche notwendig sind, um den Lösungsweg nachvollziehen zu können. @@ -90,7 +90,7 @@ Versteckt im Ausdruck \eqref{lambertw:eqGeschwSubstituiert} befindet sich die er \label{lambertw:eqAlgVerinfacht} \end{equation} die faktorisierte Darstellung davon ist. -Da der linke Term gleich Null ist, muss auch der Inhalt des Quadrates gleich Null sein. Es ergibt sich eine weitere Vereinfachung, welche zu der im Vergleich zu \eqref{lambertw:eqOhneSkalarprod} wesentlich einfacheren DGL +Da der linke Term gleich Null ist, muss auch die Basis des Quadrates in \eqref{lambertw:eqAlgVerinfacht} gleich Null sein. Es ergibt sich eine weitere Vereinfachung, welche zu der im Vergleich zu \eqref{lambertw:eqOhneSkalarprod} wesentlich einfacheren DGL \begin{equation} x \dot{y} + (t-y) \dot{x} = 0 @@ -122,7 +122,7 @@ Der Grund dafür ist, dass \label{lambertw:eqQuotZeitAbleit} \end{equation} und somit kann der Quotient dieser zeitlichen Ableitungen in eine Ableitung nach \(x\) umgewandelt werden. -Nach dem die Eigenschaft \eqref{lambertw:eqQuotZeitAbleit} in \eqref{lambertw:eqVorKeineZeitAbleit} eingesetzt wird und vereinfacht wurde, entsteht die neue Gleichung +Nachdem die Eigenschaft \eqref{lambertw:eqQuotZeitAbleit} in \eqref{lambertw:eqVorKeineZeitAbleit} eingesetzt wurde, entsteht beim Vereinfachen die neue Gleichung \begin{equation} x y^{\prime} + t - y = 0. @@ -130,7 +130,7 @@ Nach dem die Eigenschaft \eqref{lambertw:eqQuotZeitAbleit} in \eqref{lambertw:eq \end{equation} \subsubsection{Variable \(t\) eliminieren - \label{lambertw:subsubsection:ZeitAbleit}} + \label{lambertw:subsubsection:VarTelimin}} Hier wäre es natürlich passend, wenn man die Abhängigkeit nach \(t\) komplett wegbringen könnte, aber wie? Wir wissen, dass sich der Verfolger mit Geschwindigkeit 1 bewegt, also legt er in der Zeit \(t\) die Strecke \(1\cdot t = t\) zurück. Längen und Strecken können auch mit der Bogenlänge repräsentiert werden, somit kann Zeit und zurückgelegte Strecke in der Gleichung \begin{equation} @@ -199,7 +199,7 @@ Wenn man in \eqref{lambertw:loesDGLmitU} die Substitution rückgängig macht, er \label{lambertw:loesDGLmitY} \end{equation} erster Ordnung, die bereits separiert ist. -Ersetzt man den \(\operatorname{sinh}\) durch seine exponentiellen Definition \(\operatorname{sinh}(x)=\frac{1}{2}(e^x-e^{-x})\), so resultiert auf sehr einfache Art die Lösung +Ersetzt man den \(\operatorname{sinh}\) durch seine exponentielle Definition \(\operatorname{sinh}(x)=\frac{1}{2}(e^x-e^{-x})\), so resultiert auf sehr einfache Art die Lösung \begin{equation} y = @@ -302,7 +302,8 @@ Wenn man die Koeffizienten \eqref{lambertw:eqKoeff1} und \eqref{lambertw:eqKoeff \begin{equation} y(x) = - \frac{1}{4}\left(\left(y_0+r_0\right)\eta+\left(y_0-r_0\right)\operatorname{ln}\left(\eta\right)-r_0+3y_0\right). + \frac{1}{4}\left(\left(y_0+r_0\right)\eta+\left(y_0-r_0\right) + \operatorname{ln}\left(\eta\right)-r_0+3y_0\right). \label{lambertw:eqAllgLoes} \end{equation} Damit die Funktion \eqref{lambertw:eqAllgLoes} trotzdem übersichtlich bleibt, wurden Anfangssteigung \(\eta\) und Anfangsentfernung \(r_0\) wie folgt definiert: @@ -321,7 +322,7 @@ Nun sind wir soweit, dass wir eine \(y(x)\)-Beziehung für beliebige Anfangswert \subsection{Funktion nach der Zeit \label{lambertw:subsection:FunkNachT}} -In diesem Abschnitt werden algebraischen Umformungen ein wenig detaillierter als zuvor beschrieben. Dies hat auch einen bestimmten Grund: Den Einsatz einer speziellen Funktion aufzeigen, sowie auch wann und wieso diese vorkommt. Welche spezielle Funktion? Fragst du dich wahrscheinlich in diesem Moment. Nun, um diese Frage kurz zu beantworten, es ist ``YouTube's favorite special function'' laut dem Mathematiker Michael Penn, die Lambert-\(W\)-Funktion \(W(x)\) welche im Kapitel \ref{buch:section:lambertw} bereits beschrieben wurde. +In diesem Abschnitt werden 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? Fragt man sich wahrscheinlich in diesem Moment. Nun, um diese Frage kurz zu beantworten, es ist ``YouTube's favorite special function'' laut dem Mathematiker Michael Penn, die Lambert-\(W\)-Funktion \(W(x)\) welche im Kapitel \ref{buch:section:lambertw} bereits beschrieben wurde. \subsubsection{Zeitabhängigkeit wiederherstellen \label{lambertw:subsubsection:ZeitabhWiederherst}} @@ -342,7 +343,7 @@ Wie in \eqref{lambertw:eqDGLmitTnochmals} zu sehen ist, werden \(y\) und deren A \frac{1}{4}\left(\left(y_0+r_0\right)\eta+\left(y_0-r_0\right)\operatorname{ln}\left(\eta\right)-r_0+3y_0\right), \\ y^\prime &= - \frac{1}{2}\left(\left(y_0+r_0\right)\frac{x}{x_0^2}+\left(y_0-r_0\right)\frac{1}{x}\right). + \frac{1}{2}\biggl(\left(y_0+r_0\right)\frac{x}{x_0^2}+\left(y_0-r_0\right)\frac{1}{x}\biggr). \end{align} \end{subequations} @@ -372,16 +373,19 @@ und anschliessend \label{lambertw:eqMitExp} \end{equation} erhält. -Auf dem rechten Term von \eqref{lambertw:eqMitExp} beginnen wir langsam eine ähnliche Struktur wie \(\eta e^\eta\) zu erkennen, dies schreit nach der Struktur die benötigt wird um \(\eta\) mittels der Lambert-\(W\)-Funktion \(W(x)\) zu erhalten. Dies macht durchaus Sinn, wenn wir die Funktion \(x(t)\) finden wollen und \(W(x)\) die Umkehrfunktion von \(x e^x\) ist. +Auf dem rechten Term von \eqref{lambertw:eqMitExp} beginnen wir langsam eine ähnliche Struktur wie \(\eta e^\eta\) zu erkennen, dies schreit nach der Struktur, die benötigt wird, um \(\eta\) mittels der Lambert-\(W\)-Funktion \(W(x)\) zu erhalten. Dies macht durchaus Sinn, wenn wir die Funktion \(x(t)\) finden wollen und \(W(x)\) die Umkehrfunktion von \(x e^x\) ist. -Die erste Sache die uns in \eqref{lambertw:eqMitExp} stört ist, dass \(\eta\) als Potenz da steht. Dieses Problem können wir loswerden, indem wir beidseitig mit \(\:\displaystyle \frac{1}{r_0-y_0}\:\) potenzieren: +Die erste Sache, die uns in \eqref{lambertw:eqMitExp} stört ist, dass \(\eta\) als Potenz da steht. Dieses Problem können wir loswerden, indem wir beidseitig mit \(\:1 / (r_0-y_0)\:\) potenzieren: \begin{equation} \operatorname{exp}\left(\displaystyle \frac{-4t}{r_0-y_0}+\frac{y_0+r_0}{r_0-y_0}\right) = \eta\cdot \operatorname{exp}\left(\displaystyle \frac{y_0+r_0}{r_0-y_0}\eta\right). \label{lambertw:eqOhnePotenz} \end{equation} -Das nächste Problem auf welches wir in \eqref{lambertw:eqOhnePotenz} treffen ist, dass \(\eta\) nicht alleine im Exponent steht. Dies kann elegant mit der Substitution + +\subsubsection{Eine essenzielle Substitution + \label{lambertw:subsubsection:SubstChi}} +Das nächste Problem, auf welches wir in \eqref{lambertw:eqOhnePotenz} treffen, ist, dass \(\eta\) nicht alleine im Exponent steht. Dies kann elegant mit der Substitution \begin{equation} \chi = @@ -398,6 +402,9 @@ die auf dasselbe Ergebnis führen würden, aber \eqref{lambertw:eqChiSubst} lief \chi\eta\cdot e^{\displaystyle \chi\eta}. \label{lambertw:eqNachSubst} \end{equation} + +\subsubsection{Funktion nach der Zeit dank Lambert-\(W\) + \label{lambertw:subsubsection:LambertWundFvonT}} Nun sind wir endlich soweit, dass wir die angedeutete Lambert-\(W\)-Funktion \(W(x)\) einsetzen können. Wenn wir beidseitig \(W(x)\) anwenden, dann erhalten wir den Ausdruck \begin{equation} W\left(\chi\cdot \operatorname{exp}\left(\displaystyle \chi-\frac{4t}{r_0-y_0}\right)\right) @@ -417,14 +424,14 @@ Nach dem Auflösen nach \(x\) welches in \(\eta\) enthalten ist, erhalten wir di = y(t) &= - \frac{1}{4}\left(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(y_0-r_0\right)\operatorname{ln}\left(\left(\frac{x(t)}{x_0}\right)^2\right)-r_0+3y_0\right). + \frac{1}{4}\biggl(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(y_0-r_0\right)\operatorname{ln}\biggl(\biggl(\frac{x(t)}{x_0}\biggr)^2\biggr)-r_0+3y_0\biggr). \end{align} \end{subequations} Nun haben wir unser letztes Ziel erreicht und sind in der Lage eine Verfolgung rechnerisch sowie graphisch zu repräsentieren. \subsubsection{Hinweise zur Lambert-\(W\)-Funktion \label{lambertw:subsubsection:HinwLambertW}} -Wir sind aber noch nicht ganz fertig, eine Frage muss noch beantwortet werden. Und zwar wieso, man schon bei der Gleichung \eqref{lambertw:eqFunkUndAbleitEingefuegt} weiss, dass die Lambert-\(W\)-Funktion zum Einsatz kommen wird. +Wir sind aber noch nicht ganz fertig, eine Frage muss noch beantwortet werden. Und zwar wieso man schon bei der Gleichung \eqref{lambertw:eqFunkUndAbleitEingefuegt} weiss, dass die Lambert-\(W\)-Funktion zum Einsatz kommen wird. Nun, der Grund dafür ist die Struktur \begin{equation} y -- cgit v1.2.1 From 77966f8e9049697adcebb519e87cc57115578f45 Mon Sep 17 00:00:00 2001 From: daHugen Date: Sat, 6 Aug 2022 15:13:34 +0200 Subject: Changed something in subsection \ref{lambertw:subsection:Anfangsbedingungen} --- buch/papers/lambertw/teil4.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buch/papers/lambertw/teil4.tex b/buch/papers/lambertw/teil4.tex index 2de3663..ba32696 100644 --- a/buch/papers/lambertw/teil4.tex +++ b/buch/papers/lambertw/teil4.tex @@ -10,7 +10,7 @@ In diesem Abschnitt wird rechnerisch das Beispiel einer Verfolgungskurve mit der \subsection{Anfangsbedingungen definieren und einsetzen \label{lambertw:subsection:Anfangsbedingungen}} -Das zu verfolgende Ziel \(Z\) bewegt sich entlang der \(y\)-Achse mit konstanter Geschwindigkeit \(|\dot{z}| = 1\), beginnend beim Ursprung des kartesischen Koordinatensystems. Der Verfolger \(V\) startet auf einem beliebigen Punkt im ersten Quadranten und bewegt sich auch mit konstanter Geschwindigkeit \(|\dot{v}| = 1\) in Richtung Ziel. Diese Anfangspunkte oder Anfangsbedingungen können wie folgt formuliert werden: +Das zu verfolgende Ziel \(Z\) bewegt sich entlang der \(y\)-Achse mit konstanter Geschwindigkeit \(|\dot{z}| = 1\), beginnend beim Ursprung des kartesischen Koordinatensystems. Der Verfolger \(V\) startet auf einem beliebigen Punkt im ersten Quadranten und bewegt sich auch mit konstanter Geschwindigkeit \(|\dot{v}| = 1\) in Richtung Ziel. Aus diesen Bedingungen ergibt sich den ersten Quadranten als Bewegungsraum für \(V\). Diese Anfangspunkte oder Anfangsbedingungen können wie folgt formuliert werden: \begin{equation} Z = -- cgit v1.2.1 From 9b9ef5890fe375831f015e2a42ca719c102cadd9 Mon Sep 17 00:00:00 2001 From: Kuster Yanik Date: Sat, 6 Aug 2022 15:26:51 +0200 Subject: Removed unused pictures. Applied last changes to teil0 and teil1. --- buch/papers/lambertw/Bilder/Intuition.pdf | Bin 187016 -> 149406 bytes buch/papers/lambertw/Bilder/Strategie.pdf | Bin 151684 -> 148667 bytes buch/papers/lambertw/Bilder/Strategie.py | 11 +- buch/papers/lambertw/Bilder/Strategie.svg | 790 --------------------- .../Bilder/lambertAbstandBauchgef\303\274hl.py" | 10 +- buch/papers/lambertw/Bilder/pursuerDGL.ggb | Bin 36225 -> 0 bytes buch/papers/lambertw/Bilder/pursuerDGL.svg | 1 - buch/papers/lambertw/Bilder/pursuerDGL2.ggb | Bin 21894 -> 0 bytes buch/papers/lambertw/Bilder/pursuerDGL2.pdf | Bin 21894 -> 0 bytes buch/papers/lambertw/Bilder/pursuerDGL2.png | Bin 48606 -> 0 bytes buch/papers/lambertw/Bilder/pursuerDGL2.svg | 1 - buch/papers/lambertw/teil0.tex | 10 +- buch/papers/lambertw/teil1.tex | 48 +- 13 files changed, 40 insertions(+), 831 deletions(-) delete mode 100644 buch/papers/lambertw/Bilder/Strategie.svg delete mode 100644 buch/papers/lambertw/Bilder/pursuerDGL.ggb delete mode 100644 buch/papers/lambertw/Bilder/pursuerDGL.svg delete mode 100644 buch/papers/lambertw/Bilder/pursuerDGL2.ggb delete mode 100644 buch/papers/lambertw/Bilder/pursuerDGL2.pdf delete mode 100644 buch/papers/lambertw/Bilder/pursuerDGL2.png delete mode 100644 buch/papers/lambertw/Bilder/pursuerDGL2.svg diff --git a/buch/papers/lambertw/Bilder/Intuition.pdf b/buch/papers/lambertw/Bilder/Intuition.pdf index 739b02b..964b348 100644 Binary files a/buch/papers/lambertw/Bilder/Intuition.pdf and b/buch/papers/lambertw/Bilder/Intuition.pdf differ diff --git a/buch/papers/lambertw/Bilder/Strategie.pdf b/buch/papers/lambertw/Bilder/Strategie.pdf index b5428f5..42cae0d 100644 Binary files a/buch/papers/lambertw/Bilder/Strategie.pdf and b/buch/papers/lambertw/Bilder/Strategie.pdf differ diff --git a/buch/papers/lambertw/Bilder/Strategie.py b/buch/papers/lambertw/Bilder/Strategie.py index 975e248..f09edfb 100644 --- a/buch/papers/lambertw/Bilder/Strategie.py +++ b/buch/papers/lambertw/Bilder/Strategie.py @@ -9,6 +9,9 @@ import pylatex import numpy as np import matplotlib.pyplot as plt + + + N = np.array([0, 0]) V = np.array([1, 4]) Z = np.array([5, 5]) @@ -34,9 +37,10 @@ ax.quiver(X, Y, U, W, angles='xy', scale_units='xy', scale=1, headwidth=5, headl ax.plot([V[0], (VZ+V)[0]], [V[1], (VZ+V)[1]], 'k--') ax.plot(np.vstack([V, Z])[:, 0], np.vstack([V, Z])[:,1], 'bo', markersize=10) -ax.set_xlabel("x", size=20) -ax.set_ylabel("y", size=20) +ax.tick_params(labelsize=15) +plt.xticks(ticks=range(0, 7)) +plt.yticks(ticks=range(0, 7)) ax.text(2.5, 4.5, "Visierlinie", size=20, rotation=10) plt.rcParams.update({ @@ -48,6 +52,7 @@ plt.rcParams.update({ ax.text(1.6, 4.3, r"$\dot{v}$", size=20) ax.text(0.65, 3.9, r"$V$", size=20, c='b') ax.text(5.15, 4.85, r"$Z$", size=20, c='b') - +ax.set_xlabel(r"$x$", size=20) +ax.set_ylabel(r"$y$", size=20) diff --git a/buch/papers/lambertw/Bilder/Strategie.svg b/buch/papers/lambertw/Bilder/Strategie.svg deleted file mode 100644 index 30f9f22..0000000 --- a/buch/papers/lambertw/Bilder/Strategie.svg +++ /dev/null @@ -1,790 +0,0 @@ - - - - - - - - - 2022-07-29T16:52:06.315252 - image/svg+xml - - - Matplotlib v3.3.2, https://matplotlib.org/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git "a/buch/papers/lambertw/Bilder/lambertAbstandBauchgef\303\274hl.py" "b/buch/papers/lambertw/Bilder/lambertAbstandBauchgef\303\274hl.py" index 3a90afa..73b322c 100644 --- "a/buch/papers/lambertw/Bilder/lambertAbstandBauchgef\303\274hl.py" +++ "b/buch/papers/lambertw/Bilder/lambertAbstandBauchgef\303\274hl.py" @@ -39,9 +39,11 @@ plt.plot(0, ymin, 'bo', markersize=10) plt.plot([0, xmin], [ymin, ymin], 'k--') #plt.xlim(-0.1, 1) #plt.ylim(1, 2) -plt.ylabel("y") -plt.xlabel("x") + plt.grid(True) +plt.tick_params(labelsize=15) +#plt.xticks(ticks=range(0, 7)) +#plt.yticks(ticks=range(0, 7)) plt.quiver(xmin, ymin, -0.2, 0, scale=1) plt.text(xmin+0.1, ymin-0.1, "Verfolgungskurve", size=20, rotation=20, color='r') @@ -55,4 +57,6 @@ plt.rcParams.update({ plt.text(xmin-0.11, ymin-0.08, r"$\dot{v}$", size=20) plt.text(xmin-0.02, ymin+0.05, r"$V$", size=20, c='b') -plt.text(0.02, ymin+0.05, r"$Z$", size=20, c='b') \ No newline at end of file +plt.text(0.02, ymin+0.05, r"$Z$", size=20, c='b') +plt.ylabel(r"$y$", size=20) +plt.xlabel(r"$x$", size=20) \ No newline at end of file diff --git a/buch/papers/lambertw/Bilder/pursuerDGL.ggb b/buch/papers/lambertw/Bilder/pursuerDGL.ggb deleted file mode 100644 index 3fb3a78..0000000 Binary files a/buch/papers/lambertw/Bilder/pursuerDGL.ggb and /dev/null differ diff --git a/buch/papers/lambertw/Bilder/pursuerDGL.svg b/buch/papers/lambertw/Bilder/pursuerDGL.svg deleted file mode 100644 index d91e5e1..0000000 --- a/buch/papers/lambertw/Bilder/pursuerDGL.svg +++ /dev/null @@ -1 +0,0 @@ -–0.7–0.7–0.7–0.6–0.6–0.6–0.5–0.5–0.5–0.4–0.4–0.4–0.3–0.3–0.3–0.2–0.2–0.2–0.1–0.1–0.10.10.10.10.20.20.20.30.30.30.40.40.40.50.50.50.60.60.60.70.70.70.80.80.80.90.90.91111.11.11.11.21.21.21.31.31.31.41.41.41.51.51.51.61.61.61.71.71.71.81.81.81.91.91.92222.12.12.12.22.22.22.32.32.32.42.42.42.52.52.52.62.62.62.72.72.72.82.82.82.92.92.93333.13.13.13.23.23.23.33.33.30.10.10.10.20.20.20.30.30.30.40.40.40.50.50.50.60.60.60.70.70.70.80.80.80.90.90.91111.11.11.11.21.21.21.31.31.31.41.41.41.51.51.51.61.61.61.71.71.71.81.81.81.91.91.92222.12.12.12.22.22.22.32.32.32.42.42.4000AOAOAOPOPOPOPAPAPAPPPAAA \ No newline at end of file diff --git a/buch/papers/lambertw/Bilder/pursuerDGL2.ggb b/buch/papers/lambertw/Bilder/pursuerDGL2.ggb deleted file mode 100644 index 3c4500b..0000000 Binary files a/buch/papers/lambertw/Bilder/pursuerDGL2.ggb and /dev/null differ diff --git a/buch/papers/lambertw/Bilder/pursuerDGL2.pdf b/buch/papers/lambertw/Bilder/pursuerDGL2.pdf deleted file mode 100644 index 932d9d9..0000000 Binary files a/buch/papers/lambertw/Bilder/pursuerDGL2.pdf and /dev/null differ diff --git a/buch/papers/lambertw/Bilder/pursuerDGL2.png b/buch/papers/lambertw/Bilder/pursuerDGL2.png deleted file mode 100644 index f41dffe..0000000 Binary files a/buch/papers/lambertw/Bilder/pursuerDGL2.png and /dev/null differ diff --git a/buch/papers/lambertw/Bilder/pursuerDGL2.svg b/buch/papers/lambertw/Bilder/pursuerDGL2.svg deleted file mode 100644 index 0c4a11d..0000000 --- a/buch/papers/lambertw/Bilder/pursuerDGL2.svg +++ /dev/null @@ -1 +0,0 @@ -–0.2–0.20.20.20.40.40.60.60.80.8111.21.21.41.41.61.61.81.8222.22.22.42.42.62.62.82.8333.23.2–0.2–0.20.20.20.40.40.60.60.80.8111.21.21.41.41.61.61.81.8222.22.22.42.42.62.62.82.83300Visierlinie \ No newline at end of file diff --git a/buch/papers/lambertw/teil0.tex b/buch/papers/lambertw/teil0.tex index 6632eca..baee9ea 100644 --- a/buch/papers/lambertw/teil0.tex +++ b/buch/papers/lambertw/teil0.tex @@ -78,17 +78,12 @@ Um den Richtungsvektor zu konstruieren kann der Einheitsvektor parallel zu $z-v$ \begin{equation} \dot{v} = - |\dot{v}|\cdot e_{z-v} -\end{equation} -führt. Dies kann noch ausgeschrieben werden zu -\begin{equation} - \dot{v} + |\dot{v}|\cdot (z-v)^\circ = |\dot{v}|\cdot\frac{z-v}{|z-v|} - \text{.} \label{lambertw:richtungsvektor} \end{equation} -% +führt. Aus dem Verfolgungsproblem ist auch ersichtlich, dass die Punkte $V$ und $Z$ nicht am gleichen Ort starten und so eine Division durch Null ausgeschlossen ist. Wenn die Punkte $V$ und $Z$ trotzdem am gleichen Ort starten, ist die Lösung trivial. @@ -97,6 +92,7 @@ Nun wird die Gleichung mit $\dot{v}$ skalar multipliziert, um das Gleichungssyst \frac{z-v}{|z-v|}\cdot|\dot{v}|\cdot\dot{v} &= |\dot{v}|^2 + \text{,} \end{align} was algebraisch zu \begin{align} diff --git a/buch/papers/lambertw/teil1.tex b/buch/papers/lambertw/teil1.tex index e8eca2c..8c30375 100644 --- a/buch/papers/lambertw/teil1.tex +++ b/buch/papers/lambertw/teil1.tex @@ -11,7 +11,7 @@ Sehr oft kommt es vor, dass bei Verfolgungsproblemen die Frage auftaucht, ob das Wenn zum Beispiel die Geschwindigkeit des Verfolgers kleiner ist als diejenige des Ziels, gibt es Anfangsbedingungen bei denen das Ziel nie erreicht wird. Im Anschluss dieser Frage stellt sich meist die nächste Frage, wie lange es dauert bis das Ziel erreicht wird. Diese beiden Fragen werden in diesem Kapitel behandelt und am Beispiel aus \ref{lambertw:section:teil4} betrachtet. -Das Beispiel wird bei dieser Betrachtung noch etwas erweitert indem alle Punkte auf der gesamtem $xy$-Ebene als Startwerte zugelassen werden. +Das Beispiel wird bei dieser Betrachtung noch etwas erweitert, indem alle Punkte auf der gesamtem $xy$-Ebene als Startwerte zugelassen werden. Nun gilt es zu definieren, wann das Ziel erreicht wird. Da sowohl Ziel und Verfolger als Punkte modelliert wurden, gilt das Ziel als erreicht, wenn die Koordinaten des Verfolgers mit denen des Ziels bei einem diskreten Zeitpunkt $t_1$ übereinstimmen. @@ -34,14 +34,14 @@ Die Parametrisierung von $v(t)$ ist von den Startbedingungen abhängig. Deshalb % \subsection{Anfangsbedingung im ersten Quadranten} % -Wenn der Verfolger im ersten Quadranten startet, dann kann $v(t)$ mit den Gleichungen aus \eqref{lambertw:eqFunkXNachT}, welche +Wenn der Verfolger im ersten Quadranten startet, dann kann $v(t)$ mit den Gleichungen aus \eqref{lambertw:eqFunkXNachT}, welche sind \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(y_0-r_0\right)\operatorname{ln}\left(\left(\frac{x(t)}{x_0}\right)^2\right)-r_0+3y_0\right)\\ + \frac{1}{4}\biggl(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(y_0-r_0\right)\operatorname{ln}\biggl(\left(\frac{x(t)}{x_0}\right)^2\biggr)-r_0+3y_0\biggr)\\ \chi &= \frac{r_0+y_0}{r_0-y_0}, \quad @@ -51,9 +51,10 @@ Wenn der Verfolger im ersten Quadranten startet, dann kann $v(t)$ mit den Gleich r_0 = \sqrt{x_0^2+y_0^2} - \text{.} + \text{,} \end{align} % +die Verfolgungskurve beschrieben werden. Der Verfolger ist durch \begin{equation} v(t) @@ -76,7 +77,8 @@ Daher wird das Problem in zwei einzelne Teilprobleme zerlegt, wodurch die Beding &= y(t) = - \frac{1}{4}\left(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(y_0-r_0\right)\operatorname{ln}\left(\left(\frac{x(t)}{x_0}\right)^2\right)-r_0+3y_0\right)\text{,} + \frac{1}{4}\biggl(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(y_0-r_0\right)\operatorname{ln}\biggl(\left(\frac{x(t)}{x_0}\right)^2\biggr)-r_0+3y_0\biggr) + \text{,} \end{align} % welche beide gleichzeitig erfüllt sein müssen, damit das Ziel erreicht wurde. @@ -110,7 +112,7 @@ kann die Bedingung weiter vereinfacht werden zu Da $\chi\neq0$ und die Exponentialfunktion nie null sein kann, ist diese Bedingung unmöglich zu erfüllen. Beim Grenzwert für $t\rightarrow\infty$ geht die Exponentialfunktion gegen null. Dies nützt nicht viel, da unendlich viel Zeit vergehen müsste, damit ein Einholen möglich wäre. -Somit kann nach den gestellten Bedingungen das Ziel nie erreicht werden. +Somit kann unter den gestellten Bedingungen das Ziel nie erreicht werden. % % % @@ -155,7 +157,7 @@ Dies kann veranschaulicht werden anhand 1\text{.} \end{equation} % -Da der $y$-Anteil der Geschwindigkeit des Ziels grösser-gleich der des Verfolgers ist, können die $y$-Koordinaten nie übereinstimmen. +Da der $y$-Anteil der Geschwindigkeit des Ziels mindestens so gross wie die des Verfolgers ist, können die $y$-Koordinaten nie übereinstimmen. % \subsection{Anfangsbedingung auf positiven $y$-Achse} Wenn der Verfolger auf der positiven $y$-Achse startet, befindet er sich direkt auf der Fluchtgeraden des Ziels. @@ -194,8 +196,8 @@ Somit wird das Ziel immer erreicht bei $t_1$, wenn der Verfolger auf der positiv \subsection{Fazit} Durch die Symmetrie der Fluchtkurve an der $y$-Achse führen die Anfangsbedingungen im ersten und zweiten Quadranten zu den gleichen Ergebnissen. Nun ist klar, dass lediglich Anfangspunkte auf der positiven $y$-Achse oder direkt auf dem Ziel dazu führen, dass der Verfolger das Ziel bei $t_1$ einholt. Bei allen anderen Anfangspunkten wird der Verfolger das Ziel nie erreichen. -Dieses Resultat ist aber eher akademischer Natur, weil der Verfolger und das Ziel als Punkt betrachtet wurden. -Wobei aber in Realität nicht von Punkten sondern von Objekten mit einer räumlichen Ausdehnung gesprochen werden kann. + +Dieses Resultat ist aber eher akademischer Natur, weil der Verfolger und das Ziel als Punkt betrachtet wurden, während in der Realität nicht von Punkten sondern von Objekten mit einer räumlichen Ausdehnung gesprochen werden kann. Somit wird in einer nächsten Betrachtung untersucht, ob der Verfolger dem Ziel näher kommt als ein definierter Trefferradius. Falls dies stattfinden sollte, wird dies als Treffer interpretiert. Mathematisch kann dies mit @@ -205,7 +207,7 @@ Mathematisch kann dies mit \end{equation} % beschrieben werden, wobei $a_{\text{min}}$ dem Trefferradius entspricht. -Durch quadrieren verschwindet die Wurzel des Betrages, womit +Durch Quadrieren verschwindet die Wurzel des Betrages, womit % \begin{equation} |v-z|^2e_y\cdot v$. Aus diesem Argument würde folgen, dass beim tiefsten Punkt der Verfolgungskurve im Beispiel den minimalen Abstand befindet. % \begin{figure} \centering - \includegraphics[scale=0.4]{./papers/lambertw/Bilder/Intuition.pdf} + \includegraphics[scale=0.7]{./papers/lambertw/Bilder/Intuition.pdf} \caption{Intuition} \label{lambertw:grafic:intuition} \end{figure} % - Dieses Argument kann leicht überprüft werden, indem lokal alle relevanten benachbarten Punkte betrachtet und das Vorzeichen der Änderung des Abstandes überprüft wird. Dafür wird ein Ausdruck benötigt, der den Abstand und die benachbarten Punkte beschreibt. -Der Richtungsvektor wird allgemein mit dem Winkel $\alpha \in[ 0, 2\pi)$ + +$\dot{v}$ wird allgemein mit dem Winkel $\alpha \in[ 0, 2\pi)$ beschrieben, um alle unmittelbar benachbarten Punkte prüfen zu können. Die Ortsvektoren der Punkte können wiederum mit \begin{align} v @@ -242,7 +244,7 @@ Die Ortsvektoren der Punkte können wiederum mit &= \left(\begin{array}{c} 0 \\ t \end{array}\right) \end{align} -beschrieben werden. Der Verfolger wurde allgemein für jede Richtung $\alpha$ definiert, um alle unmittelbar benachbarten Punkte beschreiben zu können. +beschrieben werden. Da der Abstand \begin{equation} a @@ -251,7 +253,7 @@ Da der Abstand \geq 0 \end{equation} -ist, kann durch quadrieren ohne Informationsverlust die Rechnung vereinfacht werden zu +ist, kann durch Quadrieren ohne Informationsverlust die Rechnung vereinfacht werden zu \begin{equation} a^2 = @@ -331,18 +333,12 @@ Durch algebraische Umwandlung kann die Gleichung in die Form \dot{z}\dot{v}=|\dot{v}|^2 \end{equation} gebracht werden. -Da $|\dot{v}|=|\dot{z}|$ folgt +Wenn für den Winkel zwischen den Richtungsvektoren $\alpha$ und die Eigenschaft $|\dot{z}|=|\dot{v}|$ verwendet wird entsteht \begin{equation} \cos(\alpha)=1 - \text{,} -\end{equation} -wobei $\alpha$ der Winkel zwischen den Richtungsvektoren ist. -Mit $|\dot{z}|=|\dot{v}|=1$ entsteht -\begin{equation} - \cos(\alpha)=1 - \text{,} + \text{.} \end{equation} -woraus folgt, dass nur bei $\alpha=0$, wenn $\alpha \in [0,2\pi)$, ein lokales als auch globales Minimum vorhanden sein kann. +Jetzt ist klar, dass nur bei $\alpha=0$, wenn $\alpha \in [0,2\pi)$, ein lokales als auch globales Minimum vorhanden sein kann. $\alpha=0$ bedeutet, dass $\dot{v}=\dot{z}$ sein muss. Da die Richtungsvektoren bei $t\rightarrow\infty$ immer in die gleiche Richtung zeigen ist dort die Bedingung immer erfüllt. Dies entspricht gerade dem einen Rand von $t$, der andere Rand bei $t=0$ muss auch auf lokales bzw. globales Minimum untersucht werden. -- cgit v1.2.1 From 6fafc379ff7808606f7d7835f797955f4b58c56e Mon Sep 17 00:00:00 2001 From: tschwall <55748566+tschwall@users.noreply.github.com> Date: Sat, 6 Aug 2022 16:29:24 +0200 Subject: M --- buch/SeminarSpezielleFunktionen.pdf | Bin 22225335 -> 22225339 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/buch/SeminarSpezielleFunktionen.pdf b/buch/SeminarSpezielleFunktionen.pdf index 0502c88..e6c5429 100644 Binary files a/buch/SeminarSpezielleFunktionen.pdf and b/buch/SeminarSpezielleFunktionen.pdf differ -- cgit v1.2.1 From 299310434e22f22ab43cfb423f91cb164cf2bab7 Mon Sep 17 00:00:00 2001 From: Alain Date: Sun, 7 Aug 2022 12:39:33 +0200 Subject: verbesserungen --- buch/papers/parzyl/main.tex | 2 +- buch/papers/parzyl/teil0.tex | 19 +++++++++---------- buch/papers/parzyl/teil1.tex | 5 ++++- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/buch/papers/parzyl/main.tex b/buch/papers/parzyl/main.tex index 528a2e2..14c85ff 100644 --- a/buch/papers/parzyl/main.tex +++ b/buch/papers/parzyl/main.tex @@ -6,7 +6,7 @@ \chapter{Parabolische Zylinderfunktionen\label{chapter:parzyl}} \lhead{Parabolische Zylinderfunktionen} \begin{refsection} -\chapterauthor{Thierry Schwaller, Alain Keller} +\chapterauthor{Alain Keller und Thierry Schwaller} diff --git a/buch/papers/parzyl/teil0.tex b/buch/papers/parzyl/teil0.tex index 4b251db..119f805 100644 --- a/buch/papers/parzyl/teil0.tex +++ b/buch/papers/parzyl/teil0.tex @@ -19,16 +19,16 @@ Sie ist eine spezielle Form der Poisson-Gleichung \begin{equation} \Delta f = g \end{equation} -mit g als beliebige Funktion. -In der Physik hat die Laplace-Gleichung in verschieden Gebieten +mit $g$ als beliebiger Funktion. +In der Physik hat die Laplace-Gleichung in verschiedenen Gebieten verwendet, zum Beispiel im Elektromagnetismus. Das Gaussche Gesetz in den Maxwellgleichungen \begin{equation} \nabla \cdot E = \frac{\varrho}{\epsilon_0} \label{parzyl:eq:max1} \end{equation} -besagt das die Divergenz eines Elektrischen Feldes an einem -Punkt gleich der Ladung an diesem Punkt ist. +besagt, dass die Divergenz eines elektrischen Feldes an einem +Punkt gleich der Ladungsdichte an diesem Punkt ist. Das elektrische Feld ist hierbei der Gradient des elektrischen Potentials \begin{equation} @@ -38,8 +38,8 @@ Eingesetzt in \eqref{parzyl:eq:max1} resultiert \begin{equation} \nabla \cdot \nabla \phi = \Delta \phi = \frac{\varrho}{\epsilon_0}, \end{equation} -was eine Possion-Gleichung ist. -An Ladungsfreien Stellen, ist der rechte Teil der Gleichung $0$. +was eine Poisson-Gleichung ist. +An ladungsfreien Stellen ist der rechte Teil der Gleichung $0$. \subsection{Parabolische Zylinderkoordinaten \label{parzyl:subsection:finibus}} Im parabolischen Zylinderkoordinatensystem bilden parabolische Zylinder die Koordinatenflächen. @@ -51,7 +51,7 @@ Die Koordinate $(\sigma, \tau, z)$ sind in kartesischen Koordinaten ausgedrückt z & = z. \label{parzyl:coordRelationse} \end{align} -Wird $\tau$ oder $\sigma$ konstant gesetzt resultieren die Parabeln +Wird $\tau$ oder $\sigma$ konstant gesetzt, resultieren die Parabeln \begin{equation} y = \frac{1}{2} \left( \frac{x^2}{\sigma^2} - \sigma^2 \right) \end{equation} @@ -67,7 +67,6 @@ und konstantes $\sigma$ und die grünen ein konstantes $\tau$.} \label{parzyl:fig:cordinates} \end{figure} - Abbildung \ref{parzyl:fig:cordinates} zeigt das Parabolische Koordinatensystem. Das parabolische Zylinderkoordinatensystem entsteht wenn die Parabeln aus der Ebene gezogen werden. @@ -106,7 +105,7 @@ von \eqref{parzyl:coordRelationsa} - \eqref{parzyl:coordRelationse} als dz &= \frac{\partial \tilde{z} }{\partial \sigma} d\sigma + \frac{\partial \tilde{z} }{\partial \tau} d\tau + \frac{\partial \tilde{z} }{\partial \tilde{z}} d \tilde{z} - = d \tilde{z} \\ + = d \tilde{z} \end{align} substituiert. Wird diese Gleichung in der Form von \eqref{parzyl:eq:dspara} @@ -120,7 +119,7 @@ geschrieben, resultiert Daraus ergeben sich die Skalierungsfaktoren \begin{align} h_{\sigma} &= \sqrt{\sigma^2 + \tau^2}\\ - h_{\sigma} &= \sqrt{\sigma^2 + \tau^2}\\ + h_{\tau} &= \sqrt{\sigma^2 + \tau^2}\\ h_{z} &= 1. \end{align} \subsection{Differentialgleichung} diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index f297189..239f8c7 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -13,7 +13,10 @@ in die Whittaker Gleichung gelöst werden. \begin{equation*} W_{k,m}(z) = e^{-z/2} z^{m+1/2} \, - {}_{1} F_{1}(\frac{1}{2} + m - k, 1 + 2m; z) + {}_{1} F_{1} + ( + {\textstyle \frac{1}{2}} + + m - k, 1 + 2m; z) \end{equation*} heisst Whittaker Funktion und ist eine Lösung von -- cgit v1.2.1 From ebbf6e36246d36a2ec842b8c89a1f09a5dbec9de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 8 Aug 2022 10:27:50 +0200 Subject: Corrected sign error in coefficient comparison. --- buch/papers/sturmliouville/waermeleitung_beispiel.tex | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index cc88f6a..7310186 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -170,23 +170,23 @@ Eingesetzt in Gleichung (TDOD: ref) ergibt dies \] und durch umformen somit \[ - \mu A\sin(\alpha x) + \mu B\cos(\beta x) + -A\alpha^{2}\sin(\alpha x) - B\beta^{2}\cos(\beta x) = - A\alpha^{2}\sin(\alpha x) + B\beta^{2}\cos(\beta x). + \mu A\sin(\alpha x) + \mu B\cos(\beta x). \] Durch Koeffizientenvergleich von \[ - \mu A\sin(\alpha x) + -A\alpha^{2}\sin(\alpha x) = - A\alpha^{2}\sin(\alpha x) + \mu A\sin(\alpha x) \] \[ - \mu B\cos(\beta x) + -B\beta^{2}\cos(\beta x) = - B\beta^{2}\cos(\beta x) + \mu B\cos(\beta x) \] -ist schnell ersichtlich, dass $ \mu = \alpha^{2} = \beta^{2} $ gelten muss für +ist schnell ersichtlich, dass $ \mu = -\alpha^{2} = -\beta^{2} $ gelten muss für $ A \neq 0 $ und $ B \neq 0 $. Zur Berechnung von $ \mu $ bleiben also noch $ \alpha $ und $ \beta $ zu bestimmen. -- cgit v1.2.1 From 2b1eb4b5979f4e0e7f2eee7414a8e0b3d9eae402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 8 Aug 2022 13:04:13 +0200 Subject: Changed equation syntax to match rest of the Sturm-Liouville chapter. --- .../sturmliouville/waermeleitung_beispiel.tex | 106 ++++++++++----------- 1 file changed, 50 insertions(+), 56 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 7310186..0c9dd8e 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -1,6 +1,5 @@ % % waermeleitung_beispiel.tex -- Beispiel Wärmeleitung in homogenem Stab. -%%%%%%%%%%%%%%%%%%%%%%%%%%% Erster Entwurf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % @@ -14,10 +13,10 @@ physikalischen Phänomenes auftritt. Zunächst wird ein eindimensionaler homogener Stab der Länge $l$ und Wärmeleitkoeffizient $\kappa$. Somit ergibt sich für das Wärmeleitungsproblem die partielle Differentialgleichung -\[ +\begin{equation} \frac{\partial u}{\partial t} = \kappa \frac{\partial^{2}u}{{\partial x}^{2}} -\] +\end{equation} wobei der Stab in diesem Fall auf der X-Achse im Intervall $[0,l]$ liegt. Da diese Differentialgleichung das Problem allgemein für einen homogenen @@ -32,13 +31,13 @@ Tempreatur gehalten werden. Die Enden des Stabes auf konstanter Temperatur zu halten bedeutet, dass die Lösungsfunktion $u(t,x)$ bei $x = 0$ und $x = l$ nur die vorgegebene Temperatur zurückgeben darf. Es folgen nun -\[ +\begin{equation} u(t,0) = u(t,l) = 0 -\] +\end{equation} als Randbedingungen. %%%%%%%%%%%%% Randbedingungen für Stab mit isolierten Enden %%%%%%%%%%%%%%%%%%% @@ -54,13 +53,13 @@ Temperatur fliesst. Um Wärmefluss zu unterdrücken, muss also dafür gesorgt werden, dass am Rand des Stabes keine Temperaturdifferenz existiert oder dass die partiellen Ableitungen von $u(t,x)$ nach $x$ bei $x = 0$ und $x = l$ verschwinden. Somit folgen -\[ +\begin{equation} \frac{\partial}{\partial x} u(t, 0) = \frac{\partial}{\partial x} u(t, l) = 0 -\] +\end{equation} als Randbedingungen. %%%%%%%%%%% Lösung der Differenzialgleichung %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -72,41 +71,40 @@ als Randbedingungen. Da die Lösungsfunktion von zwei Variablen abhängig ist, wird als Lösungsansatz die Separationsmethode verwendet. Dazu wird -\[ +\begin{equation} u(t,x) = T(t)X(x) -\] +\end{equation} in die ursprüngliche Differenzialgleichung eingesetzt. Daraus ergibt sich -\[ +\begin{equation} T^{\prime}(t)X(x) = \kappa T(t)X^{\prime \prime}(x) -\] +\end{equation} als neue Form. Nun können alle von $t$ abhängigen Ausdrücke auf die linke Seite, sowie alle von $x$ abhängigen Ausdrücke auf die rechte Seite gebracht werden und mittels der neuen Variablen $\mu$ gekoppelt werden: -\[ +\begin{equation} \frac{T^{\prime}(t)}{\kappa T(t)} = \frac{X^{\prime \prime}(x)}{X(x)} = \mu -\] +\end{equation} Durch die Einführung von $\mu$ kann das Problem nun in zwei separate Differenzialgleichungen aufgeteilt werden: -\[ +\begin{equation} T^{\prime}(t) - \kappa \mu T(t) - = + &= 0 -\] -\[ + \\ X^{\prime \prime}(x) - \mu X(x) - = + &= 0 -\] +\end{equation} Es ist an dieser Stelle zu bemerken, dass die Gleichung in $x$ in Sturm-Liouville-Form ist. Erfüllen die Randbedingungen des Stab-Problems auch @@ -116,108 +114,104 @@ werden. Widmen wir uns zunächst der ersten Gleichung. Diese Lösen wir über das charakteristische Polynom -\[ +\begin{equation} \lambda - \kappa \mu = 0. -\] +\end{equation} Es ist direkt ersichtlich, dass $\lambda = \kappa \mu$ gelten muss, was zur Lösung -\[ +\begin{equation} T(t) = e^{\kappa \mu t} -\] +\end{equation} führt. Etwas aufwändiger wird es, die zweite Gleichung zu lösen. Aufgrund der Struktur der Gleichung -\[ +\begin{equation} X^{\prime \prime}(x) - \mu X(x) = 0 -\] +\end{equation} wird ein trigonometrischer Ansatz gewählt. Die Lösungen für $X(x)$ sind also von der Form -\[ +\begin{equation} X(x) = A \sin \left( \alpha x\right) + B \cos \left( \beta x\right). -\] +\end{equation} Dieser Ansatz wird nun solange differenziert, bis alle in Gleichung (TODO: ref) enthaltenen Ableitungen vorhanden sind. Man erhält also -\[ +\begin{equation} X^{\prime}(x) = A \alpha \cos \left( \alpha x \right) - B \beta \sin \left( \beta x \right) -\] +\end{equation} und -\[ +\begin{equation} X^{\prime \prime}(x) = -A \alpha^{2} \sin \left( \alpha x \right) - B \beta^{2} \cos \left( \beta x \right). -\] +\end{equation} Eingesetzt in Gleichung (TDOD: ref) ergibt dies -\[ +\begin{equation} -A\alpha^{2}\sin(\alpha x) - B\beta^{2}\cos(\beta x) - \mu\left(A\sin(\alpha x) + B\cos(\beta x)\right) = 0 -\] +\end{equation} und durch umformen somit -\[ +\begin{equation} -A\alpha^{2}\sin(\alpha x) - B\beta^{2}\cos(\beta x) = \mu A\sin(\alpha x) + \mu B\cos(\beta x). -\] +\end{equation} Durch Koeffizientenvergleich von -\[ +\begin{equation} -A\alpha^{2}\sin(\alpha x) - = + &= \mu A\sin(\alpha x) -\] -\[ + \\ -B\beta^{2}\cos(\beta x) - = + &= \mu B\cos(\beta x) -\] +\end{equation} ist schnell ersichtlich, dass $ \mu = -\alpha^{2} = -\beta^{2} $ gelten muss für $ A \neq 0 $ und $ B \neq 0 $. Zur Berechnung von $ \mu $ bleiben also noch $ \alpha $ und $ \beta $ zu bestimmen. % TODO: Rechenweg TODO: Rechenweg... Enden auf konstanter Temperatur: -\[ +\begin{equation} u(t,x) - = + &= \sum_{n=1}^{\infty}a_{n}e^{-\frac{n^{2}\pi^{2}\kappa}{l^{2}}t} \sin\left(\frac{n\pi}{l}x\right) -\] -\[ + \\ a_{n} - = + &= \frac{2}{l}\int_{0}^{l}u(0,x)sin\left(\frac{n\pi}{l}x\right) dx -\] +\end{equation} TODO: Rechenweg... Enden isoliert: -\[ +\begin{equation} u(t,x) - = + &= a_{0} + \sum_{n=1}^{\infty}a_{n}e^{-\frac{n^{2}\pi^{2}\kappa}{l^{2}}t} \cos\left(\frac{n\pi}{l}x\right) -\] -\[ + \\ a_{0} - = + &= \frac{1}{l}\int_{0}^{l}u(0,x) dx -\] -\[ + \\ a_{n} - = + &= \frac{2}{l}\int_{0}^{l}u(0,x)sin\left(\frac{n\pi}{l}x\right) dx -\] +\end{equation} -- cgit v1.2.1 From 95ce389d41871e3e1a7dba350bf3dcdc1d67f80c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 8 Aug 2022 13:12:23 +0200 Subject: Fixed alignment issue in fourier example. --- buch/papers/sturmliouville/waermeleitung_beispiel.tex | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 0c9dd8e..27a7574 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -97,6 +97,7 @@ der neuen Variablen $\mu$ gekoppelt werden: Durch die Einführung von $\mu$ kann das Problem nun in zwei separate Differenzialgleichungen aufgeteilt werden: \begin{equation} +\begin{aligned} T^{\prime}(t) - \kappa \mu T(t) &= 0 @@ -104,6 +105,7 @@ Differenzialgleichungen aufgeteilt werden: X^{\prime \prime}(x) - \mu X(x) &= 0 +\end{aligned} \end{equation} Es ist an dieser Stelle zu bemerken, dass die Gleichung in $x$ in @@ -175,6 +177,7 @@ und durch umformen somit Durch Koeffizientenvergleich von \begin{equation} +\begin{aligned} -A\alpha^{2}\sin(\alpha x) &= \mu A\sin(\alpha x) @@ -182,6 +185,7 @@ Durch Koeffizientenvergleich von -B\beta^{2}\cos(\beta x) &= \mu B\cos(\beta x) +\end{aligned} \end{equation} ist schnell ersichtlich, dass $ \mu = -\alpha^{2} = -\beta^{2} $ gelten muss für $ A \neq 0 $ und $ B \neq 0 $. Zur Berechnung von $ \mu $ bleiben also noch @@ -190,6 +194,7 @@ $ \alpha $ und $ \beta $ zu bestimmen. % TODO: Rechenweg TODO: Rechenweg... Enden auf konstanter Temperatur: \begin{equation} +\begin{aligned} u(t,x) &= \sum_{n=1}^{\infty}a_{n}e^{-\frac{n^{2}\pi^{2}\kappa}{l^{2}}t} @@ -198,10 +203,12 @@ TODO: Rechenweg... Enden auf konstanter Temperatur: a_{n} &= \frac{2}{l}\int_{0}^{l}u(0,x)sin\left(\frac{n\pi}{l}x\right) dx +\end{aligned} \end{equation} TODO: Rechenweg... Enden isoliert: \begin{equation} +\begin{aligned} u(t,x) &= a_{0} + \sum_{n=1}^{\infty}a_{n}e^{-\frac{n^{2}\pi^{2}\kappa}{l^{2}}t} @@ -214,4 +221,5 @@ TODO: Rechenweg... Enden isoliert: a_{n} &= \frac{2}{l}\int_{0}^{l}u(0,x)sin\left(\frac{n\pi}{l}x\right) dx +\end{aligned} \end{equation} -- cgit v1.2.1 From 2cb7c0466bdaaa3eff6757382a913b3c955a0751 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 8 Aug 2022 16:57:13 +0200 Subject: Reordered fourier example. --- .../sturmliouville/waermeleitung_beispiel.tex | 160 ++++++++++++--------- 1 file changed, 90 insertions(+), 70 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 27a7574..da25b36 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -11,9 +11,11 @@ homogenen Stab und wie das Sturm-Liouville-Problem bei der Beschreibung dieses physikalischen Phänomenes auftritt. Zunächst wird ein eindimensionaler homogener Stab der Länge $l$ und -Wärmeleitkoeffizient $\kappa$. Somit ergibt sich für das Wärmeleitungsproblem +Wärmeleitkoeffizient $\kappa$. +Somit ergibt sich für das Wärmeleitungsproblem die partielle Differentialgleichung \begin{equation} + \label{eq:slp-example-fourier-heat-equation} \frac{\partial u}{\partial t} = \kappa \frac{\partial^{2}u}{{\partial x}^{2}} \end{equation} @@ -30,7 +32,8 @@ Tempreatur gehalten werden. Die Enden des Stabes auf konstanter Temperatur zu halten bedeutet, dass die Lösungsfunktion $u(t,x)$ bei $x = 0$ und $x = l$ nur die vorgegebene -Temperatur zurückgeben darf. Es folgen nun +Temperatur zurückgeben darf. +Es folgen nun \begin{equation} u(t,0) = @@ -52,7 +55,8 @@ Aus der Physik ist bekannt, dass Wärme immer von der höheren zur tieferen Temperatur fliesst. Um Wärmefluss zu unterdrücken, muss also dafür gesorgt werden, dass am Rand des Stabes keine Temperaturdifferenz existiert oder dass die partiellen Ableitungen von $u(t,x)$ nach $x$ bei $x = 0$ und $x = l$ -verschwinden. Somit folgen +verschwinden. +Somit folgen \begin{equation} \frac{\partial}{\partial x} u(t, 0) = @@ -70,18 +74,20 @@ als Randbedingungen. % TODO: Formeln sauber in Text einbinden. Da die Lösungsfunktion von zwei Variablen abhängig ist, wird als Lösungsansatz -die Separationsmethode verwendet. Dazu wird -\begin{equation} +die Separationsmethode verwendet. +Dazu wird +\[ u(t,x) = T(t)X(x) -\end{equation} -in die ursprüngliche Differenzialgleichung eingesetzt. Daraus ergibt sich -\begin{equation} +\] +in die ursprüngliche Differenzialgleichung eingesetzt. +Daraus ergibt sich +\[ T^{\prime}(t)X(x) = \kappa T(t)X^{\prime \prime}(x) -\end{equation} +\] als neue Form. Nun können alle von $t$ abhängigen Ausdrücke auf die linke Seite, sowie alle @@ -97,103 +103,117 @@ der neuen Variablen $\mu$ gekoppelt werden: Durch die Einführung von $\mu$ kann das Problem nun in zwei separate Differenzialgleichungen aufgeteilt werden: \begin{equation} -\begin{aligned} - T^{\prime}(t) - \kappa \mu T(t) - &= - 0 - \\ + \label{eq:slp-example-fourier-separated-x} X^{\prime \prime}(x) - \mu X(x) - &= - 0 -\end{aligned} -\end{equation} - -Es ist an dieser Stelle zu bemerken, dass die Gleichung in $x$ in -Sturm-Liouville-Form ist. Erfüllen die Randbedingungen des Stab-Problems auch -die Randbedingungen des Sturm-Liouville-Problems, kann bereits die Aussage -getroffen werden, dass alle Lösungen für die Gleichung in $x$ orthogonal sein -werden. - -Widmen wir uns zunächst der ersten Gleichung. Diese Lösen wir über das -charakteristische Polynom -\begin{equation} - \lambda - \kappa \mu = - 0. + 0 \end{equation} -Es ist direkt ersichtlich, dass $\lambda = \kappa \mu$ gelten muss, was zur -Lösung \begin{equation} - T(t) + \label{eq:slp-example-fourier-separated-t} + T^{\prime}(t) - \kappa \mu T(t) = - e^{\kappa \mu t} + 0 \end{equation} -führt. -Etwas aufwändiger wird es, die zweite Gleichung zu lösen. Aufgrund der Struktur -der Gleichung -\begin{equation} +Es ist an dieser Stelle zu bemerken, dass die Gleichung in $x$ in +Sturm-Liouville-Form ist. +Erfüllen die Randbedingungen des Stab-Problems auch die Randbedingungen des +Sturm-Liouville-Problems, kann bereits die Aussage getroffen werden, dass alle +Lösungen für die Gleichung in $x$ orthogonal sein werden. + +Widmen wir uns zunächst der ersten Gleichung. +Aufgrund der Struktur der Gleichung +\[ X^{\prime \prime}(x) - \mu X(x) = 0 -\end{equation} -wird ein trigonometrischer Ansatz gewählt. Die Lösungen für $X(x)$ sind also -von der Form -\begin{equation} +\] +wird ein trigonometrischer Ansatz gewählt. +Die Lösungen für $X(x)$ sind also von der Form +\[ X(x) = A \sin \left( \alpha x\right) + B \cos \left( \beta x\right). -\end{equation} +\] -Dieser Ansatz wird nun solange differenziert, bis alle in Gleichung (TODO: ref) -enthaltenen Ableitungen vorhanden sind. Man erhält also -\begin{equation} +Dieser Ansatz wird nun solange differenziert, bis alle in Gleichung +\eqref{eq:slp-example-fourier-separated-x} enthaltenen Ableitungen vorhanden +sind. +Man erhält also +\[ X^{\prime}(x) = - A \alpha \cos \left( \alpha x \right) - - B \beta \sin \left( \beta x \right) -\end{equation} + \alpha A \cos \left( \alpha x \right) - + \beta B \sin \left( \beta x \right) +\] und -\begin{equation} +\[ X^{\prime \prime}(x) = - -A \alpha^{2} \sin \left( \alpha x \right) - - B \beta^{2} \cos \left( \beta x \right). -\end{equation} + -\alpha^{2} A \sin \left( \alpha x \right) - + \beta^{2} B \cos \left( \beta x \right). +\] -Eingesetzt in Gleichung (TDOD: ref) ergibt dies -\begin{equation} - -A\alpha^{2}\sin(\alpha x) - B\beta^{2}\cos(\beta x) - +Eingesetzt in Gleichung \eqref{eq:slp-example-fourier-separated-x} ergibt dies +\[ + -\alpha^{2}A\sin(\alpha x) - \beta^{2}B\cos(\beta x) - \mu\left(A\sin(\alpha x) + B\cos(\beta x)\right) = 0 -\end{equation} +\] und durch umformen somit -\begin{equation} - -A\alpha^{2}\sin(\alpha x) - B\beta^{2}\cos(\beta x) +\[ + -\alpha^{2}A\sin(\alpha x) - \beta^{2}B\cos(\beta x) = \mu A\sin(\alpha x) + \mu B\cos(\beta x). -\end{equation} +\] Durch Koeffizientenvergleich von -\begin{equation} +\[ \begin{aligned} - -A\alpha^{2}\sin(\alpha x) + -\alpha^{2}A\sin(\alpha x) &= \mu A\sin(\alpha x) \\ - -B\beta^{2}\cos(\beta x) + -\beta^{2}B\cos(\beta x) &= \mu B\cos(\beta x) \end{aligned} -\end{equation} +\] ist schnell ersichtlich, dass $ \mu = -\alpha^{2} = -\beta^{2} $ gelten muss für -$ A \neq 0 $ und $ B \neq 0 $. Zur Berechnung von $ \mu $ bleiben also noch -$ \alpha $ und $ \beta $ zu bestimmen. +$ A \neq 0 $ und $ B \neq 0 $. +Zur Berechnung von $ \mu $ bleiben also noch $ \alpha $ und $ \beta $ zu +bestimmen. + +TODO: randbedingungen!!---- + +Betrachten wir nun die zweite Gleichung +\eqref{eq:slp-example-fourier-separated-t}. +Diese Lösen wir über das charakteristische Polynom +\[ + \lambda - \kappa \mu + = + 0. +\] +Es ist direkt ersichtlich, dass $\lambda = \kappa \mu$ gelten muss, was zur +Lösung +\[ + T(t) + = + e^{-\kappa \mu t} +\] +führt. +Und mit mit dem Resultat von zuvor die Lösung +\[ + T(t) + = + e^{-\frac{n^{2}\pi^{2}\kappa}{l^{2}}t} +\] +ergibt. % TODO: Rechenweg TODO: Rechenweg... Enden auf konstanter Temperatur: -\begin{equation} +\[ \begin{aligned} u(t,x) &= @@ -204,10 +224,10 @@ TODO: Rechenweg... Enden auf konstanter Temperatur: &= \frac{2}{l}\int_{0}^{l}u(0,x)sin\left(\frac{n\pi}{l}x\right) dx \end{aligned} -\end{equation} +\] TODO: Rechenweg... Enden isoliert: -\begin{equation} +\[ \begin{aligned} u(t,x) &= @@ -222,4 +242,4 @@ TODO: Rechenweg... Enden isoliert: &= \frac{2}{l}\int_{0}^{l}u(0,x)sin\left(\frac{n\pi}{l}x\right) dx \end{aligned} -\end{equation} +\] -- cgit v1.2.1 From f4aa64f6ea1810774621af11329c369924351f40 Mon Sep 17 00:00:00 2001 From: Alain Date: Mon, 8 Aug 2022 17:36:16 +0200 Subject: Chlini Schritt --- buch/papers/parzyl/teil1.tex | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index 239f8c7..02ce0f2 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -6,8 +6,8 @@ \section{Lösung \label{parzyl:section:teil1}} \rhead{Problemstellung} -Die Differentialgleichungen \eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2} können mit einer Substitution -in die Whittaker Gleichung gelöst werden. +Die Differentialgleichungen \eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2} können mit +Hilfe der Whittaker Gleichung gelöst werden. \begin{definition} Die Funktion \begin{equation*} @@ -19,13 +19,31 @@ in die Whittaker Gleichung gelöst werden. + m - k, 1 + 2m; z) \end{equation*} heisst Whittaker Funktion und ist eine Lösung - von + von der Whittaker Differentialgleichung \begin{equation} \frac{d^2W}{d z^2} + \left(-\frac{1}{4} + \frac{k}{z} + \frac{\frac{1}{4} - m^2}{z^2} \right) W = 0. + \label{parzyl:eq:whitDiffEq} \end{equation} \end{definition} - -Lösung Folgt\dots - - +Es wird nun die Differentialgleichung bestimmt, welche +\begin{equation} + w = z^{-1/2} W_{k,-1/4} \left({\textstyle \frac{1}{2}} z^2\right) +\end{equation} +als Lösung hat. +Dafür wird $w$ in \eqref{parzyl:eq:whitDiffEq} eingesetzt woraus +\begin{equation} + \frac{d^2 w}{dz^2} - \left(\frac{1}{4} z^2 - 2k\right) w = 0 +\label{parzyl:eq:weberDiffEq} +\end{equation} +resultiert. DIese Differentialgleichung ist dieselbe wie +\eqref{parzyl:sep_dgl_2} und \eqref{parzyl:sep_dgl_2}, welche somit +$w$ als Lösung haben. +Da es sich um eine Differentialgleichung zweiter Ordnung handelt, hat sie nicht nur +eine sondern zwei Lösungen. +Die zweite Lösung der Whittaker-Gleichung ist $W_{k,-m} (z)$. +Somit ist +\begin{equation} + w = z^{-1/2} W_{k,1/4} \left({\textstyle \frac{1}{2}} z^2\right) +\end{equation} +eine weiter Lösung von \eqref{parzyl:eq:weberDiffEq}. -- cgit v1.2.1 From 4fadfb233a3b7fdc3de486dd85d64fa62408b2a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Tue, 9 Aug 2022 18:34:54 +0200 Subject: Added some text, corrected a few errors and added two file extensions to gitignore. --- buch/papers/sturmliouville/.gitignore | 2 ++ .../papers/sturmliouville/waermeleitung_beispiel.tex | 20 +++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/buch/papers/sturmliouville/.gitignore b/buch/papers/sturmliouville/.gitignore index a136337..47f7228 100644 --- a/buch/papers/sturmliouville/.gitignore +++ b/buch/papers/sturmliouville/.gitignore @@ -1 +1,3 @@ *.pdf +*.fls +*.fdb_latexmk \ No newline at end of file diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index da25b36..4885694 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -35,6 +35,7 @@ Lösungsfunktion $u(t,x)$ bei $x = 0$ und $x = l$ nur die vorgegebene Temperatur zurückgeben darf. Es folgen nun \begin{equation} + \label{eq:slp-example-fourier-boundary-condition-ends-constant} u(t,0) = u(t,l) @@ -58,6 +59,7 @@ dass die partiellen Ableitungen von $u(t,x)$ nach $x$ bei $x = 0$ und $x = l$ verschwinden. Somit folgen \begin{equation} + \label{eq:slp-example-fourier-boundary-condition-ends-isolated} \frac{\partial}{\partial x} u(t, 0) = \frac{\partial}{\partial x} u(t, l) @@ -120,6 +122,7 @@ Sturm-Liouville-Form ist. Erfüllen die Randbedingungen des Stab-Problems auch die Randbedingungen des Sturm-Liouville-Problems, kann bereits die Aussage getroffen werden, dass alle Lösungen für die Gleichung in $x$ orthogonal sein werden. +Mehr dazu später. Widmen wir uns zunächst der ersten Gleichung. Aufgrund der Struktur der Gleichung @@ -181,11 +184,22 @@ Durch Koeffizientenvergleich von \end{aligned} \] ist schnell ersichtlich, dass $ \mu = -\alpha^{2} = -\beta^{2} $ gelten muss für -$ A \neq 0 $ und $ B \neq 0 $. +$ A \neq 0 $ oder $ B \neq 0 $. Zur Berechnung von $ \mu $ bleiben also noch $ \alpha $ und $ \beta $ zu bestimmen. +Dazu werden die Randbedingungen +\eqref{eq:slp-example-fourier-boundary-condition-ends-constant} und +\eqref{eq:slp-example-fourier-boundary-condition-ends-isolated} benötigt. +Zu bemerken ist, dass die Randbedingungen nur Anforderungen in $x$ stellen und +somit direkt für $X(x)$ übernomen werden können. -TODO: randbedingungen!!---- +Daraus ergibt sich für einen Stab mit Enden auf konstanter Temperatur + +\begin{equation} + \mu + = + -\frac{n^{2}\pi^{2}}{l^{2}} +\end{equation} Betrachten wir nun die zweite Gleichung \eqref{eq:slp-example-fourier-separated-t}. @@ -203,7 +217,7 @@ Lösung e^{-\kappa \mu t} \] führt. -Und mit mit dem Resultat von zuvor die Lösung +Und mit dem Resultat (TODO) die Lösung \[ T(t) = -- cgit v1.2.1 From 2e6fd0152fc9c135ced14ea186ac7e2fc1b15f7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Tue, 9 Aug 2022 18:38:54 +0200 Subject: Removed file extensions from gitignore. --- buch/papers/sturmliouville/.gitignore | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/buch/papers/sturmliouville/.gitignore b/buch/papers/sturmliouville/.gitignore index 47f7228..f08278d 100644 --- a/buch/papers/sturmliouville/.gitignore +++ b/buch/papers/sturmliouville/.gitignore @@ -1,3 +1 @@ -*.pdf -*.fls -*.fdb_latexmk \ No newline at end of file +*.pdf \ No newline at end of file -- cgit v1.2.1 From 67dc3b04c3926f0c7beb5cd6781cc58a4c38e667 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Tue, 9 Aug 2022 21:12:25 +0200 Subject: Added section to show orthogonality with boundary conditions to fourier example. --- .../sturmliouville/waermeleitung_beispiel.tex | 54 ++++++++++++++++++++-- 1 file changed, 50 insertions(+), 4 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 4885694..92ecc49 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -122,7 +122,52 @@ Sturm-Liouville-Form ist. Erfüllen die Randbedingungen des Stab-Problems auch die Randbedingungen des Sturm-Liouville-Problems, kann bereits die Aussage getroffen werden, dass alle Lösungen für die Gleichung in $x$ orthogonal sein werden. -Mehr dazu später. + +Damit die Lösungen von $X$ orthogonal sind, müssen also die Gleichungen +\begin{equation} +\begin{aligned} + \label{eq:slp-example-fourier-randbedingungen} + k_a y(a) + h_a p(a) y'(a) &= 0 \\ + k_b y(b) + h_b p(b) y'(b) &= 0 +\end{aligned} +\end{equation} +erfüllt sein und es muss ausserdem +\begin{equation} +\begin{aligned} + \label{eq:slp-example-fourier-coefficient-constraints} + |k_a|^2 + |h_a|^2 &\neq 0\\ + |k_b|^2 + |h_b|^2 &\neq 0\\ +\end{aligned} +\end{equation} +gelten. + +Um zu verifizieren, ob die Randbedingungen erfüllt sind, benötigen wir zunächst +$p(x)$. +Dazu wird die Gleichung \eqref{eq:slp-example-fourier-separated-x} mit der +Sturm-Liouville-Form \eqref{eq:sturm-liouville-equation} verglichen, was zu +$p(x) = 1$ führt. + +Werden nun $p(x)$ und die Randbedingungen +\eqref{eq:slp-example-fourier-boundary-condition-ends-constant} in +\eqref{eq:slp-example-fourier-randbedingungen} eigesetzt, erhält man +\[ +\begin{aligned} + k_a y(0) + h_a y'(0) &= h_a y'(0) = 0 \\ + k_b y(l) + h_b y'(l) &= h_b y'(l) = 0. +\end{aligned} +\] +Damit die Gleichungen erfüllt sind, müssen $h_a = 0$ und $h_b = 0$ sein. +Zusätzlich müssen aber die Bedingungen +\eqref{eq:slp-example-fourier-coefficient-constraints} erfüllt sein und +da $y(0) = 0$ und $y(l) = 0$ sind, können belibige $k_a \neq 0$ und $k_b \neq 0$ +gewählt werden. + +Somit ist gezeigt, dass die Randbedingungen des Stab-Problems für Enden auf +konstanter Temperatur auch die Sturm-Liouville-Randbedingungen erfüllen und +alle daraus reultierenden Lösungen orthogonal sind. +Analog dazu kann gezeit werden, dass die Randbedingungen für einen Stab mit +isolierten Enden ebenfalls die Sturm-Liouville-Randbedingungen erfüllen und +somit auch zu orthogonalen Lösungen führen. Widmen wir uns zunächst der ersten Gleichung. Aufgrund der Struktur der Gleichung @@ -187,7 +232,7 @@ ist schnell ersichtlich, dass $ \mu = -\alpha^{2} = -\beta^{2} $ gelten muss fü $ A \neq 0 $ oder $ B \neq 0 $. Zur Berechnung von $ \mu $ bleiben also noch $ \alpha $ und $ \beta $ zu bestimmen. -Dazu werden die Randbedingungen +Dazu werden nochmals die Randbedingungen \eqref{eq:slp-example-fourier-boundary-condition-ends-constant} und \eqref{eq:slp-example-fourier-boundary-condition-ends-isolated} benötigt. Zu bemerken ist, dass die Randbedingungen nur Anforderungen in $x$ stellen und @@ -196,12 +241,13 @@ somit direkt für $X(x)$ übernomen werden können. Daraus ergibt sich für einen Stab mit Enden auf konstanter Temperatur \begin{equation} + \label{eq:slp-example-fourier-mu-solution} \mu = -\frac{n^{2}\pi^{2}}{l^{2}} \end{equation} -Betrachten wir nun die zweite Gleichung +Betrachten wir nun die zweite Gleichung der Separation \eqref{eq:slp-example-fourier-separated-t}. Diese Lösen wir über das charakteristische Polynom \[ @@ -217,7 +263,7 @@ Lösung e^{-\kappa \mu t} \] führt. -Und mit dem Resultat (TODO) die Lösung +Und mit dem Resultat \eqref{eq:slp-example-fourier-mu-solution} die Lösung \[ T(t) = -- cgit v1.2.1 From fffae23e55eae8484953d699b22f19406b1b408c Mon Sep 17 00:00:00 2001 From: Alain Date: Wed, 10 Aug 2022 23:05:30 +0200 Subject: mikroschritt --- buch/papers/parzyl/teil1.tex | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index 02ce0f2..a3e9626 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -42,8 +42,22 @@ $w$ als Lösung haben. Da es sich um eine Differentialgleichung zweiter Ordnung handelt, hat sie nicht nur eine sondern zwei Lösungen. Die zweite Lösung der Whittaker-Gleichung ist $W_{k,-m} (z)$. -Somit ist -\begin{equation} - w = z^{-1/2} W_{k,1/4} \left({\textstyle \frac{1}{2}} z^2\right) -\end{equation} -eine weiter Lösung von \eqref{parzyl:eq:weberDiffEq}. +Somit hat \eqref{parzyl:eq:weberDiffEq} +\begin{align} + w_1 & = z^{-1/2} W_{k,-1/4} \left({\textstyle \frac{1}{2}} z^2\right)\\ + w_2 & = z^{-1/2} W_{k,1/4} \left({\textstyle \frac{1}{2}} z^2\right) +\end{align} +als Lösungen. + +Ausgeschrieben ergeben sich als Lösungen +\begin{align} + w_1 &= e^{-z^2/4} \, + {}_{1} F_{1} + ( + {\textstyle \frac{1}{4}} + - k, {\textstyle \frac{1}{2}} ; {\textstyle \frac{1}{2}}z^2) \\ + w_2 & = z e^{-z^2/4} \, + {}_{1} F_{1} + ({\textstyle \frac{3}{4}} + - k, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2) +\end{align} \ No newline at end of file -- cgit v1.2.1 From 330038bafaaf6ed6462a3efdcf9869b6ecf645ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Thu, 11 Aug 2022 14:34:39 +0200 Subject: Added mu calculation to both fourier examples. --- buch/papers/sturmliouville/standalone.tex | 31 ------- .../sturmliouville/waermeleitung_beispiel.tex | 99 ++++++++++++++++++++-- 2 files changed, 94 insertions(+), 36 deletions(-) delete mode 100644 buch/papers/sturmliouville/standalone.tex diff --git a/buch/papers/sturmliouville/standalone.tex b/buch/papers/sturmliouville/standalone.tex deleted file mode 100644 index cd0e8dc..0000000 --- a/buch/papers/sturmliouville/standalone.tex +++ /dev/null @@ -1,31 +0,0 @@ -\documentclass{book} - -\def\IncludeBookCover{0} -\input{common/packages.tex} - -% additional packages used by the individual papers, add a line for -% each paper -\input{papers/common/addpackages.tex} - -% workaround for biblatex bug -\makeatletter -\def\blx@maxline{77} -\makeatother -\addbibresource{chapters/references.bib} - -% Bibresources for each article -\input{papers/common/addbibresources.tex} - -% make sure the last index starts on an odd page -\AtEndDocument{\clearpage\ifodd\value{page}\else\null\clearpage\fi} -\makeindex - -%\pgfplotsset{compat=1.12} -\setlength{\headheight}{15pt} % fix headheight warning -\DeclareGraphicsRule{*}{mps}{*}{} - -\begin{document} - \input{common/macros.tex} - \def\chapterauthor#1{{\large #1}\bigskip\bigskip} - \input{papers/sturmliouville/main.tex} -\end{document} diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 92ecc49..89d158c 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -216,7 +216,7 @@ und durch umformen somit \mu A\sin(\alpha x) + \mu B\cos(\beta x). \] -Durch Koeffizientenvergleich von +Mittels Koeffizientenvergleich von \[ \begin{aligned} -\alpha^{2}A\sin(\alpha x) @@ -238,16 +238,105 @@ Dazu werden nochmals die Randbedingungen Zu bemerken ist, dass die Randbedingungen nur Anforderungen in $x$ stellen und somit direkt für $X(x)$ übernomen werden können. -Daraus ergibt sich für einen Stab mit Enden auf konstanter Temperatur +Da die Koeffizienten $A$ und $B$, sowie die Parameter $\alpha$ uns $\beta$ im +allgemeninen ungleich $0$ sind, müssen die Randbedingungen durch die +trigonometrischen Funktionen erfüllt werden. +Es werden nun die Randbedingungen +\eqref{eq:slp-example-fourier-boundary-condition-ends-constant} für einen Stab +mit Enden auf konstanter Temperatur in die Gleichung +\eqref{eq:slp-example-fourier-separated-x} eingesetzt. +Betrachten wir zunächst die Bedingung für $x = 0$. +Dies fürht zu +\[ + X(0) + = + A \sin(0 \alpha) + B \cos(0 \beta) + = + 0. +\] +Da $\cos(0) \neq 0$ ist, muss in diesem Fall $B = 0$ gelten. +Für den ersten Summanden ist wegen $\sin(0) = 0$ die Randbedingung erfüllt. + +Wird nun die zweite Randbedingung für $x = l$ mit $B = 0$ eingesetzt, ergibt +sich +\[ + X(l) + = + A \sin(\alpha l) + 0 \cos(\beta l) + = + A \sin(\alpha l) + = 0. +\] + +$\alpha$ muss also so gewählt werden, dass $\sin(\alpha l) = 0$ gilt. +Es gilt nun nach $\alpha$ aufzulösen: +\[ +\begin{aligned} + \sin(\alpha l) &= 0 \\ + \alpha l &= n \pi \qquad n \in \mathbb{N} \\ + \alpha &= \frac{n \pi}{l} \qquad n \in \mathbb{N} +\end{aligned} +\] + +Es folgt nun wegen $\mu = -\alpha^{2}$, dass +\begin{equation} + \mu_1 = -\alpha^{2} = -\frac{n^{2}\pi^{2}}{l^{2}} +\end{equation} +sein muss. +Ausserdem ist zu bemerken, dass dies auch gleich $-\beta^{2}$ ist. +Da aber $B = 0$ gilt und der Summand mit $\beta$ verschwindet, ist dies keine +Verletzung der Randbedingungen. + +Durch alanoges Vorgehen kann nun auch das Problem mit isolierten Enden gelöst +werden. +Setzen wir nun die Randbedingungen +\eqref{eq:slp-example-fourier-boundary-condition-ends-isolated} in $X^{\prime}$ +ein, beginnend für $x = 0$. Es ergibt sich +\[ + X^{\prime}(0) + = + \alpha A \cos(\alpha 0) - \beta B \sin(\beta 0) + = 0. +\] +In diesem Fall muss $A = 0$ gelten. +Zusammen mit der Bedignung für $x = l$ +folgt nun +\[ + X^{\prime}(l) + = + \alpha A \cos(\alpha l) - \beta B \sin(\beta l) + = + -\beta B \sin(\beta l) + = 0. +\] + +Wiedrum muss über die $\sin$-Funktion sicher gestellt werden, dass der Ausdruck +den Randbedingungen entspricht. Es folgt nun +\[ +\begin{aligned} + \sin(\beta l) &= 0 \\ + \beta l &= n \pi \qquad n \in \mathbb{N} \\ + \beta &= \frac{n \pi}{l} \qquad n \in \mathbb{N} +\end{aligned} +\] +und somit +\[ + \mu_2 = -\alpha^{2} = -\frac{n^{2}\pi^{2}}{l^{2}}. +\] + +Es ergibt sich also sowohl für einen Stab mit Enden auf konstanter Temperatur +wie auch mit isolierten Enden \begin{equation} \label{eq:slp-example-fourier-mu-solution} \mu = - -\frac{n^{2}\pi^{2}}{l^{2}} + -\frac{n^{2}\pi^{2}}{l^{2}}. \end{equation} -Betrachten wir nun die zweite Gleichung der Separation + + +Betrachten wir zuletzt die zweite Gleichung der Separation \eqref{eq:slp-example-fourier-separated-t}. Diese Lösen wir über das charakteristische Polynom \[ @@ -263,7 +352,7 @@ Lösung e^{-\kappa \mu t} \] führt. -Und mit dem Resultat \eqref{eq:slp-example-fourier-mu-solution} die Lösung +Und mit dem Resultat \eqref{eq:slp-example-fourier-mu-solution} \[ T(t) = -- cgit v1.2.1 From cc1f753efdfe46d546b1769e2f61d9765380373d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Thu, 11 Aug 2022 14:47:19 +0200 Subject: Corrected some grammar. --- buch/papers/sturmliouville/waermeleitung_beispiel.tex | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 89d158c..1b267cb 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -270,7 +270,7 @@ sich \] $\alpha$ muss also so gewählt werden, dass $\sin(\alpha l) = 0$ gilt. -Es gilt nun nach $\alpha$ aufzulösen: +Es bleibt noch nach $\alpha$ aufzulösen: \[ \begin{aligned} \sin(\alpha l) &= 0 \\ @@ -296,7 +296,7 @@ ein, beginnend für $x = 0$. Es ergibt sich \[ X^{\prime}(0) = - \alpha A \cos(\alpha 0) - \beta B \sin(\beta 0) + \alpha A \cos(0 \alpha) - \beta B \sin(0 \beta) = 0. \] In diesem Fall muss $A = 0$ gelten. @@ -305,14 +305,15 @@ folgt nun \[ X^{\prime}(l) = - \alpha A \cos(\alpha l) - \beta B \sin(\beta l) + 0 \alpha \cos(\alpha l) - \beta B \sin(\beta l) = -\beta B \sin(\beta l) = 0. \] -Wiedrum muss über die $\sin$-Funktion sicher gestellt werden, dass der Ausdruck -den Randbedingungen entspricht. Es folgt nun +Wiedrum muss über die $ \sin $-Funktion sicher gestellt werden, dass der +Ausdruck den Randbedingungen entspricht. +Es folgt nun \[ \begin{aligned} \sin(\beta l) &= 0 \\ @@ -322,7 +323,7 @@ den Randbedingungen entspricht. Es folgt nun \] und somit \[ - \mu_2 = -\alpha^{2} = -\frac{n^{2}\pi^{2}}{l^{2}}. + \mu_2 = -\beta^{2} = -\frac{n^{2}\pi^{2}}{l^{2}}. \] Es ergibt sich also sowohl für einen Stab mit Enden auf konstanter Temperatur @@ -334,6 +335,7 @@ wie auch mit isolierten Enden -\frac{n^{2}\pi^{2}}{l^{2}}. \end{equation} +%%%% Koeffizienten a_n und b_n mittels skalarprodukt. %%%%%%%%%%%%%%%%%%%%%%%%%% Betrachten wir zuletzt die zweite Gleichung der Separation -- cgit v1.2.1 From d8b0e6f27ac13c684bf829f4f73c11f4408945a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Thu, 11 Aug 2022 15:29:32 +0200 Subject: Added Tschebyscheff file. --- buch/papers/sturmliouville/beispiele.tex | 5 ++++- buch/papers/sturmliouville/tschebyscheff_beispiel.tex | 7 +++++++ buch/papers/sturmliouville/waermeleitung_beispiel.tex | 15 +++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 buch/papers/sturmliouville/tschebyscheff_beispiel.tex diff --git a/buch/papers/sturmliouville/beispiele.tex b/buch/papers/sturmliouville/beispiele.tex index b23593e..94082cf 100644 --- a/buch/papers/sturmliouville/beispiele.tex +++ b/buch/papers/sturmliouville/beispiele.tex @@ -8,4 +8,7 @@ \rhead{Beispiele} % Fourier: Erik work -\input{papers/sturmliouville/waermeleitung_beispiel.tex} \ No newline at end of file +\input{papers/sturmliouville/waermeleitung_beispiel.tex} + +% Tschebyscheff +\input{papers/sturmliouville/tschebyscheff_beispiel.tex} \ No newline at end of file diff --git a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex new file mode 100644 index 0000000..54f13d4 --- /dev/null +++ b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex @@ -0,0 +1,7 @@ +% +% tschebyscheff_beispiel.tex +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% + +\subsection{Tschebyscheff} \ No newline at end of file diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 1b267cb..14fca40 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -337,6 +337,21 @@ wie auch mit isolierten Enden %%%% Koeffizienten a_n und b_n mittels skalarprodukt. %%%%%%%%%%%%%%%%%%%%%%%%%% +Bisher wurde über die Koeffizienten $A$ und $B$ noch nicht viel ausgesagt. +Zunächst ist wegen vorhergehender Rechnung ersichtlich, dass es sich bei +$A$ und $B$ nicht um einzelne Koeffizienten handelt. +Stattdessen können die Koeffizienten für jedes $n \in \mathbb{N}$ +unterschiedlich sein. +Schreiben wir also die Lösung $X(x)$ um zu +\[ + X(x) + = + a_n\sin\left(\frac{n\pi}{l}x\right) + + + b_n\cos\left(\frac{n\pi}{l}x\right) +\] +was für jedes $n$ wiederum eine Linearkombination aus orthogonalen Funktionen +ist. Betrachten wir zuletzt die zweite Gleichung der Separation \eqref{eq:slp-example-fourier-separated-t}. -- cgit v1.2.1 From e27b521c00cdde53f0cbc0f0051881b5242adadc Mon Sep 17 00:00:00 2001 From: haddoucher Date: Thu, 11 Aug 2022 18:47:14 +0200 Subject: Beispiel & einleitung beispiel angefangen und einleitung korrigiert --- buch/chapters/070-orthogonalitaet/sturm.tex | 2 +- buch/papers/sturmliouville/einleitung.tex | 6 ++- .../sturmliouville/tschebyscheff_beispiel.tex | 51 +++++++++++++++++++++- 3 files changed, 55 insertions(+), 4 deletions(-) diff --git a/buch/chapters/070-orthogonalitaet/sturm.tex b/buch/chapters/070-orthogonalitaet/sturm.tex index ab68377..80bd5f4 100644 --- a/buch/chapters/070-orthogonalitaet/sturm.tex +++ b/buch/chapters/070-orthogonalitaet/sturm.tex @@ -405,7 +405,7 @@ L % % Beispiele % -\subsection{Beispiele} +\subsection{Beispiele\label{sub:beispiele_sturm_liouville_problem}} Die meisten der früher vorgestellten Funktionenfamilien stellen sich als Lösungen eines geeigneten Sturm-Liouville-Problems heraus. Alle Eigenschaften aus der Sturm-Liouville-Theorie gelten daher diff --git a/buch/papers/sturmliouville/einleitung.tex b/buch/papers/sturmliouville/einleitung.tex index 44c3192..78c1800 100644 --- a/buch/papers/sturmliouville/einleitung.tex +++ b/buch/papers/sturmliouville/einleitung.tex @@ -10,7 +10,7 @@ Gemeinsam haben sie in der mathematischen Physik die Sturm-Liouville-Theorie ent Normalerweise betrachtet man für das Strum-Liouville-Problem eine gewöhnliche Differentialgleichung 2. Ordnung, und wenn es sich um eine partielle Differentialgleichung handelt, kann man sie mit Hilfe einiger Methoden in mehrere gewöhnliche Differentialgleichungen umwandeln, wie z. B. den Separationsansatz, die partielle Differentialgleichung mit mehreren Variablen. \begin{definition} - \index{Sturm-Liouville-Gleichung} + \index{Sturm-Liouville-Gleichung}% Angenommen man hat die lineare homogene Differentialgleichung \begin{equation} \frac{d^2y}{dx^2} + a(x)\frac{dy}{dx} + b(x)y = 0 @@ -20,7 +20,7 @@ und schreibt die Gleichung um in: \label{eq:sturm-liouville-equation} \frac{d}{dx}\lbrack p(x) \frac{dy}{dx} \rbrack + \lbrack q(x) + \lambda w(x) \rbrack y = 0 \end{equation} -, diese Gleichung wird dann Sturm-liouville-Gleichung bezeichnet. +, diese Gleichung wird dann Sturm-Liouville-Gleichung bezeichnet. \end{definition} Alle homogene 2.Ordnung lineare gewöhnliche Differentialgleichungen können in die Form der Gleichung \ref{eq:sturm-liouville-equation} umgeformt werden. @@ -71,6 +71,7 @@ Die Funktionen für das reguläre und das singuläre Sturm-Liouville-Problem sin \subsection{Das reguläre Sturm-Liouville-Problem\label{sub:reguläre_sturm_liouville_problem}} Damit es sich um ein reguläres Sturm-Liouville-Problem handelt, müssen einige Bedingungen beachtet werden. \begin{definition} + \label{def:reguläres_sturm-liouville-problem} \index{regläres Sturm-Liouville-Problem} Die Bedingungen für ein reguläres Sturm-Liouville-Problem sind: \begin{itemize} @@ -91,6 +92,7 @@ Bei einem regulären Sturm-Liouville-Problem geht es darum, ohne genaue Kenntnis \subsection{Das singuläre Sturm-Liouville-Problem\label{sub:singuläre_sturm_liouville_problem}} Von einem singulären Sturm-Liouville-Problem spricht man, wenn die Bedingungen des regulärem Problem nicht erfüllt sind. \begin{definition} + \label{def:singulär_sturm-liouville-problem} \index{singuläres Sturm-Liouville-Problem} Es handelt sich um ein singuläres Sturm-Liouville-Problem, wenn: \begin{itemize} diff --git a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex index 54f13d4..391841a 100644 --- a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex +++ b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex @@ -4,4 +4,53 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\subsection{Tschebyscheff} \ No newline at end of file +\subsection{Tschebyscheff-Polynome\label{sub:tschebyscheff-polynome}} +Im Kapitel \ref{sub:beispiele_sturm_liouville_problem} sind die Koeffizientenfunktionen die man braucht schon aufgeliste, und zwar mit +\begin{align*} + w(x) &= \frac{1}{\sqrt{1-x^2}} \\ + p(x) &= \sqrt{1-x^2} \\ + q(x) &= 0 +\end{align*}. +Da die Sturm-Liouville-Gleichung +\begin{equation} + \label{eq:sturm-liouville-equation} + \frac{d}{dx}\lbrack \sqrt{1-x^2} \frac{dy}{dx} \rbrack + \lbrack 0 + \lambda \frac{1}{\sqrt{1-x^2}} \rbrack y = 0 +\end{equation} +nun mit den Koeffizientenfunktionen aufgestellt werden kann, bleibt die Frage, ob es sich um ein reguläres oder singuläres Sturm-Liouville-Problem handelt. +Für das reguläre Problem laut der Definition \ref{def:reguläres_sturm-liouville-problem} muss die funktion $p(x) = \sqrt{1-x^2}$, $p'(x) = -2x$, $q(x) = 0$ und $w(x) = \frac{1}{\sqrt{1-x^2}}$ stetig und reell sein - und sie sind es auch. +Auf dem Intervall $(-1,1)$ sind die Tschebyscheff-Polynome erster Art mit Hilfe von Hyperbelfunktionen +\begin{equation} + T_n(x) = \cos n (\arccos x) +\end{equation}. +Für $x>1$ und $x<-1$ sehen die Polynome wie folgt aus: +\begin{equation} + T_n(x) = \left\{\begin{array}{ll} \cosh (n \arccos x), & x > 1\\ + (-1)^n \cosh (n \arccos (-x)), & x<-1 \end{array}\right. +\end{equation}, +jedoch ist die Orthogonalität nur auf dem Intervall $\[ -1, 1\]$ sichergestellt. +Die nächste Bedingung beinhaltet, dass die Funktion $p(x)^-1$ und $w(x)>0$ sein müssen. +Die Funktion +\begin{equation*} + p(x)^-1 = \frac{1}{\sqrt{1-x^2}} +\end{equation*} +ist die gleiche wie $w(x)$. + +Für die Verifizierung der Randbedingungen benötigt man erneut $p(x)$. +Da sich die Polynome nur auf dem Intervall $\[ -1,1 \]$ orthogonal verhalten, sind $a = -1$ und $b = 1$ gesetzt. +Beim einsetzen in die Randbedingung \ref{eq:randbedingungen}, erhält man +\begin{equation} +\begin{aligned} + k_a y(-1) + h_a y'(-1) &= h_a +\end{aligned} +\end{equation} + + + + + + + + + + + -- cgit v1.2.1 From c2d2d48156ab7cfb0d69541e58f54c3a55b2daf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Thu, 11 Aug 2022 19:23:32 +0200 Subject: Added start to coefficient calculation. --- .../sturmliouville/waermeleitung_beispiel.tex | 75 ++++++++++++++++++++-- 1 file changed, 71 insertions(+), 4 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 14fca40..58569e9 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -346,12 +346,79 @@ Schreiben wir also die Lösung $X(x)$ um zu \[ X(x) = - a_n\sin\left(\frac{n\pi}{l}x\right) + a_0 + - b_n\cos\left(\frac{n\pi}{l}x\right) + \sum_{n = 1}^{\infty} a_n\sin\left(\frac{n\pi}{l}x\right) + + + \sum_{n = 1}^{\infty} b_n\cos\left(\frac{n\pi}{l}x\right). +\] + +Um eine eindeutige Lösung für $ X(x) $ zu erhalten werden noch weitere +Bedingungen benötigt. +Diese sind die Startbedingungen oder $u(0, x) = X(x)$ für $t = 0$. +Es gilt also nun die Gleichung +\begin{equation} + \label{eq:slp-example-fourier-initial-conditions} + u(0, x) + = + a_0 + + + \sum_{n = 1}^{\infty} a_n\sin\left(\frac{n\pi}{l}x\right) + + + \sum_{n = 1}^{\infty} b_n\cos\left(\frac{n\pi}{l}x\right) +\end{equation} +nach allen $a_n$ und $b_n$ aufzulösen. +Da aber $a_n$ und $b_n$ jeweils als Faktor zu einer trigonometrischen Funktion +gehört, von der wir wissen, dass sie orthogonal zu allen anderen +trigonometrischen Funktionen der Lösung ist, kann direkt das Skalarprodukt +verwendet werden um die Koeffizienten $a_n$ und $b_n$ zu bestimmen. +Es wird also die Tatsache ausgenutzt, dass die Gleichheit in +\eqref{eq:slp-example-fourier-initial-conditions} nach Anwendung des +Skalarproduktes immernoch gelten muss und dass das Skalaprodukt mit einer +Basisfunktion sämtliche Summanden auf der rechten Seite auslöscht. + +Zur Berechnung von $a_m$ mit $ m \in \mathbb{N} $ wird beidseitig das +Skalarprodukt mit der Basisfunktion $ sin\left(\frac{m \pi}{l}x\right)$ +gebildet: +\[ + \langle u(0, x), sin\left(\frac{m \pi}{l}x\right) \rangle + = + \langle a_0 + + + \sum_{n = 1}^{\infty} a_n\sin\left(\frac{n\pi}{l}x\right) + + + \sum_{n = 1}^{\infty} b_n\cos\left(\frac{n\pi}{l}x\right), + sin\left(\frac{m \pi}{l}x\right)\rangle +\] + +Bevor diese Form in die Integralform umgeschrieben werden kann, muss überlegt +sein, welche Integralgrenzen zu verwenden sind. +In diesem Fall haben die $ \sin $ und $ \cos $ Terme beispielsweise keine ganze +Periode im Intervall $ x \in [0, l] $ für ungerade $ n $ und $ m $. +Um die + +\[ +\begin{aligned} + \int_{-l}^{l}\hat{u}(0, x)sin\left(\frac{m \pi}{l}x\right)dx + =& + \int_{-l}^{l} \left[a_0 + + + \sum_{n = 1}^{\infty} a_n\sin\left(\frac{n\pi}{l}x\right) + + + \sum_{n = 1}^{\infty} b_n\cos\left(\frac{n\pi}{l}x\right)\right] + sin\left(\frac{m \pi}{l}x\right) dx + \\ + =& + a_0 \int_{-l}^{l}sin\left(\frac{m \pi}{l}x\right) dx + + + \sum_{n = 1}^{\infty}\left[a_n\int_{-l}^{l}\sin\left(\frac{n\pi}{l}x\right) + sin\left(\frac{m \pi}{l}x\right)dx\right] + \\ + &+ + \sum_{n = 1}^{\infty}\left[b_n\int_{-l}^{l} \cos\left(\frac{n\pi}{l}x\right) + sin\left(\frac{m \pi}{l}x\right)dx\right] +\end{aligned} \] -was für jedes $n$ wiederum eine Linearkombination aus orthogonalen Funktionen -ist. Betrachten wir zuletzt die zweite Gleichung der Separation \eqref{eq:slp-example-fourier-separated-t}. -- cgit v1.2.1 From fc17a8247db60871ce49b23f1bbbb9b5523d8473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Thu, 11 Aug 2022 20:05:16 +0200 Subject: Corrected Coefficient names. --- .../sturmliouville/waermeleitung_beispiel.tex | 104 ++++++++++----------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 58569e9..fb5f331 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -181,7 +181,7 @@ Die Lösungen für $X(x)$ sind also von der Form \[ X(x) = - A \sin \left( \alpha x\right) + B \cos \left( \beta x\right). + A \cos \left( \alpha x\right) + B \sin \left( \beta x\right). \] Dieser Ansatz wird nun solange differenziert, bis alle in Gleichung @@ -191,41 +191,41 @@ Man erhält also \[ X^{\prime}(x) = - \alpha A \cos \left( \alpha x \right) - - \beta B \sin \left( \beta x \right) + - \alpha A \sin \left( \alpha x \right) + + \beta B \cos \left( \beta x \right) \] und \[ X^{\prime \prime}(x) = - -\alpha^{2} A \sin \left( \alpha x \right) - - \beta^{2} B \cos \left( \beta x \right). + -\alpha^{2} A \cos \left( \alpha x \right) - + \beta^{2} B \sin \left( \beta x \right). \] Eingesetzt in Gleichung \eqref{eq:slp-example-fourier-separated-x} ergibt dies \[ - -\alpha^{2}A\sin(\alpha x) - \beta^{2}B\cos(\beta x) - - \mu\left(A\sin(\alpha x) + B\cos(\beta x)\right) + -\alpha^{2}A\cos(\alpha x) - \beta^{2}B\sin(\beta x) - + \mu\left(A\cos(\alpha x) + B\sin(\beta x)\right) = 0 \] und durch umformen somit \[ - -\alpha^{2}A\sin(\alpha x) - \beta^{2}B\cos(\beta x) + -\alpha^{2}A\cos(\alpha x) - \beta^{2}B\sin(\beta x) = - \mu A\sin(\alpha x) + \mu B\cos(\beta x). + \mu A\cos(\alpha x) + \mu B\sin(\beta x). \] Mittels Koeffizientenvergleich von \[ \begin{aligned} - -\alpha^{2}A\sin(\alpha x) + -\alpha^{2}A\cos(\alpha x) &= - \mu A\sin(\alpha x) + \mu A\cos(\alpha x) \\ - -\beta^{2}B\cos(\beta x) + -\beta^{2}B\sin(\beta x) &= - \mu B\cos(\beta x) + \mu B\sin(\beta x) \end{aligned} \] ist schnell ersichtlich, dass $ \mu = -\alpha^{2} = -\beta^{2} $ gelten muss für @@ -251,41 +251,41 @@ Dies fürht zu \[ X(0) = - A \sin(0 \alpha) + B \cos(0 \beta) + A \cos(0 \alpha) + B \sin(0 \beta) = 0. \] -Da $\cos(0) \neq 0$ ist, muss in diesem Fall $B = 0$ gelten. -Für den ersten Summanden ist wegen $\sin(0) = 0$ die Randbedingung erfüllt. +Da $\cos(0) \neq 0$ ist, muss in diesem Fall $A = 0$ gelten. +Für den zweiten Summanden ist wegen $\sin(0) = 0$ die Randbedingung erfüllt. -Wird nun die zweite Randbedingung für $x = l$ mit $B = 0$ eingesetzt, ergibt +Wird nun die zweite Randbedingung für $x = l$ mit $A = 0$ eingesetzt, ergibt sich \[ X(l) = - A \sin(\alpha l) + 0 \cos(\beta l) + 0 \cos(\alpha l) + B \sin(\beta l) = - A \sin(\alpha l) + B \sin(\beta l) = 0. \] -$\alpha$ muss also so gewählt werden, dass $\sin(\alpha l) = 0$ gilt. -Es bleibt noch nach $\alpha$ aufzulösen: +$\beta$ muss also so gewählt werden, dass $\sin(\beta l) = 0$ gilt. +Es bleibt noch nach $\beta$ aufzulösen: \[ \begin{aligned} - \sin(\alpha l) &= 0 \\ - \alpha l &= n \pi \qquad n \in \mathbb{N} \\ - \alpha &= \frac{n \pi}{l} \qquad n \in \mathbb{N} + \sin(\beta l) &= 0 \\ + \beta l &= n \pi \qquad n \in \mathbb{N} \\ + \beta &= \frac{n \pi}{l} \qquad n \in \mathbb{N} \end{aligned} \] -Es folgt nun wegen $\mu = -\alpha^{2}$, dass +Es folgt nun wegen $\mu = -\beta^{2}$, dass \begin{equation} - \mu_1 = -\alpha^{2} = -\frac{n^{2}\pi^{2}}{l^{2}} + \mu_1 = -\beta^{2} = -\frac{n^{2}\pi^{2}}{l^{2}} \end{equation} sein muss. -Ausserdem ist zu bemerken, dass dies auch gleich $-\beta^{2}$ ist. -Da aber $B = 0$ gilt und der Summand mit $\beta$ verschwindet, ist dies keine +Ausserdem ist zu bemerken, dass dies auch gleich $-\alpha^{2}$ ist. +Da aber $A = 0$ gilt und der Summand mit $\alpha$ verschwindet, ist dies keine Verletzung der Randbedingungen. Durch alanoges Vorgehen kann nun auch das Problem mit isolierten Enden gelöst @@ -296,18 +296,18 @@ ein, beginnend für $x = 0$. Es ergibt sich \[ X^{\prime}(0) = - \alpha A \cos(0 \alpha) - \beta B \sin(0 \beta) + -\alpha A \sin(0 \alpha) + \beta B \cos(0 \beta) = 0. \] -In diesem Fall muss $A = 0$ gelten. +In diesem Fall muss $B = 0$ gelten. Zusammen mit der Bedignung für $x = l$ folgt nun \[ X^{\prime}(l) = - 0 \alpha \cos(\alpha l) - \beta B \sin(\beta l) + - \alpha A \sin(\alpha l) + 0 \beta \cos(\beta l) = - -\beta B \sin(\beta l) + - \alpha A \sin(\alpha l) = 0. \] @@ -316,14 +316,14 @@ Ausdruck den Randbedingungen entspricht. Es folgt nun \[ \begin{aligned} - \sin(\beta l) &= 0 \\ - \beta l &= n \pi \qquad n \in \mathbb{N} \\ - \beta &= \frac{n \pi}{l} \qquad n \in \mathbb{N} + \sin(\alpha l) &= 0 \\ + \alpha l &= n \pi \qquad n \in \mathbb{N} \\ + \alpha &= \frac{n \pi}{l} \qquad n \in \mathbb{N} \end{aligned} \] und somit \[ - \mu_2 = -\beta^{2} = -\frac{n^{2}\pi^{2}}{l^{2}}. + \mu_2 = -\alpha^{2} = -\frac{n^{2}\pi^{2}}{l^{2}}. \] Es ergibt sich also sowohl für einen Stab mit Enden auf konstanter Temperatur @@ -348,9 +348,9 @@ Schreiben wir also die Lösung $X(x)$ um zu = a_0 + - \sum_{n = 1}^{\infty} a_n\sin\left(\frac{n\pi}{l}x\right) + \sum_{n = 1}^{\infty} a_n\cos\left(\frac{n\pi}{l}x\right) + - \sum_{n = 1}^{\infty} b_n\cos\left(\frac{n\pi}{l}x\right). + \sum_{n = 1}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right). \] Um eine eindeutige Lösung für $ X(x) $ zu erhalten werden noch weitere @@ -363,9 +363,9 @@ Es gilt also nun die Gleichung = a_0 + - \sum_{n = 1}^{\infty} a_n\sin\left(\frac{n\pi}{l}x\right) + \sum_{n = 1}^{\infty} a_n\cos\left(\frac{n\pi}{l}x\right) + - \sum_{n = 1}^{\infty} b_n\cos\left(\frac{n\pi}{l}x\right) + \sum_{n = 1}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right) \end{equation} nach allen $a_n$ und $b_n$ aufzulösen. Da aber $a_n$ und $b_n$ jeweils als Faktor zu einer trigonometrischen Funktion @@ -378,17 +378,17 @@ Skalarproduktes immernoch gelten muss und dass das Skalaprodukt mit einer Basisfunktion sämtliche Summanden auf der rechten Seite auslöscht. Zur Berechnung von $a_m$ mit $ m \in \mathbb{N} $ wird beidseitig das -Skalarprodukt mit der Basisfunktion $ sin\left(\frac{m \pi}{l}x\right)$ +Skalarprodukt mit der Basisfunktion $ \cos\left(\frac{m \pi}{l}x\right)$ gebildet: \[ - \langle u(0, x), sin\left(\frac{m \pi}{l}x\right) \rangle + \langle u(0, x), \cos\left(\frac{m \pi}{l}x\right) \rangle = \langle a_0 + \sum_{n = 1}^{\infty} a_n\sin\left(\frac{n\pi}{l}x\right) + \sum_{n = 1}^{\infty} b_n\cos\left(\frac{n\pi}{l}x\right), - sin\left(\frac{m \pi}{l}x\right)\rangle + \cos\left(\frac{m \pi}{l}x\right)\rangle \] Bevor diese Form in die Integralform umgeschrieben werden kann, muss überlegt @@ -399,24 +399,24 @@ Um die \[ \begin{aligned} - \int_{-l}^{l}\hat{u}(0, x)sin\left(\frac{m \pi}{l}x\right)dx + \int_{-l}^{l}\hat{u}(0, x)\cos\left(\frac{m \pi}{l}x\right)dx =& \int_{-l}^{l} \left[a_0 + - \sum_{n = 1}^{\infty} a_n\sin\left(\frac{n\pi}{l}x\right) + \sum_{n = 1}^{\infty} a_n\cos\left(\frac{n\pi}{l}x\right) + - \sum_{n = 1}^{\infty} b_n\cos\left(\frac{n\pi}{l}x\right)\right] - sin\left(\frac{m \pi}{l}x\right) dx + \sum_{n = 1}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right)\right] + \cos\left(\frac{m \pi}{l}x\right) dx \\ =& - a_0 \int_{-l}^{l}sin\left(\frac{m \pi}{l}x\right) dx + a_0 \int_{-l}^{l}cos\left(\frac{m \pi}{l}x\right) dx + - \sum_{n = 1}^{\infty}\left[a_n\int_{-l}^{l}\sin\left(\frac{n\pi}{l}x\right) - sin\left(\frac{m \pi}{l}x\right)dx\right] + \sum_{n = 1}^{\infty}\left[a_n\int_{-l}^{l}\cos\left(\frac{n\pi}{l}x\right) + \cos\left(\frac{m \pi}{l}x\right)dx\right] \\ &+ - \sum_{n = 1}^{\infty}\left[b_n\int_{-l}^{l} \cos\left(\frac{n\pi}{l}x\right) - sin\left(\frac{m \pi}{l}x\right)dx\right] + \sum_{n = 1}^{\infty}\left[b_n\int_{-l}^{l} \sin\left(\frac{n\pi}{l}x\right) + \cos\left(\frac{m \pi}{l}x\right)dx\right] \end{aligned} \] -- cgit v1.2.1 From 37861bde4183d5134147df65dc06236d6878b36b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Thu, 11 Aug 2022 21:19:44 +0200 Subject: Added periodically continued function u-hat. --- .../sturmliouville/waermeleitung_beispiel.tex | 23 +++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index fb5f331..fa96eff 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -385,9 +385,9 @@ gebildet: = \langle a_0 + - \sum_{n = 1}^{\infty} a_n\sin\left(\frac{n\pi}{l}x\right) + \sum_{n = 1}^{\infty} a_n\cos\left(\frac{n\pi}{l}x\right) + - \sum_{n = 1}^{\infty} b_n\cos\left(\frac{n\pi}{l}x\right), + \sum_{n = 1}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right), \cos\left(\frac{m \pi}{l}x\right)\rangle \] @@ -395,8 +395,21 @@ Bevor diese Form in die Integralform umgeschrieben werden kann, muss überlegt sein, welche Integralgrenzen zu verwenden sind. In diesem Fall haben die $ \sin $ und $ \cos $ Terme beispielsweise keine ganze Periode im Intervall $ x \in [0, l] $ für ungerade $ n $ und $ m $. -Um die - +Um die skalarprodukte aber korrekt zu berechnen, muss über die ganze Periode +integriert werden. +Dazu werden die Integralgrenzen $-l$ und $l$ verwendet und es wird ausserdem +eine neue Funktion +\[ + \hat{u}(0, x) + = + \begin{cases} + u(0, x + l) & -l \leq x < 0 + \\ + u(0, x) & 0 \leq x \leq l + \end{cases} +\] +angenomen, welche $u(0, x)$ auf dem Intervall $[-l, l]$ periodisch fortsetzt. +Es kann nun das Skalarodukt geschrieben werden als \[ \begin{aligned} \int_{-l}^{l}\hat{u}(0, x)\cos\left(\frac{m \pi}{l}x\right)dx @@ -416,7 +429,7 @@ Um die \\ &+ \sum_{n = 1}^{\infty}\left[b_n\int_{-l}^{l} \sin\left(\frac{n\pi}{l}x\right) - \cos\left(\frac{m \pi}{l}x\right)dx\right] + \cos\left(\frac{m \pi}{l}x\right)dx\right]. \end{aligned} \] -- cgit v1.2.1 From 6887191ba574292b6a9009867c0e16e66831ca17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Thu, 11 Aug 2022 22:01:25 +0200 Subject: Added titles to specific solutions. --- buch/papers/sturmliouville/waermeleitung_beispiel.tex | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index fa96eff..1bfdaef 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -409,7 +409,7 @@ eine neue Funktion \end{cases} \] angenomen, welche $u(0, x)$ auf dem Intervall $[-l, l]$ periodisch fortsetzt. -Es kann nun das Skalarodukt geschrieben werden als +Das Skalarodukt kann nun geschrieben werden als \[ \begin{aligned} \int_{-l}^{l}\hat{u}(0, x)\cos\left(\frac{m \pi}{l}x\right)dx @@ -428,7 +428,7 @@ Es kann nun das Skalarodukt geschrieben werden als \cos\left(\frac{m \pi}{l}x\right)dx\right] \\ &+ - \sum_{n = 1}^{\infty}\left[b_n\int_{-l}^{l} \sin\left(\frac{n\pi}{l}x\right) + \sum_{n = 1}^{\infty}\left[b_n\int_{-l}^{l}\sin\left(\frac{n\pi}{l}x\right) \cos\left(\frac{m \pi}{l}x\right)dx\right]. \end{aligned} \] @@ -457,22 +457,21 @@ Und mit dem Resultat \eqref{eq:slp-example-fourier-mu-solution} \] ergibt. -% TODO: Rechenweg -TODO: Rechenweg... Enden auf konstanter Temperatur: +\subsubsection{Lösung für einen Stab mit Enden auf konstanter Temperatur} \[ \begin{aligned} u(t,x) &= - \sum_{n=1}^{\infty}a_{n}e^{-\frac{n^{2}\pi^{2}\kappa}{l^{2}}t} + \sum_{n=1}^{\infty}b_{n}e^{-\frac{n^{2}\pi^{2}\kappa}{l^{2}}t} \sin\left(\frac{n\pi}{l}x\right) \\ - a_{n} + b_{n} &= \frac{2}{l}\int_{0}^{l}u(0,x)sin\left(\frac{n\pi}{l}x\right) dx \end{aligned} \] -TODO: Rechenweg... Enden isoliert: +\subsubsection{Lösung für einen Stab mit isolierten Enden} \[ \begin{aligned} u(t,x) -- cgit v1.2.1 From 964db187eaf5512601a04c6326094d6a1975d941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Thu, 11 Aug 2022 22:11:59 +0200 Subject: Rewrote everything in passive form. --- .../sturmliouville/waermeleitung_beispiel.tex | 25 ++++++++++++---------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 1bfdaef..868f241 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -6,8 +6,8 @@ \subsection{Wärmeleitung in einem Homogenen Stab} -In diesem Abschnitt betrachten wir das Problem der Wärmeleitung in einem -homogenen Stab und wie das Sturm-Liouville-Problem bei der Beschreibung dieses +In diesem Abschnitt wird das Problem der Wärmeleitung in einem homogenen Stab +betrachtet und wie das Sturm-Liouville-Problem bei der Beschreibung dieses physikalischen Phänomenes auftritt. Zunächst wird ein eindimensionaler homogener Stab der Länge $l$ und @@ -141,8 +141,9 @@ erfüllt sein und es muss ausserdem \end{equation} gelten. -Um zu verifizieren, ob die Randbedingungen erfüllt sind, benötigen wir zunächst -$p(x)$. +Um zu verifizieren, ob die Randbedingungen erfüllt sind, wird zunächst +$p(x)$ +benötigt. Dazu wird die Gleichung \eqref{eq:slp-example-fourier-separated-x} mit der Sturm-Liouville-Form \eqref{eq:sturm-liouville-equation} verglichen, was zu $p(x) = 1$ führt. @@ -169,7 +170,7 @@ Analog dazu kann gezeit werden, dass die Randbedingungen für einen Stab mit isolierten Enden ebenfalls die Sturm-Liouville-Randbedingungen erfüllen und somit auch zu orthogonalen Lösungen führen. -Widmen wir uns zunächst der ersten Gleichung. +Als erstes wird auf die erste erste Gleichung eingegangen. Aufgrund der Struktur der Gleichung \[ X^{\prime \prime}(x) - \mu X(x) @@ -290,7 +291,7 @@ Verletzung der Randbedingungen. Durch alanoges Vorgehen kann nun auch das Problem mit isolierten Enden gelöst werden. -Setzen wir nun die Randbedingungen +Setzt man nun die Randbedingungen \eqref{eq:slp-example-fourier-boundary-condition-ends-isolated} in $X^{\prime}$ ein, beginnend für $x = 0$. Es ergibt sich \[ @@ -342,7 +343,7 @@ Zunächst ist wegen vorhergehender Rechnung ersichtlich, dass es sich bei $A$ und $B$ nicht um einzelne Koeffizienten handelt. Stattdessen können die Koeffizienten für jedes $n \in \mathbb{N}$ unterschiedlich sein. -Schreiben wir also die Lösung $X(x)$ um zu +Die Lösung $X(x)$ wird nun umgeschrieben zu \[ X(x) = @@ -433,14 +434,16 @@ Das Skalarodukt kann nun geschrieben werden als \end{aligned} \] -Betrachten wir zuletzt die zweite Gleichung der Separation -\eqref{eq:slp-example-fourier-separated-t}. -Diese Lösen wir über das charakteristische Polynom +Zuletzt wird die zweite Gleichung der Separation +\eqref{eq:slp-example-fourier-separated-t} betrachtet. +Diese wird über das charakteristische Polynom \[ \lambda - \kappa \mu = - 0. + 0 \] +gelöst. + Es ist direkt ersichtlich, dass $\lambda = \kappa \mu$ gelten muss, was zur Lösung \[ -- cgit v1.2.1 From ff04ad95214c0ecdf8343fa8cd0aaa74dda45715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Fri, 12 Aug 2022 14:22:03 +0200 Subject: Corrected error with continuation of u hat. --- .../sturmliouville/waermeleitung_beispiel.tex | 52 +++++++++++++++++----- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 868f241..cfa7386 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -381,7 +381,8 @@ Basisfunktion sämtliche Summanden auf der rechten Seite auslöscht. Zur Berechnung von $a_m$ mit $ m \in \mathbb{N} $ wird beidseitig das Skalarprodukt mit der Basisfunktion $ \cos\left(\frac{m \pi}{l}x\right)$ gebildet: -\[ +\begin{equation} + \label{eq:slp-dot-product-cosine} \langle u(0, x), \cos\left(\frac{m \pi}{l}x\right) \rangle = \langle a_0 @@ -390,30 +391,56 @@ gebildet: + \sum_{n = 1}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right), \cos\left(\frac{m \pi}{l}x\right)\rangle -\] +\end{equation} Bevor diese Form in die Integralform umgeschrieben werden kann, muss überlegt sein, welche Integralgrenzen zu verwenden sind. In diesem Fall haben die $ \sin $ und $ \cos $ Terme beispielsweise keine ganze Periode im Intervall $ x \in [0, l] $ für ungerade $ n $ und $ m $. -Um die skalarprodukte aber korrekt zu berechnen, muss über die ganze Periode -integriert werden. -Dazu werden die Integralgrenzen $-l$ und $l$ verwendet und es wird ausserdem -eine neue Funktion +Um die Skalarprodukte aber korrekt zu berechnen, muss über ein ganzzahliges +Vielfaches der Periode der triginimetrischen Funktionen integriert werden. +Dazu werden die Integralgrenzen $-l$ und $l$ verwendet und es werden ausserdem +neue Funktionen $ \hat{u}_c(0, x) $ für die Berechnung mit Cosinus und +$ \hat{u}_s(0, x) $ für die Berechnung mit Sinus angenomen, welche $ u(0, t) $ +gerade, respektive ungerade auf $[-l, l]$ fortsetzen: \[ - \hat{u}(0, x) - = +\begin{aligned} + \hat{u}_c(0, x) + &= \begin{cases} - u(0, x + l) & -l \leq x < 0 + u(0, -x) & -l \leq x < 0 \\ u(0, x) & 0 \leq x \leq l \end{cases} + \\ + \hat{u}_s(0, x) + &= + \begin{cases} + -u(0, -x) & -l \leq x < 0 + \\ + u(0, x) & 0 \leq x \leq l + \end{cases}. +\end{aligned} \] -angenomen, welche $u(0, x)$ auf dem Intervall $[-l, l]$ periodisch fortsetzt. -Das Skalarodukt kann nun geschrieben werden als + +Die Konsequenz davon ist, dass nun das Resultat der Integrale um den Faktor zwei +skalliert wurde, also gilt nun +\[ +\begin{aligned} + \int_{-l}^{l}\hat{u}_c(0, x)\cos\left(\frac{m \pi}{l}x\right)dx + &= + 2\int_{0}^{l}u(0, x)\cos\left(\frac{m \pi}{l}x\right)dx + \\ + \int_{-l}^{l}\hat{u}_s(0, x)\sin\left(\frac{m \pi}{l}x\right)dx + &= + 2\int_{0}^{l}u(0, x)\sin\left(\frac{m \pi}{l}x\right)dx. +\end{aligned} +\] + +Zunächst wird nun das Skalaprodukt \eqref{eq:slp-dot-product-cosine} berechnet: \[ \begin{aligned} - \int_{-l}^{l}\hat{u}(0, x)\cos\left(\frac{m \pi}{l}x\right)dx + \int_{-l}^{l}\hat{u}_c(0, x)\cos\left(\frac{m \pi}{l}x\right)dx =& \int_{-l}^{l} \left[a_0 + @@ -422,6 +449,7 @@ Das Skalarodukt kann nun geschrieben werden als \sum_{n = 1}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right)\right] \cos\left(\frac{m \pi}{l}x\right) dx \\ + 2\int_{0}^{l}u(0, x)\cos\left(\frac{m \pi}{l}x\right)dx =& a_0 \int_{-l}^{l}cos\left(\frac{m \pi}{l}x\right) dx + -- cgit v1.2.1 From d9c6ead18aae68a14ce72b893d9c671156a1d6b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Fri, 12 Aug 2022 18:03:55 +0200 Subject: Full calculation for a_m explained. --- .../sturmliouville/waermeleitung_beispiel.tex | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index cfa7386..5c246f2 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -462,6 +462,64 @@ Zunächst wird nun das Skalaprodukt \eqref{eq:slp-dot-product-cosine} berechnet: \end{aligned} \] +Betrachtet man nun die Summanden auf der rechten Seite stellt man fest, dass +nahezu alle Terme verschinden, denn +\[ + \int_{-l}^{l}cos\left(\frac{m \pi}{l}x\right) dx + = + 0 +\] +da hier über ein ganzzahliges Vielfaches der Periode integriert wird, +\[ + \int_{-l}^{l}\cos\left(\frac{n\pi}{l}x\right) + \cos\left(\frac{m \pi}{l}x\right)dx + = + 0 +\] +für $m\neq n$, da Cosinus-Funktionen mit verschiedenen Kreisfrequenzen +orthogonal zueinander stehen und +\[ + \int_{-l}^{l}\sin\left(\frac{n\pi}{l}x\right) + \cos\left(\frac{m \pi}{l}x\right)dx + = + 0 +\] +da Sinus- und Cosinus-Funktionen ebenfalls orthogonal zueinander sin. + +Es bleibt also lediglich der Summand für $a_m$ stehen, was die Gleichung zu +\[ + 2\int_{0}^{l}u(0, x)\cos\left(\frac{m \pi}{l}x\right)dx + = + a_m\int_{-l}^{l}\cos^2\left(\frac{m\pi}{l}x\right)dx +\] +vereinfacht. Im nächsten Schritt wird nun das Integral auf der rechten Seite +berechnet und dann nach $a_m$ aufgelöst. Am einnfachsten geht dies, wenn zuerst +mit $u = \frac{m \pi}{l}x$ substituiert wird: +\[ + \begin{aligned} + 2\int_{0}^{l}u(0, x)\cos\left(\frac{m \pi}{l}x\right)dx + &= + a_m\frac{l}{m\pi}\int_{-m\pi}^{m\pi}\cos^2\left(u\right)du + \\ + &= + a_m\frac{l}{m\pi}\left[\frac{u}{2} + + \frac{\sin\left(2u\right)}{4}\right]_{u=-m\pi}^{m\pi} + \\ + &= + a_m\frac{l}{m\pi}\left(\frac{m\pi}{2} + + \underbrace{\frac{\sin\left(2m\pi\right)}{4}}_{\displaystyle = 0} - + \frac{-m\pi}{2} - + \underbrace{\frac{\sin\left(-2m\pi\right)}{4}}_{\displaystyle = 0}\right) + \\ + &= + a_m l + \\ + a_m + &= + \frac{2}{l} \int_{0}^{l}u(0, x)\cos\left(\frac{m \pi}{l}x\right)dx + \end{aligned} +\] + Zuletzt wird die zweite Gleichung der Separation \eqref{eq:slp-example-fourier-separated-t} betrachtet. Diese wird über das charakteristische Polynom -- cgit v1.2.1 From b1f2ce6c7f7b277558e7fd18cedae9a0a06aefde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Sat, 13 Aug 2022 12:33:04 +0200 Subject: Finished first draft of fourier example. --- .../sturmliouville/waermeleitung_beispiel.tex | 74 +++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 5c246f2..5bd5ce2 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -170,6 +170,7 @@ Analog dazu kann gezeit werden, dass die Randbedingungen für einen Stab mit isolierten Enden ebenfalls die Sturm-Liouville-Randbedingungen erfüllen und somit auch zu orthogonalen Lösungen führen. +\subsubsection{Lösund der Differentialgleichung in x} Als erstes wird auf die erste erste Gleichung eingegangen. Aufgrund der Struktur der Gleichung \[ @@ -463,7 +464,7 @@ Zunächst wird nun das Skalaprodukt \eqref{eq:slp-dot-product-cosine} berechnet: \] Betrachtet man nun die Summanden auf der rechten Seite stellt man fest, dass -nahezu alle Terme verschinden, denn +nahezu alle Terme verschwinden, denn \[ \int_{-l}^{l}cos\left(\frac{m \pi}{l}x\right) dx = @@ -520,6 +521,74 @@ mit $u = \frac{m \pi}{l}x$ substituiert wird: \end{aligned} \] +Analog dazu kann durch das Bilden des Skalarproduktes mit +$ \sin\left(\frac{m \pi}{l}x\right) $ gezeigt werden, dass +\[ + b_m + = + \frac{2}{l} \int_{0}^{l}u(0, x)\sin\left(\frac{m \pi}{l}x\right)dx +\] +gilt. + +Etwas anders ist es allerdings bei $a_0$. +Wie der Name bereits suggeriert, handelt es sich hierbei um den Koeffizienten +zur Basisfunktion $ \cos\left(\frac{0 \pi}{l}x\right) $ beziehungsweise der +konstanten Funktion $1$. +Um einen Ausdruck für $ a_0 $ zu erhalten, wird wiederum auf beiden Seiten +der Gleichung \eqref{eq:slp-example-fourier-initial-conditions} das +Skalarprodukt mit der konstanten Basisfunktion $ 1 $ gebildet: +\[ +\begin{aligned} + \int_{-l}^{l}\hat{u}_c(0, x)dx + &= + \int_{-l}^{l} a_0 + + + \sum_{n = 1}^{\infty} a_n\cos\left(\frac{n\pi}{l}x\right) + + + \sum_{n = 1}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right)dx + \\ + 2\int_{0}^{l}u(0, x)dx + &= + a_0 \int_{-l}^{l}dx + + + \sum_{n = 1}^{\infty}\left[a_n\int_{-l}^{l}\cos\left(\frac{n\pi}{l}x\right) + dx\right] + + \sum_{n = 1}^{\infty}\left[b_n\int_{-l}^{l}\sin\left(\frac{n\pi}{l}x\right) + dx\right]. +\end{aligned} +\] + +Hier fallen nun alle Terme, die $\sin$ oder $\cos$ beinhalten weg, da jeweils +über ein Vielfaches der Periode integriert wird. +Es bleibt also noch +\[ + 2\int_{0}^{l}u(0, x)dx + = + a_0 \int_{-l}^{l}dx +\] +, was sich wie folgt nach $a_0$ auflösen lässt: +\[ +\begin{aligned} + 2\int_{0}^{l}u(0, x)dx + &= + a_0 \int_{-l}^{l}dx + \\ + &= + a_0 \left[x\right]_{x=-l}^{l} + \\ + &= + a_0(l - (-l)) + \\ + &= + a_0 \cdot 2l + \\ + a_0 + &= + \frac{1}{l} \int_{0}^{l}u(0, x)dx +\end{aligned} +\] + +\subsubsection{Lösund der Differentialgleichung in t} Zuletzt wird die zweite Gleichung der Separation \eqref{eq:slp-example-fourier-separated-t} betrachtet. Diese wird über das charakteristische Polynom @@ -546,6 +615,9 @@ Und mit dem Resultat \eqref{eq:slp-example-fourier-mu-solution} \] ergibt. +Dieses Resultat kann nun mit allen vorhergehenden Resultaten zudammengesetzt +werden um die vollständige Lösung für das Stab-Problem zu erhalten. + \subsubsection{Lösung für einen Stab mit Enden auf konstanter Temperatur} \[ \begin{aligned} -- cgit v1.2.1 From 8664c5cb874029c45314c18d1d1b0d2be4bb5a9c Mon Sep 17 00:00:00 2001 From: tschwall <55748566+tschwall@users.noreply.github.com> Date: Sat, 13 Aug 2022 14:22:36 +0200 Subject: Added Part 3 --- buch/SeminarSpezielleFunktionen.pdf | Bin 22225339 -> 22768070 bytes buch/papers/parzyl/main.tex | 2 +- buch/papers/parzyl/teil0.tex | 2 +- buch/papers/parzyl/teil1.tex | 3 +- buch/papers/parzyl/teil2.tex | 31 +++++++++----- buch/papers/parzyl/teil3.tex | 78 +++++++++++++++++++++++++++++++++++- 6 files changed, 100 insertions(+), 16 deletions(-) diff --git a/buch/SeminarSpezielleFunktionen.pdf b/buch/SeminarSpezielleFunktionen.pdf index e6c5429..6091e14 100644 Binary files a/buch/SeminarSpezielleFunktionen.pdf and b/buch/SeminarSpezielleFunktionen.pdf differ diff --git a/buch/papers/parzyl/main.tex b/buch/papers/parzyl/main.tex index 14c85ff..fd2aea7 100644 --- a/buch/papers/parzyl/main.tex +++ b/buch/papers/parzyl/main.tex @@ -13,6 +13,6 @@ \input{papers/parzyl/teil0.tex} \input{papers/parzyl/teil1.tex} \input{papers/parzyl/teil2.tex} - +\input{papers/parzyl/teil3.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/parzyl/teil0.tex b/buch/papers/parzyl/teil0.tex index 119f805..1f23d6e 100644 --- a/buch/papers/parzyl/teil0.tex +++ b/buch/papers/parzyl/teil0.tex @@ -220,7 +220,7 @@ und 0 \end{equation} führt. -Wobei die Lösung von \eqref{parzyl:sep_dgl_3} +Die Lösung von \eqref{parzyl:sep_dgl_3} \begin{equation} i(z) = diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index a3e9626..e140796 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -51,6 +51,7 @@ als Lösungen. Ausgeschrieben ergeben sich als Lösungen \begin{align} + \label{parzyl:eq:solution_dgl} w_1 &= e^{-z^2/4} \, {}_{1} F_{1} ( @@ -60,4 +61,4 @@ Ausgeschrieben ergeben sich als Lösungen {}_{1} F_{1} ({\textstyle \frac{3}{4}} - k, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2) -\end{align} \ No newline at end of file +\end{align} diff --git a/buch/papers/parzyl/teil2.tex b/buch/papers/parzyl/teil2.tex index 3f890d0..aaea42b 100644 --- a/buch/papers/parzyl/teil2.tex +++ b/buch/papers/parzyl/teil2.tex @@ -11,10 +11,10 @@ \subsection{Elektrisches Feld einer semi-infiniten Platte \label{parzyl:subsection:bonorum}} Die parabolischen Zylinderkoordinaten tauchen auf, wenn man das elektrische Feld einer semi-infiniten Platte finden will. -Das dies so ist kann im zwei Dimensionalen mit Hilfe von komplexen Funktionen gezeigt werden. Wobei die Platte dann nur eine Linie ist. +Das dies so ist kann im zwei Dimensionalen mit Hilfe von komplexen Funktionen gezeigt werden. Die Platte ist dann nur eine Linie, was man in Abbildung TODO sieht. Jede komplexe Funktion $F(z)$ kann geschrieben werden als \begin{equation} - F(z) = U(x,y) + iV(x,y) \qquad z \in \mathbb{C}; x,y \in \mathbb{R}. + F(s) = U(x,y) + iV(x,y) \qquad s \in \mathbb{C}; x,y \in \mathbb{R}. \end{equation} Dabei muss gelten, falls die Funktion differenzierbar ist, dass \begin{equation} @@ -35,7 +35,7 @@ Aus dieser Bedingung folgt \frac{\partial^2 U(x,y)}{\partial y^2} = 0 - }_{\nabla^2U(x,y)=0} + }_{\displaystyle{\nabla^2U(x,y)=0}} \qquad \underbrace{ \frac{\partial^2 V(x,y)}{\partial x^2} @@ -43,26 +43,35 @@ Aus dieser Bedingung folgt \frac{\partial^2 V(x,y)}{\partial y^2} = 0 - }_{\nabla^2V(x,y) = 0}. + }_{\displaystyle{\nabla^2V(x,y) = 0}}. \end{equation} -Zusätzlich zeigen diese Bedingungen auch, dass die zwei Funktionen $U(x,y)$ und $V(x,y)$ orthogonal zueinander sind. +Zusätzlich kann auch gezeigt werden, dass die Funktion $F(z)$ eine winkeltreue Abbildung ist. Der Zusammenhang zum elektrischen Feld ist jetzt, dass das Potential an einem quellenfreien Punkt gegeben ist als \begin{equation} \nabla^2\phi(x,y) = 0. \end{equation} -Da dies bei komplexen differenzierbaren Funktionen gilt, wie Gleichung \ref{parzyl_e_feld_zweite_ab} zeigt, kann entweder $U(x,y)$ oder $V(x,y)$ von einer solchen Funktion als das Potential angesehen werden. Im weiteren wird für das Potential $U(x,y)$ verwendet. -Da die Funktion, welche nicht das Potential beschreibt, in weiteren angenommen als $V(x,y)$, orthogonal zum Potential ist, zeigt dies das Verhalten des elektrischen Feldes. -Um nun zu den parabolische Zylinderkoordinaten zu gelangen muss nur noch eine geeignete komplexe Funktion $F(z)$ gefunden werden, welche eine semi-infinite Platte beschreiben kann. Man könnte natürlich auch nach anderen Funktionen suchen, welche andere Bedingungen erfüllen und würde dann auf andere Koordinatensysteme stossen. Die gesuchte Funktion in diesem Fall ist +Dies ist eine Bedingung welche differenzierbare Funktionen, wie in Gleichung \ref{parzyl_e_feld_zweite_ab} gezeigt wird, bereits besitzen. +Nun kann zum Beispiel $U(x,y)$ als das Potential angeschaut werden \begin{equation} - F(z) + \phi(x,y) = U(x,y). +\end{equation} +Orthogonal zum Potential ist das elektrische Feld +\begin{equation} + E(x,y) = V(x,y). +\end{equation} +Um nun zu den parabolische Zylinderkoordinaten zu gelangen muss nur noch eine geeignete komplexe Funktion $F(s)$ gefunden werden, +welche eine semi-infinite Platte beschreiben kann. +Die gesuchte Funktion in diesem Fall ist +\begin{equation} + F(s) = - \sqrt{z} + \sqrt{s} = \sqrt{x + iy}. \end{equation} Dies kann umgeformt werden zu \begin{equation} - F(z) + F(s) = \underbrace{\sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}}_{U(x,y)} + diff --git a/buch/papers/parzyl/teil3.tex b/buch/papers/parzyl/teil3.tex index 4e44bd6..12b7519 100644 --- a/buch/papers/parzyl/teil3.tex +++ b/buch/papers/parzyl/teil3.tex @@ -3,6 +3,80 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 3 -\label{parzyl:section:teil3}} +\section{Eigenschaften +\label{parzyl:section:Eigenschaften}} \rhead{Teil 3} +\subsection{Potenzreihenentwicklung + \label{parzyl:potenz}} +Die parabolischen Zylinderfunktionen, welche in Gleichung \ref{parzyl:eq:solution_dgl} gegeben sind, können auch als Potenzreihen geschrieben werden +\begin{align} + w_1(k,z) + &= + e^{-z^2/4} \, + {}_{1} F_{1} + ( + {\textstyle \frac{1}{4}} + - k, {\textstyle \frac{1}{2}} ; {\textstyle \frac{1}{2}}z^2) + = + e^{-\frac{z^2}{4}} + \sum^{\infty}_{n=0} + \frac{\left ( \frac{1}{4} - k \right )_{n}}{\left ( \frac{1}{2}\right )_{n}} + \frac{\left ( \frac{1}{2} z^2\right )^n}{n!} \\ + &= + e^{-\frac{z^2}{4}} + \left ( + 1 + + + \left ( \frac{1}{2} - 2k \right )\frac{z^2}{2!} + + + \left ( \frac{1}{2} - 2k \right )\left ( \frac{5}{2} - 2k \right )\frac{z^4}{4!} + + + \dots + \right ) +\end{align} +und +\begin{align} + w_2(k,z) + &= + ze^{-z^2/4} \, + {}_{1} F_{1} + ( + {\textstyle \frac{3}{4}} + - k, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2) + = + ze^{-\frac{z^2}{4}} + \sum^{\infty}_{n=0} + \frac{\left ( \frac{3}{4} - k \right )_{n}}{\left ( \frac{3}{2}\right )_{n}} + \frac{\left ( \frac{1}{2} z^2\right )^n}{n!} \\ + &= + e^{-\frac{z^2}{4}} + \left ( + z + + + \left ( \frac{3}{2} - 2k \right )\frac{z^3}{3!} + + + \left ( \frac{3}{2} - 2k \right )\left ( \frac{7}{2} - 2k \right )\frac{z^5}{5!} + + + \dots + \right ). +\end{align} +Bei den Potenzreihen sieht man gut, dass die Ordnung des Polynoms im generellen ins unendliche geht. Es gibt allerdings die Möglichkeit für bestimmte k das die Terme in der Klammer gleich null werden und das Polynom somit eine endliche Ordnung $n$ hat. Dies geschieht bei $w_1(k,z)$ falls +\begin{equation} + k = \frac{1}{4} + n \qquad n \in \mathbb{N}_0 +\end{equation} +und bei $w_2(k,z)$ falls +\begin{equation} + k = \frac{3}{4} + n \qquad n \in \mathbb{N}_0. +\end{equation} + +\subsection{Ableitung} +Es kann gezeigt werden, dass die Ableitungen $\frac{\partial w_1(z,k)}{\partial z}$ und $\frac{\partial w_2(z,k)}{\partial z}$ einen Zusammenhang zwischen $w_1(z,k)$ und $w_2(z,k)$ zeigen. Die Ableitung von $w_1(z,k)$ nach $z$ kann über die Produktregel berechnet werden und ist gegeben als +\begin{equation} + \frac{\partial w_1(z,k)}{\partial z} = \left (\frac{1}{2} - 2k \right ) w_2(z, k -\frac{1}{2}) - \frac{1}{2} z w_1(z,k), +\end{equation} +und die Ableitung von $w_2(z,k)$ als +\begin{equation} + \frac{\partial w_2(z,k)}{\partial z} = w_1(z, k -\frac{1}{2}) - \frac{1}{2} z w_2(z,k). +\end{equation} +Über diese Eigenschaft können einfach weitere Ableitungen berechnet werden. + -- cgit v1.2.1 From 3a530cc844c8213dade9fcf70d3ea7715f5c2a1b Mon Sep 17 00:00:00 2001 From: Fabian <@> Date: Sat, 13 Aug 2022 15:21:13 +0200 Subject: 2. Ueberarbeitung, Referenzen --- buch/papers/0f1/references.bib | 7 +------ buch/papers/0f1/teil0.tex | 6 +++--- buch/papers/0f1/teil1.tex | 17 +++++++++-------- buch/papers/0f1/teil2.tex | 21 ++++++++++----------- buch/papers/0f1/teil3.tex | 27 +++++++++++++-------------- 5 files changed, 36 insertions(+), 42 deletions(-) diff --git a/buch/papers/0f1/references.bib b/buch/papers/0f1/references.bib index ca1b558..f9a358b 100644 --- a/buch/papers/0f1/references.bib +++ b/buch/papers/0f1/references.bib @@ -69,12 +69,7 @@ @book{0f1:SeminarNumerik, title = {Mathematisches Seminar Numerik}, - author = {Andreas Müller, Benjamin Bouhafs-Keller, Daniel Bucher, Manuel Cattaneo -Patrick Elsener, Reto Fritsche, Niccolò Galliani, Tobias Grab -Thomas Kistler, Fabio Marti, Joël Rechsteiner, Cédric Renda -Michael Schmid, Mike Schmid, Michael Schneeberger -Martin Stypinski, Manuel Tischhauser, Nicolas Tobler -Raphael Unterer, Severin Weiss}, + author = {Andreas Müller et al.}, publisher = {Andreas Müller}, year = {2022}, } diff --git a/buch/papers/0f1/teil0.tex b/buch/papers/0f1/teil0.tex index adccac7..9aca368 100644 --- a/buch/papers/0f1/teil0.tex +++ b/buch/papers/0f1/teil0.tex @@ -5,11 +5,11 @@ % \section{Ausgangslage\label{0f1:section:ausgangslage}} \rhead{Ausgangslage} -Die Hypergeometrische Funktion $\mathstrut_0F_1$ wird in vielen Funktionen als Basisfunktion benutzt, +Die hypergeometrische Funktion $\mathstrut_0F_1$ wird in vielen Funktionen als Basisfunktion benutzt, zum Beispiel um die Airy Funktion zu berechnen. In der GNU Scientific Library \cite{0f1:library-gsl} ist die Funktion $\mathstrut_0F_1$ vorhanden. -Allerdings wirft die Funktion, bei negativen Übergabenwerten wie zum Beispiel \verb+gsl_sf_hyperg_0F1(1, -1)+, eine Exception. +Allerdings wirft die Funktion bei negativen Ü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. +Ziel dieser Arbeit war es zu evaluieren, ob es mit einfachen mathematischen Operationen möglich ist, die hypergeometrische Funktion $\mathstrut_0F_1$ zu implementieren. diff --git a/buch/papers/0f1/teil1.tex b/buch/papers/0f1/teil1.tex index f697f45..50198fc 100644 --- a/buch/papers/0f1/teil1.tex +++ b/buch/papers/0f1/teil1.tex @@ -6,12 +6,12 @@ \section{Mathematischer Hintergrund \label{0f1:section:mathHintergrund}} \rhead{Mathematischer Hintergrund} -Basierend auf den Herleitungen des vorhergehenden Abschnittes \ref{buch:rekursion:section:hypergeometrische-funktion}, werden im nachfolgenden Abschnitt nochmals die Resultate +Basierend auf den Herleitungen des Abschnittes \ref{buch:rekursion:section:hypergeometrische-funktion}, werden im nachfolgenden Abschnitt nochmals die Resultate beschrieben. \subsection{Hypergeometrische Funktion \label{0f1:subsection:hypergeometrisch}} -Als Grundlage der umgesetzten Algorithmen dient die hypergeometrische Funktion $\mathstrut_0F_1$. Diese ist eine Anwendung der allgemein definierten Funktion $\mathstrut_pF_q$. +Als Grundlage der umgesetzten Algorithmen dient die hypergeometrische Funktion $\mathstrut_0F_1$. Diese ist ein Speziallfall der allgemein definierten Funktion $\mathstrut_pF_q$. \begin{definition} \label{0f1:math:qFp:def} @@ -42,7 +42,8 @@ Angewendet auf die Funktion $\mathstrut_pF_q$ ergibt sich für $\mathstrut_0F_1$ \mathstrut_0F_1 \biggl( \begin{matrix} - \\- + \text{---} + \\\ b_1 \end{matrix} ; @@ -60,7 +61,7 @@ Angewendet auf die Funktion $\mathstrut_pF_q$ ergibt sich für $\mathstrut_0F_1$ \subsection{Airy Funktion \label{0f1:subsection:airy}} -Die Funktion Ai(x) und die verwandte Funktion Bi(x) werden als Airy-Funktion bezeichnet. Sie werden zur Lösung verschiedener physikalischer Probleme benutzt, wie zum Beispiel zur Lösung der Schrödinger-Gleichung \cite{0f1:wiki-airyFunktion}. +Die Funktion $\operatorname{Ai}(x)$ und die verwandte Funktion $\operatorname{Bi}(x)$ werden als Airy-Funktion bezeichnet. Sie werden zur Lösung verschiedener physikalischer Probleme benutzt, wie zum Beispiel zur Lösung der Schrödinger-Gleichung \cite{0f1:wiki-airyFunktion}. \begin{definition} \label{0f1:airy:differentialgleichung:def} @@ -70,11 +71,11 @@ Die Funktion Ai(x) und die verwandte Funktion Bi(x) werden als Airy-Funktion bez \end{definition} Die Airy Funktion lässt sich auf verschiedene Arten darstellen. -Als hypergeometrische Funktion berechnet, ergibt sich wie in Abschnitt \ref{buch:differentialgleichungen:section:hypergeometrisch} hergeleitet, folgende Lösungen der Airy-Differentialgleichung zu den Anfangsbedingungen $Ai(0)=1$ und $Ai'(0)=0$, sowie $Bi(0)=0$ und $Bi'(0)=0$. +Als hypergeometrische Funktion berechnet, ergibt sich wie in Abschnitt \ref{buch:differentialgleichungen:section:hypergeometrisch} hergeleitet, folgende Lösungen der Airy-Differentialgleichung zu den Anfangsbedingungen $\operatorname{Ai}(0)=1$ und $\operatorname{Ai}'(0)=0$, sowie $\operatorname{Bi}(0)=0$ und $\operatorname{Bi}'(0)=1$. \begin{align} \label{0f1:airy:hypergeometrisch:eq} -Ai(x) +\operatorname{Ai}(x) =& \sum_{k=0}^\infty \frac{1}{(\frac23)_k} \frac{1}{k!}\biggl(\frac{x^3}{9}\biggr)^k @@ -83,7 +84,7 @@ Ai(x) \begin{matrix}\text{---}\\\frac23\end{matrix};\frac{x^3}{9} \biggr). \\ -Bi(x) +\operatorname{Bi}(x) =& \sum_{k=0}^\infty \frac{1}{(\frac43)_k} \frac{1}{k!}\biggl(\frac{x^3}{9}\biggr)^k @@ -95,7 +96,7 @@ x\cdot\mathstrut_0F_1\biggl( \qedhere \end{align} -Um die Stabilität der Algorithmen zu $\mathstrut_0F_1$ zu überprüfen, wird in diesem speziellem Fall die Airy Funktion $Ai(x)$ \eqref{0f1:airy:hypergeometrisch:eq} +Um die Stabilität der Algorithmen zu $\mathstrut_0F_1$ zu überprüfen, wird in diesem speziellem Fall die Airy Funktion $\operatorname{Ai}(x)$ \eqref{0f1:airy:hypergeometrisch:eq} benutzt. diff --git a/buch/papers/0f1/teil2.tex b/buch/papers/0f1/teil2.tex index 15a1c44..587f63b 100644 --- a/buch/papers/0f1/teil2.tex +++ b/buch/papers/0f1/teil2.tex @@ -6,12 +6,12 @@ \section{Umsetzung \label{0f1:section:teil2}} \rhead{Umsetzung} -Zur Umsetzung wurden drei verschiedene Ansätze gewählt \cite{0f1:code}. Dabei wurde der Schwerpunkt auf die Funktionalität und eine gute Lesbarkeit des Codes gelegt. +Zur Umsetzung wurden drei verschiedene Ansätze gewählt, die in vollständiger Form auf Github \cite{0f1:code} zu finden sind. Dabei wurde der Schwerpunkt auf die Funktionalität und eine gute Lesbarkeit des Codes gelegt. Die Unterprogramme wurde jeweils, wie die GNU Scientific Library, in C geschrieben. Die Zwischenresultate wurden vom Hauptprogramm in einem CSV-File gespeichert. Anschliessen wurde mit der Matplot-Library in Python die Resultate geplottet. \subsection{Potenzreihe \label{0f1:subsection:potenzreihe}} -Die naheliegendste Lösung ist die Programmierung der Potenzreihe. Allerdings ist ein Problem dieser Umsetzung \ref{0f1:listing:potenzreihe}, dass die Fakultät im Nenner schnell grosse Werte annimmt und so der Bruch gegen Null strebt. Spätesten ab $k=167$ stösst diese Umsetzung \eqref{0f1:umsetzung:0f1:eq} an ihre Grenzen, da die Fakultät von $168$ eine Bereichsüberschreitung des \textit{double} Bereiches darstellt \cite{0f1:double}. +Die naheliegendste Lösung ist die Programmierung der Potenzreihe \eqref{0f1:umsetzung:0f1:eq}. Allerdings ist ein Problem dieser Umsetzung (Listing \ref{0f1:listing:potenzreihe}), dass die Fakultät im Nenner schnell grosse Werte annimmt. Dies führt zu einer Bereichsüberschreitung des \verb+double+ Bereiches \cite{0f1:double}. Spätesten ab $k=167$ tritt dieser Falle ein. \begin{align} \label{0f1:umsetzung:0f1:eq} @@ -30,7 +30,7 @@ Die naheliegendste Lösung ist die Programmierung der Potenzreihe. Allerdings is \subsection{Kettenbruch \label{0f1:subsection:kettenbruch}} -Ein endlicher Kettenbruch ist ein Bruch der Form +Ein endlicher Kettenbruch \cite{0f1:wiki-kettenbruch} ist ein Bruch der Form \begin{equation*} a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{b_3}{a_3+\cdots}}} \end{equation*} @@ -39,24 +39,23 @@ 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*} -\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*} -Umgeformt ergibt sich folgender Kettenbruch +Umgeformt ergibt sich folgender Kettenbruch \cite{0f1:wolfram-0f1} \begin{equation} \label{0f1:math:kettenbruch:0f1:eq} \mathstrut_0F_1(;c;z) = 1 + \cfrac{\cfrac{z}{c}}{1+\cfrac{-\cfrac{z}{2(c+1)}}{1+\cfrac{z}{2(c+1)}+\cfrac{-\cfrac{z}{3(c+2)}}{1+\cfrac{z}{5(c+4)} + \cdots}}}, \end{equation} -der als Code (siehe: Listing \ref{0f1:listing:kettenbruchIterativ}) umgesetzt wurde. -\cite{0f1:wolfram-0f1} +der als Code (Listing \ref{0f1:listing:kettenbruchIterativ}) umgesetzt wurde. + \lstinputlisting[style=C,float,caption={Iterativ umgesetzter Kettenbruch.},label={0f1:listing:kettenbruchIterativ}, firstline=8]{papers/0f1/listings/kettenbruchIterativ.c} \subsection{Rekursionsformel \label{0f1:subsection:rekursionsformel}} -Wesentlich stabiler zur Berechnung eines Kettenbruches ist die Rekursionsformel. Nachfolgend wird die verkürzte Herleitung vom Kettenbruch zur Rekursionsformel aufgezeigt. Eine vollständige Schritt für Schritt Herleitung ist im Seminarbuch Numerik, im Kapitel Kettenbrüche zu finden. \cite{0f1:kettenbrueche} +Wesentlich stabiler zur Berechnung eines Kettenbruches ist die Rekursionsformel. Nachfolgend wird die verkürzte Herleitung vom Kettenbruch zur Rekursionsformel aufgezeigt. Eine vollständige Schritt für Schritt Herleitung ist im Seminarbuch Numerik, im Kapitel Kettenbrüche \cite{0f1:kettenbrueche} zu finden. \subsubsection{Herleitung} Ein Näherungsbruch in der Form @@ -135,7 +134,7 @@ Nach vollständiger Induktion ergibt sich für den Schritt $k$, die Matrix a_k \end{pmatrix}. \end{equation} -Und Schlussendlich kann der Näherungsbruch +Und schlussendlich kann der Näherungsbruch \[ \frac{A_k}{B_k} \] @@ -143,7 +142,7 @@ 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} +Die Berechnung von $A_k, B_k$ \eqref{0f1:math:matrix:ende:eq} kann man auch ohne die Matrizenschreibweise \cite{0f1:kettenbrueche} aufschreiben: \begin{itemize} \item Startbedingungen: \begin{align*} @@ -165,7 +164,7 @@ B_{k+1} &= B_{k-1} \cdot b_k + B_k \cdot a_k Näherungsbruch: \qquad$\displaystyle\frac{A_k}{B_k}$ \end{itemize} -Ein grosser Vorteil dieser Umsetzung als Rekursionsformel ist \ref{0f1:listing:kettenbruchRekursion}, dass im Vergleich zum Code \ref{0f1:listing:kettenbruchIterativ} eine Division gespart werden kann und somit weniger Rundungsfehler entstehen können. +Ein grosser Vorteil dieser Umsetzung als Rekursionsformel \eqref{0f1:listing:kettenbruchRekursion} ist, dass im Vergleich zum Code (Listing \ref{0f1:listing:kettenbruchIterativ}) eine Division gespart werden kann und somit weniger Rundungsfehler entstehen können. %Code \lstinputlisting[style=C,float,caption={Rekursionsformel für Kettenbruch.},label={0f1:listing:kettenbruchRekursion}, firstline=8]{papers/0f1/listings/kettenbruchRekursion.c} \ No newline at end of file diff --git a/buch/papers/0f1/teil3.tex b/buch/papers/0f1/teil3.tex index 72b1b21..00d4182 100644 --- a/buch/papers/0f1/teil3.tex +++ b/buch/papers/0f1/teil3.tex @@ -9,56 +9,55 @@ Im Verlauf dieser Arbeit 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}. +Ebenso kann festgestellt werden, dass je grösser der Wert $z$ in $\mathstrut_0F_1(;c;z)$ wird, desto mehr weichen die berechneten Resultate von den Erwarteten \cite{0f1:wolfram-0f1} ab. \subsection{Konvergenz \label{0f1:subsection:konvergenz}} -Es zeigt sich in Abbildung \ref{0f1:ausblick:plot:airy:konvergenz}, dass schon nach drei Iterationen ($k = 3$) die Funktionen schon genaue Resultate im Bereich von -2 bis 2 liefert. Ebenso kann festgestellt werden, dass der Kettenbruch schneller konvergiert und im positiven Bereich sogar mit der Referenzfunktion $Ai(x)$ übereinstimmt. Da die Rekursionsformel \ref{0f1:listing:kettenbruchRekursion} eine Abwandlung des Kettenbruches ist, verhalten sich die Funktionen in diesem Fall gleich. +Es zeigt sich in Abbildung \ref{0f1:ausblick:plot:airy:konvergenz}, dass 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 $\operatorname{Ai}(x)$ übereinstimmt. Da die Rekursionsformel eine Abwandlung des Kettenbruches ist, verhalten sich die Funktionen in diesem Fall gleich. Erst wenn mehrerer Iterationen gemacht werden, um die Genauigkeit zu verbessern, ist der Kettenbruch den anderen zwei Algorithmen, bezüglich Konvergenz überlegen. -Interessant ist auch, dass die Rekursionsformel nahezu gleich schnell wie die Potenzreihe konvergiert, aber sich danach einschwingt \ref{0f1:ausblick:plot:konvergenz:positiv}. Dieses Verhalten ist auch bei grösseren $z$ zu beobachten, allerdings ist dann die Differenz zwischen dem ersten lokalen Minimum von k bis zum Abbruch kleiner -\ref{0f1:ausblick:plot:konvergenz:positiv}. -Dieses Phänomen ist auf die Lösung der Rekursionsformel zurück zu führen\eqref{0f1:math:loesung:eq}. Da im Gegensatz die ganz kleinen Werte nicht zu einer Konvergenz wie beim Kettenbruch führen, sondern sich noch eine Zeit lang durch die Multiplikation aufschwingen. +Interessant ist auch, dass die Rekursionsformel nahezu gleich schnell wie die Potenzreihe konvergiert, aber sich danach, wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} zu beobachten ist, 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. +Dieses Phänomen ist auf die Lösung der Rekursionsformel \eqref{0f1:math:loesung:eq} zurück zu führen. 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. +Ist $z$ negativ wie im Abbildung \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. +Verändert sich der Wert von z in $\mathstrut_0F_1(;c;z)$ gegen grössere positive Werte, wie zum Beispiel $c = 800$ liefert die Kettenbruch-Funktion (Listing \ref{0f1:listing:kettenbruchIterativ}) \verb+inf+ zurück. Dies könnte durch ein Abbruchkriterien abgefangen werden. Allerdings würde das, bei grossen Werten zulasten der Genauigkeit gehen. Trotzdem könnte, je nach Anwendung, auf ein paar Nachkommastellen verzichtet werden. -Wohingegen die Potenzreihe \eqref{0f1:listing:potenzreihe} das Problem hat, dass je mehr Terme berechnet werden, desto schneller wächst die Fakultät und irgendwann gibt es eine Bereichsüberschreitung von \verb+double+. Schlussendlich gibt das Unterprogramm das Resultat \verb+-nan(ind)+ zurück. -Die Rekursionformel \eqref{0f1:listing:kettenbruchRekursion} liefert für sehr grosse positive Werte die genausten Ergebnisse, verglichen mit der GNU Scientific Library. Wie schon vermutet ist die Rekursionsformel, im positivem Bereich, der stabilste Algorithmus. Um die Stabilität zu gewährleisten, muss wie in Abbild \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, die Iterationstiefe $k$ genug gross gewählt werden. +Wohingegen die Potenzreihe (Listing \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 \eqref{0f1:listing:kettenbruchRekursion} liefert für sehr grosse positive Werte die genausten Ergebnisse, verglichen mit der GNU Scientific Library. Wie schon vermutet ist die Rekursionsformel, im positivem Bereich, der stabilste Algorithmus. Um die Stabilität zu gewährleisten, muss wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, die Iterationstiefe $k$ genug gross gewählt werden. -Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Grund dafür ist die Potenz von z, was zum Phänomen der Auslöschung 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. +Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Grund dafür ist die Potenz von z, was zum Phänomen der Auslöschung \cite{0f1:SeminarNumerik} führt. Schön zu beobachten ist dies in der Abbildung \ref{0f1:ausblick:plot:airy:stabilitaet} mit der Airy-Funktion als Test. So sind 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$. + \caption{Konvergenz nach drei Iterationen, dargestellt anhand der Airy Funktion zu den Anfangsbedingungen $\operatorname{Ai}(0)=1$ und $\operatorname{Ai}'(0)=0$. \label{0f1:ausblick:plot:airy:konvergenz}} \end{figure} \begin{figure} \centering \includegraphics[width=0.8\textwidth]{papers/0f1/images/konvergenzPositiv.pdf} - \caption{Konvergenz: Logarithmisch dargestellte Differenz vom erwarteten Endresultat. + \caption{Konvergenz mit positivem z; Logarithmisch 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. + \caption{Konvergenz mit negativem z; 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)$. + \caption{Stabilität der 3 Algorithmen verglichen mit der Referenz Funktion $\operatorname{Ai}(x)$. \label{0f1:ausblick:plot:airy:stabilitaet}} \end{figure} -- cgit v1.2.1 From 1a65f1e2cc20e1dfe5d0d88cf42ee7355c20b1ff Mon Sep 17 00:00:00 2001 From: Fabian <@> Date: Sat, 13 Aug 2022 22:27:32 +0200 Subject: 2. Ueberarbeitung --- buch/papers/0f1/listings/kettenbruchIterativ.c | 60 +++++++------------------ buch/papers/0f1/listings/kettenbruchRekursion.c | 60 ++++++++++++++++++------- buch/papers/0f1/teil1.tex | 2 +- buch/papers/0f1/teil2.tex | 12 +++-- buch/papers/0f1/teil3.tex | 20 ++++----- 5 files changed, 79 insertions(+), 75 deletions(-) diff --git a/buch/papers/0f1/listings/kettenbruchIterativ.c b/buch/papers/0f1/listings/kettenbruchIterativ.c index d897b8f..3caaf43 100644 --- a/buch/papers/0f1/listings/kettenbruchIterativ.c +++ b/buch/papers/0f1/listings/kettenbruchIterativ.c @@ -1,53 +1,27 @@ /** - * @brief Calculates the Hypergeometric Function 0F1(;b;z) - * @param b0 in 0F1(;b0;z) - * @param z in 0F1(;b0;z) - * @param n number of itertions (precision) + * @brief Calculates the Hypergeometric Function 0F1(;c;z) + * @param c in 0F1(;c;z) + * @param z in 0F1(;c;z) + * @param k number of itertions (precision) * @return Result */ -static double fractionRekursion0f1(const double c, const double z, unsigned int n) +static double fractionIter0f1(const double c, const double z, unsigned int k) { //declaration double a = 0.0; double b = 0.0; - double Ak = 0.0; - double Bk = 0.0; - double Ak_1 = 0.0; - double Bk_1 = 0.0; - double Ak_2 = 0.0; - double Bk_2 = 0.0; + double abk = 0.0; + double temp = 0.0; - for (unsigned int k = 0; k <= n; ++k) + for (; k > 0; --k) { - if (k == 0) - { - a = 1.0; //a0 - //recursion fomula for A0, B0 - Ak = a; - Bk = 1.0; - } - else if (k == 1) - { - a = 1.0; //a1 - b = z/c; //b1 - //recursion fomula for A1, B1 - Ak = a * Ak_1 + b * 1.0; - Bk = a * Bk_1; - } - else - { - a = 1 + (z / (k * ((k - 1) + c)));//ak - b = -(z / (k * ((k - 1) + c))); //bk - //recursion fomula for Ak, Bk - Ak = a * Ak_1 + b * Ak_2; - Bk = a * Bk_1 + b * Bk_2; - } - //save old values - Ak_2 = Ak_1; - Bk_2 = Bk_1; - Ak_1 = Ak; - Bk_1 = Bk; + abk = z / (k * ((k - 1) + c)); //abk = ak, bk + + a = k > 1 ? (1 + abk) : 1; //a0, a1 + b = k > 1 ? -abk : abk; //b1 + + temp = b / (a + temp); //bk / (ak + last result) } - //approximation fraction - return Ak/Bk; -} + + return a + temp; //a0 + temp +} \ No newline at end of file diff --git a/buch/papers/0f1/listings/kettenbruchRekursion.c b/buch/papers/0f1/listings/kettenbruchRekursion.c index 3caaf43..d897b8f 100644 --- a/buch/papers/0f1/listings/kettenbruchRekursion.c +++ b/buch/papers/0f1/listings/kettenbruchRekursion.c @@ -1,27 +1,53 @@ /** - * @brief Calculates the Hypergeometric Function 0F1(;c;z) - * @param c in 0F1(;c;z) - * @param z in 0F1(;c;z) - * @param k number of itertions (precision) + * @brief Calculates the Hypergeometric Function 0F1(;b;z) + * @param b0 in 0F1(;b0;z) + * @param z in 0F1(;b0;z) + * @param n number of itertions (precision) * @return Result */ -static double fractionIter0f1(const double c, const double z, unsigned int k) +static double fractionRekursion0f1(const double c, const double z, unsigned int n) { //declaration double a = 0.0; double b = 0.0; - double abk = 0.0; - double temp = 0.0; + double Ak = 0.0; + double Bk = 0.0; + double Ak_1 = 0.0; + double Bk_1 = 0.0; + double Ak_2 = 0.0; + double Bk_2 = 0.0; - for (; k > 0; --k) + for (unsigned int k = 0; k <= n; ++k) { - abk = z / (k * ((k - 1) + c)); //abk = ak, bk - - a = k > 1 ? (1 + abk) : 1; //a0, a1 - b = k > 1 ? -abk : abk; //b1 - - temp = b / (a + temp); //bk / (ak + last result) + if (k == 0) + { + a = 1.0; //a0 + //recursion fomula for A0, B0 + Ak = a; + Bk = 1.0; + } + else if (k == 1) + { + a = 1.0; //a1 + b = z/c; //b1 + //recursion fomula for A1, B1 + Ak = a * Ak_1 + b * 1.0; + Bk = a * Bk_1; + } + else + { + a = 1 + (z / (k * ((k - 1) + c)));//ak + b = -(z / (k * ((k - 1) + c))); //bk + //recursion fomula for Ak, Bk + Ak = a * Ak_1 + b * Ak_2; + Bk = a * Bk_1 + b * Bk_2; + } + //save old values + Ak_2 = Ak_1; + Bk_2 = Bk_1; + Ak_1 = Ak; + Bk_1 = Bk; } - - return a + temp; //a0 + temp -} \ No newline at end of file + //approximation fraction + return Ak/Bk; +} diff --git a/buch/papers/0f1/teil1.tex b/buch/papers/0f1/teil1.tex index 50198fc..c0f857d 100644 --- a/buch/papers/0f1/teil1.tex +++ b/buch/papers/0f1/teil1.tex @@ -96,7 +96,7 @@ x\cdot\mathstrut_0F_1\biggl( \qedhere \end{align} -Um die Stabilität der Algorithmen zu $\mathstrut_0F_1$ zu überprüfen, wird in diesem speziellem Fall die Airy Funktion $\operatorname{Ai}(x)$ \eqref{0f1:airy:hypergeometrisch:eq} +Um die Stabilität der Algorithmen zu $\mathstrut_0F_1$ zu überprüfen, wird in dieser Arbeit die Airy Funktion $\operatorname{Ai}(x)$ \eqref{0f1:airy:hypergeometrisch:eq} benutzt. diff --git a/buch/papers/0f1/teil2.tex b/buch/papers/0f1/teil2.tex index 587f63b..06ac53e 100644 --- a/buch/papers/0f1/teil2.tex +++ b/buch/papers/0f1/teil2.tex @@ -11,7 +11,7 @@ Die Unterprogramme wurde jeweils, wie die GNU Scientific Library, in C geschrieb \subsection{Potenzreihe \label{0f1:subsection:potenzreihe}} -Die naheliegendste Lösung ist die Programmierung der Potenzreihe \eqref{0f1:umsetzung:0f1:eq}. Allerdings ist ein Problem dieser Umsetzung (Listing \ref{0f1:listing:potenzreihe}), dass die Fakultät im Nenner schnell grosse Werte annimmt. Dies führt zu einer Bereichsüberschreitung des \verb+double+ Bereiches \cite{0f1:double}. Spätesten ab $k=167$ tritt dieser Falle ein. +Die naheliegendste Lösung ist die Programmierung der Potenzreihe \eqref{0f1:umsetzung:0f1:eq}. \begin{align} \label{0f1:umsetzung:0f1:eq} @@ -30,6 +30,9 @@ Die naheliegendste Lösung ist die Programmierung der Potenzreihe \eqref{0f1:ums \subsection{Kettenbruch \label{0f1:subsection:kettenbruch}} +Eine weitere Variante zur Berechnung von $\mathstrut_0F_1(;c;z)$ ist die Umsetzung als Kettenbruch. +Der Vorteil einer Umsetzung als Kettenbruch gegenüber der Potenzreihe, ist die schnellere Konvergenz. + Ein endlicher Kettenbruch \cite{0f1:wiki-kettenbruch} ist ein Bruch der Form \begin{equation*} a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{b_3}{a_3+\cdots}}} @@ -44,6 +47,7 @@ Angewendet auf die Funktion $\mathstrut_0F_1$ bedeutet dies \cite{0f1:wiki-fract \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*} Umgeformt ergibt sich folgender Kettenbruch \cite{0f1:wolfram-0f1} +{\color{red}TODO Herleitung} \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}}}, @@ -115,7 +119,7 @@ an, ergibt sich folgende Matrixdarstellungen: \begin{pmatrix} b_k\\ a_k - \end{pmatrix} + \end{pmatrix}. \end{align*} Nach vollständiger Induktion ergibt sich für den Schritt $k$, die Matrix \begin{equation} @@ -142,7 +146,7 @@ berechnet werden. \subsubsection{Lösung} -Die Berechnung von $A_k, B_k$ \eqref{0f1:math:matrix:ende:eq} kann man auch ohne die Matrizenschreibweise \cite{0f1:kettenbrueche} aufschreiben: +Die Berechnung von $A_k, B_k$ gemäss \eqref{0f1:math:matrix:ende:eq} kann man auch ohne die Matrizenschreibweise \cite{0f1:kettenbrueche} aufschreiben: \begin{itemize} \item Startbedingungen: \begin{align*} @@ -161,7 +165,7 @@ B_{k+1} &= B_{k-1} \cdot b_k + B_k \cdot a_k \end{aligned} \] \item -Näherungsbruch: \qquad$\displaystyle\frac{A_k}{B_k}$ +Näherungsbruch: \qquad$\displaystyle\frac{A_k}{B_k}$. \end{itemize} Ein grosser Vorteil dieser Umsetzung als Rekursionsformel \eqref{0f1:listing:kettenbruchRekursion} ist, dass im Vergleich zum Code (Listing \ref{0f1:listing:kettenbruchIterativ}) eine Division gespart werden kann und somit weniger Rundungsfehler entstehen können. diff --git a/buch/papers/0f1/teil3.tex b/buch/papers/0f1/teil3.tex index 00d4182..2942a0b 100644 --- a/buch/papers/0f1/teil3.tex +++ b/buch/papers/0f1/teil3.tex @@ -13,25 +13,25 @@ Ebenso kann festgestellt werden, dass je grösser der Wert $z$ in $\mathstrut_0F \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 $\operatorname{Ai}(x)$ übereinstimmt. Da die Rekursionsformel eine Abwandlung des Kettenbruches ist, verhalten sich die Funktionen in diesem Fall gleich. +Es zeigt sich in Abbildung \ref{0f1:ausblick:plot:airy:konvergenz}, dass nach drei Iterationen ($k = 3$) die Funktionen genaue Resultate im Bereich von $-2$ bis $2$ liefert. Ebenso kann festgestellt werden, dass der Kettenbruch schneller konvergiert und im positiven Bereich sogar mit der Referenzfunktion $\operatorname{Ai}(x)$ übereinstimmt. Da die Rekursionsformel eine Abwandlung des Kettenbruches ist, verhalten sich die Funktionen in diesem Fall gleich. -Erst wenn mehrerer Iterationen gemacht werden, um die Genauigkeit zu verbessern, ist der Kettenbruch den anderen zwei Algorithmen, bezüglich Konvergenz überlegen. -Interessant ist auch, dass die Rekursionsformel nahezu gleich schnell wie die Potenzreihe konvergiert, aber sich danach, wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} zu beobachten ist, 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. -Dieses Phänomen ist auf die Lösung der Rekursionsformel \eqref{0f1:math:loesung:eq} zurück zu führen. Da im Gegensatz die ganz kleinen Werte nicht zu einer Konvergenz wie beim Kettenbruch führen, sondern sich noch eine Zeit lang durch die Multiplikation aufschwingen. +Erst wenn mehrerer Iterationen 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, wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} zu beobachten ist, 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. +Dieses Phänomen ist auf die Lösung der Rekursionsformel \eqref{0f1:math:matrix:ende:eq} zurück zu führen. 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 Abbildung \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. +Ist $z$ negativ wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:negativ}, führt dies zu einer gegenseitigen Kompensation von negativen und positiven Termen. Dies führt dazu, dass die Rekursionsformel zusammen mit der Potenzreihe abbricht. +Die ansteigende Differenz mit anschliessendendem Einschwingen, 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 (Listing \ref{0f1:listing:kettenbruchIterativ}) \verb+inf+ zurück. Dies könnte durch ein Abbruchkriterien abgefangen werden. Allerdings würde das, bei grossen Werten zulasten der Genauigkeit gehen. Trotzdem könnte, je nach Anwendung, auf ein paar Nachkommastellen verzichtet werden. +Verändert sich der Wert von $z$ in $\mathstrut_0F_1(;c;z)$ gegen grössere positive Werte, wie zum Beispiel $c = 800$ liefert die Kettenbruch-Funktion (Listing \ref{0f1:listing:kettenbruchIterativ}) \verb+inf+ zurück. Dies könnte durch ein Abbruchkriterien abgefangen werden. Allerdings würde das, bei grossen Werten zulasten der Genauigkeit gehen. Trotzdem könnte, je nach Anwendung, auf ein paar Nachkommastellen verzichtet werden. -Wohingegen die Potenzreihe (Listing \ref{0f1:listing:potenzreihe}) das Problem hat, dass je mehr Terme berechnet werden, desto schneller wächst die Fakultät und irgendwann gibt es eine Bereichsüberschreitung von \verb+double+. Schlussendlich gibt das Unterprogramm das Resultat \verb+-nan(ind)+ zurück. +Wohingegen die Potenzreihe (Listing \ref{0f1:listing:potenzreihe}) das Problem hat, dass je mehr Terme berechnet werden, desto schneller wächst die Fakultät im Nenner. Dies führt zu einer Bereichsüberschreitung des \verb+double+ Bereiches \cite{0f1:double}, der spätesten ab $k=167$ eintritt. Schlussendlich gibt das Unterprogramm das Resultat \verb+-nan(ind)+ zurück. Die Rekursionformel \eqref{0f1:listing:kettenbruchRekursion} liefert für sehr grosse positive Werte die genausten Ergebnisse, verglichen mit der GNU Scientific Library. Wie schon vermutet ist die Rekursionsformel, im positivem Bereich, der stabilste Algorithmus. Um die Stabilität zu gewährleisten, muss wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, die Iterationstiefe $k$ genug gross gewählt werden. -Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Grund dafür ist die Potenz von z, was zum Phänomen der Auslöschung \cite{0f1:SeminarNumerik} führt. Schön zu beobachten ist dies in der Abbildung \ref{0f1:ausblick:plot:airy:stabilitaet} mit der Airy-Funktion als Test. So sind 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. - +{\color{red}TODO Abb. 20.3} +Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Grund dafür ist die Potenz von $z$, was zum Phänomen der Auslöschung \cite{0f1:SeminarNumerik} führt. Schön zu beobachten ist dies in der Abbildung \ref{0f1:ausblick:plot:airy:stabilitaet} mit der Airy-Funktion als Test. So sind 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 -- cgit v1.2.1 From 1b634d9be2a8536dbc55b3ac3b60efda6a5a16c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 15 Aug 2022 09:46:33 +0200 Subject: Corrected some errors. --- .../sturmliouville/waermeleitung_beispiel.tex | 45 +++++++++++----------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 5bd5ce2..5d178c2 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -11,8 +11,8 @@ betrachtet und wie das Sturm-Liouville-Problem bei der Beschreibung dieses physikalischen Phänomenes auftritt. Zunächst wird ein eindimensionaler homogener Stab der Länge $l$ und -Wärmeleitkoeffizient $\kappa$. -Somit ergibt sich für das Wärmeleitungsproblem +Wärmeleitkoeffizient $\kappa$ betrachtet. +Es ergibt sich für das Wärmeleitungsproblem die partielle Differentialgleichung \begin{equation} \label{eq:slp-example-fourier-heat-equation} @@ -26,13 +26,14 @@ Stab beschreibt, werden zusätzliche Bedingungen benötigt, um beispielsweise die Lösung für einen Stab zu finden, bei dem die Enden auf konstanter Tempreatur gehalten werden. -%%%%%%%%%%%%% Randbedingungen für Stab mit konstanten Endtemperaturen %%%%%%%%% - -\subsubsection{Stab mit Enden auf konstanter Temperatur} +% +% Randbedingungen für Stab mit konstanten Endtemperaturen +% +\subsubsection{Randbedingungen für Stab mit Enden auf konstanter Temperatur} Die Enden des Stabes auf konstanter Temperatur zu halten bedeutet, dass die Lösungsfunktion $u(t,x)$ bei $x = 0$ und $x = l$ nur die vorgegebene -Temperatur zurückgeben darf. +Temperatur zurückgeben darf. Diese wird einfachheitshalber als $0$ angenomen. Es folgen nun \begin{equation} \label{eq:slp-example-fourier-boundary-condition-ends-constant} @@ -44,12 +45,14 @@ Es folgen nun \end{equation} als Randbedingungen. -%%%%%%%%%%%%% Randbedingungen für Stab mit isolierten Enden %%%%%%%%%%%%%%%%%%% +% +% Randbedingungen für Stab mit isolierten Enden +% -\subsubsection{Stab mit isolierten Enden} +\subsubsection{Randbedingungen für Stab mit isolierten Enden} Bei isolierten Enden des Stabes können belibige Temperaturen für $x = 0$ und -$x = l$ auftreten. In diesem Fall nicht erlaubt ist es, dass Wärme vom Stab +$x = l$ auftreten. In diesem Fall ist es nicht erlaubt, dass Wärme vom Stab an die Umgebung oder von der Umgebung an den Stab abgegeben wird. Aus der Physik ist bekannt, dass Wärme immer von der höheren zur tieferen @@ -72,9 +75,6 @@ als Randbedingungen. \subsubsection{Lösung der Differenzialgleichung} -% TODO: Referenz Separationsmethode -% TODO: Formeln sauber in Text einbinden. - Da die Lösungsfunktion von zwei Variablen abhängig ist, wird als Lösungsansatz die Separationsmethode verwendet. Dazu wird @@ -83,7 +83,8 @@ Dazu wird = T(t)X(x) \] -in die ursprüngliche Differenzialgleichung eingesetzt. +in die partielle Differenzialgleichung +\eqref{eq:slp-example-fourier-heat-equation} eingesetzt. Daraus ergibt sich \[ T^{\prime}(t)X(x) @@ -95,13 +96,13 @@ als neue Form. Nun können alle von $t$ abhängigen Ausdrücke auf die linke Seite, sowie alle von $x$ abhängigen Ausdrücke auf die rechte Seite gebracht werden und mittels der neuen Variablen $\mu$ gekoppelt werden: -\begin{equation} +\[ \frac{T^{\prime}(t)}{\kappa T(t)} = \frac{X^{\prime \prime}(x)}{X(x)} = \mu -\end{equation} +\] Durch die Einführung von $\mu$ kann das Problem nun in zwei separate Differenzialgleichungen aufgeteilt werden: \begin{equation} @@ -123,12 +124,14 @@ Erfüllen die Randbedingungen des Stab-Problems auch die Randbedingungen des Sturm-Liouville-Problems, kann bereits die Aussage getroffen werden, dass alle Lösungen für die Gleichung in $x$ orthogonal sein werden. +Da die Bedingungen des Stab-Problem nur Anforderungen an $x$ stellen, können +diese direkt für $X(x)$ übernomen werden. Es gilt also $X(0) = X(l) = 0$. Damit die Lösungen von $X$ orthogonal sind, müssen also die Gleichungen \begin{equation} \begin{aligned} \label{eq:slp-example-fourier-randbedingungen} - k_a y(a) + h_a p(a) y'(a) &= 0 \\ - k_b y(b) + h_b p(b) y'(b) &= 0 + k_a X(a) + h_a p(a) X'(a) &= 0 \\ + k_b X(b) + h_b p(b) X'(b) &= 0 \end{aligned} \end{equation} erfüllt sein und es muss ausserdem @@ -237,8 +240,6 @@ bestimmen. Dazu werden nochmals die Randbedingungen \eqref{eq:slp-example-fourier-boundary-condition-ends-constant} und \eqref{eq:slp-example-fourier-boundary-condition-ends-isolated} benötigt. -Zu bemerken ist, dass die Randbedingungen nur Anforderungen in $x$ stellen und -somit direkt für $X(x)$ übernomen werden können. Da die Koeffizienten $A$ und $B$, sowie die Parameter $\alpha$ uns $\beta$ im allgemeninen ungleich $0$ sind, müssen die Randbedingungen durch die @@ -282,9 +283,9 @@ Es bleibt noch nach $\beta$ aufzulösen: \] Es folgt nun wegen $\mu = -\beta^{2}$, dass -\begin{equation} +\[ \mu_1 = -\beta^{2} = -\frac{n^{2}\pi^{2}}{l^{2}} -\end{equation} +\] sein muss. Ausserdem ist zu bemerken, dass dies auch gleich $-\alpha^{2}$ ist. Da aber $A = 0$ gilt und der Summand mit $\alpha$ verschwindet, ist dies keine @@ -485,7 +486,7 @@ orthogonal zueinander stehen und = 0 \] -da Sinus- und Cosinus-Funktionen ebenfalls orthogonal zueinander sin. +da Sinus- und Cosinus-Funktionen ebenfalls orthogonal zueinander sind. Es bleibt also lediglich der Summand für $a_m$ stehen, was die Gleichung zu \[ -- cgit v1.2.1 From d80f928a8c5248d4fb92d04ed81cdaeec61bc10a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 15 Aug 2022 09:51:21 +0200 Subject: Added comments to source. --- .../papers/sturmliouville/waermeleitung_beispiel.tex | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 5d178c2..14c0d9a 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -71,7 +71,9 @@ Somit folgen \end{equation} als Randbedingungen. -%%%%%%%%%%% Lösung der Differenzialgleichung %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Lösung der Differenzialgleichung mittels Separation +% \subsubsection{Lösung der Differenzialgleichung} @@ -118,6 +120,10 @@ Differenzialgleichungen aufgeteilt werden: 0 \end{equation} +% +% Überprüfung Orthogonalität der Lösungen +% + Es ist an dieser Stelle zu bemerken, dass die Gleichung in $x$ in Sturm-Liouville-Form ist. Erfüllen die Randbedingungen des Stab-Problems auch die Randbedingungen des @@ -173,6 +179,10 @@ Analog dazu kann gezeit werden, dass die Randbedingungen für einen Stab mit isolierten Enden ebenfalls die Sturm-Liouville-Randbedingungen erfüllen und somit auch zu orthogonalen Lösungen führen. +% +% Lösung von X(x), Teil mu +% + \subsubsection{Lösund der Differentialgleichung in x} Als erstes wird auf die erste erste Gleichung eingegangen. Aufgrund der Struktur der Gleichung @@ -338,7 +348,9 @@ wie auch mit isolierten Enden -\frac{n^{2}\pi^{2}}{l^{2}}. \end{equation} -%%%% Koeffizienten a_n und b_n mittels skalarprodukt. %%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Lösung von X(x), Teil: Koeffizienten a_n und b_n mittels skalarprodukt. +% Bisher wurde über die Koeffizienten $A$ und $B$ noch nicht viel ausgesagt. Zunächst ist wegen vorhergehender Rechnung ersichtlich, dass es sich bei @@ -589,6 +601,10 @@ Es bleibt also noch \end{aligned} \] +% +% Lösung von T(t) +% + \subsubsection{Lösund der Differentialgleichung in t} Zuletzt wird die zweite Gleichung der Separation \eqref{eq:slp-example-fourier-separated-t} betrachtet. -- cgit v1.2.1 From b06a9e5b30562e550540ea4b13b4e449970e9b2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 15 Aug 2022 10:03:42 +0200 Subject: Updated upstrem. --- buch/papers/sturmliouville/waermeleitung_beispiel.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 14c0d9a..b466d15 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -602,7 +602,7 @@ Es bleibt also noch \] % -% Lösung von T(t) +% Lösung von T(t) % \subsubsection{Lösund der Differentialgleichung in t} -- cgit v1.2.1 From 97e85459986381371236d1b9529d67064ac226c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 15 Aug 2022 11:58:27 +0200 Subject: Started properties of solutions. --- buch/papers/sturmliouville/eigenschaften.tex | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex index 9f20070..6e6a26f 100644 --- a/buch/papers/sturmliouville/eigenschaften.tex +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -1,9 +1,21 @@ % -% teil1.tex -- Beispiel-File für das Paper +% eigenschaften.tex -- Eigenschaften der Lösungen % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Eigenschaften von Lösungen \label{sturmliouville:section:solution-properties}} \rhead{Eigenschaften von Lösungen} -% Erik work + +Im weiteren werden nun die Eigenschaften der Lösungen eines +Sturm-Liouville-Problems diskutiert und aufgezeigt, wie diese Eigenschaften +zustande kommen. + +Dazu wird der Operator $L_0$ welcher bereits in Kapitel +\ref{buch:integrale:subsection:sturm-liouville-problem} betrachtet wurde, +noch etwas genauer angeschaut. Es wird also +\[ + L_0 + = + -\frac{d}{dx}p(x) +\] \ No newline at end of file -- cgit v1.2.1 From 23d12ac04f38d75c3a904fd99cf6586efc7ea267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 15 Aug 2022 13:13:59 +0200 Subject: Finished first version of solution properties. --- buch/papers/sturmliouville/eigenschaften.tex | 60 ++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 3 deletions(-) diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex index 6e6a26f..1552f7f 100644 --- a/buch/papers/sturmliouville/eigenschaften.tex +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -13,9 +13,63 @@ zustande kommen. Dazu wird der Operator $L_0$ welcher bereits in Kapitel \ref{buch:integrale:subsection:sturm-liouville-problem} betrachtet wurde, -noch etwas genauer angeschaut. Es wird also +noch etwas genauer angeschaut. Es wird also im Folgenden \[ L_0 = - -\frac{d}{dx}p(x) -\] \ No newline at end of file + -\frac{d}{dx}p(x)\frac{d}{dx} +\] +zusammen mit den Randbedingungen +\[ + \begin{aligned} + k_a y(a) + h_a p(a) y'(a) &= 0 \\ + k_b y(b) + h_b p(b) y'(b) &= 0 + \end{aligned} +\] +verwendet. Wie im Kapitel +\ref{buch:integrale:subsection:sturm-liouville-problem} bereits gezeigt, +resultieren die Randbedingungen aus der Anforderung den Operator $L_0$ +selbsadjungiert zu machen. +Es wurde allerdings noch nicht darauf eingegangen, welche Eigenschaften dies +für die Lösungen des Sturm-Liouville-Problems zur Folge hat. + +\subsubsection{Exkurs zum Spektralsatz} + +Um zu verstehen was für Eigenschaften der selbstadjungierte Operator $L_0$ in +den Lösungen hervorbringt, wird der Spektralsatz benötigt. + +Dieser wird in der linearen Algebra oft verwendet um zu zeigen, dass eine Matrix +diagonalisierbar ist, beziehungsweise dass eine Orthonormalbasis existiert. +Dazu wird zunächst gezeigt, dass eine gegebene $n\times n$-Matrix $A$ aus einem +endlichdimensionalem $\mathbb{K}$-Vektorraum selbstadungiert ist, also dass +\[ + \langle Av, w \rangle + = + \langle v, Aw \rangle +\] +für $ v, w \in \mathbb{K}^n$ gilt. +Ist dies der Fall, folgt direkt, dass $A$ auch normal ist. +Dann wird die Aussage des Spektralsatzes verwended, welche besagt, dass für +Endomorphismen genau dann eine Orthonormalbasis aus Eigenvektoren existiert, +wenn sie normal sind und nur Eigenwerte aus $\mathbb{K}$ besitzten. + +Dies ist allerdings nicht die Einzige Version des Spektralsatzes. +Unter anderen gibt es den Spektralsatz für kompakte Operatoren. +Dieser besagt, dass wenn ein linearer kompakter Operator in +$\mathbb{R}$ selbstadjungiert ist, ein (eventuell endliches) +Orthonormalsystem existiert. + +\subsubsection{Anwendung des Spektralsatzes auf $L_0$} + +Der Spektralsatz besagt also, dass, weil $ L_0 $ selbstadjungiert ist, eine +Orthonormalbasis aus Eigenvektoren existiert. +Genauer bedeutet dies, dass alle Eigenvektoren beziehungsweise alle Lösungen +des Sturm-Liouville-Problems orthogonal zueinander sind bezüglich dem +Skalarprodukt, in dem $ L_0 $ selbstadjungiert ist. + +Erfüllt also eine Differenzialgleichung die in Abschnitt +\ref{sturmliouville:section:teil0} präsentierten Eigenschaften und erfüllen +die Randbedingungen der Differentialgleichung die Randbedingungen +des Sturm-Liouville-Problems, kann bereits geschlossen werden, dass die +Lösungsfunktion des Problems eine Linearkombination aus orthogonalen +Basisfunktionen ist. \ No newline at end of file -- cgit v1.2.1 From c253055febe85abf5379e416f9731a1115a817b1 Mon Sep 17 00:00:00 2001 From: daHugen Date: Mon, 15 Aug 2022 13:21:08 +0200 Subject: Changed font color for some words in subsection \ref{lambertw:subsection:LoesAnalys} and defined a new color named applegreen. --- buch/papers/lambertw/teil4.tex | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/buch/papers/lambertw/teil4.tex b/buch/papers/lambertw/teil4.tex index ba32696..5a7c5ca 100644 --- a/buch/papers/lambertw/teil4.tex +++ b/buch/papers/lambertw/teil4.tex @@ -212,10 +212,12 @@ Nun haben wir eine Lösung, aber wie es immer mit Lösungen ist, stellt sich die \subsection{Lösung analysieren \label{lambertw:subsection:LoesAnalys}} +\definecolor{applegreen}{rgb}{0.55, 0.71, 0.0} + \begin{figure} \centering \includegraphics{papers/lambertw/Bilder/VerfolgungskurveBsp.png} - \caption[Graph der Verfolgungskurve]{Graph der Verfolgungskurve wobei, ({\color{red}rot}) die Funktion \ensuremath{y(x)} ist, ({\color{darkgreen}grün}) der quadratische Teil und ({\color{blue}blau}) dem \ensuremath{\operatorname{ln}(x)}-Teil entspricht. + \caption[Graph der Verfolgungskurve]{Graph der Verfolgungskurve wobei, ({\color{red}rot}) die Funktion \ensuremath{y(x)} ist, ({\color{applegreen}grün}) der quadratische Teil und ({\color{blue}blau}) dem \ensuremath{\operatorname{ln}(x)}-Teil entspricht. \label{lambertw:BildFunkLoes} } \end{figure} @@ -224,7 +226,7 @@ Das Resultat, wie ersichtlich, ist die Funktion \begin{equation} {\color{red}{y(x)}} = - C_1 + C_2 {\color{darkgreen}{x^2}} {\color{blue}{-}} \frac{\color{blue}{\operatorname{ln}(x)}}{8 \cdot C_2}, + C_1 + C_2 {\color{applegreen}{x^2}} {\color{blue}{-}} \frac{\color{blue}{\operatorname{ln}(x)}}{8 \cdot C_2}, \label{lambertw:funkLoes} \end{equation} für welche die Koeffizienten \(C_1\) und \(C_2\) aus den Anfangsbedingungen bestimmt werden können. Zuerst soll aber eine qualitative Intuition oder Idee für das Aussehen der Funktion \(y(x)\) geschaffen werden: -- cgit v1.2.1 From c0bbcf891e2e02a760eb640b735b2da80d2dc286 Mon Sep 17 00:00:00 2001 From: Andrea Mozzini Vellen Date: Mon, 15 Aug 2022 13:41:03 +0200 Subject: korrektur 15.08 --- buch/papers/kreismembran/references.bib | 6 ++++++ buch/papers/kreismembran/teil1.tex | 27 ++++++++++++++++----------- buch/papers/kreismembran/teil2.tex | 8 ++++---- buch/papers/kreismembran/teil3.tex | 22 +++++++++++++--------- 4 files changed, 39 insertions(+), 24 deletions(-) diff --git a/buch/papers/kreismembran/references.bib b/buch/papers/kreismembran/references.bib index 3d9d0c1..65173f8 100644 --- a/buch/papers/kreismembran/references.bib +++ b/buch/papers/kreismembran/references.bib @@ -89,4 +89,10 @@ type = {Dissertation}, author = {{Eric John Ruggiero Doctor of Philosophy In Mechanical Engineering}}, date = {2005}, +} + +@online{noauthor_laplace_nodate, + title = {Laplace Transform of Bessel Function of the First Kind of Order Zero - {ProofWiki}}, + url = {https://proofwiki.org/wiki/Laplace_Transform_of_Bessel_Function_of_the_First_Kind_of_Order_Zero}, + urldate = {2022-08-15}, } \ No newline at end of file diff --git a/buch/papers/kreismembran/teil1.tex b/buch/papers/kreismembran/teil1.tex index f6ba7d1..a9db48f 100644 --- a/buch/papers/kreismembran/teil1.tex +++ b/buch/papers/kreismembran/teil1.tex @@ -7,7 +7,7 @@ \section{Lösungsmethode 1: Separationsmethode  \label{kreismembran:section:teil1}} \rhead{Lösungsmethode 1: Separationsmethode} -An diesem Punkt bleibt also nur noch die Lösung der partiellen Differentialgleichung. In diesem Abschnitt wird sie mit Hilfe der Separationsmethode gelöst. +An diesem Punkt bleibt also "nur" noch die Lösung der partiellen Differentialgleichung. In diesem Abschnitt wird sie mit Hilfe der Separationsmethode gelöst. \subsection{Aufgabestellung\label{sub:aufgabestellung}} Wie im vorherigen Abschnitt gezeigt, lautet die partielle Differentialgleichung, die die Schwingungen einer Membran beschreibt: @@ -30,7 +30,7 @@ Da es sich um eine Kreisscheibe handelt, werden Polarkoordinaten verwendet, so d ergibt. Es wird eine runde elastische Membran berücksichtigt, die das Gebiet $\Omega$ abdeckt und am Rand $\Gamma$ befestigt ist. -Es wirken keine äusseren Kräfte. Es handelt sich somit von einer kreisförmligen eingespannten homogenen schwingenden Membran nach den Annahmen von \ref{kreimembran:annahmen}. +Es wirken keine äusseren Kräfte. Es handelt sich somit von einer kreisförmligen eingespannten homogenen schwingenden Membran nach den Annahmen von Abschnitt \ref{kreimembran:annahmen}. Daher ist die Membranabweichung im Punkt $(r,\varphi)$ $\in$ $\overline{\rm \Omega}$ zum Zeitpunkt $t$: \begin{align*} @@ -50,9 +50,9 @@ Nun wird das in Abschnitt \ref{sub:aufgabestellung} vorgestellte Problem mit Hil \subsubsection{Ansatz der Separation der Variablen\label{subsub:ansatz_separation}} Hierfür wird folgenden Ansatz gemacht: \begin{equation*} - u(r,\varphi, t) = F(r)G(\varphi)T(t) + u(r,\varphi, t) = F(r)G(\varphi)T(t). \end{equation*} -Dank der Randbedingungen kann gefordert werden, dass $F(R)=0$ ist, und natürlich, dass $G(\varphi)$ $2\pi$ periodisch ist. Eingesetzt in der Differenzialgleichung ergibt sich: +Dank der Randbedingungen kann gefordert werden, dass $F(R)=0$ ist, und natürlich, dass $G(\varphi)$ $2\pi$-periodisch ist. Eingesetzt in der Differenzialgleichung ergibt sich nach Division durch $u$: \begin{equation*} \frac{1}{c^2}\frac{T''(t)}{T(t)}=-\kappa^2=\frac{F''(r)}{F(r)}+\frac{1}{r}\frac{F'(r)}{F(r)}+\frac{1}{r^2}\frac{G''(\varphi)}{G(\varphi)}. \end{equation*} @@ -71,9 +71,9 @@ In der zweiten Gleichung hängt die linke Seite nur von $r$ ab, während die rec \end{align*} \subsubsection{Lösung für $G(\varphi)$\label{subsub:lösung_G}} -Da für die zweite Gleichung Lösungen von Schwingungen erwartet werden, für die $G''(\varphi)=-\omega^2 G(\varphi)$ gilt, schreibt man die gemeinsame Konstante als $\nu=-\omega^2$, was die Formeln später vereinfacht. Also: +Da für die zweite Gleichung Lösungen von Schwingungen erwartet werden, für die $G''(\varphi)=-n^2 G(\varphi)$ gilt, schreibt man die gemeinsame Konstante als $\nu=-n^2$, was die Formeln später vereinfacht. $n$ muss auch eine ganze Zahl sein, weil $G(\varphi)$ sonst nicht $2\pi$-periodisch ist. Also: \begin{equation*} - G(\varphi) = C_n \cos(\nu\varphi) + D_n \sin(\nu\varphi) + G(\varphi) = C_n \cos(n\varphi) + D_n \sin(n\varphi) \label{eq:cos_sin_überlagerung} \end{equation*} @@ -85,17 +85,20 @@ Die Gleichung für $F$ hat die Gestalt (Verweis auf \label{buch:differentialglei \end{align} Wie bereits in Kapitel \ref{buch:differntialgleichungen:section:bessel} gezeigt, sind die Bessel-Funktionen \begin{equation*} - J_{\nu}(x) = r^\nu \displaystyle\sum_{m=0}^{\infty} \frac{(-1)^m x^{2m}}{2^{2m+\nu}m! \Gamma (\nu + m+1)} + J_{n}(x) = r^n \displaystyle\sum_{m=0}^{\infty} \frac{(-1)^m x^{2m}}{2^{2m+n}m! \Gamma (n + m+1)} \end{equation*} Lösungen der Besselschen Differenzialgleichung \begin{equation*} - x^2 y'' + xy' + (\kappa^2 - \nu^2)y = 0 + x^2 y'' + xy' + (\kappa^2 - n^2)y = 0 \end{equation*} Die Funktionen $F(r) = J_n(\kappa r)$ lösen die Differentialgleichung \eqref{eq:2nd_degree_PDE}. \subsubsection{Lösung für $T(t)$\label{subsub:lösung_T}} -Die Differenzialgleichung $T''(t) + c^2\kappa^2T(t) = 0$, wird auf ähnliche Weise gelöst wie $G(\varphi)$. - +Die Differenzialgleichung $T''(t) + c^2\kappa^2T(t) = 0$, wird auf ähnliche Weise gelöst wie $G(\varphi)$. Um eine Einschränkung der möglichen Frequenzen zu erhalten und die Lösung als Reihe schreiben zu können, muss die folgende homogene Randbedingung definiert werden: +\begin{equation*} + u\big|_{\Gamma} = 0 \quad \text{für} \quad 0 \leq \varphi \leq 2\pi,\quad t \geq 0, +\end{equation*} +welche die $\kappa$ auf mögliche werte $\kappa_{mn}$ einschränkt. \subsubsection{Zusammenfassung der Lösungen\label{subsub:zusammenfassung_lösungen}} Durch Überlagerung aller Ergebnisse erhält man die Lösung \begin{align} @@ -120,5 +123,7 @@ für die Anzahl der Knotenlinien steht. Es gibt bestimmte Bereiche auf der Membr \label{buch:pde:kreis:fig:pauke}} \end{figure} - +\begin{center} + * \quad *\quad * +\end{center} An diesem Punkt stellte sich die Frage, ob es möglich wäre, die partielle Differentialgleichung mit einer anderen Methode als der der Trennung der Variablen zu lösen. Nach einer kurzen Recherche wurde festgestellt, dass eine weitere Methode die Transformationsmethode ist, genauer gesagt die Anwendung der Hankel-Transformation. Im nächsten Kapitel wird daher diese Integraltransformation vorgestellt und entwickelt, und es wird erläutert, warum sie für diese Art von Problem geeignet ist. diff --git a/buch/papers/kreismembran/teil2.tex b/buch/papers/kreismembran/teil2.tex index ec27bd3..4ceeb84 100644 --- a/buch/papers/kreismembran/teil2.tex +++ b/buch/papers/kreismembran/teil2.tex @@ -7,12 +7,12 @@ Hermann Hankel (1839--1873) war ein deutscher Mathematiker, der für seinen Beitrag zur mathematischen Analysis und insbesondere für die nach ihm benannte Transformation bekannt ist. Diese Transformation tritt bei der Untersuchung von Funktionen auf, die nur von der Entfernung des Ursprungs abhängen. -Er untersuchte auch Funktionen, jetzt Hankel- oder Bessel- Funktionen genannt, der dritten Art. +Er untersuchte auch Funktionen, jetzt Hankel- oder Bessel-Funktionen genannt, der dritten Art. Die Hankel-Transformation, die die Bessel-Funktion enthält, taucht natürlich bei achsensymmetrischen Problemen auf, die in zylindrischen Polarkoordinaten formuliert sind. In diesem Abschnitt werden die Theorie der Transformation und einige Eigenschaften der Grundoperationen erläutert. \subsubsection{Definition der Hankel-Transformation \label{subsub:hankel_tansformation}} -Wir führen die Definition der Hankel-Transformation \cite{lokenath_debnath_integral_2015} aus der zweidimensionalen Fourier-Transformation und ihrer Umkehrung ein, die durch: +Wir führen die Definition der Hankel-Transformation \cite{lokenath_debnath_integral_2015} aus der zweidimensionalen Fourier-Trans\-formation und ihrer Umkehrung ein, die durch: \begin{align} \mathscr{F}\{f(x,y)\} & = F(k,l)=\frac{1}{2\pi}\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}e^{-i( \bm{\kappa}\cdot \mathbf{r})}f(x,y) \; dx \; dy,\label{equation:fourier_transform}\\ \mathscr{F}^{-1}\{F(x,y)\} & = f(x,y)=\frac{1}{2\pi}\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}e^{i(\bm{\kappa}\cdot \mathbf{r})}F(k,l) \; dx \; dy \label{equation:inv_fourier_transform} @@ -49,13 +49,13 @@ wo $\tilde{f}_n(\kappa)$ ist die \textit{Hankel-Transformation} von $f(r)$ und i \subsubsection{Inverse Hankel-Transformation \label{subsub:inverse_hankel_tansformation}} Wie bei der Entwicklung der Hankel-Transformation können auch für die Umkehrformel Analogien zur Fourier-Transformation hergestellt werden. Vergleicht man die beiden Transformationen, so stellt man fest, dass sie sehr ähnlich sind, wenn man den Term $J_n(\kappa r)$ der Hankel-Transformation durch $e^{-i( \bm{\kappa}\cdot \mathbf{r})}$ der Fourier-Transformation ersetzt. Diese beide Funktionen sind orthogonal, und bei orthogonalen Matrizen genügt bekanntlich die Transponierung, um sie zu invertieren. Da das Skalarprodukt der Bessel-Funktionen jedoch nicht dasselbe ist wie das der Exponentialfunktionen, muss man durch $\kappa\; d\kappa$ statt nur durch $d\kappa$ integrieren, um die Umkehrfunktion zu erhalten. -Von \eqref{equation:hankel} also ist, die inverse \textit{Hankel-Transformation} so definiert: +Die inverse \textit{Hankel-Transformation} ist also als \begin{align} \mathscr{H}^{-1}_n\{\tilde{f}_n(\kappa)\}=f(r)=\int_{0}^{\infty}\kappa J_n(\kappa r) \tilde{f}_n(\kappa) \; d\kappa. \label{equation:inv_hankel} \end{align} +definiert. -Anstelle von $\tilde{f}_n(\kappa)$, wird häufig einfach $\tilde{f}(\kappa)$ für die Hankel-Transformation verwendet, indem die Ordnung angegeben wird. Die Integrale \eqref{equation:hankel} und \eqref{equation:inv_hankel} existieren für bestimmte grosse Klassen von Funktionen, die normalerweise in physikalischen Anwendungen vorkommen. Alternativ dazu kann die berühmte Hankel-Integralformel diff --git a/buch/papers/kreismembran/teil3.tex b/buch/papers/kreismembran/teil3.tex index a9dcd95..d143ec7 100644 --- a/buch/papers/kreismembran/teil3.tex +++ b/buch/papers/kreismembran/teil3.tex @@ -60,19 +60,23 @@ so dass $\tilde{g}(\kappa)\equiv 0$ und \tilde{f}(\kappa)=Aa\int_{0}^{\infty}r(a^2 + r^2)^{-\frac{1}{2}} J_0 (\kappa r) \; dr=\frac{Aa}{\kappa}e^{-a\kappa}. \end{equation*} -Aus der Laplace-Transformation und unter Verwendung der Skalierungseigenschaft ergibt sich, dass +\noindent Die formale Lösung \eqref{eq:formale_lösung} lautet also +\begin{align} + u(r,t)=Aa\int_{0}^{\infty}e^{-a\kappa} J_0(\kappa r)\cos(c\kappa t) \; dk=AaRe\int_{0}^{\infty}e^{-\kappa(a+ict)} J_0(\kappa r) \; dk. + \label{form_lösung2_step1} +\end{align} +\noindent Aus der Laplace-Transformation und unter Verwendung der Skalierungseigenschaft \cite{noauthor_laplace_nodate} ergibt sich, dass \begin{align*} - \int_{0}^{\infty}e^{-px} J_0(\kappa x) \; dx = \frac{1}{\sqrt{\kappa^2 + p^2}}. + \int_{0}^{\infty}e^{-px} J_0(\kappa x) \; dx = \frac{1}{\sqrt{\kappa^2 + p^2}}, \end{align*} -Die formale Lösung \eqref{eq:formale_lösung} lautet also -\begin{align*} - u(r,t)&=Aa\int_{0}^{\infty}e^{-a\kappa} J_0(\kappa r)\cos(c\kappa t) \; dk=AaRe\int_{0}^{\infty}e^{-\kappa(a+ict)} J_0(\kappa r) \; dk\\ - &=AaRe\left\{r^2+\left(a+ict\right)^2\right\}^{-\frac{1}{2}}. -\end{align*} +\noindent \eqref{form_lösung2_step1} kann somit vereinfacht werden in: +\begin{equation*} + u(r,t)=AaRe\left\{r^2+\left(a+ict\right)^2\right\}^{-\frac{1}{2}}. +\end{equation*} -Nimmt man jedoch die allgemeine Lösung durch Überlagerung, +\noindent Nimmt man jedoch die allgemeine Lösung durch Überlagerung, \begin{align} u(r, t) = \displaystyle\sum_{m=1}^{\infty} J_0 (k_{m}r)[a_{m}\cos(c \kappa_{m} t)+b_{m}\sin(c \kappa_{m} t)] @@ -84,6 +88,6 @@ kann man die Lösungsmethoden 1 und 2 vergleichen. \label{kreismembran:vergleich}} Bei der Analyse der Gleichungen \eqref{eq:lösung_endliche_generelle} und \eqref{eq:lösung_unendliche_generelle} fällt sofort auf, dass die Gleichung \eqref{eq:lösung_unendliche_generelle} nicht mehr von $m$ und $n$ abhängt, sondern nur noch von $n$ \cite{nishanth_p_vibrations_2018}. Das macht Sinn, denn $n$ beschreibt die Anzahl der Knotenlinien, welche unter der Annahme einer rotationssymmetrischen Lösung nicht vorhanden sein können. Tatsächlich werden $a_{m0}$, $b_{m0}$ und $\kappa_{m0}$ in $a_m$, $b_m$ bzw. $\kappa_m$ umbenannt. Die beiden Termen $\cos(n\varphi)$ und $\sin(n\varphi)$ verschwinden ebenfalls, da für $n=0$ der $\cos(n\varphi)$ gleich 1 und der $\sin(n \varphi)$ gleich 0 ist. -Die Funktion hängt also nicht mehr von der Besselfunktionen $n$-ter Ordnung ab, sondern nur von der nullter Ordnung. +Die Funktion hängt also nicht mehr von der Bessel-Funktionen $n$-ter Ordnung ab, sondern nur von der nullter Ordnung. -- cgit v1.2.1 From 8c6898303fc394c4f132664ef0b15fe484e9c5d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 15 Aug 2022 13:42:16 +0200 Subject: Added reference for "Spektralsatz". --- buch/papers/sturmliouville/eigenschaften.tex | 6 ++++-- buch/papers/sturmliouville/references.bib | 13 +++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex index 1552f7f..f972cd5 100644 --- a/buch/papers/sturmliouville/eigenschaften.tex +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -49,12 +49,14 @@ endlichdimensionalem $\mathbb{K}$-Vektorraum selbstadungiert ist, also dass \] für $ v, w \in \mathbb{K}^n$ gilt. Ist dies der Fall, folgt direkt, dass $A$ auch normal ist. -Dann wird die Aussage des Spektralsatzes verwended, welche besagt, dass für +Dann wird die Aussage des Spektralsatzes +\cite{sturmliouville:spektralsatz-wiki} verwended, welche besagt, dass für Endomorphismen genau dann eine Orthonormalbasis aus Eigenvektoren existiert, wenn sie normal sind und nur Eigenwerte aus $\mathbb{K}$ besitzten. Dies ist allerdings nicht die Einzige Version des Spektralsatzes. -Unter anderen gibt es den Spektralsatz für kompakte Operatoren. +Unter anderen gibt es den Spektralsatz für kompakte Operatoren +\cite{sturmliouville:spektralsatz-wiki}. Dieser besagt, dass wenn ein linearer kompakter Operator in $\mathbb{R}$ selbstadjungiert ist, ein (eventuell endliches) Orthonormalsystem existiert. diff --git a/buch/papers/sturmliouville/references.bib b/buch/papers/sturmliouville/references.bib index f66a74d..0c4724b 100644 --- a/buch/papers/sturmliouville/references.bib +++ b/buch/papers/sturmliouville/references.bib @@ -4,6 +4,19 @@ % (c) 2020 Autor, Hochschule Rapperswil % +@online{sturmliouville:spektralsatz-wiki, + title = {Spektralsatz}, + url = {https://de.wikipedia.org/wiki/Spektralsatz}, + date = {2020-08-15}, + year = {2020}, + month = {8}, + day = {15} +} + +% +% examples (not referenced in book) +% + @online{sturmliouville:bibtex, title = {BibTeX}, url = {https://de.wikipedia.org/wiki/BibTeX}, -- cgit v1.2.1 From 8b01c81f362cf20246e3d8319edfda15c18ff83f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 15 Aug 2022 13:45:34 +0200 Subject: Improved code formatting. --- buch/papers/sturmliouville/eigenschaften.tex | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex index f972cd5..4c14630 100644 --- a/buch/papers/sturmliouville/eigenschaften.tex +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -13,7 +13,8 @@ zustande kommen. Dazu wird der Operator $L_0$ welcher bereits in Kapitel \ref{buch:integrale:subsection:sturm-liouville-problem} betrachtet wurde, -noch etwas genauer angeschaut. Es wird also im Folgenden +noch etwas genauer angeschaut. +Es wird also im Folgenden \[ L_0 = @@ -26,7 +27,8 @@ zusammen mit den Randbedingungen k_b y(b) + h_b p(b) y'(b) &= 0 \end{aligned} \] -verwendet. Wie im Kapitel +verwendet. +Wie im Kapitel \ref{buch:integrale:subsection:sturm-liouville-problem} bereits gezeigt, resultieren die Randbedingungen aus der Anforderung den Operator $L_0$ selbsadjungiert zu machen. -- cgit v1.2.1 From 7e26e1b395d7c793962caad2b78ffc6c6d588463 Mon Sep 17 00:00:00 2001 From: daHugen Date: Mon, 15 Aug 2022 13:47:06 +0200 Subject: Changed font in figure \ref{lambertw:BildFunkLoes} to match the text and the other figures --- .../papers/lambertw/Bilder/VerfolgungskurveBsp.png | Bin 356399 -> 318960 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/buch/papers/lambertw/Bilder/VerfolgungskurveBsp.png b/buch/papers/lambertw/Bilder/VerfolgungskurveBsp.png index e6e7c1e..dc4720a 100644 Binary files a/buch/papers/lambertw/Bilder/VerfolgungskurveBsp.png and b/buch/papers/lambertw/Bilder/VerfolgungskurveBsp.png differ -- cgit v1.2.1 From 1ac37227a82c02817b25d85638fbc1768fd38753 Mon Sep 17 00:00:00 2001 From: Kuster Yanik Date: Mon, 15 Aug 2022 14:53:23 +0200 Subject: polishing --- buch/papers/lambertw/teil1.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buch/papers/lambertw/teil1.tex b/buch/papers/lambertw/teil1.tex index 8c30375..8025830 100644 --- a/buch/papers/lambertw/teil1.tex +++ b/buch/papers/lambertw/teil1.tex @@ -54,7 +54,7 @@ Wenn der Verfolger im ersten Quadranten startet, dann kann $v(t)$ mit den Gleich \text{,} \end{align} % -die Verfolgungskurve beschrieben werden. +beschrieben werden. Der Verfolger ist durch \begin{equation} v(t) -- cgit v1.2.1 From 987a5b51eaf65c4074c50ba12a3b21c2d2957260 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 15 Aug 2022 15:06:11 +0200 Subject: Corrected small mistake in psolution roperties. --- buch/papers/sturmliouville/eigenschaften.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex index 4c14630..8553238 100644 --- a/buch/papers/sturmliouville/eigenschaften.tex +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -37,7 +37,7 @@ für die Lösungen des Sturm-Liouville-Problems zur Folge hat. \subsubsection{Exkurs zum Spektralsatz} -Um zu verstehen was für Eigenschaften der selbstadjungierte Operator $L_0$ in +Um zu verstehen was für Eigenschaften der selbstadjungierte Operator $ L_0 $ in den Lösungen hervorbringt, wird der Spektralsatz benötigt. Dieser wird in der linearen Algebra oft verwendet um zu zeigen, dass eine Matrix @@ -67,7 +67,7 @@ Orthonormalsystem existiert. Der Spektralsatz besagt also, dass, weil $ L_0 $ selbstadjungiert ist, eine Orthonormalbasis aus Eigenvektoren existiert. -Genauer bedeutet dies, dass alle Eigenvektoren beziehungsweise alle Lösungen +Genauer bedeutet dies, dass alle Eigenvektoren, beziehungsweise alle Lösungen des Sturm-Liouville-Problems orthogonal zueinander sind bezüglich dem Skalarprodukt, in dem $ L_0 $ selbstadjungiert ist. -- cgit v1.2.1 From 53cc7f1baf28448cb6196ba6ddf305e1b1403e7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 15 Aug 2022 15:45:11 +0200 Subject: Changed reference to conform with convetion. --- buch/papers/sturmliouville/eigenschaften.tex | 23 +++-- .../sturmliouville/waermeleitung_beispiel.tex | 107 +++++++++++---------- 2 files changed, 67 insertions(+), 63 deletions(-) diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex index 8553238..fda8be6 100644 --- a/buch/papers/sturmliouville/eigenschaften.tex +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -11,9 +11,9 @@ Im weiteren werden nun die Eigenschaften der Lösungen eines Sturm-Liouville-Problems diskutiert und aufgezeigt, wie diese Eigenschaften zustande kommen. -Dazu wird der Operator $L_0$ welcher bereits in Kapitel -\ref{buch:integrale:subsection:sturm-liouville-problem} betrachtet wurde, -noch etwas genauer angeschaut. +Dazu wird der Operator $L_0$ welcher bereits in +Kapitel~\ref{buch:integrale:subsection:sturm-liouville-problem} betrachtet +wurde, noch etwas genauer angeschaut. Es wird also im Folgenden \[ L_0 @@ -28,16 +28,15 @@ zusammen mit den Randbedingungen \end{aligned} \] verwendet. -Wie im Kapitel -\ref{buch:integrale:subsection:sturm-liouville-problem} bereits gezeigt, -resultieren die Randbedingungen aus der Anforderung den Operator $L_0$ +Wie im Kapitel~\ref{buch:integrale:subsection:sturm-liouville-problem} bereits +gezeigt, resultieren die Randbedingungen aus der Anforderung den Operator $L_0$ selbsadjungiert zu machen. Es wurde allerdings noch nicht darauf eingegangen, welche Eigenschaften dies für die Lösungen des Sturm-Liouville-Problems zur Folge hat. \subsubsection{Exkurs zum Spektralsatz} -Um zu verstehen was für Eigenschaften der selbstadjungierte Operator $ L_0 $ in +Um zu verstehen was für Eigenschaften der selbstadjungierte Operator $L_0$ in den Lösungen hervorbringt, wird der Spektralsatz benötigt. Dieser wird in der linearen Algebra oft verwendet um zu zeigen, dass eine Matrix @@ -65,15 +64,15 @@ Orthonormalsystem existiert. \subsubsection{Anwendung des Spektralsatzes auf $L_0$} -Der Spektralsatz besagt also, dass, weil $ L_0 $ selbstadjungiert ist, eine +Der Spektralsatz besagt also, dass, weil $L_0$ selbstadjungiert ist, eine Orthonormalbasis aus Eigenvektoren existiert. Genauer bedeutet dies, dass alle Eigenvektoren, beziehungsweise alle Lösungen des Sturm-Liouville-Problems orthogonal zueinander sind bezüglich dem -Skalarprodukt, in dem $ L_0 $ selbstadjungiert ist. +Skalarprodukt, in dem $L_0$ selbstadjungiert ist. -Erfüllt also eine Differenzialgleichung die in Abschnitt -\ref{sturmliouville:section:teil0} präsentierten Eigenschaften und erfüllen -die Randbedingungen der Differentialgleichung die Randbedingungen +Erfüllt also eine Differenzialgleichung die in +Abschnitt~\ref{sturmliouville:section:teil0} präsentierten Eigenschaften und +erfüllen die Randbedingungen der Differentialgleichung die Randbedingungen des Sturm-Liouville-Problems, kann bereits geschlossen werden, dass die Lösungsfunktion des Problems eine Linearkombination aus orthogonalen Basisfunktionen ist. \ No newline at end of file diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index b466d15..b22d5f5 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -15,7 +15,7 @@ Wärmeleitkoeffizient $\kappa$ betrachtet. Es ergibt sich für das Wärmeleitungsproblem die partielle Differentialgleichung \begin{equation} - \label{eq:slp-example-fourier-heat-equation} + \label{sturmliouville:eq:example-fourier-heat-equation} \frac{\partial u}{\partial t} = \kappa \frac{\partial^{2}u}{{\partial x}^{2}} \end{equation} @@ -36,7 +36,7 @@ Lösungsfunktion $u(t,x)$ bei $x = 0$ und $x = l$ nur die vorgegebene Temperatur zurückgeben darf. Diese wird einfachheitshalber als $0$ angenomen. Es folgen nun \begin{equation} - \label{eq:slp-example-fourier-boundary-condition-ends-constant} + \label{sturmliouville:eq:example-fourier-boundary-condition-ends-constant} u(t,0) = u(t,l) @@ -62,7 +62,7 @@ dass die partiellen Ableitungen von $u(t,x)$ nach $x$ bei $x = 0$ und $x = l$ verschwinden. Somit folgen \begin{equation} - \label{eq:slp-example-fourier-boundary-condition-ends-isolated} + \label{sturmliouville:eq:example-fourier-boundary-condition-ends-isolated} \frac{\partial}{\partial x} u(t, 0) = \frac{\partial}{\partial x} u(t, l) @@ -85,8 +85,9 @@ Dazu wird = T(t)X(x) \] -in die partielle Differenzialgleichung -\eqref{eq:slp-example-fourier-heat-equation} eingesetzt. +in die partielle +Differenzialgleichung~\eqref{sturmliouville:eq:example-fourier-heat-equation} +eingesetzt. Daraus ergibt sich \[ T^{\prime}(t)X(x) @@ -108,13 +109,13 @@ der neuen Variablen $\mu$ gekoppelt werden: Durch die Einführung von $\mu$ kann das Problem nun in zwei separate Differenzialgleichungen aufgeteilt werden: \begin{equation} - \label{eq:slp-example-fourier-separated-x} + \label{sturmliouville:eq:example-fourier-separated-x} X^{\prime \prime}(x) - \mu X(x) = 0 \end{equation} \begin{equation} - \label{eq:slp-example-fourier-separated-t} + \label{sturmliouville:eq:example-fourier-separated-t} T^{\prime}(t) - \kappa \mu T(t) = 0 @@ -135,7 +136,7 @@ diese direkt für $X(x)$ übernomen werden. Es gilt also $X(0) = X(l) = 0$. Damit die Lösungen von $X$ orthogonal sind, müssen also die Gleichungen \begin{equation} \begin{aligned} - \label{eq:slp-example-fourier-randbedingungen} + \label{sturmliouville:eq:example-fourier-randbedingungen} k_a X(a) + h_a p(a) X'(a) &= 0 \\ k_b X(b) + h_b p(b) X'(b) &= 0 \end{aligned} @@ -143,7 +144,7 @@ Damit die Lösungen von $X$ orthogonal sind, müssen also die Gleichungen erfüllt sein und es muss ausserdem \begin{equation} \begin{aligned} - \label{eq:slp-example-fourier-coefficient-constraints} + \label{sturmliouville:eq:example-fourier-coefficient-constraints} |k_a|^2 + |h_a|^2 &\neq 0\\ |k_b|^2 + |h_b|^2 &\neq 0\\ \end{aligned} @@ -153,13 +154,15 @@ gelten. Um zu verifizieren, ob die Randbedingungen erfüllt sind, wird zunächst $p(x)$ benötigt. -Dazu wird die Gleichung \eqref{eq:slp-example-fourier-separated-x} mit der -Sturm-Liouville-Form \eqref{eq:sturm-liouville-equation} verglichen, was zu +Dazu wird die Gleichung~\eqref{sturmliouville:eq:example-fourier-separated-x} +mit der +Sturm-Liouville-Form~\eqref{eq:sturm-liouville-equation} verglichen, was zu $p(x) = 1$ führt. -Werden nun $p(x)$ und die Randbedingungen -\eqref{eq:slp-example-fourier-boundary-condition-ends-constant} in -\eqref{eq:slp-example-fourier-randbedingungen} eigesetzt, erhält man +Werden nun $p(x)$ und die +Randbedingungen~\eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-constant} +in \eqref{sturmliouville:eq:example-fourier-randbedingungen} eigesetzt, erhält +man \[ \begin{aligned} k_a y(0) + h_a y'(0) &= h_a y'(0) = 0 \\ @@ -167,10 +170,10 @@ Werden nun $p(x)$ und die Randbedingungen \end{aligned} \] Damit die Gleichungen erfüllt sind, müssen $h_a = 0$ und $h_b = 0$ sein. -Zusätzlich müssen aber die Bedingungen -\eqref{eq:slp-example-fourier-coefficient-constraints} erfüllt sein und -da $y(0) = 0$ und $y(l) = 0$ sind, können belibige $k_a \neq 0$ und $k_b \neq 0$ -gewählt werden. +Zusätzlich müssen aber die +Bedingungen~\eqref{sturmliouville:eq:example-fourier-coefficient-constraints} +erfüllt sein und da $y(0) = 0$ und $y(l) = 0$ sind, können belibige $k_a \neq 0$ +und $k_b \neq 0$ gewählt werden. Somit ist gezeigt, dass die Randbedingungen des Stab-Problems für Enden auf konstanter Temperatur auch die Sturm-Liouville-Randbedingungen erfüllen und @@ -199,9 +202,9 @@ Die Lösungen für $X(x)$ sind also von der Form A \cos \left( \alpha x\right) + B \sin \left( \beta x\right). \] -Dieser Ansatz wird nun solange differenziert, bis alle in Gleichung -\eqref{eq:slp-example-fourier-separated-x} enthaltenen Ableitungen vorhanden -sind. +Dieser Ansatz wird nun solange differenziert, bis alle in +Gleichung~\eqref{sturmliouville:eq:example-fourier-separated-x} enthaltenen +Ableitungen vorhanden sind. Man erhält also \[ X^{\prime}(x) @@ -217,7 +220,8 @@ und \beta^{2} B \sin \left( \beta x \right). \] -Eingesetzt in Gleichung \eqref{eq:slp-example-fourier-separated-x} ergibt dies +Eingesetzt in Gleichung~\eqref{sturmliouville:eq:example-fourier-separated-x} +ergibt dies \[ -\alpha^{2}A\cos(\alpha x) - \beta^{2}B\sin(\beta x) - \mu\left(A\cos(\alpha x) + B\sin(\beta x)\right) @@ -247,18 +251,19 @@ ist schnell ersichtlich, dass $ \mu = -\alpha^{2} = -\beta^{2} $ gelten muss fü $ A \neq 0 $ oder $ B \neq 0 $. Zur Berechnung von $ \mu $ bleiben also noch $ \alpha $ und $ \beta $ zu bestimmen. -Dazu werden nochmals die Randbedingungen -\eqref{eq:slp-example-fourier-boundary-condition-ends-constant} und -\eqref{eq:slp-example-fourier-boundary-condition-ends-isolated} benötigt. +Dazu werden nochmals die +Randbedingungen~\eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-constant} +und \eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-isolated} +benötigt. Da die Koeffizienten $A$ und $B$, sowie die Parameter $\alpha$ uns $\beta$ im allgemeninen ungleich $0$ sind, müssen die Randbedingungen durch die trigonometrischen Funktionen erfüllt werden. -Es werden nun die Randbedingungen -\eqref{eq:slp-example-fourier-boundary-condition-ends-constant} für einen Stab -mit Enden auf konstanter Temperatur in die Gleichung -\eqref{eq:slp-example-fourier-separated-x} eingesetzt. +Es werden nun die +Randbedingungen~\eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-constant} +für einen Stab mit Enden auf konstanter Temperatur in die +Gleichung~\eqref{sturmliouville:eq:example-fourier-separated-x} eingesetzt. Betrachten wir zunächst die Bedingung für $x = 0$. Dies fürht zu \[ @@ -303,9 +308,9 @@ Verletzung der Randbedingungen. Durch alanoges Vorgehen kann nun auch das Problem mit isolierten Enden gelöst werden. -Setzt man nun die Randbedingungen -\eqref{eq:slp-example-fourier-boundary-condition-ends-isolated} in $X^{\prime}$ -ein, beginnend für $x = 0$. Es ergibt sich +Setzt man nun die +Randbedingungen~\eqref{sturmliouville:eq:example-fourier-boundary-condition-ends-isolated} +in $X^{\prime}$ ein, beginnend für $x = 0$. Es ergibt sich \[ X^{\prime}(0) = @@ -324,7 +329,7 @@ folgt nun = 0. \] -Wiedrum muss über die $ \sin $-Funktion sicher gestellt werden, dass der +Wiedrum muss über die $\sin$-Funktion sicher gestellt werden, dass der Ausdruck den Randbedingungen entspricht. Es folgt nun \[ @@ -342,7 +347,7 @@ und somit Es ergibt sich also sowohl für einen Stab mit Enden auf konstanter Temperatur wie auch mit isolierten Enden \begin{equation} - \label{eq:slp-example-fourier-mu-solution} + \label{sturmliouville:eq:example-fourier-mu-solution} \mu = -\frac{n^{2}\pi^{2}}{l^{2}}. @@ -368,12 +373,12 @@ Die Lösung $X(x)$ wird nun umgeschrieben zu \sum_{n = 1}^{\infty} b_n\sin\left(\frac{n\pi}{l}x\right). \] -Um eine eindeutige Lösung für $ X(x) $ zu erhalten werden noch weitere +Um eine eindeutige Lösung für $X(x)$ zu erhalten werden noch weitere Bedingungen benötigt. Diese sind die Startbedingungen oder $u(0, x) = X(x)$ für $t = 0$. Es gilt also nun die Gleichung \begin{equation} - \label{eq:slp-example-fourier-initial-conditions} + \label{sturmliouville:eq:example-fourier-initial-conditions} u(0, x) = a_0 @@ -388,7 +393,7 @@ gehört, von der wir wissen, dass sie orthogonal zu allen anderen trigonometrischen Funktionen der Lösung ist, kann direkt das Skalarprodukt verwendet werden um die Koeffizienten $a_n$ und $b_n$ zu bestimmen. Es wird also die Tatsache ausgenutzt, dass die Gleichheit in -\eqref{eq:slp-example-fourier-initial-conditions} nach Anwendung des +\eqref{sturmliouville:eq:example-fourier-initial-conditions} nach Anwendung des Skalarproduktes immernoch gelten muss und dass das Skalaprodukt mit einer Basisfunktion sämtliche Summanden auf der rechten Seite auslöscht. @@ -396,7 +401,7 @@ Zur Berechnung von $a_m$ mit $ m \in \mathbb{N} $ wird beidseitig das Skalarprodukt mit der Basisfunktion $ \cos\left(\frac{m \pi}{l}x\right)$ gebildet: \begin{equation} - \label{eq:slp-dot-product-cosine} + \label{sturmliouville:eq:dot-product-cosine} \langle u(0, x), \cos\left(\frac{m \pi}{l}x\right) \rangle = \langle a_0 @@ -409,13 +414,13 @@ gebildet: Bevor diese Form in die Integralform umgeschrieben werden kann, muss überlegt sein, welche Integralgrenzen zu verwenden sind. -In diesem Fall haben die $ \sin $ und $ \cos $ Terme beispielsweise keine ganze -Periode im Intervall $ x \in [0, l] $ für ungerade $ n $ und $ m $. +In diesem Fall haben die $\sin$ und $\cos$ Terme beispielsweise keine ganze +Periode im Intervall $x \in [0, l]$ für ungerade $n$ und $m$. Um die Skalarprodukte aber korrekt zu berechnen, muss über ein ganzzahliges Vielfaches der Periode der triginimetrischen Funktionen integriert werden. Dazu werden die Integralgrenzen $-l$ und $l$ verwendet und es werden ausserdem -neue Funktionen $ \hat{u}_c(0, x) $ für die Berechnung mit Cosinus und -$ \hat{u}_s(0, x) $ für die Berechnung mit Sinus angenomen, welche $ u(0, t) $ +neue Funktionen $\hat{u}_c(0, x)$ für die Berechnung mit Cosinus und +$\hat{u}_s(0, x)$ für die Berechnung mit Sinus angenomen, welche $u(0, t)$ gerade, respektive ungerade auf $[-l, l]$ fortsetzen: \[ \begin{aligned} @@ -451,7 +456,8 @@ skalliert wurde, also gilt nun \end{aligned} \] -Zunächst wird nun das Skalaprodukt \eqref{eq:slp-dot-product-cosine} berechnet: +Zunächst wird nun das Skalaprodukt~\eqref{sturmliouville:eq:dot-product-cosine} +berechnet: \[ \begin{aligned} \int_{-l}^{l}\hat{u}_c(0, x)\cos\left(\frac{m \pi}{l}x\right)dx @@ -545,11 +551,11 @@ gilt. Etwas anders ist es allerdings bei $a_0$. Wie der Name bereits suggeriert, handelt es sich hierbei um den Koeffizienten -zur Basisfunktion $ \cos\left(\frac{0 \pi}{l}x\right) $ beziehungsweise der +zur Basisfunktion $\cos\left(\frac{0 \pi}{l}x\right)$ beziehungsweise der konstanten Funktion $1$. -Um einen Ausdruck für $ a_0 $ zu erhalten, wird wiederum auf beiden Seiten -der Gleichung \eqref{eq:slp-example-fourier-initial-conditions} das -Skalarprodukt mit der konstanten Basisfunktion $ 1 $ gebildet: +Um einen Ausdruck für $a_0$ zu erhalten, wird wiederum auf beiden Seiten +der Gleichung~\eqref{sturmliouville:eq:example-fourier-initial-conditions} das +Skalarprodukt mit der konstanten Basisfunktion $1$ gebildet: \[ \begin{aligned} \int_{-l}^{l}\hat{u}_c(0, x)dx @@ -606,8 +612,8 @@ Es bleibt also noch % \subsubsection{Lösund der Differentialgleichung in t} -Zuletzt wird die zweite Gleichung der Separation -\eqref{eq:slp-example-fourier-separated-t} betrachtet. +Zuletzt wird die zweite Gleichung der +Separation~\eqref{sturmliouville:eq:example-fourier-separated-t} betrachtet. Diese wird über das charakteristische Polynom \[ \lambda - \kappa \mu @@ -623,8 +629,7 @@ Lösung = e^{-\kappa \mu t} \] -führt. -Und mit dem Resultat \eqref{eq:slp-example-fourier-mu-solution} +führt und mit dem Resultat~\eqref{sturmliouville:eq:example-fourier-mu-solution} \[ T(t) = -- cgit v1.2.1 From 2f1c9ad7d59e33f2c1e95a321947f608b5b06587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 15 Aug 2022 15:58:10 +0200 Subject: Added renamed files to Makefile.inc and removed old ones. --- buch/papers/sturmliouville/Makefile.inc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/buch/papers/sturmliouville/Makefile.inc b/buch/papers/sturmliouville/Makefile.inc index e2039ce..7ffdad2 100644 --- a/buch/papers/sturmliouville/Makefile.inc +++ b/buch/papers/sturmliouville/Makefile.inc @@ -3,12 +3,12 @@ # # (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule # -dependencies-sturmliouville = \ +dependencies-sturmliouville = \ papers/sturmliouville/packages.tex \ - papers/sturmliouville/main.tex \ + papers/sturmliouville/main.tex \ papers/sturmliouville/references.bib \ - papers/sturmliouville/teil0.tex \ - papers/sturmliouville/teil1.tex \ - papers/sturmliouville/teil2.tex \ - papers/sturmliouville/teil3.tex - + papers/sturmliouville/einleitung.tex \ + papers/sturmliouville/eigenschaften.tex \ + papers/sturmliouville/beispiele.tex \ + papers/sturmliouville/waermeleitung_beispiel.tex \ + papers/sturmliouville/tschebyscheff_beispiel.tex -- cgit v1.2.1 From 4975028b529788a885c44a62808dc938e2b9d50d Mon Sep 17 00:00:00 2001 From: daHugen Date: Mon, 15 Aug 2022 16:05:00 +0200 Subject: Last update with syntax corrections --- buch/papers/lambertw/teil4.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buch/papers/lambertw/teil4.tex b/buch/papers/lambertw/teil4.tex index 5a7c5ca..36fb7e6 100644 --- a/buch/papers/lambertw/teil4.tex +++ b/buch/papers/lambertw/teil4.tex @@ -147,7 +147,7 @@ Wir wissen, dass sich der Verfolger mit Geschwindigkeit 1 bewegt, also legt er i \end{equation} verbunden werden. -Nicht gerade auffällig ist die Richtung, in welche hier integriert wird. Wenn der Verfolger sich wie vorgesehen am Anfang im ersten Quadranten befindet, dann muss sich dieser nach links bewegen, was nicht der üblichen Integrationsrichtung entspricht. Um eine Integration wie üblich von links nach rechts ausführen zu können, müssen die Integrationsgenerzen vertauscht werden, was in einem Vorzeichenwechsel resultiert. +Nicht gerade auffällig ist die Richtung, in welche hier integriert wird. Wenn der Verfolger sich wie vorgesehen am Anfang im ersten Quadranten befindet, dann muss sich dieser nach links bewegen, was nicht der üblichen Integrationsrichtung entspricht. Um eine Integration wie üblich von links nach rechts ausführen zu können, müssen die Integrationsgrenzen vertauscht werden, was in einem Vorzeichenwechsel resultiert. Wenn man nun \eqref{lambertw:eqZuBogenlaenge} in die DGL \eqref{lambertw:DGLmitT} einfügt, dann ergibt sich der neue Ausdruck \begin{equation} @@ -324,7 +324,7 @@ Nun sind wir soweit, dass wir eine \(y(x)\)-Beziehung für beliebige Anfangswert \subsection{Funktion nach der Zeit \label{lambertw:subsection:FunkNachT}} -In diesem Abschnitt werden algebraischen Umformungen ein wenig detaillierter als zuvor beschrieben. Dies hat auch einen bestimmten Grund: Den Einsatz einer speziellen Funktion aufzeigen, sowie auch wann und wieso diese vorkommt. Welche spezielle Funktion? Fragt man sich wahrscheinlich in diesem Moment. Nun, um diese Frage kurz zu beantworten, es ist ``YouTube's favorite special function'' laut dem Mathematiker Michael Penn, die Lambert-\(W\)-Funktion \(W(x)\) welche im Kapitel \ref{buch:section:lambertw} bereits beschrieben wurde. +In diesem Abschnitt werden algebraische Umformungen ein wenig detaillierter als zuvor beschrieben. Dies hat auch einen bestimmten Grund: Den Einsatz einer speziellen Funktion aufzeigen, sowie auch wann und wieso diese vorkommt. Welche spezielle Funktion? Fragt man sich wahrscheinlich in diesem Moment. Nun, um diese Frage kurz zu beantworten, es ist ``YouTube's favorite special function'' laut dem Mathematiker Michael Penn, die Lambert-\(W\)-Funktion \(W(x)\) welche im Kapitel \ref{buch:section:lambertw} bereits beschrieben wurde. \subsubsection{Zeitabhängigkeit wiederherstellen \label{lambertw:subsubsection:ZeitabhWiederherst}} -- cgit v1.2.1 From 7ab3ba297ddca9b1c920a4161fda2548211b4ac1 Mon Sep 17 00:00:00 2001 From: tim30b Date: Mon, 15 Aug 2022 16:08:35 +0200 Subject: korrektur 15.8 Tim --- buch/papers/kreismembran/teil0.tex | 14 +++++++------- buch/papers/kreismembran/teil1.tex | 2 +- buch/papers/kreismembran/teil4.tex | 30 +++++++++++++++--------------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/buch/papers/kreismembran/teil0.tex b/buch/papers/kreismembran/teil0.tex index c6dac06..27c6f0f 100644 --- a/buch/papers/kreismembran/teil0.tex +++ b/buch/papers/kreismembran/teil0.tex @@ -7,9 +7,9 @@ \rhead{Membran} Eine Membran oder selten ein Schwingblatt ist laut Duden \cite{kreismembran:Duden:Membran} ein ``dünnes Blättchen aus Metall, Papier o. Ä., das durch seine Schwingungsfähigkeit geeignet ist, Schallwellen zu übertragen \dots''. Ein dünnes Blättchen aus Metall zeig jedoch nicht die selben dynamischen Eigenschaften wie ein gespanntes Stück Papier. -Beschreibt man das dynamische Verhalten, muss zwischen einer dünnen Platte und einer Membrane unterschieden werden \cite{kreismembran:membrane_vs_thin_plate}. -Eine dünne Platte zum Beispiel aus Metall, wirkt selbst entgegen ihrer Deformation sobald sie gekrümmt wird. -Eine Membran auf der anderen Seite besteht aus einem Material, welches sich ohne Kraftaufwand verbiegen lässt wie zum Beispiel Papier. +Beschreibt man das dynamische Verhalten, muss zwischen einer dünnen Platte und einer Membran unterschieden werden \cite{kreismembran:membrane_vs_thin_plate}. +Eine dünne Platte zum Beispiel aus Metall, wirkt selbst entgegen ihrer Deformation, sobald sie gekrümmt wird. +Eine Membran auf der anderen Seite besteht aus einem Material, welches sich ohne Kraftaufwand verbiegen lässt, wie zum Beispiel Papier. Bevor Papier als schwingende Membran betrachtet werden kann, wird jedoch noch eine Spannung $ T $ benötigt, welche das Material daran hindert, aus der Ruhelage gebracht zu werden. Ein geläufiges Beispiel einer Kreismembran ist eine runde Trommel. @@ -28,11 +28,11 @@ Das untersuchte Modell erfüllt folgende Eigenschaften: Durch die konstante Elastizität ist die ganze Membran unter gleichmässiger Spannung $ T $. \item Die Membran ist perfekt flexibel. Damit ist gemeint, dass die Membran ohne Kraftaufwand verbogen werden kann. - Die Membran ist dadurch nicht allein stehend schwingfähig, hierzu muss sie gespannt werden mit einer Kraft $ T $. + Die Membran ist dadurch nicht allein stehend schwingfähig, hierzu muss sie mit einer Kraft $ T $ gespannt werden. \item Die Membran kann sich nur in Richtung ihrer Normalen in kleinem Ausmass auslenken. Auslenkungen in der Ebene der Membran sind nicht möglich. \item Die Membran erfährt keine Art von Dämpfung. - Die Membran wird also nicht durch ihr umliegendes Medium abgebremst noch erfährt sie Wärmeverluste durch Deformation. + Die Membran wird also nicht durch ihr umliegendes Medium abgebremst noch erfährt sie Reibungsverluste durch Deformation. \end{enumerate} @@ -64,7 +64,7 @@ befolgen. Die senkrecht wirkenden Kräfte werden mit $ T_1 $ und $ T_2 $ ausgedr \begin{equation*} T_2 \sin \beta - T_1 \sin \alpha = \rho dx \frac{\partial^2 u}{\partial t^2} . \end{equation*} -Die Gleichung wird durch $ T $ dividiert, wobei $ T $ nach \ref{kreismembran:eq:no_translation} geschickt gewählt wird. Somit kann +Die Gleichung wird durch $ T $ dividiert, wobei $ T $ nach \eqref{kreismembran:eq:no_translation} geschickt gewählt wird. Somit kann \begin{equation*} \frac{T_2 \sin \beta}{T_2 \cos \beta} - \frac{T_1 \sin \alpha}{T_1 \cos \alpha} = \frac{\rho dx}{T} \frac{\partial^2 u}{\partial t^2} \end{equation*} @@ -91,4 +91,4 @@ Damit resultiert die in der Literatur gebräuchliche Form \frac{1}{c^2}\frac{\partial^2u}{\partial t^2} = \Delta u. \end{equation} In dieser Form ist die Gleichung auch gültig für eine Membran. -Für den Fall einer Membran muss lediglich der Laplace-Operator $\Delta$ in zwei Dimensionen gerechnet werden. \ No newline at end of file +Für den Fall einer Membran muss lediglich der Laplace-Operator $\Delta$ in zwei Dimensionen verwendet werden. \ No newline at end of file diff --git a/buch/papers/kreismembran/teil1.tex b/buch/papers/kreismembran/teil1.tex index a9db48f..a9b2fad 100644 --- a/buch/papers/kreismembran/teil1.tex +++ b/buch/papers/kreismembran/teil1.tex @@ -7,7 +7,7 @@ \section{Lösungsmethode 1: Separationsmethode  \label{kreismembran:section:teil1}} \rhead{Lösungsmethode 1: Separationsmethode} -An diesem Punkt bleibt also "nur" noch die Lösung der partiellen Differentialgleichung. In diesem Abschnitt wird sie mit Hilfe der Separationsmethode gelöst. +An diesem Punkt bleibt also ``nur'' noch die Lösung der partiellen Differentialgleichung. In diesem Abschnitt wird sie mit Hilfe der Separationsmethode gelöst. \subsection{Aufgabestellung\label{sub:aufgabestellung}} Wie im vorherigen Abschnitt gezeigt, lautet die partielle Differentialgleichung, die die Schwingungen einer Membran beschreibt: diff --git a/buch/papers/kreismembran/teil4.tex b/buch/papers/kreismembran/teil4.tex index 01a6029..3b174e0 100644 --- a/buch/papers/kreismembran/teil4.tex +++ b/buch/papers/kreismembran/teil4.tex @@ -8,13 +8,13 @@ Um numerisch das Verhalten einer Membran zu ermitteln, muss eine numerische Darstellung definiert werden. Die Membran wird hier in Form der Matrix $ U $ digitalisiert. -Jedes Element $ U_{ij} $ steh für die Auslenkung der Membran $ u(x,y,t) $ an der Stelle $ \{x,y\}=\{i,j\} $. -Zwischen benachbarten Elementen in der Matrix $ U $ liegt immer der Abstand $ dh $, eine Inkrementierung von $ i $ oder $ j $ entspricht somit einem Schritt in Richtung $ x $ oder $ y $ von Länge $ dh $ auf der Membran. -Die zeitliche Dimension wird in Form des Array $ U[] $ aus $ z \times U $ Matrizen dargestellt, wobei $ z $ der Anzahl Zeitschritten entspricht. -Das Element auf Zeile $ i $, Spalte $ j $ der $ w $-ten Matrix von $ U[] $ also $ U[w]_{ij} $ entspricht somit der Auslenkung $ u(i,j,w) $. +Jedes Element $ U_{ij} $ steht für die Auslenkung der Membran $ u(x,y,t) $ an der Stelle $ \{x,y\}=\{i,j\} $. +Zwischen benachbarten Elementen in der Matrix $ U $ liegt immer der Abstand $ dh $, eine Inkrementierung von $ i $ oder $ j $ ist somit einem Schritt in Richtung $ x $ oder $ y $ von Länge $ dh $ auf der Membran. +Die zeitliche Dimension wird in Form des Array $ U[] $ aus $ z \times U $ Matrizen dargestellt, wobei $ z $ die Anzahl von Zeitschritten ist. +Das Element auf Zeile $ i $, Spalte $ j $ der $ w $-ten Matrix von $ U[] $ also $ U[w]_{ij} $ ist somit die Auslenkung $ u(i,j,w) $. Da die DGL von zweiter Ordnung ist, reicht eine Zustandsvariabel pro Membran-Element nicht aus. Es wird neben der Auslenkung auch die Geschwindigkeit jedes Membran-Elementes benötigt um den Zustand eindeutig zu beschreiben. -Dazu existiert neben $ U[] $ ein analoger Array $ V[] $ welcher die Geschwindigkeiten aller Membran-Elementen repräsentiert. +Dazu existiert neben $ U[] $ ein analoger Array $ V[] $ welcher die Geschwindigkeiten aller Membran-Elemente repräsentiert. $ V[w]_{ij} $ entspricht also $ \dot{u}(i,j,w) $. Der Zustand einer Membran zum Zeitpunkt $ w $ wird mit $ X[w] $ beschrieben, was $ U[w] $ und $ V[w] $ beinhaltet. @@ -25,7 +25,7 @@ Die Folgeposition $ U[w+1] $ ergibt sich als \begin{equation} U[w+1] = U[w] + dt \cdot V[w], \end{equation} -also die Ausgangslage $ + $ die Strecke welche während des Zeitintervall mit der Geschwindigkeit des Elementes zurückgelegt wurde. +also die Ausgangslage plus die Strecke welche während des Zeitintervall mit der Geschwindigkeit des Elementes zurückgelegt wurde. Neben der Position muss auch die Geschwindigkeit aktualisiert werden. Analog zur Folgeposition wird \begin{equation*} @@ -40,7 +40,7 @@ Die Geschwindigkeit des Folgezustandes kann somit mit V[w+1] = V[w] + dt \cdot \Delta_h U \cdot c^2 \end{equation} berechnet werden. -Während $ c^2 $ lediglich eine Material spezifische Konstante ist, muss noch erläutert werden, wie der diskrete Laplace-Operator für $ \Delta_h u $ definiert ist. +Während $ c^2 $ lediglich eine Material spezifische Konstante ist, muss noch erläutert werden, wie der diskrete Laplace-Operator für $ \Delta_h u $ definiert ist. Dieses Verfahren wird Euler-Methode genannt. \subsection{Diskreter Laplace-Operator $\Delta_h$} Die diskrete Ableitung zweiter Ordnung kann mit Hilfe der Taylor-Reihen-Entwicklung als @@ -93,9 +93,9 @@ Der Folgezustand kann also mit den Gleichungen \label{kreismembran:eq:folge_V} V[w+1] &= (V[w] + dt \cdot \Delta_h u \cdot c^2)\odot M \end{align} -berechnet werden. +berechnet werden. Das Symbol \cdot steht hier für eine elementweise Matrixmultiplikation (Hadamard-Produkt) \subsubsection{Simulation} -Mit den gegebenen Gleichungen \ref{kreismembran:eq:folge_U} und \ref{kreismembran:eq:folge_V} das Verhalten der Membran mit einem Loop über das zu untersuchende Zeitintervall berechnet werden. +Mit den gegebenen Gleichungen \eqref{kreismembran:eq:folge_U} und \eqref{kreismembran:eq:folge_V} das Verhalten der Membran mit einem Loop über das zu untersuchende Zeitintervall berechnet werden. In der Abbildung \ref{kreismembran:im:simres_rund} sind Simulationsresultate zu sehen. Die erste Figur zeigt die Ausgangslage gefolgt von den Auslenkungen nach jeweils $ 50 $ weiteren Iterationsschritten. Es ist zu erkennen, wie sich die Störung vom Zentrum an den Rand ausbreitet. @@ -120,7 +120,7 @@ Erreicht die Störung den Rand, wird sie reflektiert und nähert sich dem Zentru Um eine unendlich grosse Membran zu simulieren, könnte der unpraktische Weg gewählt werden, die Matrix unendlich gross zu definieren, dies wird jedoch spätestens bei der numerischen Berechnung seine Probleme mit sich bringen. Etwas geeigneter ist es, die Matrix so gross wie möglich zu definieren, wie es die Kapazitäten erlauben. Wenn anschliessend nur das Verhalten im Zentrum, bei der Störung beobachtet wird, verhaltet sich die Membran wie eine unendliche. -Dies aber nur bis die Störung am Rand reflektiert wird und wieder das innere zu beobachtende Zentrum beeinflusst. +Dies aber nur bis die Störung am Rand reflektiert wird und wieder das Zentrum beeinflusst. Soll erst gar keine Reflexion entstehen, muss ein Absorber modelliert werden welcher die Störung möglichst ohne Reflexion aufnimmt. \subsubsection{Absorber} @@ -132,15 +132,15 @@ Der Spielraum welcher dem Absorber übrig bleibt ist die Art der Überganges. Bei der endlichen kreisförmigen Membran hat die Maske $M$ einen binären Übergang von Membran zu Rand bezweckt. Anstelle dieses abrupten Wechsels wird nun eine Maske definiert, welche graduell von Membran $1$ zu Rand-Element $0$ wechselt. Die Elemente werden auf Basis ihres Abstand $r$ zum Zentrum definiert. -Der Abstand entspricht +Der Abstand ist \begin{equation*} r(i,j) = \sqrt{|i-\frac{m}{2}|^2+|j-\frac{n}{2}|^2}, \end{equation*} -wobei $ m $ und $n$ den Dimensionen der Matrix entsprechen. -Für einen Stufenlosen Übergang werden die Elemente der Maske auf +wobei $ m $ und $n$ die Dimensionen der Matrix sind. +Für einen stufenlosen Übergang werden die Elemente der Maske auf \begin{align} - M_{ij} = \begin{cases} 1-e^{(r(i,j)-b)a} & \text{wenn $x > b$} \\ + M_{ij} = \begin{cases} 1-e^{(r(i,j)-b)a} & \text{$x > b$} \\ 0 & \text{sonst} \end{cases} \end{align} gesetzt. @@ -184,7 +184,7 @@ Die DGL \ref{kreismembran:Ausgang_DGL} welche simuliert wird geht jedoch von der \section{Schlusswort} Auch wenn ein physikalisches Verhalten bereits durch Annahmen und Annäherungen deutlich vereinfacht wird, bestehen auch dann noch eine Vielzahl von Lösungsansätzen. Lösungen einer unendlich grosse Membran scheinen fern der Realität zu sein, doch dies darf es im Sinne der Mathematik. -Und wer weis, für eine Ameise auf einem Trampolin ist eine unendliche Membran vielleicht eine ganz gute Annäherung. +Und wer weiss, für eine Ameise auf einem Trampolin ist eine unendliche Membran vielleicht eine ganz gute Annäherung. -- cgit v1.2.1 From 2f2665e1ee770f7813fe5406ba27a480cff2f541 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Mon, 15 Aug 2022 16:21:39 +0200 Subject: Corrected some error to make tschebyscheff example compile. --- buch/papers/sturmliouville/tschebyscheff_beispiel.tex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex index 391841a..8561479 100644 --- a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex +++ b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex @@ -13,7 +13,7 @@ Im Kapitel \ref{sub:beispiele_sturm_liouville_problem} sind die Koeffizientenfun \end{align*}. Da die Sturm-Liouville-Gleichung \begin{equation} - \label{eq:sturm-liouville-equation} + \label{eq:sturm-liouville-equation-tscheby} \frac{d}{dx}\lbrack \sqrt{1-x^2} \frac{dy}{dx} \rbrack + \lbrack 0 + \lambda \frac{1}{\sqrt{1-x^2}} \rbrack y = 0 \end{equation} nun mit den Koeffizientenfunktionen aufgestellt werden kann, bleibt die Frage, ob es sich um ein reguläres oder singuläres Sturm-Liouville-Problem handelt. @@ -27,7 +27,7 @@ Für $x>1$ und $x<-1$ sehen die Polynome wie folgt aus: T_n(x) = \left\{\begin{array}{ll} \cosh (n \arccos x), & x > 1\\ (-1)^n \cosh (n \arccos (-x)), & x<-1 \end{array}\right. \end{equation}, -jedoch ist die Orthogonalität nur auf dem Intervall $\[ -1, 1\]$ sichergestellt. +jedoch ist die Orthogonalität nur auf dem Intervall $[ -1, 1]$ sichergestellt. Die nächste Bedingung beinhaltet, dass die Funktion $p(x)^-1$ und $w(x)>0$ sein müssen. Die Funktion \begin{equation*} @@ -36,7 +36,7 @@ Die Funktion ist die gleiche wie $w(x)$. Für die Verifizierung der Randbedingungen benötigt man erneut $p(x)$. -Da sich die Polynome nur auf dem Intervall $\[ -1,1 \]$ orthogonal verhalten, sind $a = -1$ und $b = 1$ gesetzt. +Da sich die Polynome nur auf dem Intervall $[ -1,1 ]$ orthogonal verhalten, sind $a = -1$ und $b = 1$ gesetzt. Beim einsetzen in die Randbedingung \ref{eq:randbedingungen}, erhält man \begin{equation} \begin{aligned} -- cgit v1.2.1 From 74d360e00d3c2dc97d257b0b3dfa8d4c4c5d9417 Mon Sep 17 00:00:00 2001 From: Kuster Yanik Date: Mon, 15 Aug 2022 16:59:11 +0200 Subject: last corrections --- buch/papers/lambertw/teil1.tex | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/buch/papers/lambertw/teil1.tex b/buch/papers/lambertw/teil1.tex index 8025830..c4b2d05 100644 --- a/buch/papers/lambertw/teil1.tex +++ b/buch/papers/lambertw/teil1.tex @@ -34,33 +34,32 @@ Die Parametrisierung von $v(t)$ ist von den Startbedingungen abhängig. Deshalb % \subsection{Anfangsbedingung im ersten Quadranten} % -Wenn der Verfolger im ersten Quadranten startet, dann kann $v(t)$ mit den Gleichungen aus \eqref{lambertw:eqFunkXNachT}, welche sind +Wenn der Verfolger im ersten 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)} \\ + x_0\cdot\sqrt{\frac{1}{\chi}W\left(\chi\cdot \exp\left( \chi-\frac{4t}{r_0-y_0}\right) \right)} \text{,}\\ y(t) &= - \frac{1}{4}\biggl(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(y_0-r_0\right)\operatorname{ln}\biggl(\left(\frac{x(t)}{x_0}\right)^2\biggr)-r_0+3y_0\biggr)\\ + \frac{1}{4}\biggl(\left(y_0+r_0\right)\left(\frac{x(t)}{x_0}\right)^2+\left(y_0-r_0\right)\operatorname{ln}\biggl(\left(\frac{x(t)}{x_0}\right)^2\biggr)-r_0+3y_0\biggr) \text{,}\\ \chi &= - \frac{r_0+y_0}{r_0-y_0}, \quad + \frac{r_0+y_0}{r_0-y_0}\text{,} \quad \eta = - \left(\frac{x}{x_0}\right)^2,\quad + \left(\frac{x}{x_0}\right)^2 \quad\text{und}\quad r_0 = \sqrt{x_0^2+y_0^2} - \text{,} \end{align} % +sind, beschrieben werden. Der Verfolger ist durch \begin{equation} v(t) = \left( \begin{array}{c} x(t) \\ y(t) \end{array} \right) - \text{.} \end{equation} % parametrisiert, wobei $y(t)$ viel komplexer ist als $x(t)$. @@ -238,14 +237,15 @@ Die Ortsvektoren der Punkte können wiederum mit \begin{align} v &= - t\cdot\left(\begin{array}{c} \cos (\alpha) \\ \sin (\alpha) \end{array}\right) +\left(\begin{array}{c} x_0 \\ y_0 \end{array}\right) + t\cdot\left(\begin{array}{c} \cos (\alpha) \\ \sin (\alpha) \end{array}\right) +\left(\begin{array}{c} x_0 \\ 0 \end{array}\right) \\ z &= \left(\begin{array}{c} 0 \\ t \end{array}\right) \end{align} beschrieben werden. -Da der Abstand +$x_0$ ist der Abstand bei $t=0$, damit alle möglichen Fälle untersucht werden können. +Da der Abstand allgemein \begin{equation} a = @@ -266,7 +266,7 @@ Der Abstand im Quadrat abgeleitet nach der Zeit ist \begin{equation} \frac{d a^2}{d t} = - 2(t\cdot\cos (\alpha)+x_0)\cdot\cos(\alpha)(\alpha)+2t(\sin(\alpha)-1)^2 + 2(t\cdot\cos (\alpha)+x_0)\cdot\cos(\alpha)+2t(\sin(\alpha)-1)^2 \text{.} \end{equation} Da nur die unmittelbar benachbarten Punkten von Interesse sind, wird die Ableitung für $t=0$ untersucht. Dabei kann die Ableitung in -- cgit v1.2.1 From 9830947147dbe750081f4d8801c4172424283001 Mon Sep 17 00:00:00 2001 From: Fabian <@> Date: Mon, 15 Aug 2022 17:25:40 +0200 Subject: 2. Ueberarbeitung, Inhalt --- buch/papers/0f1/teil3.tex | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/buch/papers/0f1/teil3.tex b/buch/papers/0f1/teil3.tex index 2942a0b..b283b07 100644 --- a/buch/papers/0f1/teil3.tex +++ b/buch/papers/0f1/teil3.tex @@ -7,7 +7,7 @@ \label{0f1:section:teil3}} \rhead{Resultate} Im Verlauf dieser Arbeit hat sich gezeigt, -das ein einfacher mathematischer Algorithmus zu implementieren gar nicht so einfach ist. +das einen einfachen mathematischen Algorithmus zu implementieren gar nicht so einfach ist. So haben alle drei umgesetzten Ansätze Probleme mit grossen negativen $z$ in der Funktion $\mathstrut_0F_1(;c;z)$. Ebenso kann festgestellt werden, dass je grösser der Wert $z$ in $\mathstrut_0F_1(;c;z)$ wird, desto mehr weichen die berechneten Resultate von den Erwarteten \cite{0f1:wolfram-0f1} ab. @@ -19,19 +19,17 @@ Erst wenn mehrerer Iterationen gemacht werden, um die Genauigkeit zu verbessern, Interessant ist auch, dass die Rekursionsformel nahezu gleich schnell wie die Potenzreihe konvergiert, aber sich danach, wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} zu beobachten ist, 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. Dieses Phänomen ist auf die Lösung der Rekursionsformel \eqref{0f1:math:matrix:ende:eq} zurück zu führen. 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 in Abbildung \ref{0f1:ausblick:plot:konvergenz:negativ}, führt dies zu einer gegenseitigen Kompensation von negativen und positiven Termen. Dies führt dazu, dass die Rekursionsformel zusammen mit der Potenzreihe abbricht. -Die ansteigende Differenz mit anschliessendendem Einschwingen, ist aufgrund der sich alternierenden Termen mit wechselnden Vorzeichens zu erklären. +Ist $z$ negativ wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:negativ}, führt dies zu aufgrund des Vorzeichens zu alternierenden Termen. So steigt bei allen Algorithmen zuerst die Differenz zum erwarteten Endwert. Erst nach genügend Iterationen sind die Terme genügend klein, so dass sie das Endresultat nicht mehr signifikant beeinflussen. +Auch hier konvergiert der Kettenbruch am schnellsten von allen Algorithmen. Ebenso bricht die Rekursionsformel nahezu gleichzeitig mit der Potenzreihe ab. \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 (Listing \ref{0f1:listing:kettenbruchIterativ}) \verb+inf+ zurück. Dies könnte durch ein Abbruchkriterien abgefangen werden. Allerdings würde das, bei grossen Werten zulasten der Genauigkeit gehen. Trotzdem könnte, je nach Anwendung, auf ein paar Nachkommastellen verzichtet werden. Wohingegen die Potenzreihe (Listing \ref{0f1:listing:potenzreihe}) das Problem hat, dass je mehr Terme berechnet werden, desto schneller wächst die Fakultät im Nenner. Dies führt zu einer Bereichsüberschreitung des \verb+double+ Bereiches \cite{0f1:double}, der spätesten ab $k=167$ eintritt. Schlussendlich gibt das Unterprogramm das Resultat \verb+-nan(ind)+ zurück. -Die Rekursionformel \eqref{0f1:listing:kettenbruchRekursion} liefert für sehr grosse positive Werte die genausten Ergebnisse, verglichen mit der GNU Scientific Library. Wie schon vermutet ist die Rekursionsformel, im positivem Bereich, der stabilste Algorithmus. Um die Stabilität zu gewährleisten, muss wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, die Iterationstiefe $k$ genug gross gewählt werden. +Die Rekursionformel \eqref{0f1:listing:kettenbruchRekursion} liefert für sehr grosse positive Werte die genausten Ergebnisse, verglichen mit der GNU Scientific Library. Wie schon vermutet ist die Rekursionsformel, im positivem Bereich, der stabilste Algorithmus. Um die Konvergenz zu gewährleisten, muss wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, die Iterationstiefe $k$ genug gross gewählt werden. -{\color{red}TODO Abb. 20.3} - -Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Grund dafür ist die Potenz von $z$, was zum Phänomen der Auslöschung \cite{0f1:SeminarNumerik} führt. Schön zu beobachten ist dies in der Abbildung \ref{0f1:ausblick:plot:airy:stabilitaet} mit der Airy-Funktion als Test. So sind 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. +Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Grund dafür ist die Potenz von $z$, was zum Phänomen der Auslöschung \cite{0f1:SeminarNumerik} führt. Schön zu beobachten ist dies in der Abbildung \ref{0f1:ausblick:plot:airy:stabilitaet} mit der Airy-Funktion als Test. So sind sowohl die Potenzreihe, der Kettenbruch, als auch die Rekursionsformel bis ungefähr $\frac{-15^3}{9}$ stabil. Dies macht auch Sinn, da alle Algorithmen auf der gleichen mathematischen Grundlage basieren. Danach verhält sich allerdings die Instabilität unterschiedlich. Diese programmiertechnischen Unterschiede sind auch in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} und \ref{0f1:ausblick:plot:konvergenz:negativ} festzustellen. \begin{figure} \centering @@ -43,14 +41,14 @@ Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Gru \begin{figure} \centering \includegraphics[width=0.8\textwidth]{papers/0f1/images/konvergenzPositiv.pdf} - \caption{Konvergenz mit positivem z; Logarithmisch dargestellte Differenz vom erwarteten Endresultat. + \caption{Konvergenz mit positivem z; Logarithmisch, vorzeichenlose 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 mit negativem z; Logarithmisch dargestellte Differenz vom erwarteten Endresultat. + \caption{Konvergenz mit negativem z; Logarithmisch, vorzeichenlose dargestellte Differenz vom erwarteten Endresultat. \label{0f1:ausblick:plot:konvergenz:negativ}} \end{figure} -- cgit v1.2.1 From 059dd7a0ec72d91ed7879201c10e0abfb8cea3ef Mon Sep 17 00:00:00 2001 From: Fabian <@> Date: Mon, 15 Aug 2022 20:10:10 +0200 Subject: 2. Ueberarbeitung, done --- buch/papers/0f1/teil2.tex | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/buch/papers/0f1/teil2.tex b/buch/papers/0f1/teil2.tex index 06ac53e..0c2f1e6 100644 --- a/buch/papers/0f1/teil2.tex +++ b/buch/papers/0f1/teil2.tex @@ -38,16 +38,37 @@ Ein endlicher Kettenbruch \cite{0f1:wiki-kettenbruch} ist ein Bruch der Form a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{b_3}{a_3+\cdots}}} \end{equation*} in welchem $a_0, a_1,\dots,a_n$ und $b_1,b_2,\dots,b_n$ ganze Zahlen sind. -Die Kurzschreibweise für einen allgemeinen Kettenbruch ist + +Nimmt man nun folgenden Gleichung \cite{0f1:wiki-fraction}: \begin{equation*} - a_0 + \frac{a_1|}{|b_1} + \frac{a_2|}{|b_2} + \frac{a_3|}{|b_3} + \cdots + f_{i-1} - f_i = k_i z f_{i+1}, \end{equation*} -Angewendet auf die Funktion $\mathstrut_0F_1$ bedeutet dies \cite{0f1:wiki-fraction}: +wo $f_i$ analytische Funktionen sind und $i > 0$ ist, sowie $k_i$ konstant. +Ergibt sich folgender Zusammenhang: \begin{equation*} + \cfrac{f_i}{f_{i-1}} = \cfrac{1}{1+k_iz\cfrac{f_{i+1}}{f_i}} +\end{equation*} + +Angewendet auf die Funktion $\mathstrut_0F_1$ bedeutet dies: +\begin{equation} + \label{0f1:math:potenzreihe:0f1:eq} \mathstrut_0F_1(;c;z) = 1 + \frac{z}{c\cdot1!} + \frac{z^2}{c(c+1)\cdot2!} + \frac{z^3}{c(c+1)(c+2)\cdot3!} + \cdots +\end{equation} +Durch Substitution kann bewiesen werden, dass die nachfolgende Formel eine Relation zur obigen Potenzreihe \eqref{0f1:math:potenzreihe:0f1:eq} ist: +\begin{equation*} + \mathstrut_0F_1(;c-1;z) - \mathstrut_0F_1(;c;z) = \frac{z}{c(c-1)} \cdot \mathstrut_0F_1(;c+1;z). \end{equation*} -Umgeformt ergibt sich folgender Kettenbruch \cite{0f1:wolfram-0f1} -{\color{red}TODO Herleitung} +Wenn man für $f_i$ und $k_i$ folgende Annahme trifft: +\begin{align*} + f_i =& \mathstrut_0F_1(;c+1;z)\\ + k_i =& \frac{1}{(c+1)(c+i-1)} +\end{align*} +erhält man: +\begin{equation*} + \cfrac{\mathstrut_0F_1(;c+1;z)}{\mathstrut_0F_1(;c;z)} = \cfrac{1}{1+\cfrac{\cfrac{z}{c(c+1)}}{1+\cfrac{\cfrac{z}{(c+1)(c+2)}}{1+\cfrac{z}{(c+2)(c+3)} + \cdots}}}. +\end{equation*} + +Mit weiteren Relationen ergibt sich nach Wolfram Alpha \cite{0f1:wolfram-0f1} folgender Kettenbruch \begin{equation} \label{0f1:math:kettenbruch:0f1:eq} \mathstrut_0F_1(;c;z) = 1 + \cfrac{\cfrac{z}{c}}{1+\cfrac{-\cfrac{z}{2(c+1)}}{1+\cfrac{z}{2(c+1)}+\cfrac{-\cfrac{z}{3(c+2)}}{1+\cfrac{z}{5(c+4)} + \cdots}}}, -- cgit v1.2.1 From 2e1c6aecc9e99334b84a10e0da9597e03f2de3c4 Mon Sep 17 00:00:00 2001 From: Fabian <@> Date: Mon, 15 Aug 2022 20:14:36 +0200 Subject: 2.Uerbarbeitung, bruch --- buch/papers/0f1/teil2.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buch/papers/0f1/teil2.tex b/buch/papers/0f1/teil2.tex index 0c2f1e6..ef9f55e 100644 --- a/buch/papers/0f1/teil2.tex +++ b/buch/papers/0f1/teil2.tex @@ -65,7 +65,7 @@ Wenn man für $f_i$ und $k_i$ folgende Annahme trifft: \end{align*} erhält man: \begin{equation*} - \cfrac{\mathstrut_0F_1(;c+1;z)}{\mathstrut_0F_1(;c;z)} = \cfrac{1}{1+\cfrac{\cfrac{z}{c(c+1)}}{1+\cfrac{\cfrac{z}{(c+1)(c+2)}}{1+\cfrac{z}{(c+2)(c+3)} + \cdots}}}. + \cfrac{\mathstrut_0F_1(;c+1;z)}{\mathstrut_0F_1(;c;z)} = \cfrac{1}{1+\cfrac{\cfrac{z}{c(c+1)}}{1+\cfrac{\cfrac{z}{(c+1)(c+2)}}{1+\cfrac{\cfrac{z}{(c+2)(c+3)}}{\cdots}}}}. \end{equation*} Mit weiteren Relationen ergibt sich nach Wolfram Alpha \cite{0f1:wolfram-0f1} folgender Kettenbruch -- cgit v1.2.1 From e9f63ddb1d4de82392ca66eb162ecdc3474e5190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 16 Aug 2022 06:46:12 +0200 Subject: fix missing $$ in kreismembran/teil4.tex --- buch/papers/kreismembran/teil4.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buch/papers/kreismembran/teil4.tex b/buch/papers/kreismembran/teil4.tex index 3b174e0..0b6299e 100644 --- a/buch/papers/kreismembran/teil4.tex +++ b/buch/papers/kreismembran/teil4.tex @@ -93,7 +93,7 @@ Der Folgezustand kann also mit den Gleichungen \label{kreismembran:eq:folge_V} V[w+1] &= (V[w] + dt \cdot \Delta_h u \cdot c^2)\odot M \end{align} -berechnet werden. Das Symbol \cdot steht hier für eine elementweise Matrixmultiplikation (Hadamard-Produkt) +berechnet werden. Das Symbol $\cdot$ steht hier für eine elementweise Matrixmultiplikation (Hadamard-Produkt) \subsubsection{Simulation} Mit den gegebenen Gleichungen \eqref{kreismembran:eq:folge_U} und \eqref{kreismembran:eq:folge_V} das Verhalten der Membran mit einem Loop über das zu untersuchende Zeitintervall berechnet werden. In der Abbildung \ref{kreismembran:im:simres_rund} sind Simulationsresultate zu sehen. -- cgit v1.2.1 From e3b55b863915e45287bebe8bff6027c468359fe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 16 Aug 2022 10:25:25 +0200 Subject: fix a typo --- buch/papers/kreismembran/teil4.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buch/papers/kreismembran/teil4.tex b/buch/papers/kreismembran/teil4.tex index 0b6299e..d6aa54f 100644 --- a/buch/papers/kreismembran/teil4.tex +++ b/buch/papers/kreismembran/teil4.tex @@ -93,7 +93,7 @@ Der Folgezustand kann also mit den Gleichungen \label{kreismembran:eq:folge_V} V[w+1] &= (V[w] + dt \cdot \Delta_h u \cdot c^2)\odot M \end{align} -berechnet werden. Das Symbol $\cdot$ steht hier für eine elementweise Matrixmultiplikation (Hadamard-Produkt) +berechnet werden. Das Symbol $\odot$ steht hier für eine elementweise Matrixmultiplikation (Hadamard-Produkt) \subsubsection{Simulation} Mit den gegebenen Gleichungen \eqref{kreismembran:eq:folge_U} und \eqref{kreismembran:eq:folge_V} das Verhalten der Membran mit einem Loop über das zu untersuchende Zeitintervall berechnet werden. In der Abbildung \ref{kreismembran:im:simres_rund} sind Simulationsresultate zu sehen. -- cgit v1.2.1 From e63dbdeedff258f834311a449d935e7945d6c9db Mon Sep 17 00:00:00 2001 From: Joshua Baer Date: Tue, 16 Aug 2022 10:28:32 +0200 Subject: signal m draw --- buch/papers/fm/03_bessel.tex | 8 +-- buch/papers/fm/Python animation/Bessel-FM.ipynb | 73 +++++++++++++++++++++++-- 2 files changed, 71 insertions(+), 10 deletions(-) diff --git a/buch/papers/fm/03_bessel.tex b/buch/papers/fm/03_bessel.tex index 5f85dc6..45f2dfd 100644 --- a/buch/papers/fm/03_bessel.tex +++ b/buch/papers/fm/03_bessel.tex @@ -157,14 +157,14 @@ jedoch so \(-1 \cdot J_{-n}(\beta) = J_n(\beta)\) und daraus wird dann: \sum_{n=- \infty}^{-1} J_{n}(\beta) \cos((\omega_c + n \omega_m) t) \,+\, \sum_{n=1}^\infty J_{n}(\beta) \cos((\omega_c + n\omega_m) t) \end{align*} -Da \(n\) immer ungerade ist und \(0\) nicht zu den ungeraden zahlen zählt, kann man dies so vereinfacht +Da \(n\) immer ungerade ist und \(0\) nicht zu den ungeraden Zahlen zählt, kann man dies so vereinfacht \[ s(t) = - \sum_{n\, \text{ungerade}} -1 \cdot J_{n}(\beta) \cos((\omega_c + n\omega_m) t). + \sum_{n\, \text{ungerade}} J_{n}(\beta) \cos((\omega_c + n\omega_m) t). \label{fm:eq:ungerade} \] -schreiben. +, mit allen positiven und negativen Ganzzahlen schreiben. %------------------------------------------------------------------------------------------ \subsubsection{Summe Zusammenführen} Beide Teile \eqref{fm:eq:gerade} Gerade @@ -179,7 +179,7 @@ ergeben zusammen \[ \cos(\omega_ct+\beta\sin(\omega_mt)) = - \sum_{k= -\infty}^\infty J_{k}(\beta) \cos((\omega_c+k\omega_m)t). + \sum_{k= -\infty}^\infty J_{n}(\beta) \cos((\omega_c+ n\omega_m)t). \] Somit ist \eqref{fm:eq:proof} bewiesen. \newpage diff --git a/buch/papers/fm/Python animation/Bessel-FM.ipynb b/buch/papers/fm/Python animation/Bessel-FM.ipynb index 74f1011..ef6300b 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": 4, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -11,10 +11,11 @@ "from scipy.fft import fft, ifft, fftfreq\n", "import scipy.special as sc\n", "import scipy.fftpack\n", + "import matplotlib.pyplot as plt\n", "import matplotlib as mpl\n", "# Use the pgf backend (must be set before pyplot imported)\n", - "mpl.use('pgf')\n", - "import matplotlib.pyplot as plt\n", + "# mpl.use('pgf')\n", + "\n", "from matplotlib.widgets import Slider\n", "def fm(beta):\n", " # Number of samplepoints\n", @@ -42,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -56,6 +57,18 @@ "needs_background": "light" }, "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } ], "source": [ @@ -120,7 +133,7 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -164,7 +177,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 98, "metadata": {}, "outputs": [ { @@ -187,6 +200,54 @@ "plt.plot(x, y, '-')\n", "plt.show()" ] + }, + { + "cell_type": "code", + "execution_count": 130, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 130, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD4CAYAAADhNOGaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAA6UElEQVR4nO2deXgc1ZXof0eSZXm3ZUvyKu+7ZWwsb0CAAAYTCEvYzGoSwEwSJpnJvAwwmSRMXjJDkplAMi8LhgAGEmzjEDBLAJs1gDd5t7xJ3m3ZkrzvliXd98etthtZe1d1VXWf3/f1V9VVt+495bbq1D3n3HPEGIOiKIqSvKT4LYCiKIriL6oIFEVRkhxVBIqiKEmOKgJFUZQkRxWBoihKkpPmtwDNoUuXLqZPnz5+i6EoihIqli5dutcYk1XzeCgVQZ8+fSgoKPBbDEVRlFAhIttqO66mIUVRlCRHFYGiKEqSo4pAURQlyVFFoCiKkuSoIlAURUlyXFEEIvKsiJSJyJo6zouI/EZEikVklYicH3VuqogUOZ+pbsijKIqiNB63ZgTPA5PrOX81MND5TAN+DyAimcCPgfHAOODHItLJJZkURVGURuDKOgJjzCci0qeeJtcDLxib83qhiHQUkW7ApcA8Y8x+ABGZh1UoL7shl6LEk7IjJ5m9ZAcVldV+ixJ40iuPMmD/R7Sp2Edp26Fs7zAWRPwWKxRMvaAPndu2dLXPeC0o6wHsiPq+0zlW1/FzEJFp2NkEubm53kipKM2k5OAJ7nh6IVv3HdfnWQNcLCv5VYvf0VmOnDm2sHooD53+Dvvo4KNk4eC6UT1CqwhixhgzHZgOkJ+fr9V0lMCwY/9xbn96IYdOnObVb13A+blq3ayTonnw5/+G7GFw7ROQNRjWzGHCO/9GQfaTcN970Kqj31ImHfGKGtoF9Ir63tM5VtdxRQkFW/ce47anFnDkZCV/vn+CKoH6OLgD5txnlcDX34ZeYyGjPeR/A+6cDfs3w2vfAq2aGHfipQjmAvc40UMTgEPGmN3Au8CVItLJcRJf6RxTlMBTXHaUW59awMnKal5+YAJ5PdWsUS/vPALVp2HKS1YBRNP3Yrj8R7DhLSh81R/5khhXTEMi8jLW8dtFRHZiI4FaABhj/gC8DXwFKAaOA193zu0Xkf8LLHG6+knEcawoQWb9nsPc9cwiRIRZ0yYwMKed3yIFm6L5sP5NuOI/oFOf2ttM/DasfgXmPwZDvgpp6fGUMKmRMBavz8/PN5p9VPGLNbsOcfcfF9EyLZU/PzCefllt/RYp2BgDz1wBx8rgH5dBaou62xbPh5dugqt/CeOnxU/GJEFElhpj8mse15XFitIEVuw4yB1PL6R1ehqzH5yoSqAxbP4IdhXARd+rXwkA9L8cel8Inz0JVZXxkE5BFYGiNJqCrfu565lFdGydzqwHJ5DbubXfIoWDBf8P2nWDUXc03FYEJj4Eh3dZU5ISF1QRKEojWLBpH/c8u5jsdi2Z/eBEenZSJdAoDmyD4vfh/KmQ1sjY90FXQcfesOgP3sqmnEEVgaI0wCcby7n3ucX07NSKmQ9OoGuHDL9FCg/LZti3/PPvbvw1Kakw9j7YvgD2Fnknm3IGVQSKUg8frC/l/hkF9Mtqy8sPTCC7nSqBRlNdDStehgFXQIeeTbt25G0gKbBqljeyKV9AFYGi1ME7a/bw4ItLGdKtHS8/MN71Zf0Jz45FcKQE8m5t+rXtukK/S60iqNbcTV6jikBRauGNlSV8+8/LyOvRgZfuH0/H1hrT3mQKX4W0DBhcX2Liehh5GxzcDjuXNNxWiQlVBIpSg1eX7eS7M5czpncnXrhvPO0zGgh5VM6lugrWvg4DJ0HLZi62G3w1pLTQ6KE4oIpAUaKYtWQ7//LKSib278zzXx9L25ahycsYLLYvgKOlMPzG5veR0cGmnlj/puYf8hhVBIri8OKCrTz8l9VcMiiLP04dS+t0VQLNZsPfIDUdBl4VWz9DrrHJ6Mo3uCOXUiuqCBQFeObvm/nh64VMGpbDU3ePIaNFqt8ihZui9+wK4ZYxrrwe/BW7VfOQp6giUJKe335YzE/fWsc1ed343Z3n0zJNlUBM7N8CezfCwCtj76t9N+h+vp1hKJ6hikBJWowxPDFvI798dwM3jOrOr6eMokWq/knETPF8u3VDEYBdh1CyDE4ccKc/5Rz0f72SlBhj+MW7G/j1+0XcMqYn/3PrKNJUCbhD0XuQ2Q+6DHCnv/6XgamGLX93pz/lHPR/vpJ0GGP46Vvr+P1Hm7hzfC4/v2kkqSlaaNgVKitg66c2i6hb9MyH9Haw6QP3+lS+gIZFKElFdbXhx3MLeXHhNr5+YR9+dO0wRKvNu0fJMjh93IZ9ukVqC+hzEWz+0L0+lS/gyoxARCaLyAYRKRaRR2o5/4SIrHA+G0XkYNS5qqhzc92QR1Fqo6ra8OO/LKFo8d/4r1Hl/Ojy7qoE3GbL3wGxD2436X8ZHNhqQ0kV14l5RiAiqcBvgUnATmCJiMw1xqyNtDHG/HNU+38ERkd1ccIYMypWORSlPiorq3jj6R/zL3uepWP6MVgPFH0fJnwTvvyDxqdIVupn6yeQMwJaZ7rbb79LnP4/tf4HxVXcmBGMA4qNMZuNMRXATOD6etrfDrzswriK0ihOV1ZS8Jsp3Fj6vxzKPA/ueAXumQsjbobPfg0vT4HTJ/wWM/xUnoIdi6Hvl9zvu8sgaN0Zti1wv2/FFUXQA9gR9X2nc+wcRKQ30BeI9vpkiEiBiCwUkRvqGkREpjntCsrLy10QW0kGTlVW8fFvHmDC4fdY2vcf6P2dt2HQlfYN88bfw/W/tU7IN/9Z0xjEys4CqDzpvlkIbE2D3Imw/XP3+1biHjU0BZhjjKmKOtbbKaZ8B/CkiPSv7UJjzHRjTL4xJj8rKysesioh5+TpKp5+6kmuOPwqa3PvYMw9j9sHSjSj74JLH4WVL9tsmUrz2er4B3pf4E3/vS+0foLDJd70n8S4oQh2Ab2ivvd0jtXGFGqYhYwxu5ztZuAjvug/UJRmcaKiiu89N587y37Fvg7DGXbPr89VAhEu/j50GwXvPAonDsZTzMRi22fQNQ9adfKm/94TnXF0VuA2biiCJcBAEekrIunYh/050T8iMgToBCyIOtZJRFo6+12AC4G1Na9VlKZw7FQl9z63mAt2TKdDygk63/kspNVTTyAlFb76JBwtsz4DpelUV8GuZZA7wbsxcvLseoLt6idwm5gVgTGmEngIeBdYB8w2xhSKyE9E5LqoplOAmcZ8wRA7FCgQkZXAh8Dj0dFGitJUDp88zT3PLubQ9lXcmfoBKWPvg+whDV/YfTQMvwEWT4fj+z2XM+EoWwsVR6HnOO/GSE2DXuN0RuABriwoM8a8Dbxd49iPanx/rJbrPgfy3JBBUQ4dP809zy6isOQwn/V+FznQztr/G8vF/wqFr8HC38NlP/BMzoRkx2K77Znv7Ti9J8IHP7XK2u0Q1SRGU0woCcH+YxXc/vRC1u0+wotfbUfO7vdh/Deb9rDIGQaDJsPS52yqBKXx7FwCbbKgUx9vx4nMOEqWeTtOkqGKQAk95UdOcfv0hWwqP8rTU/OZuPtFaNEGxj/Y9M7G3g/HymGdLnJvEjsW24e01yu1u48GBHYu9XacJEMVgRJqSg+fZMr0BWzff5zn7h3LJdknYfUcGHNv80wH/S+zb7UFz7otauJybB/s3wS9xno/VkZ7yBoCu1QRuIkqAiW07Dp4glufWkDp4VO8cN84LhjQBZbNsCmLJ/xD8zpNSYFRd9lQyIM7Gm6vWLMQeOsojqbHGNhVoAsAXUQVgRJKduw/zm1PLWD/sQpevG8cY/tkQtVpWPYiDJwEHXOb33neTXarC8wax87FkJLmmG3iQM8xcHyfXVymuIIqAiV0bNl7jFufWsDRU5X8+f4JjM51FjBt+Bsc3QP534htgMx+9q1z9SuxC5sM7FhsE82lt47PeD2cyCQ1D7mGKgIlVBSVHuHWpxZQUVnNyw9MIK9nh7Mnlz4H7XvAgEmxD5R3C+xZDeUbYu8rkamuhpIV3oeNRpM9DNJaqSJwEVUESmhYt/swU6YvBGDmtAkM7db+7MlDu2DThzD6brvwKFaG3eAM+kbsfSUy+zdDxRGboiNepKZB91E2yZ3iCqoIlFCwZtchbn96IS1SU5g1bQIDc9rVaDAHMDDyVncGbN/N2rw3vutOf4nK7hV2231UfMftMQZ2r7R+ISVmVBEogWf59gPc/vRC2qSnMfvBifTLantuo9Wv2IdD51qT1zaPQZNtRMxRTXteJ7tXQGpLG9IZT3qMgapTULomvuMmKKoIlECzZOt+7npmEZlt0pn9DxPJ7VyLQ7JsvbXn57k0G4gwaDJgoHieu/0mEiUroOsIW1c4nkRmILtXxXfcBEUVgRJYPi/eyz1/XExOhwxmPziRHh1b1d5w9WyQFBjxNXcF6HYetOtmo5GUczHGPoi7nRf/sTv2gZbtrXlIiRlVBEog+XhjOV9/fgm5ma2ZNW0iOe0zam9ojDUL9bsU2ma7K4SIXZOw+SOoqnS370Rg/2Y4dSi+juIIKSnQdSTs0RmBG6giUALH++tKeWBGAf2z2vLytAlktaunsHzJMji43dYf9oJ+l8Kpw7BH3zzPwS9HcYRuI2HPGlsLQYkJVQRKoHhnzW4efHEpQ7u1488PjCezTT0FZQDWvQmSCoOv9kagPk4h9s0fe9N/mClZAanpkDXUn/G7joTKE7C3yJ/xEwhVBEpgmLuyhG//eTnn9erIi/ePp2PrBpQAwPo3bbF0r3LTt822C5i2fOJN/2Fm9wrIGV5/9Tcv6TbSbtU8FDOuKAIRmSwiG0SkWEQeqeX8vSJSLiIrnM/9UeemikiR85nqhjxK+JizdCf/NHM5+b07MeMb42if0YgolPKNsHcjDLnWW+H6XgzbF0LlKW/HCRPGWEetH/6BCF0GQ1qGOoxdIOYlmCKSCvwWmATsBJaIyNxaSk7OMsY8VOPaTODHQD5ggKXOtQdilas2Dh0/TUVVtRddn6WqAqk8iWnRxtbCVRrk3cI9/PD1NVzYvwtP35NPq/RG/rutf9Nuh1zjnXBgFcGiP9iVrH0u9HassHBgC5w85E/EUITUNDtbU0UQM26UqhwHFBtjNgOIyEzgehpXhP4qYJ4xZr9z7TxgMvCyC3Kdwz/NWs6HG9xfHJRCNdemLOCutPmMkmLSpYqjJoOF1UN5tupqPq8e4fqYicaXB2fx+7vGkNGiCcpz/ZvQ/Xzo0MM7wQB6X2jDU7d8rIogwp7VduunIgBrHir8q52heF0UJ4FxQxH0AKITt+8ExtfS7iYRuRjYCPyzMWZHHdfW+lctItOAaQC5uc1LMXz3xN5cNjSnWdfWRdvjO7lw1aNkH1zJoTZ9Kcq+mxPpnWl7YhcXlM7nilP/yZauk1k0/N853aJ9wx0mIW1bpvKVvG60TGuCEjhcYpOOXfZD7wSL0KqjfeBt/cz7scLCnjVWOWb75CiO0HUkLH3eRo516u2vLCHGleL1jeAN4GVjzCkReRCYAVzWlA6MMdOB6QD5+fnNqkhx2RB3lQAly+Glu22M+Y1P0SHvVjqkRLldKk/BZ7+h78eP07d6O9z1F2jf3V0ZkpX1b9nt0K/GZ7xeE+wDp+p0/FfRBpHSQug8EFrUscgvXkR8FLtXqiKIATecxbuAXlHfezrHzmCM2WeMiXjangHGNPbawFK+EV643tbGfeADOG+KXeQSTVpLuOT7cOccW+3qhRvg+H5fxE041r9pH0RZg+MzXq9xNlQxYhJJdkrX2Ighv8kZZsOHNXIoJtxQBEuAgSLSV0TSgSnAFyp/i0i3qK/XAeuc/XeBK0Wkk4h0Aq50jgWbY3vhz7fYGOp734QuA+pv3//LcMdMW1Fp1t26SjVWTh2xZhqv1g7URi/H2rljUfzGDConD8PBbcFQBC1aQZdBmnMoRmJWBMaYSuAh7AN8HTDbGFMoIj8RkeucZt8RkUIRWQl8B7jXuXY/8H+xymQJ8JOI4ziwGAOvfRMO74bbZzZ+OtrnIrjuf2Hbp/Dxz72VMdHZ8glUn7bpH+JFhx7QoZcqAoAyJw6ka56/ckTIGX5WJqVZuOIjMMa8Dbxd49iPovYfBR6t49pngWfdkCMuFDwLRe/B1b9oelWm826zD7FPfmlnCb0v8EbGRKdoHqS3tXb7eNJrPGz7XCNUIqmfgzAjAGseWjPHhrNmdGi4vXIOurK4KRzaBe/9EPpfBmMfaF4fX/mFLaz+xnd1gVJzMAaK59scQPFe0dprPBwpgUM74ztu0Nizxj5w23sctttYcpzw7LJ19bdT6kQVQVOY9yMwVXDtk+c6hhtLehu45n/sitjPfu2qeElB+QY4tAMGXBH/sXuNs9tkNw+VFkJOXnBmRdnD7FaL1DQbVQSNZetndvp54T/FHqY2cBIMux7+/is4sscV8ZKGSJGYePoHIuSMgBatbdWyZKW62trjg2IWAujQE1p2gFL1EzQXVQSNwRh491HrLLzwu+70ecVj1uH50ePu9JcsFM2z2S479Iz/2KlpdmFZyfL4jx0UDm6FiqPBUgQi1k9QWui3JKFFFUFjWP+WXbDy5R9Aei2lEptDZj8Y83VY9gLsLXanz0Tn1FHYvgAG+mAWitB9tA1VTNYQ4MjDtmvA0qZkD7M+AtOstaZJjyqChqiuho/+CzL7Q94t7vZ9yb/a7Ikf/ae7/SYqWz6Bqgp//AMRuo92cuBv8E8GPyktBMS/GgR1kTPcVktLdkd+M1FF0BDr37BOqEsfsaYBN2mbDePut0mz9m92t+9EpHi+XcmdO9E/GbqPtttkNQ/tWQ2d+7s3M3aLiKlKzUPNQhVBfRgDf/8f6DwARtzkzRgTvgUpafDZb7zpP1EwxjqK+11iU3f4RWZ/WzQ9WRVBaeHZcM0gEUl+V6aKoDmoIqiPbZ9b38DEb3tXW6BdVxh1B6z4k0YQ1cfeIpth0k+zENiw4W7nwa5l/srhBxXHbB2CIDmKI2R0gA65GjnUTFQR1MfC30GrTBg5xdtxLvgOVFfC4unejhNm/AwbrUn30dZcWFnhtyTxpXy93fqderouNHKo2agiqIt9m2y00Nj7vLeHdu4Pg662aY5Pn/R2rLBSNM+WJuzYvFoUrtJ9tHVaJ1t+mzJHEQTNURwhZzjsK0o+Be0CqgjqYtEfbN755qaSaCrjHoDj+2Dta/EZL0xUHINtnwVjNgDJ6zAuXwepLSGzr9+S1E72MDuz3rvRb0lChyqC2qg4BitehuE3QjuXi9nURb9LbX79xU/HZ7wwseXv/oeNRtOpD7TqBCVJ5icoW29TPge1FnfEia3moSajiqA21rwKFUfsgq94IWJnBbsKbAlG5SzF82zYaFCytYrYFMzJVqSmfD1kD/Fbirrp3B9SWtiZi9IkVBHUxrIZ1h6dG+c0x+fdbh94S8KTldtzjLH+gb4X+xs2WpOcPLuSNVlWGJ86YpP9ZQVYEaS2sKHeEV+G0mhcUQQiMllENohIsYg8Usv574nIWhFZJSLvi0jvqHNVIrLC+cyteW3c2bPGJhUbc2/8sytmtIcRX7MLzE4dje/YQWVfsa2G5WdaidromgeVJ2H/Jr8liQ/lzkrqoEYMRcgecja6SWk0MSsCEUkFfgtcDQwDbheRYTWaLQfyjTEjgTnAL6LOnTDGjHI+1+E3y2ZYh9h5HoeM1sXou+H0MXUaRyieb7dB8Q9EiOTaSRbzUCTXf5BnBGAjmg5shYrjfksSKtyYEYwDio0xm40xFcBM4ProBsaYD40xkV9mIbZIffCoOA4rZ8Gw66B1pj8y9BpnncbLX/Jn/KBRNM/+e3Tq47ckX6TLYGuPTpYc+OXrbV6soP0ONckaDBiNHGoibiiCHsCOqO87nWN1cR/wt6jvGSJSICILReSGui4SkWlOu4Ly8vKYBK6TDW/bxFXn3+NN/41BBEbfabNsJntW0orjsPXT4ISNRpOWbh86yTQjCHLEUISI6ao8SZMCNpO4OotF5C4gH/hl1OHexph84A7gSRHpX9u1xpjpxph8Y0x+VlaWNwKumgXte0Lvi7zpv7GMnAKSYtNOJDNbP4WqU8EzC0Xommd9SslA+frgm4XApnfXyKEm44Yi2AX0ivre0zn2BUTkCuAHwHXGmDPFeo0xu5ztZuAjYLQLMjWdo+VQ/D6MvKX5ZSjdon03GDAJVr4M1VX+yuInxfMgrRX0vtBvSWonZwQc3QPH9votibecPASHdwU7dDSCRg41CzeeeEuAgSLSV0TSgSnAF6J/RGQ08BRWCZRFHe8kIi2d/S7AhYA/6/YLX7X1iEfe5svw5zDqdjiyG7b+3W9J/MEYKHrPZhttkeG3NLWTLA7jiJklqKklaqKRQ00mZkVgjKkEHgLeBdYBs40xhSLyExGJRAH9EmgLvFIjTHQoUCAiK4EPgceNMf4ogpUzoevI4ITHDZoM6e1g9St+S+IP+zbZ6I+gmoXAriWAxHcYRyKGwjAjAI0cagauVFoxxrwNvF3j2I+i9mv9azbGfA7kuSFDTOwtsukCrvyZ35KcpUUrGHotrH0DrvlVsBZTxYOi9+w2iI7iCG06Q7tuSTAjWG9NdB37+C1J44iOHOo+ym9pQoGuLAZYNds6Z/Nu9luSL5J3s41iKprntyTxp9jJNhr0cMVkcBiXrYOsQf77zhrLmcghNQ81lpD8sh5ijI0W6nepLRITJPpeCq27JJ95qOJYcMNGa5IzwtYvrjzVcNuwUr4+PP4BiIocUkXQWFQR7FxiUxjk3eq3JOeSmmZTTmx8B04e9lua+BHJNhoKRTDcSX1c5Lck3nDioA1aCIt/AGzkUJeBGjnUBFQRFP7VppQYco3fktRO3i02p836t/yWJH4Uved/kfrGkuhmiMh9hWlGANZPoGsJGk1yK4Lqalj7uo1MyWjvtzS103Osrcq1Zo7fksSHM0XqLw2Hg7zzQEhJS9xqZWGLGIqQNRQObNPIoUaS3Ipg5xK7UGb4DX5LUjciMOJm2PRh4i9cAhvpcXB78LKN1kVaOmT2T1wzRPl6aNHaFoYPE9lD0JxDjSe5FcHa16xZaNBkvyWpnxFfs4vd1r3htyTeEwkbHRAC/0CE7CGJa4YoW2fNLGGJGIoQSYeRqCY7lwnZr+siZ8xClwfXLBQhZ4R961z7ut+SeE/RPDut79ir4bZBIXsY7N+SmGaIsEUMRdDIoSaRvIrgjFnoRr8laRgRGHY9bPkEju3zWxrvOHUEtn0ejmihaLIS1AxxfD8cLQ2ffwA0cqiJJK8iCItZKMLwG6x5aP2bfkviHZs+hOrTMPBKvyVpGtlOHaayBDMPhTViKIJGDjWa5FQEYTILReg6Ejr1TWzz0Ia3IaNjOMJGo8nsB6npiffQCWvEUASNHGo0yakIImahYTf4LUnjOWMe+thO2RONqkq7cG7QVXYhXZhITbNhpIlmhijfAOltoUOI/DXRaORQo0lORRAxCw2+2m9JmsbwG+wq1kRcXLZjIZw4AIO/4rckzSN7aAKahpyIIRG/JWkeGjnUaJJPEYTRLBSh2yi7uCwRzUPr37bmlQGX+y1J88geAoe2W4d3olC+IRxVyepCI4caTfIpgjCahSKIWLk3f2TfnhMFY2DDW9D3EmjZzm9pmkfEoZootXIjEUNZg/2WpPlo5FCjST5FsPY1++Y5OCTRQjUZfoONrNnwN78lcY/y9baQyJCQmoXgbM6hRDEPRezqYZ4RgBM5pIqgIVxRBCIyWUQ2iEixiDxSy/mWIjLLOb9IRPpEnXvUOb5BRK5yQ546iZiF+l8OGR08Hcozup9vl/sXvua3JO4R8XkMCpnPJppOfSAtI3EeOmdCR8OuCLRaWWOIWRGISCrwW+BqYBhwu4gMq9HsPuCAMWYA8ATwc+faYdgax8OBycDvnP68IUyLyOpCBIZdB5s+sCmCE4ENb0OPMdC+m9+SNJ+UVPv2mSjJ58o3ODmGQhoxFCFSrWxfgqYJdwk3ZgTjgGJjzGZjTAUwE7i+RpvrgRnO/hzgchER5/hMY8wpY8wWoNjpzxvCbhaKMOwGax7a+I7fksTOoZ2wa2lw04A3hayhiWOPLl8PXUJUlawuzpjsEuB32VkAs++xMxyXceNX7gHsiPq+0zlWaxun2P0hoHMjrwVARKaJSIGIFJSXlzdP0sqTNjwxrGahCD3zoX1PW0sh7Kyda7dhdN7XJGswHClJjJla2COGIiRS5NCupda0nZbhetehUffGmOnGmHxjTH5WVlbzOrn2CbjleVfl8oXI4rJNH8DJQ35LExtrX4ecPOjc329JYify9hn2BUwnD1kTapgjhiKktoDOAxJDEZSvty+xbXNc79oNRbALiDYk9nSO1dpGRNKADsC+Rl7rLmFdHFOT4Tfaco5hjh46XGIXkg2vaUkMKZE36LBHDpUnSMRQhOwh4f9NwJmlDfXkGeaGIlgCDBSRviKSjnX+zq3RZi4w1dm/GfjAGGOc41OcqKK+wEBgsQsyJT5nzEOv+S1J84nUV0gEsxBAx96Q1ir8b58R+cOaY6gmWUOsXf30Cb8liY3y9Z7N0mJWBI7N/yHgXWAdMNsYUygiPxGR65xmfwQ6i0gx8D3gEefaQmA2sBZ4B/i2MaYqVpmSAhG7pmDT++E1DxW+BtnD7aKfRCAlBbIGJYYiSMuwii0RSIQ04UfL4fg+z2ZprvgIjDFvG2MGGWP6G2N+5hz7kTFmrrN/0hhzizFmgDFmnDFmc9S1P3OuG2yMCbGdwweG3RBe89CRPbB9gfV1JBKJEDlUvsEq5xTvIrnjypmcQyFe9X1mXUdAZwSKj4Q5emjdG4AJdr3o5pAIkUOJEjEUoXN/SEkLt5/gjLnOm9oQqgjCzBnzUAijhwpfsw+bRIhMiSbskUOnjtrkeYn0u5yJHArzjGADtGwP7bxZdKmKIOyE0Tx0tAy2fZY4TuJowh45lCg5hmqSNSTchYMijmKPoh5VEYSdnvk2DUCYzEPr5gIm8fwDEP7IoUTJMVSTsEcOeRgxBKoIwk/04rKw2KXXvm7TF3hk7/SVsEcOla+3aVg69fVbEnfJHgKmGvaGMOfQsX1wrNzT2tGqCBKBMC0uO1oOWz+1yitRFvfVJMyRQ+UbbNnNsJULbYgwVyvb6/g2PJylqSJIBHqMseahta/5LUnDrH/Dvpklon8gQpgjhzw2QfhGphM5FEZFEPE3qWlIqZeIeaj4/eA/fNa8at84c4b7LYl3hDVyqOI4HNiWeP4BgLR0GzkUxpla+QZIbwsdeno2hCqCRGH4jcGvXHa4xJqF8m5OXLMQhDdyaF8RYBJzRgDhrVYWSQnu4d+MKoJEIQzmoTWvAgZG3Oy3JN4S1sihcu9t0b6SNRQObIHTJ/2WpGmUb/A8sEIVQaIQBvPQmjnQbRR0GeC3JN4S1sih8vXWjp4IKcFrI2uw9U+FqVrZiQNwdI/nszRVBInEiJuseWjt635Lci77NkHJcsi7xW9J4kMYI4fK1ls7emoLvyXxhjBWK4vTLE0VQSLRfbR1xK6a5bck57J6DiAw4mt+SxIfwhg5lKgRQxHCGDnkcbK5CKoIEgkROO82m77hwDa/pTmLMbD6Feh9IbTv7rc08SFskUOnT1r7eaL6B8BGDmX2D5ki2AAtWkOHXE+HUUWQaOTdarerZ/srRzR7Vlm7bF6CO4mjCVvk0L5iaz9P5BkB2PsLy28CVtYug6zfyUNUESQanXpD7gWwarZ9Ew8Cq2bbKXki5haqi7BFDiVqjqGaZIcscihOKcFjUgQikiki80SkyNl2qqXNKBFZICKFIrJKRG6LOve8iGwRkRXOZ1Qs8igO591mTRIly/2WBKpOW0UwaDK0zvRbmvgRtsih8g0gqdZZnMiEKXLo5CHrZ4rDLC3WGcEjwPvGmIHA+873mhwH7jHGDAcmA0+KSMeo8983xoxyPitilEcBm74hNT0YTuPi+XCsDEbd6bck8SdMkUPl6yGzH6S19FsSb4kkbgtDbYJyx78Uh+SMsSqC64EZzv4M4IaaDYwxG40xRc5+CVAGZMU4rlIfrTraN/DVc+wbuZ8sfwnaZMHASf7K4QdhihwqW5f4/gGwMx5JDYefoGyt3YZgRpBjjNnt7O8BcuprLCLjgHRgU9ThnzkmoydEpM7XERGZJiIFIlJQXl4eo9hJwHm3w/G9UPSefzIc2wsb34GRtyVubHp9hCVy6PRJ2L8psfM/RUhLtwvmwmCyK1tnI4Y69vF8qAYVgYjMF5E1tXy+4PkzxhigTu+kiHQDXgS+boypdg4/CgwBxgKZwMN1XW+MmW6MyTfG5Gdl6YSiQQZOgrZdYemMhtt6xarZUF2ZnGYhCE/k0N4N1m6eiPUhaiNrSEgUQaGV1eOIIWiEIjDGXGGMGVHL53Wg1HnARx70ZbX1ISLtgbeAHxhjFkb1vdtYTgHPAePcuCkF+wZ+/t1QPA8O7oj/+MbAij/ZRW45w+I/fhAIS+RQRFFlJ8GMAOzDdf9mqDzltyT1U7Yubn87saqaucBUZ38qcE5uAxFJB/4KvGCMmVPjXESJCNa/sCZGeZRoRt9tH8jLX4z/2DsLoHSNlSFZCUvkUGmhDS7I7Oe3JPEhDNXKjpbbqmTZ4VAEjwOTRKQIuML5jojki8gzTptbgYuBe2sJE/2TiKwGVgNdgJ/GKI8STafeMOByWPYiVFXGd+wlT0N6Oxh5a3zHDRphiBwqWwddBideVbK6CEO1soijOE6KIKZf3hizD7i8luMFwP3O/kvAS3Vcf1ks4yuNYMy9MOsu6zQe8pX4jHlsLxT+1Y7dsl18xgwqWYNh1UwbOdSqo9/S1E7ZWuhzkd9SxI9I5JAqgjPoyuJEZ9Bk6zRe8nT8xlz2gq2hPPb++I0ZVIIeOXTiIBzelTyOYrBrJTL7BduJX7YWWneGttlxGU4VQaKT2gLG3Q+bPoDStd6PV10FBc9Bny8lR1x6QwQ9cijyVpwsjuII2UOCvaisbJ2dDcSpkp8qgmQg/z4bvbLgt96PtW4uHNoO46Z5P1YYCHrkUGmh3SbTjACCHTlUXe0ogvj9JqoIkoHWmTD6TpuR9Eipd+MYA58+aVP9DrnGu3HCREqKffuMPHCDRtk6aNne08LogSR7GJiqYM4KDu2AiqNx8w+AKoLkYcK3bLqJxdO9G2PLx7B7BVz4HUhJ9W6csJEz3IbSBiUbbDRla+2bZ5xMEIEhZ4TdBlFBx9lRDKoIkofO/WHotbD4aVsH1Qs+fRLa5sDIKd70H1Zy8uD4Pjjq4WysORhzVhEkG537Q1qGVdBB44wiUNOQ4gWXPAKnDnnjK9i2ADZ/CBO/DS0y3O8/zERy+ATtoXNkj30pSDZHMdgZa/bQ4P0mYIM6OvSCjPZxG1IVQTLRdYRNUb3w93Bsn3v9GgPzH7NhqmMfcK/fROGMIgiYGcKHN89AkTM8eL8JnI0YiiOqCJKNSx+FimPw6a/c67PoPdixEC59GNJbu9dvotA6E9r3gD0Be/s8k2MoSXNB5eTZNA5eBlA0larTds1JnJWzKoJkI3uIjSBa9IezhS9ioeo0zPuxXaCTzHmFGiKIb59la61Pp01nvyXxhyCa7PYVQ/XpuKcEV0WQjFz+GKS3gb99P/ZIloW/g/J1cNV/JmfNgcaSM8Kme66s8FuSs5QWJq9ZCIJpsvNpXYcqgmSkbRZ8+d9h80ew5i/N7+fANvjocRh8DQy+2jXxEpKc4bY2w96AxK1XVTppjkf4LYl/REx2QZoRlK6BlBY2CWAcUUWQrOR/A3rkw1vfg0M7m359VSW8Os0m77r6cfflSzS65tltUN4+9xVB1SnoOtJvSfwlaCa7Pavtque09LgOq4ogWUlNg5uetrmBXp3WdJPFxz+3DuJrn4COud7ImEhk9ofUlvYPPQhE5IgoqGQlZ7hdXRwUk92e1b78JqoIkpnMfvZBvu0zeOO7jfcXrHoFPvmFLUE58hZvZUwUUtOClWpizyqrmLoM9FsSf8kZYZ2zQcgOe6TULjoMmyIQkUwRmSciRc62Ux3tqqKK0syNOt5XRBaJSLGIzHKqmSnxZOStNqR05Z/hbw/bhFf1seZVeO2b0Psiq0SUxpOTFyBFsNo6JJPdwR+kVBOl/s3SYp0RPAK8b4wZCLzvfK+NE8aYUc7nuqjjPweeMMYMAA4A98Uoj9IcLnkYJnwbFj8FM2+vPa66sgI++CnM+Qb0zIcpf7J53ZXGkzMcjpXB0VpLe8cPY3wzQQSOzgPszKg0ACa7M+a6+DvwY61Ndz1wqbM/A/gIeLgxFzp1ii8D7oi6/jHg9zHKpDQVEbjqZ7a05Xs/hP89H867HfpcaPOx7F5l6x4f2mHNQV/5b1041hwif+Cla6Ctj8X5juy2uY+S3VEMwTLZ7VkNHXKhVa2GFU+JVRHkGGN2O/t7gJw62mWISAFQCTxujHkN6AwcNMZEiunuBHrUNZCITAOmAeTmqnPSdURg/IPQ/zL45JewbEZUVTOB3Inw1SdhwBV+ShlusqPi1vv7qAjUUfxFckZA8Xy/pfB1ltagIhCR+UDXWk79IPqLMcaISF3ext7GmF0i0g/4wClYf6gpghpjpgPTAfLz8wOYzzdB6DIQvjYdvvobG/NeXQmd+tqYayU22nSGdt38jxyKjB/n1auBJWc4rPiTNdnFqTTkOVQct6uKh3/Nl+EbVATGmDpfAUWkVES6GWN2i0g3oFbjpzFml7PdLCIfAaOBvwAdRSTNmRX0BHY14x4UL2iRAd3O81uKxKPbebB7pb8y7FltlXscs1sGmsj/890rYeAkf2QoWwem2hf/AMTuLJ4LTHX2pwKv12wgIp1EpKWz3wW4EFhrjDHAh8DN9V2vKAlFt1E2VLHimH8yqKP4i0R8JSUr/JNhzyq79el3iVURPA5MEpEi4ArnOyKSLyLPOG2GAgUishL74H/cGBOpov4w8D0RKcb6DP4YozyKEmy6j7Jvfn6Zh04dsbV61VF8loz2Nnpo9wr/ZNiz2pYM7djbl+FjchYbY/YBl9dyvAC439n/HKhVzRljNgPjYpFBUUJFt1F2W7ICcifEf/zSQsD4ZoIILN1GwfYF/o2/Z5V1WvtUMlRXFitKPGnfzRbw8evts2S53XYf7c/4QaX7aDi8C46Wx3/sqtN2RuDjb6KKQFHiTfdRZx/I8WbXMmjXHdrVFgiYxHQfZbd+KOiydVB5EnqcH/+xHVQRKEq88dNhXLJcZwO14afDOACzNFUEihJv/HIYnzxk00/3UEVwDhGHsR8ztZJlkNHBJoH0CVUEihJvoh3G8SQyns4IaqfbKH9MQ5FZmk+OYlBFoCjxxy+Hcckyu+3uny060PjhMD590kZy+aycVREoih/44TAuWW7j1DVdSO344TAuXWPTuPisnFURKIofRBzGp47Gb8xdy32NTAk8ZxzGcVTQkbF8/l1UESiKH/QYYx3G8XroHNsLh7b7/uYZaDLa26LxO5fEb8xdy6BNFrSvM/FyXFBFoCh+0DPfbncujs94AQhRDAW9xllF0NiyrbFSstwqZx8dxaCKQFH8oXUmdBkEO+L09rljMUjKWTu4Uju9xsGJAzYltNecOAjl6+3s0GdUESiKX/QcZ2cE8Xj73LHI5t1v2c77scJMTyf12Y5F3o+1qwAwkDve+7EaQBWBovhFr3G2ZOT+zd6OU1UJOwugl/8PnMDTZZBd3LUjDia77YvsLE1nBIqSxPSK09tnWSGcPga9fMh2GjZSUqDn2Pg4jHcsshlHAzBLU0WgKH7RZTC0jMPb53ZH0fTSjO+Notd4mwjuZJOq6TaNgM3SVBEoil+kpNjoIa8VwY5FtlZyx1xvx0kUeo4FjH1Qe0VkluZHTYpaiEkRiEimiMwTkSJn26mWNl8WkRVRn5MicoNz7nkR2RJ1blQs8ihK6Og1HsrWwsnD3o2xY5GdDfgcohgaeoyxtnsvzUMBm6XFOiN4BHjfGDMQeN/5/gWMMR8aY0YZY0YBlwHHgfeimnw/ct4YsyJGeRQlXPQah3379GhWcLgEDu1Q/0BTyGgP2cO9rVi2Y5GtC9Ghl3djNIFYFcH1wAxnfwZwQwPtbwb+Zow5HuO4ipIY9BoPKS1gy9+96X/rZ3YbEBNEaOhzkX1rrzzlft/GwNZP7W8SkFlarIogxxiz29nfA+Q00H4K8HKNYz8TkVUi8oSItKzrQhGZJiIFIlJQXu5DOTlF8YL01tZPsOUTb/rf8pENh+x2njf9Jyp9L4bKE974CfYWwdE90O8S9/tuJg0qAhGZLyJravlcH93OGGOAOlfGiEg3bBH7d6MOPwoMAcYCmcDDdV1vjJlujMk3xuRnZWU1JLaihIe+F9uMl15EqWz5BPp8CVJS3e87kel9gfUTeKGgt3xst30vdr/vZtKgIjDGXGGMGVHL53Wg1HnARx70ZfV0dSvwV2PM6ai+dxvLKeA5IBieE0WJJ32+ZBPQbfvc3X4PbIWD26FvcN48Q0OrjnYWtdUDk92Wj6FDLnTq637fzSRW09BcYKqzPxV4vZ62t1PDLBSlRATrX1gTozyKEj56joW0DPffPiP9BejNM1T0+ZIN7a1w0aVZXW39QX0vDox/AGJXBI8Dk0SkCLjC+Y6I5IvIM5FGItIH6AV8XOP6P4nIamA10AX4aYzyKEr4aJFho4fcdhhv+QTa5kDWYHf7TRb6XgLVp91d+V26Gk4eDJxyTovlYmPMPuDyWo4XAPdHfd8KnJNw2xhzWSzjK0rC0Pdi+OCntkxiWxd8YMZYRRCwN89QkTsBUtJg80fQ/8vu9Lk5eP4B0JXFihIMBlxht8Xz3elvz2o4Wgr9LnWnv2SkZVvInQhF7zXctrEUz4esIbZudYBQRaAoQaDredaMs/Edd/rb6ATnDbzSnf6SlUFX2ZXfB3fE3tfJw7DtM9tnwFBFoChBICUFBk6CTR9A1emG2zfExr/ZVAlts2PvK5kZ6Dy0i96tv11j2PSBLVQ/aHLsfbmMKgJFCQqDJsOpw7B9YWz9HC2DXUth0NXuyJXMdBlowzw3uqAINr4LrTqdLX4TIFQRKEpQ6HepTTcRq3koYtMOoAkidIjYf8ctn0DFseb3U11lf5cBkyA1phgdT1BFoChBoWU76H8ZFL5m482by9rXoX1P6JrnmmhJzdCvQuXJ2BT0ts/h+F4YHMxZmioCRQkSeTfD4Z3Nz0Z6bJ+1RefdpGGjbpE70dZzWPNq8/tYMwdatAmkfwBUEShKsBh8tV1lvOYvzbt+7WvWITniZlfFSmpSUmH4jda005x8UJUVdpY35BqbZDCAqCJQlCDRsp21SRf+1ZYzbCpr/mJLYKpZyF1G3ARVFbDuzaZfu+l9u5o4L7jKWRWBogSNvFvhWDkUz2vadQe22jj1vJvVLOQ2PcZAZj9Y/lLTr135MrTKtP6fgKKKQFGCxqDJ1ia95I9Nu27JH0FSYfRd3siVzIjAmHth++dQurbx1x0usbOIUXdAagvPxIsVVQSKEjRS0+D8qTYdwf4tjbvm9AlY/qK1Q7fv7q18ycqouyC1JRQ0QUEvfd6mGB97n2diuYEqAkUJImOm2oRnn/+mce1X/AlOHIBx07yVK5lp09ma3Zb/yS7aa4iKY3aWNnCSNSsFGFUEihJE2neH8++GZS82nOfm9En45H9sgfo+F8VHvmTlS/8CVacap6AXT7drBy7+vvdyxYgqAkUJKhd9z24//Fn97ZY8DUdK4Mv/pk5ir+ncH/JugcXPwIFtdbc7vh8++7VdSdwreCklaqKKQFGCSsdecME/2qiTTR/W3ubgdvjwv+wDJ0DF0BOay35o1xa89T1b96E23vuhzTZ6xWNxFa25xKQIROQWESkUkWoRya+n3WQR2SAixSLySNTxviKyyDk+S0TSY5FHURKOS/4VMvvDa9+0ESjRnD4Bs6faWcC1v/JHvmSkYy+4/EfWmb/g/517fsXLsOIluPC70HVE/OVrBrHOCNYAXwPqLLYqIqnAb4GrgWHA7SIyzDn9c+AJY8wA4AAQbNe6osSbFq3g1hfg1BF4/hrYvdIeP7gDXroJSpbB16ZDx1x/5Uw2xj4Aw663b/4f/xIqT9nEcouegte/besdf/nf/Jay0cRaqnIdgNRvlxwHFBtjNjttZwLXi8g64DLgDqfdDOAx4PexyKQoCUfXEXDXqzDrTnjqYmjX3VYfS20BN/3Rhowq8SUlBW6cbrPFfvhT6zxOSbWRWwOugFueD/S6gZrEIx9qDyA67GEnMB7oDBw0xlRGHT+nrnEEEZkGTAPIzdW3HyXJyB0PDy2BZS/YBU0dc+H8e6yZQvGHFhlw0zN2sdj6t2yOp4GTYMi1oXPaN6gIRGQ+0LWWUz8wxrzuvki1Y4yZDkwHyM/Pr8NDoygJTKtO1u6sBAcRGHC5/YSYBhWBMeaKGMfYBUS/tvR0ju0DOopImjMriBxXFEVR4kg8wkeXAAOdCKF0YAow1xhjgA+BSEq+qUDcZhiKoiiKJdbw0RtFZCcwEXhLRN51jncXkbcBnLf9h4B3gXXAbGNModPFw8D3RKQY6zNoYpYtRVEUJVbE1LUgIsDk5+ebgoICv8VQFEUJFSKy1BhzzpovXVmsKIqS5KgiUBRFSXJUESiKoiQ5qggURVGSnFA6i0WkHKgnB2y9dAH2uihOGNB7Tg70nhOfWO+3tzEmq+bBUCqCWBCRgtq85omM3nNyoPec+Hh1v2oaUhRFSXJUESiKoiQ5yagIpvstgA/oPScHes+Jjyf3m3Q+AkVRFOWLJOOMQFEURYlCFYGiKEqSk1CKQEQmi8gGESkWkUdqOd9SRGY55xeJSJ+oc486xzeIyFVxFbyZNPd+RWSSiCwVkdXO9rK4C99MYvmNnfO5InJURP5P3ISOkRj/X48UkQUiUuj83hlxFb6ZxPB/u4WIzHDudZ2IPBp34ZtJI+75YhFZJiKVInJzjXNTRaTI+Uxt8uDGmIT4AKnAJqAfkA6sBIbVaPMt4A/O/hRglrM/zGnfEujr9JPq9z15eL+jge7O/ghgl9/34/U9R52fA7wC/B+/7ycOv3MasAo4z/neOej/r1245zuAmc5+a2Ar0Mfve3LpnvsAI4EXgJujjmcCm51tJ2e/U1PGT6QZwTig2Biz2RhTAcwErq/R5npghrM/B7hcRMQ5PtMYc8oYswUodvoLMs2+X2PMcmNMiXO8EGglIi3jInVsxPIbIyI3AFuw9xwWYrnnK4FVxpiVAMaYfcaYqjjJHQux3LMB2ohIGtAKqAAOx0fsmGjwno0xW40xq4DqGtdeBcwzxuw3xhwA5gGTmzJ4IimCHsCOqO87nWO1tjG2YM4h7FtSY64NGrHcbzQ3AcuMMac8ktNNmn3PItIWWwjpP+Igp5vE8jsPAoyIvOuYFP41DvK6QSz3PAc4BuwGtgP/bYzZ77XALhDLMyjm51eDNYuVxEVEhgM/x745JjqPAU8YY446E4RkIA24CBgLHAfedwqTvO+vWJ4yDqgCumPNJH8XkfnGmM3+ihVsEmlGsAvoFfW9p3Os1jbO1LEDsK+R1waNWO4XEekJ/BW4xxizyXNp3SGWex4P/EJEtgL/BPybiDzksbxuEMs97wQ+McbsNcYcB94Gzvdc4tiJ5Z7vAN4xxpw2xpQBnwFhyEUUyzMo9ueX304SF50taVgnSV/OOluG12jzbb7oYJrt7A/ni87izQTcqRbj/XZ02n/N7/uI1z3XaPMY4XEWx/I7dwKWYZ2macB84Bq/78nje34YeM7ZbwOsBUb6fU9u3HNU2+c511m8xfm9Ozn7mU0a3+9/AJf/Mb8CbMR633/gHPsJcJ2zn4GNGCkGFgP9oq79gXPdBuBqv+/Fy/sF/h1rR10R9cn2+368/o2j+giNIoj1noG7sM7xNcAv/L4Xr+8ZaOscL3SUwPf9vhcX73ksdpZ3DDv7KYy69hvOv0Ux8PWmjq0pJhRFUZKcRPIRKIqiKM1AFYGiKEqSo4pAURQlyVFFoCiKkuSoIlAURUlyVBEoiqIkOaoIFEVRkpz/D6Xje5gjPs+cAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ratio = 2\n", + "first = 1\n", + "(length,) = x.shape\n", + "slop = int(length/6)\n", + "second = ratio-first\n", + "odd = ratio % 2\n", + "\n", + "first = int(first * length/ratio) + odd\n", + "second = int( second * length/ratio)\n", + "slop = np.array(np.append(np.zeros(first-slop) , (np.arange(slop))/slop))\n", + "#steep = np.ones(int(first * length/ratio)+ odd) - np.exp(-np.arange(int(first * length/ratio) + odd)/200)\n", + "steep = (np.ones(first) + slop)*0.5\n", + "\n", + "step = np.append(steep, np.ones(second))\n", + "m = np.sin(30 * 2.0 * np.pi * x) * step \n", + "plt.plot(x, step, '-')\n", + "plt.plot(x, m, '-')" + ] } ], "metadata": { -- cgit v1.2.1 From 84e6c11fada0cb616111c3001acbe1abc585b213 Mon Sep 17 00:00:00 2001 From: haddoucher Date: Tue, 16 Aug 2022 13:14:16 +0200 Subject: tscheby kapitel Randbedingungen --- buch/chapters/010-potenzen/tschebyscheff.tex | 3 ++- .../sturmliouville/tschebyscheff_beispiel.tex | 23 ++++++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/buch/chapters/010-potenzen/tschebyscheff.tex b/buch/chapters/010-potenzen/tschebyscheff.tex index ccc2e97..6d21a68 100644 --- a/buch/chapters/010-potenzen/tschebyscheff.tex +++ b/buch/chapters/010-potenzen/tschebyscheff.tex @@ -102,7 +102,7 @@ die Sütztstellen so zu wählen, dass $l(x)$ kleine Funktionswerte hat. Stützstellen in gleichen Abständen erweisen sich dafür als ungeeignet, da $l(x)$ nahe $x_0$ und $x_n$ sehr stark oszilliert. -\subsection{Definition der Tschebyscheff-Polynome} +\subsection{Definition der Tschebyscheff-Polynome \label{sub:definiton_der_tschebyscheff-Polynome}} \begin{figure} \centering \includegraphics[width=\textwidth]{chapters/010-potenzen/images/lissajous.pdf} @@ -199,6 +199,7 @@ T_0(x)=1. \end{equation} Damit können die Tschebyscheff-Polynome sehr effizient berechnet werden: \begin{equation} +\label{eq:tschebyscheff-polynome} \begin{aligned} T_0(x) &=1 diff --git a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex index 391841a..d441795 100644 --- a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex +++ b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex @@ -27,7 +27,7 @@ Für $x>1$ und $x<-1$ sehen die Polynome wie folgt aus: T_n(x) = \left\{\begin{array}{ll} \cosh (n \arccos x), & x > 1\\ (-1)^n \cosh (n \arccos (-x)), & x<-1 \end{array}\right. \end{equation}, -jedoch ist die Orthogonalität nur auf dem Intervall $\[ -1, 1\]$ sichergestellt. +jedoch ist die Orthogonalität nur auf dem Intervall $[\-1, 1 ]\ $ sichergestellt. Die nächste Bedingung beinhaltet, dass die Funktion $p(x)^-1$ und $w(x)>0$ sein müssen. Die Funktion \begin{equation*} @@ -36,14 +36,29 @@ Die Funktion ist die gleiche wie $w(x)$. Für die Verifizierung der Randbedingungen benötigt man erneut $p(x)$. -Da sich die Polynome nur auf dem Intervall $\[ -1,1 \]$ orthogonal verhalten, sind $a = -1$ und $b = 1$ gesetzt. +Da sich die Polynome nur auf dem Intervall $[\-1, 1 ]\ $ orthogonal verhalten, sind $a = -1$ und $b = 1$ gesetzt. Beim einsetzen in die Randbedingung \ref{eq:randbedingungen}, erhält man \begin{equation} \begin{aligned} - k_a y(-1) + h_a y'(-1) &= h_a + k_a y(-1) + h_a y'(-1) &= 0 + k_b y(-1) + h_b y'(-1) &= 0 \end{aligned} -\end{equation} +\end{equation}. +Die Funktion $y(x)$ und $y'(x)$ sind in diesem Fall die Tschebyscheff Polynome (siehe \label{sub:definiton_der_tschebyscheff-Polynome}). +Es gibt zwei Arten von Tschebyscheff Polynome: die erste Art $T_n(x)$ und die zweite Art $U_n(x)$. +Jedoch beachtet man in diesem Kapitel nur die Tschebyscheff Polynome erster Art (\ref{eq:tschebyscheff-polynome}). +Die Funktion $y(x)$ wird nun mit der Funktion $T_n(x)$ ersetzt und für die Verifizierung der Randbedingung wählt man $n=2$. +Somit erhält man +\begin{equation} + \begin{aligned} + k_a T_2(-1) + h_a T_{2}'(-1) &= k_a = 0\\ + k_b T_2(1) + h_b T_{2}'(1) &= k_b = 0 +\end{aligned} +\end{equation}. +Ähnlich wie beim Beispiel der Wärmeleitung in einem homogenen Stab kann man, damit die Bedingung $|k_i|^2 + |h_i|^2\ne 0$ erfüllt ist, können beliebige $h_a \ne 0$ und $h_b \ne 0$ gewählt werden. +Somit ist erneut gezeigt, dass die Randbedingungen der Tschebyscheff-Polynome auf die Sturm-Liouville-Randbedingungen erfüllt und alle daraus resultierenden Lösungen orthogonal sind. + -- cgit v1.2.1 From 787bb84a7cf4f176472bdea001e59eda92469fb3 Mon Sep 17 00:00:00 2001 From: haddoucher Date: Tue, 16 Aug 2022 13:59:51 +0200 Subject: Update tschebyscheff_beispiel.tex --- buch/papers/sturmliouville/tschebyscheff_beispiel.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex index d441795..fb0194b 100644 --- a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex +++ b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex @@ -56,8 +56,8 @@ Somit erhält man \end{aligned} \end{equation}. Ähnlich wie beim Beispiel der Wärmeleitung in einem homogenen Stab kann man, damit die Bedingung $|k_i|^2 + |h_i|^2\ne 0$ erfüllt ist, können beliebige $h_a \ne 0$ und $h_b \ne 0$ gewählt werden. - Somit ist erneut gezeigt, dass die Randbedingungen der Tschebyscheff-Polynome auf die Sturm-Liouville-Randbedingungen erfüllt und alle daraus resultierenden Lösungen orthogonal sind. + -- cgit v1.2.1 From f7c0dfbd20c97ae0e617aec796f2adc6d81369dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Tue, 16 Aug 2022 14:20:30 +0200 Subject: Merged tschebyscheff section. --- buch/chapters/010-potenzen/tschebyscheff.tex | 3 ++- .../sturmliouville/tschebyscheff_beispiel.tex | 23 ++++++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/buch/chapters/010-potenzen/tschebyscheff.tex b/buch/chapters/010-potenzen/tschebyscheff.tex index ccc2e97..6d21a68 100644 --- a/buch/chapters/010-potenzen/tschebyscheff.tex +++ b/buch/chapters/010-potenzen/tschebyscheff.tex @@ -102,7 +102,7 @@ die Sütztstellen so zu wählen, dass $l(x)$ kleine Funktionswerte hat. Stützstellen in gleichen Abständen erweisen sich dafür als ungeeignet, da $l(x)$ nahe $x_0$ und $x_n$ sehr stark oszilliert. -\subsection{Definition der Tschebyscheff-Polynome} +\subsection{Definition der Tschebyscheff-Polynome \label{sub:definiton_der_tschebyscheff-Polynome}} \begin{figure} \centering \includegraphics[width=\textwidth]{chapters/010-potenzen/images/lissajous.pdf} @@ -199,6 +199,7 @@ T_0(x)=1. \end{equation} Damit können die Tschebyscheff-Polynome sehr effizient berechnet werden: \begin{equation} +\label{eq:tschebyscheff-polynome} \begin{aligned} T_0(x) &=1 diff --git a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex index 8561479..a18684f 100644 --- a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex +++ b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex @@ -28,10 +28,10 @@ Für $x>1$ und $x<-1$ sehen die Polynome wie folgt aus: (-1)^n \cosh (n \arccos (-x)), & x<-1 \end{array}\right. \end{equation}, jedoch ist die Orthogonalität nur auf dem Intervall $[ -1, 1]$ sichergestellt. -Die nächste Bedingung beinhaltet, dass die Funktion $p(x)^-1$ und $w(x)>0$ sein müssen. +Die nächste Bedingung beinhaltet, dass die Funktion $p(x)^{-1}$ und $w(x)>0$ sein müssen. Die Funktion \begin{equation*} - p(x)^-1 = \frac{1}{\sqrt{1-x^2}} + p(x)^{-1} = \frac{1}{\sqrt{1-x^2}} \end{equation*} ist die gleiche wie $w(x)$. @@ -40,10 +40,25 @@ Da sich die Polynome nur auf dem Intervall $[ -1,1 ]$ orthogonal verhalten, sind Beim einsetzen in die Randbedingung \ref{eq:randbedingungen}, erhält man \begin{equation} \begin{aligned} - k_a y(-1) + h_a y'(-1) &= h_a + k_a y(-1) + h_a y'(-1) &= 0 + k_b y(-1) + h_b y'(-1) &= 0 \end{aligned} -\end{equation} +\end{equation}. +Die Funktion $y(x)$ und $y'(x)$ sind in diesem Fall die Tschebyscheff Polynome (siehe \label{sub:definiton_der_tschebyscheff-Polynome}). +Es gibt zwei Arten von Tschebyscheff Polynome: die erste Art $T_n(x)$ und die zweite Art $U_n(x)$. +Jedoch beachtet man in diesem Kapitel nur die Tschebyscheff Polynome erster Art (\ref{eq:tschebyscheff-polynome}). +Die Funktion $y(x)$ wird nun mit der Funktion $T_n(x)$ ersetzt und für die Verifizierung der Randbedingung wählt man $n=2$. +Somit erhält man +\begin{equation} + \begin{aligned} + k_a T_2(-1) + h_a T_{2}'(-1) &= k_a = 0\\ + k_b T_2(1) + h_b T_{2}'(1) &= k_b = 0 +\end{aligned} +\end{equation}. +Ähnlich wie beim Beispiel der Wärmeleitung in einem homogenen Stab kann man, damit die Bedingung $|k_i|^2 + |h_i|^2\ne 0$ erfüllt ist, können beliebige $h_a \ne 0$ und $h_b \ne 0$ gewählt werden. +Somit ist erneut gezeigt, dass die Randbedingungen der Tschebyscheff-Polynome auf die Sturm-Liouville-Randbedingungen erfüllt und alle daraus resultierenden Lösungen orthogonal sind. + -- cgit v1.2.1 From b31c40a22e885205373ff1a3284935d544c99889 Mon Sep 17 00:00:00 2001 From: canuel Date: Tue, 16 Aug 2022 14:32:49 +0200 Subject: started the chapter about spherical harmonics (more specific about the derivation of them) --- buch/papers/kugel/packages.tex | 2 +- buch/papers/kugel/spherical-harmonics.tex | 387 +++++++++++++++++++++++++++++- 2 files changed, 387 insertions(+), 2 deletions(-) diff --git a/buch/papers/kugel/packages.tex b/buch/papers/kugel/packages.tex index 61f91ad..1c4f3e0 100644 --- a/buch/papers/kugel/packages.tex +++ b/buch/papers/kugel/packages.tex @@ -7,4 +7,4 @@ % if your paper needs special packages, add package commands as in the % following example %\usepackage{packagename} - +\usepackage{cases} diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index 6b23ce5..c76e757 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -1,9 +1,394 @@ % vim:ts=2 sw=2 et spell: \section{Spherical Harmonics} +We finally arrived at the main section, which gives our chapter its name. The idea is to discuss spherical harmonics, their mathematical derivation and some of their properties and applications.\newline +The subsection \ref{} will be devoted to the Eigenvalue problem of the Laplace operator. Through the latter, we will derive the set of Eigenfunctions that obey the equation presented in \ref{}[TODO: reference to eigenvalue equation], which will be defined as \emph{Spherical Harmonics}. In fact, this subsection will present their mathematical derivation.\newline +In the subsection \ref{}, on the other hand, some interesting properties related to them will be discussed. Some of these will come back to help us understand in more detail why they are useful in various real-world applications, which will be presented in the section \ref{}.\newline +One specific property will be studied in more detail in the subsection \ref{}, namely the recursive property. +The last subsection is devoted to one of the most beautiful applications (In our humble opinion), namely the derivation of a Fourier-style series expansion but defined on the sphere instead of a plane.\newline +More importantly, this subsection will allow us to connect all the dots we have created with the previous sections, concluding that Fourier is just a specific case of the application of the concept of orthogonality.\newline +Our hope is that after reading this section you will appreciate the beauty and power of generalization that mathematics offers us. -\subsection{Eigenvalue Problem in Spherical Coordinates} +\subsection{Eigenvalue Problem on the Spherical surface} +\subsubsection{Unormalized Spherical Harmonics} +From the chapter \ref{}, we know that the spherical Laplacian is defined as. \begin{equation*} + \nabla^2_S := \frac{1}{r^2} \frac{\partial}{\partial r} \left( r^2 \frac{\partial}{\partial r} \right) + \frac{1}{r^2} + \left[ + \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( \sin\vartheta \frac{\partial}{\partial\vartheta} \right) + + \frac{1}{\sin^2 \vartheta} \frac{\partial^2}{\partial\varphi^2} + \right] +\end{equation*} +But we do not want to consider this algebraic monster entirely, since this includes the whole set $\mathbb{R}^3$; rather, we want to focus only on the spherical surface (as the title suggests). We can then further concretise our calculations by selecting any number for the variable $r$, so that we have a sphere and, more importantly, a spherical surface on which we can ``play''.\newline +Surely you have already heard of the unit circle, a geometric entity used extensively in many mathematical contexts. The most famous and basic among them is surely trigonometry.\newline +Extending this concept into three dimensions, we will talk about the unit sphere. This is a very famous sphere, as is the unit circle. So since we need a sphere why not use the most famous one? Thus imposing $r=1$.\newline +Now, since the variable $r$ became a constant, we can leave out all derivatives with respect to $r$, setting them to zero. Then substituting the value of $r$ for 1, we will obtain the operator we will refer to as \emph{Spherical Surface Operator}: +\begin{equation*} + \nabla^2_{\partial S} := \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( \sin\vartheta \frac{\partial}{\partial\vartheta} \right) + + \frac{1}{\sin^2 \vartheta} \frac{\partial^2}{\partial\varphi^2}. +\end{equation*} +As can be seen, for this definition, the subscript ``$\partial S$'' was used to emphasize the fact that we are on the spherical surface, which can be understood as a boundary of the sphere.\newline +Now that we have defined an operator, we can go on to calculate its eigenfunctions. As mentioned earlier, we can translate this problem at first abstract into a much more concrete problem, which has to do with the field of \emph{Partial Differential Equaitons} (PDEs). The functions we want to find are simply functions that respect the following expression: +\begin{equation}\label{kugel:eq:sph_srfc_laplace} + \nabla^2_{\partial S} f = \lambda f +\end{equation} +Which is traditionally written as follows: +\begin{equation*} + \nabla^2_{\partial S} f = -\lambda f +\end{equation*} +Perhaps the fact that we are dealing with a PDE may not be obvious at first glance, but if we extend the operator $\nabla^2_{\partial S}$ according to Eq.(\ref{kugel:eq:sph_srfc_laplace}), we will get: +\begin{equation}\label{kugel:eq:PDE_sph} + \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( \sin\vartheta \frac{\partial f}{\partial\vartheta} \right) + + \frac{1}{\sin^2 \vartheta} \frac{\partial^2 f}{\partial\varphi^2} + \lambda f = 0, +\end{equation} +making it emerge.\newline +All functions satisfying Eq.(\ref{kugel:eq:PDE_sph}), are called eigenfunctions. Our new goal is therefore to solve this PDE. The task seems very difficult but we can simplify it with a well-known technique, namely the \emph{separation Ansatz}. The latter consists in assuming that the function $f(\vartheta, \varphi)$ we are looking for can be factorized in the following form +\begin{equation}\label{kugel:eq:sep_ansatz_0} + f(\vartheta, \varphi) = \Theta(\vartheta)\Phi(\varphi). +\end{equation} +In short, we are saying that the effect of the two independent variables can be described using the multiplication of two functions that describe their effect separately. If we include this assumption in Eq.(\ref{kugel:eq:PDE_sph}), we have: +\begin{equation} + \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( \sin\vartheta \frac{\partial \Theta(\vartheta)}{\partial\vartheta} \right)\Phi(\varphi) + + \frac{1}{\sin^2 \vartheta} \frac{\partial^2 \Phi(\varphi)}{\partial\varphi^2} \Theta(\vartheta) + \lambda \Theta(\vartheta)\Phi(\varphi) = 0. \label{kugel:eq:sep_ansatz_1} +\end{equation} +Dividing Eq.(\ref{kugel:eq:sep_ansatz_1}) by $\Theta(\vartheta)\Phi(\varphi)$ and inserting an auxiliary variable $m$, which we will call the separating constant, we will have: +\begin{equation*} +\frac{1}{\Theta(\vartheta)}\sin \vartheta \frac{d}{d \vartheta} \left( \sin \vartheta \frac{d \Theta}{d \vartheta} \right) + \lambda \sin^2 \vartheta = -\frac{1}{\Phi(\varphi)} \frac{d^2\Phi(\varphi)}{d\varphi^2} = m, +\end{equation*} +which is equivalent to the following system of two \emph{Ordinary Differential Equations} (ODEs) +\begin{align} + \frac{d^2\Phi(\varphi)}{d\varphi^2} &= -m \Phi(\varphi) \label{kugel:eq:ODE_1} \\ + \sin \vartheta \frac{d}{d \vartheta} \left( \sin \vartheta \frac{d \Theta}{d \vartheta} \right) + \left( \lambda - \frac{m}{\sin^2 \vartheta} \right)\Theta(\vartheta) &= 0 \label{kugel:eq:ODE_2} +\end{align} +The solution of Eq.(\ref{kugel:eq:ODE_1}) is quite trivial. The complex exponential is obviously the function we are looking for, so we can write +\begin{equation*} + \Phi_m(\varphi) = e^{j m \varphi}, \quad m \in \mathbb{Z}. +\end{equation*} +The restriction for the separation constant $m$ arises from the fact that we require the following periodic constraint $\Phi_m(\varphi + 2\pi) = \Phi_m(\varphi)$.\newline +As for Eq.(\ref{kugel:eq:ODE_2}), the resolution will not be so straightforward. We can begin by considering the substitution $x = \cos \vartheta$. The operator $\frac{d}{d \vartheta}$ will be: +\begin{align*} + \frac{d}{d \vartheta} = \frac{dx}{d \vartheta}\frac{d}{dx} &= -\sin \vartheta \frac{d}{dx} \\ + &= -\sqrt{1-x^2} \frac{d}{dx}. +\end{align*} +Eq.(\ref{kugel:eq:ODE_2}) will then become. +\begin{align*} + \frac{-\sqrt{1-x^2}}{\sqrt{1-x^2}} \frac{d}{dx} \left( \left(\sqrt{1-x^2}\right) \left(-\sqrt{1-x^2}\right) \frac{d \Theta}{dx} \right) + \left( \lambda - \frac{m}{\sin^2 \vartheta} \right)\Theta(\vartheta) &= 0 \\ + \frac{d}{dx} \left( (1-x^2) \frac{d \Theta}{dx} \right) + \left( \lambda - \frac{m}{\sin^2 \vartheta} \right)\Theta(\vartheta) &= 0 \\ + (1-x^2)\frac{d^2 \Theta}{dx} - 2x\frac{d \Theta}{dx} + \left( \lambda - \frac{m}{\sin^2 \vartheta} \right)\Theta(\vartheta) &= 0 \\ + (1-x^2)\frac{d^2 \Theta}{dx} - 2x\frac{d \Theta}{dx} + \left( \lambda - \frac{m}{1-x^2} \right)\Theta(\vartheta) &= 0 +\end{align*} +By making two final cosmetic substitutions, namely $\Theta(\vartheta)=\Theta(\cos^{-1}x):=y(x)$ and $\lambda=n(n+1)$, we will be able to define the \emph{Associated Legendre Equation} in its standard and most familiar form +\begin{definition}{Associated Legendre Equation} + \begin{equation}\label{kugel:eq:associated_leg_eq} + (1-x^2)\frac{d^2 y}{dx} - 2x\frac{d y}{dx} + \left( n(n+1) - \frac{m}{1-x^2} \right)y(x) = 0. + \end{equation} +\end{definition} +Our new goal then became solving Eq.(\ref{kugel:eq:asssociated_leg_eq}). After that we can fit the solution into Eq.(\ref{kugel:eq:sep_ansatz_0}), obtaining $f(\vartheta, \varphi)$, the solution of the eigenvalue problem. \newline +We simplified the problem somewhat but the task still remains very difficult. We can rely on a lemma to continue but first we need to define an additional equation, namely the \emph{Legendre Equation} +\begin{definition}{Legendre equation}\newline + Setting $m=0$ in Eq.(\ref{kugel:eq:asssociated_leg_eq}), we get + \begin{equation}\label{kugel:eq:leg_eq} + (1-x^2)\frac{d^2 y}{dx} - 2x\frac{d y}{dx} + n(n+1)y(x) = 0, + \end{equation} + also known as \emph{Legendre Equation}. +\end{definition} +Now we can continue with the lemma +\begin{lemma}\label{kugel:lemma_1} + If $y_n(x)$ is a solution of Eq.(\ref{kugel:eq:leg_eq}), then the function + \begin{equation*} + y_{m,n}(x) = (1-x^2)^{\frac{m}{2}}\frac{d^m}{dx^m}y_n(x) + \end{equation*} + satisfies Eq.(\ref{kugel:eq:associated_leg_eq}) +\end{lemma} +\begin{proof} [TODO: modificare la $m$ (è già usata come costante di separazione) o forse è giusta (?)] + To begin, we can start by differentiating $m$ times Eq.\eqref{kugel:eq:leg_eq} (which is staisfied by $y(x)$), obtaining + \begin{equation}\label{eq:lagrange_mderiv} + \frac{d^m}{dx^m}\left[ (1-x^2)\frac{d^2y}{dx^2} \right] -2 \frac{d^m}{dx^m}\left[ x\frac{dy}{dx} \right] + n(n+1)\frac{d^m}{dx^m}y=0. + \end{equation} + \emph{Leibniz's theorem} says, that if we want to differentiate $m$ times a multiplication of two functions, we can use the binomial coefficients to build up a sum. This allows us to be more compact, obtaining + \begin{equation}\label{eq:leibniz} + \frac{d^m}{dx^m}[u(x)v(x)] = \sum_{i=0}^m \binom{n}{i} \frac{d^{m-i}u}{dx^{m-1}} \frac{d^{i}v}{dx^i}. + \end{equation} + Using Eq.\eqref{eq:leibniz} in Eq.\eqref{eq:lagrange_mderiv}, we have + \begin{align} + (1-x^2)\frac{d^{m+2}y}{dx^{m+2}} &+ m \frac{d}{dx}(1-x^2)\frac{d^{m+1}y}{dx^{m+1}} + \frac{m(m-1)}{2}\frac{d^{2}}{dx^{2}}(1-x^2)\frac{d^{m}y}{dx^{m}} + n(n+1)\frac{d^m{}y}{dx^{m}} \nonumber \\ + &-2\left(x\frac{d^{m+1}y}{dx^{m+1}} + m\frac{d}{dx}x\frac{d^{m}y}{dx^{m}} \right) \nonumber \\ + &= (1-x^2)\frac{d^{m+2}y}{dx^{m+2}} -2x(m+1)\frac{d^{m+1}y}{dx^{m+1}}+(n(n+1)-m(m-1)-2m)\frac{d^{m}y}{dx^{m}}=0. \label{eq:aux_3} + \end{align} + To make the notation easier to follow, a new function can be defined + \begin{equation*} + \frac{d^{m}y}{dx^{m}} := y_m. + \end{equation*} + Eq.\eqref{eq:aux_3} now becomes + \begin{equation}\label{eq:1st_subs} + (1-x^2)\frac{d^{2}y_m}{dx^{2}} -2x(m+1)\frac{dy_m}{dx}+(n(n+1)-m(m+1))y_m=0 + \end{equation} + A second function can be further defined as + \begin{equation*} + (1-x^2)^{\frac{m}{2}}\frac{d^{m}y}{dx^{m}} = (1-x^2)^{\frac{m}{2}}y_m := \hat{y}_m, + \end{equation*} + allowing to write Eq.\eqref{eq:1st_subs} as + \begin{equation}\label{eq:2st_subs} + (1-x^2)\frac{d^2}{dx^2}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] -2(m+1)x\frac{d}{dx}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] + (n(n+1)-m(m+1))\hat{y}_m(1-x^2)^{-\frac{m}{2}}=0. + \end{equation} + The goal now is to compute the two terms + \begin{align*} + \frac{d^2}{dx^2}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] &= \frac{d^2\hat{y}_m}{dx^2} (1-x^2)^{-\frac{m}{2}} + \frac{d\hat{y}_m}{dx}\frac{m}{2}(1-x^2)^{-\frac{m}{2}-1}2x \\ + &+ m\left( \frac{d\hat{y}_m}{dx} x (1-x^2)^{-\frac{m}{2}-1} + \hat{y}_m (1-x^2)^{-\frac{m}{2}-1} - \hat{y}_m x (-\frac{m}{2}-1)(1-x^2)^{-\frac{m}{2}} 2x\right) \\ + &= \frac{d^2\hat{y}_m}{dx^2} (1-x^2)^{-\frac{m}{2}} + \frac{d\hat{y}_m}{dx}mx (1-x^2)^{-\frac{m}{2}-1} + m\frac{d\hat{y}_m}{dx}x (1-x^2)^{-\frac{m}{2}-1}\\ + &+ m\hat{y}_m (1-x^2)^{-\frac{m}{2}-1} + m\hat{y}_m x^2(m+2)(1-x^2)^{-\frac{m}{2}-2} + \end{align*} + and + \begin{align*} + \frac{d}{dx}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] &= \frac{d\hat{y}_m}{dx}(1-x^2)^{-\frac{m}{2}} + \hat{y}_m\frac{m}{2}(1-x^2)^{-\frac{m}{2}-1}2x \\ + &= \frac{d\hat{y}_m}{dx}(1-x^2)^{-\frac{m}{2}} + \hat{y}_mm(1-x^2)^{-\frac{m}{2}-1}x, + \end{align*} + to use them in Eq.\eqref{eq:2st_subs}, obtaining + \begin{align*} + (1-x^2)\biggl[\frac{d^2\hat{y}_m}{dx^2} (1-x^2)^{-\frac{m}{2}} &+ \frac{d\hat{y}_m}{dx}mx (1-x^2)^{-\frac{m}{2}-1} + m\frac{d\hat{y}_m}{dx}x (1-x^2)^{-\frac{m}{2}-1} \\ + &+ m\hat{y}_m (1-x^2)^{-\frac{m}{2}-1} + m\hat{y}_m x^2(m+2)(1-x^2)^{-\frac{m}{2}-2}\biggr] \\ + &-2(m+1)x\left[ \frac{d\hat{y}_m}{dx}(1-x^2)^{-\frac{m}{2}} + \hat{y}_mm(1-x^2)^{-\frac{m}{2}-1}x \right] \\ + &+ (n(n+1)-m(m+1))\hat{y}_m(1-x^2)^{-\frac{m}{2}}=0.\\ + \end{align*} + We can now divide by $(1-x^2)^{-\frac{m}{2}}$, obtaining + \begin{align*} + (1-x^2)\biggl[\frac{d^2\hat{y}_m}{dx^2} &+ \frac{d\hat{y}_m}{dx}mx (1-x^2)^{-1} + m\frac{d\hat{y}_m}{dx}x (1-x^2)^{-1} + m\hat{y}_m (1-x^2)^{-1} + m\hat{y}_m x^2(m+2)(1-x^2)^{-2}\biggr] \\ + &-2(m+1)x\left[ \frac{d\hat{y}_m}{dx} + \hat{y}_mm(1-x^2)^{-1}x \right] + (n(n+1)-m(m+1))\hat{y}_m\\ + &= \frac{d^2\hat{y}_m}{dx^2} + \frac{d\hat{y}_m}{dx}mx + m\frac{d\hat{y}_m}{dx}x + m\hat{y}_m + m\hat{y}_m x^2(m+2)(1-x^2)^{-1} \\ + &-2(m+1)x\left[ \frac{d\hat{y}_m}{dx} + \hat{y}_mm(1-x^2)^{-1}x \right] + (n(n+1)-m(m+1))\hat{y}_m\\ + \end{align*} + and collecting some terms + \begin{equation*} + (1-x^2)\frac{d^2\hat{y}_m}{dx^2} - 2x\frac{d\hat{y}_m}{dx} + \left( -x^2 \frac{m^2}{1-x^2} + m+n(n+1)-m(m+1)\right)\hat{y}_m=0. + \end{equation*} + Showing that + \begin{align*} + -x^2 \frac{m^2}{1-x^2} + m+n(n+1)-m(m+1) &= n(n+1)- m^2 -x^2 \frac{m^2}{1-x^2} \\ + &= n(n+1)- \frac{m}{1-x^2} + \end{align*} + implies $\hat{y}_m(x)$ being a solution of Eq.\eqref{kugel:eq:associated_leg_eq} +\end{proof} +In simpler words, if we find a solution to Eq.\eqref{kugel:eq:leg_eq}, we can extend the latter according to the Lemma \ref{kugel:lemma_1} obtaining the solution of Eq.\eqref{kugel:eq:associated_leg_eq}.\newline +We can say that we are going in the right direction, as the problem to be solved is decreasing in difficulty. We moved from having to find a solution to Eq.\eqref{kugel:eq:associated_leg_eq} to finding a solution to Eq.\eqref{kugel:eq:leg_eq}, which is much more approachable as a problem. Luckily for us, the lemma we will present below will help us extensively, which is something of an euphemism, since it will give us the solution directly. +\begin{lemma} + The polynomial function + \begin{align*} + y_n(x)&=\sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} (-1)^k \frac{(2n-2k)!}{2^n k! (n-k)!(n-2k)!} x^{n-2k}\\ + &= \frac{1}{n!2^n}\frac{d^n}{dx^n}(1-x^2)^n =: P_n(x), + \end{align*} + is a solution to the second order differential equation + \begin{equation}\label{kugel:eq:sol_leg} + (1-x^2)\frac{d^2y}{dx^2}-2x\frac{dy}{dx} + n(n+1)y=0, \quad \forall n>0. + \end{equation} +\end{lemma} +\begin{proof} + In order to find a solution to Eq.\eqref{eq:legendre}, the following Ansatz can be performed: + \begin{equation}\label{eq:ansatz} + y(x) = \sum_{k=0}^\infty a_k x^k. + \end{equation} + Given Eq.\eqref{eq:ansatz}, then + \begin{align*} + \frac{dy}{dx} &= \sum_{k=0}^\infty k a_k x^{k-1}, \\ + \frac{d^2y}{dx^2} &= \sum_{k=0}^\infty k (k-1) a_k x^{k-2}. + \end{align*} + Eq.\eqref{eq:legendre} can be therefore written as + \begin{align} + &(1-x^2)\sum_{k=0}^\infty k (k-1) a_k x^{k-2} - 2x\sum_{k=0}^\infty k a_k x^{k-1} + n(n+1)\sum_{k=0}^\infty a_k x^k=0 \label{eq:ansatz_in_legendre} \\ + &=\sum_{k=0}^\infty k (k-1) a_k x^{k-2} - \sum_{k=0}^\infty k (k-1) a_k x^{k} - 2x\sum_{k=0}^\infty k a_k x^{k-1} + n(n+1)\sum_{k=0}^\infty a_k x^k=0. \nonumber + \end{align} + If one consider the term + \begin{equation}\label{eq:term} + \sum_{k=0}^\infty k (k-1) a_k x^{k-2}, + \end{equation} + the substitution $\tilde{k}=k-2$ yields Eq.\eqref{eq:term} to + \begin{equation*} + \sum_{\tilde{k}=-2}^\infty (\tilde{k}+2) (\tilde{k}+1) a_{\tilde{k}+2} x^{\tilde{k}}=\sum_{\tilde{k}=0}^\infty (\tilde{k}+2) (\tilde{k}+1) a_{\tilde{k}} x^{\tilde{k}}. + \end{equation*} + This means that Eq.\eqref{eq:ansatz_in_legendre} becomes + \begin{align} + &\sum_{k=0}^\infty (k+1)(k+2) a_{k+2} x^{k} - \sum_{k=0}^\infty k (k-1) a_k x^{k} - 2\sum_{k=0}^\infty k a_k x^k + n(n+1)\sum_{k=0}^\infty a_k x^k \nonumber \\ + = &\sum_{k=0}^\infty \big[ (k+1)(k+2) a_{k+2} - k (k-1) a_k - 2 k a_k + n(n+1) a_k \big] x^k \stackrel{!}{=} 0. \label{eq:condition} + \end{align} + The condition in Eq.\eqref{eq:condition} is equivalent to + \begin{equation}\label{eq:condition_2} + (k+1)(k+2) a_{k+2} - k (k-1) a_k - 2 k a_k + n(n+1) a_k = 0. + \end{equation} + We can derive a recursion formula for $a_{k+2}$ from Eq.\eqref{eq:condition_2}, which can be expressed as + \begin{equation}\label{eq:recursion} + a_{k+2}= \frac{k (k-1) - 2 k + n(n+1)}{(k+1)(k+2)}a_k = \frac{(k-n)(k+n+1)}{(k+2)(k+1)}a_k. + \end{equation} + All coefficients can be calculated using the latter. + + Following Eq.\eqref{eq:recursion}, if we want to compute $a_6$ we would have + \begin{align*} + a_{6}= -\frac{(n-4)(n+5)}{6\cdot 5}a_4 &= -\frac{(n-4)(5+n)}{6 \cdot 5} -\frac{(n-2)(n+3)}{4 \cdot 3} a_2 \\ + &= -\frac{(n-4)(n+5)}{6 \cdot 5} -\frac{(n-2)(n+3)}{4 \cdot 3} -\frac{n(n+1)}{2 \cdot 1} a_0 \\ + &= -\frac{(n+5)(n+3)(n+1)n(n-2)(n-4)}{6!} a_0. + \end{align*} + One can generalize this relation for the $i^\text{th}$ even coefficient as + \begin{equation*} + a_{2k} = (-1)^k \frac{(n+(2k-1))(n+(2k-1)-2)\hdots (n-(2k-2)+2)(n-(2k-2))}{(2k)!}a_0 + \end{equation*} + where $i=2k$. + + A similar expression can be written for the odd coefficients $a_{2k-1}$. In this case, the equation starts from $a_1$ and to find the pattern we can write the recursion for an odd coefficient, $a_7$ for example + \begin{align*} + a_{7}= -\frac{(n-5)(n+6)}{7\cdot 6}a_5 &= - \frac{(n-5)(n+6)}{7\cdot 6} -\frac{(n-3)(n+4)}{5 \cdot 4} a_3 \\ + &= - \frac{(n-5)(n+6)}{7\cdot 6} -\frac{(n-3)(n+4)}{5 \cdot 4} -\frac{(n-1)(n+2)}{3 \cdot 2} a_1 \\ + &= -\frac{(n+6)(n+4)(n+2)(n-1)(n-3)(n-5)}{7!} a_1. + \end{align*} + As before, we can generalize this equation for the $i^\text{th}$ odd coefficient + \begin{equation*} + a_{2k+1} = (-1)^k \frac{(n + 2k)(n+2k-2)\hdots(n-(2k-1)+2)(n-(2k-1))}{(2k+1)!}a_1 + \end{equation*} + where $i=2k+1$. + + Let be + \begin{align*} + y_\text{e}^K(x) &:= \sum_{k=0}^K(-1)^k \frac{(n+(2k-1))(n+(2k-1)-2)\hdots \color{red}(n-(2k-2)+2)(n-(2k-2))}{(2k)!} x^{2k}, \\ + y_\text{o}^K(x) &:= \sum_{k=0}^K(-1)^k \frac{(n + 2k)(n+2k-2)\hdots \color{blue} (n-(2k-1)+2)(n-(2k-1))}{(2k+1)!} x^{2k+1}. + \end{align*} + The solution to the Eq.\eqref{eq:legendre} can be written as + \begin{equation}\label{eq:solution} + y(x) = \lim_{K \to \infty} \left[ a_0 y_\text{e}^K(x) + a_1 y_\text{o}^K(x) \right]. + \end{equation} + + The colored parts can be analyzed separately: + \begin{itemize} + \item[\textcolor{red}{\textbullet}] Suppose that $n=n_0$ is an even number. Then the red part, for a specific value of $k=k_0$, will follow the following relation: + \begin{equation*} + n_0-(2k_0-2)=0. + \end{equation*} + From that point on, given the recursive nature of Eq.\eqref{eq:recursion}, all the subsequent coefficients will also be 0, making the sum finite. + \begin{equation*} + a_{2k}=0 \iff y_{\text{o}}^{2k}(x)=y_{\text{o}}^{2k_0}(x), \quad \forall k>k_0 + \end{equation*} + \item[\textcolor{blue}{\textbullet}] Suppose that $n=n_0$ is an odd number. Then the blue part, for a specific value of $k=k_0$, will follow the following relation + \begin{equation*} + n_0-(2k_0-1)=0. + \end{equation*} + From that point on, for the same reason as before, all the subsequent coefficients will also be 0, making the sum finite. + \begin{equation*} + a_{2k+1}=0 \iff y_{\text{o}}^{2k+1}(x)=y_{\text{o}}^{2k_0+1}(x), \quad \forall k>k_0 + \end{equation*} + \end{itemize} + + There is the possibility of expressing the solution in Eq.\eqref{eq:solution} in a more compact form, combining the two solutions $y_\text{o}^K(x)$ and $y_\text{e}^K(x)$. They are both a polynomial of maximum degree $n$, assuming $n \in \mathbb{N}$. In the case where $n$ is even, the polynomial solution + \begin{equation*} + \lim_{K\to \infty} y_\text{e}^K(x) + \end{equation*} + will be a finite sum. If instead $n$ is odd, will be + \begin{equation*} + \lim_{K\to \infty} y_\text{o}^K(x) + \end{equation*} + to be a finite sum. + + Depending on the coefficient we start with, $a_1$ or $a_0$, we will obtain the odd or even polynomial respectively. Starting with the last coefficient $a_n$ and, recursively, calculating all the others in descending order, we can express the two parts $y_\text{o}^K(x)$ and $y_\text{e}^K(x)$ with a single sum. Hence, because we start with the last coefficient, the choice concerning $a_1$ and $a_0$ will be at the end of the sum, and not at the beginning. To compact Eq.\eqref{eq:solution}, Eq.\eqref{eq:recursion} can be reconsidered to calculate the coefficient $a_{k-2}$, using $a_k$ + \begin{equation*} + a_{k-2} = -\frac{(k+2)(k+1)}{(k-n)(k+n+1)}a_k + \end{equation*} + Now the game is to find a pattern, as before. Remember that $n$ is a fixed parameter of Eq.\eqref{eq:legendre}. + \begin{align*} + a_{n-2} &= -\frac{n(n-1)}{2(2n-1)}a_n, \\ + a_{n-4} &= -\frac{(n-2)(n-3)}{4(2n-3)}a_{n-2} \\ + &= -\frac{(n-2)(n-3)}{4(2n-3)}-\frac{n(n-1)}{2(2n-1)}a_n. + \end{align*} + In general + \begin{equation}\label{eq:general_recursion} + a_{n-2k} = (-1)^k \frac{n(n-1)(n-2)(n-3) \hdots (n-2k+1)}{2\cdot4\hdots 2k(2n-1)(2n-3)\hdots(2n-2k+1)}a_n + \end{equation} + The whole solution can now be written as + \begin{align} + y(x) &= a_n x^n + a_{n-2} x^{n-2} + a_{n-4} x^{n-4} + a_{n-6} x^{n-6} + \hdots + \begin{cases} + a_1 x, \quad &\text{if } n \text{ odd} \\ + a_0, \quad &\text{if } n \text{ even} + \end{cases} \nonumber \\ + &= \sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} a_{n-2k}x^{n-2k} \label{eq:solution_2} + \end{align} + By considering + \begin{align} + (2n-1)(2n-3)\hdots (2n-2k+1)&=\frac{2n(2n-1)(2n-2)(2n-3)\hdots(2n-2k+1)} + {2n(2n-2)(2n-4)(2n-6)\hdots(2n-2k+2)} \nonumber \\ + &=\frac{\frac{(2n)!}{(2n-2k)!}} + {2^kn(n-1)(n-2)(n-3)\hdots(n-k+1)} \nonumber \\ + &=\frac{\frac{(2n)!}{(2n-2k)!}} + {2^k\frac{n!}{(n-k)!}}=\frac{(n-k)!(2n)!}{n!(2n-2k)!2^k} \label{eq:1_sub_recursion}, \\ + 2 \cdot 4 \hdots 2k &= 2^r 1\cdot2 \hdots r = 2^r r!\label{eq:2_sub_recursion}, \\ + n(n-1)(n-2)(n-3) \hdots (n-2k+1) &= \frac{n!}{(n-2k)!}\label{eq:3_sub_recursion}. + \end{align} + Eq.\eqref{eq:solution_2} can be rewritten as + \begin{equation}\label{eq:solution_3} + y(x)=a_n \sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} (-1)^k \frac{n!^2(2n-2k)!}{k!(n-2k)!(n-k)!(2n)!} x^{n-2k}. + \end{equation} + Eq.\eqref{eq:solution_3} is defined for any $a_n$. By letting $a_n$ be declared as + \begin{equation*} + a_{n} := \frac{(2n)!}{2^n n!^2}, + \end{equation*} + the so called \emph{Legendre polynomial} emerges + \begin{equation}\label{eq:leg_poly} + P_n(x):=\sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} (-1)^k \frac{(2n-2k)!}{2^n k! (n-k)!(n-2k)!} x^{n-2k} + \end{equation} +\end{proof} +As can be seen, the solution is a $n$-dependent power series, traditionally denoted as $P_n(x)$. This set of polynomials are called \emph{Legendre Polynomials}, because precisely they are polynomials satisfying the Legendre equation.\newline +Now that we have a solution to Eq.\eqref{kugel:eq:leg_eq}, we can then extend Eq.\eqref{kugel:eq:sol_leg}, as stated in Lemma \ref{kugel:lemma_1}. We will then have +\begin{align*} +y_{m,n}(x) &= (1-x^2)^{\frac{m}{2}}\frac{d^m}{dx^m}P_n(x) \\ +&= \frac{1}{n!2^n}(1-x^2)^{\frac{m}{2}}\frac{d^{m+n}}{dx^{m+n}}(1-x^2)^n +\end{align*} +This set of functions are defined as \emph{Associated Legendre functions}, because similarly to before, they solve the Associated Legendre equation, defined in Eq.\eqref{kugel:eq:eq_leg}. +\begin{definition}{Associated Legendre Functions} +\begin{equation}\label{kugel:eq:associated_leg_func} +P_{m,n}(x) := \frac{1}{n!2^n}(1-x^2)^{\frac{m}{2}}\frac{d^{m+n}}{dx^{m+n}}(1-x^2)^n +\end{equation} +\end{definition} +As you may recall, previously we performed the substitution $x=\cos \vartheta$. Now we need to return to the old domain, which can be done straightforwardly: +\begin{equation*} + \Theta(\vartheta) = P_{m,n}(\cos \vartheta), +\end{equation*} +obtaining the much sought function $\Theta(\vartheta)$. \newline +So we finally reached the end of this tortuous path. Now we just need to put together all the information we have to construct $f(\vartheta, \varphi)$ in the following way: +\begin{equation}\label{kugel:eq:sph_harm_0} + f(\vartheta, \varphi) = \Theta(\vartheta)\Phi(\varphi) = P_{m,n}(\cos \vartheta)e^{jm\varphi}, \quad |m|\leq n. +\end{equation} +The constraint $|m| Date: Tue, 16 Aug 2022 14:39:04 +0200 Subject: removed file. --- .../sturmliouville/tschebyscheff_beispiel.tex | 71 ---------------------- 1 file changed, 71 deletions(-) delete mode 100644 buch/papers/sturmliouville/tschebyscheff_beispiel.tex diff --git a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex deleted file mode 100644 index fb0194b..0000000 --- a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex +++ /dev/null @@ -1,71 +0,0 @@ -% -% tschebyscheff_beispiel.tex -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% - -\subsection{Tschebyscheff-Polynome\label{sub:tschebyscheff-polynome}} -Im Kapitel \ref{sub:beispiele_sturm_liouville_problem} sind die Koeffizientenfunktionen die man braucht schon aufgeliste, und zwar mit -\begin{align*} - w(x) &= \frac{1}{\sqrt{1-x^2}} \\ - p(x) &= \sqrt{1-x^2} \\ - q(x) &= 0 -\end{align*}. -Da die Sturm-Liouville-Gleichung -\begin{equation} - \label{eq:sturm-liouville-equation} - \frac{d}{dx}\lbrack \sqrt{1-x^2} \frac{dy}{dx} \rbrack + \lbrack 0 + \lambda \frac{1}{\sqrt{1-x^2}} \rbrack y = 0 -\end{equation} -nun mit den Koeffizientenfunktionen aufgestellt werden kann, bleibt die Frage, ob es sich um ein reguläres oder singuläres Sturm-Liouville-Problem handelt. -Für das reguläre Problem laut der Definition \ref{def:reguläres_sturm-liouville-problem} muss die funktion $p(x) = \sqrt{1-x^2}$, $p'(x) = -2x$, $q(x) = 0$ und $w(x) = \frac{1}{\sqrt{1-x^2}}$ stetig und reell sein - und sie sind es auch. -Auf dem Intervall $(-1,1)$ sind die Tschebyscheff-Polynome erster Art mit Hilfe von Hyperbelfunktionen -\begin{equation} - T_n(x) = \cos n (\arccos x) -\end{equation}. -Für $x>1$ und $x<-1$ sehen die Polynome wie folgt aus: -\begin{equation} - T_n(x) = \left\{\begin{array}{ll} \cosh (n \arccos x), & x > 1\\ - (-1)^n \cosh (n \arccos (-x)), & x<-1 \end{array}\right. -\end{equation}, -jedoch ist die Orthogonalität nur auf dem Intervall $[\-1, 1 ]\ $ sichergestellt. -Die nächste Bedingung beinhaltet, dass die Funktion $p(x)^-1$ und $w(x)>0$ sein müssen. -Die Funktion -\begin{equation*} - p(x)^-1 = \frac{1}{\sqrt{1-x^2}} -\end{equation*} -ist die gleiche wie $w(x)$. - -Für die Verifizierung der Randbedingungen benötigt man erneut $p(x)$. -Da sich die Polynome nur auf dem Intervall $[\-1, 1 ]\ $ orthogonal verhalten, sind $a = -1$ und $b = 1$ gesetzt. -Beim einsetzen in die Randbedingung \ref{eq:randbedingungen}, erhält man -\begin{equation} -\begin{aligned} - k_a y(-1) + h_a y'(-1) &= 0 - k_b y(-1) + h_b y'(-1) &= 0 -\end{aligned} -\end{equation}. -Die Funktion $y(x)$ und $y'(x)$ sind in diesem Fall die Tschebyscheff Polynome (siehe \label{sub:definiton_der_tschebyscheff-Polynome}). -Es gibt zwei Arten von Tschebyscheff Polynome: die erste Art $T_n(x)$ und die zweite Art $U_n(x)$. -Jedoch beachtet man in diesem Kapitel nur die Tschebyscheff Polynome erster Art (\ref{eq:tschebyscheff-polynome}). -Die Funktion $y(x)$ wird nun mit der Funktion $T_n(x)$ ersetzt und für die Verifizierung der Randbedingung wählt man $n=2$. -Somit erhält man -\begin{equation} - \begin{aligned} - k_a T_2(-1) + h_a T_{2}'(-1) &= k_a = 0\\ - k_b T_2(1) + h_b T_{2}'(1) &= k_b = 0 -\end{aligned} -\end{equation}. -Ähnlich wie beim Beispiel der Wärmeleitung in einem homogenen Stab kann man, damit die Bedingung $|k_i|^2 + |h_i|^2\ne 0$ erfüllt ist, können beliebige $h_a \ne 0$ und $h_b \ne 0$ gewählt werden. -Somit ist erneut gezeigt, dass die Randbedingungen der Tschebyscheff-Polynome auf die Sturm-Liouville-Randbedingungen erfüllt und alle daraus resultierenden Lösungen orthogonal sind. - - - - - - - - - - - - -- cgit v1.2.1 From 9e6c6ea3f67b7bf5c0e90dec1c6dc23303b41167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Tue, 16 Aug 2022 15:32:01 +0200 Subject: Removed unnecessary equation indices. --- buch/papers/sturmliouville/einleitung.tex | 53 ++++++++++++++----------------- 1 file changed, 24 insertions(+), 29 deletions(-) diff --git a/buch/papers/sturmliouville/einleitung.tex b/buch/papers/sturmliouville/einleitung.tex index 78c1800..31256eb 100644 --- a/buch/papers/sturmliouville/einleitung.tex +++ b/buch/papers/sturmliouville/einleitung.tex @@ -6,15 +6,15 @@ \section{Was ist das Sturm-Liouville-Problem\label{sturmliouville:section:teil0}} \rhead{Einleitung} Das Sturm-Liouville-Problem wurde benannt nach dem schweizerisch-französischer Mathematiker und Physiker Jacques Charles Fran\c{c}ois Sturm und dem französischer Mathematiker Joseph Liouville. -Gemeinsam haben sie in der mathematischen Physik die Sturm-Liouville-Theorie entwickelt und gilt für die Lösung von gewohnlichen Differentialgleichungen, jedoch verwendet man die Theorie öfters bei der Lösung von partiellen Differentialgleichungen. -Normalerweise betrachtet man für das Strum-Liouville-Problem eine gewöhnliche Differentialgleichung 2. Ordnung, und wenn es sich um eine partielle Differentialgleichung handelt, kann man sie mit Hilfe einiger Methoden in mehrere gewöhnliche Differentialgleichungen umwandeln, wie z. B. den Separationsansatz, die partielle Differentialgleichung mit mehreren Variablen. +Gemeinsam haben sie in der mathematischen Physik die Sturm-Liouville-Theorie entwickelt, welche für die Lösung von gewohnlichen Differentialgleichungen gilt, jedoch verwendet man die Theorie öfters bei der Lösung von partiellen Differentialgleichungen. +Normalerweise betrachtet man für das Strum-Liouville-Problem eine gewöhnliche Differentialgleichung 2. Ordnung, und wenn es sich um eine partielle Differentialgleichung handelt, kann man sie mit Hilfe einiger Methoden in mehrere gewöhnliche Differentialgleichungen umwandeln, wie zum Beispiel mit dem Separationsansatz. \begin{definition} \index{Sturm-Liouville-Gleichung}% Angenommen man hat die lineare homogene Differentialgleichung -\begin{equation} +\[ \frac{d^2y}{dx^2} + a(x)\frac{dy}{dx} + b(x)y = 0 -\end{equation} +\] und schreibt die Gleichung um in: \begin{equation} \label{eq:sturm-liouville-equation} @@ -23,7 +23,7 @@ und schreibt die Gleichung um in: , diese Gleichung wird dann Sturm-Liouville-Gleichung bezeichnet. \end{definition} -Alle homogene 2.Ordnung lineare gewöhnliche Differentialgleichungen können in die Form der Gleichung \ref{eq:sturm-liouville-equation} umgeformt werden. +Alle homogenen, linearen, gewöhnlichen, Differentialgleichungen 2.Ordnung können in die Form der Gleichung~\eqref{eq:sturm-liouville-equation} gebracht werden. Die Sturm-Liouville-Theorie besagt, dass, wenn man die Sturm-Liouville-Gleichung mit den homogenen Randbedingungen des dritten Typs\footnote{Die Randbedingung des dritten Typs, oder Robin-Randbedingungen (benannt nach dem französischen mathematischen Analytiker und angewandten Mathematiker Victor Gustave Robin), wird genannt, wenn sie einer gewöhnlichen oder partiellen Differentialgleichung auferlegt wird, so sind die Spezifikationen einer Linearkombination der Werte einer Funktion sowie die Werte ihrer Ableitung am Rande des Bereichs} \begin{equation} \begin{aligned} @@ -34,30 +34,30 @@ Die Sturm-Liouville-Theorie besagt, dass, wenn man die Sturm-Liouville-Gleichung \end{equation} kombiniert, wie schon im Kapitel \ref{sub:differentailgleichung} erwähnt, auf dem Intervall (a,b), dann bekommt man das klassische Sturm-Liouville-Problem. Wenn von der Funktion $y(x)$ die Werte $x$ des jeweiligen Randes des Definitionsbereiches anzunehmen sind, also -\begin{equation} +\[ y(a) = y(b) = 0 -\end{equation} +\] , so spricht man von einer Dirichlet-Randbedingung, und von einer Neumann-Randbedingung spricht man, wenn -\begin{equation} +\[ y'(a) = y'(b) = 0 -\end{equation} -ergibt - die Existenz und Eindeutigkeit der Lösung kann mit den zwei Randbedingungen sichergestellt werden. +\] +ist. Die Existenz und Eindeutigkeit der Lösung kann mit den zwei Randbedingungen sichergestellt werden. Lösungen die nicht Null sind, werden nicht betrachtet und diese zwei Gleichungen (\ref{eq:sturm-liouville-equation} und \ref{eq:randbedingungen}) kombiniert, nennt man Eigenfunktionen. Wenn bei der Sturm-Liouville-Gleichung \ref{eq:sturm-liouville-equation} alles konstant bleibt, aber der Wert von $\lambda$ sich ändert, erhält man eine andere Eigenfunktion, weil man eine andere gewöhnliche Differentialgleichung löst; der Parameter $\lambda$ wird als Eigenwert bezeichnet. Es ist genau das gleiche Prinzip wie bei den Matrizen, andere Eigenwerte ergeben andere Eigenvektoren. Es besteht eine Korrespondenz zwischen den Eigenwerten und den Eigenvektoren. Das gleiche gilt auch beim Sturm-Liouville-Problem, und zwar -\begin{equation} - \lambda \overset{Korrespondenz}\leftrightarrow y -\end{equation}. +\[ + \lambda \overset{Korrespondenz}\leftrightarrow y. +\] Die Theorie besagt, wenn $y_m$, $y_n$ Eigenfuktionen des Sturm-Liouville-Problems sind, die verschiedene Eigenwerte $\lambda_m$, $\lambda_n$ ($\lambda_m \neq \lambda_n$) entsprechen, so sind $y_m$, $y_n$ orthogonal zu y - dies gilt für das Intervall (a,b). Somit ergibt die Gleichung -\begin{equation} - \int_{a}^{b} w(x)y_m y_n = 0 -\end{equation}. +\[ + \int_{a}^{b} w(x)y_m y_n = 0. +\] Die Funktionen $p(x)$, $q(x)$ und $w(x)$ werden als Koeffizientenfunktionen mit ihren freien Variablen $x$ bezeichnet. Die Funktion $w(x)$ (manchmal auch $r(x)$ genannt) wird als Gewichtsfunktion oder Dichtefunktion bezeichnet. @@ -90,29 +90,29 @@ Bei einem regulären Sturm-Liouville-Problem geht es darum, ohne genaue Kenntnis \subsection{Das singuläre Sturm-Liouville-Problem\label{sub:singuläre_sturm_liouville_problem}} -Von einem singulären Sturm-Liouville-Problem spricht man, wenn die Bedingungen des regulärem Problem nicht erfüllt sind. +Von einem singulären Sturm-Liouville-Problem spricht man, wenn die Bedingungen des regulären Problems nicht erfüllt sind. \begin{definition} \label{def:singulär_sturm-liouville-problem} \index{singuläres Sturm-Liouville-Problem} -Es handelt sich um ein singuläres Sturm-Liouville-Problem, wenn: +Es handelt sich um ein singuläres Sturm-Liouville-Problem, \begin{itemize} \item wenn sein Definitionsbereich auf dem Intervall $[ \ a,b] \ $ unbeschränkt ist oder \item wenn die Koeffizienten an den Randpunkten Singularitäten haben. \end{itemize} \end{definition} -Allerdings kann nur eine der Bedingungen nicht erfüllt sein, so dass es sich bereits um ein singuläres Sturm-Liouville-Problem handelt. +Allerdings kann auch nur eine der Bedingungen nicht erfüllt sein, so dass es sich bereits um ein singuläres Sturm-Liouville-Problem handelt. \begin{beispiel} Das Randwertproblem - \begin{equation} + \[ \begin{aligned} x^2y'' + xy' + (\lambda^2x^2 - m^2)y &= 0, 0 Date: Tue, 16 Aug 2022 15:47:34 +0200 Subject: Corrected some minor mistakes in solution properties. --- buch/papers/sturmliouville/eigenschaften.tex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex index fda8be6..87ba864 100644 --- a/buch/papers/sturmliouville/eigenschaften.tex +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -42,7 +42,7 @@ den Lösungen hervorbringt, wird der Spektralsatz benötigt. Dieser wird in der linearen Algebra oft verwendet um zu zeigen, dass eine Matrix diagonalisierbar ist, beziehungsweise dass eine Orthonormalbasis existiert. Dazu wird zunächst gezeigt, dass eine gegebene $n\times n$-Matrix $A$ aus einem -endlichdimensionalem $\mathbb{K}$-Vektorraum selbstadungiert ist, also dass +endlichdimensionalem $\mathbb{K}$-Vektorraum selbstadjungiert ist, also dass \[ \langle Av, w \rangle = @@ -67,8 +67,8 @@ Orthonormalsystem existiert. Der Spektralsatz besagt also, dass, weil $L_0$ selbstadjungiert ist, eine Orthonormalbasis aus Eigenvektoren existiert. Genauer bedeutet dies, dass alle Eigenvektoren, beziehungsweise alle Lösungen -des Sturm-Liouville-Problems orthogonal zueinander sind bezüglich dem -Skalarprodukt, in dem $L_0$ selbstadjungiert ist. +des Sturm-Liouville-Problems orthogonal zueinander sind bezüglich des +Skalarprodukts, in dem $L_0$ selbstadjungiert ist. Erfüllt also eine Differenzialgleichung die in Abschnitt~\ref{sturmliouville:section:teil0} präsentierten Eigenschaften und -- cgit v1.2.1 From 0904096277bc7944a6c0baf50f4032c2f4d9909a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Tue, 16 Aug 2022 16:11:37 +0200 Subject: Corrected some smaller mistakes in fourier example and added authors to files. --- buch/papers/sturmliouville/eigenschaften.tex | 1 + buch/papers/sturmliouville/einleitung.tex | 1 + buch/papers/sturmliouville/tschebyscheff_beispiel.tex | 1 + buch/papers/sturmliouville/waermeleitung_beispiel.tex | 18 ++++++++++-------- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex index 87ba864..85f0bf3 100644 --- a/buch/papers/sturmliouville/eigenschaften.tex +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -1,5 +1,6 @@ % % eigenschaften.tex -- Eigenschaften der Lösungen +% Author: Erik Löffler % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % diff --git a/buch/papers/sturmliouville/einleitung.tex b/buch/papers/sturmliouville/einleitung.tex index 31256eb..babc06d 100644 --- a/buch/papers/sturmliouville/einleitung.tex +++ b/buch/papers/sturmliouville/einleitung.tex @@ -1,5 +1,6 @@ % % einleitung.tex -- Beispiel-File für die Einleitung +% Author: Réda Haddouche % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % diff --git a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex index a18684f..8a99ae9 100644 --- a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex +++ b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex @@ -1,5 +1,6 @@ % % tschebyscheff_beispiel.tex +% Author: Réda Haddouche % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index b22d5f5..7a37b2b 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -1,5 +1,6 @@ % -% waermeleitung_beispiel.tex -- Beispiel Wärmeleitung in homogenem Stab. +% waermeleitung_beispiel.tex -- Beispiel Wärmeleitung in homogenem Stab. +% Author: Erik Löffler % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % @@ -17,7 +18,7 @@ die partielle Differentialgleichung \begin{equation} \label{sturmliouville:eq:example-fourier-heat-equation} \frac{\partial u}{\partial t} = - \kappa \frac{\partial^{2}u}{{\partial x}^{2}} + \kappa \frac{\partial^{2}u}{{\partial x}^{2}}, \end{equation} wobei der Stab in diesem Fall auf der X-Achse im Intervall $[0,l]$ liegt. @@ -187,7 +188,8 @@ somit auch zu orthogonalen Lösungen führen. % \subsubsection{Lösund der Differentialgleichung in x} -Als erstes wird auf die erste erste Gleichung eingegangen. +Als erstes wird auf die +Gleichung~\eqref{sturmliouville:eq:example-fourier-separated-x} eingegangen. Aufgrund der Struktur der Gleichung \[ X^{\prime \prime}(x) - \mu X(x) @@ -417,7 +419,7 @@ sein, welche Integralgrenzen zu verwenden sind. In diesem Fall haben die $\sin$ und $\cos$ Terme beispielsweise keine ganze Periode im Intervall $x \in [0, l]$ für ungerade $n$ und $m$. Um die Skalarprodukte aber korrekt zu berechnen, muss über ein ganzzahliges -Vielfaches der Periode der triginimetrischen Funktionen integriert werden. +Vielfaches der Periode der trigonometrischen Funktionen integriert werden. Dazu werden die Integralgrenzen $-l$ und $l$ verwendet und es werden ausserdem neue Funktionen $\hat{u}_c(0, x)$ für die Berechnung mit Cosinus und $\hat{u}_s(0, x)$ für die Berechnung mit Sinus angenomen, welche $u(0, t)$ @@ -487,7 +489,7 @@ nahezu alle Terme verschwinden, denn \[ \int_{-l}^{l}cos\left(\frac{m \pi}{l}x\right) dx = - 0 + 0, \] da hier über ein ganzzahliges Vielfaches der Periode integriert wird, \[ @@ -611,7 +613,7 @@ Es bleibt also noch % Lösung von T(t) % -\subsubsection{Lösund der Differentialgleichung in t} +\subsubsection{Lösung der Differentialgleichung in $t$} Zuletzt wird die zweite Gleichung der Separation~\eqref{sturmliouville:eq:example-fourier-separated-t} betrachtet. Diese wird über das charakteristische Polynom @@ -627,7 +629,7 @@ Lösung \[ T(t) = - e^{-\kappa \mu t} + e^{\kappa \mu t} \] führt und mit dem Resultat~\eqref{sturmliouville:eq:example-fourier-mu-solution} \[ @@ -637,7 +639,7 @@ führt und mit dem Resultat~\eqref{sturmliouville:eq:example-fourier-mu-solution \] ergibt. -Dieses Resultat kann nun mit allen vorhergehenden Resultaten zudammengesetzt +Dieses Resultat kann nun mit allen vorhergehenden Resultaten zusammengesetzt werden um die vollständige Lösung für das Stab-Problem zu erhalten. \subsubsection{Lösung für einen Stab mit Enden auf konstanter Temperatur} -- cgit v1.2.1 From 3bdc9c20b9a83cf1cb7f4570d99d2495576ca30d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Tue, 16 Aug 2022 16:21:59 +0200 Subject: Removed unnecessary equation indexing in Tschebyscheff example and corrected some errors. --- .../sturmliouville/tschebyscheff_beispiel.tex | 50 ++++++++-------------- 1 file changed, 19 insertions(+), 31 deletions(-) diff --git a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex index 8a99ae9..e86e742 100644 --- a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex +++ b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex @@ -6,12 +6,12 @@ % \subsection{Tschebyscheff-Polynome\label{sub:tschebyscheff-polynome}} -Im Kapitel \ref{sub:beispiele_sturm_liouville_problem} sind die Koeffizientenfunktionen die man braucht schon aufgeliste, und zwar mit +Im Kapitel \ref{sub:beispiele_sturm_liouville_problem} sind die Koeffizientenfunktionen die man braucht schon aufgelistet, und zwar mit \begin{align*} w(x) &= \frac{1}{\sqrt{1-x^2}} \\ p(x) &= \sqrt{1-x^2} \\ - q(x) &= 0 -\end{align*}. + q(x) &= 0. +\end{align*} Da die Sturm-Liouville-Gleichung \begin{equation} \label{eq:sturm-liouville-equation-tscheby} @@ -20,14 +20,14 @@ Da die Sturm-Liouville-Gleichung nun mit den Koeffizientenfunktionen aufgestellt werden kann, bleibt die Frage, ob es sich um ein reguläres oder singuläres Sturm-Liouville-Problem handelt. Für das reguläre Problem laut der Definition \ref{def:reguläres_sturm-liouville-problem} muss die funktion $p(x) = \sqrt{1-x^2}$, $p'(x) = -2x$, $q(x) = 0$ und $w(x) = \frac{1}{\sqrt{1-x^2}}$ stetig und reell sein - und sie sind es auch. Auf dem Intervall $(-1,1)$ sind die Tschebyscheff-Polynome erster Art mit Hilfe von Hyperbelfunktionen -\begin{equation} - T_n(x) = \cos n (\arccos x) -\end{equation}. +\[ + T_n(x) = \cos n (\arccos x). +\] Für $x>1$ und $x<-1$ sehen die Polynome wie folgt aus: -\begin{equation} +\[ T_n(x) = \left\{\begin{array}{ll} \cosh (n \arccos x), & x > 1\\ - (-1)^n \cosh (n \arccos (-x)), & x<-1 \end{array}\right. -\end{equation}, + (-1)^n \cosh (n \arccos (-x)), & x<-1 \end{array}\right., +\] jedoch ist die Orthogonalität nur auf dem Intervall $[ -1, 1]$ sichergestellt. Die nächste Bedingung beinhaltet, dass die Funktion $p(x)^{-1}$ und $w(x)>0$ sein müssen. Die Funktion @@ -39,34 +39,22 @@ ist die gleiche wie $w(x)$. Für die Verifizierung der Randbedingungen benötigt man erneut $p(x)$. Da sich die Polynome nur auf dem Intervall $[ -1,1 ]$ orthogonal verhalten, sind $a = -1$ und $b = 1$ gesetzt. Beim einsetzen in die Randbedingung \ref{eq:randbedingungen}, erhält man -\begin{equation} +\[ \begin{aligned} - k_a y(-1) + h_a y'(-1) &= 0 - k_b y(-1) + h_b y'(-1) &= 0 + k_a y(-1) + h_a y'(-1) &= 0 \\ + k_b y(-1) + h_b y'(-1) &= 0. \end{aligned} -\end{equation}. -Die Funktion $y(x)$ und $y'(x)$ sind in diesem Fall die Tschebyscheff Polynome (siehe \label{sub:definiton_der_tschebyscheff-Polynome}). +\] +Die Funktion $y(x)$ und $y'(x)$ sind in diesem Fall die Tschebyscheff Polynome (siehe \ref{sub:definiton_der_tschebyscheff-Polynome}). Es gibt zwei Arten von Tschebyscheff Polynome: die erste Art $T_n(x)$ und die zweite Art $U_n(x)$. Jedoch beachtet man in diesem Kapitel nur die Tschebyscheff Polynome erster Art (\ref{eq:tschebyscheff-polynome}). Die Funktion $y(x)$ wird nun mit der Funktion $T_n(x)$ ersetzt und für die Verifizierung der Randbedingung wählt man $n=2$. Somit erhält man -\begin{equation} +\[ \begin{aligned} k_a T_2(-1) + h_a T_{2}'(-1) &= k_a = 0\\ - k_b T_2(1) + h_b T_{2}'(1) &= k_b = 0 + k_b T_2(1) + h_b T_{2}'(1) &= k_b = 0. \end{aligned} -\end{equation}. -Ähnlich wie beim Beispiel der Wärmeleitung in einem homogenen Stab kann man, damit die Bedingung $|k_i|^2 + |h_i|^2\ne 0$ erfüllt ist, können beliebige $h_a \ne 0$ und $h_b \ne 0$ gewählt werden. -Somit ist erneut gezeigt, dass die Randbedingungen der Tschebyscheff-Polynome auf die Sturm-Liouville-Randbedingungen erfüllt und alle daraus resultierenden Lösungen orthogonal sind. - - - - - - - - - - - - +\] +Ähnlich wie beim Beispiel der Wärmeleitung in einem homogenen Stab können, damit die Bedingung $|k_i|^2 + |h_i|^2\ne 0$ erfüllt ist, beliebige $h_a \ne 0$ und $h_b \ne 0$ gewählt werden. +Somit ist erneut gezeigt, dass die Randbedingungen der Tschebyscheff-Polynome auch die Sturm-Liouville-Randbedingungen erfüllt und alle daraus resultierenden Lösungen orthogonal sind. -- cgit v1.2.1 From afb21283eeaa8178fbf1890212e177aa05a92c1b Mon Sep 17 00:00:00 2001 From: Joshua Baer Date: Tue, 16 Aug 2022 16:57:02 +0200 Subject: started e littel bit --- buch/papers/fm/00_modulation.tex | 15 +- buch/papers/fm/01_AM.tex | 52 +- buch/papers/fm/02_FM.tex | 62 +- buch/papers/fm/03_bessel.tex | 25 +- buch/papers/fm/Python animation/Bessel-FM.ipynb | 91 +-- buch/papers/fm/Python animation/Bessel-FM.py | 72 +-- buch/papers/fm/Python animation/m_t.pgf | 746 ++++++++++++++++++++++++ buch/papers/fm/Quellen/NaT_Skript_20210920.pdf | Bin 0 -> 5455101 bytes buch/papers/fm/main.tex | 17 +- 9 files changed, 945 insertions(+), 135 deletions(-) create mode 100644 buch/papers/fm/Python animation/m_t.pgf create mode 100644 buch/papers/fm/Quellen/NaT_Skript_20210920.pdf diff --git a/buch/papers/fm/00_modulation.tex b/buch/papers/fm/00_modulation.tex index e2ba39f..982d63c 100644 --- a/buch/papers/fm/00_modulation.tex +++ b/buch/papers/fm/00_modulation.tex @@ -3,11 +3,22 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % + +Durch die Modulation wird ein Nachrichtensignal \(m(t)\) auf ein Trägersignal (z.B. ein Sinus- oder Rechtecksignal) abgebildet (kombiniert). +Durch dieses Auftragen vom Nachrichtensignal \(m(t)\) kann das modulierte Signal in einem gewünschten Frequenzbereich übertragen werden. +Der ursprünglich Frequenzbereich des Nachrichtensignal \(m(t)\) erstreckt sich typischerweise von 0 Hz bis zur Bandbreite \(B_m\). +Beim Empfänger wird dann durch Demodulation das ursprüngliche Nachrichtensignal \(m(t)\) so originalgetreu wie möglich zurückgewonnen. +Beim Trägersignal \(x_c(t)\) handelt es sich um ein informationsloses Hilfssignal. +Durch die Modulation mit dem Nachrichtensignal \(m(t)\) wird es zum modulierten zu übertragenden Signal. +Für alle Erklärungen wird ein sinusförmiges Trägersignal benutzt, jedoch kann auch ein Rechtecksignal, +welches Digital einfach umzusetzten ist, +genauso als Trägersignal genutzt werden kann.\cite{fm:NAT} + \subsection{Modulationsarten\label{fm:section:modulation}} Das sinusförmige Trägersignal hat die übliche Form: \(x_c(t) = A_c \cdot \cos(\omega_c(t)+\varphi)\). -Wobei die konstanten Amplitude \(A_c\) und Phase \(\varphi\) vom Nachrichtensignal \(m(t)\) verändert wird. +Wobei die konstanten Amplitude \(A_c\) und Phase \(\varphi\) vom Nachrichtensignal \(m(t)\) verändert werden können. Der Parameter \(\omega_c\), die Trägerkreisfrequenz bzw. die Trägerfrequenz \(f_c = \frac{\omega_c}{2\pi}\), steht nicht für die modulation zur verfügung, statt dessen kann durch ihn die Frequenzachse frei gewählt werden. \newblockpunct @@ -25,6 +36,8 @@ die Phasenmodulation \(\varphi\) und dann noch die Momentankreisfrequenz \(\omeg \item PM \item FM \end{itemize} +Um modulation zu Verstehen ist es am Anschaulichst mit der AM Amplitudenmodulation, +da Phasenmodulation und Frequenzmodulation den gleichen Parameter verändert vernachlässige ich die Phasenmodulation ganz. To do: Bilder jeder Modulationsart diff --git a/buch/papers/fm/01_AM.tex b/buch/papers/fm/01_AM.tex index 21927f5..714b9a0 100644 --- a/buch/papers/fm/01_AM.tex +++ b/buch/papers/fm/01_AM.tex @@ -11,19 +11,61 @@ Nun zur Amplitudenmodulation verwenden wir das bevorzugte Trägersignal \[ x_c(t) = A_c \cdot \cos(\omega_ct). \] -Dies bringt den grossen Vorteil das, dass modulierend Signal sämtliche Anteile im Frequenzspektrum inanspruch nimmt -und das Trägersignal nur zwei komplexe Schwingungen besitzt. +Dies bringt den grossen Vorteil das, dass modulierend Signal sämtliche Anteile im Frequenzspektrum in Anspruch nimmt +und das Trägersignal nur zwei komplexe Schwingungen besitzt. Dies sieht man besonders in der Eulerischen Formel \[ x_c(t) = \frac{A_c}{2} \cdot e^{j\omega_ct}\;+\;\frac{A_c}{2} \cdot e^{-j\omega_ct}. + \label{fm:eq:AM:euler} \] Dabei ist die negative Frequenz der zweiten komplexen Schwingung zwingend erforderlich, damit in der Summe immer ein reellwertiges Trägersignal ergibt. Nun wird der Parameter \(A_c\) durch das Modulierende Signal \(m(t)\) ersetzt, wobei so \(m(t) \leqslant |1|\) normiert wurde. -\newline -\newline + +Dabei entseht wine Umhüllende kurve die unserem ursprünglichen signal \(m(t)\) entspricht. +\[ + x_c(t) = m(t) \cdot \cos(\omega_ct). +\] + +\begin{figure} + \centering + \input{papers/fm/Python animation/m_t.pgf} + \caption{modulierende Signal \(m(t)\)} + \label{fig:bessel} +\end{figure} +% TODO: +Bilder Hier beschrieib ich was AmplitudenModulation ist und mache dan den link zu Frequenzmodulation inkl Formel \[\cos( \cos x)\] so wird beschrieben das daraus eigentlich \(x_c(t) = A_c \cdot \cos(\omega_i)\) wird und somit \(x_c(t) = A_c \cdot \cos(\omega_c + \frac{d \varphi(t)}{dt})\). Da \(\sin \) abgeleitet \(\cos \) ergibt, so wird aus dem \(m(t)\) ein \( \frac{d \varphi(t)}{dt}\) in der momentan frequenz. \[ \Rightarrow \cos( \cos x) \] +\subsection{Frequenzspektrum} +Das Frequenzspektrum ist eine Darstellung von einem Signal im Frequenzbereich, das heisst man erkennt welche Frequenzen in einem Signal vorhanden sind. +Dafür muss man eine Fouriertransformation vornehmen. +Wird aus dieser Gleichung \eqref{fm:eq:AM:euler}die Fouriertransformation vorggenommen, so erhält man -\subsection{Frequenzspektrum} \ No newline at end of file +% +%Ein Ziel der Modulation besteht darin, mehrere Nachrichtensignale von verschiedenen Sendern gleichzeitig +%in verschiedenen Frequenzbereichen über den gleichen Kanal zu senden. Um dieses Frequenzmultiplexing +%störungsfrei und mit eine Vielzahl von Teilnehmern durchführen zu können, muss die spektrale Beschaffen- +%heit der modulierten Signale möglichst gut bekannt sein. +%Dank des Modulationssatzes der Fouriertransformation lässt sich das Spektrum eines gewöhnlichen AM Si- +%gnals sofort bestimmen: +%A c μ +%F +%·(M n (ω−ω c ) + M n (ω+ω c )) (5.5) +%A c ·(1+μm n (t))·cos(ω c t) ❝ s A c π (δ(ω−ω c ) + δ(ω+ω c )) + +%2 +%Das zweiseitige Spektrum des Nachrichtensignals M (ω) wird mit dem Faktor A 2 c μ gewichtet und einmal +%nach +ω c und einmal nach −ω c verschoben. Dies führt im Vergleich zum Basisbandsignal zu einer Verdop- +%pelung der Bandbreite mit je einem Seitenband links und rechts der Trägerfrequenz. Weiter beinhaltet das +%Amplitudendichtespektrum je eine Deltafunktion mit Gewicht A c π an den Stellen ±ω c , d.h. ein fester, nicht- +%modulierter Amplitudenanteil bei der eigentlichen Trägerfrequenz. +%Das Amplitudendichtespektrum ist im nachfolgenden Graphen für A c = 1 und μ = 100% dargestellt.5.3. Gewöhnliche Amplitudenmodulation +%47 +%Abbildung 5.12: Amplitudendichtespektrum von gewöhnlicher AM +%Für das Nachrichtensignal wurde in diesem Graph mit einem Keil symbolhaft ein Amplitudendichtespektrum +%|M (ω)| gewählt, bei welchem der Anteil auf der positiven und jener auf der negativen Frequenzachse visuell +%gut auseinandergehalten werden können. Ein solch geformtes Spektrum wird aber in der Praxis kaum je +%auftreten: bei periodischen Testsignalen besteht das Nachrichtensignal aus einem Linienspektrum, bei einem +%Energiesignal mit zufälligem Verlauf aus einem kontinuierlichen Spektrum, welches jedoch nicht auf diese +%einfache Art geformt sein wird \ No newline at end of file diff --git a/buch/papers/fm/02_FM.tex b/buch/papers/fm/02_FM.tex index fedfaaa..a01fb69 100644 --- a/buch/papers/fm/02_FM.tex +++ b/buch/papers/fm/02_FM.tex @@ -6,9 +6,65 @@ \section{FM \label{fm:section:teil1}} \rhead{FM} -\subsection{Frequenzspektrum} -TODO -Hier Beschreiben ich FM und FM im Frequenzspektrum. +\subsection{Frequenzmodulation} +(skript Nat ab Seite 60) +Als weiterer Parameter, um ein sinusförmiges Trägersignal \(x_c = A_c \cdot \cos(\omega_c t + \varphi)\) zu modulieren, +bietet sich neben der Amplitude \(A_c\) auch der Phasenwinkel \(\varphi\) oder die momentane Frequenzabweichung \(\frac{d\varphi}{dt}\) an. +Bei der Phasenmodulation (Englisch: phase modulation, PM) erzeugt das Nachrichtensignal \(m(t)\) eine Phasenabweichung \(\varphi(t)\) des modulierten Trägersignals im Vergleich zum nicht-modulierten Träger. Sie ist pro- +%portional zum Nachrichtensignal \(m(t)\) durch eine Skalierung mit der Phasenhubkonstanten (Englisch: phase deviation constant) +%k p [rad], +%welche die Amplitude des Nachrichtensignals auf die Phasenabweichung des +%modulierten Trägersignals abbildet: φ(t) = k p · m(t). Damit ergibt sich für das phasenmodulierte Trägersi- +%gnal: +%x PM (t) = A c · cos (ω c t + k p · m(t)) +%(5.16) +%Die modulierte Phase φ(t) verändert dabei auch die Momentanfrequenz (Englisch: instantaneous frequency) +%ω i +%, welche wie folgt berechnet wird: +%f i = 2π +%ω i (t) = ω c + +%d φ(t) +%dt +%(5.17) +%Bei der Frequenzmodulation (Englisch: frequency modulation, FM) ist die Abweichung der momentanen +%Kreisfrequenz ω i von der Trägerkreisfrequenz ω c proportional zum Nachrichtensignal m(t). Sie ergibt sich, +%indem m(t) mit der (Kreis-)Frequenzhubkonstanten (Englisch: frequency deviation constant) k f [rad/s] ska- +%liert wird: ω i (t) = ω c + k f · m(t). Diese sich zeitlich verändernde Abweichung von der Kreisfrequenz ω c +%verursacht gleichzeitig auch Schwankungen der Phase φ(t), welche wie folgt berechnet wird: +%φ(t) = +%Z t +%−∞ +%ω i (τ ) − ω c dτ = +%Somit ergibt sich für das frequenzmodulierte Trägersignal: +% +%Z t +%−∞ +%x FM (t) = A c · cos  ω c t + k f +%k f · m(t) dτ +%Z t +%−∞ +% +%m(τ ) dτ  +%(5.18) +%(5.19) +%Die Phase φ(t) hat dabei einen kontinuierlichen Verlauf, d.h. das FM-modulierte Signal x FM (t) weist keine +%Stellen auf, wo sich die Phase sprunghaft ändert. Aus diesem Grund spricht man bei frequenzmodulierten +%Signalen – speziell auch bei digitalen FM-Signalen – von einer Modulation mit kontinuierlicher Phase (Eng- +%lisch: continuous phase modulation). +%Wie aus diesen Ausführungen hervorgeht, sind Phasenmodulation und Frequenzmodulation äquivalente Mo- +%dulationsverfahren. Beide variieren sowohl die Phase φ wie auch die Momentanfrequenz ω i . Dadurch kann +%man leider nicht – wie vielleicht erhofft – je mit einem eigenen Nachrichtensignal ein gemeinsames Trägersi- +%gnal unabhängig PM- und FM-modulieren, ohne dass sich diese Modulationen für den Empfänger untrennbar +%vermischen würden. +% +%Um die mathematische Behandlung der nicht-linearen Winkelmodulation etwas zu verkürzen, ist es aufgrund +%dieser Äquivalenzen gerechtfertigt, dass PM und FM gemeinsam behandelt werden. Jeweils vor der Modu- +%lation bzw. nach der Demodulation kann dann noch eine Differentiation oder Integration durchgeführt wird, +%um von der einen Modulationsart zur anderen zu gelangen. +%\subsection{Frequenzbereich} +%Nun +%TODO +%Hier Beschreiben ich FM und FM im Frequenzspektrum. %Sed ut perspiciatis unde omnis iste natus error sit voluptatem %accusantium doloremque laudantium, totam rem aperiam, eaque ipsa %quae ab illo inventore veritatis et quasi architecto beatae vitae diff --git a/buch/papers/fm/03_bessel.tex b/buch/papers/fm/03_bessel.tex index 45f2dfd..3c2cb71 100644 --- a/buch/papers/fm/03_bessel.tex +++ b/buch/papers/fm/03_bessel.tex @@ -67,7 +67,7 @@ Mit dem \eqref{fm:eq:addth1} wird aus dem modulierten Signal = \cos(\omega_c t + \beta\sin(\omega_mt)) = - \cos(\omega_c t)\cos(\beta\sin(\omega_m t))-\sin(\omega_ct)\sin(\beta\sin(\omega_m t)). + \cos(\omega_c t)\cos(\beta\sin(\omega_m t)) - \sin(\omega_ct)\sin(\beta\sin(\omega_m t)). \label{fm:eq:start} \] %----------------------------------------------------------------------------------------------------------- @@ -89,23 +89,34 @@ mit hilfe der Besselindentität \eqref{fm:eq:besselid1} zum \end{align*} %intertext{} Funktioniert nicht. wobei mit dem Additionstheorem \eqref{fm:eq:addth2} \(A = \omega_c t\) und \(B = 2k\omega_m t \) ersetzt wurden. +Nun kann die Summe in zwei Summen \begin{align*} c(t) &= - J_0(\beta) \cdot \cos(\omega_c t) + \sum_{k=1}^\infty J_{2k}(\beta) \{ \underbrace{\cos((\omega_c - 2k \omega_m) t)} \,+\, \cos((\omega_c + 2k \omega_m) t) \} + J_0(\beta) \cdot \cos(\omega_c t) + \sum_{k=1}^\infty J_{2k}(\beta) \cos((\omega_c - 2k \omega_m) t) \,+\, \cos((\omega_c + 2k \omega_m) t) \} \\ &= - \sum_{k=-\infty}^{-1} J_{2k}(\beta) \overbrace{\cos((\omega_c +2k \omega_m) t)} - \,+\,J_0(\beta)\cdot \cos(\omega_c t+ 2\cdot0 \omega_m) + \sum_{k=\infty}^{1} J_{2k}(\beta) \underbrace{\cos((\omega_c - 2k \omega_m) t)} + \,+\,J_0(\beta)\cdot \cos(\omega_c t) \,+\, \sum_{k=1}^\infty J_{2k}(\beta)\cos((\omega_c + 2k \omega_m) t) \end{align*} -wird. -Das Minus im Ersten Term wird zur negativen Summe \(\sum_{-\infty}^{-1}\) ersetzt. -Da \(2k\) immer gerade ist, wird es durch alle negativen und positiven Ganzzahlen \(n\) ersetzt: +aufgeteilt werden. +Wenn bei der ersten Summe noch \(k\) von \(-\infty \to -1\) läuft, wird diese summe zu \(\sum_{k=-1}^{-\infty} J_{-2k}(\beta) {\cos((\omega_c + 2k \omega_m) t)} \) +Zudem kann die Besselindentität \eqref{fm:eq:besselid3} gebraucht werden. \(n \) wird mit \(2k\) ersetzt, da dies immer gerade ist so gilt: \(J_{-n}(\beta) = J_n(\beta)\) +Somit bekommt man zwei gleiche Summen +\begin{align*} + c(t) + &= + \sum_{k=-\infty}^{-1} J_{2k}(\beta) \cos((\omega_c + 2k \omega_m) t) + \,+\,J_0(\beta)\cdot \cos(\omega_c t+ 2 \cdot 0 \omega_m) + \,+\, \sum_{k=1}^\infty J_{2k}(\beta)\cos((\omega_c + 2k \omega_m) t) +\end{align*} +Diese können wir vereinfachter schreiben, \begin{align*} \sum_{n\, \text{gerade}} J_{n}(\beta) \cos((\omega_c + n \omega_m) t), \label{fm:eq:gerade} \end{align*} +da \(2k\) für alle negativen, wie positiven geraden Zahlen zählt. %---------------------------------------------------------------------------------------------------------------- \subsubsection{Sin-Teil} Nun zum zweiten Teil des Term \eqref{fm:eq:start}, den Sin-Teil diff --git a/buch/papers/fm/Python animation/Bessel-FM.ipynb b/buch/papers/fm/Python animation/Bessel-FM.ipynb index ef6300b..4074765 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": 1, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -16,7 +16,7 @@ "# Use the pgf backend (must be set before pyplot imported)\n", "# mpl.use('pgf')\n", "\n", - "from matplotlib.widgets import Slider\n", + "\n", "def fm(beta):\n", " # Number of samplepoints\n", " N = 600\n", @@ -28,7 +28,7 @@ " #beta = 1.0\n", " y_old = np.sin(fc * 2.0*np.pi*x+beta*np.sin(fm * 2.0*np.pi*x))\n", " y = 0*x;\n", - " xf = fftfreq(N, 1 / 400)\n", + " xf = fftfreq(N, 1 / N)\n", " for k in range (-4, 4):\n", " y = sc.jv(k,beta)*np.sin((fc+k*fm) * 2.0*np.pi*x)\n", " yf = fft(y)/(fc*np.pi)\n", @@ -43,12 +43,12 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -60,7 +60,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -75,17 +75,17 @@ "# Number of samplepoints\n", "N = 800\n", "# sample spacing\n", - "T = 1.0 / 1000.0\n", + "T = 1.0 / N\n", "x = np.linspace(0.01, N*T, N)\n", "\n", "y_old = np.sin(100* 2.0*np.pi*x+1*np.sin(15* 2.0*np.pi*x))\n", "yf_old = fft(y_old)/(100*np.pi)\n", - "xf = fftfreq(N, 1 / 1000)\n", + "xf = fftfreq(N, 1 / N)\n", "plt.plot(xf, np.abs(yf_old))\n", "#plt.xlim(-150, 150)\n", "plt.show()\n", "\n", - "fm(1)" + "fm(2)" ] }, { @@ -133,56 +133,12 @@ }, { "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from scipy import special\n", - "\n", - "def drumhead_height(n, k, distance, angle, t):\n", - " kth_zero = special.jn_zeros(n, k)[-1]\n", - " return np.cos(t) * np.cos(n*angle) * special.jn(n, distance*kth_zero)\n", - "\n", - "theta = np.r_[0:2*np.pi:50j]\n", - "radius = np.r_[0:1:50j]\n", - "x = np.array([r * np.cos(theta) for r in radius])\n", - "y = np.array([r * np.sin(theta) for r in radius])\n", - "z = np.array([drumhead_height(1, 1, r, theta, 0.5) for r in radius])\n", - "\n", - "import matplotlib.pyplot as plt\n", - "fig = plt.figure()\n", - "ax = fig.add_axes(rect=(0, 0.05, 0.95, 0.95), projection='3d')\n", - "ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap='RdBu_r', vmin=-0.5, vmax=0.5)\n", - "ax.set_xlabel('X')\n", - "ax.set_ylabel('Y')\n", - "ax.set_xticks(np.arange(-1, 1.1, 0.5))\n", - "ax.set_yticks(np.arange(-1, 1.1, 0.5))\n", - "ax.set_zlabel('Z')\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 98, + "execution_count": 131, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -195,7 +151,7 @@ ], "source": [ "\n", - "x = np.linspace(0,0.1,1000)\n", + "x = np.linspace(0,0.1,2000)\n", "y = np.sin(100 * 2.0*np.pi*x+1.5*np.sin(30 * 2.0*np.pi*x))\n", "plt.plot(x, y, '-')\n", "plt.show()" @@ -203,22 +159,12 @@ }, { "cell_type": "code", - "execution_count": 130, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 130, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -237,16 +183,17 @@ "second = ratio-first\n", "odd = ratio % 2\n", "\n", - "first = int(first * length/ratio) + odd\n", - "second = int( second * length/ratio)\n", + "first = int(first * length/ratio) \n", + "second = int( second * length/ratio) + odd\n", "slop = np.array(np.append(np.zeros(first-slop) , (np.arange(slop))/slop))\n", "#steep = np.ones(int(first * length/ratio)+ odd) - np.exp(-np.arange(int(first * length/ratio) + odd)/200)\n", "steep = (np.ones(first) + slop)*0.5\n", "\n", "step = np.append(steep, np.ones(second))\n", - "m = np.sin(30 * 2.0 * np.pi * x) * step \n", + "m = np.sin(5 * 2.0 * np.pi * x) * step \n", "plt.plot(x, step, '-')\n", - "plt.plot(x, m, '-')" + "plt.plot(x, m, '-')\n", + "plt.savefig('m_t.pgf', format='pgf')" ] } ], diff --git a/buch/papers/fm/Python animation/Bessel-FM.py b/buch/papers/fm/Python animation/Bessel-FM.py index cf30e16..cb35ebd 100644 --- a/buch/papers/fm/Python animation/Bessel-FM.py +++ b/buch/papers/fm/Python animation/Bessel-FM.py @@ -4,39 +4,45 @@ from scipy.fft import fft, ifft, fftfreq import scipy.special as sc import scipy.fftpack import matplotlib.pyplot as plt -from matplotlib.widgets import Slider - -# Number of samplepoints -N = 600 -# sample spacing -T = 1.0 / 800.0 -x = np.linspace(0.01, N*T, N) -beta = 1.0 -y_old = np.sin(100.0 * 2.0*np.pi*x+beta*np.sin(50.0 * 2.0*np.pi*x)) -y = 0*x; -xf = fftfreq(N, 1 / 400) -for k in range (-5, 5): - y = sc.jv(k,beta)*np.sin((100.0+k*50) * 2.0*np.pi*x) - yf = fft(y) - plt.plot(xf, np.abs(yf)) - -axbeta =plt.axes([0.25, 0.1, 0.65, 0.03]) -beta_slider = Slider( -ax=axbeta, -label="Beta", -valmin=0.1, -valmax=3, -valinit=beta, -) - -def update(val): - line.set_ydata(fm(beta_slider.val)) - fig.canvas.draw_idle() +import matplotlib as mpl +# Use the pgf backend (must be set before pyplot imported) +mpl.use('pgf') +from matplotlib.widgets import Slider +def fm(beta): + # Number of samplepoints + N = 600 + # sample spacing + T = 1.0 / 1000.0 + fc = 100.0 + fm = 30.0 + x = np.linspace(0.01, N*T, N) + #beta = 1.0 + y_old = np.sin(fc * 2.0*np.pi*x+beta*np.sin(fm * 2.0*np.pi*x)) + y = 0*x; + xf = fftfreq(N, 1 / N) + for k in range (-4, 4): + y = sc.jv(k,beta)*np.sin((fc+k*fm) * 2.0*np.pi*x) + yf = fft(y)/(fc*np.pi) + plt.plot(xf, np.abs(yf)) + plt.xlim(-150, 150) + #plt.savefig('bessel.pgf', format='pgf') + plt.show() -beta_slider.on_changed(update) -plt.show() +fm(1) -yf_old = fft(y_old) -plt.plot(xf, np.abs(yf_old)) -plt.show() \ No newline at end of file +# Bessel-Funktion +for n in range (-2,4): + x = np.linspace(-11,11,1000) + y = sc.jv(n,x) + plt.plot(x, y, '-',label='n='+str(n)) +#plt.plot([1,1],[sc.jv(0,1),sc.jv(-1,1)],) +plt.xlim(-10,10) +plt.grid(True) +plt.ylabel('Bessel $J_n(\\beta)$') +plt.xlabel(' $ \\beta $ ') +plt.plot(x, y) +plt.legend() +#plt.show() +plt.savefig('bessel.pgf', format='pgf') +print(sc.jv(0,1)) \ No newline at end of file diff --git a/buch/papers/fm/Python animation/m_t.pgf b/buch/papers/fm/Python animation/m_t.pgf new file mode 100644 index 0000000..edcfb33 --- /dev/null +++ b/buch/papers/fm/Python animation/m_t.pgf @@ -0,0 +1,746 @@ +%% Creator: Matplotlib, PGF backend +%% +%% To include the figure in your LaTeX document, write +%% \input{.pgf} +%% +%% Make sure the required packages are loaded in your preamble +%% \usepackage{pgf} +%% +%% Also ensure that all the required font packages are loaded; for instance, +%% the lmodern package is sometimes necessary when using math font. +%% \usepackage{lmodern} +%% +%% Figures using additional raster images can only be included by \input if +%% they are in the same directory as the main LaTeX file. For loading figures +%% from other directories you can use the `import` package +%% \usepackage{import} +%% +%% and then include the figures with +%% \import{}{.pgf} +%% +%% Matplotlib used the following preamble +%% \usepackage{fontspec} +%% \setmainfont{DejaVuSerif.ttf}[Path=\detokenize{/home/joshua/.local/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/}] +%% \setsansfont{DejaVuSans.ttf}[Path=\detokenize{/home/joshua/.local/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/}] +%% \setmonofont{DejaVuSansMono.ttf}[Path=\detokenize{/home/joshua/.local/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/}] +%% +\begingroup% +\makeatletter% +\begin{pgfpicture}% +\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{6.000000in}{4.000000in}}% +\pgfusepath{use as bounding box, clip}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{6.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{6.000000in}{4.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{4.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathclose% +\pgfusepath{}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetmiterjoin% +\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.000000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetstrokeopacity{0.000000}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.750000in}{0.500000in}}% +\pgfpathlineto{\pgfqpoint{5.400000in}{0.500000in}}% +\pgfpathlineto{\pgfqpoint{5.400000in}{3.520000in}}% +\pgfpathlineto{\pgfqpoint{0.750000in}{3.520000in}}% +\pgfpathlineto{\pgfqpoint{0.750000in}{0.500000in}}% +\pgfpathclose% +\pgfusepath{fill}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.918664in}{0.500000in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.918664in,y=0.402778in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.0}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{1.772658in}{0.500000in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=1.772658in,y=0.402778in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.2}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{2.626653in}{0.500000in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=2.626653in,y=0.402778in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.4}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{3.480647in}{0.500000in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=3.480647in,y=0.402778in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.6}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{4.334642in}{0.500000in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=4.334642in,y=0.402778in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.8}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{5.188636in}{0.500000in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=5.188636in,y=0.402778in,,top]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 1.0}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{0.637238in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.235508in, y=0.584477in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont \ensuremath{-}1.00}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{0.980424in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.235508in, y=0.927663in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont \ensuremath{-}0.75}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{1.323611in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.235508in, y=1.270849in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont \ensuremath{-}0.50}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{1.666797in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.235508in, y=1.614035in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont \ensuremath{-}0.25}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{2.009983in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343533in, y=1.957221in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.00}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{2.353169in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343533in, y=2.300407in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.25}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{2.696355in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343533in, y=2.643594in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.50}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{3.039541in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343533in, y=2.986780in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 0.75}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetbuttcap% +\pgfsetroundjoin% +\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetfillcolor{currentfill}% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{% +\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}% +\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}% +\pgfusepath{stroke,fill}% +}% +\begin{pgfscope}% +\pgfsys@transformshift{0.750000in}{3.382727in}% +\pgfsys@useobject{currentmarker}{}% +\end{pgfscope}% +\end{pgfscope}% +\begin{pgfscope}% +\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{textcolor}% +\pgfsetfillcolor{textcolor}% +\pgftext[x=0.343533in, y=3.329966in, left, base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont 1.00}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.750000in}{0.500000in}}{\pgfqpoint{4.650000in}{3.020000in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{0.121569,0.466667,0.705882}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.961364in}{2.696355in}}% +\pgfpathlineto{\pgfqpoint{2.373982in}{2.696355in}}% +\pgfpathlineto{\pgfqpoint{3.077645in}{3.382727in}}% +\pgfpathlineto{\pgfqpoint{5.188636in}{3.382727in}}% +\pgfpathlineto{\pgfqpoint{5.188636in}{3.382727in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfpathrectangle{\pgfqpoint{0.750000in}{0.500000in}}{\pgfqpoint{4.650000in}{3.020000in}}% +\pgfusepath{clip}% +\pgfsetrectcap% +\pgfsetroundjoin% +\pgfsetlinewidth{1.505625pt}% +\definecolor{currentstroke}{rgb}{1.000000,0.498039,0.054902}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.961364in}{2.222083in}}% +\pgfpathlineto{\pgfqpoint{0.993108in}{2.367402in}}% +\pgfpathlineto{\pgfqpoint{1.019561in}{2.473982in}}% +\pgfpathlineto{\pgfqpoint{1.040724in}{2.546802in}}% +\pgfpathlineto{\pgfqpoint{1.056596in}{2.592979in}}% +\pgfpathlineto{\pgfqpoint{1.072468in}{2.631215in}}% +\pgfpathlineto{\pgfqpoint{1.088341in}{2.660988in}}% +\pgfpathlineto{\pgfqpoint{1.098922in}{2.675931in}}% +\pgfpathlineto{\pgfqpoint{1.109503in}{2.686839in}}% +\pgfpathlineto{\pgfqpoint{1.120085in}{2.693647in}}% +\pgfpathlineto{\pgfqpoint{1.130666in}{2.696313in}}% +\pgfpathlineto{\pgfqpoint{1.141248in}{2.694822in}}% +\pgfpathlineto{\pgfqpoint{1.151829in}{2.689182in}}% +\pgfpathlineto{\pgfqpoint{1.162410in}{2.679428in}}% +\pgfpathlineto{\pgfqpoint{1.172992in}{2.665619in}}% +\pgfpathlineto{\pgfqpoint{1.183573in}{2.647837in}}% +\pgfpathlineto{\pgfqpoint{1.199445in}{2.613960in}}% +\pgfpathlineto{\pgfqpoint{1.215317in}{2.571856in}}% +\pgfpathlineto{\pgfqpoint{1.231190in}{2.522098in}}% +\pgfpathlineto{\pgfqpoint{1.252352in}{2.445035in}}% +\pgfpathlineto{\pgfqpoint{1.278806in}{2.334146in}}% +\pgfpathlineto{\pgfqpoint{1.310550in}{2.185325in}}% +\pgfpathlineto{\pgfqpoint{1.421655in}{1.645905in}}% +\pgfpathlineto{\pgfqpoint{1.448108in}{1.540247in}}% +\pgfpathlineto{\pgfqpoint{1.469271in}{1.468321in}}% +\pgfpathlineto{\pgfqpoint{1.485143in}{1.422894in}}% +\pgfpathlineto{\pgfqpoint{1.501015in}{1.385464in}}% +\pgfpathlineto{\pgfqpoint{1.516888in}{1.356540in}}% +\pgfpathlineto{\pgfqpoint{1.527469in}{1.342183in}}% +\pgfpathlineto{\pgfqpoint{1.538050in}{1.331872in}}% +\pgfpathlineto{\pgfqpoint{1.548632in}{1.325669in}}% +\pgfpathlineto{\pgfqpoint{1.559213in}{1.323611in}}% +\pgfpathlineto{\pgfqpoint{1.569795in}{1.325711in}}% +\pgfpathlineto{\pgfqpoint{1.580376in}{1.331956in}}% +\pgfpathlineto{\pgfqpoint{1.590957in}{1.342308in}}% +\pgfpathlineto{\pgfqpoint{1.601539in}{1.356705in}}% +\pgfpathlineto{\pgfqpoint{1.617411in}{1.385688in}}% +\pgfpathlineto{\pgfqpoint{1.633283in}{1.423174in}}% +\pgfpathlineto{\pgfqpoint{1.649155in}{1.468653in}}% +\pgfpathlineto{\pgfqpoint{1.670318in}{1.540640in}}% +\pgfpathlineto{\pgfqpoint{1.691481in}{1.623984in}}% +\pgfpathlineto{\pgfqpoint{1.717934in}{1.741037in}}% +\pgfpathlineto{\pgfqpoint{1.754969in}{1.920906in}}% +\pgfpathlineto{\pgfqpoint{1.829039in}{2.286606in}}% +\pgfpathlineto{\pgfqpoint{1.855493in}{2.402871in}}% +\pgfpathlineto{\pgfqpoint{1.876655in}{2.485395in}}% +\pgfpathlineto{\pgfqpoint{1.897818in}{2.556416in}}% +\pgfpathlineto{\pgfqpoint{1.913690in}{2.601088in}}% +\pgfpathlineto{\pgfqpoint{1.929563in}{2.637708in}}% +\pgfpathlineto{\pgfqpoint{1.945435in}{2.665778in}}% +\pgfpathlineto{\pgfqpoint{1.956016in}{2.679547in}}% +\pgfpathlineto{\pgfqpoint{1.966597in}{2.689260in}}% +\pgfpathlineto{\pgfqpoint{1.977179in}{2.694858in}}% +\pgfpathlineto{\pgfqpoint{1.987760in}{2.696307in}}% +\pgfpathlineto{\pgfqpoint{1.998342in}{2.693599in}}% +\pgfpathlineto{\pgfqpoint{2.008923in}{2.686749in}}% +\pgfpathlineto{\pgfqpoint{2.019504in}{2.675800in}}% +\pgfpathlineto{\pgfqpoint{2.030086in}{2.660817in}}% +\pgfpathlineto{\pgfqpoint{2.045958in}{2.630985in}}% +\pgfpathlineto{\pgfqpoint{2.061830in}{2.592694in}}% +\pgfpathlineto{\pgfqpoint{2.077702in}{2.546466in}}% +\pgfpathlineto{\pgfqpoint{2.098865in}{2.473584in}}% +\pgfpathlineto{\pgfqpoint{2.120028in}{2.389486in}}% +\pgfpathlineto{\pgfqpoint{2.146481in}{2.271711in}}% +\pgfpathlineto{\pgfqpoint{2.183516in}{2.091294in}}% +\pgfpathlineto{\pgfqpoint{2.257586in}{1.726215in}}% +\pgfpathlineto{\pgfqpoint{2.284040in}{1.610703in}}% +\pgfpathlineto{\pgfqpoint{2.305203in}{1.528957in}}% +\pgfpathlineto{\pgfqpoint{2.326365in}{1.458849in}}% +\pgfpathlineto{\pgfqpoint{2.342237in}{1.414938in}}% +\pgfpathlineto{\pgfqpoint{2.358110in}{1.379133in}}% +\pgfpathlineto{\pgfqpoint{2.400435in}{1.300923in}}% +\pgfpathlineto{\pgfqpoint{2.411017in}{1.287575in}}% +\pgfpathlineto{\pgfqpoint{2.421598in}{1.278578in}}% +\pgfpathlineto{\pgfqpoint{2.432179in}{1.274111in}}% +\pgfpathlineto{\pgfqpoint{2.442761in}{1.274326in}}% +\pgfpathlineto{\pgfqpoint{2.453342in}{1.279345in}}% +\pgfpathlineto{\pgfqpoint{2.463924in}{1.289257in}}% +\pgfpathlineto{\pgfqpoint{2.474505in}{1.304122in}}% +\pgfpathlineto{\pgfqpoint{2.485086in}{1.323962in}}% +\pgfpathlineto{\pgfqpoint{2.500959in}{1.363022in}}% +\pgfpathlineto{\pgfqpoint{2.516831in}{1.413067in}}% +\pgfpathlineto{\pgfqpoint{2.532703in}{1.473735in}}% +\pgfpathlineto{\pgfqpoint{2.553866in}{1.570194in}}% +\pgfpathlineto{\pgfqpoint{2.575028in}{1.682799in}}% +\pgfpathlineto{\pgfqpoint{2.601482in}{1.842735in}}% +\pgfpathlineto{\pgfqpoint{2.633226in}{2.055389in}}% +\pgfpathlineto{\pgfqpoint{2.728459in}{2.712794in}}% +\pgfpathlineto{\pgfqpoint{2.754912in}{2.866609in}}% +\pgfpathlineto{\pgfqpoint{2.776075in}{2.970913in}}% +\pgfpathlineto{\pgfqpoint{2.791947in}{3.035961in}}% +\pgfpathlineto{\pgfqpoint{2.807819in}{3.088287in}}% +\pgfpathlineto{\pgfqpoint{2.818401in}{3.115544in}}% +\pgfpathlineto{\pgfqpoint{2.828982in}{3.136361in}}% +\pgfpathlineto{\pgfqpoint{2.839564in}{3.150485in}}% +\pgfpathlineto{\pgfqpoint{2.850145in}{3.157708in}}% +\pgfpathlineto{\pgfqpoint{2.855436in}{3.158677in}}% +\pgfpathlineto{\pgfqpoint{2.860726in}{3.157860in}}% +\pgfpathlineto{\pgfqpoint{2.866017in}{3.155244in}}% +\pgfpathlineto{\pgfqpoint{2.876599in}{3.144569in}}% +\pgfpathlineto{\pgfqpoint{2.887180in}{3.126596in}}% +\pgfpathlineto{\pgfqpoint{2.897761in}{3.101314in}}% +\pgfpathlineto{\pgfqpoint{2.908343in}{3.068761in}}% +\pgfpathlineto{\pgfqpoint{2.924215in}{3.006498in}}% +\pgfpathlineto{\pgfqpoint{2.940087in}{2.928568in}}% +\pgfpathlineto{\pgfqpoint{2.955959in}{2.835706in}}% +\pgfpathlineto{\pgfqpoint{2.977122in}{2.690371in}}% +\pgfpathlineto{\pgfqpoint{2.998285in}{2.523160in}}% +\pgfpathlineto{\pgfqpoint{3.024738in}{2.288895in}}% +\pgfpathlineto{\pgfqpoint{3.061773in}{1.928914in}}% +\pgfpathlineto{\pgfqpoint{3.109390in}{1.462671in}}% +\pgfpathlineto{\pgfqpoint{3.135843in}{1.229526in}}% +\pgfpathlineto{\pgfqpoint{3.157006in}{1.063841in}}% +\pgfpathlineto{\pgfqpoint{3.178169in}{0.921048in}}% +\pgfpathlineto{\pgfqpoint{3.194041in}{0.831078in}}% +\pgfpathlineto{\pgfqpoint{3.209913in}{0.757165in}}% +\pgfpathlineto{\pgfqpoint{3.225785in}{0.700319in}}% +\pgfpathlineto{\pgfqpoint{3.236366in}{0.672294in}}% +\pgfpathlineto{\pgfqpoint{3.246948in}{0.652372in}}% +\pgfpathlineto{\pgfqpoint{3.257529in}{0.640675in}}% +\pgfpathlineto{\pgfqpoint{3.262820in}{0.637934in}}% +\pgfpathlineto{\pgfqpoint{3.268111in}{0.637273in}}% +\pgfpathlineto{\pgfqpoint{3.273401in}{0.638691in}}% +\pgfpathlineto{\pgfqpoint{3.278692in}{0.642186in}}% +\pgfpathlineto{\pgfqpoint{3.289274in}{0.655385in}}% +\pgfpathlineto{\pgfqpoint{3.299855in}{0.676791in}}% +\pgfpathlineto{\pgfqpoint{3.310436in}{0.706272in}}% +\pgfpathlineto{\pgfqpoint{3.321018in}{0.743651in}}% +\pgfpathlineto{\pgfqpoint{3.336890in}{0.814020in}}% +\pgfpathlineto{\pgfqpoint{3.352762in}{0.900680in}}% +\pgfpathlineto{\pgfqpoint{3.368634in}{1.002450in}}% +\pgfpathlineto{\pgfqpoint{3.389797in}{1.159225in}}% +\pgfpathlineto{\pgfqpoint{3.416250in}{1.383646in}}% +\pgfpathlineto{\pgfqpoint{3.447995in}{1.683359in}}% +\pgfpathlineto{\pgfqpoint{3.553809in}{2.713731in}}% +\pgfpathlineto{\pgfqpoint{3.580262in}{2.928394in}}% +\pgfpathlineto{\pgfqpoint{3.601425in}{3.075502in}}% +\pgfpathlineto{\pgfqpoint{3.617297in}{3.169087in}}% +\pgfpathlineto{\pgfqpoint{3.633169in}{3.246883in}}% +\pgfpathlineto{\pgfqpoint{3.649041in}{3.307831in}}% +\pgfpathlineto{\pgfqpoint{3.659623in}{3.338682in}}% +\pgfpathlineto{\pgfqpoint{3.670204in}{3.361485in}}% +\pgfpathlineto{\pgfqpoint{3.680786in}{3.376101in}}% +\pgfpathlineto{\pgfqpoint{3.686076in}{3.380309in}}% +\pgfpathlineto{\pgfqpoint{3.691367in}{3.382440in}}% +\pgfpathlineto{\pgfqpoint{3.696658in}{3.382493in}}% +\pgfpathlineto{\pgfqpoint{3.701948in}{3.380466in}}% +\pgfpathlineto{\pgfqpoint{3.707239in}{3.376363in}}% +\pgfpathlineto{\pgfqpoint{3.717821in}{3.361955in}}% +\pgfpathlineto{\pgfqpoint{3.728402in}{3.339358in}}% +\pgfpathlineto{\pgfqpoint{3.738983in}{3.308708in}}% +\pgfpathlineto{\pgfqpoint{3.749565in}{3.270190in}}% +\pgfpathlineto{\pgfqpoint{3.765437in}{3.198184in}}% +\pgfpathlineto{\pgfqpoint{3.781309in}{3.109994in}}% +\pgfpathlineto{\pgfqpoint{3.802472in}{2.969336in}}% +\pgfpathlineto{\pgfqpoint{3.823635in}{2.805466in}}% +\pgfpathlineto{\pgfqpoint{3.850088in}{2.574075in}}% +\pgfpathlineto{\pgfqpoint{3.887123in}{2.216460in}}% +\pgfpathlineto{\pgfqpoint{3.966484in}{1.434106in}}% +\pgfpathlineto{\pgfqpoint{3.992937in}{1.203977in}}% +\pgfpathlineto{\pgfqpoint{4.014100in}{1.041407in}}% +\pgfpathlineto{\pgfqpoint{4.035263in}{0.902271in}}% +\pgfpathlineto{\pgfqpoint{4.051135in}{0.815347in}}% +\pgfpathlineto{\pgfqpoint{4.067007in}{0.744696in}}% +\pgfpathlineto{\pgfqpoint{4.082879in}{0.691279in}}% +\pgfpathlineto{\pgfqpoint{4.093461in}{0.665613in}}% +\pgfpathlineto{\pgfqpoint{4.104042in}{0.648090in}}% +\pgfpathlineto{\pgfqpoint{4.114623in}{0.638817in}}% +\pgfpathlineto{\pgfqpoint{4.119914in}{0.637294in}}% +\pgfpathlineto{\pgfqpoint{4.125205in}{0.637851in}}% +\pgfpathlineto{\pgfqpoint{4.130496in}{0.640487in}}% +\pgfpathlineto{\pgfqpoint{4.135786in}{0.645197in}}% +\pgfpathlineto{\pgfqpoint{4.146368in}{0.660811in}}% +\pgfpathlineto{\pgfqpoint{4.156949in}{0.684597in}}% +\pgfpathlineto{\pgfqpoint{4.167530in}{0.716413in}}% +\pgfpathlineto{\pgfqpoint{4.178112in}{0.756065in}}% +\pgfpathlineto{\pgfqpoint{4.193984in}{0.829697in}}% +\pgfpathlineto{\pgfqpoint{4.209856in}{0.919407in}}% +\pgfpathlineto{\pgfqpoint{4.231019in}{1.061888in}}% +\pgfpathlineto{\pgfqpoint{4.252182in}{1.227307in}}% +\pgfpathlineto{\pgfqpoint{4.278635in}{1.460197in}}% +\pgfpathlineto{\pgfqpoint{4.315670in}{1.818993in}}% +\pgfpathlineto{\pgfqpoint{4.395031in}{2.600031in}}% +\pgfpathlineto{\pgfqpoint{4.421484in}{2.828606in}}% +\pgfpathlineto{\pgfqpoint{4.442647in}{2.989587in}}% +\pgfpathlineto{\pgfqpoint{4.463810in}{3.126867in}}% +\pgfpathlineto{\pgfqpoint{4.479682in}{3.212251in}}% +\pgfpathlineto{\pgfqpoint{4.495554in}{3.281259in}}% +\pgfpathlineto{\pgfqpoint{4.506136in}{3.317692in}}% +\pgfpathlineto{\pgfqpoint{4.516717in}{3.346203in}}% +\pgfpathlineto{\pgfqpoint{4.527298in}{3.366619in}}% +\pgfpathlineto{\pgfqpoint{4.537880in}{3.378817in}}% +\pgfpathlineto{\pgfqpoint{4.543170in}{3.381810in}}% +\pgfpathlineto{\pgfqpoint{4.548461in}{3.382723in}}% +\pgfpathlineto{\pgfqpoint{4.553752in}{3.381558in}}% +\pgfpathlineto{\pgfqpoint{4.559043in}{3.378314in}}% +\pgfpathlineto{\pgfqpoint{4.569624in}{3.365615in}}% +\pgfpathlineto{\pgfqpoint{4.580205in}{3.344704in}}% +\pgfpathlineto{\pgfqpoint{4.590787in}{3.315707in}}% +\pgfpathlineto{\pgfqpoint{4.601368in}{3.278801in}}% +\pgfpathlineto{\pgfqpoint{4.617240in}{3.209112in}}% +\pgfpathlineto{\pgfqpoint{4.633112in}{3.123089in}}% +\pgfpathlineto{\pgfqpoint{4.648985in}{3.021904in}}% +\pgfpathlineto{\pgfqpoint{4.670147in}{2.865815in}}% +\pgfpathlineto{\pgfqpoint{4.696601in}{2.642076in}}% +\pgfpathlineto{\pgfqpoint{4.728345in}{2.342894in}}% +\pgfpathlineto{\pgfqpoint{4.834159in}{1.311803in}}% +\pgfpathlineto{\pgfqpoint{4.860613in}{1.096395in}}% +\pgfpathlineto{\pgfqpoint{4.881776in}{0.948559in}}% +\pgfpathlineto{\pgfqpoint{4.897648in}{0.854361in}}% +\pgfpathlineto{\pgfqpoint{4.913520in}{0.775905in}}% +\pgfpathlineto{\pgfqpoint{4.929392in}{0.714259in}}% +\pgfpathlineto{\pgfqpoint{4.939973in}{0.682925in}}% +\pgfpathlineto{\pgfqpoint{4.950555in}{0.659631in}}% +\pgfpathlineto{\pgfqpoint{4.961136in}{0.644516in}}% +\pgfpathlineto{\pgfqpoint{4.966427in}{0.640057in}}% +\pgfpathlineto{\pgfqpoint{4.971717in}{0.637673in}}% +\pgfpathlineto{\pgfqpoint{4.977008in}{0.637368in}}% +\pgfpathlineto{\pgfqpoint{4.982299in}{0.639143in}}% +\pgfpathlineto{\pgfqpoint{4.987590in}{0.642995in}}% +\pgfpathlineto{\pgfqpoint{4.998171in}{0.656903in}}% +\pgfpathlineto{\pgfqpoint{5.008752in}{0.679007in}}% +\pgfpathlineto{\pgfqpoint{5.019334in}{0.709174in}}% +\pgfpathlineto{\pgfqpoint{5.029915in}{0.747222in}}% +\pgfpathlineto{\pgfqpoint{5.045787in}{0.818551in}}% +\pgfpathlineto{\pgfqpoint{5.061659in}{0.906109in}}% +\pgfpathlineto{\pgfqpoint{5.082822in}{1.046008in}}% +\pgfpathlineto{\pgfqpoint{5.103985in}{1.209229in}}% +\pgfpathlineto{\pgfqpoint{5.130439in}{1.439992in}}% +\pgfpathlineto{\pgfqpoint{5.167474in}{1.797104in}}% +\pgfpathlineto{\pgfqpoint{5.188636in}{2.009983in}}% +\pgfpathlineto{\pgfqpoint{5.188636in}{2.009983in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.750000in}{0.500000in}}% +\pgfpathlineto{\pgfqpoint{0.750000in}{3.520000in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{5.400000in}{0.500000in}}% +\pgfpathlineto{\pgfqpoint{5.400000in}{3.520000in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.750000in}{0.500000in}}% +\pgfpathlineto{\pgfqpoint{5.400000in}{0.500000in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\begin{pgfscope}% +\pgfsetrectcap% +\pgfsetmiterjoin% +\pgfsetlinewidth{0.803000pt}% +\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}% +\pgfsetstrokecolor{currentstroke}% +\pgfsetdash{}{0pt}% +\pgfpathmoveto{\pgfqpoint{0.750000in}{3.520000in}}% +\pgfpathlineto{\pgfqpoint{5.400000in}{3.520000in}}% +\pgfusepath{stroke}% +\end{pgfscope}% +\end{pgfpicture}% +\makeatother% +\endgroup% diff --git a/buch/papers/fm/Quellen/NaT_Skript_20210920.pdf b/buch/papers/fm/Quellen/NaT_Skript_20210920.pdf new file mode 100644 index 0000000..b9acc1f Binary files /dev/null and b/buch/papers/fm/Quellen/NaT_Skript_20210920.pdf differ diff --git a/buch/papers/fm/main.tex b/buch/papers/fm/main.tex index 731f56f..0c98427 100644 --- a/buch/papers/fm/main.tex +++ b/buch/papers/fm/main.tex @@ -14,20 +14,9 @@ Die Frequenzmodulation ist eine Modulation die man auch schon im alten Radio findet. Falls du dich an die Zeit erinnerst, konnte man zwischen \textit{FM-AM} Umschalten, dies bedeutete so viel wie: \textit{F}requenz-\textit{M}odulation und \textit{A}mplituden-\textit{M}odulation. -Durch die Modulation wird ein Nachrichtensignal \(m(t)\) auf ein Trägersignal (z.B. ein Sinus- oder Rechtecksignal) abgebildet (kombiniert). -Durch dieses Auftragen vom Nachrichtensignal \(m(t)\) kann das modulierte Signal in einem gewünschten Frequenzbereich übertragen werden. -Der ursprünglich Frequenzbereich des Nachrichtensignal \(m(t)\) erstreckt sich typischerweise von 0 Hz bis zur Bandbreite \(B_m\). -\newline -Beim Empfänger wird dann durch Demodulation das ursprüngliche Nachrichtensignal \(m(t)\) so originalgetreu wie möglich zurückgewonnen. -\newline -Beim Trägersignal \(x_c(t)\) handelt es sich um ein informationsloses Hilfssignal. -Durch die Modulation mit dem Nachrichtensignal \(m(t)\) wird es zum modulierten zu übertragenden Signal. -Für alle Erklärungen wird ein sinusförmiges Trägersignal benutzt, jedoch kann auch ein Rechtecksignal, -welches Digital einfach umzusetzten ist, -genauso als Trägersignal genutzt werden kann. -Zuerst wird erklärt was \textit{FM-AM} ist, danach wie sich diese im Frequenzspektrum verhalten. -Erst dann erklär ich dir wie die Besselfunktion mit der Frequenzmodulation( acro?) zusammenhängt. -Nun zur Modulation im nächsten Abschnitt.\cite{fm:NAT} +Um das Thema einwenig einzuschränken werde ich leider nichts über die Vertiefte, (Physikalische) zusammenhänge oder die Demodulation aufzeigen. +Dieses Kapitel soll nurdie Frequenzmodulation und ihren zusammenhang mit der Besselfunktion erklären. +Aber zuerst einmal zur Modulation selbst, wie funktioniert diese Mathematisch. \input{papers/fm/00_modulation.tex} -- cgit v1.2.1 From 1cd844f0459df9d264c5552047af320b378df8ba Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Tue, 16 Aug 2022 17:16:27 +0200 Subject: kugel: Reorganize figures directory, add tikz spherical coordinates and flux --- buch/papers/kugel/figures/flux.pdf | Bin 0 -> 345665 bytes buch/papers/kugel/figures/povray/Makefile | 30 +++ buch/papers/kugel/figures/povray/curvature.maxima | 6 + buch/papers/kugel/figures/povray/curvature.pov | 139 ++++++++++ buch/papers/kugel/figures/povray/curvgraph.m | 140 ++++++++++ buch/papers/kugel/figures/povray/spherecurve.cpp | 292 +++++++++++++++++++++ buch/papers/kugel/figures/povray/spherecurve.m | 160 +++++++++++ .../papers/kugel/figures/povray/spherecurve.maxima | 13 + buch/papers/kugel/figures/povray/spherecurve.pov | 73 ++++++ .../kugel/figures/tikz/spherical-coordinates.pdf | Bin 0 -> 5824 bytes .../kugel/figures/tikz/spherical-coordinates.tex | 99 +++++++ buch/papers/kugel/images/Makefile | 30 --- buch/papers/kugel/images/curvature.maxima | 6 - buch/papers/kugel/images/curvature.pov | 139 ---------- buch/papers/kugel/images/curvgraph.m | 140 ---------- buch/papers/kugel/images/spherecurve.cpp | 292 --------------------- buch/papers/kugel/images/spherecurve.m | 160 ----------- buch/papers/kugel/images/spherecurve.maxima | 13 - buch/papers/kugel/images/spherecurve.pov | 73 ------ 19 files changed, 952 insertions(+), 853 deletions(-) create mode 100644 buch/papers/kugel/figures/flux.pdf create mode 100644 buch/papers/kugel/figures/povray/Makefile create mode 100644 buch/papers/kugel/figures/povray/curvature.maxima create mode 100644 buch/papers/kugel/figures/povray/curvature.pov create mode 100644 buch/papers/kugel/figures/povray/curvgraph.m create mode 100644 buch/papers/kugel/figures/povray/spherecurve.cpp create mode 100644 buch/papers/kugel/figures/povray/spherecurve.m create mode 100644 buch/papers/kugel/figures/povray/spherecurve.maxima create mode 100644 buch/papers/kugel/figures/povray/spherecurve.pov create mode 100644 buch/papers/kugel/figures/tikz/spherical-coordinates.pdf create mode 100644 buch/papers/kugel/figures/tikz/spherical-coordinates.tex delete mode 100644 buch/papers/kugel/images/Makefile delete mode 100644 buch/papers/kugel/images/curvature.maxima delete mode 100644 buch/papers/kugel/images/curvature.pov delete mode 100644 buch/papers/kugel/images/curvgraph.m delete mode 100644 buch/papers/kugel/images/spherecurve.cpp delete mode 100644 buch/papers/kugel/images/spherecurve.m delete mode 100644 buch/papers/kugel/images/spherecurve.maxima delete mode 100644 buch/papers/kugel/images/spherecurve.pov diff --git a/buch/papers/kugel/figures/flux.pdf b/buch/papers/kugel/figures/flux.pdf new file mode 100644 index 0000000..6a87288 Binary files /dev/null and b/buch/papers/kugel/figures/flux.pdf differ diff --git a/buch/papers/kugel/figures/povray/Makefile b/buch/papers/kugel/figures/povray/Makefile new file mode 100644 index 0000000..4226dab --- /dev/null +++ b/buch/papers/kugel/figures/povray/Makefile @@ -0,0 +1,30 @@ +# +# Makefile -- build images +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +all: curvature.jpg spherecurve.jpg + +curvature.inc: curvgraph.m + octave curvgraph.m + +curvature.png: curvature.pov curvature.inc + povray +A0.1 +W1920 +H1080 +Ocurvature.png curvature.pov + +curvature.jpg: curvature.png + convert curvature.png -density 300 -units PixelsPerInch curvature.jpg + +spherecurve2.inc: spherecurve.m + octave spherecurve.m + +spherecurve.png: spherecurve.pov spherecurve.inc + povray +A0.1 +W1080 +H1080 +Ospherecurve.png spherecurve.pov + +spherecurve.jpg: spherecurve.png + convert spherecurve.png -density 300 -units PixelsPerInch spherecurve.jpg + +spherecurve: spherecurve.cpp + g++ -o spherecurve -g -Wall -O spherecurve.cpp + +spherecurve.inc: spherecurve + ./spherecurve diff --git a/buch/papers/kugel/figures/povray/curvature.maxima b/buch/papers/kugel/figures/povray/curvature.maxima new file mode 100644 index 0000000..6313642 --- /dev/null +++ b/buch/papers/kugel/figures/povray/curvature.maxima @@ -0,0 +1,6 @@ + +f: exp(-r^2/sigma^2)/sigma; +laplacef: ratsimp(diff(r * diff(f,r), r) / r); +f: exp(-r^2/(2*sigma^2))/(sqrt(2)*sigma); +laplacef: ratsimp(diff(r * diff(f,r), r) / r); + diff --git a/buch/papers/kugel/figures/povray/curvature.pov b/buch/papers/kugel/figures/povray/curvature.pov new file mode 100644 index 0000000..3b15d77 --- /dev/null +++ b/buch/papers/kugel/figures/povray/curvature.pov @@ -0,0 +1,139 @@ +// +// curvature.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#version 3.7; +#include "colors.inc" + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.09; + +camera { + location <10, 10, -40> + look_at <0, 0, 0> + right 16/9 * x * imagescale + up y * imagescale +} + +light_source { + <-10, 10, -40> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + +// +// draw an arrow from to with thickness with +// color +// +#macro arrow(from, to, arrowthickness, c) +#declare arrowdirection = vnormalize(to - from); +#declare arrowlength = vlength(to - from); +union { + sphere { + from, 1.1 * arrowthickness + } + cylinder { + from, + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + arrowthickness + } + cone { + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + 2 * arrowthickness, + to, + 0 + } + pigment { + color c + } + finish { + specular 0.9 + metallic + } +} +#end + +arrow(<-3.1,0,0>, <3.1,0,0>, 0.01, White) +arrow(<0,-1,0>, <0,1,0>, 0.01, White) +arrow(<0,0,-2.1>, <0,0,2.1>, 0.01, White) + +#include "curvature.inc" + +#declare sigma = 1; +#declare s = 1.4; +#declare N0 = 0.4; +#declare funktion = function(r) { + (exp(-r*r/(sigma*sigma)) / sigma + - + exp(-r*r/(2*sigma*sigma)) / (sqrt(2)*sigma)) / N0 +}; +#declare hypot = function(xx, yy) { sqrt(xx*xx+yy*yy) }; + +#declare Funktion = function(x,y) { funktion(hypot(x+s,y)) - funktion(hypot(x-s,y)) }; +#macro punkt(xx,yy) + +#end + +#declare griddiameter = 0.006; +union { + #declare xmin = -3; + #declare xmax = 3; + #declare ymin = -2; + #declare ymax = 2; + + + #declare xstep = 0.2; + #declare ystep = 0.02; + #declare xx = xmin; + #while (xx < xmax + xstep/2) + #declare yy = ymin; + #declare P = punkt(xx, yy); + #while (yy < ymax - ystep/2) + #declare yy = yy + ystep; + #declare Q = punkt(xx, yy); + sphere { P, griddiameter } + cylinder { P, Q, griddiameter } + #declare P = Q; + #end + sphere { P, griddiameter } + #declare xx = xx + xstep; + #end + + #declare xstep = 0.02; + #declare ystep = 0.2; + #declare yy = ymin; + #while (yy < ymax + ystep/2) + #declare xx = xmin; + #declare P = punkt(xx, yy); + #while (xx < xmax - xstep/2) + #declare xx = xx + xstep; + #declare Q = punkt(xx, yy); + sphere { P, griddiameter } + cylinder { P, Q, griddiameter } + #declare P = Q; + #end + sphere { P, griddiameter } + #declare yy = yy + ystep; + #end + + pigment { + color rgb<0.8,0.8,0.8> + } + finish { + metallic + specular 0.8 + } +} + diff --git a/buch/papers/kugel/figures/povray/curvgraph.m b/buch/papers/kugel/figures/povray/curvgraph.m new file mode 100644 index 0000000..75effd6 --- /dev/null +++ b/buch/papers/kugel/figures/povray/curvgraph.m @@ -0,0 +1,140 @@ +# +# curvature.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# + +global N; +N = 10; + +global sigma2; +sigma2 = 1; + +global s; +s = 1.4; + +global cmax; +cmax = 0.9; +global cmin; +cmin = -0.9; + +global Cmax; +global Cmin; +Cmax = 0; +Cmin = 0; + +xmin = -3; +xmax = 3; +xsteps = 200; +hx = (xmax - xmin) / xsteps; + +ymin = -2; +ymax = 2; +ysteps = 200; +hy = (ymax - ymin) / ysteps; + +function retval = f0(r) + global sigma2; + retval = exp(-r^2/sigma2)/sqrt(sigma2) - exp(-r^2/(2*sigma2))/(sqrt(2*sigma2)); +end + +global N0; +N0 = f0(0) +N0 = 0.4; + +function retval = f1(x,y) + global N0; + retval = f0(hypot(x, y)) / N0; +endfunction + +function retval = f(x, y) + global s; + retval = f1(x+s, y) - f1(x-s, y); +endfunction + +function retval = curvature0(r) + global sigma2; + retval = ( + -4*(sigma2-r^2)*exp(-r^2/sigma2) + + + (2*sigma2-r^2)*exp(-r^2/(2*sigma2)) + ) / (sigma2^(5/2)); +endfunction + +function retval = curvature1(x, y) + retval = curvature0(hypot(x, y)); +endfunction + +function retval = curvature(x, y) + global s; + retval = curvature1(x+s, y) - curvature1(x-s, y); +endfunction + +function retval = farbe(x, y) + global Cmax; + global Cmin; + global cmax; + global cmin; + c = curvature(x, y); + if (c < Cmin) + Cmin = c + endif + if (c > Cmax) + Cmax = c + endif + u = (c - cmin) / (cmax - cmin); + if (u > 1) + u = 1; + endif + if (u < 0) + u = 0; + endif + color = [ u, 0.5, 1-u ]; + color = color/max(color); + color(1,4) = c/2; + retval = color; +endfunction + +function dreieck(fn, A, B, C) + fprintf(fn, "\ttriangle {\n"); + fprintf(fn, "\t <%.4f,%.4f,%.4f>,\n", A(1,1), A(1,3), A(1,2)); + fprintf(fn, "\t <%.4f,%.4f,%.4f>,\n", B(1,1), B(1,3), B(1,2)); + fprintf(fn, "\t <%.4f,%.4f,%.4f>\n", C(1,1), C(1,3), C(1,2)); + fprintf(fn, "\t}\n"); +endfunction + +function viereck(fn, punkte) + color = farbe(mean(punkte(:,1)), mean(punkte(:,2))); + fprintf(fn, " mesh {\n"); + dreieck(fn, punkte(1,:), punkte(2,:), punkte(3,:)); + dreieck(fn, punkte(2,:), punkte(3,:), punkte(4,:)); + fprintf(fn, "\tpigment { color rgb<%.4f,%.4f,%.4f> } // %.4f\n", + color(1,1), color(1,2), color(1,3), color(1,4)); + fprintf(fn, " }\n"); +endfunction + +fn = fopen("curvature.inc", "w"); +punkte = zeros(4,3); +for ix = (0:xsteps-1) + x = xmin + ix * hx; + punkte(1,1) = x; + punkte(2,1) = x; + punkte(3,1) = x + hx; + punkte(4,1) = x + hx; + for iy = (0:ysteps-1) + y = ymin + iy * hy; + punkte(1,2) = y; + punkte(2,2) = y + hy; + punkte(3,2) = y; + punkte(4,2) = y + hy; + for i = (1:4) + punkte(i,3) = f(punkte(i,1), punkte(i,2)); + endfor + viereck(fn, punkte); + end +end +#fprintf(fn, " finish { metallic specular 0.5 }\n"); +fclose(fn); + +printf("Cmax = %.4f\n", Cmax); +printf("Cmin = %.4f\n", Cmin); diff --git a/buch/papers/kugel/figures/povray/spherecurve.cpp b/buch/papers/kugel/figures/povray/spherecurve.cpp new file mode 100644 index 0000000..8ddf5e5 --- /dev/null +++ b/buch/papers/kugel/figures/povray/spherecurve.cpp @@ -0,0 +1,292 @@ +/* + * spherecurve.cpp + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +#include +#include +#include +#include +#include + +inline double sqr(double x) { return x * x; } + +/** + * \brief Class for 3d vectors (also used as colors) + */ +class vector { + double X[3]; +public: + vector() { X[0] = X[1] = X[2] = 0; } + vector(double a) { X[0] = X[1] = X[2] = a; } + vector(double x, double y, double z) { + X[0] = x; X[1] = y; X[2] = z; + } + vector(double theta, double phi) { + double s = sin(theta); + X[0] = cos(phi) * s; + X[1] = sin(phi) * s; + X[2] = cos(theta); + } + vector(const vector& other) { + for (int i = 0; i < 3; i++) { + X[i] = other.X[i]; + } + } + vector operator+(const vector& other) const { + return vector(X[0] + other.X[0], + X[1] + other.X[1], + X[2] + other.X[2]); + } + vector operator*(double l) const { + return vector(X[0] * l, X[1] * l, X[2] * l); + } + double operator*(const vector& other) const { + double s = 0; + for (int i = 0; i < 3; i++) { + s += X[i] * other.X[i]; + } + return s; + } + double norm() const { + double s = 0; + for (int i = 0; i < 3; i++) { + s += sqr(X[i]); + } + return sqrt(s); + } + vector normalize() const { + double l = norm(); + return vector(X[0]/l, X[1]/l, X[2]/l); + } + double max() const { + return std::max(X[0], std::max(X[1], X[2])); + } + double l0norm() const { + double l = 0; + for (int i = 0; i < 3; i++) { + if (fabs(X[i]) > l) { + l = fabs(X[i]); + } + } + return l; + } + vector l0normalize() const { + double l = l0norm(); + vector result(X[0]/l, X[1]/l, X[2]/l); + return result; + } + const double& operator[](int i) const { return X[i]; } + double& operator[](int i) { return X[i]; } +}; + +/** + * \brief Derived 3d vector class implementing color + * + * The constructor in this class converts a single value into a + * color on a suitable gradient. + */ +class color : public vector { +public: + static double utop; + static double ubottom; + static double green; +public: + color(double u) { + u = (u - ubottom) / (utop - ubottom); + if (u > 1) { + u = 1; + } + if (u < 0) { + u = 0; + } + u = pow(u,2); + (*this)[0] = u; + (*this)[1] = green * u * (1 - u); + (*this)[2] = 1-u; + double l = l0norm(); + for (int i = 0; i < 3; i++) { + (*this)[i] /= l; + } + } +}; + +double color::utop = 12; +double color::ubottom = -31; +double color::green = 0.5; + +/** + * \brief Surface model + * + * This class contains the definitions of the functions to plot + * and the parameters to + */ +class surfacefunction { + static vector axes[6]; + + double _a; + double _A; + + double _umin; + double _umax; +public: + double a() const { return _a; } + double A() const { return _A; } + + double umin() const { return _umin; } + double umax() const { return _umax; } + + surfacefunction(double a, double A) : _a(a), _A(A), _umin(0), _umax(0) { + } + + double f(double z) { + return A() * exp(a() * (sqr(z) - 1)); + } + + double g(double z) { + return -f(z) * 2*a() * ((2*a()*sqr(z) + (3-2*a()))*sqr(z) - 1); + } + + double F(const vector& v) { + double s = 0; + for (int i = 0; i < 6; i++) { + s += f(axes[i] * v); + } + return s / 6; + } + + double G(const vector& v) { + double s = 0; + for (int i = 0; i < 6; i++) { + s += g(axes[i] * v); + } + return s / 6; + } +protected: + color farbe(const vector& v) { + double u = G(v); + if (u < _umin) { + _umin = u; + } + if (u > _umax) { + _umax = u; + } + return color(u); + } +}; + +static double phi = (1 + sqrt(5)) / 2; +static double sl = sqrt(sqr(phi) + 1); +vector surfacefunction::axes[6] = { + vector( 0. , -1./sl, phi/sl ), + vector( 0. , 1./sl, phi/sl ), + vector( 1./sl, phi/sl, 0. ), + vector( -1./sl, phi/sl, 0. ), + vector( phi/sl, 0. , 1./sl ), + vector( -phi/sl, 0. , 1./sl ) +}; + +/** + * \brief Class to construct the plot + */ +class surface : public surfacefunction { + FILE *outfile; + + int _phisteps; + int _thetasteps; + double _hphi; + double _htheta; +public: + int phisteps() const { return _phisteps; } + int thetasteps() const { return _thetasteps; } + double hphi() const { return _hphi; } + double htheta() const { return _htheta; } + void phisteps(int s) { _phisteps = s; _hphi = 2 * M_PI / s; } + void thetasteps(int s) { _thetasteps = s; _htheta = M_PI / s; } + + surface(const std::string& filename, double a, double A) + : surfacefunction(a, A) { + outfile = fopen(filename.c_str(), "w"); + phisteps(400); + thetasteps(200); + } + + ~surface() { + fclose(outfile); + } + +private: + void triangle(const vector& v0, const vector& v1, const vector& v2) { + fprintf(outfile, " mesh {\n"); + vector c = (v0 + v1 + v2) * (1./3.); + vector color = farbe(c.normalize()); + vector V0 = v0 * (1 + F(v0)); + vector V1 = v1 * (1 + F(v1)); + vector V2 = v2 * (1 + F(v2)); + fprintf(outfile, "\ttriangle {\n"); + fprintf(outfile, "\t <%.6f,%.6f,%.6f>,\n", + V0[0], V0[2], V0[1]); + fprintf(outfile, "\t <%.6f,%.6f,%.6f>,\n", + V1[0], V1[2], V1[1]); + fprintf(outfile, "\t <%.6f,%.6f,%.6f>\n", + V2[0], V2[2], V2[1]); + fprintf(outfile, "\t}\n"); + fprintf(outfile, "\tpigment { color rgb<%.4f,%.4f,%.4f> }\n", + color[0], color[1], color[2]); + fprintf(outfile, "\tfinish { metallic specular 0.5 }\n"); + fprintf(outfile, " }\n"); + } + + void northcap() { + vector v0(0, 0, 1); + for (int i = 1; i <= phisteps(); i++) { + fprintf(outfile, " // northcap i = %d\n", i); + vector v1(htheta(), (i - 1) * hphi()); + vector v2(htheta(), i * hphi()); + triangle(v0, v1, v2); + } + } + + void southcap() { + vector v0(0, 0, -1); + for (int i = 1; i <= phisteps(); i++) { + fprintf(outfile, " // southcap i = %d\n", i); + vector v1(M_PI - htheta(), (i - 1) * hphi()); + vector v2(M_PI - htheta(), i * hphi()); + triangle(v0, v1, v2); + } + } + + void zone() { + for (int j = 1; j < thetasteps() - 1; j++) { + for (int i = 1; i <= phisteps(); i++) { + fprintf(outfile, " // zone j = %d, i = %d\n", + j, i); + vector v0( j * htheta(), (i-1) * hphi()); + vector v1((j+1) * htheta(), (i-1) * hphi()); + vector v2( j * htheta(), i * hphi()); + vector v3((j+1) * htheta(), i * hphi()); + triangle(v0, v1, v2); + triangle(v1, v2, v3); + } + } + } +public: + void draw() { + northcap(); + southcap(); + zone(); + } +}; + +/** + * \brief main function + */ +int main(int argc, char *argv[]) { + surface S("spherecurve.inc", 5, 10); + color::green = 1.0; + S.draw(); + std::cout << "umin: " << S.umin() << std::endl; + std::cout << "umax: " << S.umax() << std::endl; + return EXIT_SUCCESS; +} diff --git a/buch/papers/kugel/figures/povray/spherecurve.m b/buch/papers/kugel/figures/povray/spherecurve.m new file mode 100644 index 0000000..99d5c9a --- /dev/null +++ b/buch/papers/kugel/figures/povray/spherecurve.m @@ -0,0 +1,160 @@ +# +# spherecurve.m +# +# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +global a; +a = 5; +global A; +A = 10; + +phisteps = 400; +hphi = 2 * pi / phisteps; +thetasteps = 200; +htheta = pi / thetasteps; + +function retval = f(z) + global a; + global A; + retval = A * exp(a * (z^2 - 1)); +endfunction + +function retval = g(z) + global a; + retval = -f(z) * 2 * a * (2 * a * z^4 + (3 - 2*a) * z^2 - 1); + # 2 + # - a 2 4 2 2 a z + #(%o6) - %e (4 a z + (6 a - 4 a ) z - 2 a) %e +endfunction + +phi = (1 + sqrt(5)) / 2; + +global axes; +axes = [ + 0, 0, 1, -1, phi, -phi; + 1, -1, phi, phi, 0, 0; + phi, phi, 0, 0, 1, 1; +]; +axes = axes / (sqrt(phi^2+1)); + +function retval = kugel(theta, phi) + retval = [ + cos(phi) * sin(theta); + sin(phi) * sin(theta); + cos(theta) + ]; +endfunction + +function retval = F(v) + global axes; + s = 0; + for i = (1:6) + z = axes(:,i)' * v; + s = s + f(z); + endfor + retval = s / 6; +endfunction + +function retval = F2(theta, phi) + v = kugel(theta, phi); + retval = F(v); +endfunction + +function retval = G(v) + global axes; + s = 0; + for i = (1:6) + s = s + g(axes(:,i)' * v); + endfor + retval = s / 6; +endfunction + +function retval = G2(theta, phi) + v = kugel(theta, phi); + retval = G(v); +endfunction + +function retval = cnormalize(u) + utop = 11; + ubottom = -30; + retval = (u - ubottom) / (utop - ubottom); + if (retval > 1) + retval = 1; + endif + if (retval < 0) + retval = 0; + endif +endfunction + +global umin; +umin = 0; +global umax; +umax = 0; + +function color = farbe(v) + global umin; + global umax; + u = G(v); + if (u < umin) + umin = u; + endif + if (u > umax) + umax = u; + endif + u = cnormalize(u); + color = [ u, 0.5, 1-u ]; + color = color/max(color); +endfunction + +function dreieck(fn, v0, v1, v2) + fprintf(fn, " mesh {\n"); + c = (v0 + v1 + v2) / 3; + c = c / norm(c); + color = farbe(c); + v0 = v0 * (1 + F(v0)); + v1 = v1 * (1 + F(v1)); + v2 = v2 * (1 + F(v2)); + fprintf(fn, "\ttriangle {\n"); + fprintf(fn, "\t <%.6f,%.6f,%.6f>,\n", v0(1,1), v0(3,1), v0(2,1)); + fprintf(fn, "\t <%.6f,%.6f,%.6f>,\n", v1(1,1), v1(3,1), v1(2,1)); + fprintf(fn, "\t <%.6f,%.6f,%.6f>\n", v2(1,1), v2(3,1), v2(2,1)); + fprintf(fn, "\t}\n"); + fprintf(fn, "\tpigment { color rgb<%.4f,%.4f,%.4f> }\n", + color(1,1), color(1,2), color(1,3)); + fprintf(fn, "\tfinish { metallic specular 0.5 }\n"); + fprintf(fn, " }\n"); +endfunction + +fn = fopen("spherecurve2.inc", "w"); + + for i = (1:phisteps) + # Polkappe nord + v0 = [ 0; 0; 1 ]; + v1 = kugel(htheta, (i-1) * hphi); + v2 = kugel(htheta, i * hphi); + fprintf(fn, " // i = %d\n", i); + dreieck(fn, v0, v1, v2); + + # Polkappe sued + v0 = [ 0; 0; -1 ]; + v1 = kugel(pi-htheta, (i-1) * hphi); + v2 = kugel(pi-htheta, i * hphi); + dreieck(fn, v0, v1, v2); + endfor + + for j = (1:thetasteps-2) + for i = (1:phisteps) + v0 = kugel( j * htheta, (i-1) * hphi); + v1 = kugel((j+1) * htheta, (i-1) * hphi); + v2 = kugel( j * htheta, i * hphi); + v3 = kugel((j+1) * htheta, i * hphi); + fprintf(fn, " // i = %d, j = %d\n", i, j); + dreieck(fn, v0, v1, v2); + dreieck(fn, v1, v2, v3); + endfor + endfor + +fclose(fn); + +umin +umax diff --git a/buch/papers/kugel/figures/povray/spherecurve.maxima b/buch/papers/kugel/figures/povray/spherecurve.maxima new file mode 100644 index 0000000..1e9077c --- /dev/null +++ b/buch/papers/kugel/figures/povray/spherecurve.maxima @@ -0,0 +1,13 @@ +/* + * spherecurv.maxima + * + * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ +f: exp(-a * sin(theta)^2); + +g: ratsimp(diff(sin(theta) * diff(f, theta), theta)/sin(theta)); +g: subst(z, cos(theta), g); +g: subst(sqrt(1-z^2), sin(theta), g); +ratsimp(g); + +f: ratsimp(subst(sqrt(1-z^2), sin(theta), f)); diff --git a/buch/papers/kugel/figures/povray/spherecurve.pov b/buch/papers/kugel/figures/povray/spherecurve.pov new file mode 100644 index 0000000..b1bf4b8 --- /dev/null +++ b/buch/papers/kugel/figures/povray/spherecurve.pov @@ -0,0 +1,73 @@ +// +// curvature.pov +// +// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#version 3.7; +#include "colors.inc" + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.13; + +camera { + location <10, 10, -40> + look_at <0, 0, 0> + right x * imagescale + up y * imagescale +} + +light_source { + <-10, 10, -40> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + +// +// draw an arrow from to with thickness with +// color +// +#macro arrow(from, to, arrowthickness, c) +#declare arrowdirection = vnormalize(to - from); +#declare arrowlength = vlength(to - from); +union { + sphere { + from, 1.1 * arrowthickness + } + cylinder { + from, + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + arrowthickness + } + cone { + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + 2 * arrowthickness, + to, + 0 + } + pigment { + color c + } + finish { + specular 0.9 + metallic + } +} +#end + +arrow(<-2.7,0,0>, <2.7,0,0>, 0.03, White) +arrow(<0,-2.7,0>, <0,2.7,0>, 0.03, White) +arrow(<0,0,-2.7>, <0,0,2.7>, 0.03, White) + +#include "spherecurve.inc" + diff --git a/buch/papers/kugel/figures/tikz/spherical-coordinates.pdf b/buch/papers/kugel/figures/tikz/spherical-coordinates.pdf new file mode 100644 index 0000000..28f242e Binary files /dev/null and b/buch/papers/kugel/figures/tikz/spherical-coordinates.pdf differ diff --git a/buch/papers/kugel/figures/tikz/spherical-coordinates.tex b/buch/papers/kugel/figures/tikz/spherical-coordinates.tex new file mode 100644 index 0000000..3a45385 --- /dev/null +++ b/buch/papers/kugel/figures/tikz/spherical-coordinates.tex @@ -0,0 +1,99 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{bm} +\usepackage{lmodern} +\usepackage{tikz-3dplot} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + +\tdplotsetmaincoords{60}{130} +\pgfmathsetmacro{\l}{2} + +\begin{tikzpicture}[ + >=latex, + tdplot_main_coords, + dot/.style = { + black, fill = black, circle, + outer sep = 0, inner sep = 0, + minimum size = .8mm + }, + round/.style = { + draw = orange, thick, circle, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt, + }, + cross/.style = { + cross out, draw = magenta, thick, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt + }, + ] + + % origin + \coordinate (O) at (0,0,0); + + % poles + \coordinate (NP) at (0,0,\l); + \coordinate (SP) at (0,0,-\l); + + % \draw (SP) node[dot, gray] {}; + % \draw (NP) node[dot, gray] {}; + + % gray unit circle + \tdplotdrawarc[gray]{(O)}{\l}{0}{360}{}{}; + \draw[gray, dashed] (-\l, 0, 0) to (\l, 0, 0); + \draw[gray, dashed] (0, -\l, 0) to (0, \l, 0); + + % axis + \draw[->] (O) -- ++(1.25*\l,0,0) node[left] {\(\mathbf{\hat{x}}\)}; + \draw[->] (O) -- ++(0,1.25*\l,0) node[right] {\(\mathbf{\hat{y}}\)}; + \draw[->] (O) -- ++(0,0,1.25*\l) node[above] {\(\mathbf{\hat{z}}\)}; + + % meridians + \foreach \phi in {0, 30, 60, ..., 150}{ + \tdplotsetrotatedcoords{\phi}{90}{0}; + \tdplotdrawarc[lightgray, densely dotted, tdplot_rotated_coords]{(O)}{\l}{0}{360}{}{}; + } + + % dot above and its projection + \pgfmathsetmacro{\phi}{120} + \pgfmathsetmacro{\theta}{40} + + \pgfmathsetmacro{\px}{cos(\phi)*sin(\theta)*\l} + \pgfmathsetmacro{\py}{sin(\phi)*sin(\theta)*\l} + \pgfmathsetmacro{\pz}{cos(\theta)*\l}) + + % point A + \coordinate (A) at (\px,\py,\pz); + \coordinate (Ap) at (\px,\py, 0); + + % lines + \draw[red!80!black, ->] (O) -- (A); + \draw[red!80!black, densely dashed] (O) -- (Ap) -- (A) + node[above right] {\(\mathbf{\hat{r}}\)}; + + % arcs + \tdplotdrawarc[blue!80!black, ->]{(O)}{.8\l}{0}{\phi}{}{}; + \node[below right, blue!80!black] at (.8\l,0,0) {\(\bm{\hat{\varphi}}\)}; + + \tdplotsetrotatedcoords{\phi-90}{-90}{0}; + \tdplotdrawarc[blue!80!black, ->, tdplot_rotated_coords]{(O)}{.95\l}{0}{\theta}{}{}; + \node[above right = 1mm, blue!80!black] at (0,0,.8\l) {\(\bm{\hat{\vartheta}}\)}; + + + % dots + \draw (O) node[dot] {}; + \draw (A) node[dot, fill = red!80!black] {}; + +\end{tikzpicture} +\end{document} +% vim:ts=2 sw=2 et: diff --git a/buch/papers/kugel/images/Makefile b/buch/papers/kugel/images/Makefile deleted file mode 100644 index 4226dab..0000000 --- a/buch/papers/kugel/images/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -# -# Makefile -- build images -# -# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule -# -all: curvature.jpg spherecurve.jpg - -curvature.inc: curvgraph.m - octave curvgraph.m - -curvature.png: curvature.pov curvature.inc - povray +A0.1 +W1920 +H1080 +Ocurvature.png curvature.pov - -curvature.jpg: curvature.png - convert curvature.png -density 300 -units PixelsPerInch curvature.jpg - -spherecurve2.inc: spherecurve.m - octave spherecurve.m - -spherecurve.png: spherecurve.pov spherecurve.inc - povray +A0.1 +W1080 +H1080 +Ospherecurve.png spherecurve.pov - -spherecurve.jpg: spherecurve.png - convert spherecurve.png -density 300 -units PixelsPerInch spherecurve.jpg - -spherecurve: spherecurve.cpp - g++ -o spherecurve -g -Wall -O spherecurve.cpp - -spherecurve.inc: spherecurve - ./spherecurve diff --git a/buch/papers/kugel/images/curvature.maxima b/buch/papers/kugel/images/curvature.maxima deleted file mode 100644 index 6313642..0000000 --- a/buch/papers/kugel/images/curvature.maxima +++ /dev/null @@ -1,6 +0,0 @@ - -f: exp(-r^2/sigma^2)/sigma; -laplacef: ratsimp(diff(r * diff(f,r), r) / r); -f: exp(-r^2/(2*sigma^2))/(sqrt(2)*sigma); -laplacef: ratsimp(diff(r * diff(f,r), r) / r); - diff --git a/buch/papers/kugel/images/curvature.pov b/buch/papers/kugel/images/curvature.pov deleted file mode 100644 index 3b15d77..0000000 --- a/buch/papers/kugel/images/curvature.pov +++ /dev/null @@ -1,139 +0,0 @@ -// -// curvature.pov -// -// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule -// - -#version 3.7; -#include "colors.inc" - -global_settings { - assumed_gamma 1 -} - -#declare imagescale = 0.09; - -camera { - location <10, 10, -40> - look_at <0, 0, 0> - right 16/9 * x * imagescale - up y * imagescale -} - -light_source { - <-10, 10, -40> color White - area_light <1,0,0> <0,0,1>, 10, 10 - adaptive 1 - jitter -} - -sky_sphere { - pigment { - color rgb<1,1,1> - } -} - -// -// draw an arrow from to with thickness with -// color -// -#macro arrow(from, to, arrowthickness, c) -#declare arrowdirection = vnormalize(to - from); -#declare arrowlength = vlength(to - from); -union { - sphere { - from, 1.1 * arrowthickness - } - cylinder { - from, - from + (arrowlength - 5 * arrowthickness) * arrowdirection, - arrowthickness - } - cone { - from + (arrowlength - 5 * arrowthickness) * arrowdirection, - 2 * arrowthickness, - to, - 0 - } - pigment { - color c - } - finish { - specular 0.9 - metallic - } -} -#end - -arrow(<-3.1,0,0>, <3.1,0,0>, 0.01, White) -arrow(<0,-1,0>, <0,1,0>, 0.01, White) -arrow(<0,0,-2.1>, <0,0,2.1>, 0.01, White) - -#include "curvature.inc" - -#declare sigma = 1; -#declare s = 1.4; -#declare N0 = 0.4; -#declare funktion = function(r) { - (exp(-r*r/(sigma*sigma)) / sigma - - - exp(-r*r/(2*sigma*sigma)) / (sqrt(2)*sigma)) / N0 -}; -#declare hypot = function(xx, yy) { sqrt(xx*xx+yy*yy) }; - -#declare Funktion = function(x,y) { funktion(hypot(x+s,y)) - funktion(hypot(x-s,y)) }; -#macro punkt(xx,yy) - -#end - -#declare griddiameter = 0.006; -union { - #declare xmin = -3; - #declare xmax = 3; - #declare ymin = -2; - #declare ymax = 2; - - - #declare xstep = 0.2; - #declare ystep = 0.02; - #declare xx = xmin; - #while (xx < xmax + xstep/2) - #declare yy = ymin; - #declare P = punkt(xx, yy); - #while (yy < ymax - ystep/2) - #declare yy = yy + ystep; - #declare Q = punkt(xx, yy); - sphere { P, griddiameter } - cylinder { P, Q, griddiameter } - #declare P = Q; - #end - sphere { P, griddiameter } - #declare xx = xx + xstep; - #end - - #declare xstep = 0.02; - #declare ystep = 0.2; - #declare yy = ymin; - #while (yy < ymax + ystep/2) - #declare xx = xmin; - #declare P = punkt(xx, yy); - #while (xx < xmax - xstep/2) - #declare xx = xx + xstep; - #declare Q = punkt(xx, yy); - sphere { P, griddiameter } - cylinder { P, Q, griddiameter } - #declare P = Q; - #end - sphere { P, griddiameter } - #declare yy = yy + ystep; - #end - - pigment { - color rgb<0.8,0.8,0.8> - } - finish { - metallic - specular 0.8 - } -} - diff --git a/buch/papers/kugel/images/curvgraph.m b/buch/papers/kugel/images/curvgraph.m deleted file mode 100644 index 75effd6..0000000 --- a/buch/papers/kugel/images/curvgraph.m +++ /dev/null @@ -1,140 +0,0 @@ -# -# curvature.m -# -# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule -# - -global N; -N = 10; - -global sigma2; -sigma2 = 1; - -global s; -s = 1.4; - -global cmax; -cmax = 0.9; -global cmin; -cmin = -0.9; - -global Cmax; -global Cmin; -Cmax = 0; -Cmin = 0; - -xmin = -3; -xmax = 3; -xsteps = 200; -hx = (xmax - xmin) / xsteps; - -ymin = -2; -ymax = 2; -ysteps = 200; -hy = (ymax - ymin) / ysteps; - -function retval = f0(r) - global sigma2; - retval = exp(-r^2/sigma2)/sqrt(sigma2) - exp(-r^2/(2*sigma2))/(sqrt(2*sigma2)); -end - -global N0; -N0 = f0(0) -N0 = 0.4; - -function retval = f1(x,y) - global N0; - retval = f0(hypot(x, y)) / N0; -endfunction - -function retval = f(x, y) - global s; - retval = f1(x+s, y) - f1(x-s, y); -endfunction - -function retval = curvature0(r) - global sigma2; - retval = ( - -4*(sigma2-r^2)*exp(-r^2/sigma2) - + - (2*sigma2-r^2)*exp(-r^2/(2*sigma2)) - ) / (sigma2^(5/2)); -endfunction - -function retval = curvature1(x, y) - retval = curvature0(hypot(x, y)); -endfunction - -function retval = curvature(x, y) - global s; - retval = curvature1(x+s, y) - curvature1(x-s, y); -endfunction - -function retval = farbe(x, y) - global Cmax; - global Cmin; - global cmax; - global cmin; - c = curvature(x, y); - if (c < Cmin) - Cmin = c - endif - if (c > Cmax) - Cmax = c - endif - u = (c - cmin) / (cmax - cmin); - if (u > 1) - u = 1; - endif - if (u < 0) - u = 0; - endif - color = [ u, 0.5, 1-u ]; - color = color/max(color); - color(1,4) = c/2; - retval = color; -endfunction - -function dreieck(fn, A, B, C) - fprintf(fn, "\ttriangle {\n"); - fprintf(fn, "\t <%.4f,%.4f,%.4f>,\n", A(1,1), A(1,3), A(1,2)); - fprintf(fn, "\t <%.4f,%.4f,%.4f>,\n", B(1,1), B(1,3), B(1,2)); - fprintf(fn, "\t <%.4f,%.4f,%.4f>\n", C(1,1), C(1,3), C(1,2)); - fprintf(fn, "\t}\n"); -endfunction - -function viereck(fn, punkte) - color = farbe(mean(punkte(:,1)), mean(punkte(:,2))); - fprintf(fn, " mesh {\n"); - dreieck(fn, punkte(1,:), punkte(2,:), punkte(3,:)); - dreieck(fn, punkte(2,:), punkte(3,:), punkte(4,:)); - fprintf(fn, "\tpigment { color rgb<%.4f,%.4f,%.4f> } // %.4f\n", - color(1,1), color(1,2), color(1,3), color(1,4)); - fprintf(fn, " }\n"); -endfunction - -fn = fopen("curvature.inc", "w"); -punkte = zeros(4,3); -for ix = (0:xsteps-1) - x = xmin + ix * hx; - punkte(1,1) = x; - punkte(2,1) = x; - punkte(3,1) = x + hx; - punkte(4,1) = x + hx; - for iy = (0:ysteps-1) - y = ymin + iy * hy; - punkte(1,2) = y; - punkte(2,2) = y + hy; - punkte(3,2) = y; - punkte(4,2) = y + hy; - for i = (1:4) - punkte(i,3) = f(punkte(i,1), punkte(i,2)); - endfor - viereck(fn, punkte); - end -end -#fprintf(fn, " finish { metallic specular 0.5 }\n"); -fclose(fn); - -printf("Cmax = %.4f\n", Cmax); -printf("Cmin = %.4f\n", Cmin); diff --git a/buch/papers/kugel/images/spherecurve.cpp b/buch/papers/kugel/images/spherecurve.cpp deleted file mode 100644 index 8ddf5e5..0000000 --- a/buch/papers/kugel/images/spherecurve.cpp +++ /dev/null @@ -1,292 +0,0 @@ -/* - * spherecurve.cpp - * - * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule - */ -#include -#include -#include -#include -#include - -inline double sqr(double x) { return x * x; } - -/** - * \brief Class for 3d vectors (also used as colors) - */ -class vector { - double X[3]; -public: - vector() { X[0] = X[1] = X[2] = 0; } - vector(double a) { X[0] = X[1] = X[2] = a; } - vector(double x, double y, double z) { - X[0] = x; X[1] = y; X[2] = z; - } - vector(double theta, double phi) { - double s = sin(theta); - X[0] = cos(phi) * s; - X[1] = sin(phi) * s; - X[2] = cos(theta); - } - vector(const vector& other) { - for (int i = 0; i < 3; i++) { - X[i] = other.X[i]; - } - } - vector operator+(const vector& other) const { - return vector(X[0] + other.X[0], - X[1] + other.X[1], - X[2] + other.X[2]); - } - vector operator*(double l) const { - return vector(X[0] * l, X[1] * l, X[2] * l); - } - double operator*(const vector& other) const { - double s = 0; - for (int i = 0; i < 3; i++) { - s += X[i] * other.X[i]; - } - return s; - } - double norm() const { - double s = 0; - for (int i = 0; i < 3; i++) { - s += sqr(X[i]); - } - return sqrt(s); - } - vector normalize() const { - double l = norm(); - return vector(X[0]/l, X[1]/l, X[2]/l); - } - double max() const { - return std::max(X[0], std::max(X[1], X[2])); - } - double l0norm() const { - double l = 0; - for (int i = 0; i < 3; i++) { - if (fabs(X[i]) > l) { - l = fabs(X[i]); - } - } - return l; - } - vector l0normalize() const { - double l = l0norm(); - vector result(X[0]/l, X[1]/l, X[2]/l); - return result; - } - const double& operator[](int i) const { return X[i]; } - double& operator[](int i) { return X[i]; } -}; - -/** - * \brief Derived 3d vector class implementing color - * - * The constructor in this class converts a single value into a - * color on a suitable gradient. - */ -class color : public vector { -public: - static double utop; - static double ubottom; - static double green; -public: - color(double u) { - u = (u - ubottom) / (utop - ubottom); - if (u > 1) { - u = 1; - } - if (u < 0) { - u = 0; - } - u = pow(u,2); - (*this)[0] = u; - (*this)[1] = green * u * (1 - u); - (*this)[2] = 1-u; - double l = l0norm(); - for (int i = 0; i < 3; i++) { - (*this)[i] /= l; - } - } -}; - -double color::utop = 12; -double color::ubottom = -31; -double color::green = 0.5; - -/** - * \brief Surface model - * - * This class contains the definitions of the functions to plot - * and the parameters to - */ -class surfacefunction { - static vector axes[6]; - - double _a; - double _A; - - double _umin; - double _umax; -public: - double a() const { return _a; } - double A() const { return _A; } - - double umin() const { return _umin; } - double umax() const { return _umax; } - - surfacefunction(double a, double A) : _a(a), _A(A), _umin(0), _umax(0) { - } - - double f(double z) { - return A() * exp(a() * (sqr(z) - 1)); - } - - double g(double z) { - return -f(z) * 2*a() * ((2*a()*sqr(z) + (3-2*a()))*sqr(z) - 1); - } - - double F(const vector& v) { - double s = 0; - for (int i = 0; i < 6; i++) { - s += f(axes[i] * v); - } - return s / 6; - } - - double G(const vector& v) { - double s = 0; - for (int i = 0; i < 6; i++) { - s += g(axes[i] * v); - } - return s / 6; - } -protected: - color farbe(const vector& v) { - double u = G(v); - if (u < _umin) { - _umin = u; - } - if (u > _umax) { - _umax = u; - } - return color(u); - } -}; - -static double phi = (1 + sqrt(5)) / 2; -static double sl = sqrt(sqr(phi) + 1); -vector surfacefunction::axes[6] = { - vector( 0. , -1./sl, phi/sl ), - vector( 0. , 1./sl, phi/sl ), - vector( 1./sl, phi/sl, 0. ), - vector( -1./sl, phi/sl, 0. ), - vector( phi/sl, 0. , 1./sl ), - vector( -phi/sl, 0. , 1./sl ) -}; - -/** - * \brief Class to construct the plot - */ -class surface : public surfacefunction { - FILE *outfile; - - int _phisteps; - int _thetasteps; - double _hphi; - double _htheta; -public: - int phisteps() const { return _phisteps; } - int thetasteps() const { return _thetasteps; } - double hphi() const { return _hphi; } - double htheta() const { return _htheta; } - void phisteps(int s) { _phisteps = s; _hphi = 2 * M_PI / s; } - void thetasteps(int s) { _thetasteps = s; _htheta = M_PI / s; } - - surface(const std::string& filename, double a, double A) - : surfacefunction(a, A) { - outfile = fopen(filename.c_str(), "w"); - phisteps(400); - thetasteps(200); - } - - ~surface() { - fclose(outfile); - } - -private: - void triangle(const vector& v0, const vector& v1, const vector& v2) { - fprintf(outfile, " mesh {\n"); - vector c = (v0 + v1 + v2) * (1./3.); - vector color = farbe(c.normalize()); - vector V0 = v0 * (1 + F(v0)); - vector V1 = v1 * (1 + F(v1)); - vector V2 = v2 * (1 + F(v2)); - fprintf(outfile, "\ttriangle {\n"); - fprintf(outfile, "\t <%.6f,%.6f,%.6f>,\n", - V0[0], V0[2], V0[1]); - fprintf(outfile, "\t <%.6f,%.6f,%.6f>,\n", - V1[0], V1[2], V1[1]); - fprintf(outfile, "\t <%.6f,%.6f,%.6f>\n", - V2[0], V2[2], V2[1]); - fprintf(outfile, "\t}\n"); - fprintf(outfile, "\tpigment { color rgb<%.4f,%.4f,%.4f> }\n", - color[0], color[1], color[2]); - fprintf(outfile, "\tfinish { metallic specular 0.5 }\n"); - fprintf(outfile, " }\n"); - } - - void northcap() { - vector v0(0, 0, 1); - for (int i = 1; i <= phisteps(); i++) { - fprintf(outfile, " // northcap i = %d\n", i); - vector v1(htheta(), (i - 1) * hphi()); - vector v2(htheta(), i * hphi()); - triangle(v0, v1, v2); - } - } - - void southcap() { - vector v0(0, 0, -1); - for (int i = 1; i <= phisteps(); i++) { - fprintf(outfile, " // southcap i = %d\n", i); - vector v1(M_PI - htheta(), (i - 1) * hphi()); - vector v2(M_PI - htheta(), i * hphi()); - triangle(v0, v1, v2); - } - } - - void zone() { - for (int j = 1; j < thetasteps() - 1; j++) { - for (int i = 1; i <= phisteps(); i++) { - fprintf(outfile, " // zone j = %d, i = %d\n", - j, i); - vector v0( j * htheta(), (i-1) * hphi()); - vector v1((j+1) * htheta(), (i-1) * hphi()); - vector v2( j * htheta(), i * hphi()); - vector v3((j+1) * htheta(), i * hphi()); - triangle(v0, v1, v2); - triangle(v1, v2, v3); - } - } - } -public: - void draw() { - northcap(); - southcap(); - zone(); - } -}; - -/** - * \brief main function - */ -int main(int argc, char *argv[]) { - surface S("spherecurve.inc", 5, 10); - color::green = 1.0; - S.draw(); - std::cout << "umin: " << S.umin() << std::endl; - std::cout << "umax: " << S.umax() << std::endl; - return EXIT_SUCCESS; -} diff --git a/buch/papers/kugel/images/spherecurve.m b/buch/papers/kugel/images/spherecurve.m deleted file mode 100644 index 99d5c9a..0000000 --- a/buch/papers/kugel/images/spherecurve.m +++ /dev/null @@ -1,160 +0,0 @@ -# -# spherecurve.m -# -# (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule -# -global a; -a = 5; -global A; -A = 10; - -phisteps = 400; -hphi = 2 * pi / phisteps; -thetasteps = 200; -htheta = pi / thetasteps; - -function retval = f(z) - global a; - global A; - retval = A * exp(a * (z^2 - 1)); -endfunction - -function retval = g(z) - global a; - retval = -f(z) * 2 * a * (2 * a * z^4 + (3 - 2*a) * z^2 - 1); - # 2 - # - a 2 4 2 2 a z - #(%o6) - %e (4 a z + (6 a - 4 a ) z - 2 a) %e -endfunction - -phi = (1 + sqrt(5)) / 2; - -global axes; -axes = [ - 0, 0, 1, -1, phi, -phi; - 1, -1, phi, phi, 0, 0; - phi, phi, 0, 0, 1, 1; -]; -axes = axes / (sqrt(phi^2+1)); - -function retval = kugel(theta, phi) - retval = [ - cos(phi) * sin(theta); - sin(phi) * sin(theta); - cos(theta) - ]; -endfunction - -function retval = F(v) - global axes; - s = 0; - for i = (1:6) - z = axes(:,i)' * v; - s = s + f(z); - endfor - retval = s / 6; -endfunction - -function retval = F2(theta, phi) - v = kugel(theta, phi); - retval = F(v); -endfunction - -function retval = G(v) - global axes; - s = 0; - for i = (1:6) - s = s + g(axes(:,i)' * v); - endfor - retval = s / 6; -endfunction - -function retval = G2(theta, phi) - v = kugel(theta, phi); - retval = G(v); -endfunction - -function retval = cnormalize(u) - utop = 11; - ubottom = -30; - retval = (u - ubottom) / (utop - ubottom); - if (retval > 1) - retval = 1; - endif - if (retval < 0) - retval = 0; - endif -endfunction - -global umin; -umin = 0; -global umax; -umax = 0; - -function color = farbe(v) - global umin; - global umax; - u = G(v); - if (u < umin) - umin = u; - endif - if (u > umax) - umax = u; - endif - u = cnormalize(u); - color = [ u, 0.5, 1-u ]; - color = color/max(color); -endfunction - -function dreieck(fn, v0, v1, v2) - fprintf(fn, " mesh {\n"); - c = (v0 + v1 + v2) / 3; - c = c / norm(c); - color = farbe(c); - v0 = v0 * (1 + F(v0)); - v1 = v1 * (1 + F(v1)); - v2 = v2 * (1 + F(v2)); - fprintf(fn, "\ttriangle {\n"); - fprintf(fn, "\t <%.6f,%.6f,%.6f>,\n", v0(1,1), v0(3,1), v0(2,1)); - fprintf(fn, "\t <%.6f,%.6f,%.6f>,\n", v1(1,1), v1(3,1), v1(2,1)); - fprintf(fn, "\t <%.6f,%.6f,%.6f>\n", v2(1,1), v2(3,1), v2(2,1)); - fprintf(fn, "\t}\n"); - fprintf(fn, "\tpigment { color rgb<%.4f,%.4f,%.4f> }\n", - color(1,1), color(1,2), color(1,3)); - fprintf(fn, "\tfinish { metallic specular 0.5 }\n"); - fprintf(fn, " }\n"); -endfunction - -fn = fopen("spherecurve2.inc", "w"); - - for i = (1:phisteps) - # Polkappe nord - v0 = [ 0; 0; 1 ]; - v1 = kugel(htheta, (i-1) * hphi); - v2 = kugel(htheta, i * hphi); - fprintf(fn, " // i = %d\n", i); - dreieck(fn, v0, v1, v2); - - # Polkappe sued - v0 = [ 0; 0; -1 ]; - v1 = kugel(pi-htheta, (i-1) * hphi); - v2 = kugel(pi-htheta, i * hphi); - dreieck(fn, v0, v1, v2); - endfor - - for j = (1:thetasteps-2) - for i = (1:phisteps) - v0 = kugel( j * htheta, (i-1) * hphi); - v1 = kugel((j+1) * htheta, (i-1) * hphi); - v2 = kugel( j * htheta, i * hphi); - v3 = kugel((j+1) * htheta, i * hphi); - fprintf(fn, " // i = %d, j = %d\n", i, j); - dreieck(fn, v0, v1, v2); - dreieck(fn, v1, v2, v3); - endfor - endfor - -fclose(fn); - -umin -umax diff --git a/buch/papers/kugel/images/spherecurve.maxima b/buch/papers/kugel/images/spherecurve.maxima deleted file mode 100644 index 1e9077c..0000000 --- a/buch/papers/kugel/images/spherecurve.maxima +++ /dev/null @@ -1,13 +0,0 @@ -/* - * spherecurv.maxima - * - * (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule - */ -f: exp(-a * sin(theta)^2); - -g: ratsimp(diff(sin(theta) * diff(f, theta), theta)/sin(theta)); -g: subst(z, cos(theta), g); -g: subst(sqrt(1-z^2), sin(theta), g); -ratsimp(g); - -f: ratsimp(subst(sqrt(1-z^2), sin(theta), f)); diff --git a/buch/papers/kugel/images/spherecurve.pov b/buch/papers/kugel/images/spherecurve.pov deleted file mode 100644 index b1bf4b8..0000000 --- a/buch/papers/kugel/images/spherecurve.pov +++ /dev/null @@ -1,73 +0,0 @@ -// -// curvature.pov -// -// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule -// - -#version 3.7; -#include "colors.inc" - -global_settings { - assumed_gamma 1 -} - -#declare imagescale = 0.13; - -camera { - location <10, 10, -40> - look_at <0, 0, 0> - right x * imagescale - up y * imagescale -} - -light_source { - <-10, 10, -40> color White - area_light <1,0,0> <0,0,1>, 10, 10 - adaptive 1 - jitter -} - -sky_sphere { - pigment { - color rgb<1,1,1> - } -} - -// -// draw an arrow from to with thickness with -// color -// -#macro arrow(from, to, arrowthickness, c) -#declare arrowdirection = vnormalize(to - from); -#declare arrowlength = vlength(to - from); -union { - sphere { - from, 1.1 * arrowthickness - } - cylinder { - from, - from + (arrowlength - 5 * arrowthickness) * arrowdirection, - arrowthickness - } - cone { - from + (arrowlength - 5 * arrowthickness) * arrowdirection, - 2 * arrowthickness, - to, - 0 - } - pigment { - color c - } - finish { - specular 0.9 - metallic - } -} -#end - -arrow(<-2.7,0,0>, <2.7,0,0>, 0.03, White) -arrow(<0,-2.7,0>, <0,2.7,0>, 0.03, White) -arrow(<0,0,-2.7>, <0,0,2.7>, 0.03, White) - -#include "spherecurve.inc" - -- cgit v1.2.1 From 10a72bf8d66de28f3f1b5598c37c32d29a306893 Mon Sep 17 00:00:00 2001 From: Fabian <@> Date: Tue, 16 Aug 2022 18:25:31 +0200 Subject: 3. Ueberarbeitung, Verbesserungen --- buch/papers/0f1/teil0.tex | 4 ++-- buch/papers/0f1/teil1.tex | 12 +++++------- buch/papers/0f1/teil2.tex | 20 ++++++++++++-------- buch/papers/0f1/teil3.tex | 12 ++++++------ 4 files changed, 25 insertions(+), 23 deletions(-) diff --git a/buch/papers/0f1/teil0.tex b/buch/papers/0f1/teil0.tex index 9aca368..335cf92 100644 --- a/buch/papers/0f1/teil0.tex +++ b/buch/papers/0f1/teil0.tex @@ -6,10 +6,10 @@ \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. +zum Beispiel um die Airy-Funktion zu berechnen. In der GNU Scientific Library \cite{0f1:library-gsl} ist die Funktion $\mathstrut_0F_1$ vorhanden. -Allerdings wirft die Funktion bei negativen Übergabenwerten wie zum Beispiel \verb+gsl_sf_hyperg_0F1(1, -1)+ eine Exception. +Allerdings wirft die Funktion bei negativen Übergabewerten wie zum Beispiel \verb+gsl_sf_hyperg_0F1(1, -1)+ eine Exception. Bei genauerer Untersuchung hat sich gezeigt, dass die Funktion je nach Betriebssystem funktioniert oder eben nicht. So kann die Funktion unter Windows fehlerfrei aufgerufen werden, beim Mac OS und Linux sind negative Übergabeparameter im Moment nicht möglich. Ziel dieser Arbeit war es zu evaluieren, ob es mit einfachen mathematischen Operationen möglich ist, die hypergeometrische Funktion $\mathstrut_0F_1$ zu implementieren. diff --git a/buch/papers/0f1/teil1.tex b/buch/papers/0f1/teil1.tex index c0f857d..8d00f95 100644 --- a/buch/papers/0f1/teil1.tex +++ b/buch/papers/0f1/teil1.tex @@ -6,8 +6,7 @@ \section{Mathematischer Hintergrund \label{0f1:section:mathHintergrund}} \rhead{Mathematischer Hintergrund} -Basierend auf den Herleitungen des Abschnittes \ref{buch:rekursion:section:hypergeometrische-funktion}, werden im nachfolgenden Abschnitt nochmals die Resultate -beschrieben. +Basierend auf den Herleitungen des Abschnittes \ref{buch:rekursion:section:hypergeometrische-funktion} werden im nachfolgenden Abschnitt nochmals die Resultate beschrieben. \subsection{Hypergeometrische Funktion \label{0f1:subsection:hypergeometrisch}} @@ -59,7 +58,7 @@ Angewendet auf die Funktion $\mathstrut_pF_q$ ergibt sich für $\mathstrut_0F_1$ -\subsection{Airy Funktion +\subsection{Airy-Funktion \label{0f1:subsection:airy}} Die Funktion $\operatorname{Ai}(x)$ und die verwandte Funktion $\operatorname{Bi}(x)$ werden als Airy-Funktion bezeichnet. Sie werden zur Lösung verschiedener physikalischer Probleme benutzt, wie zum Beispiel zur Lösung der Schrödinger-Gleichung \cite{0f1:wiki-airyFunktion}. @@ -70,8 +69,8 @@ Die Funktion $\operatorname{Ai}(x)$ und die verwandte Funktion $\operatorname{Bi heisst die {\em Airy-Differentialgleichung}. \end{definition} -Die Airy Funktion lässt sich auf verschiedene Arten darstellen. -Als hypergeometrische Funktion berechnet, ergibt sich wie in Abschnitt \ref{buch:differentialgleichungen:section:hypergeometrisch} hergeleitet, folgende Lösungen der Airy-Differentialgleichung zu den Anfangsbedingungen $\operatorname{Ai}(0)=1$ und $\operatorname{Ai}'(0)=0$, sowie $\operatorname{Bi}(0)=0$ und $\operatorname{Bi}'(0)=1$. +Die Airy-Funktion lässt sich auf verschiedene Arten darstellen. +Als hypergeometrische Funktion berechnet, ergeben sich wie in Abschnitt \ref{buch:differentialgleichungen:section:hypergeometrisch} hergeleitet, folgende Lösungen der Airy-Differentialgleichung zu den Anfangsbedingungen $\operatorname{Ai}(0)=1$ und $\operatorname{Ai}'(0)=0$, sowie $\operatorname{Bi}(0)=0$ und $\operatorname{Bi}'(0)=1$: \begin{align} \label{0f1:airy:hypergeometrisch:eq} @@ -96,7 +95,6 @@ x\cdot\mathstrut_0F_1\biggl( \qedhere \end{align} -Um die Stabilität der Algorithmen zu $\mathstrut_0F_1$ zu überprüfen, wird in dieser Arbeit die Airy Funktion $\operatorname{Ai}(x)$ \eqref{0f1:airy:hypergeometrisch:eq} -benutzt. +Um die Stabilität der Algorithmen zu $\mathstrut_0F_1$ zu überprüfen, wird in dieser Arbeit die Airy Funktion $\operatorname{Ai}(x)$ benutzt. diff --git a/buch/papers/0f1/teil2.tex b/buch/papers/0f1/teil2.tex index ef9f55e..9b3a586 100644 --- a/buch/papers/0f1/teil2.tex +++ b/buch/papers/0f1/teil2.tex @@ -11,7 +11,7 @@ Die Unterprogramme wurde jeweils, wie die GNU Scientific Library, in C geschrieb \subsection{Potenzreihe \label{0f1:subsection:potenzreihe}} -Die naheliegendste Lösung ist die Programmierung der Potenzreihe \eqref{0f1:umsetzung:0f1:eq}. +Die naheliegendste Lösung ist die Programmierung der Potenzreihe \begin{align} \label{0f1:umsetzung:0f1:eq} @@ -23,7 +23,7 @@ Die naheliegendste Lösung ist die Programmierung der Potenzreihe \eqref{0f1:ums \frac{1}{c} +\frac{z^1}{(c+1) \cdot 1} + \cdots - + \frac{z^{20}}{c(c+1)(c+2)\cdots(c+19) \cdot 2.4 \cdot 10^{18}} + + \frac{z^{20}}{c(c+1)(c+2)\cdots(c+19) \cdot 2.4 \cdot 10^{18}}. \end{align} \lstinputlisting[style=C,float,caption={Potenzreihe.},label={0f1:listing:potenzreihe}, firstline=59]{papers/0f1/listings/potenzreihe.c} @@ -31,15 +31,17 @@ Die naheliegendste Lösung ist die Programmierung der Potenzreihe \eqref{0f1:ums \subsection{Kettenbruch \label{0f1:subsection:kettenbruch}} Eine weitere Variante zur Berechnung von $\mathstrut_0F_1(;c;z)$ ist die Umsetzung als Kettenbruch. -Der Vorteil einer Umsetzung als Kettenbruch gegenüber der Potenzreihe, ist die schnellere Konvergenz. +Der Vorteil einer Umsetzung als Kettenbruch gegenüber der Potenzreihe ist die schnellere Konvergenz. +\subsubsection{Grundlage} Ein endlicher Kettenbruch \cite{0f1:wiki-kettenbruch} ist ein Bruch der Form \begin{equation*} -a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{b_3}{a_3+\cdots}}} +a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{b_3}{a_3+\cdots}}}, \end{equation*} in welchem $a_0, a_1,\dots,a_n$ und $b_1,b_2,\dots,b_n$ ganze Zahlen sind. -Nimmt man nun folgenden Gleichung \cite{0f1:wiki-fraction}: +\subsubsection{Rekursionsbeziehungen und Kettenbrüche} +Nimmt man nun folgende Gleichung \cite{0f1:wiki-fraction}: \begin{equation*} f_{i-1} - f_i = k_i z f_{i+1}, \end{equation*} @@ -48,7 +50,7 @@ Ergibt sich folgender Zusammenhang: \begin{equation*} \cfrac{f_i}{f_{i-1}} = \cfrac{1}{1+k_iz\cfrac{f_{i+1}}{f_i}} \end{equation*} - +\subsubsection{Rekursion für $\mathstrut_0F_1$} Angewendet auf die Funktion $\mathstrut_0F_1$ bedeutet dies: \begin{equation} \label{0f1:math:potenzreihe:0f1:eq} @@ -68,6 +70,7 @@ erhält man: \cfrac{\mathstrut_0F_1(;c+1;z)}{\mathstrut_0F_1(;c;z)} = \cfrac{1}{1+\cfrac{\cfrac{z}{c(c+1)}}{1+\cfrac{\cfrac{z}{(c+1)(c+2)}}{1+\cfrac{\cfrac{z}{(c+2)(c+3)}}{\cdots}}}}. \end{equation*} +\subsubsection{Algorithmus} Mit weiteren Relationen ergibt sich nach Wolfram Alpha \cite{0f1:wolfram-0f1} folgender Kettenbruch \begin{equation} \label{0f1:math:kettenbruch:0f1:eq} @@ -92,7 +95,7 @@ lässt sich zu \cfrac{A_k}{B_k} = \cfrac{b_{k+1}}{a_{k+1} + \cfrac{p}{q}} = \frac{b_{k+1} \cdot q}{a_{k+1} \cdot q + p} \end{align*} umformen. -Dies lässt sich auch durch die folgende Matrizenschreibweise ausdrücken: +Dies lässt sich auch durch die folgende Matrizenschreibweise \begin{equation*} \begin{pmatrix} A_k\\ @@ -112,6 +115,7 @@ Dies lässt sich auch durch die folgende Matrizenschreibweise ausdrücken: \end{pmatrix}. %\label{0f1:math:rekursionsformel:herleitung} \end{equation*} +ausdrücken. Wendet man dies nun auf den Kettenbruch in der Form \begin{equation*} \frac{A_k}{B_k} = a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{\cdots}{\cdots+\cfrac{b_{k-1}}{a_{k-1} + \cfrac{b_k}{a_k}}}}} @@ -166,7 +170,7 @@ Und schlussendlich kann der Näherungsbruch berechnet werden. -\subsubsection{Lösung} +\subsubsection{Algorithmus} Die Berechnung von $A_k, B_k$ gemäss \eqref{0f1:math:matrix:ende:eq} kann man auch ohne die Matrizenschreibweise \cite{0f1:kettenbrueche} aufschreiben: \begin{itemize} \item Startbedingungen: diff --git a/buch/papers/0f1/teil3.tex b/buch/papers/0f1/teil3.tex index b283b07..d7cdfe8 100644 --- a/buch/papers/0f1/teil3.tex +++ b/buch/papers/0f1/teil3.tex @@ -13,9 +13,9 @@ Ebenso kann festgestellt werden, dass je grösser der Wert $z$ in $\mathstrut_0F \subsection{Konvergenz \label{0f1:subsection:konvergenz}} -Es zeigt sich in Abbildung \ref{0f1:ausblick:plot:airy:konvergenz}, dass nach drei Iterationen ($k = 3$) die Funktionen genaue Resultate im Bereich von $-2$ bis $2$ liefert. Ebenso kann festgestellt werden, dass der Kettenbruch schneller konvergiert und im positiven Bereich sogar mit der Referenzfunktion $\operatorname{Ai}(x)$ übereinstimmt. Da die Rekursionsformel eine Abwandlung des Kettenbruches ist, verhalten sich die Funktionen in diesem Fall gleich. +Es zeigt sich in Abbildung \ref{0f1:ausblick:plot:airy:konvergenz}, dass nach drei Iterationen ($k = 3$) die Funktionen genaue Resultate im Bereich von $-2$ bis $2$ liefert. Ebenso kann festgestellt werden, dass der Kettenbruch schneller konvergiert und im positiven Bereich mit der Referenzfunktion $\operatorname{Ai}(x)$ übereinstimmt. Da die Rekursionsformel eine Abwandlung des Kettenbruches ist, verhalten sich die Funktionen in diesem Fall gleich. -Erst wenn mehrerer Iterationen gemacht werden, um die Genauigkeit zu verbessern, ist der Kettenbruch den anderen zwei Algorithmen bezüglich Konvergenz überlegen. +Erst wenn mehrerer Iterationen gerechnet 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, wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} zu beobachten ist, 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. Dieses Phänomen ist auf die Lösung der Rekursionsformel \eqref{0f1:math:matrix:ende:eq} zurück zu führen. 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. @@ -29,7 +29,7 @@ Verändert sich der Wert von $z$ in $\mathstrut_0F_1(;c;z)$ gegen grössere posi Wohingegen die Potenzreihe (Listing \ref{0f1:listing:potenzreihe}) das Problem hat, dass je mehr Terme berechnet werden, desto schneller wächst die Fakultät im Nenner. Dies führt zu einer Bereichsüberschreitung des \verb+double+ Bereiches \cite{0f1:double}, der spätesten ab $k=167$ eintritt. Schlussendlich gibt das Unterprogramm das Resultat \verb+-nan(ind)+ zurück. Die Rekursionformel \eqref{0f1:listing:kettenbruchRekursion} liefert für sehr grosse positive Werte die genausten Ergebnisse, verglichen mit der GNU Scientific Library. Wie schon vermutet ist die Rekursionsformel, im positivem Bereich, der stabilste Algorithmus. Um die Konvergenz zu gewährleisten, muss wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, die Iterationstiefe $k$ genug gross gewählt werden. -Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Grund dafür ist die Potenz von $z$, was zum Phänomen der Auslöschung \cite{0f1:SeminarNumerik} führt. Schön zu beobachten ist dies in der Abbildung \ref{0f1:ausblick:plot:airy:stabilitaet} mit der Airy-Funktion als Test. So sind sowohl die Potenzreihe, der Kettenbruch, als auch die Rekursionsformel bis ungefähr $\frac{-15^3}{9}$ stabil. Dies macht auch Sinn, da alle Algorithmen auf der gleichen mathematischen Grundlage basieren. Danach verhält sich allerdings die Instabilität unterschiedlich. Diese programmiertechnischen Unterschiede sind auch in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} und \ref{0f1:ausblick:plot:konvergenz:negativ} festzustellen. +Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Grund dafür ist die Potenz von $z$, was zum Phänomen der Auslöschung \cite{0f1:SeminarNumerik} führt. Schön zu beobachten ist dies in der Abbildung \ref{0f1:ausblick:plot:airy:stabilitaet} mit der Airy-Funktion als Test. So sind nach Abbildung \ref{0f1:ausblick:plot:airy:stabilitaet} die Potenzreihe, der Kettenbruch, als auch die Rekursionsformel, bis ungefähr $\frac{-15^3}{9}$ stabil. Dies macht auch Sinn, da alle Algorithmen auf der gleichen mathematischen Grundlage basieren. Danach verhält sich allerdings die Instabilität unterschiedlich. Diese programmiertechnischen Unterschiede sind auch in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} und \ref{0f1:ausblick:plot:konvergenz:negativ} festzustellen. \begin{figure} \centering @@ -41,21 +41,21 @@ Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Gru \begin{figure} \centering \includegraphics[width=0.8\textwidth]{papers/0f1/images/konvergenzPositiv.pdf} - \caption{Konvergenz mit positivem z; Logarithmisch, vorzeichenlose dargestellte Differenz vom erwarteten Endresultat. + \caption{Konvergenz mit positivem $z$; Logarithmisch, vorzeichenlose 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 mit negativem z; Logarithmisch, vorzeichenlose dargestellte Differenz vom erwarteten Endresultat. + \caption{Konvergenz mit negativem $z$; Logarithmisch, vorzeichenlose 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 $\operatorname{Ai}(x)$. + \caption{Stabilität der drei Algorithmen verglichen mit der Referenz Funktion $\operatorname{Ai}(x)$. \label{0f1:ausblick:plot:airy:stabilitaet}} \end{figure} -- cgit v1.2.1 From cd9bd7f2fb6e1088130c9eef5a96ea996fd14947 Mon Sep 17 00:00:00 2001 From: Fabian <@> Date: Tue, 16 Aug 2022 21:44:28 +0200 Subject: 3. Ueberarbeitung, bilder --- buch/papers/0f1/images/konvergenzNegativ.pdf | Bin 18155 -> 18226 bytes buch/papers/0f1/images/konvergenzPositiv.pdf | Bin 18581 -> 17532 bytes buch/papers/0f1/teil3.tex | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buch/papers/0f1/images/konvergenzNegativ.pdf b/buch/papers/0f1/images/konvergenzNegativ.pdf index 03b2ba1..232c964 100644 Binary files a/buch/papers/0f1/images/konvergenzNegativ.pdf and b/buch/papers/0f1/images/konvergenzNegativ.pdf differ diff --git a/buch/papers/0f1/images/konvergenzPositiv.pdf b/buch/papers/0f1/images/konvergenzPositiv.pdf index 2e45129..71b1042 100644 Binary files a/buch/papers/0f1/images/konvergenzPositiv.pdf and b/buch/papers/0f1/images/konvergenzPositiv.pdf differ diff --git a/buch/papers/0f1/teil3.tex b/buch/papers/0f1/teil3.tex index d7cdfe8..eb32c52 100644 --- a/buch/papers/0f1/teil3.tex +++ b/buch/papers/0f1/teil3.tex @@ -16,7 +16,7 @@ Ebenso kann festgestellt werden, dass je grösser der Wert $z$ in $\mathstrut_0F Es zeigt sich in Abbildung \ref{0f1:ausblick:plot:airy:konvergenz}, dass nach drei Iterationen ($k = 3$) die Funktionen genaue Resultate im Bereich von $-2$ bis $2$ liefert. Ebenso kann festgestellt werden, dass der Kettenbruch schneller konvergiert und im positiven Bereich mit der Referenzfunktion $\operatorname{Ai}(x)$ übereinstimmt. Da die Rekursionsformel eine Abwandlung des Kettenbruches ist, verhalten sich die Funktionen in diesem Fall gleich. Erst wenn mehrerer Iterationen gerechnet 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, wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} zu beobachten ist, 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. +Interessant ist auch, dass die Rekursionsformel nahezu gleich schnell wie die Potenzreihe konvergiert, aber sich danach, wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} zu beobachten ist, auf. 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. Dieses Phänomen ist auf die Lösung der Rekursionsformel \eqref{0f1:math:matrix:ende:eq} zurück zu führen. 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 in Abbildung \ref{0f1:ausblick:plot:konvergenz:negativ}, führt dies zu aufgrund des Vorzeichens zu alternierenden Termen. So steigt bei allen Algorithmen zuerst die Differenz zum erwarteten Endwert. Erst nach genügend Iterationen sind die Terme genügend klein, so dass sie das Endresultat nicht mehr signifikant beeinflussen. @@ -24,7 +24,7 @@ Auch hier konvergiert der Kettenbruch am schnellsten von allen Algorithmen. Eben \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 (Listing \ref{0f1:listing:kettenbruchIterativ}) \verb+inf+ zurück. Dies könnte durch ein Abbruchkriterien abgefangen werden. Allerdings würde das, bei grossen Werten zulasten der Genauigkeit gehen. Trotzdem könnte, je nach Anwendung, auf ein paar Nachkommastellen verzichtet werden. +Verändert sich der Wert von $z$ in $\mathstrut_0F_1(;c;z)$ gegen grössere positive Werte, wie zum Beispiel $c = 800$ liefert die Kettenbruch-Funktion (Listing \ref{0f1:listing:kettenbruchIterativ}) \verb+inf+ zurück. Dies könnte durch ein Abbruchkriterien abgefangen werden. Allerdings würde das bei grossen Werten zulasten der Genauigkeit gehen. Trotzdem könnte, je nach Anwendung, auf ein paar Nachkommastellen verzichtet werden. Wohingegen die Potenzreihe (Listing \ref{0f1:listing:potenzreihe}) das Problem hat, dass je mehr Terme berechnet werden, desto schneller wächst die Fakultät im Nenner. Dies führt zu einer Bereichsüberschreitung des \verb+double+ Bereiches \cite{0f1:double}, der spätesten ab $k=167$ eintritt. Schlussendlich gibt das Unterprogramm das Resultat \verb+-nan(ind)+ zurück. Die Rekursionformel \eqref{0f1:listing:kettenbruchRekursion} liefert für sehr grosse positive Werte die genausten Ergebnisse, verglichen mit der GNU Scientific Library. Wie schon vermutet ist die Rekursionsformel, im positivem Bereich, der stabilste Algorithmus. Um die Konvergenz zu gewährleisten, muss wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, die Iterationstiefe $k$ genug gross gewählt werden. -- cgit v1.2.1 From 37be038856d46324ca0f036f486c73b48bc22e4c Mon Sep 17 00:00:00 2001 From: tschwall <55748566+tschwall@users.noreply.github.com> Date: Tue, 16 Aug 2022 22:24:51 +0200 Subject: Updated stuff --- buch/SeminarSpezielleFunktionen.pdf | Bin 22768070 -> 22768314 bytes buch/papers/parzyl/img/plane.pdf | Bin 0 -> 2072 bytes buch/papers/parzyl/teil0.tex | 81 +++++++++++++++++++++++------------- buch/papers/parzyl/teil1.tex | 2 +- buch/papers/parzyl/teil2.tex | 13 +++--- buch/papers/parzyl/teil3.tex | 3 +- 6 files changed, 63 insertions(+), 36 deletions(-) create mode 100644 buch/papers/parzyl/img/plane.pdf diff --git a/buch/SeminarSpezielleFunktionen.pdf b/buch/SeminarSpezielleFunktionen.pdf index 6091e14..36b612f 100644 Binary files a/buch/SeminarSpezielleFunktionen.pdf and b/buch/SeminarSpezielleFunktionen.pdf differ diff --git a/buch/papers/parzyl/img/plane.pdf b/buch/papers/parzyl/img/plane.pdf new file mode 100644 index 0000000..c52c336 Binary files /dev/null and b/buch/papers/parzyl/img/plane.pdf differ diff --git a/buch/papers/parzyl/teil0.tex b/buch/papers/parzyl/teil0.tex index 1f23d6e..3b14287 100644 --- a/buch/papers/parzyl/teil0.tex +++ b/buch/papers/parzyl/teil0.tex @@ -4,42 +4,65 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Einleitung\label{parzyl:section:teil0}} -\rhead{Teil 0} -Die Laplace-Gleichung ist eine wichtige Gleichung in der Physik. -Mit ihr lässt sich zum Beispiel das elektrische Feld in einem ladungsfreien Raum bestimmen. -In diesem Kapitel wird die Lösung der Laplace-Gleichung im -parabolischen Zylinderkoordinatensystem genauer untersucht. -\subsection{Laplace Gleichung} -Die partielle Differentialgleichung -\begin{equation} - \Delta f = 0 -\end{equation} -ist als Laplace-Gleichung bekannt. -Sie ist eine spezielle Form der Poisson-Gleichung +\rhead{Einleitung} +%Die Laplace-Gleichung ist eine wichtige Gleichung in der Physik. +%Mit ihr lässt sich zum Beispiel das elektrische Feld in einem ladungsfreien Raum bestimmen. +%In diesem Kapitel wird die Lösung der Laplace-Gleichung im +%parabolischen Zylinderkoordinatensystem genauer untersucht. +Die Helmholtz-Gleichung ist eine wichtige Gleichung in der Physik. Mit ihr lässt sich zum Beispiel das Verhalten von elektromagnetischen Wellen beschreiben. +In diesem Kapitel wird die Lösung der Helmholtz-Gleichung im parabolischen Zylinderkoordinatensystem, die parabolischen Zylinderfunktionen, genauer untersucht. + +\subsection{Helmholtz-Gleichung} +Die partielle Differentialgleichung \begin{equation} - \Delta f = g + \nabla f = \lambda f \end{equation} -mit $g$ als beliebiger Funktion. -In der Physik hat die Laplace-Gleichung in verschiedenen Gebieten -verwendet, zum Beispiel im Elektromagnetismus. -Das Gaussche Gesetz in den Maxwellgleichungen +ist als Helmholtz-Gleichung bekannt und beschreibt das Eigenwert Problem für den Laplace-Operator. Sie ist eine der Gleichungen welche auftritt wenn die Wellengleichung \begin{equation} - \nabla \cdot E = \frac{\varrho}{\epsilon_0} -\label{parzyl:eq:max1} + \left ( \nabla^2 - \frac{1}{c^2}\frac{\partial^2}{\partial t^2} \right ) u(\textbf{r},t) + = + 0 \end{equation} -besagt, dass die Divergenz eines elektrischen Feldes an einem -Punkt gleich der Ladungsdichte an diesem Punkt ist. -Das elektrische Feld ist hierbei der Gradient des elektrischen -Potentials +mit Hilfe von Separation \begin{equation} - \nabla \phi = E. -\end{equation} -Eingesetzt in \eqref{parzyl:eq:max1} resultiert + u(\textbf{r},t) = A(\textbf{r})T(t) +\end{equation} +in zwei Differentialgleichungen aufgeteilt wird. Die Helmholtz-Gleichung ist der Teil, welcher Zeit unabhängig ist \begin{equation} - \nabla \cdot \nabla \phi = \Delta \phi = \frac{\varrho}{\epsilon_0}, + \nabla^2 A(\textbf{r}) = \lambda A(\textbf{r}). \end{equation} -was eine Poisson-Gleichung ist. -An ladungsfreien Stellen ist der rechte Teil der Gleichung $0$. + +%\subsection{Laplace Gleichung} +%Die partielle Differentialgleichung +%\begin{equation} +% \Delta f = 0 +%\end{equation} +%ist als Laplace-Gleichung bekannt. +%Sie ist eine spezielle Form der Poisson-Gleichung +%\begin{equation} +% \Delta f = g +%\end{equation} +%mit $g$ als beliebiger Funktion. +%In der Physik hat die Laplace-Gleichung in verschiedenen Gebieten +%verwendet, zum Beispiel im Elektromagnetismus. +%Das Gaussche Gesetz in den Maxwellgleichungen +%\begin{equation} +% \nabla \cdot E = \frac{\varrho}{\epsilon_0} +%\label{parzyl:eq:max1} +%\end{equation} +%besagt, dass die Divergenz eines elektrischen Feldes an einem +%Punkt gleich der Ladungsdichte an diesem Punkt ist. +%Das elektrische Feld ist hierbei der Gradient des elektrischen +%Potentials +%\begin{equation} +% \nabla \phi = E. +%\end{equation} +%Eingesetzt in \eqref{parzyl:eq:max1} resultiert +%\begin{equation} +% \nabla \cdot \nabla \phi = \Delta \phi = \frac{\varrho}{\epsilon_0}, +%\end{equation} +%was eine Poisson-Gleichung ist. +%An ladungsfreien Stellen ist der rechte Teil der Gleichung $0$. \subsection{Parabolische Zylinderkoordinaten \label{parzyl:subsection:finibus}} Im parabolischen Zylinderkoordinatensystem bilden parabolische Zylinder die Koordinatenflächen. diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index e140796..cb929d6 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -5,7 +5,7 @@ % \section{Lösung \label{parzyl:section:teil1}} -\rhead{Problemstellung} +\rhead{Lösung} Die Differentialgleichungen \eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2} können mit Hilfe der Whittaker Gleichung gelöst werden. \begin{definition} diff --git a/buch/papers/parzyl/teil2.tex b/buch/papers/parzyl/teil2.tex index aaea42b..4af6860 100644 --- a/buch/papers/parzyl/teil2.tex +++ b/buch/papers/parzyl/teil2.tex @@ -5,12 +5,15 @@ % \section{Anwendung in der Physik \label{parzyl:section:teil2}} -\rhead{Teil 2} +\rhead{Anwendung in der Physik} - -\subsection{Elektrisches Feld einer semi-infiniten Platte -\label{parzyl:subsection:bonorum}} -Die parabolischen Zylinderkoordinaten tauchen auf, wenn man das elektrische Feld einer semi-infiniten Platte finden will. +Die parabolischen Zylinderkoordinaten tauchen auf, wenn man das elektrische Feld einer semi-infiniten Platte, wie in Abbildung \ref{parzyl:fig:leiterplatte} gezeigt, finden will. +\begin{figure} + \centering + \includegraphics[width=0.9\textwidth]{papers/parzyl/img/plane.pdf} + \caption{Semi-infinite Leiterplatte} + \label{parzyl:fig:leiterplatte} +\end{figure} Das dies so ist kann im zwei Dimensionalen mit Hilfe von komplexen Funktionen gezeigt werden. Die Platte ist dann nur eine Linie, was man in Abbildung TODO sieht. Jede komplexe Funktion $F(z)$ kann geschrieben werden als \begin{equation} diff --git a/buch/papers/parzyl/teil3.tex b/buch/papers/parzyl/teil3.tex index 12b7519..972fd33 100644 --- a/buch/papers/parzyl/teil3.tex +++ b/buch/papers/parzyl/teil3.tex @@ -5,7 +5,8 @@ % \section{Eigenschaften \label{parzyl:section:Eigenschaften}} -\rhead{Teil 3} +\rhead{Eigenschaften} + \subsection{Potenzreihenentwicklung \label{parzyl:potenz}} Die parabolischen Zylinderfunktionen, welche in Gleichung \ref{parzyl:eq:solution_dgl} gegeben sind, können auch als Potenzreihen geschrieben werden -- cgit v1.2.1 From 8dad5da7d8a4c982a6933b0f6d3c58c64d66c37c Mon Sep 17 00:00:00 2001 From: Alain Date: Tue, 16 Aug 2022 22:25:46 +0200 Subject: schaffe --- buch/papers/parzyl/teil1.tex | 61 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index e140796..a52665b 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -44,21 +44,68 @@ eine sondern zwei Lösungen. Die zweite Lösung der Whittaker-Gleichung ist $W_{k,-m} (z)$. Somit hat \eqref{parzyl:eq:weberDiffEq} \begin{align} - w_1 & = z^{-1/2} W_{k,-1/4} \left({\textstyle \frac{1}{2}} z^2\right)\\ - w_2 & = z^{-1/2} W_{k,1/4} \left({\textstyle \frac{1}{2}} z^2\right) + w_1(k, z) & = z^{-1/2} W_{k,-1/4} \left({\textstyle \frac{1}{2}} z^2\right)\\ + w_2(k, z) & = z^{-1/2} W_{k,1/4} \left({\textstyle \frac{1}{2}} z^2\right) \end{align} als Lösungen. - -Ausgeschrieben ergeben sich als Lösungen +Mit der Hypergeometrischen Funktion ausgeschrieben ergeben sich die Lösungen \begin{align} \label{parzyl:eq:solution_dgl} - w_1 &= e^{-z^2/4} \, + w_1(k,z) &= e^{-z^2/4} \, {}_{1} F_{1} ( {\textstyle \frac{1}{4}} - k, {\textstyle \frac{1}{2}} ; {\textstyle \frac{1}{2}}z^2) \\ - w_2 & = z e^{-z^2/4} \, + w_2(k,z) & = z e^{-z^2/4} \, {}_{1} F_{1} ({\textstyle \frac{3}{4}} - - k, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2) + - k, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2). \end{align} +In der Literatur gibt es verschiedene Standartlösungen für $w(k,z)$ präsentiert. +Whittaker und Whatson zeigen in \dots eine Lösung +\begin{equation} + D_n(z) = \frac{ + \Gamma \left( {\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{2}} z^{-\frac{1}{2}} + }{ + \Gamma \left( {\textstyle \frac{1}{2}} \right) - {\textstyle \frac{1}{2}} n) + } + M_{\frac{1}{2} n + \frac{1}{4}, - \frac{1}{4}} \left(\frac{1}{2}z^2\right) + + + \frac{ + \Gamma\left(-{\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{2}} z^{-\frac{1}{2}} + }{ + \Gamma\left(- {\textstyle \frac{1}{2}} n\right) + } + M_{\frac{1}{2} n + \frac{1}{4}, \frac{1}{4}} \left(\frac{1}{2}z^2\right). +\end{equation} +welche die Differenzialgleichung +\begin{equation} + \frac{d^2D_n(z)}{dz^2} + \left(n + \frac{1}{2} - \frac{1}{4} z^2\right)D_n(z) = 0 +\end{equation} +löst. + +Blablubla beschreibt zwei Lösungen $U(a, z)$ und $V(a,z)$ der Differenzialgleichung +\begin{equation} + \frac{d^2 y}{d z^2} - \left(\frac{1}{4} z^2 + a\right) y = 0. +\end{equation} +\begin{align} + U(a,z) &= + \cos\left(\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right) Y_1 + - \sin\left(\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right) Y_2 \\ + V(a,z) &= \frac{1}{\Gamma \left({\textstyle \frac{1}{2} - a}\right)} \left( + \sin\left(\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right) Y_1 + + \cos\left(\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right) Y_2 + \right) +\end{align} +mit +\begin{align} + Y_1 &= \frac{1}{\sqrt{\pi}} + \frac{\Gamma\left({\textstyle \frac{1}{4} - + {\textstyle \frac{1}{2}}a}\right)} + {2^{\frac{1}{2} a + \frac{1}{4}}} w_1\\ + Y_2 &= \frac{1}{\sqrt{\pi}} + \frac{\Gamma\left({\textstyle \frac{3}{4} - + {\textstyle \frac{1}{2}}a}\right)} + {2^{\frac{1}{2} a - \frac{1}{4}}} w_2 +\end{align} + -- cgit v1.2.1 From 7d969250f8860f407255091a61b0b441b172c524 Mon Sep 17 00:00:00 2001 From: Fabian <@> Date: Tue, 16 Aug 2022 22:53:23 +0200 Subject: 3.Ueberarbeitung, bilder2 --- buch/papers/0f1/images/konvergenzNegativ.pdf | Bin 18226 -> 18524 bytes buch/papers/0f1/images/konvergenzPositiv.pdf | Bin 17532 -> 18253 bytes buch/papers/0f1/teil3.tex | 12 +++++------- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/buch/papers/0f1/images/konvergenzNegativ.pdf b/buch/papers/0f1/images/konvergenzNegativ.pdf index 232c964..07d2a44 100644 Binary files a/buch/papers/0f1/images/konvergenzNegativ.pdf and b/buch/papers/0f1/images/konvergenzNegativ.pdf differ diff --git a/buch/papers/0f1/images/konvergenzPositiv.pdf b/buch/papers/0f1/images/konvergenzPositiv.pdf index 71b1042..8e1e7e4 100644 Binary files a/buch/papers/0f1/images/konvergenzPositiv.pdf and b/buch/papers/0f1/images/konvergenzPositiv.pdf differ diff --git a/buch/papers/0f1/teil3.tex b/buch/papers/0f1/teil3.tex index eb32c52..b6c0f4f 100644 --- a/buch/papers/0f1/teil3.tex +++ b/buch/papers/0f1/teil3.tex @@ -15,12 +15,10 @@ Ebenso kann festgestellt werden, dass je grösser der Wert $z$ in $\mathstrut_0F \label{0f1:subsection:konvergenz}} Es zeigt sich in Abbildung \ref{0f1:ausblick:plot:airy:konvergenz}, dass nach drei Iterationen ($k = 3$) die Funktionen genaue Resultate im Bereich von $-2$ bis $2$ liefert. Ebenso kann festgestellt werden, dass der Kettenbruch schneller konvergiert und im positiven Bereich mit der Referenzfunktion $\operatorname{Ai}(x)$ übereinstimmt. Da die Rekursionsformel eine Abwandlung des Kettenbruches ist, verhalten sich die Funktionen in diesem Fall gleich. -Erst wenn mehrerer Iterationen gerechnet 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, wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} zu beobachten ist, auf. 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. -Dieses Phänomen ist auf die Lösung der Rekursionsformel \eqref{0f1:math:matrix:ende:eq} zurück zu führen. Da im Gegensatz die ganz kleinen Werte nicht zu einer Konvergenz wie beim Kettenbruch führen, sondern sich noch eine Zeit lang durch die Multiplikation aufschwingen. +Erst wenn mehrerer Iterationen gerechnet werden, ist wie Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, der Kettenbruch den anderen zwei Algorithmen bezüglich Konvergenz überlegen. Allerdings muss beachtet werden, dass die Rekursionsformel zwar erst nach 35 Approximationen gänzlich konvergiert, nach 27 Iterationen sich nicht mehr gross verändert. + +Ist $z$ negativ wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:negativ}, führt dies zu aufgrund des Vorzeichens zu alternierenden Termen. So steigt bei allen Algorithmen zuerst die Differenz zum erwarteten Endwert. Erst nach genügend Iterationen sind die Terme so klein, dass sie das Endresultat nicht mehr signifikant beeinflussen. Während die Potenzreihe zusammen mit dem Kettenbruch nach 34 Approximationen konvergiert, braucht die Rekursionsformel noch zwei Iterationen mehr. Wohingegen die Rekursionsformel der genauste Algorithmus im negativen Bereich ist. Da der Computer mit einer relativen Genauigkeit von $10^{-15}$ rechnet, ist dies das Maximum an Präzision, dass erreicht werden kann. -Ist $z$ negativ wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:negativ}, führt dies zu aufgrund des Vorzeichens zu alternierenden Termen. So steigt bei allen Algorithmen zuerst die Differenz zum erwarteten Endwert. Erst nach genügend Iterationen sind die Terme genügend klein, so dass sie das Endresultat nicht mehr signifikant beeinflussen. -Auch hier konvergiert der Kettenbruch am schnellsten von allen Algorithmen. Ebenso bricht die Rekursionsformel nahezu gleichzeitig mit der Potenzreihe ab. \subsection{Stabilität \label{0f1:subsection:Stabilitaet}} @@ -41,14 +39,14 @@ Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Gru \begin{figure} \centering \includegraphics[width=0.8\textwidth]{papers/0f1/images/konvergenzPositiv.pdf} - \caption{Konvergenz mit positivem $z$; Logarithmisch, vorzeichenlose dargestellte Differenz vom erwarteten Endresultat. + \caption{Konvergenz mit positivem $z$; Logarithmisch dargestellte absoluter Fehler. \label{0f1:ausblick:plot:konvergenz:positiv}} \end{figure} \begin{figure} \centering \includegraphics[width=0.8\textwidth]{papers/0f1/images/konvergenzNegativ.pdf} - \caption{Konvergenz mit negativem $z$; Logarithmisch, vorzeichenlose dargestellte Differenz vom erwarteten Endresultat. + \caption{Konvergenz mit negativem $z$; Logarithmisch dargestellte absoluter Fehler. \label{0f1:ausblick:plot:konvergenz:negativ}} \end{figure} -- cgit v1.2.1 From 4a9a4ca761db0007138a778a87c652505570b071 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Tue, 16 Aug 2022 23:39:32 +0200 Subject: kugel: Update figures makefile --- buch/papers/kugel/Makefile | 3 ++- .../kugel/figures/tikz/spherical-coordinates.pdf | Bin 5824 -> 40319 bytes 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/buch/papers/kugel/Makefile b/buch/papers/kugel/Makefile index f798a55..995206b 100644 --- a/buch/papers/kugel/Makefile +++ b/buch/papers/kugel/Makefile @@ -5,5 +5,6 @@ # images: - @echo "no images to be created in kugel" + $(MAKE) -C ./figures/povray/ + $(MAKE) -C ./figures/tikz/ diff --git a/buch/papers/kugel/figures/tikz/spherical-coordinates.pdf b/buch/papers/kugel/figures/tikz/spherical-coordinates.pdf index 28f242e..1bff016 100644 Binary files a/buch/papers/kugel/figures/tikz/spherical-coordinates.pdf and b/buch/papers/kugel/figures/tikz/spherical-coordinates.pdf differ -- cgit v1.2.1 From c4cf68ac67f7fbadaacae64597ae713a6879f944 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Tue, 16 Aug 2022 23:39:59 +0200 Subject: kugel: Comment out preliminaries, review manu's work until legendre --- buch/papers/kugel/main.tex | 2 +- buch/papers/kugel/packages.tex | 5 + buch/papers/kugel/spherical-harmonics.tex | 229 +++++++++++++++++++++++------- 3 files changed, 180 insertions(+), 56 deletions(-) diff --git a/buch/papers/kugel/main.tex b/buch/papers/kugel/main.tex index 98d9cb2..a281cae 100644 --- a/buch/papers/kugel/main.tex +++ b/buch/papers/kugel/main.tex @@ -11,7 +11,7 @@ \chapterauthor{Manuel Cattaneo, Naoki Pross} \input{papers/kugel/introduction} -\input{papers/kugel/preliminaries} +% \input{papers/kugel/preliminaries} \input{papers/kugel/spherical-harmonics} \input{papers/kugel/applications} diff --git a/buch/papers/kugel/packages.tex b/buch/papers/kugel/packages.tex index 1c4f3e0..b0e1f61 100644 --- a/buch/papers/kugel/packages.tex +++ b/buch/papers/kugel/packages.tex @@ -8,3 +8,8 @@ % following example %\usepackage{packagename} \usepackage{cases} + +\newcommand{\kugeltodo}[1]{\textcolor{red!70!black}{\texttt{[TODO: #1]}}} + +\DeclareMathOperator{\sphlaplacian}{\nabla^2_{\mathit{S}}} +\DeclareMathOperator{\surflaplacian}{\nabla^2_{\partial \mathit{S}}} diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index c76e757..70657c9 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -1,70 +1,189 @@ -% vim:ts=2 sw=2 et spell: +% vim:ts=2 sw=2 et spell tw=80: \section{Spherical Harmonics} -We finally arrived at the main section, which gives our chapter its name. The idea is to discuss spherical harmonics, their mathematical derivation and some of their properties and applications.\newline -The subsection \ref{} will be devoted to the Eigenvalue problem of the Laplace operator. Through the latter, we will derive the set of Eigenfunctions that obey the equation presented in \ref{}[TODO: reference to eigenvalue equation], which will be defined as \emph{Spherical Harmonics}. In fact, this subsection will present their mathematical derivation.\newline -In the subsection \ref{}, on the other hand, some interesting properties related to them will be discussed. Some of these will come back to help us understand in more detail why they are useful in various real-world applications, which will be presented in the section \ref{}.\newline -One specific property will be studied in more detail in the subsection \ref{}, namely the recursive property. -The last subsection is devoted to one of the most beautiful applications (In our humble opinion), namely the derivation of a Fourier-style series expansion but defined on the sphere instead of a plane.\newline -More importantly, this subsection will allow us to connect all the dots we have created with the previous sections, concluding that Fourier is just a specific case of the application of the concept of orthogonality.\newline -Our hope is that after reading this section you will appreciate the beauty and power of generalization that mathematics offers us. -\subsection{Eigenvalue Problem on the Spherical surface} -\subsubsection{Unormalized Spherical Harmonics} -From the chapter \ref{}, we know that the spherical Laplacian is defined as. \begin{equation*} - \nabla^2_S := \frac{1}{r^2} \frac{\partial}{\partial r} \left( r^2 \frac{\partial}{\partial r} \right) + \frac{1}{r^2} - \left[ - \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( \sin\vartheta \frac{\partial}{\partial\vartheta} \right) - + \frac{1}{\sin^2 \vartheta} \frac{\partial^2}{\partial\varphi^2} - \right] -\end{equation*} -But we do not want to consider this algebraic monster entirely, since this includes the whole set $\mathbb{R}^3$; rather, we want to focus only on the spherical surface (as the title suggests). We can then further concretise our calculations by selecting any number for the variable $r$, so that we have a sphere and, more importantly, a spherical surface on which we can ``play''.\newline -Surely you have already heard of the unit circle, a geometric entity used extensively in many mathematical contexts. The most famous and basic among them is surely trigonometry.\newline -Extending this concept into three dimensions, we will talk about the unit sphere. This is a very famous sphere, as is the unit circle. So since we need a sphere why not use the most famous one? Thus imposing $r=1$.\newline -Now, since the variable $r$ became a constant, we can leave out all derivatives with respect to $r$, setting them to zero. Then substituting the value of $r$ for 1, we will obtain the operator we will refer to as \emph{Spherical Surface Operator}: +\if 0 +\kugeltodo{Rewrite this section if the preliminaries become an addendum} +We finally arrived at the main section, which gives our chapter its name. The +idea is to discuss spherical harmonics, their mathematical derivation and some +of their properties and applications. + +The subsection \ref{} \kugeltodo{Fix references} will be devoted to the +Eigenvalue problem of the Laplace operator. Through the latter we will derive +the set of Eigenfunctions that obey the equation presented in \ref{} +\kugeltodo{reference to eigenvalue equation}, which will be defined as +\emph{Spherical Harmonics}. In fact, this subsection will present their +mathematical derivation. + +In the subsection \ref{}, on the other hand, some interesting properties +related to them will be discussed. Some of these will come back to help us +understand in more detail why they are useful in various real-world +applications, which will be presented in the section \ref{}. + +One specific property will be studied in more detail in the subsection \ref{}, +namely the recursive property. The last subsection is devoted to one of the +most beautiful applications (In our humble opinion), namely the derivation of a +Fourier-style series expansion but defined on the sphere instead of a plane. +More importantly, this subsection will allow us to connect all the dots we have +created with the previous sections, concluding that Fourier is just a specific +case of the application of the concept of orthogonality. Our hope is that after +reading this section you will appreciate the beauty and power of generalization +that mathematics offers us. +\fi + +\subsection{Eigenvalue Problem} + +\begin{figure} + \centering + \includegraphics{papers/kugel/figures/tikz/spherical-coordinates} + \caption{ + Spherical coordinate system. Space is described with the free variables $r + \in \mathbb{R}_0^+$, $\vartheta \in [0; \pi]$ and $\varphi \in [0; 2\pi)$. + \label{kugel:fig:spherical-coordinates} + } +\end{figure} + +From Section \ref{buch:pde:section:kugel}, we know that the spherical Laplacian +in the spherical coordinate system (shown in Figure +\ref{kugel:fig:spherical-coordinates}) is is defined as \begin{equation*} - \nabla^2_{\partial S} := \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( \sin\vartheta \frac{\partial}{\partial\vartheta} \right) - + \frac{1}{\sin^2 \vartheta} \frac{\partial^2}{\partial\varphi^2}. + \sphlaplacian := + \frac{1}{r^2} \frac{\partial}{\partial r} \left( + r^2 \frac{\partial}{\partial r} + \right) + + \frac{1}{r^2} \left[ + \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( + \sin\vartheta \frac{\partial}{\partial\vartheta} + \right) + + \frac{1}{\sin^2 \vartheta} \frac{\partial^2}{\partial\varphi^2} + \right]. \end{equation*} -As can be seen, for this definition, the subscript ``$\partial S$'' was used to emphasize the fact that we are on the spherical surface, which can be understood as a boundary of the sphere.\newline -Now that we have defined an operator, we can go on to calculate its eigenfunctions. As mentioned earlier, we can translate this problem at first abstract into a much more concrete problem, which has to do with the field of \emph{Partial Differential Equaitons} (PDEs). The functions we want to find are simply functions that respect the following expression: -\begin{equation}\label{kugel:eq:sph_srfc_laplace} - \nabla^2_{\partial S} f = \lambda f +But we will not consider this algebraic monstrosity in its entirety. As the +title suggests, we will only care about the \emph{surface} of the sphere. This +is for many reasons, but mainly to simplify reduce the already broad scope of +this text. Concretely, we will always work on the unit sphere, which just means +that we set $r = 1$ and keep only $\vartheta$ and $\varphi$ as free variables. +Now, since the variable $r$ became a constant, we can leave out all derivatives +with respect to $r$ and substitute all $r$'s with 1's to obtain a new operator +that deserves its own name. + +\begin{definition}[Surface spherical Laplacian] + \label{kugel:def:surface-laplacian} + The operator + \begin{equation*} + \surflaplacian := + \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( + \sin\vartheta \frac{\partial}{\partial\vartheta} + \right) + + \frac{1}{\sin^2 \vartheta} \frac{\partial^2}{\partial\varphi^2}, + \end{equation*} + is called the surface spherical Laplacian. +\end{definition} + +In the definition, the subscript ``$\partial S$'' was used to emphasize the +fact that we are on the spherical surface, which can be understood as being the +boundary of the sphere. But what does it actually do? To get an intuition, +first of all, notice the fact that $\surflaplacian$ have second derivatives, +which means that this a measure of \emph{curvature}; But curvature of what? To +get an even stronger intuition we will go into geometry, were curvature can be +grasped very well visually. Consider figure \ref{kugel:fig:curvature} where the +curvature is shown using colors. First we have the curvature of a curve in 1D, +then the curvature of a surface (2D), and finally the curvature of a function on +the surface of the unit sphere. + +\begin{figure} + \centering + \includegraphics[width=.3\linewidth]{papers/kugel/figures/tikz/curvature-1d} + \hskip 5mm + \includegraphics[width=.3\linewidth]{papers/kugel/figures/povray/curvature} + \hskip 5mm + \includegraphics[width=.3\linewidth]{papers/kugel/figures/povray/spherecurve} + \caption{ + \kugeltodo{Fix alignment / size, add caption. Would be nice to match colors.} + \label{kugel:fig:curvature} + } +\end{figure} + +Now that we have defined an operator, we can go and study its eigenfunctions, +which means that we would like to find the functions $f(\vartheta, \varphi)$ +that satisfy the equation +\begin{equation} \label{kuvel:eqn:eigen} + \surflaplacian f = -\lambda f. \end{equation} -Which is traditionally written as follows: -\begin{equation*} - \nabla^2_{\partial S} f = -\lambda f -\end{equation*} -Perhaps the fact that we are dealing with a PDE may not be obvious at first glance, but if we extend the operator $\nabla^2_{\partial S}$ according to Eq.(\ref{kugel:eq:sph_srfc_laplace}), we will get: -\begin{equation}\label{kugel:eq:PDE_sph} - \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( \sin\vartheta \frac{\partial f}{\partial\vartheta} \right) - + \frac{1}{\sin^2 \vartheta} \frac{\partial^2 f}{\partial\varphi^2} + \lambda f = 0, +Perhaps it may not be obvious at first glance, but we are in fact dealing with a +partial differential equation (PDE). If we unpack the notation of the operator +$\nabla^2_{\partial S}$ according to definition +\ref{kugel:def:surface-laplacian}, we get: +\begin{equation} \label{kugel:eqn:eigen-pde} + \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( + \sin\vartheta \frac{\partial f}{\partial\vartheta} + \right) + + \frac{1}{\sin^2 \vartheta} \frac{\partial^2 f}{\partial\varphi^2} + + \lambda f = 0. \end{equation} -making it emerge.\newline -All functions satisfying Eq.(\ref{kugel:eq:PDE_sph}), are called eigenfunctions. Our new goal is therefore to solve this PDE. The task seems very difficult but we can simplify it with a well-known technique, namely the \emph{separation Ansatz}. The latter consists in assuming that the function $f(\vartheta, \varphi)$ we are looking for can be factorized in the following form -\begin{equation}\label{kugel:eq:sep_ansatz_0} +Since all functions satisfying \eqref{kugel:eqn:eigen-pde} are the +\emph{eigenfunctions} of $\surflaplacian$, our new goal is to solve this PDE. +The task may seem very difficult but we can simplify it with a well-known +technique: \emph{the separation Ansatz}. It consists in assuming that the +function $f(\vartheta, \varphi)$ can be factorized in the following form: +\begin{equation} \label{kugel:eqn:sep-ansatz:0} f(\vartheta, \varphi) = \Theta(\vartheta)\Phi(\varphi). \end{equation} -In short, we are saying that the effect of the two independent variables can be described using the multiplication of two functions that describe their effect separately. If we include this assumption in Eq.(\ref{kugel:eq:PDE_sph}), we have: -\begin{equation} - \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( \sin\vartheta \frac{\partial \Theta(\vartheta)}{\partial\vartheta} \right)\Phi(\varphi) - + \frac{1}{\sin^2 \vartheta} \frac{\partial^2 \Phi(\varphi)}{\partial\varphi^2} \Theta(\vartheta) + \lambda \Theta(\vartheta)\Phi(\varphi) = 0. \label{kugel:eq:sep_ansatz_1} +In other words, we are saying that the effect of the two independent variables +can be described using the multiplication of two functions that describe their +effect separately. This separation process was already presented in section +\ref{buch:pde:section:kugel}, but we will briefly rehearse it here for +convenience. If we substitute this assumption in +\eqref{kugel:eqn:eigen-pde}, we have: +\begin{equation} \label{kugel:eqn:sep-ansatz:1} + \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( + \sin\vartheta \frac{\partial \Theta(\vartheta)}{\partial\vartheta} + \right) \Phi(\varphi) + + \frac{1}{\sin^2 \vartheta} \frac{\partial^2 \Phi(\varphi)}{\partial\varphi^2} + \Theta(\vartheta) + + \lambda \Theta(\vartheta)\Phi(\varphi) = 0. \end{equation} -Dividing Eq.(\ref{kugel:eq:sep_ansatz_1}) by $\Theta(\vartheta)\Phi(\varphi)$ and inserting an auxiliary variable $m$, which we will call the separating constant, we will have: -\begin{equation*} -\frac{1}{\Theta(\vartheta)}\sin \vartheta \frac{d}{d \vartheta} \left( \sin \vartheta \frac{d \Theta}{d \vartheta} \right) + \lambda \sin^2 \vartheta = -\frac{1}{\Phi(\varphi)} \frac{d^2\Phi(\varphi)}{d\varphi^2} = m, -\end{equation*} -which is equivalent to the following system of two \emph{Ordinary Differential Equations} (ODEs) -\begin{align} - \frac{d^2\Phi(\varphi)}{d\varphi^2} &= -m \Phi(\varphi) \label{kugel:eq:ODE_1} \\ - \sin \vartheta \frac{d}{d \vartheta} \left( \sin \vartheta \frac{d \Theta}{d \vartheta} \right) + \left( \lambda - \frac{m}{\sin^2 \vartheta} \right)\Theta(\vartheta) &= 0 \label{kugel:eq:ODE_2} -\end{align} -The solution of Eq.(\ref{kugel:eq:ODE_1}) is quite trivial. The complex exponential is obviously the function we are looking for, so we can write +Dividing by $\Theta(\vartheta)\Phi(\varphi)$ and introducing an auxiliary +variable $m$, the separation constant, yields: \begin{equation*} - \Phi_m(\varphi) = e^{j m \varphi}, \quad m \in \mathbb{Z}. + \frac{1}{\Theta(\vartheta)}\sin \vartheta \frac{d}{d \vartheta} \left( + \sin \vartheta \frac{d \Theta}{d \vartheta} + \right) + + \lambda \sin^2 \vartheta + = -\frac{1}{\Phi(\varphi)} \frac{d^2\Phi(\varphi)}{d\varphi^2} + = m, \end{equation*} -The restriction for the separation constant $m$ arises from the fact that we require the following periodic constraint $\Phi_m(\varphi + 2\pi) = \Phi_m(\varphi)$.\newline -As for Eq.(\ref{kugel:eq:ODE_2}), the resolution will not be so straightforward. We can begin by considering the substitution $x = \cos \vartheta$. The operator $\frac{d}{d \vartheta}$ will be: +which is equivalent to the following system of 2 first order differential +equations (ODEs): +\begin{subequations} + \begin{gather} + \frac{d^2\Phi(\varphi)}{d\varphi^2} = -m \Phi(\varphi), + \label{kugel:eqn:ode-phi} \\ + \sin \vartheta \frac{d}{d \vartheta} \left( + \sin \vartheta \frac{d \Theta}{d \vartheta} + \right) + + \left( \lambda - \frac{m}{\sin^2 \vartheta} \right) + \Theta(\vartheta) = 0 + \label{kugel:eqn:ode-theta}. + \end{gather} +\end{subequations} +The solution of \eqref{kugel:eqn:ode-phi} is easy to find: The complex +exponential is obviously the function we are looking for. So we can directly +write the solutions +\begin{equation} \label{kugel:eqn:ode-phi-sol} + \Phi(\varphi) = e^{i m \varphi}, \quad m \in \mathbb{Z}. +\end{equation} +The restriction that the separation constant $m$ needs to be an integer arises +from the fact that we require a $2\pi$-periodicity in $\varphi$ since +$\Phi(\varphi + 2\pi) = \Phi(\varphi)$. Unfortunately, solving +\eqref{kugel:eqn:ode-theta} is not so straightforward. Actually it is quite +difficult, and the process is so involved that it will require a dedicated +section of its own. + +\subsection{Legendre Functions} + +To solve \eqref{kugel:eqn:ode-theta} +We can begin by considering the substitution $x = \cos \vartheta$. The operator $\frac{d}{d \vartheta}$ will be: \begin{align*} \frac{d}{d \vartheta} = \frac{dx}{d \vartheta}\frac{d}{dx} &= -\sin \vartheta \frac{d}{dx} \\ &= -\sqrt{1-x^2} \frac{d}{dx}. -- cgit v1.2.1 From 4a97506a4759a46f3263aee2c46d684aed0fb104 Mon Sep 17 00:00:00 2001 From: Fabian <@> Date: Wed, 17 Aug 2022 01:35:28 +0200 Subject: 3. Ueberarbeitung, done --- buch/papers/0f1/teil2.tex | 35 ++++++++++++++++++++++++++--------- buch/papers/0f1/teil3.tex | 8 ++++---- 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/buch/papers/0f1/teil2.tex b/buch/papers/0f1/teil2.tex index 9b3a586..64f8d83 100644 --- a/buch/papers/0f1/teil2.tex +++ b/buch/papers/0f1/teil2.tex @@ -41,37 +41,54 @@ a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{b_3}{a_3+\cdots}}}, in welchem $a_0, a_1,\dots,a_n$ und $b_1,b_2,\dots,b_n$ ganze Zahlen sind. \subsubsection{Rekursionsbeziehungen und Kettenbrüche} -Nimmt man nun folgende Gleichung \cite{0f1:wiki-fraction}: +Will man einen Kettenbruch für das Verhältnis $\frac{f_i(z)}{f_{i-1}(z)}$ finden, braucht man dazu eine Relation der analytischer Funktion $f_i(z)$. +Nimmt man die Gleichung \cite{0f1:wiki-fraction}: \begin{equation*} f_{i-1} - f_i = k_i z f_{i+1}, \end{equation*} wo $f_i$ analytische Funktionen sind und $i > 0$ ist, sowie $k_i$ konstant. Ergibt sich folgender Zusammenhang: \begin{equation*} - \cfrac{f_i}{f_{i-1}} = \cfrac{1}{1+k_iz\cfrac{f_{i+1}}{f_i}} + \cfrac{f_i}{f_{i-1}} = \cfrac{1}{1+k_iz\cfrac{f_{i+1}}{f_i}}. \end{equation*} +Geht man einen Schritt weiter und nimmt für $g_i = \frac{f_i}{f_{i-1}}$ an, kommt man zur Formel +\begin{equation*} + g_i = \cfrac{1}{1+k_izg_{i+1}}. +\end{equation*} +Setzt man dies nun für $g_1$ in den Bruch ein, ergibt sich folgendes: +\begin{equation*} + g_1 = \cfrac{f_1}{f_0} = \cfrac{1}{1+k_izg_2} = \cfrac{1}{1+\cfrac{k_1z}{1+k_2zg_3}} = \cdots +\end{equation*} +Repetiert man dies unendlich, erhält man einen Kettenbruch in der Form: +\begin{equation} + \label{0f1:math:rekursion:eq} + \cfrac{f_1}{f_0} = \cfrac{1}{1+\cfrac{k_1z}{1+\cfrac{k_2z}{1+\cfrac{k_3z}{\cdots}}}}. +\end{equation} + \subsubsection{Rekursion für $\mathstrut_0F_1$} -Angewendet auf die Funktion $\mathstrut_0F_1$ bedeutet dies: +Angewendet auf die Potenzreihe \begin{equation} \label{0f1:math:potenzreihe:0f1:eq} \mathstrut_0F_1(;c;z) = 1 + \frac{z}{c\cdot1!} + \frac{z^2}{c(c+1)\cdot2!} + \frac{z^3}{c(c+1)(c+2)\cdot3!} + \cdots \end{equation} -Durch Substitution kann bewiesen werden, dass die nachfolgende Formel eine Relation zur obigen Potenzreihe \eqref{0f1:math:potenzreihe:0f1:eq} ist: +kann durch Substitution bewiesen werden, dass \begin{equation*} - \mathstrut_0F_1(;c-1;z) - \mathstrut_0F_1(;c;z) = \frac{z}{c(c-1)} \cdot \mathstrut_0F_1(;c+1;z). + \mathstrut_0F_1(;c-1;z) - \mathstrut_0F_1(;c;z) = \frac{z}{c(c-1)} \cdot \mathstrut_0F_1(;c+1;z) \end{equation*} +eine Relation dazu ist. Wenn man für $f_i$ und $k_i$ folgende Annahme trifft: \begin{align*} - f_i =& \mathstrut_0F_1(;c+1;z)\\ - k_i =& \frac{1}{(c+1)(c+i-1)} + f_i =& \mathstrut_0F_1(;c+i;z)\\ + k_i =& \frac{1}{(c+i)(c+i-1)} \end{align*} -erhält man: +und in die Formel \eqref{0f1:math:rekursion:eq} einsetzt, erhält man: \begin{equation*} \cfrac{\mathstrut_0F_1(;c+1;z)}{\mathstrut_0F_1(;c;z)} = \cfrac{1}{1+\cfrac{\cfrac{z}{c(c+1)}}{1+\cfrac{\cfrac{z}{(c+1)(c+2)}}{1+\cfrac{\cfrac{z}{(c+2)(c+3)}}{\cdots}}}}. \end{equation*} \subsubsection{Algorithmus} -Mit weiteren Relationen ergibt sich nach Wolfram Alpha \cite{0f1:wolfram-0f1} folgender Kettenbruch +Da mit obigen Formeln nur ein Verhältnis zwischen $ \frac{\mathstrut_0F_1(;c+1;z)}{\mathstrut_0F_1(;c;z)}$ berechnet wurde, braucht es weitere Relationen um $\mathstrut_0F_1(;c;z)$ zu erhalten. +So ergeben ähnliche Relationen nach Wolfram Alpha \cite{0f1:wolfram-0f1} folgender Kettenbruch \begin{equation} \label{0f1:math:kettenbruch:0f1:eq} \mathstrut_0F_1(;c;z) = 1 + \cfrac{\cfrac{z}{c}}{1+\cfrac{-\cfrac{z}{2(c+1)}}{1+\cfrac{z}{2(c+1)}+\cfrac{-\cfrac{z}{3(c+2)}}{1+\cfrac{z}{5(c+4)} + \cdots}}}, diff --git a/buch/papers/0f1/teil3.tex b/buch/papers/0f1/teil3.tex index b6c0f4f..2afc34b 100644 --- a/buch/papers/0f1/teil3.tex +++ b/buch/papers/0f1/teil3.tex @@ -15,9 +15,9 @@ Ebenso kann festgestellt werden, dass je grösser der Wert $z$ in $\mathstrut_0F \label{0f1:subsection:konvergenz}} Es zeigt sich in Abbildung \ref{0f1:ausblick:plot:airy:konvergenz}, dass nach drei Iterationen ($k = 3$) die Funktionen genaue Resultate im Bereich von $-2$ bis $2$ liefert. Ebenso kann festgestellt werden, dass der Kettenbruch schneller konvergiert und im positiven Bereich mit der Referenzfunktion $\operatorname{Ai}(x)$ übereinstimmt. Da die Rekursionsformel eine Abwandlung des Kettenbruches ist, verhalten sich die Funktionen in diesem Fall gleich. -Erst wenn mehrerer Iterationen gerechnet werden, ist wie Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, der Kettenbruch den anderen zwei Algorithmen bezüglich Konvergenz überlegen. Allerdings muss beachtet werden, dass die Rekursionsformel zwar erst nach 35 Approximationen gänzlich konvergiert, nach 27 Iterationen sich nicht mehr gross verändert. +Erst wenn mehrerer Iterationen gerechnet werden, ist wie Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, der Kettenbruch den anderen zwei Algorithmen bezüglich Konvergenz überlegen. Bei der Rekursionsformel muss beachtet werden, dass sie zwar erst nach 35 Approximationen gänzlich konvergiert, allerdings nach 27 Iterationen sich nicht mehr gross verändert. -Ist $z$ negativ wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:negativ}, führt dies zu aufgrund des Vorzeichens zu alternierenden Termen. So steigt bei allen Algorithmen zuerst die Differenz zum erwarteten Endwert. Erst nach genügend Iterationen sind die Terme so klein, dass sie das Endresultat nicht mehr signifikant beeinflussen. Während die Potenzreihe zusammen mit dem Kettenbruch nach 34 Approximationen konvergiert, braucht die Rekursionsformel noch zwei Iterationen mehr. Wohingegen die Rekursionsformel der genauste Algorithmus im negativen Bereich ist. Da der Computer mit einer relativen Genauigkeit von $10^{-15}$ rechnet, ist dies das Maximum an Präzision, dass erreicht werden kann. +Ist $z$ negativ wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:negativ}, führt dies zu aufgrund des Vorzeichens zu alternierenden Termen. So steigt bei allen Algorithmen zuerst die Differenz zum erwarteten Endwert. Erst nach genügend Iterationen sind die Terme so klein, dass sie das Endresultat nicht mehr signifikant beeinflussen. Während die Potenzreihe zusammen mit dem Kettenbruch nach 34 Approximationen konvergiert, braucht die Rekursionsformel noch zwei Iterationen mehr. \subsection{Stabilität @@ -39,14 +39,14 @@ Im negativem Bereich sind alle gewählten und umgesetzten Ansätze instabil. Gru \begin{figure} \centering \includegraphics[width=0.8\textwidth]{papers/0f1/images/konvergenzPositiv.pdf} - \caption{Konvergenz mit positivem $z$; Logarithmisch dargestellte absoluter Fehler. + \caption{Konvergenz mit positivem $z$; Logarithmisch dargestellter absoluter Fehler. \label{0f1:ausblick:plot:konvergenz:positiv}} \end{figure} \begin{figure} \centering \includegraphics[width=0.8\textwidth]{papers/0f1/images/konvergenzNegativ.pdf} - \caption{Konvergenz mit negativem $z$; Logarithmisch dargestellte absoluter Fehler. + \caption{Konvergenz mit negativem $z$; Logarithmisch dargestellter absoluter Fehler. \label{0f1:ausblick:plot:konvergenz:negativ}} \end{figure} -- cgit v1.2.1 From a5d4cd12216d17c62b6493675aecf453f82c9ea4 Mon Sep 17 00:00:00 2001 From: Alain Date: Wed, 17 Aug 2022 08:10:05 +0200 Subject: =?UTF-8?q?l=C3=B6sungssachen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/parzyl/references.bib | 24 +++++++++++++++++++ buch/papers/parzyl/teil1.tex | 49 +++++++++++++++++++++++++++++++-------- 2 files changed, 63 insertions(+), 10 deletions(-) diff --git a/buch/papers/parzyl/references.bib b/buch/papers/parzyl/references.bib index 494ff7c..40be69a 100644 --- a/buch/papers/parzyl/references.bib +++ b/buch/papers/parzyl/references.bib @@ -33,3 +33,27 @@ url = {https://doi.org/10.1016/j.acha.2017.11.004} } +@book{parzyl:whittaker, + place={Cambridge}, + edition={4}, + series={Cambridge Mathematical Library}, + title={A Course of Modern Analysis}, + DOI={10.1017/CBO9780511608759}, + publisher={Cambridge University Press}, + author={Whittaker, E. T. and Watson, G. N.}, + year={1996}, + collection={Cambridge Mathematical Library}} + +@book{parzyl:abramowitz-stegun, + added-at = {2008-06-25T06:25:58.000+0200}, + address = {New York}, + author = {Abramowitz, Milton and Stegun, Irene A.}, + edition = {ninth Dover printing, tenth GPO printing}, + interhash = {d4914a420f489f7c5129ed01ec3cf80c}, + intrahash = {23ec744709b3a776a1af0a3fd65cd09f}, + keywords = {Handbook}, + publisher = {Dover}, + timestamp = {2008-06-25T06:25:58.000+0200}, + title = {Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables}, + year = 1972 +} \ No newline at end of file diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index b02a1bf..edc6db0 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -62,7 +62,7 @@ Mit der Hypergeometrischen Funktion ausgeschrieben ergeben sich die Lösungen - k, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2). \end{align} In der Literatur gibt es verschiedene Standartlösungen für $w(k,z)$ präsentiert. -Whittaker und Whatson zeigen in \dots eine Lösung +Whittaker und Watson zeigen in \cite{parzyl:whittaker} eine Lösung \begin{equation} D_n(z) = \frac{ \Gamma \left( {\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{2}} z^{-\frac{1}{2}} @@ -76,7 +76,7 @@ Whittaker und Whatson zeigen in \dots eine Lösung }{ \Gamma\left(- {\textstyle \frac{1}{2}} n\right) } - M_{\frac{1}{2} n + \frac{1}{4}, \frac{1}{4}} \left(\frac{1}{2}z^2\right). + M_{\frac{1}{2} n + \frac{1}{4}, \frac{1}{4}} \left(\frac{1}{2}z^2\right) \end{equation} welche die Differenzialgleichung \begin{equation} @@ -84,18 +84,40 @@ welche die Differenzialgleichung \end{equation} löst. -Blablubla beschreibt zwei Lösungen $U(a, z)$ und $V(a,z)$ der Differenzialgleichung +In \cite{parzyl:abramowitz-stegun} sind zwei Lösungen $U(a, z)$ und $V(a,z)$ +\begin{align} + U(a,z) &= + \cos\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_1 + - \sin\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_2 \\ + V(a,z) &= \frac{1}{\Gamma \left({\textstyle \frac{1}{2} - a}\right)} \left\{ + \sin\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_1 + + \cos\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_2 + \right\} +\end{align} +mit +\begin{align} + Y_1 &= \frac{1}{\sqrt{\pi}} + \frac{\Gamma\left({\textstyle \frac{1}{4} - + {\textstyle \frac{1}{2}}a}\right)} + {2^{\frac{1}{2} a + \frac{1}{4}}} w_1\\ + Y_2 &= \frac{1}{\sqrt{\pi}} + \frac{\Gamma\left({\textstyle \frac{3}{4} - + {\textstyle \frac{1}{2}}a}\right)} + {2^{\frac{1}{2} a - \frac{1}{4}}} w_2 +\end{align} +der Differenzialgleichung \begin{equation} - \frac{d^2 y}{d z^2} - \left(\frac{1}{4} z^2 + a\right) y = 0. + \frac{d^2 y}{d z^2} - \left(\frac{1}{4} z^2 + a\right) y = 0 \end{equation} +beschrieben. \begin{align} U(a,z) &= - \cos\left(\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right) Y_1 - - \sin\left(\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right) Y_2 \\ - V(a,z) &= \frac{1}{\Gamma \left({\textstyle \frac{1}{2} - a}\right)} \left( - \sin\left(\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right) Y_1 - + \cos\left(\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right) Y_2 - \right) + \cos\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_1 + - \sin\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_2 \\ + V(a,z) &= \frac{1}{\Gamma \left({\textstyle \frac{1}{2} - a}\right)} \left\{ + \sin\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_1 + + \cos\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_2 + \right\} \end{align} mit \begin{align} @@ -109,3 +131,10 @@ mit {2^{\frac{1}{2} a - \frac{1}{4}}} w_2 \end{align} +Die Lösungen $U(a,z)$ und $V(a, z)$ können auch mit $D_n(z)$ +ausgedrückt werden +\begin{align} + U(a,z) &= D_{-a-1/2}(z) \\ + V(a,z) &= \frac{\Gamma \left({\textstyle \frac{1}{2}} + a\right)}{\pi} + \left[\sin\left(\pi a\right) D_{-a-1/2}(z) + D_{-a-1/2}(-x)\right]. +\end{align} -- cgit v1.2.1 From 1e358f56c6ad619ff5a2259ff9043af1ee8f274f Mon Sep 17 00:00:00 2001 From: Alain Date: Wed, 17 Aug 2022 08:21:27 +0200 Subject: =?UTF-8?q?=C3=A4nderungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/parzyl/teil0.tex | 18 ++---------------- buch/papers/parzyl/teil1.tex | 21 +++++++++++++++++++-- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/buch/papers/parzyl/teil0.tex b/buch/papers/parzyl/teil0.tex index 3b14287..2844a6e 100644 --- a/buch/papers/parzyl/teil0.tex +++ b/buch/papers/parzyl/teil0.tex @@ -238,26 +238,12 @@ und + \mu \right ) - i(\tau) + i(z) = 0 \end{equation} führt. -Die Lösung von \eqref{parzyl:sep_dgl_3} -\begin{equation} - i(z) - = - A\cos{ - \left ( - \sqrt{\lambda + \mu}z - \right )} - + - B\sin{ - \left ( - \sqrt{\lambda + \mu}z - \right )} -\end{equation} -ist und \eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2} die sogenannten Weberschen Differentialgleichungen sind, welche die parabolischen Zylinder Funktionen als Lösung haben. + diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index edc6db0..154ee71 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -6,6 +6,22 @@ \section{Lösung \label{parzyl:section:teil1}} \rhead{Lösung} + +\eqref{parzyl:sep_dgl_3} beschriebt einen ungedämpften harmonischen Oszillator. +Die Lösung ist somit +\begin{equation} + i(z) + = + A\cos{ + \left ( + \sqrt{\lambda + \mu}z + \right )} + + + B\sin{ + \left ( + \sqrt{\lambda + \mu}z + \right )}. +\end{equation} Die Differentialgleichungen \eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2} können mit Hilfe der Whittaker Gleichung gelöst werden. \begin{definition} @@ -78,7 +94,7 @@ Whittaker und Watson zeigen in \cite{parzyl:whittaker} eine Lösung } M_{\frac{1}{2} n + \frac{1}{4}, \frac{1}{4}} \left(\frac{1}{2}z^2\right) \end{equation} -welche die Differenzialgleichung +welche die Differentialgleichung \begin{equation} \frac{d^2D_n(z)}{dz^2} + \left(n + \frac{1}{2} - \frac{1}{4} z^2\right)D_n(z) = 0 \end{equation} @@ -105,7 +121,7 @@ mit {\textstyle \frac{1}{2}}a}\right)} {2^{\frac{1}{2} a - \frac{1}{4}}} w_2 \end{align} -der Differenzialgleichung +der Differentialgleichung \begin{equation} \frac{d^2 y}{d z^2} - \left(\frac{1}{4} z^2 + a\right) y = 0 \end{equation} @@ -138,3 +154,4 @@ ausgedrückt werden V(a,z) &= \frac{\Gamma \left({\textstyle \frac{1}{2}} + a\right)}{\pi} \left[\sin\left(\pi a\right) D_{-a-1/2}(z) + D_{-a-1/2}(-x)\right]. \end{align} +TODO Plot \ No newline at end of file -- cgit v1.2.1 From 2cc8141db9b3cb5e7cfa27cf6187fdf0c23f7240 Mon Sep 17 00:00:00 2001 From: Alain Date: Wed, 17 Aug 2022 08:26:46 +0200 Subject: fehlerverbesserungen --- buch/papers/parzyl/teil0.tex | 4 +--- buch/papers/parzyl/teil1.tex | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/buch/papers/parzyl/teil0.tex b/buch/papers/parzyl/teil0.tex index 2844a6e..4a6f8f4 100644 --- a/buch/papers/parzyl/teil0.tex +++ b/buch/papers/parzyl/teil0.tex @@ -97,8 +97,6 @@ Ebene gezogen werden. Um in diesem Koordinatensystem integrieren und differenzieren zu können braucht es die Skalierungsfaktoren $h_{\tau}$, $h_{\sigma}$ und $h_{z}$. -\dots - Wird eine infinitessimal kleine Distanz $ds$ zwischen zwei Punkten betrachtet kann dies im kartesischen Koordinatensystem mit \begin{equation} @@ -107,7 +105,7 @@ kann dies im kartesischen Koordinatensystem mit \label{parzyl:eq:ds} \end{equation} ausgedrückt werden. -Das Skalierungsfaktoren werden so bestimmt, dass +Die Skalierungsfaktoren werden so bestimmt, dass \begin{equation} \left(ds\right)^2 = \left(h_{\sigma}d\sigma\right)^2 + \left(h_{\tau}d\tau\right)^2 + \left(h_z dz\right)^2 diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index 154ee71..83aa00e 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -22,8 +22,8 @@ Die Lösung ist somit \sqrt{\lambda + \mu}z \right )}. \end{equation} -Die Differentialgleichungen \eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2} können mit -Hilfe der Whittaker Gleichung gelöst werden. +Die Differentialgleichungen \eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2} werden in \cite{parzyl:whittaker} +mit Hilfe der Whittaker Gleichung gelöst. \begin{definition} Die Funktion \begin{equation*} -- cgit v1.2.1 From 3e8ec5a6aea34b07f0c18aac6fa69ee21bdf89c1 Mon Sep 17 00:00:00 2001 From: Alain Date: Wed, 17 Aug 2022 08:34:26 +0200 Subject: mehr fehler --- buch/papers/parzyl/teil1.tex | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index 83aa00e..a56d94b 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -125,29 +125,7 @@ der Differentialgleichung \begin{equation} \frac{d^2 y}{d z^2} - \left(\frac{1}{4} z^2 + a\right) y = 0 \end{equation} -beschrieben. -\begin{align} - U(a,z) &= - \cos\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_1 - - \sin\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_2 \\ - V(a,z) &= \frac{1}{\Gamma \left({\textstyle \frac{1}{2} - a}\right)} \left\{ - \sin\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_1 - + \cos\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_2 - \right\} -\end{align} -mit -\begin{align} - Y_1 &= \frac{1}{\sqrt{\pi}} - \frac{\Gamma\left({\textstyle \frac{1}{4} - - {\textstyle \frac{1}{2}}a}\right)} - {2^{\frac{1}{2} a + \frac{1}{4}}} w_1\\ - Y_2 &= \frac{1}{\sqrt{\pi}} - \frac{\Gamma\left({\textstyle \frac{3}{4} - - {\textstyle \frac{1}{2}}a}\right)} - {2^{\frac{1}{2} a - \frac{1}{4}}} w_2 -\end{align} - -Die Lösungen $U(a,z)$ und $V(a, z)$ können auch mit $D_n(z)$ +beschrieben. Die Lösungen $U(a,z)$ und $V(a, z)$ können auch mit $D_n(z)$ ausgedrückt werden \begin{align} U(a,z) &= D_{-a-1/2}(z) \\ -- cgit v1.2.1 From 46f7c56ca3b5cb512ed2b82beefeb2057af0d8cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Wed, 17 Aug 2022 13:30:40 +0200 Subject: Corrected formatting errors in fourier example. --- buch/papers/sturmliouville/waermeleitung_beispiel.tex | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/buch/papers/sturmliouville/waermeleitung_beispiel.tex b/buch/papers/sturmliouville/waermeleitung_beispiel.tex index 7a37b2b..a72c562 100644 --- a/buch/papers/sturmliouville/waermeleitung_beispiel.tex +++ b/buch/papers/sturmliouville/waermeleitung_beispiel.tex @@ -20,7 +20,7 @@ die partielle Differentialgleichung \frac{\partial u}{\partial t} = \kappa \frac{\partial^{2}u}{{\partial x}^{2}}, \end{equation} -wobei der Stab in diesem Fall auf der X-Achse im Intervall $[0,l]$ liegt. +wobei der Stab in diesem Fall auf der $X$-Achse im Intervall $[0,l]$ liegt. Da diese Differentialgleichung das Problem allgemein für einen homogenen Stab beschreibt, werden zusätzliche Bedingungen benötigt, um beispielsweise @@ -35,7 +35,7 @@ Tempreatur gehalten werden. Die Enden des Stabes auf konstanter Temperatur zu halten bedeutet, dass die Lösungsfunktion $u(t,x)$ bei $x = 0$ und $x = l$ nur die vorgegebene Temperatur zurückgeben darf. Diese wird einfachheitshalber als $0$ angenomen. -Es folgen nun +Es folgt nun \begin{equation} \label{sturmliouville:eq:example-fourier-boundary-condition-ends-constant} u(t,0) @@ -52,7 +52,7 @@ als Randbedingungen. \subsubsection{Randbedingungen für Stab mit isolierten Enden} -Bei isolierten Enden des Stabes können belibige Temperaturen für $x = 0$ und +Bei isolierten Enden des Stabes können beliebige Temperaturen für $x = 0$ und $x = l$ auftreten. In diesem Fall ist es nicht erlaubt, dass Wärme vom Stab an die Umgebung oder von der Umgebung an den Stab abgegeben wird. @@ -187,7 +187,7 @@ somit auch zu orthogonalen Lösungen führen. % Lösung von X(x), Teil mu % -\subsubsection{Lösund der Differentialgleichung in x} +\subsubsection{Lösund der Differentialgleichung in $x$} Als erstes wird auf die Gleichung~\eqref{sturmliouville:eq:example-fourier-separated-x} eingegangen. Aufgrund der Struktur der Gleichung @@ -473,7 +473,7 @@ berechnet: \\ 2\int_{0}^{l}u(0, x)\cos\left(\frac{m \pi}{l}x\right)dx =& - a_0 \int_{-l}^{l}cos\left(\frac{m \pi}{l}x\right) dx + a_0 \int_{-l}^{l}\cos\left(\frac{m \pi}{l}x\right) dx + \sum_{n = 1}^{\infty}\left[a_n\int_{-l}^{l}\cos\left(\frac{n\pi}{l}x\right) \cos\left(\frac{m \pi}{l}x\right)dx\right] @@ -487,7 +487,7 @@ berechnet: Betrachtet man nun die Summanden auf der rechten Seite stellt man fest, dass nahezu alle Terme verschwinden, denn \[ - \int_{-l}^{l}cos\left(\frac{m \pi}{l}x\right) dx + \int_{-l}^{l}\cos\left(\frac{m \pi}{l}x\right) dx = 0, \] @@ -528,10 +528,10 @@ mit $u = \frac{m \pi}{l}x$ substituiert wird: \frac{\sin\left(2u\right)}{4}\right]_{u=-m\pi}^{m\pi} \\ &= - a_m\frac{l}{m\pi}\left(\frac{m\pi}{2} + + a_m\frac{l}{m\pi}\biggl(\frac{m\pi}{2} + \underbrace{\frac{\sin\left(2m\pi\right)}{4}}_{\displaystyle = 0} - \frac{-m\pi}{2} - - \underbrace{\frac{\sin\left(-2m\pi\right)}{4}}_{\displaystyle = 0}\right) + \underbrace{\frac{\sin\left(-2m\pi\right)}{4}}_{\displaystyle = 0}\biggr) \\ &= a_m l -- cgit v1.2.1 From c06cb44760c3258ab6d5d30451283371b4881346 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 17 Aug 2022 14:40:44 +0200 Subject: kugel: Add reference --- buch/papers/kugel/references.bib | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/buch/papers/kugel/references.bib b/buch/papers/kugel/references.bib index b74c5cd..e5d6452 100644 --- a/buch/papers/kugel/references.bib +++ b/buch/papers/kugel/references.bib @@ -192,4 +192,15 @@ Created by Henry Reich}, urldate = {2022-08-01}, date = {2022}, file = {Metric Spaces\: Completeness:/Users/npross/Zotero/storage/5JYEE8NF/completeness.html:text/html}, +} + +@book{bell_special_2004, + location = {Mineola, {NY}}, + title = {Special functions for scientists and engineers}, + isbn = {978-0-486-43521-3}, + series = {Dover books on mathematics}, + pagetotal = {247}, + publisher = {Dover Publ}, + author = {Bell, William Wallace}, + date = {2004}, } \ No newline at end of file -- cgit v1.2.1 From fb7badcc5d1353ad11fff486b634d25a7b26b38b Mon Sep 17 00:00:00 2001 From: Alain Date: Wed, 17 Aug 2022 15:44:00 +0200 Subject: les bildeurs --- buch/papers/parzyl/img/D_plot.png | Bin 0 -> 712446 bytes buch/papers/parzyl/img/v_plot.png | Bin 0 -> 637451 bytes buch/papers/parzyl/teil1.tex | 16 ++++++++++++++-- 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 buch/papers/parzyl/img/D_plot.png create mode 100644 buch/papers/parzyl/img/v_plot.png diff --git a/buch/papers/parzyl/img/D_plot.png b/buch/papers/parzyl/img/D_plot.png new file mode 100644 index 0000000..f76e35b Binary files /dev/null and b/buch/papers/parzyl/img/D_plot.png differ diff --git a/buch/papers/parzyl/img/v_plot.png b/buch/papers/parzyl/img/v_plot.png new file mode 100644 index 0000000..b8c803e Binary files /dev/null and b/buch/papers/parzyl/img/v_plot.png differ diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index a56d94b..673fa7f 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -88,7 +88,7 @@ Whittaker und Watson zeigen in \cite{parzyl:whittaker} eine Lösung M_{\frac{1}{2} n + \frac{1}{4}, - \frac{1}{4}} \left(\frac{1}{2}z^2\right) + \frac{ - \Gamma\left(-{\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{2}} z^{-\frac{1}{2}} + \Gamma\left(-{\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{4}} z^{-\frac{1}{2}} }{ \Gamma\left(- {\textstyle \frac{1}{2}} n\right) } @@ -132,4 +132,16 @@ ausgedrückt werden V(a,z) &= \frac{\Gamma \left({\textstyle \frac{1}{2}} + a\right)}{\pi} \left[\sin\left(\pi a\right) D_{-a-1/2}(z) + D_{-a-1/2}(-x)\right]. \end{align} -TODO Plot \ No newline at end of file +TODO Plot +\begin{figure} + \centering + \includegraphics[scale=0.3]{papers/parzyl/img/D_plot.png} + \caption{$D_a(z)$ mit unterschiedlichen Werten für $a$.} + \label{parzyl:fig:dnz} +\end{figure} +\begin{figure} + \centering + \includegraphics[scale=0.3]{papers/parzyl/img/v_plot.png} + \caption{$V(a,z)$ mit unterschiedlichen Werten für $a$.} + \label{parzyl:fig:Vnz} +\end{figure} \ No newline at end of file -- cgit v1.2.1 From 030aa1f0d5bb3020c909ff7cedd102ea5ff69927 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20L=C3=B6ffler?= Date: Wed, 17 Aug 2022 15:47:34 +0200 Subject: Revised solution properties section. --- buch/papers/sturmliouville/eigenschaften.tex | 32 ++++++++++++++++------------ 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/buch/papers/sturmliouville/eigenschaften.tex b/buch/papers/sturmliouville/eigenschaften.tex index 85f0bf3..bef8a39 100644 --- a/buch/papers/sturmliouville/eigenschaften.tex +++ b/buch/papers/sturmliouville/eigenschaften.tex @@ -37,31 +37,35 @@ für die Lösungen des Sturm-Liouville-Problems zur Folge hat. \subsubsection{Exkurs zum Spektralsatz} -Um zu verstehen was für Eigenschaften der selbstadjungierte Operator $L_0$ in +Um zu verstehen welche Eigenschaften der selbstadjungierte Operator $L_0$ in den Lösungen hervorbringt, wird der Spektralsatz benötigt. Dieser wird in der linearen Algebra oft verwendet um zu zeigen, dass eine Matrix diagonalisierbar ist, beziehungsweise dass eine Orthonormalbasis existiert. -Dazu wird zunächst gezeigt, dass eine gegebene $n\times n$-Matrix $A$ aus einem -endlichdimensionalem $\mathbb{K}$-Vektorraum selbstadjungiert ist, also dass + +Im Fall einer gegebenen $n\times n$-Matrix $A$ mit reellen Einträgen wird dazu +zunächst gezeigt, dass $A$ selbstadjungiert ist, also dass \[ \langle Av, w \rangle = \langle v, Aw \rangle \] -für $ v, w \in \mathbb{K}^n$ gilt. -Ist dies der Fall, folgt direkt, dass $A$ auch normal ist. -Dann wird die Aussage des Spektralsatzes -\cite{sturmliouville:spektralsatz-wiki} verwended, welche besagt, dass für -Endomorphismen genau dann eine Orthonormalbasis aus Eigenvektoren existiert, -wenn sie normal sind und nur Eigenwerte aus $\mathbb{K}$ besitzten. +für $ v, w \in \mathbb{R}^n$ gilt. +Ist dies der Fall, kann die Aussage des Spektralsatzes +\cite{sturmliouville:spektralsatz-wiki} verwended werden. +Daraus folgt dann, dass eine Orthonormalbasis aus Eigenvektoren existiert, +wenn $A$ nur Eigenwerte aus $\mathbb{R}$ besitzt. Dies ist allerdings nicht die Einzige Version des Spektralsatzes. -Unter anderen gibt es den Spektralsatz für kompakte Operatoren -\cite{sturmliouville:spektralsatz-wiki}. -Dieser besagt, dass wenn ein linearer kompakter Operator in -$\mathbb{R}$ selbstadjungiert ist, ein (eventuell endliches) -Orthonormalsystem existiert. +Unter anderen gibt es den Spektralsatz für kompakte Operatoren +\cite{sturmliouville:spektralsatz-wiki}, welcher für das +Sturm-Liouville-Problem von Bedeutung ist. +Welche Voraussetzungen erfüllt sein müssen, um diese Version des +Satzes verwenden zu können, wird hier aber nicht diskutiert und kann bei den +Beispielen in diesem Kapitel als gegeben betrachtet werden. +Grundsätzlich ist die Aussage in dieser Version dieselbe, wie bei den Matrizen, +also dass für ein Operator eine Orthonormalbasis aus Eigenvektoren existiert, +falls er selbstadjungiert ist. \subsubsection{Anwendung des Spektralsatzes auf $L_0$} -- cgit v1.2.1 From 88cc0ae20e53d67b671f0713a7921c18736bdf3e Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 17 Aug 2022 16:12:40 +0200 Subject: kugel: fix figures makefile, add curvature-1d --- buch/papers/kugel/figures/tikz/Makefile | 12 + buch/papers/kugel/figures/tikz/curvature-1d.dat | 500 ++++++++++++++++++++++++ buch/papers/kugel/figures/tikz/curvature-1d.pdf | Bin 0 -> 15387 bytes buch/papers/kugel/figures/tikz/curvature-1d.py | 32 ++ buch/papers/kugel/figures/tikz/curvature-1d.tex | 21 + 5 files changed, 565 insertions(+) create mode 100644 buch/papers/kugel/figures/tikz/Makefile create mode 100644 buch/papers/kugel/figures/tikz/curvature-1d.dat create mode 100644 buch/papers/kugel/figures/tikz/curvature-1d.pdf create mode 100644 buch/papers/kugel/figures/tikz/curvature-1d.py create mode 100644 buch/papers/kugel/figures/tikz/curvature-1d.tex diff --git a/buch/papers/kugel/figures/tikz/Makefile b/buch/papers/kugel/figures/tikz/Makefile new file mode 100644 index 0000000..4ec4e5a --- /dev/null +++ b/buch/papers/kugel/figures/tikz/Makefile @@ -0,0 +1,12 @@ +FIGURES := spherical-coordinates.pdf curvature-1d.pdf + +all: $(FIGURES) + +%.pdf: %.tex + pdflatex $< + +curvature-1d.pdf: curvature-1d.tex curvature-1d.dat + pdflatex curvature-1d.tex + +curvature-1d.dat: curvature-1d.py + python3 $< diff --git a/buch/papers/kugel/figures/tikz/curvature-1d.dat b/buch/papers/kugel/figures/tikz/curvature-1d.dat new file mode 100644 index 0000000..6622398 --- /dev/null +++ b/buch/papers/kugel/figures/tikz/curvature-1d.dat @@ -0,0 +1,500 @@ +0.000000000000000000e+00 1.000000000000000000e+00 5.000007286987066095e+02 +2.004008016032064049e-02 1.025056790958151831e+00 4.899813296957295279e+02 +4.008016032064128098e-02 1.050121598724190752e+00 4.799659543969494848e+02 +6.012024048096192147e-02 1.075186379145250948e+00 4.699586248906784931e+02 +8.016032064128256196e-02 1.100243094530689136e+00 4.599633600341078932e+02 +1.002004008016031955e-01 1.125283716879951434e+00 4.499841738393695891e+02 +1.202404809619238429e-01 1.150300231106550664e+00 4.400250738615438877e+02 +1.402805611222444904e-01 1.175284638256853809e+00 4.300900595892592833e+02 +1.603206412825651239e-01 1.200228958722394657e+00 4.201831208385332275e+02 +1.803607214428857575e-01 1.225125235444413541e+00 4.103082361504954747e+02 +2.004008016032063910e-01 1.249965537109345881e+00 4.004693711936409954e+02 +2.204408817635270523e-01 1.274741961333968554e+00 3.906704771712513775e+02 +2.404809619238476859e-01 1.299446637838927776e+00 3.809154892346260795e+02 +2.605210420841683194e-01 1.324071731609375302e+00 3.712083249027585907e+02 +2.805611222444889807e-01 1.348609446041445725e+00 3.615528824890962483e+02 +3.006012024048095865e-01 1.373052026073301457e+00 3.519530395360096122e+02 +3.206412825651302478e-01 1.397391761299501045e+00 3.424126512576057166e+02 +3.406813627254509091e-01 1.421620989067430063e+00 3.329355489915074031e+02 +3.607214428857715149e-01 1.445732097554558448e+00 3.235255386602207750e+02 +3.807615230460921762e-01 1.469717528825280173e+00 3.141863992427096832e+02 +4.008016032064127820e-01 1.493569781866116220e+00 3.049218812567906411e+02 +4.208416833667334433e-01 1.517281415598057848e+00 2.957357052529569614e+02 +4.408817635270541047e-01 1.540845051864837556e+00 2.866315603202378384e+02 +4.609218436873747105e-01 1.564253378395934257e+00 2.776131026046919601e+02 +4.809619238476953718e-01 1.587499151743118286e+00 2.686839538411309150e+02 +5.010020040080159776e-01 1.610575200189357625e+00 2.598476998986618582e+02 +5.210420841683366389e-01 1.633474426628916509e+00 2.511078893406329655e+02 +5.410821643286573002e-01 1.656189811417493107e+00 2.424680319995614752e+02 +5.611222444889779615e-01 1.678714415191247422e+00 2.339315975676150003e+02 +5.811623246492986228e-01 1.701041381653590534e+00 2.255020142032130082e+02 +6.012024048096191731e-01 1.723163940328612753e+00 2.171826671543084046e+02 +6.212424849699398344e-01 1.745075409280051337e+00 2.089768973989005474e+02 +6.412825651302604957e-01 1.766769197794693991e+00 2.008880003033277433e+02 +6.613226452905811570e-01 1.788238809029157217e+00 1.929192242988764008e+02 +6.813627254509018183e-01 1.809477842618958832e+00 1.850737695772391760e+02 +7.014028056112223686e-01 1.830479997248850577e+00 1.773547868053454408e+02 +7.214428857715430299e-01 1.851239073183373218e+00 1.697653758600805816e+02 +7.414829659318636912e-01 1.871748974756613837e+00 1.623085845834024497e+02 +7.615230460921843525e-01 1.892003712820175432e+00 1.549874075583541639e+02 +7.815631262525050138e-01 1.911997407148365635e+00 1.478047849064652723e+02 +8.016032064128255641e-01 1.931724288799645972e+00 1.407636011070246695e+02 +8.216432865731462254e-01 1.951178702433387091e+00 1.338666838386980942e+02 +8.416833667334668867e-01 1.970355108581006931e+00 1.271168028439571600e+02 +8.617234468937875480e-01 1.989248085870571892e+00 1.205166688167746969e+02 +8.817635270541082093e-01 2.007852333203973494e+00 1.140689323140332476e+02 +9.018036072144288706e-01 2.026162671885804123e+00 1.077761826910842018e+02 +9.218436873747494209e-01 2.044174047703075203e+00 1.016409470618853419e+02 +9.418837675350700822e-01 2.061881532954947804e+00 9.566568928413349227e+01 +9.619238476953907435e-01 2.079280328431652780e+00 8.985280896980044929e+01 +9.819639278557114048e-01 2.096365765341811738e+00 8.420464052146976996e+01 +1.002004008016031955e+00 2.113133307187384347e+00 7.872345219486057033e+01 +1.022044088176352616e+00 2.129578551585488810e+00 7.341144518791566043e+01 +1.042084168336673278e+00 2.145697232036356539e+00 6.827075275681968947e+01 +1.062124248496993939e+00 2.161485219636723798e+00 6.330343935930140020e+01 +1.082164328657314600e+00 2.176938524737964453e+00 5.851149982556578522e+01 +1.102204408817635262e+00 2.192053298548298113e+00 5.389685855718687435e+01 +1.122244488977955923e+00 2.206825834678430187e+00 4.946136875428519630e+01 +1.142284569138276584e+00 2.221252570630007028e+00 4.520681167129833966e+01 +1.162324649298597246e+00 2.235330089226285288e+00 4.113489590164444110e+01 +1.182364729458917685e+00 2.249055119984439521e+00 3.724725669156617869e+01 +1.202404809619238346e+00 2.262424540428958686e+00 3.354545528342948302e+01 +1.222444889779559007e+00 2.275435377345608856e+00 3.003097828874255271e+01 +1.242484969939879669e+00 2.288084807975446999e+00 2.670523709114522859e+01 +1.262525050100200330e+00 2.300370161148418191e+00 2.356956727960955078e+01 +1.282565130260520991e+00 2.312288918356074419e+00 2.062522811207871243e+01 +1.302605210420841653e+00 2.323838714762985536e+00 1.787340200976009186e+01 +1.322645290581162314e+00 2.335017340156437360e+00 1.531519408227492640e+01 +1.342685370741482975e+00 2.345822739834032333e+00 1.295163168385587404e+01 +1.362725450901803637e+00 2.356253015428841913e+00 1.078366400077049292e+01 +1.382765531062124298e+00 2.366306425671775404e+00 8.812161670136093861e+00 +1.402805611222444737e+00 2.375981387090854824e+00 7.037916430279492097e+00 +1.422845691382765398e+00 2.385276474647127998e+00 5.461640802781636772e+00 +1.442885771543086060e+00 2.394190422306948562e+00 4.083967806335150996e+00 +1.462925851703406721e+00 2.402722123550405264e+00 2.905450702529595031e+00 +1.482965931863727382e+00 2.410870631815691834e+00 1.926562773666154138e+00 +1.503006012024048044e+00 2.418635160879236246e+00 1.147697132691613664e+00 +1.523046092184368705e+00 2.426015085171442820e+00 5.691665653277303560e-01 +1.543086172344689366e+00 2.433009940027915263e+00 1.912034044591185422e-01 +1.563126252505010028e+00 2.439619421876060734e+00 1.395943683027547552e-02 +1.583166332665330689e+00 2.445843388357002546e+00 3.750584208938356756e-02 +1.603206412825651128e+00 2.451681858382752210e+00 2.618331642032580286e-01 +1.623246492985971789e+00 2.457135012128611962e+00 6.868513152547650602e-01 +1.643286573146292451e+00 2.462203190960818411e+00 1.312389611621266550e+00 +1.663326653306613112e+00 2.466886897299453096e+00 2.138196842519770602e+00 +1.683366733466933773e+00 2.471186794416676769e+00 3.163941370891084848e+00 +1.703406813627254435e+00 2.475103706170361573e+00 4.389211266582178084e+00 +1.723446893787575096e+00 2.478638616673238371e+00 5.813514471774004377e+00 +1.743486973947895757e+00 2.481792669897687542e+00 7.436278998587575018e+00 +1.763527054108216419e+00 2.484567169216326032e+00 9.256853158789395408e+00 +1.783567134268537080e+00 2.486963576878586935e+00 1.127450582550371472e+01 +1.803607214428857741e+00 2.488983513423490557e+00 1.348842672682692978e+01 +1.823647294589178181e+00 2.490628757028852114e+00 1.589772677122579658e+01 +1.843687374749498842e+00 2.491901242797179172e+00 1.850143840458866151e+01 +1.863727454909819503e+00 2.492803061978552392e+00 2.129851599878729118e+01 +1.883767535070140164e+00 2.493336461130795989e+00 2.428783627159159408e+01 +1.903807615230460826e+00 2.493503841217282080e+00 2.746819873777046439e+01 +1.923847695390781487e+00 2.493307756642720641e+00 3.083832619119621654e+01 +1.943887775551102148e+00 2.492750914227336079e+00 3.439686521775931283e+01 +1.963927855711422810e+00 2.491836172119830994e+00 3.814238673888808506e+01 +1.983967935871743471e+00 2.490566538649576334e+00 4.207338658545420174e+01 +2.004008016032063910e+00 2.488945171118494670e+00 4.618828610183413019e+01 +2.024048096192384794e+00 2.486975374533113126e+00 5.048543277988349587e+01 +2.044088176352705233e+00 2.484660600277302400e+00 5.496310092257003532e+01 +2.064128256513026116e+00 2.482004444726231274e+00 5.961949233699898087e+01 +2.084168336673346555e+00 2.479010647802090794e+00 6.445273705655124274e+01 +2.104208416833667439e+00 2.475683091472176578e+00 6.946089409184656915e+01 +2.124248496993987878e+00 2.472025798189923851e+00 7.464195221022733051e+01 +2.144288577154308317e+00 2.468042929279522735e+00 7.999383074345310263e+01 +2.164328657314629201e+00 2.463738783264768806e+00 8.551438042327842481e+01 +2.184368737474949640e+00 2.459117794142811952e+00 9.120138424458035331e+01 +2.204408817635270523e+00 2.454184529603501197e+00 9.705255835568922862e+01 +2.224448897795590963e+00 2.448943689195040463e+00 1.030655529755629374e+02 +2.244488977955911846e+00 2.443400102436689814e+00 1.092379533374396345e+02 +2.264529058116232285e+00 2.437558726879272442e+00 1.155672806585862560e+02 +2.284569138276553169e+00 2.431424646114265897e+00 1.220509931357573947e+02 +2.304609218436873608e+00 2.425003067732275142e+00 1.286864869659601709e+02 +2.324649298597194491e+00 2.418299321231706767e+00 1.354710973921206971e+02 +2.344689378757514930e+00 2.411318855878493483e+00 1.424020997732258422e+02 +2.364729458917835370e+00 2.404067238517710425e+00 1.494767106785168664e+02 +2.384769539078156253e+00 2.396550151337982548e+00 1.566920890052907680e+02 +2.404809619238476692e+00 2.388773389589562868e+00 1.640453371198620403e+02 +2.424849699398797576e+00 2.380742859257013677e+00 1.715335020212285144e+02 +2.444889779559118015e+00 2.372464574687412675e+00 1.791535765269697436e+02 +2.464929859719438898e+00 2.363944656175040571e+00 1.869025004809070936e+02 +2.484969939879759337e+00 2.355189327503528496e+00 1.947771619820341300e+02 +2.505010020040080221e+00 2.346204913446435114e+00 2.027743986342312610e+02 +2.525050100200400660e+00 2.336997837227277053e+00 2.108909988162550349e+02 +2.545090180360721543e+00 2.327574617940013191e+00 2.191237029714987443e+02 +2.565130260521041983e+00 2.317941867931036182e+00 2.274692049170012638e+02 +2.585170340681362422e+00 2.308106290143709938e+00 2.359241531711823257e+02 +2.605210420841683305e+00 2.298074675426524660e+00 2.444851522997685436e+02 +2.625250501002003745e+00 2.287853899805951663e+00 2.531487642793698569e+02 +2.645290581162324628e+00 2.277450921725090449e+00 2.619115098781609845e+02 +2.665330661322645067e+00 2.266872779249217817e+00 2.707698700531099121e+02 +2.685370741482965951e+00 2.256126587239360770e+00 2.797202873631965190e+02 +2.705410821643286390e+00 2.245219534495030533e+00 2.887591673980486462e+02 +2.725450901803607273e+00 2.234158880867263886e+00 2.978828802214276834e+02 +2.745490981963927712e+00 2.222951954343126868e+00 3.070877618289785573e+02 +2.765531062124248596e+00 2.211606148102859937e+00 3.163701156196634088e+02 +2.785571142284569035e+00 2.200128917550841834e+00 3.257262138802831259e+02 +2.805611222444889474e+00 2.188527777321561008e+00 3.351522992824964149e+02 +2.825651302605210358e+00 2.176810298261803389e+00 3.446445863917298311e+02 +2.845691382765530797e+00 2.164984104390269337e+00 3.541992631873747541e+02 +2.865731462925851680e+00 2.153056869835828113e+00 3.638124925936636487e+02 +2.885771543086172120e+00 2.141036315755658670e+00 3.734804140206049965e+02 +2.905811623246493003e+00 2.128930207234495775e+00 3.831991449143642399e+02 +2.925851703406813442e+00 2.116746350166242685e+00 3.929647823164625606e+02 +2.945891783567134325e+00 2.104492588119187158e+00 4.027734044311732191e+02 +2.965931863727454765e+00 2.092176799186097114e+00 4.126210722004783520e+02 +2.985971943887775648e+00 2.079806892820440289e+00 4.225038308859634526e+02 +3.006012024048096087e+00 2.067390806660023728e+00 4.324177116570036219e+02 +3.026052104208416527e+00 2.054936503339299669e+00 4.423587331846135839e+02 +3.046092184368737410e+00 2.042451967291644355e+00 4.523229032403145879e+02 +3.066132264529057849e+00 2.029945201542878497e+00 4.623062202993779124e+02 +3.086172344689378733e+00 2.017424224497317731e+00 4.723046751478044598e+02 +3.106212424849699172e+00 2.004897066717655107e+00 4.823142524923883343e+02 +3.126252505010020055e+00 1.992371767699953278e+00 4.923309325732264483e+02 +3.146292585170340494e+00 1.979856372645053764e+00 5.023506927780170486e+02 +3.166332665330661378e+00 1.967358929227692510e+00 5.123695092575079570e+02 +3.186372745490981817e+00 1.954887484364624450e+00 5.223833585414381560e+02 +3.206412825651302256e+00 1.942450080983050720e+00 5.323882191543301587e+02 +3.226452905811623140e+00 1.930054754790647475e+00 5.423800732304792973e+02 +3.246492985971943579e+00 1.917709531048496396e+00 5.523549081274929904e+02 +3.266533066132264462e+00 1.905422421348207829e+00 5.623087180377352752e+02 +3.286573146292584902e+00 1.893201420394537093e+00 5.722375055970223912e+02 +3.306613226452905785e+00 1.881054502794775818e+00 5.821372834899317468e+02 +3.326653306613226224e+00 1.868989619856223694e+00 5.920040760510720474e+02 +3.346693386773547108e+00 1.857014696393007203e+00 6.018339208616766882e+02 +3.366733466933867547e+00 1.845137627543546266e+00 6.116228703408767160e+02 +3.386773547094188430e+00 1.833366275599931816e+00 6.213669933310161468e+02 +3.406813627254508869e+00 1.821708466850500807e+00 6.310623766763693538e+02 +3.426853707414829309e+00 1.810171988436861001e+00 6.407051267946321786e+02 +3.446893787575150192e+00 1.798764585226647394e+00 6.502913712405503475e+02 +3.466933867735470631e+00 1.787493956703248177e+00 6.598172602610595732e+02 +3.486973947895791515e+00 1.776367753873757227e+00 6.692789683413144530e+02 +3.507014028056111954e+00 1.765393576196397918e+00 6.786726957409805436e+02 +3.527054108216432837e+00 1.754578968528644589e+00 6.879946700201794556e+02 +3.547094188376753277e+00 1.743931418097274477e+00 6.972411475544654422e+02 +3.567134268537074160e+00 1.733458351491558469e+00 7.064084150382354892e+02 +3.587174348697394599e+00 1.723167131680813480e+00 7.154927909759586555e+02 +3.607214428857715482e+00 1.713065055057490182e+00 7.244906271606341761e+02 +3.627254509018035922e+00 1.703159348507010673e+00 7.333983101388791965e+02 +3.647294589178356361e+00 1.693457166505509370e+00 7.422122626620608798e+02 +3.667334669338677244e+00 1.683965588246658651e+00 7.509289451228887629e+02 +3.687374749498997684e+00 1.674691614798728523e+00 7.595448569768896050e+02 +3.707414829659318567e+00 1.665642166293012316e+00 7.680565381481970917e+02 +3.727454909819639006e+00 1.656824079144766593e+00 7.764605704190873894e+02 +3.747494989979959890e+00 1.648244103307762831e+00 7.847535788027066701e+02 +3.767535070140280329e+00 1.639908899563566447e+00 7.929322328984358137e+02 +3.787575150300601212e+00 1.631825036846622945e+00 8.009932482293520479e+02 +3.807615230460921651e+00 1.623998989606231236e+00 8.089333875612445581e+02 +3.827655310621242535e+00 1.616437135206458375e+00 8.167494622026619027e+02 +3.847695390781562974e+00 1.609145751365050003e+00 8.244383332854611126e+02 +3.867735470941883413e+00 1.602131013632347223e+00 8.319969130253510912e+02 +3.887775551102204297e+00 1.595398992911243319e+00 8.394221659619206548e+02 +3.907815631262524736e+00 1.588955653019160641e+00 8.467111101776515625e+02 +3.927855711422845619e+00 1.582806848293030866e+00 8.538608184954326816e+02 +3.947895791583166059e+00 1.576958321238246530e+00 8.608684196540875746e+02 +3.967935871743486942e+00 1.571415700222517753e+00 8.677310994614492756e+02 +3.987975951903807381e+00 1.566184497215570515e+00 8.744461019245148918e+02 +4.008016032064127820e+00 1.561270105575586431e+00 8.810107303562293737e+02 +4.028056112224448704e+00 1.556677797883275982e+00 8.874223484584509833e+02 +4.048096192384769587e+00 1.552412723824457164e+00 8.936783813806663375e+02 +4.068136272545089582e+00 1.548479908121984883e+00 8.997763167540272207e+02 +4.088176352705410466e+00 1.544884248517864656e+00 9.057137057002989877e+02 +4.108216432865731349e+00 1.541630513806363734e+00 9.114881638153049153e+02 +4.128256513026052232e+00 1.538723341918903031e+00 9.170973721264856522e+02 +4.148296593186372228e+00 1.536167238061506124e+00 9.225390780241765469e+02 +4.168336673346693111e+00 1.533966572905543835e+00 9.278110961662381442e+02 +4.188376753507013994e+00 1.532125580832512046e+00 9.329113093556687772e+02 +4.208416833667334878e+00 1.530648358233542172e+00 9.378376693908538755e+02 +4.228456913827654873e+00 1.529538861864323529e+00 9.425881978881050145e+02 +4.248496993987975756e+00 1.528800907256105734e+00 9.471609870761637922e+02 +4.268537074148296639e+00 1.528438167183412855e+00 9.515542005623437944e+02 +4.288577154308616635e+00 1.528454170189090799e+00 9.557660740700115412e+02 +4.308617234468937518e+00 1.528852299167273276e+00 9.597949161471043453e+02 +4.328657314629258401e+00 1.529635790004841844e+00 9.636391088454030296e+02 +4.348697394789579285e+00 1.530807730281920964e+00 9.672971083702858550e+02 +4.368737474949899280e+00 1.532371058031932520e+00 9.707674457007029787e+02 +4.388777555110220163e+00 1.534328560561707189e+00 9.740487271791230341e+02 +4.408817635270541047e+00 1.536682873332125610e+00 9.771396350712136609e+02 +4.428857715430861930e+00 1.539436478899741445e+00 9.800389280950321336e+02 +4.448897795591181925e+00 1.542591705919805545e+00 9.827454419195138371e+02 +4.468937875751502808e+00 1.546150728211101333e+00 9.852580896320574766e+02 +4.488977955911823692e+00 1.550115563882954017e+00 9.875758621750194379e+02 +4.509018036072143687e+00 1.554488074524779329e+00 9.896978287509432448e+02 +4.529058116232464570e+00 1.559269964458483093e+00 9.916231371963593801e+02 +4.549098196392785454e+00 1.564462780054019841e+00 9.933510143240067691e+02 +4.569138276553106337e+00 1.570067909108384452e+00 9.948807662333381359e+02 +4.589178356713426332e+00 1.576086580288286632e+00 9.962117785891847461e+02 +4.609218436873747216e+00 1.582519862636726060e+00 9.973435168684678729e+02 +4.629258517034068099e+00 1.589368665143676473e+00 9.982755265748584179e+02 +4.649298597194388982e+00 1.596633736381040114e+00 9.990074334212996519e+02 +4.669338677354708977e+00 1.604315664202031311e+00 9.995389434803163340e+02 +4.689378757515029861e+00 1.612414875505097545e+00 9.998698433020541643e+02 +4.709418837675350744e+00 1.620931636062481251e+00 1.000000000000000000e+03 +4.729458917835670739e+00 1.629866050413486533e+00 9.999293613043465712e+02 +4.749498997995991623e+00 1.639218061822500072e+00 9.996579555829848687e+02 +4.769539078156312506e+00 1.648987452301774237e+00 9.991858918301107906e+02 +4.789579158316633389e+00 1.659173842698966617e+00 9.985133596224548000e+02 +4.809619238476953385e+00 1.669776692849408217e+00 9.976406290431494881e+02 +4.829659318637274268e+00 1.680795301793028163e+00 9.965680505732656229e+02 +4.849699398797595151e+00 1.692228808055850298e+00 9.952960549510630699e+02 +4.869739478957916035e+00 1.704076189995956891e+00 9.938251529990096742e+02 +4.889779559118236030e+00 1.716336266213768447e+00 9.921559354186391602e+02 +4.909819639278556913e+00 1.729007696026489072e+00 9.902890725533304703e+02 +4.929859719438877796e+00 1.742088980006505361e+00 9.882253141191039276e+02 +4.949899799599197792e+00 1.755578460583548051e+00 9.859654889035417682e+02 +4.969939879759518675e+00 1.769474322710359537e+00 9.835105044329535531e+02 +4.989979959919839558e+00 1.783774594591596818e+00 9.808613466079225418e+02 +5.010020040080160442e+00 1.798477148475690290e+00 9.780190793073752502e+02 +5.030060120240480437e+00 1.813579701509330233e+00 9.749848439613382425e+02 +5.050100200400801320e+00 1.829079816654240354e+00 9.717598590925483677e+02 +5.070140280561122204e+00 1.844974903665872024e+00 9.683454198271051609e+02 +5.090180360721443087e+00 1.861262220133622414e+00 9.647428973743595861e+02 +5.110220440881763082e+00 1.877938872582164631e+00 9.609537384762481906e+02 +5.130260521042083965e+00 1.895001817633443997e+00 9.569794648262927694e+02 +5.150300601202404849e+00 1.912447863228867728e+00 9.528216724585031443e+02 +5.170340681362724844e+00 1.930273669911211520e+00 9.484820311064232783e+02 +5.190380761523045727e+00 1.948475752165717889e+00 9.439622835325791357e+02 +5.210420841683366611e+00 1.967050479819845377e+00 9.392642448286025001e+02 +5.230460921843687494e+00 1.985994079501115728e+00 9.343898016863045086e+02 +5.250501002004007489e+00 2.005302636152468398e+00 9.293409116399966479e+02 +5.270541082164328373e+00 2.024972094604515771e+00 9.241196022803618462e+02 +5.290581162324649256e+00 2.044998261204058920e+00 9.187279704401921663e+02 +5.310621242484970139e+00 2.065376805498225998e+00 9.131681813523182427e+02 +5.330661322645290134e+00 2.086103261973545120e+00 9.074424677800708423e+02 +5.350701402805611018e+00 2.107173031849256084e+00 9.015531291206212927e+02 +5.370741482965931901e+00 2.128581384924137954e+00 8.955025304815651452e+02 +5.390781563126251896e+00 2.150323461476119746e+00 8.892931017311141204e+02 +5.410821643286572780e+00 2.172394274213905074e+00 8.829273365222821894e+02 +5.430861723446893663e+00 2.194788710279818922e+00 8.764077912914567605e+02 +5.450901803607214546e+00 2.217501533303093186e+00 8.697370842317545794e+02 +5.470941883767534542e+00 2.240527385502743662e+00 8.629178942415799156e+02 +5.490981963927855425e+00 2.263860789839213794e+00 8.559529598487991962e+02 +5.511022044088176308e+00 2.287496152213901457e+00 8.488450781109748959e+02 +5.531062124248497192e+00 2.311427763715702355e+00 8.415971034920893317e+02 +5.551102204408817187e+00 2.335649802913659201e+00 8.342119467162179944e+02 +5.571142284569138070e+00 2.360156338194801862e+00 8.266925735986054633e+02 +5.591182364729458953e+00 2.384941330146225447e+00 8.190420038546226351e+02 +5.611222444889778949e+00 2.409998633980471094e+00 8.112633098870738877e+02 +5.631262525050099832e+00 2.435322002003218689e+00 8.033596155523445077e+02 +5.651302605210420715e+00 2.460905086122306518e+00 7.953340949058906517e+02 +5.671342685370741599e+00 2.486741440397069347e+00 7.871899709275636496e+02 +5.691382765531061594e+00 2.512824523626973505e+00 7.789305142272897911e+02 +5.711422845691382477e+00 2.539147701978509364e+00 7.705590417316205958e+02 +5.731462925851703361e+00 2.565704251649277179e+00 7.620789153516853958e+02 +5.751503006012024244e+00 2.592487361568209359e+00 7.534935406330763499e+02 +5.771543086172344239e+00 2.619490136130837588e+00 7.448063653882098833e+02 +5.791583166332665122e+00 2.646705597968513235e+00 7.360208783117147959e+02 +5.811623246492986006e+00 2.674126690750449509e+00 7.271406075794046728e+02 +5.831663326653306001e+00 2.701746282017488454e+00 7.181691194313910955e+02 +5.851703406813626884e+00 2.729557166046437722e+00 7.091100167399115435e+02 +5.871743486973947768e+00 2.757552066743818919e+00 6.999669375624501981e+02 +5.891783567134268651e+00 2.785723640567889792e+00 6.907435536807222434e+02 +5.911823647294588646e+00 2.814064479477745628e+00 6.814435691261201100e+02 +5.931863727454909530e+00 2.842567113908326615e+00 6.720707186922043093e+02 +5.951903807615230413e+00 2.871224015770126758e+00 6.626287664348450335e+02 +5.971943887775551296e+00 2.900027601472412453e+00 6.531215041606080831e+02 +5.991983967935871291e+00 2.928970234968723663e+00 6.435527499039991426e+02 +6.012024048096192175e+00 2.958044230823453802e+00 6.339263463941722421e+02 +6.032064128256513058e+00 2.987241857298241765e+00 6.242461595117250681e+02 +6.052104208416833053e+00 3.016555339456976181e+00 6.145160767361943499e+02 +6.072144288577153937e+00 3.045976862288150677e+00 6.047400055848752345e+02 +6.092184368737474820e+00 3.075498573843291616e+00 5.949218720435990235e+02 +6.112224448897795703e+00 3.105112588390241068e+00 5.850656189900898880e+02 +6.132264529058115698e+00 3.134810989579997376e+00 5.751752046105395948e+02 +6.152304609218436582e+00 3.164585833625852995e+00 5.652546008100322297e+02 +6.172344689378757465e+00 3.194429152493549307e+00 5.553077916174643178e+02 +6.192384769539078349e+00 3.224332957101171182e+00 5.453387715855913029e+02 +6.212424849699398344e+00 3.254289240527490801e+00 5.353515441868502194e+02 +6.232464929859719227e+00 3.284289981227487498e+00 5.253501202055987278e+02 +6.252505010020040110e+00 3.314327146253717160e+00 5.153385161274204620e+02 +6.272545090180360106e+00 3.344392694482282824e+00 5.053207525261383921e+02 +6.292585170340680989e+00 3.374478579842083992e+00 4.953008524491854700e+02 +6.312625250501001872e+00 3.404576754546040807e+00 4.852828398019860288e+02 +6.332665330661322756e+00 3.434679172323020335e+00 4.752707377319885609e+02 +6.352705410821642751e+00 3.464777791649148231e+00 4.652685670130051676e+02 +6.372745490981963634e+00 3.494864578977221026e+00 4.552803444305018843e+02 +6.392785571142284518e+00 3.524931511962900554e+00 4.453100811684944347e+02 +6.412825651302604513e+00 3.554970582686421299e+00 4.353617811986907782e+02 +6.432865731462925396e+00 3.584973800868508143e+00 4.254394396725285787e+02 +6.452905811623246279e+00 3.614933197079194027e+00 4.155470413167602146e+02 +6.472945891783567163e+00 3.644840825938279849e+00 4.056885588332180532e+02 +6.492985971943887158e+00 3.674688769306128311e+00 3.958679513034139177e+02 +6.513026052104208041e+00 3.704469139463525185e+00 3.860891625986033660e+02 +6.533066132264528925e+00 3.734174082279312135e+00 3.763561197959638776e+02 +6.553106212424849808e+00 3.763795780364542765e+00 3.666727316015129077e+02 +6.573146292585169803e+00 3.793326456211875808e+00 3.570428867804062634e+02 +6.593186372745490686e+00 3.822758375318961566e+00 3.474704525952413405e+02 +6.613226452905811570e+00 3.852083849294539952e+00 3.379592732530011290e+02 +6.633266533066131565e+00 3.881295238946041781e+00 3.285131683612518714e+02 +6.653306613226452448e+00 3.910384957347420976e+00 3.191359313942206768e+02 +6.673346693386773332e+00 3.939345472885993349e+00 3.098313281693717158e+02 +6.693386773547094215e+00 3.968169312287071815e+00 3.006030953350844470e+02 +6.713426853707414210e+00 3.996849063615168340e+00 2.914549388700485792e+02 +6.733466933867735094e+00 4.025377379250564047e+00 2.823905325949738199e+02 +6.753507014028055977e+00 4.053746978840048421e+00 2.734135166972172897e+02 +6.773547094188376860e+00 4.081950652220645459e+00 2.645274962689139784e+02 +6.793587174348696855e+00 4.109981262315153927e+00 2.557360398592040838e+02 +6.813627254509017739e+00 4.137831747998339971e+00 2.470426780411323762e+02 +6.833667334669338622e+00 4.165495126932617254e+00 2.384509019938032282e+02 +6.853707414829658617e+00 4.192964498372094617e+00 2.299641621003518992e+02 +6.873747494989979501e+00 4.220233045933865057e+00 2.215858665622992305e+02 +6.893787575150300384e+00 4.247294040335392928e+00 2.133193800308498282e+02 +6.913827655310621267e+00 4.274140842096944226e+00 2.051680222556753677e+02 +6.933867735470941263e+00 4.300766904207941721e+00 1.971350667517327224e+02 +6.953907815631262146e+00 4.327165774756191574e+00 1.892237394846470409e+02 +6.973947895791583029e+00 4.353331099518909397e+00 1.814372175751938983e+02 +6.993987975951903913e+00 4.379256624514525242e+00 1.737786280233937930e+02 +7.014028056112223908e+00 4.404936198514227463e+00 1.662510464527364036e+02 +7.034068136272544791e+00 4.430363775512244473e+00 1.588574958750354824e+02 +7.054108216432865675e+00 4.455533417153866971e+00 1.516009454764152053e+02 +7.074148296593185670e+00 4.480439295120240750e+00 1.444843094249101227e+02 +7.094188376753506553e+00 4.505075693468969966e+00 1.375104457001587832e+02 +7.114228456913827436e+00 4.529437010929587615e+00 1.306821549456662126e+02 +7.134268537074148320e+00 4.553517763152981068e+00 1.240021793440882476e+02 +7.154308617234468315e+00 4.577312584913854288e+00 1.174732015159950436e+02 +7.174348697394789198e+00 4.600816232265364292e+00 1.110978434425529429e+02 +7.194388777555110082e+00 4.624023584645035712e+00 1.048786654125609346e+02 +7.214428857715430965e+00 4.646929646931139857e+00 9.881816499425976019e+01 +7.234468937875750960e+00 4.669529551448691862e+00 9.291877603233054117e+01 +7.254509018036071843e+00 4.691818559924266552e+00 8.718286767048279273e+01 +7.274549098196392727e+00 4.713792065388847874e+00 8.161274340002822214e+01 +7.294589178356712722e+00 4.735445594027945404e+00 7.621064013481766608e+01 +7.314629258517033605e+00 4.756774806978249615e+00 7.097872731291521120e+01 +7.334669338677354489e+00 4.777775502070065627e+00 6.591910602537187458e+01 +7.354709418837675372e+00 4.798443615514884186e+00 6.103380817244479317e+01 +7.374749498997995367e+00 4.818775223537352659e+00 5.632479564760383539e+01 +7.394789579158316251e+00 4.838766543951037669e+00 5.179395954965144000e+01 +7.414829659318637134e+00 4.858413937677311445e+00 4.744311942327492204e+01 +7.434869739478958017e+00 4.877713910206781023e+00 4.327402252833200436e+01 +7.454909819639278012e+00 4.896663113002647449e+00 3.928834313816695811e+01 +7.474949899799598896e+00 4.915258344845452321e+00 3.548768186723586382e+01 +7.494989979959919779e+00 4.933496553118660088e+00 3.187356502831510241e+01 +7.515030060120239774e+00 4.951374835034558330e+00 2.844744401954644530e+01 +7.535070140280560658e+00 4.968890438800001697e+00 2.521069474156775314e+01 +7.555110220440881541e+00 4.986040764721496821e+00 2.216461704496407137e+01 +7.575150300601202424e+00 5.002823366249223191e+00 1.931043420825829671e+01 +7.595190380761522420e+00 5.019235950959545889e+00 1.664929244665321662e+01 +7.615230460921843303e+00 5.035276381475634722e+00 1.418226045172094807e+01 +7.635270541082164186e+00 5.050942676325811398e+00 1.191032896222642634e+01 +7.655310621242485070e+00 5.066233010739295217e+00 9.834410366254722646e+00 +7.675350701402805065e+00 5.081145717379013327e+00 7.955338334803988332e+00 +7.695390781563125948e+00 5.095679287011193104e+00 6.273867486990178044e+00 +7.715430861723446831e+00 5.109832369111450667e+00 4.790673086998884500e+00 +7.735470941883766827e+00 5.123603772407154366e+00 3.506350772904916813e+00 +7.755511022044087710e+00 5.136992465355831428e+00 2.421416317469038848e+00 +7.775551102204408593e+00 5.149997576559419699e+00 1.536305421008269612e+00 +7.795591182364729477e+00 5.162618395114220604e+00 8.513735364222744240e-01 +7.815631262525049472e+00 5.174854370896386335e+00 3.668957264467385126e-01 +7.835671342685370355e+00 5.186705114782850679e+00 8.306655319023606432e-02 +7.855711422845691239e+00 5.198170398807591575e+00 0.000000000000000000e+00 +7.875751503006012122e+00 5.209250156253183661e+00 1.177294256871248418e-01 +7.895791583166332117e+00 5.219944481677590176e+00 4.362075511299656205e-01 +7.915831663326653000e+00 5.230253630876193327e+00 9.553064782610614092e-01 +7.935871743486973884e+00 5.240178020779059587e+00 1.674817741429812656e+00 +7.955911823647293879e+00 5.249718229283516280e+00 2.594452391120483092e+00 +7.975951903807614762e+00 5.258874995022061682e+00 3.713841109991943057e+00 +7.995991983967935646e+00 5.267649217065747180e+00 5.032534361192301020e+00 +8.016032064128255641e+00 5.276041954563106096e+00 6.550002568888864118e+00 +8.036072144288576524e+00 5.284054426314822805e+00 8.265636330941418919e+00 +8.056112224448897408e+00 5.291688010284259391e+00 1.017874666363291603e+01 +8.076152304609218291e+00 5.298944243044088509e+00 1.228856527835901602e+01 +8.096192384769539174e+00 5.305824819159209227e+00 1.459424489016658200e+01 +8.116232464929860058e+00 5.312331590506231827e+00 1.709485955801583756e+01 +8.136272545090179165e+00 5.318466565529778478e+00 1.978940505663001659e+01 +8.156312625250500048e+00 5.324231908435906213e+00 2.267679927978462828e+01 +8.176352705410820931e+00 5.329629938322985261e+00 2.575588267487045968e+01 +8.196392785571141815e+00 5.334663128250363151e+00 2.902541870856099848e+01 +8.216432865731462698e+00 5.339334104245210710e+00 3.248409436339298395e+01 +8.236472945891783581e+00 5.343645644247928317e+00 3.613052066506330817e+01 +8.256513026052104465e+00 5.347600676996553837e+00 3.996323324022881707e+01 +8.276553106212425348e+00 5.351202280850603010e+00 4.398069290458620628e+01 +8.296593186372744455e+00 5.354453682554823679e+00 4.818128628099457700e+01 +8.316633266533065338e+00 5.357358255943372782e+00 5.256332644739540427e+01 +8.336673346693386222e+00 5.359919520584902841e+00 5.712505361426364914e+01 +8.356713426853707105e+00 5.362141140369139691e+00 6.186463583132555044e+01 +8.376753507014027988e+00 5.364026922035497691e+00 6.678016972325357870e+01 +8.396793587174348872e+00 5.365580813644318603e+00 7.186968125404561647e+01 +8.416833667334669755e+00 5.366806902991370976e+00 7.713112651978079271e+01 +8.436873747494988862e+00 5.367709415966225528e+00 8.256239256943308646e+01 +8.456913827655309746e+00 5.368292714855172676e+00 8.816129825341631943e+01 +8.476953907815630629e+00 5.368561296589365206e+00 9.392559509951207986e+01 +8.496993987975951512e+00 5.368519790938893976e+00 9.985296821583851568e+01 +8.517034068136272396e+00 5.368172958653508076e+00 1.059410372204906849e+02 +8.537074148296593279e+00 5.367525689550741497e+00 1.121873571974812194e+02 +8.557114228456914162e+00 5.366583000552199501e+00 1.185894196785977641e+02 +8.577154308617233269e+00 5.365350033668812024e+00 1.251446536507811516e+02 +8.597194388777554153e+00 5.363832053935846389e+00 1.318504265886247424e+02 +8.617234468937875036e+00 5.362034447298508866e+00 1.387040455115703708e+02 +8.637274549098195919e+00 5.359962718449001073e+00 1.457027580653883660e+02 +8.657314629258516803e+00 5.357622488615882084e+00 1.528437536274986712e+02 +8.677354709418837686e+00 5.355019493306628853e+00 1.601241644356925917e+02 +8.697394789579158569e+00 5.352159580004308026e+00 1.675410667398015221e+02 +8.717434869739479453e+00 5.349048705819276606e+00 1.750914819758495753e+02 +8.737474949899798560e+00 5.345692935096859166e+00 1.827723779622187124e+02 +8.757515030060119443e+00 5.342098436981957299e+00 1.905806701173493138e+02 +8.777555110220440326e+00 5.338271482941573609e+00 1.985132226984773354e+02 +8.797595190380761210e+00 5.334218444246249469e+00 2.065668500609244802e+02 +8.817635270541082093e+00 5.329945789411409507e+00 2.147383179374249096e+02 +8.837675350701402976e+00 5.325460081599669770e+00 2.230243447369789749e+02 +8.857715430861723860e+00 5.320767975985125631e+00 2.314216028627118078e+02 +8.877755511022042967e+00 5.315876217080687027e+00 2.399267200482068745e+02 +8.897795591182363850e+00 5.310791636029545515e+00 2.485362807117820694e+02 +8.917835671342684734e+00 5.305521147861844256e+00 2.572468273281535289e+02 +8.937875751503005617e+00 5.300071748717661180e+00 2.660548618169502788e+02 +8.957915831663326500e+00 5.294450513037422645e+00 2.749568469475133838e+02 +8.977955911823647384e+00 5.288664590720861369e+00 2.839492077594163675e+02 +8.997995991983968267e+00 5.282721204255688363e+00 2.930283329981389784e+02 +9.018036072144287374e+00 5.276627645817097978e+00 3.021905765653149274e+02 +9.038076152304608257e+00 5.270391274339290000e+00 3.114322589829767480e+02 +9.058116232464929141e+00 5.264019512560196290e+00 3.207496688711975139e+02 +9.078156312625250024e+00 5.257519844040566603e+00 3.301390644385522819e+02 +9.098196392785570907e+00 5.250899810158627723e+00 3.395966749847884216e+02 +9.118236472945891791e+00 5.244167007081546927e+00 3.491187024151063270e+02 +9.138276553106212674e+00 5.237329082714865081e+00 3.587013227654414891e+02 +9.158316633266533557e+00 5.230393733631166775e+00 3.683406877381355002e+02 +9.178356713426852664e+00 5.223368701979203443e+00 3.780329262473783842e+02 +9.198396793587173548e+00 5.216261772374713779e+00 3.877741459738065259e+02 +9.218436873747494431e+00 5.209080768774191128e+00 3.975604349276194398e+02 +9.238476953907815314e+00 5.201833551332843975e+00 4.073878630196048221e+02 +9.258517034068136198e+00 5.194528013248028486e+00 4.172524836394272256e+02 +9.278557114228457081e+00 5.187172077589415231e+00 4.271503352405529768e+02 +9.298597194388777964e+00 5.179773694117139726e+00 4.370774429311730955e+02 +9.318637274549097071e+00 5.172340836089261096e+00 4.470298200704844476e+02 +9.338677354709417955e+00 5.164881497059755411e+00 4.570034698696940154e+02 +9.358717434869738838e+00 5.157403687668390191e+00 4.669943869970894639e+02 +9.378757515030059722e+00 5.149915432423705752e+00 4.769985591865493006e+02 +9.398797595190380605e+00 5.142424766480450771e+00 4.870119688488334759e+02 +9.418837675350701488e+00 5.134939732412731495e+00 4.970305946850124315e+02 +9.438877755511022372e+00 5.127468376984182008e+00 5.070504133013864703e+02 +9.458917835671341479e+00 5.120018747916452284e+00 5.170674008252445901e+02 +9.478957915831662362e+00 5.112598890657316097e+00 5.270775345208204499e+02 +9.498997995991983245e+00 5.105216845149687543e+00 5.370767944047840956e+02 +9.519038076152304129e+00 5.097880642602845569e+00 5.470611648606347899e+02 +9.539078156312625012e+00 5.090598302267177466e+00 5.570266362513380045e+02 +9.559118236472945895e+00 5.083377828213707872e+00 5.669692065295602106e+02 +9.579158316633266779e+00 5.076227206119739321e+00 5.768848828448577706e+02 +9.599198396793587662e+00 5.069154400061871790e+00 5.867696831471699852e+02 +9.619238476953906769e+00 5.062167349317696186e+00 5.966196377859761242e+02 +9.639278557114227652e+00 5.055273965177453199e+00 6.064307911044755883e+02 +9.659318637274548536e+00 5.048482127766917849e+00 6.161992030281406869e+02 +9.679358717434869419e+00 5.041799682882824207e+00 6.259209506470201632e+02 +9.699398797595190302e+00 5.035234438842048021e+00 6.355921297911449983e+02 +9.719438877755511186e+00 5.028794163345857271e+00 6.452088565984089428e+02 +9.739478957915832069e+00 5.022486580360477681e+00 6.547672690742948589e+02 +9.759519038076151176e+00 5.016319367015202424e+00 6.642635286428171639e+02 +9.779559118236472059e+00 5.010300150519331197e+00 6.736938216880639629e+02 +9.799599198396792943e+00 5.004436505099149279e+00 6.830543610857074555e+02 +9.819639278557113826e+00 4.998735948956176678e+00 6.923413877238837131e+02 +9.839679358717434710e+00 4.993205941247933488e+00 7.015511720128191655e+02 +9.859719438877755593e+00 4.987853879092396525e+00 7.106800153826006863e+02 +9.879759519038076476e+00 4.982687094597387123e+00 7.197242517684906034e+02 +9.899799599198395583e+00 4.977712851916056280e+00 7.286802490831846626e+02 +9.919839679358716467e+00 4.972938344329665306e+00 7.375444106754310951e+02 +9.939879759519037350e+00 4.968370691358828140e+00 7.463131767744092713e+02 +9.959919839679358233e+00 4.964016935904367323e+00 7.549830259193067832e+02 +9.979959919839679117e+00 4.959884041418952449e+00 7.635504763735062852e+02 +1.000000000000000000e+01 4.955978889110630448e+00 7.720120875228209343e+02 diff --git a/buch/papers/kugel/figures/tikz/curvature-1d.pdf b/buch/papers/kugel/figures/tikz/curvature-1d.pdf new file mode 100644 index 0000000..6425af6 Binary files /dev/null and b/buch/papers/kugel/figures/tikz/curvature-1d.pdf differ diff --git a/buch/papers/kugel/figures/tikz/curvature-1d.py b/buch/papers/kugel/figures/tikz/curvature-1d.py new file mode 100644 index 0000000..4710fc8 --- /dev/null +++ b/buch/papers/kugel/figures/tikz/curvature-1d.py @@ -0,0 +1,32 @@ +import numpy as np +import matplotlib.pyplot as plt + + +@np.vectorize +def fn(x): + return (x ** 2) * 2 / 100 + (1 + x / 4) + np.sin(x) + +@np.vectorize +def ddfn(x): + return 2 * 5 / 100 - np.sin(x) + +x = np.linspace(0, 10, 500) +y = fn(x) +ddy = ddfn(x) + +cmap = ddy - np.min(ddy) +cmap = cmap * 1000 / np.max(cmap) + +plt.plot(x, y) +plt.plot(x, ddy) +# plt.plot(x, cmap) + +plt.show() + +fname = "curvature-1d.dat" +np.savetxt(fname, np.array([x, y, cmap]).T, delimiter=" ") + +# with open(fname, "w") as f: +# # f.write("x y cmap\n") +# for xv, yv, cv in zip(x, y, cmap): +# f.write(f"{xv} {yv} {cv}\n") diff --git a/buch/papers/kugel/figures/tikz/curvature-1d.tex b/buch/papers/kugel/figures/tikz/curvature-1d.tex new file mode 100644 index 0000000..6983fb0 --- /dev/null +++ b/buch/papers/kugel/figures/tikz/curvature-1d.tex @@ -0,0 +1,21 @@ +% vim:ts=2 sw=2 et: +\documentclass[tikz, border=5mm]{standalone} +\usepackage{pgfplots} + +\begin{document} +\begin{tikzpicture} + \begin{axis}[ + clip = false, + width = 8cm, height = 6cm, + xtick = \empty, ytick = \empty, + colormap name = viridis, + axis lines = middle, + axis line style = {ultra thick, -latex} + ] + \addplot+[ + smooth, mark=none, line width = 3pt, mesh, + point meta=explicit, + ] file {curvature-1d.dat}; + \end{axis} +\end{tikzpicture} +\end{document} -- cgit v1.2.1 From 7e51ae842c61ba338aec179d71fab2d041ebe8c5 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 17 Aug 2022 16:29:41 +0200 Subject: kugel: Review manu's text, improve legendre functions --- buch/papers/kugel/main.tex | 1 + buch/papers/kugel/proofs.tex | 245 +++++++++++++++++ buch/papers/kugel/spherical-harmonics.tex | 424 ++++++++++-------------------- 3 files changed, 385 insertions(+), 285 deletions(-) create mode 100644 buch/papers/kugel/proofs.tex diff --git a/buch/papers/kugel/main.tex b/buch/papers/kugel/main.tex index a281cae..ad19178 100644 --- a/buch/papers/kugel/main.tex +++ b/buch/papers/kugel/main.tex @@ -14,6 +14,7 @@ % \input{papers/kugel/preliminaries} \input{papers/kugel/spherical-harmonics} \input{papers/kugel/applications} +\input{papers/kugel/proofs} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/kugel/proofs.tex b/buch/papers/kugel/proofs.tex new file mode 100644 index 0000000..143caa8 --- /dev/null +++ b/buch/papers/kugel/proofs.tex @@ -0,0 +1,245 @@ +% vim:ts=2 sw=2 et spell tw=80: +\section{Proofs} + +\subsection{Legendre Functions} \label{kugel:sec:proofs:legendre} + +\kugeltodo{Fix theorem numbers to match, review text.} + +\begin{lemma} + The polynomial function + \begin{align*} + y_n(x)&=\sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} (-1)^k \frac{(2n-2k)!}{2^n k! (n-k)!(n-2k)!} x^{n-2k}\\ + &= \frac{1}{n!2^n}\frac{d^n}{dx^n}(1-x^2)^n =: P_n(x), + \end{align*} + is a solution to the second order differential equation + \begin{equation}\label{kugel:eq:sol_leg} + (1-x^2)\frac{d^2y}{dx^2}-2x\frac{dy}{dx} + n(n+1)y=0, \quad \forall n>0. + \end{equation} +\end{lemma} +\begin{proof} + In order to find a solution to Eq.\eqref{eq:legendre}, the following Ansatz can be performed: + \begin{equation}\label{eq:ansatz} + y(x) = \sum_{k=0}^\infty a_k x^k. + \end{equation} + Given Eq.\eqref{eq:ansatz}, then + \begin{align*} + \frac{dy}{dx} &= \sum_{k=0}^\infty k a_k x^{k-1}, \\ + \frac{d^2y}{dx^2} &= \sum_{k=0}^\infty k (k-1) a_k x^{k-2}. + \end{align*} + Eq.\eqref{eq:legendre} can be therefore written as + \begin{align} + &(1-x^2)\sum_{k=0}^\infty k (k-1) a_k x^{k-2} - 2x\sum_{k=0}^\infty k a_k x^{k-1} + n(n+1)\sum_{k=0}^\infty a_k x^k=0 \label{eq:ansatz_in_legendre} \\ + &=\sum_{k=0}^\infty k (k-1) a_k x^{k-2} - \sum_{k=0}^\infty k (k-1) a_k x^{k} - 2x\sum_{k=0}^\infty k a_k x^{k-1} + n(n+1)\sum_{k=0}^\infty a_k x^k=0. \nonumber + \end{align} + If one consider the term + \begin{equation}\label{eq:term} + \sum_{k=0}^\infty k (k-1) a_k x^{k-2}, + \end{equation} + the substitution $\tilde{k}=k-2$ yields Eq.\eqref{eq:term} to + \begin{equation*} + \sum_{\tilde{k}=-2}^\infty (\tilde{k}+2) (\tilde{k}+1) a_{\tilde{k}+2} x^{\tilde{k}}=\sum_{\tilde{k}=0}^\infty (\tilde{k}+2) (\tilde{k}+1) a_{\tilde{k}} x^{\tilde{k}}. + \end{equation*} + This means that Eq.\eqref{eq:ansatz_in_legendre} becomes + \begin{align} + &\sum_{k=0}^\infty (k+1)(k+2) a_{k+2} x^{k} - \sum_{k=0}^\infty k (k-1) a_k x^{k} - 2\sum_{k=0}^\infty k a_k x^k + n(n+1)\sum_{k=0}^\infty a_k x^k \nonumber \\ + = &\sum_{k=0}^\infty \big[ (k+1)(k+2) a_{k+2} - k (k-1) a_k - 2 k a_k + n(n+1) a_k \big] x^k \stackrel{!}{=} 0. \label{eq:condition} + \end{align} + The condition in Eq.\eqref{eq:condition} is equivalent to + \begin{equation}\label{eq:condition_2} + (k+1)(k+2) a_{k+2} - k (k-1) a_k - 2 k a_k + n(n+1) a_k = 0. + \end{equation} + We can derive a recursion formula for $a_{k+2}$ from Eq.\eqref{eq:condition_2}, which can be expressed as + \begin{equation}\label{eq:recursion} + a_{k+2}= \frac{k (k-1) - 2 k + n(n+1)}{(k+1)(k+2)}a_k = \frac{(k-n)(k+n+1)}{(k+2)(k+1)}a_k. + \end{equation} + All coefficients can be calculated using the latter. + + Following Eq.\eqref{eq:recursion}, if we want to compute $a_6$ we would have + \begin{align*} + a_{6}= -\frac{(n-4)(n+5)}{6\cdot 5}a_4 &= -\frac{(n-4)(5+n)}{6 \cdot 5} -\frac{(n-2)(n+3)}{4 \cdot 3} a_2 \\ + &= -\frac{(n-4)(n+5)}{6 \cdot 5} -\frac{(n-2)(n+3)}{4 \cdot 3} -\frac{n(n+1)}{2 \cdot 1} a_0 \\ + &= -\frac{(n+5)(n+3)(n+1)n(n-2)(n-4)}{6!} a_0. + \end{align*} + One can generalize this relation for the $i^\text{th}$ even coefficient as + \begin{equation*} + a_{2k} = (-1)^k \frac{(n+(2k-1))(n+(2k-1)-2)\hdots (n-(2k-2)+2)(n-(2k-2))}{(2k)!}a_0 + \end{equation*} + where $i=2k$. + + A similar expression can be written for the odd coefficients $a_{2k-1}$. In this case, the equation starts from $a_1$ and to find the pattern we can write the recursion for an odd coefficient, $a_7$ for example + \begin{align*} + a_{7}= -\frac{(n-5)(n+6)}{7\cdot 6}a_5 &= - \frac{(n-5)(n+6)}{7\cdot 6} -\frac{(n-3)(n+4)}{5 \cdot 4} a_3 \\ + &= - \frac{(n-5)(n+6)}{7\cdot 6} -\frac{(n-3)(n+4)}{5 \cdot 4} -\frac{(n-1)(n+2)}{3 \cdot 2} a_1 \\ + &= -\frac{(n+6)(n+4)(n+2)(n-1)(n-3)(n-5)}{7!} a_1. + \end{align*} + As before, we can generalize this equation for the $i^\text{th}$ odd coefficient + \begin{equation*} + a_{2k+1} = (-1)^k \frac{(n + 2k)(n+2k-2)\hdots(n-(2k-1)+2)(n-(2k-1))}{(2k+1)!}a_1 + \end{equation*} + where $i=2k+1$. + + Let be + \begin{align*} + y_\text{e}^K(x) &:= \sum_{k=0}^K(-1)^k \frac{(n+(2k-1))(n+(2k-1)-2)\hdots \color{red}(n-(2k-2)+2)(n-(2k-2))}{(2k)!} x^{2k}, \\ + y_\text{o}^K(x) &:= \sum_{k=0}^K(-1)^k \frac{(n + 2k)(n+2k-2)\hdots \color{blue} (n-(2k-1)+2)(n-(2k-1))}{(2k+1)!} x^{2k+1}. + \end{align*} + The solution to the Eq.\eqref{eq:legendre} can be written as + \begin{equation}\label{eq:solution} + y(x) = \lim_{K \to \infty} \left[ a_0 y_\text{e}^K(x) + a_1 y_\text{o}^K(x) \right]. + \end{equation} + + The colored parts can be analyzed separately: + \begin{itemize} + \item[\textcolor{red}{\textbullet}] Suppose that $n=n_0$ is an even number. Then the red part, for a specific value of $k=k_0$, will follow the following relation: + \begin{equation*} + n_0-(2k_0-2)=0. + \end{equation*} + From that point on, given the recursive nature of Eq.\eqref{eq:recursion}, all the subsequent coefficients will also be 0, making the sum finite. + \begin{equation*} + a_{2k}=0 \iff y_{\text{o}}^{2k}(x)=y_{\text{o}}^{2k_0}(x), \quad \forall k>k_0 + \end{equation*} + \item[\textcolor{blue}{\textbullet}] Suppose that $n=n_0$ is an odd number. Then the blue part, for a specific value of $k=k_0$, will follow the following relation + \begin{equation*} + n_0-(2k_0-1)=0. + \end{equation*} + From that point on, for the same reason as before, all the subsequent coefficients will also be 0, making the sum finite. + \begin{equation*} + a_{2k+1}=0 \iff y_{\text{o}}^{2k+1}(x)=y_{\text{o}}^{2k_0+1}(x), \quad \forall k>k_0 + \end{equation*} + \end{itemize} + + There is the possibility of expressing the solution in Eq.\eqref{eq:solution} in a more compact form, combining the two solutions $y_\text{o}^K(x)$ and $y_\text{e}^K(x)$. They are both a polynomial of maximum degree $n$, assuming $n \in \mathbb{N}$. In the case where $n$ is even, the polynomial solution + \begin{equation*} + \lim_{K\to \infty} y_\text{e}^K(x) + \end{equation*} + will be a finite sum. If instead $n$ is odd, will be + \begin{equation*} + \lim_{K\to \infty} y_\text{o}^K(x) + \end{equation*} + to be a finite sum. + + Depending on the coefficient we start with, $a_1$ or $a_0$, we will obtain the odd or even polynomial respectively. Starting with the last coefficient $a_n$ and, recursively, calculating all the others in descending order, we can express the two parts $y_\text{o}^K(x)$ and $y_\text{e}^K(x)$ with a single sum. Hence, because we start with the last coefficient, the choice concerning $a_1$ and $a_0$ will be at the end of the sum, and not at the beginning. To compact Eq.\eqref{eq:solution}, Eq.\eqref{eq:recursion} can be reconsidered to calculate the coefficient $a_{k-2}$, using $a_k$ + \begin{equation*} + a_{k-2} = -\frac{(k+2)(k+1)}{(k-n)(k+n+1)}a_k + \end{equation*} + Now the game is to find a pattern, as before. Remember that $n$ is a fixed parameter of Eq.\eqref{eq:legendre}. + \begin{align*} + a_{n-2} &= -\frac{n(n-1)}{2(2n-1)}a_n, \\ + a_{n-4} &= -\frac{(n-2)(n-3)}{4(2n-3)}a_{n-2} \\ + &= -\frac{(n-2)(n-3)}{4(2n-3)}-\frac{n(n-1)}{2(2n-1)}a_n. + \end{align*} + In general + \begin{equation}\label{eq:general_recursion} + a_{n-2k} = (-1)^k \frac{n(n-1)(n-2)(n-3) \hdots (n-2k+1)}{2\cdot4\hdots 2k(2n-1)(2n-3)\hdots(2n-2k+1)}a_n + \end{equation} + The whole solution can now be written as + \begin{align} + y(x) &= a_n x^n + a_{n-2} x^{n-2} + a_{n-4} x^{n-4} + a_{n-6} x^{n-6} + \hdots + \begin{cases} + a_1 x, \quad &\text{if } n \text{ odd} \\ + a_0, \quad &\text{if } n \text{ even} + \end{cases} \nonumber \\ + &= \sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} a_{n-2k}x^{n-2k} \label{eq:solution_2} + \end{align} + By considering + \begin{align} + (2n-1)(2n-3)\hdots (2n-2k+1)&=\frac{2n(2n-1)(2n-2)(2n-3)\hdots(2n-2k+1)} + {2n(2n-2)(2n-4)(2n-6)\hdots(2n-2k+2)} \nonumber \\ + &=\frac{\frac{(2n)!}{(2n-2k)!}} + {2^kn(n-1)(n-2)(n-3)\hdots(n-k+1)} \nonumber \\ + &=\frac{\frac{(2n)!}{(2n-2k)!}} + {2^k\frac{n!}{(n-k)!}}=\frac{(n-k)!(2n)!}{n!(2n-2k)!2^k} \label{eq:1_sub_recursion}, \\ + 2 \cdot 4 \hdots 2k &= 2^r 1\cdot2 \hdots r = 2^r r!\label{eq:2_sub_recursion}, \\ + n(n-1)(n-2)(n-3) \hdots (n-2k+1) &= \frac{n!}{(n-2k)!}\label{eq:3_sub_recursion}. + \end{align} + Eq.\eqref{eq:solution_2} can be rewritten as + \begin{equation}\label{eq:solution_3} + y(x)=a_n \sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} (-1)^k \frac{n!^2(2n-2k)!}{k!(n-2k)!(n-k)!(2n)!} x^{n-2k}. + \end{equation} + Eq.\eqref{eq:solution_3} is defined for any $a_n$. By letting $a_n$ be declared as + \begin{equation*} + a_{n} := \frac{(2n)!}{2^n n!^2}, + \end{equation*} + the so called \emph{Legendre polynomial} emerges + \begin{equation}\label{eq:leg_poly} + P_n(x):=\sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} (-1)^k \frac{(2n-2k)!}{2^n k! (n-k)!(n-2k)!} x^{n-2k} + \end{equation} +\end{proof} + + +\begin{lemma} + If $Z_n(z)$ is a solution of the Legendre equation \eqref{kugel:eqn:legendre}, + then + \begin{equation*} + P^m_n(z) = (1 - z^2)^{m/2} \frac{d^m}{dz^m}Z_n(z) + \end{equation*} + solves the associated Legendre equation \eqref{kugel:eqn:associated-legendre}. +\end{lemma} +% \begin{proof} [TODO: modificare la $m$ (è già usata come costante di separazione) o forse è giusta (?)] +\begin{proof} + To begin, we can start by differentiating $m$ times Eq.\eqref{kugel:eq:leg_eq} (which is staisfied by $y(x)$), obtaining + \begin{equation}\label{eq:lagrange_mderiv} + \frac{d^m}{dx^m}\left[ (1-x^2)\frac{d^2y}{dx^2} \right] -2 \frac{d^m}{dx^m}\left[ x\frac{dy}{dx} \right] + n(n+1)\frac{d^m}{dx^m}y=0. + \end{equation} + \emph{Leibniz's theorem} says, that if we want to differentiate $m$ times a multiplication of two functions, we can use the binomial coefficients to build up a sum. This allows us to be more compact, obtaining + \begin{equation}\label{eq:leibniz} + \frac{d^m}{dx^m}[u(x)v(x)] = \sum_{i=0}^m \binom{n}{i} \frac{d^{m-i}u}{dx^{m-1}} \frac{d^{i}v}{dx^i}. + \end{equation} + Using Eq.\eqref{eq:leibniz} in Eq.\eqref{eq:lagrange_mderiv}, we have + \begin{align} + (1-x^2)\frac{d^{m+2}y}{dx^{m+2}} &+ m \frac{d}{dx}(1-x^2)\frac{d^{m+1}y}{dx^{m+1}} + \frac{m(m-1)}{2}\frac{d^{2}}{dx^{2}}(1-x^2)\frac{d^{m}y}{dx^{m}} + n(n+1)\frac{d^m{}y}{dx^{m}} \nonumber \\ + &-2\left(x\frac{d^{m+1}y}{dx^{m+1}} + m\frac{d}{dx}x\frac{d^{m}y}{dx^{m}} \right) \nonumber \\ + &= (1-x^2)\frac{d^{m+2}y}{dx^{m+2}} -2x(m+1)\frac{d^{m+1}y}{dx^{m+1}}+(n(n+1)-m(m-1)-2m)\frac{d^{m}y}{dx^{m}}=0. \label{eq:aux_3} + \end{align} + To make the notation easier to follow, a new function can be defined + \begin{equation*} + \frac{d^{m}y}{dx^{m}} := y_m. + \end{equation*} + Eq.\eqref{eq:aux_3} now becomes + \begin{equation}\label{eq:1st_subs} + (1-x^2)\frac{d^{2}y_m}{dx^{2}} -2x(m+1)\frac{dy_m}{dx}+(n(n+1)-m(m+1))y_m=0 + \end{equation} + A second function can be further defined as + \begin{equation*} + (1-x^2)^{\frac{m}{2}}\frac{d^{m}y}{dx^{m}} = (1-x^2)^{\frac{m}{2}}y_m := \hat{y}_m, + \end{equation*} + allowing to write Eq.\eqref{eq:1st_subs} as + \begin{equation}\label{eq:2st_subs} + (1-x^2)\frac{d^2}{dx^2}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] -2(m+1)x\frac{d}{dx}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] + (n(n+1)-m(m+1))\hat{y}_m(1-x^2)^{-\frac{m}{2}}=0. + \end{equation} + The goal now is to compute the two terms + \begin{align*} + \frac{d^2}{dx^2}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] &= \frac{d^2\hat{y}_m}{dx^2} (1-x^2)^{-\frac{m}{2}} + \frac{d\hat{y}_m}{dx}\frac{m}{2}(1-x^2)^{-\frac{m}{2}-1}2x \\ + &+ m\left( \frac{d\hat{y}_m}{dx} x (1-x^2)^{-\frac{m}{2}-1} + \hat{y}_m (1-x^2)^{-\frac{m}{2}-1} - \hat{y}_m x (-\frac{m}{2}-1)(1-x^2)^{-\frac{m}{2}} 2x\right) \\ + &= \frac{d^2\hat{y}_m}{dx^2} (1-x^2)^{-\frac{m}{2}} + \frac{d\hat{y}_m}{dx}mx (1-x^2)^{-\frac{m}{2}-1} + m\frac{d\hat{y}_m}{dx}x (1-x^2)^{-\frac{m}{2}-1}\\ + &+ m\hat{y}_m (1-x^2)^{-\frac{m}{2}-1} + m\hat{y}_m x^2(m+2)(1-x^2)^{-\frac{m}{2}-2} + \end{align*} + and + \begin{align*} + \frac{d}{dx}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] &= \frac{d\hat{y}_m}{dx}(1-x^2)^{-\frac{m}{2}} + \hat{y}_m\frac{m}{2}(1-x^2)^{-\frac{m}{2}-1}2x \\ + &= \frac{d\hat{y}_m}{dx}(1-x^2)^{-\frac{m}{2}} + \hat{y}_mm(1-x^2)^{-\frac{m}{2}-1}x, + \end{align*} + to use them in Eq.\eqref{eq:2st_subs}, obtaining + \begin{align*} + (1-x^2)\biggl[\frac{d^2\hat{y}_m}{dx^2} (1-x^2)^{-\frac{m}{2}} &+ \frac{d\hat{y}_m}{dx}mx (1-x^2)^{-\frac{m}{2}-1} + m\frac{d\hat{y}_m}{dx}x (1-x^2)^{-\frac{m}{2}-1} \\ + &+ m\hat{y}_m (1-x^2)^{-\frac{m}{2}-1} + m\hat{y}_m x^2(m+2)(1-x^2)^{-\frac{m}{2}-2}\biggr] \\ + &-2(m+1)x\left[ \frac{d\hat{y}_m}{dx}(1-x^2)^{-\frac{m}{2}} + \hat{y}_mm(1-x^2)^{-\frac{m}{2}-1}x \right] \\ + &+ (n(n+1)-m(m+1))\hat{y}_m(1-x^2)^{-\frac{m}{2}}=0.\\ + \end{align*} + We can now divide by $(1-x^2)^{-\frac{m}{2}}$, obtaining + \begin{align*} + (1-x^2)\biggl[\frac{d^2\hat{y}_m}{dx^2} &+ \frac{d\hat{y}_m}{dx}mx (1-x^2)^{-1} + m\frac{d\hat{y}_m}{dx}x (1-x^2)^{-1} + m\hat{y}_m (1-x^2)^{-1} + m\hat{y}_m x^2(m+2)(1-x^2)^{-2}\biggr] \\ + &-2(m+1)x\left[ \frac{d\hat{y}_m}{dx} + \hat{y}_mm(1-x^2)^{-1}x \right] + (n(n+1)-m(m+1))\hat{y}_m\\ + &= \frac{d^2\hat{y}_m}{dx^2} + \frac{d\hat{y}_m}{dx}mx + m\frac{d\hat{y}_m}{dx}x + m\hat{y}_m + m\hat{y}_m x^2(m+2)(1-x^2)^{-1} \\ + &-2(m+1)x\left[ \frac{d\hat{y}_m}{dx} + \hat{y}_mm(1-x^2)^{-1}x \right] + (n(n+1)-m(m+1))\hat{y}_m\\ + \end{align*} + and collecting some terms + \begin{equation*} + (1-x^2)\frac{d^2\hat{y}_m}{dx^2} - 2x\frac{d\hat{y}_m}{dx} + \left( -x^2 \frac{m^2}{1-x^2} + m+n(n+1)-m(m+1)\right)\hat{y}_m=0. + \end{equation*} + Showing that + \begin{align*} + -x^2 \frac{m^2}{1-x^2} + m+n(n+1)-m(m+1) &= n(n+1)- m^2 -x^2 \frac{m^2}{1-x^2} \\ + &= n(n+1)- \frac{m}{1-x^2} + \end{align*} + implies $\hat{y}_m(x)$ being a solution of Eq.\eqref{kugel:eq:associated_leg_eq} +\end{proof} diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index 70657c9..5645941 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -1,6 +1,6 @@ % vim:ts=2 sw=2 et spell tw=80: -\section{Spherical Harmonics} +\section{Construction of the Spherical Harmonics} \if 0 \kugeltodo{Rewrite this section if the preliminaries become an addendum} @@ -111,7 +111,7 @@ that satisfy the equation \surflaplacian f = -\lambda f. \end{equation} Perhaps it may not be obvious at first glance, but we are in fact dealing with a -partial differential equation (PDE). If we unpack the notation of the operator +partial differential equation (PDE) \kugeltodo{Boundary conditions?}. If we unpack the notation of the operator $\nabla^2_{\partial S}$ according to definition \ref{kugel:def:surface-laplacian}, we get: \begin{equation} \label{kugel:eqn:eigen-pde} @@ -126,7 +126,7 @@ Since all functions satisfying \eqref{kugel:eqn:eigen-pde} are the The task may seem very difficult but we can simplify it with a well-known technique: \emph{the separation Ansatz}. It consists in assuming that the function $f(\vartheta, \varphi)$ can be factorized in the following form: -\begin{equation} \label{kugel:eqn:sep-ansatz:0} +\begin{equation} f(\vartheta, \varphi) = \Theta(\vartheta)\Phi(\varphi). \end{equation} In other words, we are saying that the effect of the two independent variables @@ -135,34 +135,34 @@ effect separately. This separation process was already presented in section \ref{buch:pde:section:kugel}, but we will briefly rehearse it here for convenience. If we substitute this assumption in \eqref{kugel:eqn:eigen-pde}, we have: -\begin{equation} \label{kugel:eqn:sep-ansatz:1} +\begin{equation*} \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( \sin\vartheta \frac{\partial \Theta(\vartheta)}{\partial\vartheta} \right) \Phi(\varphi) + \frac{1}{\sin^2 \vartheta} \frac{\partial^2 \Phi(\varphi)}{\partial\varphi^2} \Theta(\vartheta) + \lambda \Theta(\vartheta)\Phi(\varphi) = 0. -\end{equation} +\end{equation*} Dividing by $\Theta(\vartheta)\Phi(\varphi)$ and introducing an auxiliary -variable $m$, the separation constant, yields: +variable $m^2$, the separation constant, yields: \begin{equation*} \frac{1}{\Theta(\vartheta)}\sin \vartheta \frac{d}{d \vartheta} \left( \sin \vartheta \frac{d \Theta}{d \vartheta} \right) + \lambda \sin^2 \vartheta = -\frac{1}{\Phi(\varphi)} \frac{d^2\Phi(\varphi)}{d\varphi^2} - = m, + = m^2, \end{equation*} which is equivalent to the following system of 2 first order differential equations (ODEs): \begin{subequations} \begin{gather} - \frac{d^2\Phi(\varphi)}{d\varphi^2} = -m \Phi(\varphi), + \frac{d^2\Phi(\varphi)}{d\varphi^2} = -m^2 \Phi(\varphi), \label{kugel:eqn:ode-phi} \\ \sin \vartheta \frac{d}{d \vartheta} \left( \sin \vartheta \frac{d \Theta}{d \vartheta} \right) - + \left( \lambda - \frac{m}{\sin^2 \vartheta} \right) + + \left( \lambda - \frac{m^2}{\sin^2 \vartheta} \right) \Theta(\vartheta) = 0 \label{kugel:eqn:ode-theta}. \end{gather} @@ -174,291 +174,141 @@ write the solutions \Phi(\varphi) = e^{i m \varphi}, \quad m \in \mathbb{Z}. \end{equation} The restriction that the separation constant $m$ needs to be an integer arises -from the fact that we require a $2\pi$-periodicity in $\varphi$ since -$\Phi(\varphi + 2\pi) = \Phi(\varphi)$. Unfortunately, solving -\eqref{kugel:eqn:ode-theta} is not so straightforward. Actually it is quite -difficult, and the process is so involved that it will require a dedicated -section of its own. +from the fact that we require a $2\pi$-periodicity in $\varphi$ since the +coordinate systems requires that $\Phi(\varphi + 2\pi) = \Phi(\varphi)$. +Unfortunately, solving \eqref{kugel:eqn:ode-theta} is as straightforward, +actually, it is quite difficult, and the process is so involved that it will +require a dedicated section of its own. \subsection{Legendre Functions} -To solve \eqref{kugel:eqn:ode-theta} -We can begin by considering the substitution $x = \cos \vartheta$. The operator $\frac{d}{d \vartheta}$ will be: -\begin{align*} - \frac{d}{d \vartheta} = \frac{dx}{d \vartheta}\frac{d}{dx} &= -\sin \vartheta \frac{d}{dx} \\ - &= -\sqrt{1-x^2} \frac{d}{dx}. -\end{align*} -Eq.(\ref{kugel:eq:ODE_2}) will then become. +To solve \eqref{kugel:eqn:ode-theta} we start with the substitution $z = \cos +\vartheta$ \kugeltodo{Explain geometric origin with picture}. The operator +$\frac{d}{d \vartheta}$ becomes +\begin{equation*} + \frac{d}{d \vartheta} + = \frac{dz}{d \vartheta}\frac{d}{dz} + = -\sin \vartheta \frac{d}{dz} + = -\sqrt{1-z^2} \frac{d}{dz}, +\end{equation*} +since $\sin \vartheta = \sqrt{1 - \cos^2 \vartheta} = \sqrt{1 - z^2}$, and +then \eqref{kugel:eqn:ode-theta} becomes \begin{align*} - \frac{-\sqrt{1-x^2}}{\sqrt{1-x^2}} \frac{d}{dx} \left( \left(\sqrt{1-x^2}\right) \left(-\sqrt{1-x^2}\right) \frac{d \Theta}{dx} \right) + \left( \lambda - \frac{m}{\sin^2 \vartheta} \right)\Theta(\vartheta) &= 0 \\ - \frac{d}{dx} \left( (1-x^2) \frac{d \Theta}{dx} \right) + \left( \lambda - \frac{m}{\sin^2 \vartheta} \right)\Theta(\vartheta) &= 0 \\ - (1-x^2)\frac{d^2 \Theta}{dx} - 2x\frac{d \Theta}{dx} + \left( \lambda - \frac{m}{\sin^2 \vartheta} \right)\Theta(\vartheta) &= 0 \\ - (1-x^2)\frac{d^2 \Theta}{dx} - 2x\frac{d \Theta}{dx} + \left( \lambda - \frac{m}{1-x^2} \right)\Theta(\vartheta) &= 0 + \frac{-\sqrt{1-z^2}}{\sqrt{1-z^2}} \frac{d}{dz} \left[ + \left(\sqrt{1-z^2}\right) \left(-\sqrt{1-z^2}\right) \frac{d \Theta}{dz} + \right] + + \left( \lambda - \frac{m^2}{1 - z^2} \right)\Theta(\vartheta) &= 0, + \\ + \frac{d}{dz} \left[ (1-z^2) \frac{d \Theta}{dz} \right] + + \left( \lambda - \frac{m^2}{1 - z^2} \right)\Theta(\vartheta) &= 0, + \\ + (1-z^2)\frac{d^2 \Theta}{dz} - 2z\frac{d \Theta}{dz} + + \left( \lambda - \frac{m^2}{1 - z^2} \right)\Theta(\vartheta) &= 0. \end{align*} -By making two final cosmetic substitutions, namely $\Theta(\vartheta)=\Theta(\cos^{-1}x):=y(x)$ and $\lambda=n(n+1)$, we will be able to define the \emph{Associated Legendre Equation} in its standard and most familiar form -\begin{definition}{Associated Legendre Equation} - \begin{equation}\label{kugel:eq:associated_leg_eq} - (1-x^2)\frac{d^2 y}{dx} - 2x\frac{d y}{dx} + \left( n(n+1) - \frac{m}{1-x^2} \right)y(x) = 0. - \end{equation} -\end{definition} -Our new goal then became solving Eq.(\ref{kugel:eq:asssociated_leg_eq}). After that we can fit the solution into Eq.(\ref{kugel:eq:sep_ansatz_0}), obtaining $f(\vartheta, \varphi)$, the solution of the eigenvalue problem. \newline -We simplified the problem somewhat but the task still remains very difficult. We can rely on a lemma to continue but first we need to define an additional equation, namely the \emph{Legendre Equation} -\begin{definition}{Legendre equation}\newline - Setting $m=0$ in Eq.(\ref{kugel:eq:asssociated_leg_eq}), we get - \begin{equation}\label{kugel:eq:leg_eq} - (1-x^2)\frac{d^2 y}{dx} - 2x\frac{d y}{dx} + n(n+1)y(x) = 0, - \end{equation} - also known as \emph{Legendre Equation}. -\end{definition} -Now we can continue with the lemma -\begin{lemma}\label{kugel:lemma_1} - If $y_n(x)$ is a solution of Eq.(\ref{kugel:eq:leg_eq}), then the function - \begin{equation*} - y_{m,n}(x) = (1-x^2)^{\frac{m}{2}}\frac{d^m}{dx^m}y_n(x) - \end{equation*} - satisfies Eq.(\ref{kugel:eq:associated_leg_eq}) +By making two final cosmetic substitutions, namely $Z(z) = \Theta(\cos^{-1}z)$ +and $\lambda = n(n+1)$, we obtain what is known in the literature as the +\emph{associated Legendre equation of order $m$}: +\nocite{olver_introduction_2013} +\begin{equation} \label{kugel:eqn:associated-legendre} + (1 - z^2)\frac{d^2 Z}{dz} + - 2z\frac{d Z}{dz} + + \left( n(n + 1) - \frac{m^2}{1 - z^2} \right) Z(z) = 0, + \quad + z \in [-1; 1], m \in \mathbb{Z}. +\end{equation} + +Our new goal has therefore become to solve +\eqref{kugel:eqn:associated-legendre}, since if we find a solution for $Z(z)$ we +can perform the substitution backwards and get back to our eigenvalue problem. +However, the associated Legendre equation is not any easier, so to attack the +problem we will look for the solutions in the easier special case when $m = 0$. +This reduces the problem because it removes the double pole, which is always +tricky to deal with. In fact, the reduced problem when $m = 0$ is known as the +\emph{Legendre equation}: +\begin{equation} \label{kugel:eqn:legendre} + (1 - z^2)\frac{d^2 Z}{dz} + - 2z\frac{d Z}{dz} + + n(n + 1) Z(z) = 0, + \quad + z \in [-1; 1]. +\end{equation} + +The Legendre equation is a second order differential equation, and therefore it +has 2 independent solutions, which are known as \emph{Legendre functions} of the +first and second kind. For the scope of this text we will only derive a special +case of the former that is known known as the \emph{Legendre polynomials}, since +we only need a solution between $-1$ and $1$. + +\begin{lemma}[Legendre polynomials] + \label{kugel:lem:legendre-poly} + The polynomial function + \[ + P_n(z) = \sum^{\lfloor n/2 \rfloor}_{k=0} + \frac{(-1)^k}{2^n s^k!} \frac{(2n - 2k)!}{(n - k)! (n-2k)!} z^{n - 2k} + \] + is the only finite solution of the Legendre equation + \eqref{kugel:eqn:legendre} when $n \in \mathbb{Z}$ and $z \in [-1; 1]$. \end{lemma} -\begin{proof} [TODO: modificare la $m$ (è già usata come costante di separazione) o forse è giusta (?)] - To begin, we can start by differentiating $m$ times Eq.\eqref{kugel:eq:leg_eq} (which is staisfied by $y(x)$), obtaining - \begin{equation}\label{eq:lagrange_mderiv} - \frac{d^m}{dx^m}\left[ (1-x^2)\frac{d^2y}{dx^2} \right] -2 \frac{d^m}{dx^m}\left[ x\frac{dy}{dx} \right] + n(n+1)\frac{d^m}{dx^m}y=0. - \end{equation} - \emph{Leibniz's theorem} says, that if we want to differentiate $m$ times a multiplication of two functions, we can use the binomial coefficients to build up a sum. This allows us to be more compact, obtaining - \begin{equation}\label{eq:leibniz} - \frac{d^m}{dx^m}[u(x)v(x)] = \sum_{i=0}^m \binom{n}{i} \frac{d^{m-i}u}{dx^{m-1}} \frac{d^{i}v}{dx^i}. - \end{equation} - Using Eq.\eqref{eq:leibniz} in Eq.\eqref{eq:lagrange_mderiv}, we have - \begin{align} - (1-x^2)\frac{d^{m+2}y}{dx^{m+2}} &+ m \frac{d}{dx}(1-x^2)\frac{d^{m+1}y}{dx^{m+1}} + \frac{m(m-1)}{2}\frac{d^{2}}{dx^{2}}(1-x^2)\frac{d^{m}y}{dx^{m}} + n(n+1)\frac{d^m{}y}{dx^{m}} \nonumber \\ - &-2\left(x\frac{d^{m+1}y}{dx^{m+1}} + m\frac{d}{dx}x\frac{d^{m}y}{dx^{m}} \right) \nonumber \\ - &= (1-x^2)\frac{d^{m+2}y}{dx^{m+2}} -2x(m+1)\frac{d^{m+1}y}{dx^{m+1}}+(n(n+1)-m(m-1)-2m)\frac{d^{m}y}{dx^{m}}=0. \label{eq:aux_3} - \end{align} - To make the notation easier to follow, a new function can be defined - \begin{equation*} - \frac{d^{m}y}{dx^{m}} := y_m. - \end{equation*} - Eq.\eqref{eq:aux_3} now becomes - \begin{equation}\label{eq:1st_subs} - (1-x^2)\frac{d^{2}y_m}{dx^{2}} -2x(m+1)\frac{dy_m}{dx}+(n(n+1)-m(m+1))y_m=0 - \end{equation} - A second function can be further defined as - \begin{equation*} - (1-x^2)^{\frac{m}{2}}\frac{d^{m}y}{dx^{m}} = (1-x^2)^{\frac{m}{2}}y_m := \hat{y}_m, - \end{equation*} - allowing to write Eq.\eqref{eq:1st_subs} as - \begin{equation}\label{eq:2st_subs} - (1-x^2)\frac{d^2}{dx^2}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] -2(m+1)x\frac{d}{dx}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] + (n(n+1)-m(m+1))\hat{y}_m(1-x^2)^{-\frac{m}{2}}=0. - \end{equation} - The goal now is to compute the two terms - \begin{align*} - \frac{d^2}{dx^2}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] &= \frac{d^2\hat{y}_m}{dx^2} (1-x^2)^{-\frac{m}{2}} + \frac{d\hat{y}_m}{dx}\frac{m}{2}(1-x^2)^{-\frac{m}{2}-1}2x \\ - &+ m\left( \frac{d\hat{y}_m}{dx} x (1-x^2)^{-\frac{m}{2}-1} + \hat{y}_m (1-x^2)^{-\frac{m}{2}-1} - \hat{y}_m x (-\frac{m}{2}-1)(1-x^2)^{-\frac{m}{2}} 2x\right) \\ - &= \frac{d^2\hat{y}_m}{dx^2} (1-x^2)^{-\frac{m}{2}} + \frac{d\hat{y}_m}{dx}mx (1-x^2)^{-\frac{m}{2}-1} + m\frac{d\hat{y}_m}{dx}x (1-x^2)^{-\frac{m}{2}-1}\\ - &+ m\hat{y}_m (1-x^2)^{-\frac{m}{2}-1} + m\hat{y}_m x^2(m+2)(1-x^2)^{-\frac{m}{2}-2} - \end{align*} - and - \begin{align*} - \frac{d}{dx}[\hat{y}_m(1-x^2)^{-\frac{m}{2}}] &= \frac{d\hat{y}_m}{dx}(1-x^2)^{-\frac{m}{2}} + \hat{y}_m\frac{m}{2}(1-x^2)^{-\frac{m}{2}-1}2x \\ - &= \frac{d\hat{y}_m}{dx}(1-x^2)^{-\frac{m}{2}} + \hat{y}_mm(1-x^2)^{-\frac{m}{2}-1}x, - \end{align*} - to use them in Eq.\eqref{eq:2st_subs}, obtaining - \begin{align*} - (1-x^2)\biggl[\frac{d^2\hat{y}_m}{dx^2} (1-x^2)^{-\frac{m}{2}} &+ \frac{d\hat{y}_m}{dx}mx (1-x^2)^{-\frac{m}{2}-1} + m\frac{d\hat{y}_m}{dx}x (1-x^2)^{-\frac{m}{2}-1} \\ - &+ m\hat{y}_m (1-x^2)^{-\frac{m}{2}-1} + m\hat{y}_m x^2(m+2)(1-x^2)^{-\frac{m}{2}-2}\biggr] \\ - &-2(m+1)x\left[ \frac{d\hat{y}_m}{dx}(1-x^2)^{-\frac{m}{2}} + \hat{y}_mm(1-x^2)^{-\frac{m}{2}-1}x \right] \\ - &+ (n(n+1)-m(m+1))\hat{y}_m(1-x^2)^{-\frac{m}{2}}=0.\\ - \end{align*} - We can now divide by $(1-x^2)^{-\frac{m}{2}}$, obtaining - \begin{align*} - (1-x^2)\biggl[\frac{d^2\hat{y}_m}{dx^2} &+ \frac{d\hat{y}_m}{dx}mx (1-x^2)^{-1} + m\frac{d\hat{y}_m}{dx}x (1-x^2)^{-1} + m\hat{y}_m (1-x^2)^{-1} + m\hat{y}_m x^2(m+2)(1-x^2)^{-2}\biggr] \\ - &-2(m+1)x\left[ \frac{d\hat{y}_m}{dx} + \hat{y}_mm(1-x^2)^{-1}x \right] + (n(n+1)-m(m+1))\hat{y}_m\\ - &= \frac{d^2\hat{y}_m}{dx^2} + \frac{d\hat{y}_m}{dx}mx + m\frac{d\hat{y}_m}{dx}x + m\hat{y}_m + m\hat{y}_m x^2(m+2)(1-x^2)^{-1} \\ - &-2(m+1)x\left[ \frac{d\hat{y}_m}{dx} + \hat{y}_mm(1-x^2)^{-1}x \right] + (n(n+1)-m(m+1))\hat{y}_m\\ - \end{align*} - and collecting some terms - \begin{equation*} - (1-x^2)\frac{d^2\hat{y}_m}{dx^2} - 2x\frac{d\hat{y}_m}{dx} + \left( -x^2 \frac{m^2}{1-x^2} + m+n(n+1)-m(m+1)\right)\hat{y}_m=0. - \end{equation*} - Showing that - \begin{align*} - -x^2 \frac{m^2}{1-x^2} + m+n(n+1)-m(m+1) &= n(n+1)- m^2 -x^2 \frac{m^2}{1-x^2} \\ - &= n(n+1)- \frac{m}{1-x^2} - \end{align*} - implies $\hat{y}_m(x)$ being a solution of Eq.\eqref{kugel:eq:associated_leg_eq} +\begin{proof} + This results is derived in section \ref{kugel:sec:proofs:legendre}. \end{proof} -In simpler words, if we find a solution to Eq.\eqref{kugel:eq:leg_eq}, we can extend the latter according to the Lemma \ref{kugel:lemma_1} obtaining the solution of Eq.\eqref{kugel:eq:associated_leg_eq}.\newline -We can say that we are going in the right direction, as the problem to be solved is decreasing in difficulty. We moved from having to find a solution to Eq.\eqref{kugel:eq:associated_leg_eq} to finding a solution to Eq.\eqref{kugel:eq:leg_eq}, which is much more approachable as a problem. Luckily for us, the lemma we will present below will help us extensively, which is something of an euphemism, since it will give us the solution directly. -\begin{lemma} - The polynomial function - \begin{align*} - y_n(x)&=\sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} (-1)^k \frac{(2n-2k)!}{2^n k! (n-k)!(n-2k)!} x^{n-2k}\\ - &= \frac{1}{n!2^n}\frac{d^n}{dx^n}(1-x^2)^n =: P_n(x), - \end{align*} - is a solution to the second order differential equation - \begin{equation}\label{kugel:eq:sol_leg} - (1-x^2)\frac{d^2y}{dx^2}-2x\frac{dy}{dx} + n(n+1)y=0, \quad \forall n>0. - \end{equation} + +Since the Legendre \emph{polynomials} are indeed polynomials, they can also be +expressed using the hypergeometric functions described in section +\ref{buch:rekursion:section:hypergeometrische-funktion}, so in fact +\begin{equation} + P_n(z) = {}_2F_1 \left( \begin{matrix} + n + 1, & -n \\ \multicolumn{2}{c}{1} + \end{matrix} ; \frac{1 - z}{2} \right). +\end{equation} +Further, there are a few more interesting but not very relevant forms to write +$P_n(z)$ such as \emph{Rodrigues' formula} and \emph{Laplace's integral +representation} which are +\begin{equation*} + P_n(z) = \frac{1}{2^n} \frac{d^n}{dz^n} (x^2 - 1)^n, + \qquad \text{and} \qquad + P_n(z) = \frac{1}{\pi} \int_0^\pi \left( + z + \cos\vartheta \sqrt{z^2 - 1} + \right) \, d\vartheta +\end{equation*} +respectively, both of which we will not prove (see chapter 3 of +\cite{bell_special_2004} for a proof). Now that we have a solution for the +Legendre equation, we can make use of the following lemma patch the solutions +such that they also become solutions of the associated Legendre equation +\eqref{kugel:eqn:associated-legendre}. + +\begin{lemma} \label{kugel:lem:extend-legendre} + If $Z_n(z)$ is a solution of the Legendre equation \eqref{kugel:eqn:legendre}, + then + \begin{equation*} + Z^m_n(z) = (1 - z^2)^{m/2} \frac{d^m}{dz^m}Z_n(z) + \end{equation*} + solves the associated Legendre equation \eqref{kugel:eqn:associated-legendre}. + \nocite{bell_special_2004} \end{lemma} \begin{proof} - In order to find a solution to Eq.\eqref{eq:legendre}, the following Ansatz can be performed: - \begin{equation}\label{eq:ansatz} - y(x) = \sum_{k=0}^\infty a_k x^k. - \end{equation} - Given Eq.\eqref{eq:ansatz}, then - \begin{align*} - \frac{dy}{dx} &= \sum_{k=0}^\infty k a_k x^{k-1}, \\ - \frac{d^2y}{dx^2} &= \sum_{k=0}^\infty k (k-1) a_k x^{k-2}. - \end{align*} - Eq.\eqref{eq:legendre} can be therefore written as - \begin{align} - &(1-x^2)\sum_{k=0}^\infty k (k-1) a_k x^{k-2} - 2x\sum_{k=0}^\infty k a_k x^{k-1} + n(n+1)\sum_{k=0}^\infty a_k x^k=0 \label{eq:ansatz_in_legendre} \\ - &=\sum_{k=0}^\infty k (k-1) a_k x^{k-2} - \sum_{k=0}^\infty k (k-1) a_k x^{k} - 2x\sum_{k=0}^\infty k a_k x^{k-1} + n(n+1)\sum_{k=0}^\infty a_k x^k=0. \nonumber - \end{align} - If one consider the term - \begin{equation}\label{eq:term} - \sum_{k=0}^\infty k (k-1) a_k x^{k-2}, - \end{equation} - the substitution $\tilde{k}=k-2$ yields Eq.\eqref{eq:term} to - \begin{equation*} - \sum_{\tilde{k}=-2}^\infty (\tilde{k}+2) (\tilde{k}+1) a_{\tilde{k}+2} x^{\tilde{k}}=\sum_{\tilde{k}=0}^\infty (\tilde{k}+2) (\tilde{k}+1) a_{\tilde{k}} x^{\tilde{k}}. - \end{equation*} - This means that Eq.\eqref{eq:ansatz_in_legendre} becomes - \begin{align} - &\sum_{k=0}^\infty (k+1)(k+2) a_{k+2} x^{k} - \sum_{k=0}^\infty k (k-1) a_k x^{k} - 2\sum_{k=0}^\infty k a_k x^k + n(n+1)\sum_{k=0}^\infty a_k x^k \nonumber \\ - = &\sum_{k=0}^\infty \big[ (k+1)(k+2) a_{k+2} - k (k-1) a_k - 2 k a_k + n(n+1) a_k \big] x^k \stackrel{!}{=} 0. \label{eq:condition} - \end{align} - The condition in Eq.\eqref{eq:condition} is equivalent to - \begin{equation}\label{eq:condition_2} - (k+1)(k+2) a_{k+2} - k (k-1) a_k - 2 k a_k + n(n+1) a_k = 0. - \end{equation} - We can derive a recursion formula for $a_{k+2}$ from Eq.\eqref{eq:condition_2}, which can be expressed as - \begin{equation}\label{eq:recursion} - a_{k+2}= \frac{k (k-1) - 2 k + n(n+1)}{(k+1)(k+2)}a_k = \frac{(k-n)(k+n+1)}{(k+2)(k+1)}a_k. - \end{equation} - All coefficients can be calculated using the latter. - - Following Eq.\eqref{eq:recursion}, if we want to compute $a_6$ we would have - \begin{align*} - a_{6}= -\frac{(n-4)(n+5)}{6\cdot 5}a_4 &= -\frac{(n-4)(5+n)}{6 \cdot 5} -\frac{(n-2)(n+3)}{4 \cdot 3} a_2 \\ - &= -\frac{(n-4)(n+5)}{6 \cdot 5} -\frac{(n-2)(n+3)}{4 \cdot 3} -\frac{n(n+1)}{2 \cdot 1} a_0 \\ - &= -\frac{(n+5)(n+3)(n+1)n(n-2)(n-4)}{6!} a_0. - \end{align*} - One can generalize this relation for the $i^\text{th}$ even coefficient as - \begin{equation*} - a_{2k} = (-1)^k \frac{(n+(2k-1))(n+(2k-1)-2)\hdots (n-(2k-2)+2)(n-(2k-2))}{(2k)!}a_0 - \end{equation*} - where $i=2k$. - - A similar expression can be written for the odd coefficients $a_{2k-1}$. In this case, the equation starts from $a_1$ and to find the pattern we can write the recursion for an odd coefficient, $a_7$ for example - \begin{align*} - a_{7}= -\frac{(n-5)(n+6)}{7\cdot 6}a_5 &= - \frac{(n-5)(n+6)}{7\cdot 6} -\frac{(n-3)(n+4)}{5 \cdot 4} a_3 \\ - &= - \frac{(n-5)(n+6)}{7\cdot 6} -\frac{(n-3)(n+4)}{5 \cdot 4} -\frac{(n-1)(n+2)}{3 \cdot 2} a_1 \\ - &= -\frac{(n+6)(n+4)(n+2)(n-1)(n-3)(n-5)}{7!} a_1. - \end{align*} - As before, we can generalize this equation for the $i^\text{th}$ odd coefficient - \begin{equation*} - a_{2k+1} = (-1)^k \frac{(n + 2k)(n+2k-2)\hdots(n-(2k-1)+2)(n-(2k-1))}{(2k+1)!}a_1 - \end{equation*} - where $i=2k+1$. - - Let be - \begin{align*} - y_\text{e}^K(x) &:= \sum_{k=0}^K(-1)^k \frac{(n+(2k-1))(n+(2k-1)-2)\hdots \color{red}(n-(2k-2)+2)(n-(2k-2))}{(2k)!} x^{2k}, \\ - y_\text{o}^K(x) &:= \sum_{k=0}^K(-1)^k \frac{(n + 2k)(n+2k-2)\hdots \color{blue} (n-(2k-1)+2)(n-(2k-1))}{(2k+1)!} x^{2k+1}. - \end{align*} - The solution to the Eq.\eqref{eq:legendre} can be written as - \begin{equation}\label{eq:solution} - y(x) = \lim_{K \to \infty} \left[ a_0 y_\text{e}^K(x) + a_1 y_\text{o}^K(x) \right]. - \end{equation} - - The colored parts can be analyzed separately: - \begin{itemize} - \item[\textcolor{red}{\textbullet}] Suppose that $n=n_0$ is an even number. Then the red part, for a specific value of $k=k_0$, will follow the following relation: - \begin{equation*} - n_0-(2k_0-2)=0. - \end{equation*} - From that point on, given the recursive nature of Eq.\eqref{eq:recursion}, all the subsequent coefficients will also be 0, making the sum finite. - \begin{equation*} - a_{2k}=0 \iff y_{\text{o}}^{2k}(x)=y_{\text{o}}^{2k_0}(x), \quad \forall k>k_0 - \end{equation*} - \item[\textcolor{blue}{\textbullet}] Suppose that $n=n_0$ is an odd number. Then the blue part, for a specific value of $k=k_0$, will follow the following relation - \begin{equation*} - n_0-(2k_0-1)=0. - \end{equation*} - From that point on, for the same reason as before, all the subsequent coefficients will also be 0, making the sum finite. - \begin{equation*} - a_{2k+1}=0 \iff y_{\text{o}}^{2k+1}(x)=y_{\text{o}}^{2k_0+1}(x), \quad \forall k>k_0 - \end{equation*} - \end{itemize} - - There is the possibility of expressing the solution in Eq.\eqref{eq:solution} in a more compact form, combining the two solutions $y_\text{o}^K(x)$ and $y_\text{e}^K(x)$. They are both a polynomial of maximum degree $n$, assuming $n \in \mathbb{N}$. In the case where $n$ is even, the polynomial solution - \begin{equation*} - \lim_{K\to \infty} y_\text{e}^K(x) - \end{equation*} - will be a finite sum. If instead $n$ is odd, will be - \begin{equation*} - \lim_{K\to \infty} y_\text{o}^K(x) - \end{equation*} - to be a finite sum. - - Depending on the coefficient we start with, $a_1$ or $a_0$, we will obtain the odd or even polynomial respectively. Starting with the last coefficient $a_n$ and, recursively, calculating all the others in descending order, we can express the two parts $y_\text{o}^K(x)$ and $y_\text{e}^K(x)$ with a single sum. Hence, because we start with the last coefficient, the choice concerning $a_1$ and $a_0$ will be at the end of the sum, and not at the beginning. To compact Eq.\eqref{eq:solution}, Eq.\eqref{eq:recursion} can be reconsidered to calculate the coefficient $a_{k-2}$, using $a_k$ - \begin{equation*} - a_{k-2} = -\frac{(k+2)(k+1)}{(k-n)(k+n+1)}a_k - \end{equation*} - Now the game is to find a pattern, as before. Remember that $n$ is a fixed parameter of Eq.\eqref{eq:legendre}. - \begin{align*} - a_{n-2} &= -\frac{n(n-1)}{2(2n-1)}a_n, \\ - a_{n-4} &= -\frac{(n-2)(n-3)}{4(2n-3)}a_{n-2} \\ - &= -\frac{(n-2)(n-3)}{4(2n-3)}-\frac{n(n-1)}{2(2n-1)}a_n. - \end{align*} - In general - \begin{equation}\label{eq:general_recursion} - a_{n-2k} = (-1)^k \frac{n(n-1)(n-2)(n-3) \hdots (n-2k+1)}{2\cdot4\hdots 2k(2n-1)(2n-3)\hdots(2n-2k+1)}a_n - \end{equation} - The whole solution can now be written as - \begin{align} - y(x) &= a_n x^n + a_{n-2} x^{n-2} + a_{n-4} x^{n-4} + a_{n-6} x^{n-6} + \hdots + \begin{cases} - a_1 x, \quad &\text{if } n \text{ odd} \\ - a_0, \quad &\text{if } n \text{ even} - \end{cases} \nonumber \\ - &= \sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} a_{n-2k}x^{n-2k} \label{eq:solution_2} - \end{align} - By considering - \begin{align} - (2n-1)(2n-3)\hdots (2n-2k+1)&=\frac{2n(2n-1)(2n-2)(2n-3)\hdots(2n-2k+1)} - {2n(2n-2)(2n-4)(2n-6)\hdots(2n-2k+2)} \nonumber \\ - &=\frac{\frac{(2n)!}{(2n-2k)!}} - {2^kn(n-1)(n-2)(n-3)\hdots(n-k+1)} \nonumber \\ - &=\frac{\frac{(2n)!}{(2n-2k)!}} - {2^k\frac{n!}{(n-k)!}}=\frac{(n-k)!(2n)!}{n!(2n-2k)!2^k} \label{eq:1_sub_recursion}, \\ - 2 \cdot 4 \hdots 2k &= 2^r 1\cdot2 \hdots r = 2^r r!\label{eq:2_sub_recursion}, \\ - n(n-1)(n-2)(n-3) \hdots (n-2k+1) &= \frac{n!}{(n-2k)!}\label{eq:3_sub_recursion}. - \end{align} - Eq.\eqref{eq:solution_2} can be rewritten as - \begin{equation}\label{eq:solution_3} - y(x)=a_n \sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} (-1)^k \frac{n!^2(2n-2k)!}{k!(n-2k)!(n-k)!(2n)!} x^{n-2k}. - \end{equation} - Eq.\eqref{eq:solution_3} is defined for any $a_n$. By letting $a_n$ be declared as - \begin{equation*} - a_{n} := \frac{(2n)!}{2^n n!^2}, - \end{equation*} - the so called \emph{Legendre polynomial} emerges - \begin{equation}\label{eq:leg_poly} - P_n(x):=\sum_{k=0}^{\lfloor \frac{n}{2} \rfloor} (-1)^k \frac{(2n-2k)!}{2^n k! (n-k)!(n-2k)!} x^{n-2k} - \end{equation} + See section \ref{kugel:sec:proofs:legendre}. \end{proof} -As can be seen, the solution is a $n$-dependent power series, traditionally denoted as $P_n(x)$. This set of polynomials are called \emph{Legendre Polynomials}, because precisely they are polynomials satisfying the Legendre equation.\newline -Now that we have a solution to Eq.\eqref{kugel:eq:leg_eq}, we can then extend Eq.\eqref{kugel:eq:sol_leg}, as stated in Lemma \ref{kugel:lemma_1}. We will then have -\begin{align*} -y_{m,n}(x) &= (1-x^2)^{\frac{m}{2}}\frac{d^m}{dx^m}P_n(x) \\ -&= \frac{1}{n!2^n}(1-x^2)^{\frac{m}{2}}\frac{d^{m+n}}{dx^{m+n}}(1-x^2)^n -\end{align*} -This set of functions are defined as \emph{Associated Legendre functions}, because similarly to before, they solve the Associated Legendre equation, defined in Eq.\eqref{kugel:eq:eq_leg}. -\begin{definition}{Associated Legendre Functions} -\begin{equation}\label{kugel:eq:associated_leg_func} -P_{m,n}(x) := \frac{1}{n!2^n}(1-x^2)^{\frac{m}{2}}\frac{d^{m+n}}{dx^{m+n}}(1-x^2)^n -\end{equation} + +What is happening in lemma \ref{kugel:lem:extend-legendre}, is that we are +essentially inserting a square root function in the solution in order to be able +to reach the parts of the domain near the poles at $\pm 1$ of the associated +Legendre equation, which is not possible only using power series +\kugeltodo{Reference book theory on extended power series method.}. Now, since +we have a solution in our domain, namely $P_n(z)$, we can insert it in the lemma +obtain the \emph{associated Legendre functions}. + +\begin{definition}[Ferrers or Associated Legendre functions] + The functions + \begin{equation}\label{kugel:eq:associated_leg_func} + P^m_n (z) = \frac{1}{n!2^n}(1-z^2)^{\frac{m}{2}}\frac{d^{m}}{dz^{m}} P_n(z) + = \frac{1}{n!2^n}(1-z^2)^{\frac{m}{2}}\frac{d^{m+n}}{dz^{m+n}}(1-z^2)^n + \end{equation} + are known as Ferrers or associated Legendre functions. \end{definition} + +\subsection{Spherical Harmonics} + As you may recall, previously we performed the substitution $x=\cos \vartheta$. Now we need to return to the old domain, which can be done straightforwardly: \begin{equation*} \Theta(\vartheta) = P_{m,n}(\cos \vartheta), @@ -512,6 +362,10 @@ Ora, visto che la soluzione dell'eigenfunction problem è formata dalla moltipli \subsection{Recurrence Relations} -\section{Series Expansions in \(C(S^2)\)} +\section{Series Expansions in $C(S^2)$} -\nocite{olver_introduction_2013} +\subsection{Orthogonality of $P_n$, $P^m_n$ and $Y^m_n$} + +\subsection{Series Expansion} + +\subsection{Fourier on $S^2$} -- cgit v1.2.1 From d0c30778c51d0940b93b488183f50ec8aa5fa0f0 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 17 Aug 2022 16:30:46 +0200 Subject: kugel: Add povray images --- buch/papers/kugel/figures/povray/curvature.jpg | Bin 0 -> 265649 bytes buch/papers/kugel/figures/povray/curvature.png | Bin 0 -> 590402 bytes buch/papers/kugel/figures/povray/spherecurve.jpg | Bin 0 -> 171287 bytes buch/papers/kugel/figures/povray/spherecurve.png | Bin 0 -> 423490 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 buch/papers/kugel/figures/povray/curvature.jpg create mode 100644 buch/papers/kugel/figures/povray/curvature.png create mode 100644 buch/papers/kugel/figures/povray/spherecurve.jpg create mode 100644 buch/papers/kugel/figures/povray/spherecurve.png diff --git a/buch/papers/kugel/figures/povray/curvature.jpg b/buch/papers/kugel/figures/povray/curvature.jpg new file mode 100644 index 0000000..6448966 Binary files /dev/null and b/buch/papers/kugel/figures/povray/curvature.jpg differ diff --git a/buch/papers/kugel/figures/povray/curvature.png b/buch/papers/kugel/figures/povray/curvature.png new file mode 100644 index 0000000..20268f2 Binary files /dev/null and b/buch/papers/kugel/figures/povray/curvature.png differ diff --git a/buch/papers/kugel/figures/povray/spherecurve.jpg b/buch/papers/kugel/figures/povray/spherecurve.jpg new file mode 100644 index 0000000..cd2e7c8 Binary files /dev/null and b/buch/papers/kugel/figures/povray/spherecurve.jpg differ diff --git a/buch/papers/kugel/figures/povray/spherecurve.png b/buch/papers/kugel/figures/povray/spherecurve.png new file mode 100644 index 0000000..ff24371 Binary files /dev/null and b/buch/papers/kugel/figures/povray/spherecurve.png differ -- cgit v1.2.1 From 494636b6d00b0697bda4c5840a3666b0867f22e8 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 17 Aug 2022 17:18:13 +0200 Subject: kugel: Minor changes --- buch/papers/kugel/main.tex | 2 +- buch/papers/kugel/packages.tex | 5 ++ buch/papers/kugel/preliminaries.tex | 8 +-- buch/papers/kugel/spherical-harmonics.tex | 87 ++++++++++++++++++++++--------- 4 files changed, 73 insertions(+), 29 deletions(-) diff --git a/buch/papers/kugel/main.tex b/buch/papers/kugel/main.tex index ad19178..d063f87 100644 --- a/buch/papers/kugel/main.tex +++ b/buch/papers/kugel/main.tex @@ -11,7 +11,7 @@ \chapterauthor{Manuel Cattaneo, Naoki Pross} \input{papers/kugel/introduction} -% \input{papers/kugel/preliminaries} +\input{papers/kugel/preliminaries} \input{papers/kugel/spherical-harmonics} \input{papers/kugel/applications} \input{papers/kugel/proofs} diff --git a/buch/papers/kugel/packages.tex b/buch/papers/kugel/packages.tex index b0e1f61..ead7653 100644 --- a/buch/papers/kugel/packages.tex +++ b/buch/papers/kugel/packages.tex @@ -1,3 +1,4 @@ +% vim:ts=2 sw=2 et: % % packages.tex -- packages required by the paper kugel % @@ -10,6 +11,10 @@ \usepackage{cases} \newcommand{\kugeltodo}[1]{\textcolor{red!70!black}{\texttt{[TODO: #1]}}} +\newcommand{\kugelplaceholderfig}[2]{ \begin{tikzpicture}% + \fill[lightgray!20] (0, 0) rectangle (#1, #2);% + \node[gray, anchor = center] at ({#1 / 2}, {#2 / 2}) {\Huge \ttfamily \bfseries TODO}; + \end{tikzpicture}} \DeclareMathOperator{\sphlaplacian}{\nabla^2_{\mathit{S}}} \DeclareMathOperator{\surflaplacian}{\nabla^2_{\partial \mathit{S}}} diff --git a/buch/papers/kugel/preliminaries.tex b/buch/papers/kugel/preliminaries.tex index 03cd421..e48abe4 100644 --- a/buch/papers/kugel/preliminaries.tex +++ b/buch/papers/kugel/preliminaries.tex @@ -44,23 +44,23 @@ numbers \(\mathbb{R}\). \) \end{definition} -\texttt{TODO: Text here.} +\kugeltodo{Text here.} \begin{definition}[Span] \end{definition} -\texttt{TODO: Text here.} +\kugeltodo{Text here.} \begin{definition}[Linear independence] \end{definition} -\texttt{TODO: Text here.} +\kugeltodo{Text here.} \begin{definition}[Basis] \end{definition} -\texttt{TODO: Text here.} +\kugeltodo{Text here.} \begin{definition}[Inner product] \label{kugel:def:inner-product} \nocite{axler_linear_2014} diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index 5645941..2ded50b 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -2,8 +2,8 @@ \section{Construction of the Spherical Harmonics} -\if 0 -\kugeltodo{Rewrite this section if the preliminaries become an addendum} +\kugeltodo{Review text, or rewrite if preliminaries becomes an addendum} + We finally arrived at the main section, which gives our chapter its name. The idea is to discuss spherical harmonics, their mathematical derivation and some of their properties and applications. @@ -29,9 +29,9 @@ created with the previous sections, concluding that Fourier is just a specific case of the application of the concept of orthogonality. Our hope is that after reading this section you will appreciate the beauty and power of generalization that mathematics offers us. -\fi \subsection{Eigenvalue Problem} +\label{kugel:sec:construction:eigenvalue} \begin{figure} \centering @@ -111,8 +111,9 @@ that satisfy the equation \surflaplacian f = -\lambda f. \end{equation} Perhaps it may not be obvious at first glance, but we are in fact dealing with a -partial differential equation (PDE) \kugeltodo{Boundary conditions?}. If we unpack the notation of the operator -$\nabla^2_{\partial S}$ according to definition +partial differential equation (PDE) \kugeltodo{Boundary conditions?}. If we +unpack the notation of the operator $\nabla^2_{\partial S}$ according to +definition \ref{kugel:def:surface-laplacian}, we get: \begin{equation} \label{kugel:eqn:eigen-pde} \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( @@ -139,7 +140,8 @@ convenience. If we substitute this assumption in \frac{1}{\sin\vartheta} \frac{\partial}{\partial \vartheta} \left( \sin\vartheta \frac{\partial \Theta(\vartheta)}{\partial\vartheta} \right) \Phi(\varphi) - + \frac{1}{\sin^2 \vartheta} \frac{\partial^2 \Phi(\varphi)}{\partial\varphi^2} + + \frac{1}{\sin^2 \vartheta} + \frac{\partial^2 \Phi(\varphi)}{\partial\varphi^2} \Theta(\vartheta) + \lambda \Theta(\vartheta)\Phi(\varphi) = 0. \end{equation*} @@ -182,6 +184,14 @@ require a dedicated section of its own. \subsection{Legendre Functions} +\begin{figure} + \centering + \kugelplaceholderfig{.8\textwidth}{5cm} + \caption{ + \kugeltodo{Why $z = \cos \vartheta$.} + } +\end{figure} + To solve \eqref{kugel:eqn:ode-theta} we start with the substitution $z = \cos \vartheta$ \kugeltodo{Explain geometric origin with picture}. The operator $\frac{d}{d \vartheta}$ becomes @@ -298,26 +308,19 @@ Legendre equation, which is not possible only using power series we have a solution in our domain, namely $P_n(z)$, we can insert it in the lemma obtain the \emph{associated Legendre functions}. -\begin{definition}[Ferrers or Associated Legendre functions] +\begin{definition}[Ferrers or associated Legendre functions] + \label{kugel:def:ferrers-functions} The functions - \begin{equation}\label{kugel:eq:associated_leg_func} + \begin{equation} P^m_n (z) = \frac{1}{n!2^n}(1-z^2)^{\frac{m}{2}}\frac{d^{m}}{dz^{m}} P_n(z) = \frac{1}{n!2^n}(1-z^2)^{\frac{m}{2}}\frac{d^{m+n}}{dz^{m+n}}(1-z^2)^n \end{equation} are known as Ferrers or associated Legendre functions. \end{definition} -\subsection{Spherical Harmonics} +\kugeltodo{Discuss $|m| \leq n$.} -As you may recall, previously we performed the substitution $x=\cos \vartheta$. Now we need to return to the old domain, which can be done straightforwardly: -\begin{equation*} - \Theta(\vartheta) = P_{m,n}(\cos \vartheta), -\end{equation*} -obtaining the much sought function $\Theta(\vartheta)$. \newline -So we finally reached the end of this tortuous path. Now we just need to put together all the information we have to construct $f(\vartheta, \varphi)$ in the following way: -\begin{equation}\label{kugel:eq:sph_harm_0} - f(\vartheta, \varphi) = \Theta(\vartheta)\Phi(\varphi) = P_{m,n}(\cos \vartheta)e^{jm\varphi}, \quad |m|\leq n. -\end{equation} +\if 0 The constraint $|m| Date: Wed, 17 Aug 2022 20:37:05 +0200 Subject: remove superfluous file --- buch/SeminarSpezielleFunktionen.pdf | Bin 22768314 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 buch/SeminarSpezielleFunktionen.pdf diff --git a/buch/SeminarSpezielleFunktionen.pdf b/buch/SeminarSpezielleFunktionen.pdf deleted file mode 100644 index 36b612f..0000000 Binary files a/buch/SeminarSpezielleFunktionen.pdf and /dev/null differ -- cgit v1.2.1 From c32bd2a662c56007f6e0be7899ffca982bb00e80 Mon Sep 17 00:00:00 2001 From: Alain Date: Wed, 17 Aug 2022 20:53:48 +0200 Subject: korrekturen --- buch/papers/parzyl/references.bib | 9 +++ buch/papers/parzyl/teil0.tex | 2 +- buch/papers/parzyl/teil1.tex | 115 +++++++++++++++++++++++++------------- 3 files changed, 85 insertions(+), 41 deletions(-) diff --git a/buch/papers/parzyl/references.bib b/buch/papers/parzyl/references.bib index 40be69a..390d5ed 100644 --- a/buch/papers/parzyl/references.bib +++ b/buch/papers/parzyl/references.bib @@ -56,4 +56,13 @@ timestamp = {2008-06-25T06:25:58.000+0200}, title = {Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables}, year = 1972 +} + +@online{parzyl:coordinates, + title = {Parabolic cylindrical coordinates}, + url = {https://en.wikipedia.org/wiki/Parabolic_cylindrical_coordinates}, + date = {2022-08-17}, + year = {2022}, + month = {8}, + day = {17} } \ No newline at end of file diff --git a/buch/papers/parzyl/teil0.tex b/buch/papers/parzyl/teil0.tex index 4a6f8f4..f24a5c1 100644 --- a/buch/papers/parzyl/teil0.tex +++ b/buch/papers/parzyl/teil0.tex @@ -65,7 +65,7 @@ in zwei Differentialgleichungen aufgeteilt wird. Die Helmholtz-Gleichung ist der %An ladungsfreien Stellen ist der rechte Teil der Gleichung $0$. \subsection{Parabolische Zylinderkoordinaten \label{parzyl:subsection:finibus}} -Im parabolischen Zylinderkoordinatensystem bilden parabolische Zylinder die Koordinatenflächen. +Im parabolischen Zylinderkoordinatensystem \cite{parzyl:coordinates} bilden parabolische Zylinder die Koordinatenflächen. Die Koordinate $(\sigma, \tau, z)$ sind in kartesischen Koordinaten ausgedrückt mit \begin{align} x & = \sigma \tau \\ diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index 673fa7f..a4253b8 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -25,63 +25,92 @@ Die Lösung ist somit Die Differentialgleichungen \eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2} werden in \cite{parzyl:whittaker} mit Hilfe der Whittaker Gleichung gelöst. \begin{definition} - Die Funktion + Die Funktionen \begin{equation*} - W_{k,m}(z) = + M_{k,m}(z) = e^{-z/2} z^{m+1/2} \, {}_{1} F_{1} ( {\textstyle \frac{1}{2}} + m - k, 1 + 2m; z) \end{equation*} - heisst Whittaker Funktion und ist eine Lösung + und + \begin{equation*} + W_{k,m}(z) = \frac{ + \Gamma \left( -2m\right) + }{ + \Gamma \left( {\textstyle \frac{1}{2}} - m - k\right) + } + M_{-k, m} \left(z\right) + + + \frac{ + \Gamma \left( 2m\right) + }{ + \Gamma \left( {\textstyle \frac{1}{2}} + m - k\right) + } + M_{k, -m} \left(z\right) + \end{equation*} + gehören zu den Whittaker Funktionen und sind die Lösungen von der Whittaker Differentialgleichung \begin{equation} \frac{d^2W}{d z^2} + \left(-\frac{1}{4} + \frac{k}{z} + \frac{\frac{1}{4} - m^2}{z^2} \right) W = 0. \label{parzyl:eq:whitDiffEq} \end{equation} + \end{definition} Es wird nun die Differentialgleichung bestimmt, welche \begin{equation} w = z^{-1/2} W_{k,-1/4} \left({\textstyle \frac{1}{2}} z^2\right) \end{equation} als Lösung hat. -Dafür wird $w$ in \eqref{parzyl:eq:whitDiffEq} eingesetzt woraus +Dafür wird $w$ in \eqref{parzyl:eq:whitDiffEq} eingesetzt, woraus \begin{equation} \frac{d^2 w}{dz^2} - \left(\frac{1}{4} z^2 - 2k\right) w = 0 \label{parzyl:eq:weberDiffEq} \end{equation} -resultiert. DIese Differentialgleichung ist dieselbe wie +resultiert. Diese Differentialgleichung ist dieselbe wie \eqref{parzyl:sep_dgl_2} und \eqref{parzyl:sep_dgl_2}, welche somit $w$ als Lösung haben. -Da es sich um eine Differentialgleichung zweiter Ordnung handelt, hat sie nicht nur -eine sondern zwei Lösungen. -Die zweite Lösung der Whittaker-Gleichung ist $W_{k,-m} (z)$. -Somit hat \eqref{parzyl:eq:weberDiffEq} -\begin{align} - w_1(k, z) & = z^{-1/2} W_{k,-1/4} \left({\textstyle \frac{1}{2}} z^2\right)\\ - w_2(k, z) & = z^{-1/2} W_{k,1/4} \left({\textstyle \frac{1}{2}} z^2\right) -\end{align} -als Lösungen. -Mit der Hypergeometrischen Funktion ausgeschrieben ergeben sich die Lösungen -\begin{align} - \label{parzyl:eq:solution_dgl} - w_1(k,z) &= e^{-z^2/4} \, - {}_{1} F_{1} - ( - {\textstyle \frac{1}{4}} - - k, {\textstyle \frac{1}{2}} ; {\textstyle \frac{1}{2}}z^2) \\ - w_2(k,z) & = z e^{-z^2/4} \, - {}_{1} F_{1} - ({\textstyle \frac{3}{4}} - - k, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2). -\end{align} -In der Literatur gibt es verschiedene Standartlösungen für $w(k,z)$ präsentiert. -Whittaker und Watson zeigen in \cite{parzyl:whittaker} eine Lösung +%Da es sich um eine Differentialgleichung zweiter Ordnung handelt, hat sie nicht nur +%eine sondern zwei Lösungen. +%Die zweite Lösung der Whittaker-Gleichung ist $W_{k,-m} (z)$. +%Somit hat \eqref{parzyl:eq:weberDiffEq} +%\begin{align} +% w_1(k, z) & = z^{-1/2} W_{k,-1/4} \left({\textstyle \frac{1}{2}} z^2\right)\\ +% w_2(k, z) & = z^{-1/2} W_{k,1/4} \left({\textstyle \frac{1}{2}} z^2\right) +%\end{align} +%als Lösungen. +%Mit der Hypergeometrischen Funktion ausgeschrieben ergeben sich die Lösungen +%\begin{align} +% \label{parzyl:eq:solution_dgl} +% w_1(k,z) &= e^{-z^2/4} \, +% {}_{1} F_{1} +% ( +% {\textstyle \frac{1}{4}} +% - k, {\textstyle \frac{1}{2}} ; {\textstyle \frac{1}{2}}z^2) \\ +% w_2(k,z) & = z e^{-z^2/4} \, +% {}_{1} F_{1} +% ({\textstyle \frac{3}{4}} +% - k, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2). +%\end{align} + +In der Literatur gibt es verschiedene Standartlösungen für +\eqref{parzyl:eq:weberDiffEq} präsentiert, wobei die Differentialgleichung jeweils +unterschiedlich geschrieben wird. +Whittaker und Watson zeigen in \cite{parzyl:whittaker} die Lösung +\begin{equation} + D_n(z) = 2^{\frac{1}{2}n + \frac{1}{2}} z^{-\frac{1}{2}} W_{n/2 + 1/4, -1/4}\left(\frac{1}{2}z^2\right) +\end{equation} +welche die Differentialgleichung +\begin{equation} + \frac{d^2D_n(z)}{dz^2} + \left(n + \frac{1}{2} - \frac{1}{4} z^2\right)D_n(z) = 0 +\end{equation} +löst. +Mit $M_{k,m}(z)$ geschrieben resultiert \begin{equation} D_n(z) = \frac{ - \Gamma \left( {\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{2}} z^{-\frac{1}{2}} + \Gamma \left( {\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{4}} z^{-\frac{1}{2}} }{ \Gamma \left( {\textstyle \frac{1}{2}} \right) - {\textstyle \frac{1}{2}} n) } @@ -92,14 +121,8 @@ Whittaker und Watson zeigen in \cite{parzyl:whittaker} eine Lösung }{ \Gamma\left(- {\textstyle \frac{1}{2}} n\right) } - M_{\frac{1}{2} n + \frac{1}{4}, \frac{1}{4}} \left(\frac{1}{2}z^2\right) + M_{\frac{1}{2} n + \frac{1}{4}, \frac{1}{4}} \left(\frac{1}{2}z^2\right). \end{equation} -welche die Differentialgleichung -\begin{equation} - \frac{d^2D_n(z)}{dz^2} + \left(n + \frac{1}{2} - \frac{1}{4} z^2\right)D_n(z) = 0 -\end{equation} -löst. - In \cite{parzyl:abramowitz-stegun} sind zwei Lösungen $U(a, z)$ und $V(a,z)$ \begin{align} U(a,z) &= @@ -115,11 +138,22 @@ mit Y_1 &= \frac{1}{\sqrt{\pi}} \frac{\Gamma\left({\textstyle \frac{1}{4} - {\textstyle \frac{1}{2}}a}\right)} - {2^{\frac{1}{2} a + \frac{1}{4}}} w_1\\ + {2^{\frac{1}{2} a + \frac{1}{4}}} + e^{-z^2/4} + {}_{1} F_{1} + \left({\textstyle \frac{1}{2}}a + {\textstyle \frac{1}{4}}, + {\textstyle \frac{1}{2}} ; + {\textstyle \frac{1}{2}}z^2\right) + \\ Y_2 &= \frac{1}{\sqrt{\pi}} \frac{\Gamma\left({\textstyle \frac{3}{4} - {\textstyle \frac{1}{2}}a}\right)} - {2^{\frac{1}{2} a - \frac{1}{4}}} w_2 + {2^{\frac{1}{2} a - \frac{1}{4}}} + z e^{-z^2/4} + {}_{1} F_{1} + \left({\textstyle \frac{1}{2}}a + {\textstyle \frac{3}{4}}, + {\textstyle \frac{3}{2}} ; + {\textstyle \frac{1}{2}}z^2\right) \end{align} der Differentialgleichung \begin{equation} @@ -132,7 +166,8 @@ ausgedrückt werden V(a,z) &= \frac{\Gamma \left({\textstyle \frac{1}{2}} + a\right)}{\pi} \left[\sin\left(\pi a\right) D_{-a-1/2}(z) + D_{-a-1/2}(-x)\right]. \end{align} -TODO Plot +In den Abbildungen \ref{parzyl:fig:dnz} und \ref{parzyl:fig:Vnz} sind +die Funktionen $D_a(z)$ und $V(a,z)$ mit verschiedenen Werten für $a$ abgebildet. \begin{figure} \centering \includegraphics[scale=0.3]{papers/parzyl/img/D_plot.png} -- cgit v1.2.1 From 9d52cc84df44e8479cafdd7b0d7f264aeb0c8a10 Mon Sep 17 00:00:00 2001 From: Fabian <@> Date: Wed, 17 Aug 2022 21:38:44 +0200 Subject: letzte Korrektur --- buch/papers/0f1/teil2.tex | 18 +++++++++--------- buch/papers/0f1/teil3.tex | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/buch/papers/0f1/teil2.tex b/buch/papers/0f1/teil2.tex index 64f8d83..fdcb0fc 100644 --- a/buch/papers/0f1/teil2.tex +++ b/buch/papers/0f1/teil2.tex @@ -41,13 +41,13 @@ a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{b_3}{a_3+\cdots}}}, in welchem $a_0, a_1,\dots,a_n$ und $b_1,b_2,\dots,b_n$ ganze Zahlen sind. \subsubsection{Rekursionsbeziehungen und Kettenbrüche} -Will man einen Kettenbruch für das Verhältnis $\frac{f_i(z)}{f_{i-1}(z)}$ finden, braucht man dazu eine Relation der analytischer Funktion $f_i(z)$. -Nimmt man die Gleichung \cite{0f1:wiki-fraction}: +Wenn es eine Relation analytischer Funktion $f_i(z)$ hat, dann gibt es einen Kettenbruch für das Verhältnis $\frac{f_i(z)}{f_{i-1}(z)}$ \cite{0f1:wiki-fraction}. +Nimmt man die Gleichung \begin{equation*} f_{i-1} - f_i = k_i z f_{i+1}, \end{equation*} wo $f_i$ analytische Funktionen sind und $i > 0$ ist, sowie $k_i$ konstant. -Ergibt sich folgender Zusammenhang: +Ergibt sich der Zusammenhang \begin{equation*} \cfrac{f_i}{f_{i-1}} = \cfrac{1}{1+k_iz\cfrac{f_{i+1}}{f_i}}. \end{equation*} @@ -55,7 +55,7 @@ Geht man einen Schritt weiter und nimmt für $g_i = \frac{f_i}{f_{i-1}}$ an, kom \begin{equation*} g_i = \cfrac{1}{1+k_izg_{i+1}}. \end{equation*} -Setzt man dies nun für $g_1$ in den Bruch ein, ergibt sich folgendes: +Setzt man dies nun für $g_1$ in den Bruch ein, ergibt sich \begin{equation*} g_1 = \cfrac{f_1}{f_0} = \cfrac{1}{1+k_izg_2} = \cfrac{1}{1+\cfrac{k_1z}{1+k_2zg_3}} = \cdots \end{equation*} @@ -76,19 +76,19 @@ kann durch Substitution bewiesen werden, dass \mathstrut_0F_1(;c-1;z) - \mathstrut_0F_1(;c;z) = \frac{z}{c(c-1)} \cdot \mathstrut_0F_1(;c+1;z) \end{equation*} eine Relation dazu ist. -Wenn man für $f_i$ und $k_i$ folgende Annahme trifft: +Wenn man für $f_i$ und $k_i$ die Annahme \begin{align*} f_i =& \mathstrut_0F_1(;c+i;z)\\ k_i =& \frac{1}{(c+i)(c+i-1)} \end{align*} -und in die Formel \eqref{0f1:math:rekursion:eq} einsetzt, erhält man: +trifft und in die Formel \eqref{0f1:math:rekursion:eq} einsetzt, erhält man: \begin{equation*} \cfrac{\mathstrut_0F_1(;c+1;z)}{\mathstrut_0F_1(;c;z)} = \cfrac{1}{1+\cfrac{\cfrac{z}{c(c+1)}}{1+\cfrac{\cfrac{z}{(c+1)(c+2)}}{1+\cfrac{\cfrac{z}{(c+2)(c+3)}}{\cdots}}}}. \end{equation*} \subsubsection{Algorithmus} Da mit obigen Formeln nur ein Verhältnis zwischen $ \frac{\mathstrut_0F_1(;c+1;z)}{\mathstrut_0F_1(;c;z)}$ berechnet wurde, braucht es weitere Relationen um $\mathstrut_0F_1(;c;z)$ zu erhalten. -So ergeben ähnliche Relationen nach Wolfram Alpha \cite{0f1:wolfram-0f1} folgender Kettenbruch +So ergeben ähnliche Relationen nach Wolfram Alpha \cite{0f1:wolfram-0f1} den Kettenbruch \begin{equation} \label{0f1:math:kettenbruch:0f1:eq} \mathstrut_0F_1(;c;z) = 1 + \cfrac{\cfrac{z}{c}}{1+\cfrac{-\cfrac{z}{2(c+1)}}{1+\cfrac{z}{2(c+1)}+\cfrac{-\cfrac{z}{3(c+2)}}{1+\cfrac{z}{5(c+4)} + \cdots}}}, @@ -112,7 +112,7 @@ lässt sich zu \cfrac{A_k}{B_k} = \cfrac{b_{k+1}}{a_{k+1} + \cfrac{p}{q}} = \frac{b_{k+1} \cdot q}{a_{k+1} \cdot q + p} \end{align*} umformen. -Dies lässt sich auch durch die folgende Matrizenschreibweise +Dies lässt sich auch durch die Matrizenschreibweise \begin{equation*} \begin{pmatrix} A_k\\ @@ -137,7 +137,7 @@ Wendet man dies nun auf den Kettenbruch in der Form \begin{equation*} \frac{A_k}{B_k} = a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{\cdots}{\cdots+\cfrac{b_{k-1}}{a_{k-1} + \cfrac{b_k}{a_k}}}}} \end{equation*} -an, ergibt sich folgende Matrixdarstellungen: +an, ergibt sich die Matrixdarstellungen: \begin{align*} \begin{pmatrix} diff --git a/buch/papers/0f1/teil3.tex b/buch/papers/0f1/teil3.tex index 2afc34b..147668a 100644 --- a/buch/papers/0f1/teil3.tex +++ b/buch/papers/0f1/teil3.tex @@ -15,9 +15,9 @@ Ebenso kann festgestellt werden, dass je grösser der Wert $z$ in $\mathstrut_0F \label{0f1:subsection:konvergenz}} Es zeigt sich in Abbildung \ref{0f1:ausblick:plot:airy:konvergenz}, dass nach drei Iterationen ($k = 3$) die Funktionen genaue Resultate im Bereich von $-2$ bis $2$ liefert. Ebenso kann festgestellt werden, dass der Kettenbruch schneller konvergiert und im positiven Bereich mit der Referenzfunktion $\operatorname{Ai}(x)$ übereinstimmt. Da die Rekursionsformel eine Abwandlung des Kettenbruches ist, verhalten sich die Funktionen in diesem Fall gleich. -Erst wenn mehrerer Iterationen gerechnet werden, ist wie Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, der Kettenbruch den anderen zwei Algorithmen bezüglich Konvergenz überlegen. Bei der Rekursionsformel muss beachtet werden, dass sie zwar erst nach 35 Approximationen gänzlich konvergiert, allerdings nach 27 Iterationen sich nicht mehr gross verändert. +Erst wenn mehrerer Iterationen gerechnet werden, ist wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:positiv} dargestellt, der Kettenbruch den anderen zwei Algorithmen bezüglich Konvergenz überlegen. Bei der Rekursionsformel muss beachtet werden, dass sie zwar erst nach 35 Approximationen gänzlich konvergiert, allerdings nach 27 Iterationen sich nicht mehr gross verändert. -Ist $z$ negativ wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:negativ}, führt dies zu aufgrund des Vorzeichens zu alternierenden Termen. So steigt bei allen Algorithmen zuerst die Differenz zum erwarteten Endwert. Erst nach genügend Iterationen sind die Terme so klein, dass sie das Endresultat nicht mehr signifikant beeinflussen. Während die Potenzreihe zusammen mit dem Kettenbruch nach 34 Approximationen konvergiert, braucht die Rekursionsformel noch zwei Iterationen mehr. +Ist $z$ negativ, wie in Abbildung \ref{0f1:ausblick:plot:konvergenz:negativ}, führt dies aufgrund des Vorzeichens zu alternierenden Termen. So steigt bei allen Algorithmen zuerst die Differenz zum erwarteten Endwert. Erst nach genügend Iterationen sind die Terme so klein, dass sie das Endresultat nicht mehr signifikant beeinflussen. Während die Potenzreihe zusammen mit dem Kettenbruch nach 34 Approximationen konvergiert, braucht die Rekursionsformel noch zwei Iterationen mehr. \subsection{Stabilität -- cgit v1.2.1 From 8faafd84edbd5dc53a693513d970fe5ab67d8b5c Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 17 Aug 2022 23:20:35 +0200 Subject: Tim ist kein Zeichner --- buch/papers/kreismembran/Makefile | 4 +- buch/papers/kreismembran/images/TikzSaite.pdf | Bin 0 -> 17625 bytes buch/papers/kreismembran/images/TikzSaite.tex | 57 ++++++++++++++++++++++++++ buch/papers/kreismembran/teil0.tex | 3 +- 4 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 buch/papers/kreismembran/images/TikzSaite.pdf create mode 100644 buch/papers/kreismembran/images/TikzSaite.tex diff --git a/buch/papers/kreismembran/Makefile b/buch/papers/kreismembran/Makefile index ce3c89f..a13f2cf 100644 --- a/buch/papers/kreismembran/Makefile +++ b/buch/papers/kreismembran/Makefile @@ -4,6 +4,6 @@ # (c) 2020 Prof Dr Andreas Mueller # -images: - @echo "no images to be created in kreismembran" +images/TikzSaite.pdf: images/TikzSaite.tex + cd images && pdflatex TikzSaite.tex diff --git a/buch/papers/kreismembran/images/TikzSaite.pdf b/buch/papers/kreismembran/images/TikzSaite.pdf new file mode 100644 index 0000000..f95ceb9 Binary files /dev/null and b/buch/papers/kreismembran/images/TikzSaite.pdf differ diff --git a/buch/papers/kreismembran/images/TikzSaite.tex b/buch/papers/kreismembran/images/TikzSaite.tex new file mode 100644 index 0000000..bf3d8f6 --- /dev/null +++ b/buch/papers/kreismembran/images/TikzSaite.tex @@ -0,0 +1,57 @@ +% vim: ts=2 sw=2 et : +\documentclass[tikz, border=2mm]{standalone} + +\usepackage{times} +\usepackage{txfonts} + +\begin{document} + \begin{tikzpicture}[ + axis/.style = {very thick, -latex}, + axis tick/.style = { + draw, draw = black, fill = black, rectangle, + inner sep = 0pt, + minimum height = 2mm, + minimum width = 1pt, + }, + string/.style = { + ultra thick, draw = black, + }, + string end/.style = { + string, circle, fill = gray, + inner sep = 0pt, minimum size = 1mm, + }, + force/.style = { + very thick, draw = gray, -latex, + }, + ] + + % axes + \draw[axis] (0, 0) -- (8cm, 0) node[right] {$x$}; + \draw[axis] (0, 0) -- (0, 5cm) node[above] {$u(x, t)$}; + + % axes ticks + \node[axis tick, label = {-90:$x_0$}] at (2cm, 0) {}; + \node[axis tick, label = {-90:$x_0 + dx$}] at (6cm, 0) {}; + + % string + \coordinate (A) at (2cm, 2cm); + \coordinate (B) at (6cm, 4cm); + + \draw[string] (A) to[out = 40, in = 200] (B); + + \draw[force] (A) -- ++(220:15mm) node[gray, below right] {$T_1$}; + \draw[force] (B) -- ++(20:15mm) node[gray, above left] {$T_2$}; + + \draw[dashed, gray, thick] (A) -- ++(-15mm, 0); + \draw[gray, thick] (A) ++ (-7mm,0) arc (180:220:7mm) + node[midway, left] {$\alpha$}; + + \draw[dashed, gray, thick] (B) -- ++(15mm, 0); + \draw[gray, thick] (B) ++ (7mm,0) arc (0:20:7mm) + node[pos = 0, below] {$\beta$}; + + \node[string end, label={110:$P_1$}] at (A) {}; + \node[string end, label={110:$P_2$}] at (B) {}; + + \end{tikzpicture} +\end{document} diff --git a/buch/papers/kreismembran/teil0.tex b/buch/papers/kreismembran/teil0.tex index 27c6f0f..e962aab 100644 --- a/buch/papers/kreismembran/teil0.tex +++ b/buch/papers/kreismembran/teil0.tex @@ -42,7 +42,8 @@ Die Verbindung zwischen Membran und Saite ist intuitiv ersichtlich, stellt man s \begin{figure} \begin{center} - \includegraphics[width=5cm,angle=-90]{papers/kreismembran/images/Saite.pdf} + % \includegraphics[width=5cm,angle=-90]{papers/kreismembran/images/Saite.pdf} + \includegraphics[]{papers/kreismembran/images/TikzSaite.pdf} \caption{Infinitesimales Stück einer Saite} \label{kreismembran:im:Saite} \end{center} -- cgit v1.2.1 From a8b82aafff82dbff739714d7009419a0015eebcf Mon Sep 17 00:00:00 2001 From: Alain Date: Wed, 17 Aug 2022 23:41:00 +0200 Subject: =?UTF-8?q?n=C3=B6d=20ganz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/parzyl/img/D_plot.png | Bin 712446 -> 704810 bytes buch/papers/parzyl/teil1.tex | 16 +++++++++------- buch/papers/parzyl/teil3.tex | 39 ++++++++++++++++++++++---------------- 3 files changed, 32 insertions(+), 23 deletions(-) diff --git a/buch/papers/parzyl/img/D_plot.png b/buch/papers/parzyl/img/D_plot.png index f76e35b..94b483b 100644 Binary files a/buch/papers/parzyl/img/D_plot.png and b/buch/papers/parzyl/img/D_plot.png differ diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index a4253b8..c5ece66 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -112,7 +112,7 @@ Mit $M_{k,m}(z)$ geschrieben resultiert D_n(z) = \frac{ \Gamma \left( {\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{4}} z^{-\frac{1}{2}} }{ - \Gamma \left( {\textstyle \frac{1}{2}} \right) - {\textstyle \frac{1}{2}} n) + \Gamma \left( {\textstyle \frac{1}{2}} - {\textstyle \frac{1}{2}} n \right) } M_{\frac{1}{2} n + \frac{1}{4}, - \frac{1}{4}} \left(\frac{1}{2}z^2\right) + @@ -127,11 +127,14 @@ In \cite{parzyl:abramowitz-stegun} sind zwei Lösungen $U(a, z)$ und $V(a,z)$ \begin{align} U(a,z) &= \cos\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_1 - - \sin\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_2 \\ + - \sin\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_2 + \label{parzyl:eq:Uaz} + \\ V(a,z) &= \frac{1}{\Gamma \left({\textstyle \frac{1}{2} - a}\right)} \left\{ \sin\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_1 + \cos\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_2 \right\} + \label{parzyl:eq:Vaz} \end{align} mit \begin{align} @@ -143,9 +146,8 @@ mit {}_{1} F_{1} \left({\textstyle \frac{1}{2}}a + {\textstyle \frac{1}{4}}, {\textstyle \frac{1}{2}} ; - {\textstyle \frac{1}{2}}z^2\right) - \\ - Y_2 &= \frac{1}{\sqrt{\pi}} + {\textstyle \frac{1}{2}}z^2\right)\\ + Y_2 &= \frac{1}{\sqrt{\pi}} \frac{\Gamma\left({\textstyle \frac{3}{4} - {\textstyle \frac{1}{2}}a}\right)} {2^{\frac{1}{2} a - \frac{1}{4}}} @@ -167,11 +169,11 @@ ausgedrückt werden \left[\sin\left(\pi a\right) D_{-a-1/2}(z) + D_{-a-1/2}(-x)\right]. \end{align} In den Abbildungen \ref{parzyl:fig:dnz} und \ref{parzyl:fig:Vnz} sind -die Funktionen $D_a(z)$ und $V(a,z)$ mit verschiedenen Werten für $a$ abgebildet. +die Funktionen $D_n(z)$ und $V(a,z)$ mit verschiedenen Werten für $a$ abgebildet. \begin{figure} \centering \includegraphics[scale=0.3]{papers/parzyl/img/D_plot.png} - \caption{$D_a(z)$ mit unterschiedlichen Werten für $a$.} + \caption{$D_n(z)$ mit unterschiedlichen Werten für $n$.} \label{parzyl:fig:dnz} \end{figure} \begin{figure} diff --git a/buch/papers/parzyl/teil3.tex b/buch/papers/parzyl/teil3.tex index 972fd33..78950e1 100644 --- a/buch/papers/parzyl/teil3.tex +++ b/buch/papers/parzyl/teil3.tex @@ -9,41 +9,45 @@ \subsection{Potenzreihenentwicklung \label{parzyl:potenz}} -Die parabolischen Zylinderfunktionen, welche in Gleichung \ref{parzyl:eq:solution_dgl} gegeben sind, können auch als Potenzreihen geschrieben werden +%Die parabolischen Zylinderfunktionen, welche in Gleichung \ref{parzyl:eq:solution_dgl} gegeben sind, +%können auch als Potenzreihen geschrieben werden +Die parabolischen Zylinderfunktionen können auch als Potenzreihen geschrieben werden. +Im folgenden Abschnitt werden die Terme welche nur von $n$ oder $a$ abhängig sind vernachlässigt. +Die parabolischen Zylinderfunktionen sind Linearkombinationen aus einem geraden Teil $w_1(\alpha, z)$ +und einem ungeraden Teil $w_2(\alpha, z)$, welche als Potenzreihe \begin{align} - w_1(k,z) + w_1(\alpha,z) &= e^{-z^2/4} \, {}_{1} F_{1} ( - {\textstyle \frac{1}{4}} - - k, {\textstyle \frac{1}{2}} ; {\textstyle \frac{1}{2}}z^2) + \alpha, {\textstyle \frac{1}{2}} ; {\textstyle \frac{1}{2}}z^2) = e^{-\frac{z^2}{4}} \sum^{\infty}_{n=0} - \frac{\left ( \frac{1}{4} - k \right )_{n}}{\left ( \frac{1}{2}\right )_{n}} + \frac{\left ( \alpha \right )_{n}}{\left ( \frac{1}{2}\right )_{n}} \frac{\left ( \frac{1}{2} z^2\right )^n}{n!} \\ &= e^{-\frac{z^2}{4}} \left ( 1 + - \left ( \frac{1}{2} - 2k \right )\frac{z^2}{2!} + \left ( 2\alpha \right )\frac{z^2}{2!} + - \left ( \frac{1}{2} - 2k \right )\left ( \frac{5}{2} - 2k \right )\frac{z^4}{4!} + \left ( 2\alpha \right )\left ( 2 + 2\alpha \right )\frac{z^4}{4!} + \dots \right ) \end{align} und \begin{align} - w_2(k,z) + w_2(\alpha,z) &= ze^{-z^2/4} \, {}_{1} F_{1} ( - {\textstyle \frac{3}{4}} - - k, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2) + {\textstyle \frac{1}{2}} + + \alpha, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2) = ze^{-\frac{z^2}{4}} \sum^{\infty}_{n=0} @@ -54,20 +58,23 @@ und \left ( z + - \left ( \frac{3}{2} - 2k \right )\frac{z^3}{3!} + \left ( 1 + 2\alpha \right )\frac{z^3}{3!} + - \left ( \frac{3}{2} - 2k \right )\left ( \frac{7}{2} - 2k \right )\frac{z^5}{5!} + \left ( 1 + 2\alpha \right )\left ( 3 + 2\alpha \right )\frac{z^5}{5!} + \dots \right ). \end{align} -Bei den Potenzreihen sieht man gut, dass die Ordnung des Polynoms im generellen ins unendliche geht. Es gibt allerdings die Möglichkeit für bestimmte k das die Terme in der Klammer gleich null werden und das Polynom somit eine endliche Ordnung $n$ hat. Dies geschieht bei $w_1(k,z)$ falls +sind. +Bei den Potenzreihen sieht man gut, dass die Ordnung des Polynoms im generellen ins unendliche geht. +Es gibt allerdings die Möglichkeit für bestimmte $\alpha$ das die Terme in der Klammer gleich null werden +und das Polynom somit eine endliche Ordnung $n$ hat. Dies geschieht bei $w_1(\alpha,z)$ falls \begin{equation} - k = \frac{1}{4} + n \qquad n \in \mathbb{N}_0 + \alpha = -n \qquad n \in \mathbb{N}_0 \end{equation} -und bei $w_2(k,z)$ falls +und bei $w_2(\alpha,z)$ falls \begin{equation} - k = \frac{3}{4} + n \qquad n \in \mathbb{N}_0. + \alpha = -\frac{1}{2} - n \qquad n \in \mathbb{N}_0. \end{equation} \subsection{Ableitung} -- cgit v1.2.1 From a5bf03e77ac18012b8608ba6b3c46c301d66528c Mon Sep 17 00:00:00 2001 From: Alain Date: Thu, 18 Aug 2022 09:47:52 +0200 Subject: ableitung --- buch/papers/parzyl/teil3.tex | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/buch/papers/parzyl/teil3.tex b/buch/papers/parzyl/teil3.tex index 78950e1..b68229f 100644 --- a/buch/papers/parzyl/teil3.tex +++ b/buch/papers/parzyl/teil3.tex @@ -78,13 +78,24 @@ und bei $w_2(\alpha,z)$ falls \end{equation} \subsection{Ableitung} -Es kann gezeigt werden, dass die Ableitungen $\frac{\partial w_1(z,k)}{\partial z}$ und $\frac{\partial w_2(z,k)}{\partial z}$ einen Zusammenhang zwischen $w_1(z,k)$ und $w_2(z,k)$ zeigen. Die Ableitung von $w_1(z,k)$ nach $z$ kann über die Produktregel berechnet werden und ist gegeben als +Die Ableitungen $\frac{\partial w_1(z,k)}{\partial z}$ und $\frac{\partial w_2(z,k)}{\partial z}$ +können mit den Eigenschaften der hypergeometrischen Funktionen in Abschnitt +\ref{buch:rekursion:hypergeometrisch:stammableitung} berechnet werden. +Zusammen mit der Produktregel ergeben sich die Ableitungen \begin{equation} - \frac{\partial w_1(z,k)}{\partial z} = \left (\frac{1}{2} - 2k \right ) w_2(z, k -\frac{1}{2}) - \frac{1}{2} z w_1(z,k), + \frac{\partial w_1(\alpha,z)}{\partial z} = 2\alpha w_2(\alpha + \frac{1}{2}, z) - \frac{1}{2} z w_1(\alpha, z), \end{equation} -und die Ableitung von $w_2(z,k)$ als +und +%\begin{equation} +% \frac{\partial w_2(z,k)}{\partial z} = w_1(z, k -\frac{1}{2}) - \frac{1}{2} z w_2(z,k). +%\end{equation} \begin{equation} - \frac{\partial w_2(z,k)}{\partial z} = w_1(z, k -\frac{1}{2}) - \frac{1}{2} z w_2(z,k). + \frac{\partial w_2(\alpha,z)}{\partial z} = e^{-z^2/4} \left( + z^{-1} w_2(\alpha, z) - \frac{z}{2} w_2(\alpha, z) + 2 z^2 \left(\frac{\alpha + 1}{3}\right) + {}_{1} F_{1} ( + {\textstyle \frac{3}{2}} + + \alpha, {\textstyle \frac{5}{2}} ; {\textstyle \frac{1}{2}}z^2) + \right) \end{equation} -Über diese Eigenschaft können einfach weitere Ableitungen berechnet werden. +Nach dem selben Vorgehen können weitere Ableitungen berechnet werden. -- cgit v1.2.1 From 7cdb2904f851c326a4fd72b58491f3b8199620df Mon Sep 17 00:00:00 2001 From: Alain Date: Thu, 18 Aug 2022 11:46:08 +0200 Subject: verbesserungen --- buch/papers/parzyl/img/D_plot.png | Bin 704810 -> 746370 bytes buch/papers/parzyl/img/v_plot.png | Bin 637451 -> 648430 bytes buch/papers/parzyl/teil0.tex | 32 +++++++++-------- buch/papers/parzyl/teil1.tex | 74 +++++++++++++++++++------------------- buch/papers/parzyl/teil2.tex | 29 +++++++-------- buch/papers/parzyl/teil3.tex | 61 ++++++++++++++++--------------- 6 files changed, 102 insertions(+), 94 deletions(-) diff --git a/buch/papers/parzyl/img/D_plot.png b/buch/papers/parzyl/img/D_plot.png index 94b483b..6c61eea 100644 Binary files a/buch/papers/parzyl/img/D_plot.png and b/buch/papers/parzyl/img/D_plot.png differ diff --git a/buch/papers/parzyl/img/v_plot.png b/buch/papers/parzyl/img/v_plot.png index b8c803e..7cd5455 100644 Binary files a/buch/papers/parzyl/img/v_plot.png and b/buch/papers/parzyl/img/v_plot.png differ diff --git a/buch/papers/parzyl/teil0.tex b/buch/papers/parzyl/teil0.tex index f24a5c1..8be936d 100644 --- a/buch/papers/parzyl/teil0.tex +++ b/buch/papers/parzyl/teil0.tex @@ -9,15 +9,18 @@ %Mit ihr lässt sich zum Beispiel das elektrische Feld in einem ladungsfreien Raum bestimmen. %In diesem Kapitel wird die Lösung der Laplace-Gleichung im %parabolischen Zylinderkoordinatensystem genauer untersucht. -Die Helmholtz-Gleichung ist eine wichtige Gleichung in der Physik. Mit ihr lässt sich zum Beispiel das Verhalten von elektromagnetischen Wellen beschreiben. -In diesem Kapitel wird die Lösung der Helmholtz-Gleichung im parabolischen Zylinderkoordinatensystem, die parabolischen Zylinderfunktionen, genauer untersucht. +Die Helmholtz-Gleichung ist eine wichtige Gleichung in der Physik. +Mit ihr lässt sich zum Beispiel das Verhalten von elektromagnetischen Wellen beschreiben. +In diesem Kapitel werden die Lösungen der Helmholtz-Gleichung im parabolischen Zylinderkoordinatensystem, +die parabolischen Zylinderfunktionen, genauer untersucht. \subsection{Helmholtz-Gleichung} Die partielle Differentialgleichung \begin{equation} - \nabla f = \lambda f + \Delta f = \lambda f \end{equation} -ist als Helmholtz-Gleichung bekannt und beschreibt das Eigenwert Problem für den Laplace-Operator. Sie ist eine der Gleichungen welche auftritt wenn die Wellengleichung +ist als Helmholtz-Gleichung bekannt und beschreibt das Eigenwert Problem für den Laplace-Operator. +Sie ist eine der Gleichungen welche auftritt wenn die Wellengleichung \begin{equation} \left ( \nabla^2 - \frac{1}{c^2}\frac{\partial^2}{\partial t^2} \right ) u(\textbf{r},t) = @@ -27,7 +30,8 @@ mit Hilfe von Separation \begin{equation} u(\textbf{r},t) = A(\textbf{r})T(t) \end{equation} -in zwei Differentialgleichungen aufgeteilt wird. Die Helmholtz-Gleichung ist der Teil, welcher Zeit unabhängig ist +in zwei Differentialgleichungen aufgeteilt wird. Die Helmholtz-Gleichung ist der Teil, +welcher zeitunabhängig ist \begin{equation} \nabla^2 A(\textbf{r}) = \lambda A(\textbf{r}). \end{equation} @@ -65,7 +69,8 @@ in zwei Differentialgleichungen aufgeteilt wird. Die Helmholtz-Gleichung ist der %An ladungsfreien Stellen ist der rechte Teil der Gleichung $0$. \subsection{Parabolische Zylinderkoordinaten \label{parzyl:subsection:finibus}} -Im parabolischen Zylinderkoordinatensystem \cite{parzyl:coordinates} bilden parabolische Zylinder die Koordinatenflächen. +Das parabolischen Zylinderkoordinatensystem \cite{parzyl:coordinates} ist ein krummliniges Koordinatensystem, +bei dem parabolische Zylinder die Koordinatenflächen bilden. Die Koordinate $(\sigma, \tau, z)$ sind in kartesischen Koordinaten ausgedrückt mit \begin{align} x & = \sigma \tau \\ @@ -97,15 +102,15 @@ Ebene gezogen werden. Um in diesem Koordinatensystem integrieren und differenzieren zu können braucht es die Skalierungsfaktoren $h_{\tau}$, $h_{\sigma}$ und $h_{z}$. -Wird eine infinitessimal kleine Distanz $ds$ zwischen zwei Punkten betrachtet -kann dies im kartesischen Koordinatensystem mit +Eine infinitessimal kleine Distanz $ds$ zwischen zwei Punkten +kann im kartesischen Koordinatensystem mit \begin{equation} \left(ds\right)^2 = \left(dx\right)^2 + \left(dy\right)^2 + \left(dz\right)^2 \label{parzyl:eq:ds} \end{equation} ausgedrückt werden. -Die Skalierungsfaktoren werden so bestimmt, dass +Die Skalierungsfaktoren werden in einem orthogonalen Koordinatensystem so bestimmt, dass \begin{equation} \left(ds\right)^2 = \left(h_{\sigma}d\sigma\right)^2 + \left(h_{\tau}d\tau\right)^2 + \left(h_z dz\right)^2 @@ -145,16 +150,16 @@ Daraus ergeben sich die Skalierungsfaktoren \end{align} \subsection{Differentialgleichung} Möchte man eine Differentialgleichung im parabolischen -Zylinderkoordinatensystem aufstellen müssen die Skalierungsfaktoren +Zylinderkoordinatensystem aufstellen, müssen die Skalierungsfaktoren mitgerechnet werden. -Der Laplace Operator ist dadurch gegeben als +Der Laplace Operator wird dadurch zu \begin{equation} \Delta f = \frac{1}{\sigma^2 + \tau^2} \left( \frac{\partial^2 f}{\partial \sigma ^2} + \frac{\partial^2 f}{\partial \tau ^2} \right) - + \frac{\partial^2 f}{\partial z}. + + \frac{\partial^2 f}{\partial z^2}. \label{parzyl:eq:laplaceInParZylCor} \end{equation} \subsubsection{Lösung der Helmholtz-Gleichung im parabolischen Zylinderfunktion} @@ -201,8 +206,7 @@ Diese partielle Differentialgleichung kann mit Hilfe von Separation gelöst werd \begin{equation} f(\sigma,\tau,z) = g(\sigma)h(\tau)i(z) \end{equation} -gesetzt. -Was dann schlussendlich zu den Differentialgleichungen +gesetzt, was dann schlussendlich zu den Differentialgleichungen \begin{equation}\label{parzyl:sep_dgl_1} g''(\sigma) - diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index c5ece66..13d8109 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -27,50 +27,50 @@ mit Hilfe der Whittaker Gleichung gelöst. \begin{definition} Die Funktionen \begin{equation*} - M_{k,m}(z) = - e^{-z/2} z^{m+1/2} \, + M_{k,m}(x) = + e^{-x/2} x^{m+1/2} \, {}_{1} F_{1} ( {\textstyle \frac{1}{2}} - + m - k, 1 + 2m; z) + + m - k, 1 + 2m; x) \qquad x \in \mathbb{C} \end{equation*} und \begin{equation*} - W_{k,m}(z) = \frac{ + W_{k,m}(x) = \frac{ \Gamma \left( -2m\right) }{ \Gamma \left( {\textstyle \frac{1}{2}} - m - k\right) } - M_{-k, m} \left(z\right) + M_{-k, m} \left(x\right) + \frac{ \Gamma \left( 2m\right) }{ \Gamma \left( {\textstyle \frac{1}{2}} + m - k\right) } - M_{k, -m} \left(z\right) + M_{k, -m} \left(x\right) \end{equation*} - gehören zu den Whittaker Funktionen und sind die Lösungen + gehören zu den Whittaker Funktionen und sind Lösungen von der Whittaker Differentialgleichung \begin{equation} - \frac{d^2W}{d z^2} + - \left(-\frac{1}{4} + \frac{k}{z} + \frac{\frac{1}{4} - m^2}{z^2} \right) W = 0. + \frac{d^2W}{d x^2} + + \biggl( -\frac{1}{4} + \frac{k}{x} + \frac{\frac{1}{4} - m^2}{x^2} \biggr) W = 0. \label{parzyl:eq:whitDiffEq} \end{equation} \end{definition} Es wird nun die Differentialgleichung bestimmt, welche \begin{equation} - w = z^{-1/2} W_{k,-1/4} \left({\textstyle \frac{1}{2}} z^2\right) + w = x^{-1/2} W_{k,-1/4} \left({\textstyle \frac{1}{2}} x^2\right) \end{equation} als Lösung hat. Dafür wird $w$ in \eqref{parzyl:eq:whitDiffEq} eingesetzt, woraus \begin{equation} - \frac{d^2 w}{dz^2} - \left(\frac{1}{4} z^2 - 2k\right) w = 0 + \frac{d^2 w}{dx^2} - \left(\frac{1}{4} x^2 - 2k\right) w = 0 \label{parzyl:eq:weberDiffEq} \end{equation} resultiert. Diese Differentialgleichung ist dieselbe wie -\eqref{parzyl:sep_dgl_2} und \eqref{parzyl:sep_dgl_2}, welche somit +\eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2}, welche somit $w$ als Lösung haben. %Da es sich um eine Differentialgleichung zweiter Ordnung handelt, hat sie nicht nur %eine sondern zwei Lösungen. @@ -96,41 +96,41 @@ $w$ als Lösung haben. %\end{align} In der Literatur gibt es verschiedene Standartlösungen für -\eqref{parzyl:eq:weberDiffEq} präsentiert, wobei die Differentialgleichung jeweils +\eqref{parzyl:eq:weberDiffEq}, wobei die Differentialgleichung jeweils unterschiedlich geschrieben wird. Whittaker und Watson zeigen in \cite{parzyl:whittaker} die Lösung \begin{equation} - D_n(z) = 2^{\frac{1}{2}n + \frac{1}{2}} z^{-\frac{1}{2}} W_{n/2 + 1/4, -1/4}\left(\frac{1}{2}z^2\right) + D_n(x) = 2^{\frac{1}{2}n + \frac{1}{2}} x^{-\frac{1}{2}} W_{n/2 + 1/4, -1/4}\left(\frac{1}{2}x^2\right), \end{equation} welche die Differentialgleichung \begin{equation} - \frac{d^2D_n(z)}{dz^2} + \left(n + \frac{1}{2} - \frac{1}{4} z^2\right)D_n(z) = 0 + \frac{d^2D_n(x)}{dx^2} + \left(n + \frac{1}{2} - \frac{1}{4} x^2\right)D_n(x) = 0 \end{equation} löst. -Mit $M_{k,m}(z)$ geschrieben resultiert +Mit $M_{k,m}(x)$ geschrieben resultiert \begin{equation} - D_n(z) = \frac{ - \Gamma \left( {\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{4}} z^{-\frac{1}{2}} + D_n(x) = \frac{ + \Gamma \left( {\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{4}} x^{-\frac{1}{2}} }{ \Gamma \left( {\textstyle \frac{1}{2}} - {\textstyle \frac{1}{2}} n \right) } - M_{\frac{1}{2} n + \frac{1}{4}, - \frac{1}{4}} \left(\frac{1}{2}z^2\right) + M_{\frac{1}{2} n + \frac{1}{4}, - \frac{1}{4}} \left(\frac{1}{2}x^2\right) + \frac{ - \Gamma\left(-{\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{4}} z^{-\frac{1}{2}} + \Gamma\left(-{\textstyle \frac{1}{2}}\right) 2^{\frac{1}{2}n + \frac{1}{4}} x^{-\frac{1}{2}} }{ \Gamma\left(- {\textstyle \frac{1}{2}} n\right) } - M_{\frac{1}{2} n + \frac{1}{4}, \frac{1}{4}} \left(\frac{1}{2}z^2\right). + M_{\frac{1}{2} n + \frac{1}{4}, \frac{1}{4}} \left(\frac{1}{2}x^2\right). \end{equation} -In \cite{parzyl:abramowitz-stegun} sind zwei Lösungen $U(a, z)$ und $V(a,z)$ +In \cite{parzyl:abramowitz-stegun} sind zwei Lösungen $U(a, x)$ und $V(a,x)$ \begin{align} - U(a,z) &= + U(a,x) &= \cos\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_1 - \sin\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_2 \label{parzyl:eq:Uaz} \\ - V(a,z) &= \frac{1}{\Gamma \left({\textstyle \frac{1}{2} - a}\right)} \left\{ + V(a,x) &= \frac{1}{\Gamma \left({\textstyle \frac{1}{2} - a}\right)} \left\{ \sin\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_1 + \cos\left[\pi \left({\textstyle \frac{1}{4}} + {\textstyle \frac{1}{2}} a\right)\right] Y_2 \right\} @@ -142,43 +142,43 @@ mit \frac{\Gamma\left({\textstyle \frac{1}{4} - {\textstyle \frac{1}{2}}a}\right)} {2^{\frac{1}{2} a + \frac{1}{4}}} - e^{-z^2/4} + e^{-x^2/4} {}_{1} F_{1} \left({\textstyle \frac{1}{2}}a + {\textstyle \frac{1}{4}}, {\textstyle \frac{1}{2}} ; - {\textstyle \frac{1}{2}}z^2\right)\\ + {\textstyle \frac{1}{2}}x^2\right)\\ Y_2 &= \frac{1}{\sqrt{\pi}} \frac{\Gamma\left({\textstyle \frac{3}{4} - {\textstyle \frac{1}{2}}a}\right)} {2^{\frac{1}{2} a - \frac{1}{4}}} - z e^{-z^2/4} + x e^{-x^2/4} {}_{1} F_{1} \left({\textstyle \frac{1}{2}}a + {\textstyle \frac{3}{4}}, {\textstyle \frac{3}{2}} ; - {\textstyle \frac{1}{2}}z^2\right) + {\textstyle \frac{1}{2}}x^2\right) \end{align} der Differentialgleichung \begin{equation} - \frac{d^2 y}{d z^2} - \left(\frac{1}{4} z^2 + a\right) y = 0 + \frac{d^2 y}{d x^2} - \left(\frac{1}{4} x^2 + a\right) y = 0 \end{equation} beschrieben. Die Lösungen $U(a,z)$ und $V(a, z)$ können auch mit $D_n(z)$ ausgedrückt werden \begin{align} - U(a,z) &= D_{-a-1/2}(z) \\ - V(a,z) &= \frac{\Gamma \left({\textstyle \frac{1}{2}} + a\right)}{\pi} - \left[\sin\left(\pi a\right) D_{-a-1/2}(z) + D_{-a-1/2}(-x)\right]. + U(a,x) &= D_{-a-1/2}(x) \\ + V(a,x) &= \frac{\Gamma \left({\textstyle \frac{1}{2}} + a\right)}{\pi} + \left[\sin\left(\pi a\right) D_{-a-1/2}(x) + D_{-a-1/2}(-x)\right]. \end{align} In den Abbildungen \ref{parzyl:fig:dnz} und \ref{parzyl:fig:Vnz} sind -die Funktionen $D_n(z)$ und $V(a,z)$ mit verschiedenen Werten für $a$ abgebildet. +die Funktionen $D_n(x)$ und $V(a,x)$ mit verschiedenen Werten für $a$ abgebildet. \begin{figure} \centering - \includegraphics[scale=0.3]{papers/parzyl/img/D_plot.png} - \caption{$D_n(z)$ mit unterschiedlichen Werten für $n$.} + \includegraphics[scale=0.35]{papers/parzyl/img/D_plot.png} + \caption{$D_n(x)$ mit unterschiedlichen Werten für $n$.} \label{parzyl:fig:dnz} \end{figure} \begin{figure} \centering - \includegraphics[scale=0.3]{papers/parzyl/img/v_plot.png} - \caption{$V(a,z)$ mit unterschiedlichen Werten für $a$.} + \includegraphics[scale=0.35]{papers/parzyl/img/v_plot.png} + \caption{$V(a,x)$ mit unterschiedlichen Werten für $a$.} \label{parzyl:fig:Vnz} \end{figure} \ No newline at end of file diff --git a/buch/papers/parzyl/teil2.tex b/buch/papers/parzyl/teil2.tex index 4af6860..573432a 100644 --- a/buch/papers/parzyl/teil2.tex +++ b/buch/papers/parzyl/teil2.tex @@ -19,7 +19,7 @@ Jede komplexe Funktion $F(z)$ kann geschrieben werden als \begin{equation} F(s) = U(x,y) + iV(x,y) \qquad s \in \mathbb{C}; x,y \in \mathbb{R}. \end{equation} -Dabei muss gelten, falls die Funktion differenzierbar ist, dass +Dabei müssen, falls die Funktion differenzierbar ist, die Cauchy-Riemann Differentialgleichungen \begin{equation} \frac{\partial U(x,y)}{\partial x} = @@ -27,8 +27,9 @@ Dabei muss gelten, falls die Funktion differenzierbar ist, dass \qquad \frac{\partial V(x,y)}{\partial x} = - -\frac{\partial U(x,y)}{\partial y}. + -\frac{\partial U(x,y)}{\partial y} \end{equation} +gelten. Aus dieser Bedingung folgt \begin{equation} \label{parzyl_e_feld_zweite_ab} @@ -53,7 +54,7 @@ Der Zusammenhang zum elektrischen Feld ist jetzt, dass das Potential an einem qu \begin{equation} \nabla^2\phi(x,y) = 0. \end{equation} -Dies ist eine Bedingung welche differenzierbare Funktionen, wie in Gleichung \ref{parzyl_e_feld_zweite_ab} gezeigt wird, bereits besitzen. +Dies ist eine Bedingung welche differenzierbare Funktionen, wie in Gleichung \eqref{parzyl_e_feld_zweite_ab} gezeigt wird, bereits besitzen. Nun kann zum Beispiel $U(x,y)$ als das Potential angeschaut werden \begin{equation} \phi(x,y) = U(x,y). @@ -62,7 +63,8 @@ Orthogonal zum Potential ist das elektrische Feld \begin{equation} E(x,y) = V(x,y). \end{equation} -Um nun zu den parabolische Zylinderkoordinaten zu gelangen muss nur noch eine geeignete komplexe Funktion $F(s)$ gefunden werden, +Um nun zu den parabolische Zylinderkoordinaten zu gelangen muss nur noch eine geeignete +komplexe Funktion $F(s)$ gefunden werden, welche eine semi-infinite Platte beschreiben kann. Die gesuchte Funktion in diesem Fall ist \begin{equation} @@ -81,23 +83,22 @@ Dies kann umgeformt werden zu i\underbrace{\sqrt{\frac{\sqrt{x^2+y^2} - x}{2}}}_{V(x,y)} . \end{equation} -Die Äquipotentialflächen können nun betrachtet werden, indem man die Funktion welche das Potential beschreibt gleich eine Konstante setzt, +Die Äquipotentialflächen können nun betrachtet werden, +indem man die Funktion, welche das Potential beschreibt, gleich eine Konstante setzt, \begin{equation} - \sigma = U(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}, + \sigma = U(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}. \end{equation} -und die Flächen mit der gleichen elektrischen Feldstärke können als +Die Flächen mit der gleichen elektrischen Feldstärke können als \begin{equation} \tau = V(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} - x}{2}} \end{equation} -beschrieben werden. Diese zwei Gleichungen zeigen nun wie man vom kartesischen Koordinatensystem ins parabolische Zylinderkoordinatensystem kommt. Werden diese Formeln nun nach x und y aufgelöst so beschreibe sie, wie man aus dem parabolischen Zylinderkoordinatensystem zurück ins kartesische rechnen kann +beschrieben werden. Diese zwei Gleichungen zeigen nun, wie man vom +kartesischen Koordinatensystem ins parabolische Zylinderkoordinatensystem kommt. +Werden diese Formeln nun nach $x$ und $y$ aufgelöst \begin{equation} x = \sigma \tau, \end{equation} \begin{equation} - y = \frac{1}{2}\left ( \tau^2 - \sigma^2 \right ) + y = \frac{1}{2}\left ( \tau^2 - \sigma^2 \right ), \end{equation} - - - - - +so beschreibe sie, wie man aus dem parabolischen Zylinderkoordinatensystem zurück ins kartesische rechnen kann. \ No newline at end of file diff --git a/buch/papers/parzyl/teil3.tex b/buch/papers/parzyl/teil3.tex index b68229f..166eebf 100644 --- a/buch/papers/parzyl/teil3.tex +++ b/buch/papers/parzyl/teil3.tex @@ -13,88 +13,91 @@ %können auch als Potenzreihen geschrieben werden Die parabolischen Zylinderfunktionen können auch als Potenzreihen geschrieben werden. Im folgenden Abschnitt werden die Terme welche nur von $n$ oder $a$ abhängig sind vernachlässigt. -Die parabolischen Zylinderfunktionen sind Linearkombinationen aus einem geraden Teil $w_1(\alpha, z)$ -und einem ungeraden Teil $w_2(\alpha, z)$, welche als Potenzreihe +Die parabolischen Zylinderfunktionen sind Linearkombinationen aus einem geraden Teil $w_1(\alpha, x)$ +und einem ungeraden Teil $w_2(\alpha, x)$, welche als Potenzreihe \begin{align} - w_1(\alpha,z) + w_1(\alpha,x) &= - e^{-z^2/4} \, + e^{-x^2/4} \, {}_{1} F_{1} ( - \alpha, {\textstyle \frac{1}{2}} ; {\textstyle \frac{1}{2}}z^2) + \alpha, {\textstyle \frac{1}{2}} ; {\textstyle \frac{1}{2}}x^2) = - e^{-\frac{z^2}{4}} + e^{-\frac{x^2}{4}} \sum^{\infty}_{n=0} \frac{\left ( \alpha \right )_{n}}{\left ( \frac{1}{2}\right )_{n}} - \frac{\left ( \frac{1}{2} z^2\right )^n}{n!} \\ + \frac{\left ( \frac{1}{2} x^2\right )^n}{n!} \\ &= - e^{-\frac{z^2}{4}} + e^{-\frac{x^2}{4}} \left ( 1 + - \left ( 2\alpha \right )\frac{z^2}{2!} + \left ( 2\alpha \right )\frac{x^2}{2!} + - \left ( 2\alpha \right )\left ( 2 + 2\alpha \right )\frac{z^4}{4!} + \left ( 2\alpha \right )\left ( 2 + 2\alpha \right )\frac{x^4}{4!} + \dots \right ) \end{align} und \begin{align} - w_2(\alpha,z) + w_2(\alpha,x) &= - ze^{-z^2/4} \, + xe^{-x^2/4} \, {}_{1} F_{1} ( {\textstyle \frac{1}{2}} - + \alpha, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2) + + \alpha, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}x^2) = - ze^{-\frac{z^2}{4}} + xe^{-\frac{x^2}{4}} \sum^{\infty}_{n=0} \frac{\left ( \frac{3}{4} - k \right )_{n}}{\left ( \frac{3}{2}\right )_{n}} - \frac{\left ( \frac{1}{2} z^2\right )^n}{n!} \\ + \frac{\left ( \frac{1}{2} x^2\right )^n}{n!} \\ &= - e^{-\frac{z^2}{4}} + e^{-\frac{x^2}{4}} \left ( - z + x + - \left ( 1 + 2\alpha \right )\frac{z^3}{3!} + \left ( 1 + 2\alpha \right )\frac{x^3}{3!} + - \left ( 1 + 2\alpha \right )\left ( 3 + 2\alpha \right )\frac{z^5}{5!} + \left ( 1 + 2\alpha \right )\left ( 3 + 2\alpha \right )\frac{x^5}{5!} + \dots - \right ). + \right ) \end{align} sind. -Bei den Potenzreihen sieht man gut, dass die Ordnung des Polynoms im generellen ins unendliche geht. +Die Potenzreihen sind in der regel unendliche Reihen. Es gibt allerdings die Möglichkeit für bestimmte $\alpha$ das die Terme in der Klammer gleich null werden -und das Polynom somit eine endliche Ordnung $n$ hat. Dies geschieht bei $w_1(\alpha,z)$ falls +und die Reihe somit eine endliche Anzahl $n$ Summanden hat. +Dies geschieht bei $w_1(\alpha,x)$ falls \begin{equation} \alpha = -n \qquad n \in \mathbb{N}_0 \end{equation} -und bei $w_2(\alpha,z)$ falls +und bei $w_2(\alpha,x)$ falls \begin{equation} \alpha = -\frac{1}{2} - n \qquad n \in \mathbb{N}_0. \end{equation} - +Der Wert des von $\alpha$ ist abhängig, ob man $D_n(x)$ oder $U(a,x)$ / $V(a,x)$ verwendet. +Bei $D_n(x)$ gilt $\alpha = -{\textstyle \frac{1}{2}} n$ und bei $U(a,z)$ oder $V(a,x)$ gilt +$\alpha = {\textstyle \frac{1}{2}} a + {\textstyle \frac{1}{4}}$. \subsection{Ableitung} -Die Ableitungen $\frac{\partial w_1(z,k)}{\partial z}$ und $\frac{\partial w_2(z,k)}{\partial z}$ +Die Ableitungen $\frac{\partial w_1(\alpha, x)}{\partial x}$ und $\frac{\partial w_2(\alpha, x)}{\partial x}$ können mit den Eigenschaften der hypergeometrischen Funktionen in Abschnitt \ref{buch:rekursion:hypergeometrisch:stammableitung} berechnet werden. Zusammen mit der Produktregel ergeben sich die Ableitungen \begin{equation} - \frac{\partial w_1(\alpha,z)}{\partial z} = 2\alpha w_2(\alpha + \frac{1}{2}, z) - \frac{1}{2} z w_1(\alpha, z), + \frac{\partial w_1(\alpha,x)}{\partial x} = 2\alpha w_2(\alpha + \frac{1}{2}, x) - \frac{1}{2} x w_1(\alpha, x), \end{equation} und %\begin{equation} % \frac{\partial w_2(z,k)}{\partial z} = w_1(z, k -\frac{1}{2}) - \frac{1}{2} z w_2(z,k). %\end{equation} \begin{equation} - \frac{\partial w_2(\alpha,z)}{\partial z} = e^{-z^2/4} \left( - z^{-1} w_2(\alpha, z) - \frac{z}{2} w_2(\alpha, z) + 2 z^2 \left(\frac{\alpha + 1}{3}\right) + \frac{\partial w_2(\alpha,x)}{\partial x} = e^{-x^2/4} \left( + x^{-1} w_2(\alpha, x) - \frac{x}{2} w_2(\alpha, x) + 2 x^2 \left(\frac{\alpha + 1}{3}\right) {}_{1} F_{1} ( {\textstyle \frac{3}{2}} - + \alpha, {\textstyle \frac{5}{2}} ; {\textstyle \frac{1}{2}}z^2) + + \alpha, {\textstyle \frac{5}{2}} ; {\textstyle \frac{1}{2}}x^2) \right) \end{equation} Nach dem selben Vorgehen können weitere Ableitungen berechnet werden. -- cgit v1.2.1 From 3d0b6bf8410b37fd6d68a83ef08c6794cfdad8cd Mon Sep 17 00:00:00 2001 From: haddoucher Date: Thu, 18 Aug 2022 11:49:37 +0200 Subject: Korrektur Einleitung Alles korrigiert --- buch/papers/sturmliouville/einleitung.tex | 53 +++++++++++++++++-------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/buch/papers/sturmliouville/einleitung.tex b/buch/papers/sturmliouville/einleitung.tex index 78c1800..163f033 100644 --- a/buch/papers/sturmliouville/einleitung.tex +++ b/buch/papers/sturmliouville/einleitung.tex @@ -5,25 +5,36 @@ % \section{Was ist das Sturm-Liouville-Problem\label{sturmliouville:section:teil0}} \rhead{Einleitung} -Das Sturm-Liouville-Problem wurde benannt nach dem schweizerisch-französischer Mathematiker und Physiker Jacques Charles Fran\c{c}ois Sturm und dem französischer Mathematiker Joseph Liouville. -Gemeinsam haben sie in der mathematischen Physik die Sturm-Liouville-Theorie entwickelt und gilt für die Lösung von gewohnlichen Differentialgleichungen, jedoch verwendet man die Theorie öfters bei der Lösung von partiellen Differentialgleichungen. -Normalerweise betrachtet man für das Strum-Liouville-Problem eine gewöhnliche Differentialgleichung 2. Ordnung, und wenn es sich um eine partielle Differentialgleichung handelt, kann man sie mit Hilfe einiger Methoden in mehrere gewöhnliche Differentialgleichungen umwandeln, wie z. B. den Separationsansatz, die partielle Differentialgleichung mit mehreren Variablen. +Das Sturm-Liouville-Problem wurde benannt nach dem schweizerisch-französischen Mathematiker und Physiker Jacques Charles Fran\c{c}ois Sturm und dem französischen Mathematiker Joseph Liouville. +Gemeinsam haben sie in der mathematischen Physik die Sturm-Liouville-Theorie entwickelt und gilt für die Lösung von gewöhnlichen Differentialgleichungen, jedoch verwendet man die Theorie öfters bei der Lösung von partiellen Differentialgleichungen. +Normalerweise betrachtet man für das Strum-Liouville-Problem eine gewöhnliche Differentialgleichung 2. Ordnung, und wenn es sich um eine partielle Differentialgleichung handelt, kann man sie in mehrere gewöhnliche Differentialgleichungen umwandeln. Wie z. B. den Separationsansatz, die partielle Differentialgleichung mit mehreren Variablen. \begin{definition} \index{Sturm-Liouville-Gleichung}% -Angenommen man hat die lineare homogene Differentialgleichung +Wenn die lineare homogene Differentialgleichung \begin{equation} \frac{d^2y}{dx^2} + a(x)\frac{dy}{dx} + b(x)y = 0 \end{equation} -und schreibt die Gleichung um in: +als \begin{equation} \label{eq:sturm-liouville-equation} \frac{d}{dx}\lbrack p(x) \frac{dy}{dx} \rbrack + \lbrack q(x) + \lambda w(x) \rbrack y = 0 \end{equation} -, diese Gleichung wird dann Sturm-Liouville-Gleichung bezeichnet. +geschrieben werden kann, dann wird diese Gleichung als Sturm-Liouville-Gleichung bezeichnet. \end{definition} +Alle homogene 2. Ordnung lineare gewöhnliche Differentialgleichungen können in die Form der Gleichung \ref{eq:sturm-liouville-equation} umgeformt werden. + +\subsection{Randbedingungen\label{sub:was-ist-das-slp-randbedingungen}} +Wenn von der Funktion $y(x)$ die Werte $x$ des jeweiligen Randes des Definitionsbereiches anzunehmen sind, also +\begin{equation} + y(a) = y(b) = 0 +\end{equation} +, so spricht man von einer Dirichlet-Randbedingung\footnote{Die Dirichlet-Randbedingung oder auch Randbedingung des ersten Typs genannt ist nach dem deutschen Mathematiker Peter Gstav Lejeune Dirichlet benannt. Sie findet Anwendung auf gewöhnliche oder patielle Differentialgleichungen und gibt mit der Bedingung die Werte an, die für die abgeleitete Lösung innerhalb der Domänengrenze gelten.}, und von einer Neumann-Randbedingung\footnote{Die Neumann-Randbedingung oder auch Randbedingung des zweiten Typs genannt, ist nach dem deutschen Mathematiker Carl Neumann benannt. Sie legt die Werte fest, die eine Lösung entlang der Domänengrenze annehmen muss, wenn eine gewöhnliche oder partielle Differentialgleichung gestellt wird.} spricht man, wenn +\begin{equation} + y'(a) = y'(b) = 0 +\end{equation} +ergibt. -Alle homogene 2.Ordnung lineare gewöhnliche Differentialgleichungen können in die Form der Gleichung \ref{eq:sturm-liouville-equation} umgeformt werden. Die Sturm-Liouville-Theorie besagt, dass, wenn man die Sturm-Liouville-Gleichung mit den homogenen Randbedingungen des dritten Typs\footnote{Die Randbedingung des dritten Typs, oder Robin-Randbedingungen (benannt nach dem französischen mathematischen Analytiker und angewandten Mathematiker Victor Gustave Robin), wird genannt, wenn sie einer gewöhnlichen oder partiellen Differentialgleichung auferlegt wird, so sind die Spezifikationen einer Linearkombination der Werte einer Funktion sowie die Werte ihrer Ableitung am Rande des Bereichs} \begin{equation} \begin{aligned} @@ -32,17 +43,10 @@ Die Sturm-Liouville-Theorie besagt, dass, wenn man die Sturm-Liouville-Gleichung k_b y(b) + h_b p(b) y'(b) &= 0 \end{aligned} \end{equation} -kombiniert, wie schon im Kapitel \ref{sub:differentailgleichung} erwähnt, auf dem Intervall (a,b), dann bekommt man das klassische Sturm-Liouville-Problem. -Wenn von der Funktion $y(x)$ die Werte $x$ des jeweiligen Randes des Definitionsbereiches anzunehmen sind, also -\begin{equation} - y(a) = y(b) = 0 -\end{equation} -, so spricht man von einer Dirichlet-Randbedingung, und von einer Neumann-Randbedingung spricht man, wenn -\begin{equation} - y'(a) = y'(b) = 0 -\end{equation} -ergibt - die Existenz und Eindeutigkeit der Lösung kann mit den zwei Randbedingungen sichergestellt werden. -Lösungen die nicht Null sind, werden nicht betrachtet und diese zwei Gleichungen (\ref{eq:sturm-liouville-equation} und \ref{eq:randbedingungen}) kombiniert, nennt man Eigenfunktionen. +kombiniert, dann bekommt man das klassische Sturm-Liouville-Problem. + +\subsection{Eigenwertproblem} +Die Gleichungen \ref{eq:sturm-liouville-equation} hat die Form eines Eigenwertproblems Wenn bei der Sturm-Liouville-Gleichung \ref{eq:sturm-liouville-equation} alles konstant bleibt, aber der Wert von $\lambda$ sich ändert, erhält man eine andere Eigenfunktion, weil man eine andere gewöhnliche Differentialgleichung löst; der Parameter $\lambda$ wird als Eigenwert bezeichnet. Es ist genau das gleiche Prinzip wie bei den Matrizen, andere Eigenwerte ergeben andere Eigenvektoren. @@ -59,6 +63,7 @@ Somit ergibt die Gleichung \int_{a}^{b} w(x)y_m y_n = 0 \end{equation}. +\subsection{Koeffizientenfunktionen} Die Funktionen $p(x)$, $q(x)$ und $w(x)$ werden als Koeffizientenfunktionen mit ihren freien Variablen $x$ bezeichnet. Die Funktion $w(x)$ (manchmal auch $r(x)$ genannt) wird als Gewichtsfunktion oder Dichtefunktion bezeichnet. Es gibt zwei verschiedene Sturm-Liouville-Probleme: das reguläre Sturm-Liouville-Problem und das singuläre Sturm-Liouville-Problem. @@ -76,12 +81,12 @@ Damit es sich um ein reguläres Sturm-Liouville-Problem handelt, müssen einige Die Bedingungen für ein reguläres Sturm-Liouville-Problem sind: \begin{itemize} \item Die Funktionen $p(x), p'(x), q(x)$ und $w(x)$ müssen stetig und reell sein. - \item sowie müssen in einem Endlichen Intervall $[ \ a,b] \ $ integrierbar sein. - \item $p(x)^{-1}$ und $w(x)$ sind $>0$. + \item sowie müssen in einem endlichen Intervall $[a,b]$ integrierbar sein. + \item $p(x)$ und $w(x)$ sind $>0$. \item Es gelten die Randbedingungen \ref{eq:randbedingungen}, wobei $|k_i|^2 + |h_i|^2\ne 0$ mit $i=a,b$. \end{itemize} \end{definition} -Bei einem regulären Sturm-Liouville-Problem geht es darum, ohne genaue Kenntnis der Eigenfunktionen diese dennoch beschreiben zu können. +Bei einem regulären Sturm-Liouville-Problem geht es darum, wichtige Eigenschaften der Eigenfunktionen beschreiben zu können, ohne sie genau zu kennen. % @@ -111,7 +116,7 @@ Allerdings kann nur eine der Bedingungen nicht erfüllt sein, so dass es sich be \end{aligned} \end{equation} ist kein reguläres Sturm-Liouville-Problem. - Weil wenn man die Gleichung in die Sturm-Liouville Form umformen, dann ergeben die Koeffizientenfunktionen $p(x) = w(x) = x$ und $q(x) = -m^2/x$. + Wenn man die Gleichung in die Sturm-Liouville Form umformen, dann ergeben die Koeffizientenfunktionen $p(x) = w(x) = x$ und $q(x) = -m^2/x$. Schaut man jetzt die Bedingungen im Kapitel \ref{sub:reguläre_sturm_liouville_problem} an und vergleicht diese unseren Koeffizientenfunktionen, so erkennt man einige Probleme: \begin{itemize} \item $p(x)$ und $w(x)$ sind nicht positiv, wenn $x = 0$ ist. @@ -121,9 +126,9 @@ Allerdings kann nur eine der Bedingungen nicht erfüllt sein, so dass es sich be \end{beispiel} Verwendet man das reguläre Sturm-Liouville-Problem, obwohl eine oder beide Bedingungen nicht erfüllt sind, dann ist es schwierig zu sagen, ob die Lösung fundierte Ergebnisse hat. -Es ist schwierig, bestehende Kriterien anzuwenden, da die Formulierungen z.B. in der Lösungsfunktion liegen. +Es ist schwierig, Kriterien anzuwenden, da die Formulierungen z. B. in der Lösungsfunktion liegen. Das Spektrum besteht im singulärem Problem nicht mehr nur aus Eigenwerte, sondern kann auch einen stetigen Anteil enthalten. -Ähnlich wie bei der Fourier-Reihe gegenüber der Fourier-Transformation gibt es immer noch eine zugehörige Eigenfunktionsentwicklung, und zwar die Integraltransformation sowie gibt es weiterhin eine verallgemeinerte Eigenfunktionen. +Ähnlich wie bei der Fourier-Reihe gegenüber der Fourier-Transformation gibt es immer noch eine zugehörige Eigenfunktionsentwicklung, und zwar die Integraltransformation sowie gibt es weiterhin verallgemeinerte Eigenfunktionen. -- cgit v1.2.1 From e420016ee745615b7abc8879559f2fef7a0f978b Mon Sep 17 00:00:00 2001 From: LordMcFungus Date: Thu, 18 Aug 2022 11:51:34 +0200 Subject: Delete SeminarSpezielleFunktionen.pdf --- buch/SeminarSpezielleFunktionen.pdf | Bin 22768314 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 buch/SeminarSpezielleFunktionen.pdf diff --git a/buch/SeminarSpezielleFunktionen.pdf b/buch/SeminarSpezielleFunktionen.pdf deleted file mode 100644 index 36b612f..0000000 Binary files a/buch/SeminarSpezielleFunktionen.pdf and /dev/null differ -- cgit v1.2.1 From 354d497301c69137fd00566b42868370d2bd46a3 Mon Sep 17 00:00:00 2001 From: haddoucher Date: Thu, 18 Aug 2022 11:57:07 +0200 Subject: einleitung fertig korrigiert --- buch/papers/sturmliouville/einleitung.tex | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/buch/papers/sturmliouville/einleitung.tex b/buch/papers/sturmliouville/einleitung.tex index 163f033..700ea1d 100644 --- a/buch/papers/sturmliouville/einleitung.tex +++ b/buch/papers/sturmliouville/einleitung.tex @@ -125,9 +125,8 @@ Allerdings kann nur eine der Bedingungen nicht erfüllt sein, so dass es sich be \end{itemize} \end{beispiel} -Verwendet man das reguläre Sturm-Liouville-Problem, obwohl eine oder beide Bedingungen nicht erfüllt sind, dann ist es schwierig zu sagen, ob die Lösung fundierte Ergebnisse hat. +Verwendet man das reguläre Sturm-Liouville-Problem, obwohl eine oder beide Bedingungen nicht erfüllt sind, dann ist es schwierig zu sagen, ob die Lösung eindeutige Ergebnisse hat. Es ist schwierig, Kriterien anzuwenden, da die Formulierungen z. B. in der Lösungsfunktion liegen. -Das Spektrum besteht im singulärem Problem nicht mehr nur aus Eigenwerte, sondern kann auch einen stetigen Anteil enthalten. Ähnlich wie bei der Fourier-Reihe gegenüber der Fourier-Transformation gibt es immer noch eine zugehörige Eigenfunktionsentwicklung, und zwar die Integraltransformation sowie gibt es weiterhin verallgemeinerte Eigenfunktionen. -- cgit v1.2.1 From b3611aa8b6f2c56c8940c18c582de0fd3dd205f2 Mon Sep 17 00:00:00 2001 From: haddoucher Date: Thu, 18 Aug 2022 12:31:12 +0200 Subject: tschebyscheff kapitel fertig geschrieben --- buch/papers/sturmliouville/einleitung.tex | 13 ++++----- .../sturmliouville/tschebyscheff_beispiel.tex | 31 +++++++++++++++------- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/buch/papers/sturmliouville/einleitung.tex b/buch/papers/sturmliouville/einleitung.tex index 700ea1d..d497622 100644 --- a/buch/papers/sturmliouville/einleitung.tex +++ b/buch/papers/sturmliouville/einleitung.tex @@ -27,9 +27,9 @@ Alle homogene 2. Ordnung lineare gewöhnliche Differentialgleichungen können in \subsection{Randbedingungen\label{sub:was-ist-das-slp-randbedingungen}} Wenn von der Funktion $y(x)$ die Werte $x$ des jeweiligen Randes des Definitionsbereiches anzunehmen sind, also \begin{equation} - y(a) = y(b) = 0 + y(a) = y(b) = 0, \end{equation} -, so spricht man von einer Dirichlet-Randbedingung\footnote{Die Dirichlet-Randbedingung oder auch Randbedingung des ersten Typs genannt ist nach dem deutschen Mathematiker Peter Gstav Lejeune Dirichlet benannt. Sie findet Anwendung auf gewöhnliche oder patielle Differentialgleichungen und gibt mit der Bedingung die Werte an, die für die abgeleitete Lösung innerhalb der Domänengrenze gelten.}, und von einer Neumann-Randbedingung\footnote{Die Neumann-Randbedingung oder auch Randbedingung des zweiten Typs genannt, ist nach dem deutschen Mathematiker Carl Neumann benannt. Sie legt die Werte fest, die eine Lösung entlang der Domänengrenze annehmen muss, wenn eine gewöhnliche oder partielle Differentialgleichung gestellt wird.} spricht man, wenn +so spricht man von einer Dirichlet-Randbedingung\footnote{Die Dirichlet-Randbedingung oder auch Randbedingung des ersten Typs genannt ist nach dem deutschen Mathematiker Peter Gstav Lejeune Dirichlet benannt. Sie findet Anwendung auf gewöhnliche oder patielle Differentialgleichungen und gibt mit der Bedingung die Werte an, die für die abgeleitete Lösung innerhalb der Domänengrenze gelten.}, und von einer Neumann-Randbedingung\footnote{Die Neumann-Randbedingung oder auch Randbedingung des zweiten Typs genannt, ist nach dem deutschen Mathematiker Carl Neumann benannt. Sie legt die Werte fest, die eine Lösung entlang der Domänengrenze annehmen muss, wenn eine gewöhnliche oder partielle Differentialgleichung gestellt wird.} spricht man, wenn \begin{equation} y'(a) = y'(b) = 0 \end{equation} @@ -53,15 +53,16 @@ Es ist genau das gleiche Prinzip wie bei den Matrizen, andere Eigenwerte ergeben Es besteht eine Korrespondenz zwischen den Eigenwerten und den Eigenvektoren. Das gleiche gilt auch beim Sturm-Liouville-Problem, und zwar \begin{equation} - \lambda \overset{Korrespondenz}\leftrightarrow y -\end{equation}. + \lambda \overset{Korrespondenz}\leftrightarrow y. +\end{equation} Die Theorie besagt, wenn $y_m$, $y_n$ Eigenfuktionen des Sturm-Liouville-Problems sind, die verschiedene Eigenwerte $\lambda_m$, $\lambda_n$ ($\lambda_m \neq \lambda_n$) entsprechen, so sind $y_m$, $y_n$ orthogonal zu y - dies gilt für das Intervall (a,b). Somit ergibt die Gleichung \begin{equation} - \int_{a}^{b} w(x)y_m y_n = 0 -\end{equation}. + \label{eq:skalar-sturm-liouville} + \int_{a}^{b} w(x)y_m y_n = 0. +\end{equation} \subsection{Koeffizientenfunktionen} Die Funktionen $p(x)$, $q(x)$ und $w(x)$ werden als Koeffizientenfunktionen mit ihren freien Variablen $x$ bezeichnet. diff --git a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex index a18684f..3817dc0 100644 --- a/buch/papers/sturmliouville/tschebyscheff_beispiel.tex +++ b/buch/papers/sturmliouville/tschebyscheff_beispiel.tex @@ -4,8 +4,9 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\subsection{Tschebyscheff-Polynome\label{sub:tschebyscheff-polynome}} -Im Kapitel \ref{sub:beispiele_sturm_liouville_problem} sind die Koeffizientenfunktionen die man braucht schon aufgeliste, und zwar mit +\subsection{Sind Tschebyscheff-Polynome orthogonal zueinander?\label{sub:tschebyscheff-polynome}} +\subsubsection*{Definition der Koeffizientenfunktion} +Im Kapitel \ref{sub:beispiele_sturm_liouville_problem} sind die Koeffizientenfunktionen, die man braucht, schon aufgeliste, und zwar mit \begin{align*} w(x) &= \frac{1}{\sqrt{1-x^2}} \\ p(x) &= \sqrt{1-x^2} \\ @@ -14,10 +15,12 @@ Im Kapitel \ref{sub:beispiele_sturm_liouville_problem} sind die Koeffizientenfun Da die Sturm-Liouville-Gleichung \begin{equation} \label{eq:sturm-liouville-equation-tscheby} - \frac{d}{dx}\lbrack \sqrt{1-x^2} \frac{dy}{dx} \rbrack + \lbrack 0 + \lambda \frac{1}{\sqrt{1-x^2}} \rbrack y = 0 + \frac{d}{dx} (\sqrt{1-x^2} \frac{dy}{dx}) + (0 + \lambda \frac{1}{\sqrt{1-x^2}}) y = 0 \end{equation} nun mit den Koeffizientenfunktionen aufgestellt werden kann, bleibt die Frage, ob es sich um ein reguläres oder singuläres Sturm-Liouville-Problem handelt. -Für das reguläre Problem laut der Definition \ref{def:reguläres_sturm-liouville-problem} muss die funktion $p(x) = \sqrt{1-x^2}$, $p'(x) = -2x$, $q(x) = 0$ und $w(x) = \frac{1}{\sqrt{1-x^2}}$ stetig und reell sein - und sie sind es auch. + +\subsubsection*{regulär oder singulär?} +Für das reguläre Problem laut der Definition \ref{def:reguläres_sturm-liouville-problem} muss die funktion $p(x) = \sqrt{1-x^2}$, $p'(x) = -2x$, $q(x) = 0$ und $w(x) = \frac{1}{\sqrt{1-x^2}}$ stetig und reell sein --- und sie sind es auch. Auf dem Intervall $(-1,1)$ sind die Tschebyscheff-Polynome erster Art mit Hilfe von Hyperbelfunktionen \begin{equation} T_n(x) = \cos n (\arccos x) @@ -28,22 +31,23 @@ Für $x>1$ und $x<-1$ sehen die Polynome wie folgt aus: (-1)^n \cosh (n \arccos (-x)), & x<-1 \end{array}\right. \end{equation}, jedoch ist die Orthogonalität nur auf dem Intervall $[ -1, 1]$ sichergestellt. -Die nächste Bedingung beinhaltet, dass die Funktion $p(x)^{-1}$ und $w(x)>0$ sein müssen. +Die nächste Bedingung beinhaltet, dass die Funktion $p(x)$ und $w(x)>0$ sein müssen. Die Funktion \begin{equation*} p(x)^{-1} = \frac{1}{\sqrt{1-x^2}} \end{equation*} -ist die gleiche wie $w(x)$. +ist die gleiche wie $w(x)$ und erfüllt die Bedingung. +\subsubsection*{Randwertproblem} Für die Verifizierung der Randbedingungen benötigt man erneut $p(x)$. Da sich die Polynome nur auf dem Intervall $[ -1,1 ]$ orthogonal verhalten, sind $a = -1$ und $b = 1$ gesetzt. Beim einsetzen in die Randbedingung \ref{eq:randbedingungen}, erhält man \begin{equation} \begin{aligned} k_a y(-1) + h_a y'(-1) &= 0 - k_b y(-1) + h_b y'(-1) &= 0 + k_b y(-1) + h_b y'(-1) &= 0. \end{aligned} -\end{equation}. +\end{equation} Die Funktion $y(x)$ und $y'(x)$ sind in diesem Fall die Tschebyscheff Polynome (siehe \label{sub:definiton_der_tschebyscheff-Polynome}). Es gibt zwei Arten von Tschebyscheff Polynome: die erste Art $T_n(x)$ und die zweite Art $U_n(x)$. Jedoch beachtet man in diesem Kapitel nur die Tschebyscheff Polynome erster Art (\ref{eq:tschebyscheff-polynome}). @@ -52,12 +56,19 @@ Somit erhält man \begin{equation} \begin{aligned} k_a T_2(-1) + h_a T_{2}'(-1) &= k_a = 0\\ - k_b T_2(1) + h_b T_{2}'(1) &= k_b = 0 + k_b T_2(1) + h_b T_{2}'(1) &= k_b = 0. \end{aligned} -\end{equation}. +\end{equation} Ähnlich wie beim Beispiel der Wärmeleitung in einem homogenen Stab kann man, damit die Bedingung $|k_i|^2 + |h_i|^2\ne 0$ erfüllt ist, können beliebige $h_a \ne 0$ und $h_b \ne 0$ gewählt werden. Somit ist erneut gezeigt, dass die Randbedingungen der Tschebyscheff-Polynome auf die Sturm-Liouville-Randbedingungen erfüllt und alle daraus resultierenden Lösungen orthogonal sind. +\begin{beispiel} + Die Gleichung \ref{eq:skalar-sturm-liouville} mit $y_m = T_1(x)$ und $y_n(x) = T_2(x)$ eingesetzt sowie $a=-1$ und $b = 1$ ergibt + \[ + \int_{-1}^{1} w(x) x (2x^2-1) dx = 0. + \] +\end{beispiel} + -- cgit v1.2.1 From 95d6d5a46854e79d7b410a1fd4253ee4548e936e Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 18 Aug 2022 14:46:51 +0200 Subject: kugel: Orthogonality --- buch/papers/kugel/spherical-harmonics.tex | 203 ++++++++++++++++++++++++++++-- 1 file changed, 194 insertions(+), 9 deletions(-) diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index 2ded50b..2a00754 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -178,7 +178,7 @@ write the solutions The restriction that the separation constant $m$ needs to be an integer arises from the fact that we require a $2\pi$-periodicity in $\varphi$ since the coordinate systems requires that $\Phi(\varphi + 2\pi) = \Phi(\varphi)$. -Unfortunately, solving \eqref{kugel:eqn:ode-theta} is as straightforward, +Unfortunately, solving \eqref{kugel:eqn:ode-theta} is not as straightforward, actually, it is quite difficult, and the process is so involved that it will require a dedicated section of its own. @@ -250,7 +250,7 @@ case of the former that is known known as the \emph{Legendre polynomials}, since we only need a solution between $-1$ and $1$. \begin{lemma}[Legendre polynomials] - \label{kugel:lem:legendre-poly} + \label{kugel:thm:legendre-poly} The polynomial function \[ P_n(z) = \sum^{\lfloor n/2 \rfloor}_{k=0} @@ -287,7 +287,7 @@ Legendre equation, we can make use of the following lemma patch the solutions such that they also become solutions of the associated Legendre equation \eqref{kugel:eqn:associated-legendre}. -\begin{lemma} \label{kugel:lem:extend-legendre} +\begin{lemma} \label{kugel:thm:extend-legendre} If $Z_n(z)$ is a solution of the Legendre equation \eqref{kugel:eqn:legendre}, then \begin{equation*} @@ -300,7 +300,7 @@ such that they also become solutions of the associated Legendre equation See section \ref{kugel:sec:proofs:legendre}. \end{proof} -What is happening in lemma \ref{kugel:lem:extend-legendre}, is that we are +What is happening in lemma \ref{kugel:thm:extend-legendre}, is that we are essentially inserting a square root function in the solution in order to be able to reach the parts of the domain near the poles at $\pm 1$ of the associated Legendre equation, which is not possible only using power series @@ -356,9 +356,10 @@ $Y^m_n(\vartheta, \varphi)$. \label{kugel:def:spherical-harmonics} The functions \begin{equation*} - Y_{m,n}(\vartheta, \varphi) = P^m_n(\cos \vartheta) e^{im\varphi}, + Y^m_n (\vartheta, \varphi) = P^m_n(\cos \vartheta) e^{im\varphi}, \end{equation*} - where $m, n \in \mathbb{Z}$ and $|m| < n$ are called spherical harmonics. + where $m, n \in \mathbb{Z}$ and $|m| < n$ are called (unnormalized) spherical + harmonics. \end{definition} \begin{figure} @@ -366,9 +367,195 @@ $Y^m_n(\vartheta, \varphi)$. \kugelplaceholderfig{\textwidth}{.8\paperheight} \caption{ \kugeltodo{Big picture with the first few spherical harmonics.} + \label{kugel:fig:spherical-harmonics} } \end{figure} +\kugeltodo{Describe how they look like with fig. +\ref{kugel:fig:spherical-harmonics}} + +\subsection{Orthogonality of $P_n$, $P^m_n$ and $Y^m_n$} + +We shall now discuss an important property of the spherical harmonics: they form +an orthogonal system. And since the spherical harmonics contain the Ferrers or +associated Legendre functions, we need to discuss their orthogonality first. +But the Ferrers functions themselves depend on the Legendre polynomials, so that +will be our starting point. + +\begin{lemma} For the Legendre polynomials $P_n(z)$ and $P_k(z)$ it holds that + \label{kugel:thm:legendre-poly-ortho} + \begin{equation*} + \int_{-1}^1 P_n(z) P_k(z) \, dz + = \frac{2}{2n + 1} \delta_{nk} + = \begin{cases} + \frac{2}{2n + 1} & \text{if } n = k, \\ + 0 & \text{otherwise}. + \end{cases} + \end{equation*} +\end{lemma} +\begin{proof} + To start, consider the fact that that the Legendre equation + \eqref{kugel:eqn:legendre}, of which two distinct Legendre polynomials + $P_n(z)$ and $P_k(z)$ are a solution ($n \neq k$), can be rewritten in the + following form: + \begin{equation} + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dZ}{dz} + \right] + n(n+1) Z(z) = 0. + \end{equation} + So we rewrite the Legendre equations for $P_n(z)$ and $P_k(z)$: + \begin{align*} + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_n}{dz} + \right] + n(n+1) P_n(z) &= 0, + & + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_k}{dz} + \right] + k(k+1) P_k(z) &= 0, + \end{align*} + then we multiply the former by $P_k(z)$ and the latter by $P_n(z)$ and + subtract the two to get + \begin{equation*} + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_n}{dz} + \right] P_k(z) + n(n+1) P_n(z) P_k(z) + - + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_k}{dz} + \right] P_n(z) - k(k+1) P_k(z) P_n(z) = 0. + \end{equation*} + By grouping terms, making order and integrating with respect to $z$ from $-1$ + to 1 we obtain + \begin{gather} + \int_{-1}^1 \left\{ + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_n}{dz} + \right] P_k(z) + - + \frac{d}{dz} \left[ + \left( 1 - z^2 \right) \frac{dP_k}{dz} + \right] P_n(z) - k(k+1) P_k(z) P_n(z) + \right\} \,dz \nonumber \\ + + \left[ n(n+1) - k(k+1) \right] \int_{-1}^1 P_k(z) P_n(z) \, dz = 0. + \label{kugel:thm:legendre-poly-ortho:proof:1} + \end{gather} + Since by the product rule + \begin{equation*} + \frac{d}{dz} \left[ (1 - z^2) \frac{dP_k}{dz} P_n(z) \right] + = + \frac{d}{dz} \left[ (1 - z^2) \frac{dP_n}{dz} \right] P_k(z) + + (1 - z^2) \frac{dP_n}{dz} \frac{dP_k}{dz}, + \end{equation*} + we can simplify the first term in + \eqref{kugel:thm:legendre-poly-ortho:proof:1} to get + \begin{gather*} + \int_{-1}^1 \left\{ + \frac{d}{dz} \left[ (1 - z^2) \frac{dP_k}{dz} P_n(z) \right] + - \cancel{(1 - z^2) \frac{dP_n}{dz} \frac{dP_k}{dz}} + - \frac{d}{dz} \left[ (1 - z^2) \frac{dP_n}{dz} P_k(z) \right] + + \cancel{(1 - z^2) \frac{dP_k}{dz} \frac{dP_n}{dz}} + \right\} \, dz \\ + = \int_{-1}^1 \frac{d}{dz} \left\{ (1 - z^2) \left[ + \frac{dP_k}{dz} P_n(z) - \frac{dP_n}{dz} P_k(z) + \right] \right\} \, dz + = (1 - z^2) \left[ + \frac{dP_k}{dz} P_n(z) - \frac{dP_n}{dz} P_k(z) + \right] \Bigg|_{-1}^1, + \end{gather*} + which always equals 0 because the product contains $1 - z^2$ and the bounds + are at $\pm 1$. Thus, of \eqref{kugel:thm:legendre-poly-ortho:proof:1} only + the second term remains and the equation becomes + \begin{equation*} + \left[ n(n+1) - k(k+1) \right] \int_{-1}^1 P_k(z) P_n(z) \, dz = 0. + \end{equation*} + By dividing by the constant in front of the integral we have our first result. + Now we need to show that when $n = k$ the integral equals $2 / (2n + 1)$. + % \begin{equation*} + % \end{equation*} + \kugeltodo{Finish proof. Can we do it without the generating function of + $P_n$?} +\end{proof} + +In a similarly algebraically tedious fashion, we can also continue to check for +orthogonality for the Ferrers functions $P^m_n(z)$, since they are related to +$P_n(z)$ by a $m$-th derivative, and obtain the following result. + +\begin{lemma} For the associated Legendre functions + \label{kugel:thm:associated-legendre-ortho} + \begin{equation*} + \int_{-1}^1 P^m_n(z) P^{m'}_{n'}(z) \, dz + = \frac{2(m + n)!}{(2n + 1)(n - m)!} \delta_{nn'} + = \begin{cases} + \frac{2(m + n)!}{(2n + 1)(n - m)!} & \text{if } n = n', \\ + 0 & \text{otherwise}. + \end{cases} + \end{equation*} +\end{lemma} +\begin{proof} + \kugeltodo{Is it worth showing? IMHO no, it is mostly the same as Lemma + \ref{kugel:thm:legendre-poly-ortho} with the difference that the $m$-th + derivative is a pain to deal with.} +\end{proof} + +An interesting fact to observe in lemma +\ref{kugel:thm:associated-legendre-ortho} is that the orthogonality is only +affected in the lower index, while varying $m$ only changes the constant in +front of the Kronecker delta. By having the orthogonality relations of the +Legendre functions we can finally show that spherical harmonics are also +orthogonal. + +\begin{lemma} For the spherical harmonics + \kugeltodo{Fix horizontal spacing, inner product definition is missing.} + \label{kugel:thm:spherical-harmonics-ortho} + \begin{equation*} + \langle Y^m_n, Y^{m'}_{n'} \rangle + = \int_{-\pi}^\pi \int_0^{2\pi} + Y^m_n(\vartheta, \varphi) \overline{Y^{m'}_{n'}(\vartheta, \varphi)} + \sin \vartheta \, d\varphi \, d\vartheta + = \frac{-4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} \delta_{nn'} + = \begin{cases} + \frac{-4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} & \text{if } n = n', \\ + 0 & \text{otherwise}. + \end{cases} + \end{equation*} +\end{lemma} +\begin{proof} + We will begin by doing a bit of algebraic maipulaiton: + \begin{align*} + \int_{-\pi}^\pi \int_0^{2\pi} + Y^m_n(\vartheta, \varphi) \overline{Y^{m'}_{n'}(\vartheta, \varphi)} + \sin \vartheta \, d\varphi \, d\vartheta + &= \int_{-\pi}^\pi \int_0^{2\pi} + e^{im\varphi} P^m_n(\cos \vartheta) + e^{-im'\varphi} P^{m'}_{n'}(\cos \vartheta) + \, d\varphi \sin \vartheta \, d\vartheta + \\ + &= \int_{-\pi}^\pi + P^m_n(\cos \vartheta) P^{m'}_{n'}(\cos \vartheta) + \int_0^{2\pi} e^{i(m - m')\varphi} + \, d\varphi \sin \vartheta \, d\vartheta + . + \end{align*} + First, notice that the associated Legendre polynomials are assumed to be real, + and are thus unaffected by the complex conjugation. Then, we can see that when + $m = m'$ the inner integral simplifies to $\int_0^{2\pi} 1 \, d\varphi$ which + equals $2\pi$, so in this case the expression becomes + \begin{equation*} + 2\pi \int_{-\pi}^\pi + P^m_n(\cos \vartheta) P^{m'}_{n'}(\cos \vartheta) + \sin \vartheta \, d\vartheta + = -2\pi \int_{-1}^1 P^m_n(z) P^{m'}_{n'}(z) \, dz + = \frac{-4\pi(m + n)!}{(2n + 1)(n - m)!} \delta_{nn'}, + \end{equation*} + where in the second step we performed the substitution $z = \cos\vartheta$; + $d\vartheta = \frac{d\vartheta}{dz} dz= - dz / \sin \vartheta$, and then we + used lemma \ref{kugel:thm:associated-legendre-ortho}. Now we just need look at + the case when $m \neq m'$. Fortunately this is easy: the inner integral is + $\int_0^{2\pi} e^{i(m - m')\varphi} d\varphi$, or in other words we are + integrating a complex exponetial over the entire period, which always results + in zero. Thus, we do not need to do anything and the proof is complete. +\end{proof} + \subsection{Normalization} \kugeltodo{Discuss various normalizations.} @@ -403,8 +590,6 @@ Ora, visto che la soluzione dell'eigenfunction problem è formata dalla moltipli \section{Series Expansions in $C(S^2)$} -\subsection{Orthogonality of $P_n$, $P^m_n$ and $Y^m_n$} - -\subsection{Series Expansion} +\subsection{Spherical Harmonics Series} \subsection{Fourier on $S^2$} -- cgit v1.2.1 From cb815146f12661f320a771464c5083e5196bb783 Mon Sep 17 00:00:00 2001 From: tschwall <55748566+tschwall@users.noreply.github.com> Date: Thu, 18 Aug 2022 16:51:08 +0200 Subject: Added graphic --- buch/papers/parzyl/img/Plane_2D.png | Bin 0 -> 99330 bytes buch/papers/parzyl/teil2.tex | 20 +++++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 buch/papers/parzyl/img/Plane_2D.png diff --git a/buch/papers/parzyl/img/Plane_2D.png b/buch/papers/parzyl/img/Plane_2D.png new file mode 100644 index 0000000..7c32877 Binary files /dev/null and b/buch/papers/parzyl/img/Plane_2D.png differ diff --git a/buch/papers/parzyl/teil2.tex b/buch/papers/parzyl/teil2.tex index 573432a..d37c650 100644 --- a/buch/papers/parzyl/teil2.tex +++ b/buch/papers/parzyl/teil2.tex @@ -9,12 +9,22 @@ Die parabolischen Zylinderkoordinaten tauchen auf, wenn man das elektrische Feld einer semi-infiniten Platte, wie in Abbildung \ref{parzyl:fig:leiterplatte} gezeigt, finden will. \begin{figure} - \centering - \includegraphics[width=0.9\textwidth]{papers/parzyl/img/plane.pdf} - \caption{Semi-infinite Leiterplatte} - \label{parzyl:fig:leiterplatte} + \centering + \begin{minipage}{.7\textwidth} + \centering + \includegraphics[width=\textwidth]{papers/parzyl/img/plane.pdf} + \caption{Semi-infinite Leiterplatte} + \label{parzyl:fig:leiterplatte} + \end{minipage}% + \begin{minipage}{.25\textwidth} + \centering + \includegraphics[width=\textwidth]{papers/parzyl/img/Plane_2D.png} + \caption{Semi-infinite Leiterplatte dargestellt in 2D} + \label{parzyl:fig:leiterplatte_2d} + \end{minipage} \end{figure} -Das dies so ist kann im zwei Dimensionalen mit Hilfe von komplexen Funktionen gezeigt werden. Die Platte ist dann nur eine Linie, was man in Abbildung TODO sieht. +Das dies so ist kann im zwei Dimensionalen mit Hilfe von komplexen Funktionen gezeigt werden. Die Platte ist dann nur eine Linie, was man in Abbildung \ref{parzyl:fig:leiterplatte_2d} sieht. + Jede komplexe Funktion $F(z)$ kann geschrieben werden als \begin{equation} F(s) = U(x,y) + iV(x,y) \qquad s \in \mathbb{C}; x,y \in \mathbb{R}. -- cgit v1.2.1 From c3261041f9bcf77a90ee0aa3e2dc73bf71edb923 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 18 Aug 2022 17:23:40 +0200 Subject: kugel: Corrections in orthogonality --- buch/papers/kugel/spherical-harmonics.tex | 65 +++++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 16 deletions(-) diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index 2a00754..4f393d4 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -220,7 +220,7 @@ and $\lambda = n(n+1)$, we obtain what is known in the literature as the \emph{associated Legendre equation of order $m$}: \nocite{olver_introduction_2013} \begin{equation} \label{kugel:eqn:associated-legendre} - (1 - z^2)\frac{d^2 Z}{dz} + (1 - z^2)\frac{d^2 Z}{dz^2} - 2z\frac{d Z}{dz} + \left( n(n + 1) - \frac{m^2}{1 - z^2} \right) Z(z) = 0, \quad @@ -236,7 +236,7 @@ This reduces the problem because it removes the double pole, which is always tricky to deal with. In fact, the reduced problem when $m = 0$ is known as the \emph{Legendre equation}: \begin{equation} \label{kugel:eqn:legendre} - (1 - z^2)\frac{d^2 Z}{dz} + (1 - z^2)\frac{d^2 Z}{dz^2} - 2z\frac{d Z}{dz} + n(n + 1) Z(z) = 0, \quad @@ -275,7 +275,7 @@ Further, there are a few more interesting but not very relevant forms to write $P_n(z)$ such as \emph{Rodrigues' formula} and \emph{Laplace's integral representation} which are \begin{equation*} - P_n(z) = \frac{1}{2^n} \frac{d^n}{dz^n} (x^2 - 1)^n, + P_n(z) = \frac{1}{2^n n!} \frac{d^n}{dz^n} (z^2 - 1)^n, \qquad \text{and} \qquad P_n(z) = \frac{1}{\pi} \int_0^\pi \left( z + \cos\vartheta \sqrt{z^2 - 1} @@ -312,8 +312,8 @@ obtain the \emph{associated Legendre functions}. \label{kugel:def:ferrers-functions} The functions \begin{equation} - P^m_n (z) = \frac{1}{n!2^n}(1-z^2)^{\frac{m}{2}}\frac{d^{m}}{dz^{m}} P_n(z) - = \frac{1}{n!2^n}(1-z^2)^{\frac{m}{2}}\frac{d^{m+n}}{dz^{m+n}}(1-z^2)^n + P^m_n (z) = (1-z^2)^{\frac{m}{2}}\frac{d^{m}}{dz^{m}} P_n(z) + = \frac{1}{2^n n!}(1-z^2)^{\frac{m}{2}}\frac{d^{m+n}}{dz^{m+n}}(1-z^2)^n \end{equation} are known as Ferrers or associated Legendre functions. \end{definition} @@ -486,7 +486,8 @@ $P_n(z)$ by a $m$-th derivative, and obtain the following result. \int_{-1}^1 P^m_n(z) P^{m'}_{n'}(z) \, dz = \frac{2(m + n)!}{(2n + 1)(n - m)!} \delta_{nn'} = \begin{cases} - \frac{2(m + n)!}{(2n + 1)(n - m)!} & \text{if } n = n', \\ + \frac{2(m + n)!}{(2n + 1)(n - m)!} + & \text{if } n = n' \text{ and } m = m', \\ 0 & \text{otherwise}. \end{cases} \end{equation*} @@ -497,16 +498,26 @@ $P_n(z)$ by a $m$-th derivative, and obtain the following result. derivative is a pain to deal with.} \end{proof} -An interesting fact to observe in lemma -\ref{kugel:thm:associated-legendre-ortho} is that the orthogonality is only -affected in the lower index, while varying $m$ only changes the constant in -front of the Kronecker delta. By having the orthogonality relations of the -Legendre functions we can finally show that spherical harmonics are also -orthogonal. +By having the orthogonality relations of the Legendre functions we can finally +show that spherical harmonics are also orthogonal under the following inner +product: -\begin{lemma} For the spherical harmonics - \kugeltodo{Fix horizontal spacing, inner product definition is missing.} +\begin{definition}[Inner product in $S^2$] + For 2 complex valued functions $f(\vartheta, \varphi)$ and $g(\vartheta, + \varphi)$ on the surface of the sphere the inner product is defined to be + \begin{equation*} + \langle f, g \rangle + = \int_{-\pi}^\pi \int_0^{2\pi} + f(\vartheta, \varphi) \overline{g(\vartheta, \varphi)} + \sin \vartheta \, d\varphi \, d\vartheta. + \end{equation*} +\end{definition} + + +\begin{theorem} For the (unnormalized) spherical harmonics \label{kugel:thm:spherical-harmonics-ortho} + \kugeltodo{Why do I get a minus in front of $4\pi$??? It should not be there + right?} \begin{equation*} \langle Y^m_n, Y^{m'}_{n'} \rangle = \int_{-\pi}^\pi \int_0^{2\pi} @@ -518,7 +529,7 @@ orthogonal. 0 & \text{otherwise}. \end{cases} \end{equation*} -\end{lemma} +\end{theorem} \begin{proof} We will begin by doing a bit of algebraic maipulaiton: \begin{align*} @@ -558,7 +569,29 @@ orthogonal. \subsection{Normalization} -\kugeltodo{Discuss various normalizations.} +At this point we have shown that the spherical harmonics form an orthogonal +system, but in many applications we usually also want a normalization of some +kind. For example the most obvious desirable property could be for the spherical +harmonics to be ortho\emph{normal}, by which we mean that $\langle Y^m_n, +Y^{m'}_{n'} \rangle = \delta_{nn'}$. To obtain orthonormality, we simply add a +normalization factor in front of the previous definition +\ref{kugel:def:spherical-harmonics} as follows. + +\begin{definition}[Orthonormal spherical harmonics] + \label{kugel:def:spherical-harmonics-orthonormal} + The functions + \begin{equation*} + Y^m_n(\vartheta, \varphi) + = \sqrt{\frac{2n + 1}{4\pi} \frac{(n-m)!}{(m+n)!}} + P^m_n(\cos \vartheta) e^{im\varphi} + \end{equation*} + where $m, n \in \mathbb{Z}$ and $|m| < n$ are the orthonormal spherical + harmonics. +\end{definition} + +Orthornomality is very useful indeed, but it is not the only common +normalization that is found in the literature. In physics, quantum mechanics to +be more specific, it is common to use the so called Schmidt semi-normalization. \if 0 As explained in the chapter \ref{}, the concept of orthogonality is very important and at the practical level it is very useful, because it allows us to develop very powerful techniques at the mathematical level.\newline -- cgit v1.2.1 From d17d215c1fbfa384dd8edcc772df865f5819c1ab Mon Sep 17 00:00:00 2001 From: Marc Benz Date: Thu, 18 Aug 2022 20:07:48 +0200 Subject: first commit (without teil4) --- buch/papers/transfer/main.tex | 4 +- buch/papers/transfer/packages.tex | 5 + buch/papers/transfer/teil0.tex | 224 +++++++++++++++++++++++++++++++++++++- buch/papers/transfer/teil1.tex | 89 +++++++-------- buch/papers/transfer/teil2.tex | 66 +++++++++-- buch/papers/transfer/teil3.tex | 37 +++---- 6 files changed, 352 insertions(+), 73 deletions(-) diff --git a/buch/papers/transfer/main.tex b/buch/papers/transfer/main.tex index ed16998..60f8230 100644 --- a/buch/papers/transfer/main.tex +++ b/buch/papers/transfer/main.tex @@ -3,7 +3,7 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Transferfunktionen\label{chapter:transfer}} +\chapter{Transferfunktion Tangens hyperbolicus\label{chapter:transfer}} \lhead{Thema} \begin{refsection} \chapterauthor{Marc Benz} @@ -12,6 +12,8 @@ \input{papers/transfer/teil1.tex} \input{papers/transfer/teil2.tex} \input{papers/transfer/teil3.tex} +%\input{papers/transfer/teil4.tex} + \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/transfer/packages.tex b/buch/papers/transfer/packages.tex index ee51b71..98329d3 100644 --- a/buch/papers/transfer/packages.tex +++ b/buch/papers/transfer/packages.tex @@ -8,3 +8,8 @@ % following example %\usepackage{packagename} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows} +\usetikzlibrary{fit} +\usetikzlibrary{shapes.geometric} +\usepackage{subcaption} diff --git a/buch/papers/transfer/teil0.tex b/buch/papers/transfer/teil0.tex index 4bec5bd..f8c8cb4 100644 --- a/buch/papers/transfer/teil0.tex +++ b/buch/papers/transfer/teil0.tex @@ -3,9 +3,231 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Einleitung\label{transfer:section:teil0}} +\section{Motivation\label{transfer:section:teil0}} \rhead{Einleitung} +Die Transferfunktion ist einer der wichtigsten Bestandteile moderner neuraler Netzwerke. Sie verleiht ihnen die nicht Linearität, die benötigt wird um komplexere Aufgaben zu lösen. Dabei kann theoretisch jede nicht lineare Funktion eingesetzt werden. In der Praxis tauchen aber nur sehr wenige Funktionen mit ähnlichen Eigenschaften auf. Einige davon sind in der Tabelle \ref{tab:aktfkt} zu sehen. In der heutigen Zeit sind vor allem die Variationen der ReLu Funktion beliebt. Der Tangens hyperbolicus wird aber dank dem Aufkommen der Recurrent Neural Networks, zum Beispiel dem Long short term memory Netzwerk, das aus Zellen wie in \ref{motivation:figure:LSTM} gezeigt bestehen, wieder vermehrt eingesetzt. +Die klassische Berechnung ist aber sehr aufwendig und basiert auf Gleitkommaoperationen und relativ komplizierten Funktionen. Diese benötigen einen grossen Rechenaufwand. Vor allem auf Systemen die keine Gleitkommaarithmetik Hardware besitzen wie das zum Beispiel bei gewissen Mikrocontrollern der Fall ist. +\begin{table}[h] + \centering + \begin{tabular}{llll} + \hline + \multicolumn{1}{l}{Name} & \multicolumn{1}{l}{Function} & \multicolumn{1}{l}{Figure} \\ + \hline + Sigmoid & $\sigma(x)=\frac{1}{1+e^{-x}}$ & + \begin{tikzpicture}[baseline={(0,0.2)}] + \draw (-1,0) -- (1,0); + \draw (0,0) -- (0,1); + \draw[red] plot[domain=-1:1,variable=\x] ({\x},{1/(1+exp(-4*\x))}); + \end{tikzpicture}\\ + ReLU & $f(x) =\begin{cases} + 0 & ~\text{if}~ x<0 \\ + x & ~\text{if}~x \geq 0. + \end{cases}$ & + \begin{tikzpicture}[baseline={(0,0.5)}] + \draw (-1,0) -- (1,0); + \draw (0,0) -- (0,1); + \draw[red] plot[domain=-1:1,variable=\x] ({\x},{ifthenelse(\x<0,0,\x)}); + \end{tikzpicture}\\ + Leaky ReLu & $f(x) =\begin{cases} + 0 & ~\text{if}~ x<0 \\ + x & ~\text{if}~x \geq a \cdot x. + \end{cases}$ & + \begin{tikzpicture}[baseline={(0,0.5)}] + \draw (-1,0) -- (1,0); + \draw (0,0) -- (0,1); + \draw[red] plot[domain=-1:1,variable=\x] ({\x},{ifthenelse(\x<0,0.1*\x,\x)}); + \end{tikzpicture} + \end{tabular} + \caption{Transferfunktionen} + \label{tab:aktfkt} +\end{table} + +\begin{figure} +\centering +\begin{tikzpicture} + \begin{axis}[ + xmin=-2.5, xmax=2.5, + ymin=-1.5, ymax=1.5, + axis lines=center, + axis on top=true, + domain=-2.5:2.5, + ylabel=$y$, + xlabel=$x$, + ] + + \addplot [mark=none,draw=red,ultra thick] {tanh(\x)}; + \node [right, red] at (axis cs: 1,0.7) {$\tanh(x)$}; + + %% Add the asymptotes + \draw [blue, dotted, thick] (axis cs:-2.5,-1)-- (axis cs:0,-1); + \draw [blue, dotted, thick] (axis cs:+2.5,+1)-- (axis cs:0,+1); + \end{axis} +\end{tikzpicture} +\caption{Tangens hyperbolicus +\label{anleitung:figure:tanhyp}} +\end{figure} + +\begin{figure} +\centering +\tikzset{ + every node/.style={ + font=\scriptsize + }, + decision/.style={ + shape=rectangle, + minimum height=1cm, + text width=3cm, + text centered, + rounded corners=1ex, + draw, + label={[yshift=0.2cm]left:ja}, + label={[yshift=0.2cm]right:nein}, + }, + outcome/.style={ + shape=ellipse, + fill=gray!15, + draw, + text width=1.5cm, + text centered + }, + decision tree/.style={ + edge from parent path={[-latex] (\tikzparentnode) -| (\tikzchildnode)}, + sibling distance=4cm, + level distance=1.5cm + } +} + +\begin{tikzpicture} + + \node [decision] { $x>k \cdot \frac{\ln 10}{2}$ } + [decision tree] + child { node [outcome] { $+1$ } } + child { node [decision] { $x<-k \cdot \frac{\ln 10}{2}$} + child { node [outcome] { $-1$ } } + child { node [decision] { $-0,1=LaTeX, + % Styles + cell/.style={% For the main box + rectangle, + rounded corners=5mm, + draw, + very thick, + }, + operator/.style={%For operators like + and x + circle, + draw, + inner sep=-0.5pt, + minimum height =.2cm, + }, + function/.style={%For functions + ellipse, + draw, + inner sep=1pt + }, + ct/.style={% For external inputs and outputs + circle, + draw, + line width = .75pt, + minimum width=1cm, + inner sep=1pt, + }, + gt/.style={% For internal inputs + rectangle, + draw, + minimum width=4mm, + minimum height=3mm, + inner sep=1pt + }, + mylabel/.style={% something new that I have learned + font=\scriptsize\sffamily + }, + ArrowC1/.style={% Arrows with rounded corners + rounded corners=.25cm, + thick, + }, + ArrowC2/.style={% Arrows with big rounded corners + rounded corners=.5cm, + thick, + }, + ] + + %Start drawing the thing... + % Draw the cell: + \node [cell, minimum height =4cm, minimum width=6cm] at (0,0){} ; + + % Draw inputs named ibox# + \node [gt] (ibox1) at (-2,-0.75) {$\sigma$}; + \node [gt] (ibox2) at (-1.5,-0.75) {$\sigma$}; + \node [function, draw=red!60, fill=red!5] (ibox3) at (-0.5,-0.75) {$\tanh$}; + \node [gt] (ibox4) at (0.5,-0.75) {$\sigma$}; + + % Draw opérators named mux# , add# and func# + \node [operator] (mux1) at (-2,1.5) {$\times$}; + \node [operator] (add1) at (-0.5,1.5) {+}; + \node [operator] (mux2) at (-0.5,0) {$\times$}; + \node [operator] (mux3) at (1.5,0) {$\times$}; + \node [function, draw=red!60, fill=red!5] (func1) at (1.5,0.75) {$\tanh$}; + + % Draw External inputs named as basis c,h,x + \node[ct, label={[mylabel]}] (c) at (-4,1.5) {\empt{c}{t-1}}; + \node[ct, label={[mylabel]}] (h) at (-4,-1.5) {\empt{h}{t-1}}; + \node[ct, label={[mylabel]}] (x) at (-2.5,-3) {\empt{x}{t}}; + + % Draw External outputs? named as basis c2,h2,x2 + \node[ct, label={[mylabel]}] (c2) at (4,1.5) {\empt{c}{t}}; + \node[ct, label={[mylabel]}] (h2) at (4,-1.5) {\empt{h}{t}}; + \node[ct, label={[mylabel]}] (x2) at (2.5,3) {\empt{h}{t}}; + + % Start connecting all. + %Intersections and displacements are used. + % Drawing arrows + \draw [ArrowC1] (c) -- (mux1) -- (add1) -- (c2); + + % Inputs + \draw [ArrowC2] (h) -| (ibox4); + \draw [ArrowC1] (h -| ibox1)++(-0.5,0) -| (ibox1); + \draw [ArrowC1] (h -| ibox2)++(-0.5,0) -| (ibox2); + \draw [ArrowC1] (h -| ibox3)++(-0.5,0) -| (ibox3); + \draw [ArrowC1] (x) -- (x |- h)-| (ibox3); + + % Internal + \draw [->, ArrowC2] (ibox1) -- (mux1); + \draw [->, ArrowC2] (ibox2) |- (mux2); + \draw [->, ArrowC2] (ibox3) -- (mux2); + \draw [->, ArrowC2] (ibox4) |- (mux3); + \draw [->, ArrowC2] (mux2) -- (add1); + \draw [->, ArrowC1] (add1 -| func1)++(-0.5,0) -| (func1); + \draw [->, ArrowC2] (func1) -- (mux3); + + %Outputs + \draw [-, ArrowC2] (mux3) |- (h2); + \draw (c2 -| x2) ++(0,-0.1) coordinate (i1); + \draw [-, ArrowC2] (h2 -| x2)++(-0.5,0) -| (i1); + \draw [-, ArrowC2] (i1)++(0,0.2) -- (x2); + +\end{tikzpicture} +\caption{Long short term memory cell +\label{motivation:figure:LSTM}} +\end{figure} + diff --git a/buch/papers/transfer/teil1.tex b/buch/papers/transfer/teil1.tex index 611e1ea..f117fc0 100644 --- a/buch/papers/transfer/teil1.tex +++ b/buch/papers/transfer/teil1.tex @@ -3,53 +3,54 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Padé-Approximation +\section{Taylorapproximation \label{transfer:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt +\subsection{Idee} +Die Taylorreihe kann eine glatte Funktion in einer Umgebung durch Polynome beliebig genau annähern. Beschränkt man sich auf einen bestimmten Grad dieser Polynome, spricht man von einer Taylorapproximation. Diese entwickelt sich immer um einen Punkt und kann über die Ableitungen berechnet werden. + +\subsection{Definition der Taylorreihe} +Sei $I \subset \mathbb{R}$ ein offenes Intervall, $f: I \rightarrow \mathbb{R}$ eine glatte Funktion und $a$ ein Element von $I$. Dann ist die unendliche Reihe \begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{transfer:equation1} + T_{f(x ; a)}=\sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n !}(x-a)^{n}=f(a)+f^{\prime}(a)(x-a)+\frac{f^{\prime \prime}(a)}{2}(x-a)^{2}+\frac{f^{\prime \prime \prime}(a)}{6}(x-a)^{3}+\ldots \end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{transfer:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. +eine Taylorreihe. -Et harum quidem rerum facilis est et expedita distinctio -\ref{transfer:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{transfer:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. +\subsection{Beispiel} +In diesem Beispiel wird die Taylorapproximation mit dem Grad 2 des Tangens hyperbolicus um den Punkt Null berechnet. +$$ + \tanh \approx T_{2} \tanh(x ; a)=\tanh(a)+\tanh^{\prime}(a) \cdot(x-a)+\frac{\tanh^{\prime \prime}(a) \cdot(x-a)^{2}}{2} +$$ +mit $a = 0$ folgt +$$ + T_{2} \tanh(x ; 0)=\tanh(0)+\tanh^{\prime}(0) \cdot(x)+\frac{\tanh^{\prime \prime}(0) \cdot(x)^{2}}{2} = 0 + x + 0 = x +$$ +\begin{figure} +\centering +\begin{tikzpicture} + \begin{axis}[ + xmin=-2.5, xmax=2.5, + ymin=-1.5, ymax=1.5, + axis lines=center, + axis on top=true, + domain=-2.5:2.5, + ylabel=$y$, + xlabel=$x$, + ] + + \addplot [mark=none,draw=red,thick] {tanh(\x)}; + \node [right, red] at (axis cs: 1.4,0.7) {$\tanh(x)$}; + \addplot [mark=none,draw=blue,ultra thick, samples=100, smooth] expression{x-(x^3)/3+ (2*x^5)/15-(17 * x^7)/315}; + \node [right, blue] at (axis cs: -1.8,0.7) {$Taylorapprox.$}; + + %% Add the asymptotes + \draw [blue, dotted, thick] (axis cs:-2.5,-1)-- (axis cs:0,-1); + \draw [blue, dotted, thick] (axis cs:+2.5,+1)-- (axis cs:0,+1); + \end{axis} +\end{tikzpicture} +\caption{Taylorapproximation des Grades 7 +\label{motivation:figure:Taylor}} +\end{figure} +\subsection{Problem} +Wie in Abbildung \ref{motivation:figure:Taylor} ersichtlich, ist der Approximationsfehler sogar bei Grad 7 des Polynoms sehr gross. Dies liegt ist unter anderem an der Unbeschränktheit, die solche Polynome besitzen. diff --git a/buch/papers/transfer/teil2.tex b/buch/papers/transfer/teil2.tex index d79d80c..aae81a7 100644 --- a/buch/papers/transfer/teil2.tex +++ b/buch/papers/transfer/teil2.tex @@ -1,18 +1,68 @@ % -% teil2.tex -- Beispiel-File für teil2 +% teil1.tex -- Beispiel-File für das Paper % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{MiniMax-Polinom +\section{Padé-Approximation \label{transfer:section:teil2}} -\rhead{MiniMax-Polinom} +\rhead{} +\subsection{Idee + \label{transfer:pade:idee}} +Die Taylorapproximation ist für den Gebrauch als Ersatz des Tangenshyperbolicus als Transferfunktion nicht brauchbar. Die Padé-Approximation kann die grössten Probleme aber entschärfen und dies mit sehr begrenztem zusätzlichen Rechenaufwand. Dafür wird die Taylorapproximation in einen Bruch von zwei Polynom zerlegt. +\subsection{Definition +\label{transfer:pade:definition}} +Sei +\begin{equation} + R(x)=\frac{\sum_{j=0}^{m} a_{j} x^{j}}{1+\sum_{k=1}^{n} b_{k} x^{k}}=\frac{a_{0}+a_{1} x+a_{2} x^{2}+\cdots+a_{m} x^{m}}{1+b_{1} x+b_{2} x^{2}+\cdots+b_{n} x^{n}} +\end{equation} +und gilt +\begin{gather*} + f(0) =R(0) \\ + f^{\prime}(0) =R^{\prime}(0) \\ + f^{\prime \prime}(0) =R^{\prime \prime}(0) \\ + \vdots \\ + f^{(m+n)}(0) =R^{(m+n)}(0), +\end{gather*} +so ist $R(x)$ die Padé-Approximation von $f(x)$. +\subsection{Beispiel + \label{transfer:pade:beispiel}} +Sei $f(x) = \tanh (x)$ und $T_{5} \tanh(x ; a) = x-\frac{x^{3}}{3}+\frac{2 x^{5}}{15}$, dann gilt +$$ + \begin{gathered} + [3 / 2]_{f}(x) = \frac{A_{0}+A_{1} x+A_{2} x^{2}+A_{3} x^{3}}{B_{0}+B_{1} x+B_{2} x^{2}}=x-\frac{x^{3}}{3}+\frac{2 x^{5}}{15}+O\left(x^{6}\right), B_{0} = 1,\\ + \Downarrow \\ + [3 / 2]_{f}(x) = \frac{15x+x^3}{15+6x^2} +\end{gathered} +$$ + +\begin{figure} +\centering +\begin{tikzpicture} + \begin{axis}[ + xmin=-3.5, xmax=3.5, + ymin=-1.5, ymax=1.5, + axis lines=center, + axis on top=true, + domain=-3.5:3.5, + ylabel=$y$, + xlabel=$x$, + ] + + \addplot [mark=none,draw=red,thick] {tanh(\x)}; + \node [right, red] at (axis cs: 1.4,0.7) {$\tanh(x)$}; + \addplot [mark=none,draw=blue,ultra thick, samples=100, smooth] expression{x*(15+x^2)/(15+6*x^2)}; + \node [right, blue] at (axis cs: -1.8,0.7) {$Padé$}; + + %% Add the asymptotes + \draw [blue, dotted, thick] (axis cs:-2.5,-1)-- (axis cs:0,-1); + \draw [blue, dotted, thick] (axis cs:+2.5,+1)-- (axis cs:0,+1); + \end{axis} +\end{tikzpicture} +\caption{$[3 / 2]_{f}(x)$ +\label{motivation:figure:Pade32}} +\end{figure} -\subsection{Problemstellung -\label{transfer:subsection:bonorum}} -\[ -\max _{a \leq x \leq b}|\operatorname{TanH}(x)-P(x)| -\] diff --git a/buch/papers/transfer/teil3.tex b/buch/papers/transfer/teil3.tex index 4464875..5bbe0c1 100644 --- a/buch/papers/transfer/teil3.tex +++ b/buch/papers/transfer/teil3.tex @@ -1,27 +1,26 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% teil2.tex -- Beispiel-File für teil2 % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{K-Tanh +\section{MiniMax-Polynom \label{transfer:section:teil3}} -\rhead{K-Tanh} +\rhead{MiniMax-Polynom} -\subsection{Algorithmus -\label{transfer:subsection:Ktanh-Algorithmus}} -\cite{transfer:DBLP:journals/corr/abs-1909-07729} -\subsubsection{Vereinfacht -\label{transfer:subsection:Ktanh-Algorithmus:Vereinfacht}} -Negative Werte werden nicht separat behandelt. Diese werden dank der Syymertrie um den Ursprung mit einem einfachen Vorzeichenwechsel aus den positiven berechnet. -Für $x < 0.25$ gilt $y = x$. -Ist $x > 3.75$ gitl $y = 1$. -Ist der Wert zwischen diesen Grenzen, werden über einen Lookuptable geeignete Werte gefunden um aus dem $x$ die Approximation des Tanh zu berechnen. -Dafür werden eine bestimmte Anzahl LSBs des Exponenten und MSBs der Mantisse zu einem Index $t$ zusammengestzt. Der dann die Stelle im Lookuptable zeigt. -Damit werden die richtigen Werte für $E_{t}, r_{t}, b_{t}$ aus der Tabelle, die im Vorhinein schon berechnet wurden, ausgelesen. -Damit hat man das $E$ bereits gefunden und mit der Formel -\[ - M_{o} \leftarrow\left(M_{i} \gg r\right)+b -\] -kann das neue $M$ berechnet werden. +\subsection{Idee +\label{transfer:subsection:idee}} +Finde das Polynom eines bestimmten Grades, welches eine Funktion in einem Intervall am besten approximiert. + + +\subsection{Definition + \label{transfer:subsection:definition}} +Das Polynom welches + $$ \max _{a \leq x \leq b}|f(x)-P(x)| , a \in \mathbb{R}, b \in \mathbb{R}.$$ +minimiert. +\subsection{Beispiel + \label{transfer:subsection:beispiel}} +Um ein MiniMax-Polynom zu berechnen, kann der Remez-Algorithmus verwendet werden. Dieser basiert im wesentlichen auf dem Alternantensatz von Tschebyschow. + + -- cgit v1.2.1 From 2180deab391444f58ce2a2f20d13f01c0cb69be7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 18 Aug 2022 20:09:42 +0200 Subject: new images --- .../070-orthogonalitaet/gaussquadratur.tex | 2 +- buch/chapters/070-orthogonalitaet/orthogonal.tex | 1 + buch/papers/parzyl/images/Makefile | 16 ++ buch/papers/parzyl/images/common.inc | 64 +++++++ buch/papers/parzyl/images/halfplane.jpg | Bin 0 -> 200681 bytes buch/papers/parzyl/images/halfplane.pdf | Bin 0 -> 208606 bytes buch/papers/parzyl/images/halfplane.png | Bin 0 -> 473623 bytes buch/papers/parzyl/images/halfplane.pov | 201 +++++++++++++++++++++ buch/papers/parzyl/images/halfplane.tex | 41 +++++ 9 files changed, 324 insertions(+), 1 deletion(-) create mode 100644 buch/papers/parzyl/images/Makefile create mode 100644 buch/papers/parzyl/images/common.inc create mode 100644 buch/papers/parzyl/images/halfplane.jpg create mode 100644 buch/papers/parzyl/images/halfplane.pdf create mode 100644 buch/papers/parzyl/images/halfplane.png create mode 100644 buch/papers/parzyl/images/halfplane.pov create mode 100644 buch/papers/parzyl/images/halfplane.tex diff --git a/buch/chapters/070-orthogonalitaet/gaussquadratur.tex b/buch/chapters/070-orthogonalitaet/gaussquadratur.tex index a5af7d2..c7dfb31 100644 --- a/buch/chapters/070-orthogonalitaet/gaussquadratur.tex +++ b/buch/chapters/070-orthogonalitaet/gaussquadratur.tex @@ -20,7 +20,7 @@ Ein solches Polynom $p(x)$ hat $n+1$ Koeffizienten, die aus dem linearen Gleichungssystem der $n+1$ Gleichungen $p(x_i)=f(x_i)$ ermittelt werden können. -Das Interpolationspolynom $p(x)$ lässt sich abera uch direkt +Das Interpolationspolynom $p(x)$ lässt sich aber auch direkt angeben. Dazu konstruiert man zuerst die Polynome \[ diff --git a/buch/chapters/070-orthogonalitaet/orthogonal.tex b/buch/chapters/070-orthogonalitaet/orthogonal.tex index df04514..793b78d 100644 --- a/buch/chapters/070-orthogonalitaet/orthogonal.tex +++ b/buch/chapters/070-orthogonalitaet/orthogonal.tex @@ -641,6 +641,7 @@ H_w f\colon(a,b) \to \mathbb{R} \;\bigg|\; \int_a^b |f(x)|^2 w(x)\,dx +<\infty \biggr\}. \] Die Funktionen $f\in H_w$ haben folgende Eigenschaften diff --git a/buch/papers/parzyl/images/Makefile b/buch/papers/parzyl/images/Makefile new file mode 100644 index 0000000..4bd13ec --- /dev/null +++ b/buch/papers/parzyl/images/Makefile @@ -0,0 +1,16 @@ +# +# Makefile to build 3d images +# +# (c) 2022 Prof Dr Andreas Müller +# + +all: halfplane.pdf + +halfplane.pdf: halfplane.tex halfplane.jpg + pdflatex halfplane.tex +halfplane.png: halfplane.pov + povray +A0.1 -W1920 -H1080 -Ohalfplane.png halfplane.pov +halfplane.jpg: halfplane.png Makefile + convert -extract 1280x1080+340+0 halfplane.png \ + -density 300 -units PixelsPerInch halfplane.jpg + diff --git a/buch/papers/parzyl/images/common.inc b/buch/papers/parzyl/images/common.inc new file mode 100644 index 0000000..28aed2b --- /dev/null +++ b/buch/papers/parzyl/images/common.inc @@ -0,0 +1,64 @@ +// +// common.inc -- some common useful tools for drawing 3d images +// +// (c) 2018 Prof Dr Andreas Müller, Hochschule Rapperswil +// + +// +// draw a right angle quarter circle at point with legs and and +// color +// +#declare rechterwinkelradius = 0.5; +#declare rechterwinkelthickness = 0.01; +#macro rechterwinkel(o, v1, v2, c) +intersection { + sphere { o, rechterwinkelradius } + #declare rnormale = vnormalize(vcross(v1, v2)); + plane { rnormale, vdot(o, rnormale) + rechterwinkelthickness * rechterwinkelradius / 0.5 } + plane { -rnormale, -vdot(o, rnormale) + rechterwinkelthickness * rechterwinkelradius / 0.5 } + plane { -v1, -vdot(o, v1) } + plane { -v2, -vdot(o, v2) } + pigment { + color c + } +} +sphere { o + 0.45 * (vnormalize(v1) +vnormalize(v2)) * rechterwinkelradius, + 0.05 * rechterwinkelradius / 0.5 + pigment { + color c + } +} +#end + +// +// draw an arrow from to with thickness with +// color +// +#macro arrow(from, to, arrowthickness, c) + #declare arrowdirection = vnormalize(to - from); + #declare arrowlength = vlength(to - from); + union { + sphere { + from, 1.1 * arrowthickness + } + cylinder { + from, + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + arrowthickness + } + cone { + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + 2 * arrowthickness, + to, + 0 + } + pigment { + color c + } + finish { + specular 0.9 + metallic + } + } +#end + diff --git a/buch/papers/parzyl/images/halfplane.jpg b/buch/papers/parzyl/images/halfplane.jpg new file mode 100644 index 0000000..8cb5ae3 Binary files /dev/null and b/buch/papers/parzyl/images/halfplane.jpg differ diff --git a/buch/papers/parzyl/images/halfplane.pdf b/buch/papers/parzyl/images/halfplane.pdf new file mode 100644 index 0000000..7275810 Binary files /dev/null and b/buch/papers/parzyl/images/halfplane.pdf differ diff --git a/buch/papers/parzyl/images/halfplane.png b/buch/papers/parzyl/images/halfplane.png new file mode 100644 index 0000000..5beefa0 Binary files /dev/null and b/buch/papers/parzyl/images/halfplane.png differ diff --git a/buch/papers/parzyl/images/halfplane.pov b/buch/papers/parzyl/images/halfplane.pov new file mode 100644 index 0000000..419bb67 --- /dev/null +++ b/buch/papers/parzyl/images/halfplane.pov @@ -0,0 +1,201 @@ +// +// 3dimage.pov +// +// (c) 2022 Prof Dr Andreas Müller +// +#version 3.7; +#include "colors.inc" +#include "skies.inc" +#include "common.inc" + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.63; +#declare ar = 0.02; + +#declare Cameracenter = <5,3,-4>; +#declare Worldpoint = <0,-0.80, 0>; +#declare Lightsource = < 7,10,-3>; +#declare Lightdirection = vnormalize(Lightsource - Worldpoint); +#declare Lightaxis1 = vnormalize(vcross(Lightdirection, <0,1,0>)); +#declare Lightaxis2 = vnormalize(vcross(Lightaxis1, Lightdirection)); + +camera { + location Cameracenter + look_at Worldpoint + right 16/9 * x * imagescale + up y * imagescale +} + +light_source { + Lightsource color White + area_light Lightaxis1 Lightaxis2, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color White + } +} + +arrow( <-2.1, 0, 0 >, < 2.2, 0, 0 >, ar, White) +arrow( < 0, -1.1, 0 >, < 0, 1.3, 0 >, ar, White) +arrow( < 0, 0, -2 >, < 0, 0, 2.2 >, ar, White) + +#declare planecolor = rgb<0.2,0.6,1.0>; +#declare r = 0.01; + +#macro planebox() + box { <-2.1,-1.1,-2.1>, <0,1.1,2.1> } +#end + +intersection { + plane { <0, 0, 1>, 0.001 } + plane { <0, 0, -1>, 0.001 } + planebox() + pigment { + color planecolor transmit 0.3 + } + finish { + metallic + specular 0.95 + } +} + +#declare Xstep = 0.2; + +intersection { + union { + #declare X = 0; + #while (X > -2.5) + cylinder { , , r } + #declare X = X - Xstep; + #end + + #declare Y = Xstep; + #while (Y < 2.5) + cylinder { <-3, Y, 0>, <0, Y, 0>, r } + cylinder { <-3, -Y, 0>, <0, -Y, 0>, r } + #declare Y = Y + Xstep; + #end + } + planebox() + pigment { + color planecolor + } + finish { + metallic + specular 0.95 + } +} + +#declare parammin = -4; +#declare parammax = 4; +#declare paramsteps = 100; +#declare paramstep = (parammax - parammin) / paramsteps; + +#macro punkt(sigma, tau, Z) + < + 0.5 * (tau*tau - sigma*sigma) + Z, + sigma * tau, + > +#end + +#macro sigmasurface(sigma, farbe) + #declare taumin1 = 2/sigma; + #declare taumin2 = sqrt(4+sigma*sigma); + #if (taumin1 > taumin2) + #declare taumin = -taumin2; + #else + #declare taumin = -taumin1; + #end + + mesh { + #declare tau = taumin; + #declare taumax = -taumin; + #declare taustep = (taumax - taumin) / paramsteps; + #while (tau < taumax - taustep/2) + triangle { + punkt(sigma, tau, -1), + punkt(sigma, tau, 0), + punkt(sigma, tau + taustep, -1) + } + triangle { + punkt(sigma, tau + taustep, -1), + punkt(sigma, tau + taustep, 0), + punkt(sigma, tau, 0) + } + #declare tau = tau + taustep; + #end + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } + } + + union { + #declare tau = taumin; + #declare taumax = -taumin; + #declare taustep = (taumax - taumin) / paramsteps; + #while (tau < taumax - taustep/2) + sphere { punkt(sigma, tau, 0), r } + cylinder { + punkt(sigma, tau, 0), + punkt(sigma, tau + taustep, 0), + r + } + #declare tau = tau + taustep; + #end + sphere { punkt(sigma, tau, 0), r } + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } + + } +#end + +#declare greensurfacecolor = rgb<0.6,1.0,0.6>; +#declare redsurfacecolor = rgb<1.0,0.6,0.6>; + +sigmasurface(0.25, greensurfacecolor) +sigmasurface(0.5, greensurfacecolor) +sigmasurface(0.75, greensurfacecolor) +sigmasurface(1, greensurfacecolor) +sigmasurface(1.25, greensurfacecolor) +sigmasurface(1.5, greensurfacecolor) +sigmasurface(1.75, greensurfacecolor) +sigmasurface(2, greensurfacecolor) + +union { + sigmasurface(0.25, redsurfacecolor) + sigmasurface(0.5, redsurfacecolor) + sigmasurface(0.75, redsurfacecolor) + sigmasurface(1.00, redsurfacecolor) + sigmasurface(1.25, redsurfacecolor) + sigmasurface(1.5, redsurfacecolor) + sigmasurface(1.75, redsurfacecolor) + sigmasurface(2, redsurfacecolor) + rotate <0, 180, 0> +} + +box { <-2,-1,-2>, <2,-0.99,2> + pigment { + color rgb<1.0,0.8,0.6> transmit 0.8 + } + finish { + specular 0.9 + metallic + } +} diff --git a/buch/papers/parzyl/images/halfplane.tex b/buch/papers/parzyl/images/halfplane.tex new file mode 100644 index 0000000..e470057 --- /dev/null +++ b/buch/papers/parzyl/images/halfplane.tex @@ -0,0 +1,41 @@ +% +% halfplane.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{times} +\usepackage{amsmath} +\usepackage{txfonts} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usetikzlibrary{arrows,intersections,math} +\usepackage{ifthen} +\begin{document} + +\newboolean{showgrid} +\setboolean{showgrid}{false} +\def\breite{5} +\def\hoehe{4} + +\begin{tikzpicture}[>=latex,thick] + +% Povray Bild +\node at (0,0) {\includegraphics[width=10cm]{halfplane.jpg}}; + +% Gitter +\ifthenelse{\boolean{showgrid}}{ +\draw[step=0.1,line width=0.1pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw[step=0.5,line width=0.4pt] (-\breite,-\hoehe) grid (\breite, \hoehe); +\draw (-\breite,-\hoehe) grid (\breite, \hoehe); +\fill (0,0) circle[radius=0.05]; +}{} + +\node at (0,3.7) {$z$}; +\node at (3.3,-0.3) {$x$}; +\node at (2.7,2.5) {$y$}; + +\end{tikzpicture} + +\end{document} + -- cgit v1.2.1 From 2ee9b8e8cff3bbcb688c24cc882a2c4db0a6d4f6 Mon Sep 17 00:00:00 2001 From: Marc Benz Date: Thu, 18 Aug 2022 20:22:16 +0200 Subject: teil4 --- buch/papers/transfer/teil4.tex | 218 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 buch/papers/transfer/teil4.tex diff --git a/buch/papers/transfer/teil4.tex b/buch/papers/transfer/teil4.tex new file mode 100644 index 0000000..d652e2d --- /dev/null +++ b/buch/papers/transfer/teil4.tex @@ -0,0 +1,218 @@ +% +% teil4.tex +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{K-Tanh +\label{transfer:section:teil4}} +\rhead{K-Tanh} + +\subsection{Idee + \label{transfer:subsection:Ktanh-Idee}} +Um die Berechnung des Tangens hyperbolicus wirklich zu beschleunigen, braucht es einen Algorithmus, der ohne Gleitkommaoperationen auskommt. Um dies zu bewerkstelligen, ist eine Unterteilung der Funktion in mehrere Abschnitte nötig. Diese können dann linear approximiert werden. Die dazugehörigen Parameter können einmal berechnet werden und zu Rechenzeit aus einem LUT????? gelesen und danach mit integer Operationen verrechnet werden. + + +\subsection{Definitionen + \label{transfer:subsection:Ktanh-Definition}} + +\subsubsection{Gleitkommazahlen nach IEEE-754 + \label{transfer:subsection:Ktanh-Algorithmus:Gleitkommazahl}} +Da ein Computer nur mit binären Werten arbeiten kann, müssen Zahlen durch sogenannte Gleitkommazahlen approximiert werden. Dafür wird die Zahl in zwei Teile aufgeteilt, die Mantisse und den Exponenten. Die Zahl setzt sich dann wie folgt zusammen: +$$ +\begin{array}{|l|l|l|} + \hline S & E & M \\ + \hline +\end{array} +$$ +Aus dem sich die Dezimalzahl wie folgt berechnet +$$ +x=s \cdot m \cdot b^{e} +$$ +wobei +$$ +\begin{aligned} + &s=(-1)^{S} \\ + &e=E-B\\ + &B=2^{r-1}-1 + &m=1+M / 2^{p} +\end{aligned} +$$ +mit $r$ = Anzahl der Exponenten bits und p = Anzahl mantisse Bits. + + +\subsubsection{K-tanh Algorithmus +\label{transfer:subsection:Ktanh-Algorithmus}} +\cite{transfer:DBLP:journals/corr/abs-1909-07729} + +Negative Werte werden nicht separat behandelt. Diese werden dank der Symertrie um den Ursprung mit einem einfachen Vorzeichenwechsel aus den positiven berechnet. +Für $x < 0.25$ gilt $y = x$. +Ist $x > 3.75$ gitl $y = 1$. +Ist der Wert zwischen diesen Grenzen, werden über einen Lookuptable geeignete Werte gefunden um aus dem $x$ die Approximation des Tanh zu berechnen. +Dafür werden eine bestimmte Anzahl LSBs des Exponenten und MSBs der Mantisse zu einem Index $t$ zusammengestzt. Der dann die Stelle im Lookuptable zeigt. +Damit werden die richtigen Werte für $E_{t}, r_{t}, b_{t}$ aus der Tabelle, die im Vorhinein schon berechnet wurden, ausgelesen. +Damit hat man das $E$ bereits gefunden und mit der Formel +\[ + M_{o} \leftarrow\left(M_{i} \gg r\right)+b +\] + +kann das neue $M$ berechnet werden. + +\begin{figure} +\centering +\tikzset{ + every node/.style={ + font=\scriptsize + }, + decision/.style={ + shape=rectangle, + minimum height=1cm, + text width=3cm, + text centered, + rounded corners=1ex, + draw, + label={[yshift=0.2cm]left:ja}, + label={[yshift=0.2cm]right:nein}, + }, + outcome/.style={ + shape=ellipse, + fill=gray!15, + draw, + text width=1.5cm, + text centered + }, + decision tree/.style={ + edge from parent path={[-latex] (\tikzparentnode) -| (\tikzchildnode)}, + sibling distance=4cm, + level distance=1.5cm + } +} +\begin{tikzpicture} + + \node [decision] { $x<0.25$ } + [decision tree] + child { node [outcome] { $x$ } } + child { node [decision] { $x>3.75$} + child { node [outcome] { $1$ } } + child { node [outcome] { $K-tanh$ } } + }; + +\end{tikzpicture} +\caption{Gesamter Algorithmus +\label{motivation:figure:gesalgo}} +\end{figure} + +\begin{figure} +\centering +\begin{tikzpicture} + [>=stealth', auto, node distance=2cm, scale=1.2] + + \tikzstyle{dot} = [circle, draw, fill, inner sep=0.03cm] + + \tikzstyle{brace} = [decorate, decoration={brace,amplitude=4pt}] + + \begin{scope}[] + + \node[ minimum width=0.5cm] (s) at (0, 0) {$s$}; + \node[anchor=west, minimum width=1.5cm] (e) at (s.east) {$E_i$}; + \node[anchor=west, minimum width=1.5cm] (m) at (e.east) {$M_i$}; + \draw[blue] (e.north west) -- (e.south west) (e.north east) -- (e.south east); + \node[draw, green!50!black, rounded corners=0.1cm, fit=(s) (e) (m), inner sep = 0] (a) {}; + + \node[minimum width=0.5cm] (s) at (5, 0) {$s$}; + \node[anchor=west, minimum width=1.5cm] (e) at (s.east) {$E_o$}; + \node[anchor=west, minimum width=1.5cm] (m) at (e.east) {$M_o$}; + \draw[blue] (e.north west) -- (e.south west) (e.north east) -- (e.south east); + \node[draw, green!50!black, rounded corners=0.1cm, fit=(s) (e) (m), inner sep = 0] (b) {}; + + \draw[yshift=-0.4cm, decorate,decoration={brace,amplitude=4pt}] (a.south) ++(0, -0.2) +(0.5,0) -- +(-0.5,0 ); + + \node[draw=black, fill=black!20, minimum width=1.5cm, minimum height= 2cm, below=1cm of a] (lut) {}; + + \node[draw=blue, inner sep=0.2cm, right = 1.5cm of lut, align=left] (box) {$E_0 \gets E$ \\ $M_0 \gets (M_i \gg r) + b$}; + + \draw[->] (a.south) +(0, -0.5) -- (lut); + \draw[->] (lut) -- node[above]{$(E,r,b)$} (box); + \draw[->] (box) -| ([xshift=0.5cm, yshift=-0.3cm]b.south); + + \end{scope} + +\end{tikzpicture} +\caption{Ablauf der K-tanh Berechnung +\label{motivation:figure:Ktanhablauf}} +\end{figure} + + +\subsection{Beispiel +\label{transfer:subsection:Ktanh-Algorithmus:Beispiel}} + +%TODO + +In diesem Abschnitt wird das Verfahren am einem Beispiel mit dem BFloat16 erklärt. Das bedeutet die Gleitkommazahlen werden mit 8 Exponenten, 7 Mantisse und einem Vorzeichen bit dargestellt. + +\subsubsection{Algorithmus für die Bestimmung der Parameter + \label{transfer:subsection:Ktanh-Algorithmus:Algo}} + +\begin{enumerate} + \item Wir berechnen zuerst den Tanh für ein gegebenes x und finden die zugehörige BFloat16-Darstellung. + \[ + y_{i}=\operatorname{TanH}\left(x_{i}\right)=(-1)^{s} \cdot 2^{E_{i}} \cdot\left(1+M_{i} / 2^{q}\right) + \] + + \item Sollten die Exponenten in einem Intervall $t$ nicht gleich sein, muss ein gemeinsamer Exponent gefunden werden, so dass + $$ + \underset{E, \hat{M}_{i} \in \mathbb{Z}}{\operatorname{argmin}} \sum_{i}\left(y_{i}-\hat{y}_{i}\right)^{2}, \quad \text { mit } \quad E \in\left\{E_{i}\right\}, \hat{M}_{i} \in[0,127] + $$ + minimiert wird. Was bedeutet, dass der Exponent mit welchem der kleinsten quadrierten und aufsummierten Fehler entsteht gewählt wird. + ?????We pick E from the set of exponents {Ei}. If E = Ej , + then, Mˆ + j = Mj , for all j. If E > Ej , then, Mˆ + j = 0. + Similarly, for E < Ej , Mˆ + j = 2q − 1. Store this E in the + parameter table TE.????? + \item Um den Verschiebungsparameter r und den Additionsterm b zu finden, muss das folgende Optimierungsproblem gelöst werden. Auch hier wird einfach der kleinste quadrierte und aufsummierte Fehler gesucht wird. + $$ + \begin{array}{ll} + & \underset{r, b \in \mathbb{Z}}{\operatorname{argmin}} \sum_{i}\left(\hat{M}_{i}-\left(m_{i} / 2^{r}+b\right)\right)^{2} \\ + \text { mit } & 0 \leq r \leq r_{\max } \leq p, \quad b_{\min } \leq b \leq b_{\max } + \end{array} + $$ + Dabei müssen $r_max$, $b_min$ und $b_max$ sorgfältig gewählt werden, so dass kein +\end{enumerate} + +\subsubsection{Numerisches Beispiel + \label{transfer:subsection:Ktanh-Algorithmus:Num}} +Zum Index $t = 00000$ gehört neben Anderen der Wert $x_i = 2$. Denn mit \ref{transfer:subsection:Ktanh-Algorithmus:Gleitkommazahl} folgt + +$$ +\begin{array}{|l|l|l|} + \hline S_i & E_{i} & M_{i} \\ + \hline 0 & 100000 \textbf{00} & \textbf{000} 0000 \\ + \hline +\end{array} +$$ +Der dazugehörige Tanh Wert ist +$y_i = \tanh{x_i}=0.96402758\ldots$. Es lässt sich die dazugehörige BFloat-16-Darstellung finden + +$$ +\begin{array}{|l|l|l|} + \hline S_{y_{i}} & E_{y_{i}} & M_{y_{i}} \\ + \hline 0 & 01111110 & 1110110 \\ + \hline +\end{array} +$$ +Nun müssen alle anderen Werte dieses Intervalls $t = 00000$ ausgewertet werden. Stimmen nicht alle Exponenten der $S_{y}$ überein, so muss noch ein gemeinsamer Exponent mit dem Optimierungproblem \ref{} gefunden werden. Danach kann der Verschiebe- und Additionsfaktor für das Intervall berechnet werden. +Es ergeben sich die Werte: +$$ +\begin{array}{c|ccc} + \text { Index } t & E_{t} & r_{t} & b_{t} \\ + \hline 00111 & 126 & 2 & 119 +\end{array} +$$ + + + + + + + -- cgit v1.2.1 From ba10db69df3698d33190384cfd95a73949741a5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 18 Aug 2022 20:54:24 +0200 Subject: remove subcaption package --- buch/papers/transfer/packages.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buch/papers/transfer/packages.tex b/buch/papers/transfer/packages.tex index 98329d3..fa7069a 100644 --- a/buch/papers/transfer/packages.tex +++ b/buch/papers/transfer/packages.tex @@ -12,4 +12,4 @@ \usetikzlibrary{arrows} \usetikzlibrary{fit} \usetikzlibrary{shapes.geometric} -\usepackage{subcaption} +%\usepackage{subcaption} -- cgit v1.2.1 From aea9cc922545bd617166b89edc353c2c2f180106 Mon Sep 17 00:00:00 2001 From: Alain Date: Thu, 18 Aug 2022 22:14:37 +0200 Subject: verbesserungen --- buch/papers/parzyl/teil1.tex | 12 ++++++------ buch/papers/parzyl/teil3.tex | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index 13d8109..2caabde 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -13,13 +13,13 @@ Die Lösung ist somit i(z) = A\cos{ - \left ( - \sqrt{\lambda + \mu}z + \left ( z + \sqrt{\lambda + \mu} \right )} + B\sin{ - \left ( - \sqrt{\lambda + \mu}z + \left ( z + \sqrt{\lambda + \mu} \right )}. \end{equation} Die Differentialgleichungen \eqref{parzyl:sep_dgl_1} und \eqref{parzyl:sep_dgl_2} werden in \cite{parzyl:whittaker} @@ -51,7 +51,7 @@ mit Hilfe der Whittaker Gleichung gelöst. M_{k, -m} \left(x\right) \end{equation*} gehören zu den Whittaker Funktionen und sind Lösungen - von der Whittaker Differentialgleichung + der Whittaker Differentialgleichung \begin{equation} \frac{d^2W}{d x^2} + \biggl( -\frac{1}{4} + \frac{k}{x} + \frac{\frac{1}{4} - m^2}{x^2} \biggr) W = 0. @@ -95,7 +95,7 @@ $w$ als Lösung haben. % - k, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2). %\end{align} -In der Literatur gibt es verschiedene Standartlösungen für +In der Literatur gibt es verschiedene Standardlösungen für \eqref{parzyl:eq:weberDiffEq}, wobei die Differentialgleichung jeweils unterschiedlich geschrieben wird. Whittaker und Watson zeigen in \cite{parzyl:whittaker} die Lösung diff --git a/buch/papers/parzyl/teil3.tex b/buch/papers/parzyl/teil3.tex index 166eebf..6432905 100644 --- a/buch/papers/parzyl/teil3.tex +++ b/buch/papers/parzyl/teil3.tex @@ -12,9 +12,9 @@ %Die parabolischen Zylinderfunktionen, welche in Gleichung \ref{parzyl:eq:solution_dgl} gegeben sind, %können auch als Potenzreihen geschrieben werden Die parabolischen Zylinderfunktionen können auch als Potenzreihen geschrieben werden. -Im folgenden Abschnitt werden die Terme welche nur von $n$ oder $a$ abhängig sind vernachlässigt. +In diesem Abschnitt werden die Terme welche nur von $n$ oder $a$ abhängig sind vernachlässigt. Die parabolischen Zylinderfunktionen sind Linearkombinationen aus einem geraden Teil $w_1(\alpha, x)$ -und einem ungeraden Teil $w_2(\alpha, x)$, welche als Potenzreihe +und einem ungeraden Teil $w_2(\alpha, x)$, welche als Potenzreihen \begin{align} w_1(\alpha,x) &= @@ -67,9 +67,9 @@ und \end{align} sind. Die Potenzreihen sind in der regel unendliche Reihen. -Es gibt allerdings die Möglichkeit für bestimmte $\alpha$ das die Terme in der Klammer gleich null werden +Es gibt allerdings die Möglichkeit, dass für bestimmte $\alpha$ die Terme in der Klammer gleich null werden und die Reihe somit eine endliche Anzahl $n$ Summanden hat. -Dies geschieht bei $w_1(\alpha,x)$ falls +Dies geschieht bei $w_1(\alpha,x)$, falls \begin{equation} \alpha = -n \qquad n \in \mathbb{N}_0 \end{equation} @@ -77,7 +77,7 @@ und bei $w_2(\alpha,x)$ falls \begin{equation} \alpha = -\frac{1}{2} - n \qquad n \in \mathbb{N}_0. \end{equation} -Der Wert des von $\alpha$ ist abhängig, ob man $D_n(x)$ oder $U(a,x)$ / $V(a,x)$ verwendet. +Der Wert von $\alpha$ ist abhängig, ob man $D_n(x)$ oder $U(a,x)$ / $V(a,x)$ verwendet. Bei $D_n(x)$ gilt $\alpha = -{\textstyle \frac{1}{2}} n$ und bei $U(a,z)$ oder $V(a,x)$ gilt $\alpha = {\textstyle \frac{1}{2}} a + {\textstyle \frac{1}{4}}$. \subsection{Ableitung} -- cgit v1.2.1 From 6cc8d6c445305aa571f439d1945f53aac486ca72 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 19 Aug 2022 01:50:32 +0200 Subject: kugel: More corrections --- buch/papers/kugel/spherical-harmonics.tex | 45 ++++++++++++++++--------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index 4f393d4..9d055e0 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -394,7 +394,7 @@ will be our starting point. \end{equation*} \end{lemma} \begin{proof} - To start, consider the fact that that the Legendre equation + To start, consider the fact that the Legendre equation \eqref{kugel:eqn:legendre}, of which two distinct Legendre polynomials $P_n(z)$ and $P_k(z)$ are a solution ($n \neq k$), can be rewritten in the following form: @@ -483,19 +483,19 @@ $P_n(z)$ by a $m$-th derivative, and obtain the following result. \begin{lemma} For the associated Legendre functions \label{kugel:thm:associated-legendre-ortho} \begin{equation*} - \int_{-1}^1 P^m_n(z) P^{m'}_{n'}(z) \, dz + \int_{-1}^1 P^m_n(z) P^{m}_{n'}(z) \, dz = \frac{2(m + n)!}{(2n + 1)(n - m)!} \delta_{nn'} = \begin{cases} \frac{2(m + n)!}{(2n + 1)(n - m)!} - & \text{if } n = n' \text{ and } m = m', \\ + & \text{if } n = n', \\ 0 & \text{otherwise}. \end{cases} \end{equation*} \end{lemma} \begin{proof} - \kugeltodo{Is it worth showing? IMHO no, it is mostly the same as Lemma - \ref{kugel:thm:legendre-poly-ortho} with the difference that the $m$-th - derivative is a pain to deal with.} + \kugeltodo{Is this correct? And Is it worth showing? IMHO no, it is mostly the + same as Lemma \ref{kugel:thm:legendre-poly-ortho} with the difference that the + $m$-th derivative is a pain to deal with.} \end{proof} By having the orthogonality relations of the Legendre functions we can finally @@ -507,7 +507,7 @@ product: \varphi)$ on the surface of the sphere the inner product is defined to be \begin{equation*} \langle f, g \rangle - = \int_{-\pi}^\pi \int_0^{2\pi} + = \int_{0}^\pi \int_0^{2\pi} f(\vartheta, \varphi) \overline{g(\vartheta, \varphi)} \sin \vartheta \, d\varphi \, d\vartheta. \end{equation*} @@ -520,12 +520,12 @@ product: right?} \begin{equation*} \langle Y^m_n, Y^{m'}_{n'} \rangle - = \int_{-\pi}^\pi \int_0^{2\pi} + = \int_{0}^\pi \int_0^{2\pi} Y^m_n(\vartheta, \varphi) \overline{Y^{m'}_{n'}(\vartheta, \varphi)} \sin \vartheta \, d\varphi \, d\vartheta - = \frac{-4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} \delta_{nn'} + = \frac{4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} \delta_{nn'} \delta_{mm'} = \begin{cases} - \frac{-4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} & \text{if } n = n', \\ + \frac{4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} & \text{if } n = n', \\ 0 & \text{otherwise}. \end{cases} \end{equation*} @@ -533,15 +533,15 @@ product: \begin{proof} We will begin by doing a bit of algebraic maipulaiton: \begin{align*} - \int_{-\pi}^\pi \int_0^{2\pi} + \int_{0}^\pi \int_0^{2\pi} Y^m_n(\vartheta, \varphi) \overline{Y^{m'}_{n'}(\vartheta, \varphi)} \sin \vartheta \, d\varphi \, d\vartheta - &= \int_{-\pi}^\pi \int_0^{2\pi} + &= \int_{0}^\pi \int_0^{2\pi} e^{im\varphi} P^m_n(\cos \vartheta) e^{-im'\varphi} P^{m'}_{n'}(\cos \vartheta) \, d\varphi \sin \vartheta \, d\vartheta \\ - &= \int_{-\pi}^\pi + &= \int_{0}^\pi P^m_n(\cos \vartheta) P^{m'}_{n'}(\cos \vartheta) \int_0^{2\pi} e^{i(m - m')\varphi} \, d\varphi \sin \vartheta \, d\vartheta @@ -552,19 +552,22 @@ product: $m = m'$ the inner integral simplifies to $\int_0^{2\pi} 1 \, d\varphi$ which equals $2\pi$, so in this case the expression becomes \begin{equation*} - 2\pi \int_{-\pi}^\pi + 2\pi \int_{0}^\pi P^m_n(\cos \vartheta) P^{m'}_{n'}(\cos \vartheta) \sin \vartheta \, d\vartheta - = -2\pi \int_{-1}^1 P^m_n(z) P^{m'}_{n'}(z) \, dz - = \frac{-4\pi(m + n)!}{(2n + 1)(n - m)!} \delta_{nn'}, + = -2\pi \int_{1}^{-1} P^m_n(z) P^{m'}_{n'}(z) \, dz + = \frac{4\pi(m + n)!}{(2n + 1)(n - m)!} \delta_{nn'}, \end{equation*} where in the second step we performed the substitution $z = \cos\vartheta$; $d\vartheta = \frac{d\vartheta}{dz} dz= - dz / \sin \vartheta$, and then we - used lemma \ref{kugel:thm:associated-legendre-ortho}. Now we just need look at - the case when $m \neq m'$. Fortunately this is easy: the inner integral is - $\int_0^{2\pi} e^{i(m - m')\varphi} d\varphi$, or in other words we are - integrating a complex exponetial over the entire period, which always results - in zero. Thus, we do not need to do anything and the proof is complete. + used lemma \ref{kugel:thm:associated-legendre-ortho}. We are allowed to use + the lemma because $m = m'$. + + Now we just need look at the case when $m \neq m'$. Fortunately this is easy: + the inner integral is $\int_0^{2\pi} e^{i(m - m')\varphi} d\varphi$, or in + other words we are integrating a complex exponetial over the entire period, + which always results in zero. Thus, we do not need to do anything and the + proof is complete. \end{proof} \subsection{Normalization} -- cgit v1.2.1 From 53a728a31aadb4f583f733f47e3a60ac9c4191e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Fri, 19 Aug 2022 08:44:47 +0200 Subject: typos --- cover/buchcover.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cover/buchcover.tex b/cover/buchcover.tex index d6ad7ec..748fbeb 100644 --- a/cover/buchcover.tex +++ b/cover/buchcover.tex @@ -1,5 +1,5 @@ % -% buchcover.tex -- Cover für das Buch Numerik +% buchcover.tex -- Cover für das Buch Spezielle Funktionen % % (c) 2018 Prof Dr Andreas Müller, Hochschule Rapperswil % -- cgit v1.2.1 From aa2fec29136fb8eebab30b6c7bdd96917c58a298 Mon Sep 17 00:00:00 2001 From: Alain Date: Fri, 19 Aug 2022 08:47:28 +0200 Subject: verbesserungen --- buch/papers/parzyl/teil0.tex | 4 ++-- buch/papers/parzyl/teil1.tex | 2 +- buch/papers/parzyl/teil3.tex | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/buch/papers/parzyl/teil0.tex b/buch/papers/parzyl/teil0.tex index 8be936d..70caa05 100644 --- a/buch/papers/parzyl/teil0.tex +++ b/buch/papers/parzyl/teil0.tex @@ -19,8 +19,8 @@ Die partielle Differentialgleichung \begin{equation} \Delta f = \lambda f \end{equation} -ist als Helmholtz-Gleichung bekannt und beschreibt das Eigenwert Problem für den Laplace-Operator. -Sie ist eine der Gleichungen welche auftritt wenn die Wellengleichung +ist als Helmholtz-Gleichung bekannt und beschreibt das Eigenwertproblem für den Laplace-Operator. +Sie ist eine der Gleichungen, welche auftritt, wenn die Wellengleichung \begin{equation} \left ( \nabla^2 - \frac{1}{c^2}\frac{\partial^2}{\partial t^2} \right ) u(\textbf{r},t) = diff --git a/buch/papers/parzyl/teil1.tex b/buch/papers/parzyl/teil1.tex index 2caabde..0e1ad1b 100644 --- a/buch/papers/parzyl/teil1.tex +++ b/buch/papers/parzyl/teil1.tex @@ -94,7 +94,7 @@ $w$ als Lösung haben. % ({\textstyle \frac{3}{4}} % - k, {\textstyle \frac{3}{2}} ; {\textstyle \frac{1}{2}}z^2). %\end{align} - +\subsection{Standardlösungen} In der Literatur gibt es verschiedene Standardlösungen für \eqref{parzyl:eq:weberDiffEq}, wobei die Differentialgleichung jeweils unterschiedlich geschrieben wird. diff --git a/buch/papers/parzyl/teil3.tex b/buch/papers/parzyl/teil3.tex index 6432905..1b59ed9 100644 --- a/buch/papers/parzyl/teil3.tex +++ b/buch/papers/parzyl/teil3.tex @@ -12,8 +12,8 @@ %Die parabolischen Zylinderfunktionen, welche in Gleichung \ref{parzyl:eq:solution_dgl} gegeben sind, %können auch als Potenzreihen geschrieben werden Die parabolischen Zylinderfunktionen können auch als Potenzreihen geschrieben werden. -In diesem Abschnitt werden die Terme welche nur von $n$ oder $a$ abhängig sind vernachlässigt. -Die parabolischen Zylinderfunktionen sind Linearkombinationen aus einem geraden Teil $w_1(\alpha, x)$ +Parabolische Zylinderfunktionen sind Linearkombinationen +$A(\alpha)w_1(\alpha, x) + B(\alpha)w_2(\alpha, x)$ aus einem geraden Teil $w_1(\alpha, x)$ und einem ungeraden Teil $w_2(\alpha, x)$, welche als Potenzreihen \begin{align} w_1(\alpha,x) @@ -51,7 +51,7 @@ und = xe^{-\frac{x^2}{4}} \sum^{\infty}_{n=0} - \frac{\left ( \frac{3}{4} - k \right )_{n}}{\left ( \frac{3}{2}\right )_{n}} + \frac{\left ( \frac{1}{2} + \alpha \right )_{n}}{\left ( \frac{3}{2}\right )_{n}} \frac{\left ( \frac{1}{2} x^2\right )^n}{n!} \\ &= e^{-\frac{x^2}{4}} @@ -77,7 +77,7 @@ und bei $w_2(\alpha,x)$ falls \begin{equation} \alpha = -\frac{1}{2} - n \qquad n \in \mathbb{N}_0. \end{equation} -Der Wert von $\alpha$ ist abhängig, ob man $D_n(x)$ oder $U(a,x)$ / $V(a,x)$ verwendet. +Der Wert von $\alpha$ ist abhängig, ob man $D_n(x)$, $U(a,x)$ oder $V(a,x)$ verwendet. Bei $D_n(x)$ gilt $\alpha = -{\textstyle \frac{1}{2}} n$ und bei $U(a,z)$ oder $V(a,x)$ gilt $\alpha = {\textstyle \frac{1}{2}} a + {\textstyle \frac{1}{4}}$. \subsection{Ableitung} -- cgit v1.2.1 From 3dd42149bf496fe5cca749e69f839c2f6ab888a7 Mon Sep 17 00:00:00 2001 From: tschwall <55748566+tschwall@users.noreply.github.com> Date: Fri, 19 Aug 2022 11:10:07 +0200 Subject: Corrected errors --- buch/papers/parzyl/img/Plane_2D.png | Bin 99330 -> 209118 bytes buch/papers/parzyl/teil2.tex | 27 ++++++++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/buch/papers/parzyl/img/Plane_2D.png b/buch/papers/parzyl/img/Plane_2D.png index 7c32877..f55e3cf 100644 Binary files a/buch/papers/parzyl/img/Plane_2D.png and b/buch/papers/parzyl/img/Plane_2D.png differ diff --git a/buch/papers/parzyl/teil2.tex b/buch/papers/parzyl/teil2.tex index d37c650..f0b5c34 100644 --- a/buch/papers/parzyl/teil2.tex +++ b/buch/papers/parzyl/teil2.tex @@ -12,7 +12,7 @@ Die parabolischen Zylinderkoordinaten tauchen auf, wenn man das elektrische Feld \centering \begin{minipage}{.7\textwidth} \centering - \includegraphics[width=\textwidth]{papers/parzyl/img/plane.pdf} + \includegraphics[width=\textwidth]{papers/parzyl/images/halfplane.pdf} \caption{Semi-infinite Leiterplatte} \label{parzyl:fig:leiterplatte} \end{minipage}% @@ -23,11 +23,12 @@ Die parabolischen Zylinderkoordinaten tauchen auf, wenn man das elektrische Feld \label{parzyl:fig:leiterplatte_2d} \end{minipage} \end{figure} -Das dies so ist kann im zwei Dimensionalen mit Hilfe von komplexen Funktionen gezeigt werden. Die Platte ist dann nur eine Linie, was man in Abbildung \ref{parzyl:fig:leiterplatte_2d} sieht. +Das dies so ist kann im Zweidimensionalen mit Hilfe von komplexen Funktionen gezeigt werden. Die Platte ist dann nur eine Halbgerade, was man in Abbildung \ref{parzyl:fig:leiterplatte_2d} sieht. + Jede komplexe Funktion $F(z)$ kann geschrieben werden als \begin{equation} - F(s) = U(x,y) + iV(x,y) \qquad s \in \mathbb{C}; x,y \in \mathbb{R}. + F(s) = U(x,y) + iV(x,y) \quad s = x + iy \qquad s \in \mathbb{C}; x,y \in \mathbb{R}. \end{equation} Dabei müssen, falls die Funktion differenzierbar ist, die Cauchy-Riemann Differentialgleichungen \begin{equation} @@ -59,23 +60,31 @@ Aus dieser Bedingung folgt 0 }_{\displaystyle{\nabla^2V(x,y) = 0}}. \end{equation} -Zusätzlich kann auch gezeigt werden, dass die Funktion $F(z)$ eine winkeltreue Abbildung ist. +Zusätzlich kann auch gezeigt werden, dass die Funktion $F(z)$ eine winkeltreue Abbildung ist. + + Der Zusammenhang zum elektrischen Feld ist jetzt, dass das Potential an einem quellenfreien Punkt gegeben ist als \begin{equation} \nabla^2\phi(x,y) = 0. \end{equation} -Dies ist eine Bedingung welche differenzierbare Funktionen, wie in Gleichung \eqref{parzyl_e_feld_zweite_ab} gezeigt wird, bereits besitzen. +Dies ist eine Bedingung, welche differenzierbare Funktionen, wie in Gleichung \eqref{parzyl_e_feld_zweite_ab} gezeigt wird, bereits besitzen. + + Nun kann zum Beispiel $U(x,y)$ als das Potential angeschaut werden \begin{equation} \phi(x,y) = U(x,y). \end{equation} -Orthogonal zum Potential ist das elektrische Feld +Orthogonal zu den Äquipotenzialfläche sind die Feldlinien des elektrische Feld \begin{equation} E(x,y) = V(x,y). \end{equation} + + Um nun zu den parabolische Zylinderkoordinaten zu gelangen muss nur noch eine geeignete komplexe Funktion $F(s)$ gefunden werden, welche eine semi-infinite Platte beschreiben kann. + + Die gesuchte Funktion in diesem Fall ist \begin{equation} F(s) @@ -93,6 +102,8 @@ Dies kann umgeformt werden zu i\underbrace{\sqrt{\frac{\sqrt{x^2+y^2} - x}{2}}}_{V(x,y)} . \end{equation} + + Die Äquipotentialflächen können nun betrachtet werden, indem man die Funktion, welche das Potential beschreibt, gleich eine Konstante setzt, \begin{equation} @@ -103,7 +114,9 @@ Die Flächen mit der gleichen elektrischen Feldstärke können als \tau = V(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} - x}{2}} \end{equation} beschrieben werden. Diese zwei Gleichungen zeigen nun, wie man vom -kartesischen Koordinatensystem ins parabolische Zylinderkoordinatensystem kommt. +kartesischen Koordinatensystem ins parabolische Zylinderkoordinatensystem kommt. + + Werden diese Formeln nun nach $x$ und $y$ aufgelöst \begin{equation} x = \sigma \tau, -- cgit v1.2.1 From ecd2ba28a3d26f232c45df6502d6e89d6b7bd05b Mon Sep 17 00:00:00 2001 From: Alain Date: Fri, 19 Aug 2022 14:22:52 +0200 Subject: verbesserungen --- buch/papers/parzyl/references.bib | 9 +++++++++ buch/papers/parzyl/teil0.tex | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/buch/papers/parzyl/references.bib b/buch/papers/parzyl/references.bib index 390d5ed..9639d0b 100644 --- a/buch/papers/parzyl/references.bib +++ b/buch/papers/parzyl/references.bib @@ -65,4 +65,13 @@ year = {2022}, month = {8}, day = {17} +} + +@online{parzyl:scalefac, + title = {An introduction to curvlinear orthogonal coordinates}, + url = {http://dslavsk.sites.luc.edu/courses/phys301/classnotes/scalefactorscomplete.pdf}, + date = {2022-08-18}, + year = {2022}, + month = {08}, + day = {18} } \ No newline at end of file diff --git a/buch/papers/parzyl/teil0.tex b/buch/papers/parzyl/teil0.tex index 70caa05..065c077 100644 --- a/buch/papers/parzyl/teil0.tex +++ b/buch/papers/parzyl/teil0.tex @@ -95,12 +95,12 @@ und konstantes $\sigma$ und die grünen ein konstantes $\tau$.} \label{parzyl:fig:cordinates} \end{figure} -Abbildung \ref{parzyl:fig:cordinates} zeigt das Parabolische Koordinatensystem. +Abbildung \ref{parzyl:fig:cordinates} zeigt das parabolische Koordinatensystem. Das parabolische Zylinderkoordinatensystem entsteht wenn die Parabeln aus der Ebene gezogen werden. Um in diesem Koordinatensystem integrieren und differenzieren zu -können braucht es die Skalierungsfaktoren $h_{\tau}$, $h_{\sigma}$ und $h_{z}$. +können braucht es die Skalierungsfaktoren $h_{\tau}$, $h_{\sigma}$ und $h_{z}$ \cite{parzyl:scalefac}. Eine infinitessimal kleine Distanz $ds$ zwischen zwei Punkten kann im kartesischen Koordinatensystem mit -- cgit v1.2.1 From 029cf2a8c2ca284e92229a3e1a1b16ed39e7dbec Mon Sep 17 00:00:00 2001 From: tschwall <55748566+tschwall@users.noreply.github.com> Date: Fri, 19 Aug 2022 14:28:37 +0200 Subject: Updated Paper --- buch/papers/parzyl/teil2.tex | 1 + 1 file changed, 1 insertion(+) diff --git a/buch/papers/parzyl/teil2.tex b/buch/papers/parzyl/teil2.tex index f0b5c34..e6a7e28 100644 --- a/buch/papers/parzyl/teil2.tex +++ b/buch/papers/parzyl/teil2.tex @@ -23,6 +23,7 @@ Die parabolischen Zylinderkoordinaten tauchen auf, wenn man das elektrische Feld \label{parzyl:fig:leiterplatte_2d} \end{minipage} \end{figure} +Die Äquipotentiallinien sind dabei rot dargestellt und die des elektrischen Feldes sind grün. Die semi-infinite Platte ist in blau dargestellt. Das dies so ist kann im Zweidimensionalen mit Hilfe von komplexen Funktionen gezeigt werden. Die Platte ist dann nur eine Halbgerade, was man in Abbildung \ref{parzyl:fig:leiterplatte_2d} sieht. -- cgit v1.2.1 From 8b79b30b55c44b0bbf7cc484c7eb2c5f7e273088 Mon Sep 17 00:00:00 2001 From: tschwall <55748566+tschwall@users.noreply.github.com> Date: Fri, 19 Aug 2022 14:36:18 +0200 Subject: Updated Paper --- buch/papers/parzyl/teil2.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buch/papers/parzyl/teil2.tex b/buch/papers/parzyl/teil2.tex index e6a7e28..5ba9de8 100644 --- a/buch/papers/parzyl/teil2.tex +++ b/buch/papers/parzyl/teil2.tex @@ -23,7 +23,7 @@ Die parabolischen Zylinderkoordinaten tauchen auf, wenn man das elektrische Feld \label{parzyl:fig:leiterplatte_2d} \end{minipage} \end{figure} -Die Äquipotentiallinien sind dabei rot dargestellt und die des elektrischen Feldes sind grün. Die semi-infinite Platte ist in blau dargestellt. +Die Äquipotentiallinien sind dabei in rot ,die des elektrischen Feldes in grün und semi-infinite Platte ist in blau dargestellt. Das dies so ist kann im Zweidimensionalen mit Hilfe von komplexen Funktionen gezeigt werden. Die Platte ist dann nur eine Halbgerade, was man in Abbildung \ref{parzyl:fig:leiterplatte_2d} sieht. -- cgit v1.2.1 From cc6b7320b8de4f36bc4a6516af87c66a108bc81c Mon Sep 17 00:00:00 2001 From: Alain Date: Fri, 19 Aug 2022 15:01:01 +0200 Subject: 1 satz --- buch/papers/parzyl/teil0.tex | 1 + 1 file changed, 1 insertion(+) diff --git a/buch/papers/parzyl/teil0.tex b/buch/papers/parzyl/teil0.tex index 065c077..f9e34d5 100644 --- a/buch/papers/parzyl/teil0.tex +++ b/buch/papers/parzyl/teil0.tex @@ -98,6 +98,7 @@ und Abbildung \ref{parzyl:fig:cordinates} zeigt das parabolische Koordinatensystem. Das parabolische Zylinderkoordinatensystem entsteht wenn die Parabeln aus der Ebene gezogen werden. +Die Flächen mit $\tau = 0$ oder $\sigma = 0$ stellen somit Halbebenen entlang der $z$-Achse dar. Um in diesem Koordinatensystem integrieren und differenzieren zu können braucht es die Skalierungsfaktoren $h_{\tau}$, $h_{\sigma}$ und $h_{z}$ \cite{parzyl:scalefac}. -- cgit v1.2.1 From 4e29e512c4f4f0f1244cbe38c804e46bafda225d Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 19 Aug 2022 21:57:24 +0200 Subject: kugel: Corrections and normalizations --- buch/papers/kugel/spherical-harmonics.tex | 104 ++++++++++++++++++------------ 1 file changed, 63 insertions(+), 41 deletions(-) diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index 9d055e0..72f7402 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -493,9 +493,12 @@ $P_n(z)$ by a $m$-th derivative, and obtain the following result. \end{equation*} \end{lemma} \begin{proof} - \kugeltodo{Is this correct? And Is it worth showing? IMHO no, it is mostly the - same as Lemma \ref{kugel:thm:legendre-poly-ortho} with the difference that the - $m$-th derivative is a pain to deal with.} + To show that the expression equals zero when $n \neq n'$ we can perform + exactly the same steps as in the proof of lemma + \ref{kugel:thm:legendre-poly-ortho}, so we will not repeat them here and prove + instead only the case when $n = n'$. + \kugeltodo{Finish proof, or not? I have to look and decide if it is + interesting enough.} \end{proof} By having the orthogonality relations of the Legendre functions we can finally @@ -516,19 +519,19 @@ product: \begin{theorem} For the (unnormalized) spherical harmonics \label{kugel:thm:spherical-harmonics-ortho} - \kugeltodo{Why do I get a minus in front of $4\pi$??? It should not be there - right?} - \begin{equation*} + \begin{align*} \langle Y^m_n, Y^{m'}_{n'} \rangle - = \int_{0}^\pi \int_0^{2\pi} + &= \int_{0}^\pi \int_0^{2\pi} Y^m_n(\vartheta, \varphi) \overline{Y^{m'}_{n'}(\vartheta, \varphi)} \sin \vartheta \, d\varphi \, d\vartheta - = \frac{4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} \delta_{nn'} \delta_{mm'} + \\ + &= \frac{4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} \delta_{nn'} \delta_{mm'} = \begin{cases} - \frac{4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} & \text{if } n = n', \\ + \frac{4\pi}{2n + 1} \frac{(m + n)!}{(n - m)!} + & \text{if } n = n' \text{ and } m = m', \\ 0 & \text{otherwise}. \end{cases} - \end{equation*} + \end{align*} \end{theorem} \begin{proof} We will begin by doing a bit of algebraic maipulaiton: @@ -563,38 +566,15 @@ product: used lemma \ref{kugel:thm:associated-legendre-ortho}. We are allowed to use the lemma because $m = m'$. - Now we just need look at the case when $m \neq m'$. Fortunately this is easy: - the inner integral is $\int_0^{2\pi} e^{i(m - m')\varphi} d\varphi$, or in - other words we are integrating a complex exponetial over the entire period, - which always results in zero. Thus, we do not need to do anything and the - proof is complete. + Now we just need look at the case when $m \neq m'$. Fortunately this is + easier: the inner integral is $\int_0^{2\pi} e^{i(m - m')\varphi} d\varphi$, + or in other words we are integrating a complex exponetial over the entire + period, which always results in zero. Thus, we do not need to do anything and + the proof is complete. \end{proof} -\subsection{Normalization} - -At this point we have shown that the spherical harmonics form an orthogonal -system, but in many applications we usually also want a normalization of some -kind. For example the most obvious desirable property could be for the spherical -harmonics to be ortho\emph{normal}, by which we mean that $\langle Y^m_n, -Y^{m'}_{n'} \rangle = \delta_{nn'}$. To obtain orthonormality, we simply add a -normalization factor in front of the previous definition -\ref{kugel:def:spherical-harmonics} as follows. - -\begin{definition}[Orthonormal spherical harmonics] - \label{kugel:def:spherical-harmonics-orthonormal} - The functions - \begin{equation*} - Y^m_n(\vartheta, \varphi) - = \sqrt{\frac{2n + 1}{4\pi} \frac{(n-m)!}{(m+n)!}} - P^m_n(\cos \vartheta) e^{im\varphi} - \end{equation*} - where $m, n \in \mathbb{Z}$ and $|m| < n$ are the orthonormal spherical - harmonics. -\end{definition} - -Orthornomality is very useful indeed, but it is not the only common -normalization that is found in the literature. In physics, quantum mechanics to -be more specific, it is common to use the so called Schmidt semi-normalization. +\kugeltodo{Briefly mention that we could have skipped the tedious proofs by +showing that the (associated) Legendre equation is a Sturm Liouville problem.} \if 0 As explained in the chapter \ref{}, the concept of orthogonality is very important and at the practical level it is very useful, because it allows us to develop very powerful techniques at the mathematical level.\newline @@ -620,7 +600,49 @@ Inoltre, possiamo provare l'ortogonalità di $\Theta(\vartheta)$ utilizzando \eq Ora, visto che la soluzione dell'eigenfunction problem è formata dalla moltiplicazione di $\Phi_m(\varphi)$ e $P_{m,n}(x)$ \fi -\subsection{Properties} + +\subsection{Normalization and the Phase Factor} + +At this point we have shown that the spherical harmonics form an orthogonal +system, but in many applications we usually also want a normalization of some +kind. For example the most obvious desirable property could be for the spherical +harmonics to be ortho\emph{normal}, by which we mean that $\langle Y^m_n, +Y^{m'}_{n'} \rangle = \delta_{nn'}$. To obtain orthonormality, we simply add an +ugly normalization factor in front of the previous definition +\ref{kugel:def:spherical-harmonics} as follows. + +\begin{definition}[Orthonormal spherical harmonics] + \label{kugel:def:spherical-harmonics-orthonormal} + The functions + \begin{equation*} + Y^m_n(\vartheta, \varphi) + = \sqrt{\frac{2n + 1}{4\pi} \frac{(n-m)!}{(m+n)!}} + P^m_n(\cos \vartheta) e^{im\varphi} + \end{equation*} + where $m, n \in \mathbb{Z}$ and $|m| < n$ are the orthonormal spherical + harmonics. +\end{definition} + +Orthornomality is very useful, but it is not the only common normalization that +is found in the literature. In physics, geomagnetism to be more specific, it is +common to use the so called Schmidt semi-normalization (or sometimes also called +quasi-normalization). + +\begin{definition}[Schmidt semi-normalized spherical harmonics] + \label{kugel:def:spherical-harmonics-schmidt} + The Schmidt semi-normalized spherical harmonics are + \begin{equation*} + Y^m_n(\vartheta, \varphi) + = \sqrt{2 \frac{(n - m)!}{(n + m)!}} + P^m_n(\cos \vartheta) e^{im\varphi} + \end{equation*} + where $m, n \in \mathbb{Z}$ and $|m| < n$. +\end{definition} + +However, for our purposes we will mostly only need the orthonormal spherical +harmonics. So from now on, unless specified otherwise, when we say spherical +harmonics or write $Y^m_n$, we mean the orthonormal spherical harmonics of +definition \ref{kugel:def:spherical-harmonics-orthonormal}. \subsection{Recurrence Relations} -- cgit v1.2.1 From 1d82e0588b95188264168223fd0337529e88acf0 Mon Sep 17 00:00:00 2001 From: Alain Date: Sat, 20 Aug 2022 12:10:36 +0200 Subject: =?UTF-8?q?koordinatensystem=20=C3=A4nderungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/parzyl/img/coordinates.png | Bin 0 -> 1215422 bytes buch/papers/parzyl/teil0.tex | 20 ++++++++++---------- buch/papers/parzyl/teil2.tex | 24 +++++++++++++++++------- 3 files changed, 27 insertions(+), 17 deletions(-) create mode 100644 buch/papers/parzyl/img/coordinates.png diff --git a/buch/papers/parzyl/img/coordinates.png b/buch/papers/parzyl/img/coordinates.png new file mode 100644 index 0000000..0ea3701 Binary files /dev/null and b/buch/papers/parzyl/img/coordinates.png differ diff --git a/buch/papers/parzyl/teil0.tex b/buch/papers/parzyl/teil0.tex index f9e34d5..3bf9257 100644 --- a/buch/papers/parzyl/teil0.tex +++ b/buch/papers/parzyl/teil0.tex @@ -73,26 +73,26 @@ Das parabolischen Zylinderkoordinatensystem \cite{parzyl:coordinates} ist ein kr bei dem parabolische Zylinder die Koordinatenflächen bilden. Die Koordinate $(\sigma, \tau, z)$ sind in kartesischen Koordinaten ausgedrückt mit \begin{align} - x & = \sigma \tau \\ + x & = \frac{1}{2}\left(\tau^2 - \sigma^2\right) \\ \label{parzyl:coordRelationsa} - y & = \frac{1}{2}\left(\tau^2 - \sigma^2\right) \\ + y & = \sigma \tau\\ z & = z. \label{parzyl:coordRelationse} \end{align} -Wird $\tau$ oder $\sigma$ konstant gesetzt, resultieren die Parabeln +Wird $\sigma$ oder $\tau$ konstant gesetzt, resultieren die Parabeln \begin{equation} - y = \frac{1}{2} \left( \frac{x^2}{\sigma^2} - \sigma^2 \right) + x = \frac{1}{2} \left( \frac{y^2}{\sigma^2} - \sigma^2 \right) \end{equation} und \begin{equation} - y = \frac{1}{2} \left( -\frac{x^2}{\tau^2} + \tau^2 \right). + x = \frac{1}{2} \left( -\frac{y^2}{\tau^2} + \tau^2 \right). \end{equation} \begin{figure} \centering - \includegraphics[scale=0.4]{papers/parzyl/img/koordinaten.png} - \caption{Das parabolische Koordinatensystem. Die roten Parabeln haben ein - konstantes $\sigma$ und die grünen ein konstantes $\tau$.} + \includegraphics[scale=0.32]{papers/parzyl/img/coordinates.png} + \caption{Das parabolische Koordinatensystem. Die grünen Parabeln haben ein + konstantes $\sigma$ und die roten ein konstantes $\tau$.} \label{parzyl:fig:cordinates} \end{figure} Abbildung \ref{parzyl:fig:cordinates} zeigt das parabolische Koordinatensystem. @@ -124,11 +124,11 @@ von \eqref{parzyl:coordRelationsa} - \eqref{parzyl:coordRelationse} als dx &= \frac{\partial x }{\partial \sigma} d\sigma + \frac{\partial x }{\partial \tau} d\tau + \frac{\partial x }{\partial \tilde{z}} d \tilde{z} - = \tau d\sigma + \sigma d \tau \\ + = \tau d\tau - \sigma d \sigma \\ dy &= \frac{\partial y }{\partial \sigma} d\sigma + \frac{\partial y }{\partial \tau} d\tau + \frac{\partial y }{\partial \tilde{z}} d \tilde{z} - = \tau d\tau - \sigma d \sigma \\ + = \tau d\sigma + \sigma d \tau \\ dz &= \frac{\partial \tilde{z} }{\partial \sigma} d\sigma + \frac{\partial \tilde{z} }{\partial \tau} d\tau + \frac{\partial \tilde{z} }{\partial \tilde{z}} d \tilde{z} diff --git a/buch/papers/parzyl/teil2.tex b/buch/papers/parzyl/teil2.tex index 5ba9de8..fbe5711 100644 --- a/buch/papers/parzyl/teil2.tex +++ b/buch/papers/parzyl/teil2.tex @@ -108,21 +108,31 @@ Dies kann umgeformt werden zu Die Äquipotentialflächen können nun betrachtet werden, indem man die Funktion, welche das Potential beschreibt, gleich eine Konstante setzt, \begin{equation} - \sigma = U(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}. +% \sigma = U(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}. + c_1 = U(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} + x}{2}}. \end{equation} Die Flächen mit der gleichen elektrischen Feldstärke können als \begin{equation} - \tau = V(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} - x}{2}} +% \tau = V(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} - x}{2}} + c_2 = V(x,y) = \sqrt{\frac{\sqrt{x^2+y^2} - x}{2}} \end{equation} beschrieben werden. Diese zwei Gleichungen zeigen nun, wie man vom kartesischen Koordinatensystem ins parabolische Zylinderkoordinatensystem kommt. - - +%Werden diese Formeln nun nach $x$ und $y$ aufgelöst +%\begin{equation} +% x = \sigma \tau, +%\end{equation} +%\begin{equation} +% y = \frac{1}{2}\left ( \tau^2 - \sigma^2 \right ), +%\end{equation} +%so beschreibe sie, wie man aus dem parabolischen Zylinderkoordinatensystem zurück ins kartesische rechnen kann. Werden diese Formeln nun nach $x$ und $y$ aufgelöst \begin{equation} - x = \sigma \tau, + x = c_1^2 - c_2^2 , \end{equation} \begin{equation} - y = \frac{1}{2}\left ( \tau^2 - \sigma^2 \right ), + y = 2c_1 c_2, \end{equation} -so beschreibe sie, wie man aus dem parabolischen Zylinderkoordinatensystem zurück ins kartesische rechnen kann. \ No newline at end of file +so beschreibe sie mit $c_1 = \tau \sqrt{2}$ und $c_2 = \sigma \sqrt{2}$ die Beziehung +zwischen dem parabolischen Zylinderkoordinatensystem und dem kartesischen Koordinatensystem. + -- cgit v1.2.1 From db498caa668ca8d0fa3e51de0f3668a47325d2e5 Mon Sep 17 00:00:00 2001 From: Alain Date: Sat, 20 Aug 2022 12:16:00 +0200 Subject: align --- buch/papers/parzyl/teil2.tex | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/buch/papers/parzyl/teil2.tex b/buch/papers/parzyl/teil2.tex index fbe5711..ab0e971 100644 --- a/buch/papers/parzyl/teil2.tex +++ b/buch/papers/parzyl/teil2.tex @@ -127,12 +127,10 @@ kartesischen Koordinatensystem ins parabolische Zylinderkoordinatensystem kommt. %\end{equation} %so beschreibe sie, wie man aus dem parabolischen Zylinderkoordinatensystem zurück ins kartesische rechnen kann. Werden diese Formeln nun nach $x$ und $y$ aufgelöst -\begin{equation} - x = c_1^2 - c_2^2 , -\end{equation} -\begin{equation} - y = 2c_1 c_2, -\end{equation} -so beschreibe sie mit $c_1 = \tau \sqrt{2}$ und $c_2 = \sigma \sqrt{2}$ die Beziehung +\begin{align} + x &= c_1^2 - c_2^2 ,\\ + y &= 2c_1 c_2, +\end{align} +so beschreiben sie mit $c_1 = \tau \sqrt{2}$ und $c_2 = \sigma \sqrt{2}$ die Beziehung zwischen dem parabolischen Zylinderkoordinatensystem und dem kartesischen Koordinatensystem. -- cgit v1.2.1 From d2cb5860b83b16ef466a23473e8366a686ce20f7 Mon Sep 17 00:00:00 2001 From: Alain Date: Sat, 20 Aug 2022 12:23:30 +0200 Subject: jetz aber --- buch/papers/parzyl/teil2.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buch/papers/parzyl/teil2.tex b/buch/papers/parzyl/teil2.tex index ab0e971..0cf4283 100644 --- a/buch/papers/parzyl/teil2.tex +++ b/buch/papers/parzyl/teil2.tex @@ -131,6 +131,6 @@ Werden diese Formeln nun nach $x$ und $y$ aufgelöst x &= c_1^2 - c_2^2 ,\\ y &= 2c_1 c_2, \end{align} -so beschreiben sie mit $c_1 = \tau \sqrt{2}$ und $c_2 = \sigma \sqrt{2}$ die Beziehung +so beschreiben sie mit $\tau = c_1 \sqrt{2}$ und $\sigma = c_2 \sqrt{2}$ die Beziehung zwischen dem parabolischen Zylinderkoordinatensystem und dem kartesischen Koordinatensystem. -- cgit v1.2.1 From d2ae59bb9d2affc07bcb541d37a8f88fd009c167 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 20 Aug 2022 19:49:13 +0200 Subject: kugel: mention Condon-Shortley phase factor --- buch/papers/kugel/spherical-harmonics.tex | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index 72f7402..5d394a9 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -639,8 +639,17 @@ quasi-normalization). where $m, n \in \mathbb{Z}$ and $|m| < n$. \end{definition} -However, for our purposes we will mostly only need the orthonormal spherical -harmonics. So from now on, unless specified otherwise, when we say spherical +Additionally, there is another quirk in the literature that should be mentioned. +In some other branches of physics such as seismology there is a so called +Condon-Shortley phase factor $(-1)^m$ in front of the square root in the +definition of the normalized spherical harmonics. It is yet another +normalization that is added for reasons that are not very relevant to our +discussion, but we are mentioning its existence since many numerical packages +(such as \texttt{SHTOOLS} \kugeltodo{Reference}) offer an option to add or +remove it from the computation. + +Though, for our purposes we will mostly only need the orthonormal spherical +harmonics, so from now on, unless specified otherwise when we say spherical harmonics or write $Y^m_n$, we mean the orthonormal spherical harmonics of definition \ref{kugel:def:spherical-harmonics-orthonormal}. -- cgit v1.2.1 From f05ad8165a516c7932a8137a51b247484c38403b Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 20 Aug 2022 23:25:12 +0200 Subject: kugel: Orthogonality using Sturm-Liouville --- buch/papers/kugel/spherical-harmonics.tex | 92 +++++++++++++++++++++++++++---- 1 file changed, 82 insertions(+), 10 deletions(-) diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index 5d394a9..5a17b99 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -506,6 +506,7 @@ show that spherical harmonics are also orthogonal under the following inner product: \begin{definition}[Inner product in $S^2$] + \label{kugel:def:inner-product-s2} For 2 complex valued functions $f(\vartheta, \varphi)$ and $g(\vartheta, \varphi)$ on the surface of the sphere the inner product is defined to be \begin{equation*} @@ -573,8 +574,51 @@ product: the proof is complete. \end{proof} -\kugeltodo{Briefly mention that we could have skipped the tedious proofs by -showing that the (associated) Legendre equation is a Sturm Liouville problem.} +These proofs for the various orthogonality relations were quite long and +algebraically tedious, mainly because they are ``low level'', by which we mean +that they (arguably) do not rely on very abstract theory. However, if we allow +ourselves to use the more abstract Sturm Liouville theory discussed in chapters +\ref{buch:integrale:subsection:sturm-liouville-problem} and \kugeltodo{reference +to chapter 17 of haddouche and Löffler} the proofs can become ridiculously +short. Let's do for example lemma \ref{kugel:thm:associated-legendre-ortho}. + +\begin{proof}[ + Shorter proof of lemma \ref{kugel:thm:associated-legendre-ortho} + ] + The associated Legendre polynomials, of which we would like to prove an + orthogonality relation, are the solution to the associated Legendre equation, + which we can write as $LZ(z) = 0$, where + \begin{equation*} + L = \frac{d}{dz} (1 - z^2) \frac{d}{dz} + + n(n+1) - \frac{m^2}{1 - z^2}. + \end{equation*} + Notice that $L$ is in fact a Sturm-Liouville operator of the form + \begin{equation*} + L = \frac{1}{w(z)} \left[ + \frac{d}{dz} p(z) \frac{d}{dz} - \lambda + q(z) + \right], + \end{equation*} + if we let $w(z) = 1$, $p(z) = (1 - z^2 )$, $q(z) = -m^2 / (1 - z^2)$, and + $\lambda = -n(n+1)$. By the theory of Sturm-Liouville operators, we know that + the each solution of the problem $LZ(z) = 0$, namely $P^m_n(z)$, is orthogonal + to every other solution that has a different $\lambda$. In our case $\lambda$ + varies with $n$, so $P^m_n(z)$ with different $n$'s are orthogonal to each + other. +\end{proof} + +But that was still rather informative and had a bit of explanation, which is +terrible. Real snobs, such as Wikipedia contributors, some authors and sometimes +regrettably even ourselves, would write instead: + +\begin{proof}[ + Pretentiously short proof of lemma \ref{kugel:thm:associated-legendre-ortho} + ] + The associated Legendre polynomials are solutions of the associated Legendre + equation which is a Sturm-Liouville problem and are thus orthogonal to each + other. The factor in front Kronecker delta is left as an exercise to the + reader. +\end{proof} + \if 0 As explained in the chapter \ref{}, the concept of orthogonality is very important and at the practical level it is very useful, because it allows us to develop very powerful techniques at the mathematical level.\newline @@ -640,13 +684,13 @@ quasi-normalization). \end{definition} Additionally, there is another quirk in the literature that should be mentioned. -In some other branches of physics such as seismology there is a so called -Condon-Shortley phase factor $(-1)^m$ in front of the square root in the -definition of the normalized spherical harmonics. It is yet another -normalization that is added for reasons that are not very relevant to our -discussion, but we are mentioning its existence since many numerical packages -(such as \texttt{SHTOOLS} \kugeltodo{Reference}) offer an option to add or -remove it from the computation. +In some other branches of physics such as seismology and quantum mechanics there +is a so called Condon-Shortley phase factor $(-1)^m$ in front of the square root +in the definition of the normalized spherical harmonics. It is yet another +normalization that is added for physical reasons that are not very relevant to +our discussion, but mention its existence this potential source of confusion +since many numerical packages (such as \texttt{SHTOOLS} \kugeltodo{Reference}) +offer an option to add or remove it from the computation. Though, for our purposes we will mostly only need the orthonormal spherical harmonics, so from now on, unless specified otherwise when we say spherical @@ -655,8 +699,36 @@ definition \ref{kugel:def:spherical-harmonics-orthonormal}. \subsection{Recurrence Relations} -\section{Series Expansions in $C(S^2)$} +\section{Series Expansions in $L^2(S^2)$} + +We have now reached a point were we have all of the tools that are necessary to +build something truly amazing: a general series expansion formula for functions +on the surface of the sphere. Using the jargon: we will now see that the +spherical harmonics together with the inner product of definition +\ref{kugel:def:inner-product-s2} +\begin{equation*} + \langle f, g \rangle + = \int_{0}^\pi \int_0^{2\pi} + f(\vartheta, \varphi) \overline{g(\vartheta, \varphi)} + \sin \vartheta \, d\varphi \, d\vartheta +\end{equation*} +form a Hilbert space over the space of complex valued $L^2$ functions $S^2 \to +\mathbb{C}$. We will see later that this fact is very consequential and is +extremely useful for many types of applications. If the jargon was too much, no +need to worry, we will now go back to normal words and explain it again in more +detail. \subsection{Spherical Harmonics Series} +To talk about a \emph{series expansion} we first need a series, so we shall +build one using the spherical harmonics. + +\begin{definition}[Spherical harmonic series] + \begin{equation*} + \hat{f}(\vartheta, \varphi) + = \sum_{n \in \mathbb{Z}} \sum_{m \in \mathbb{Z}} + c_{m,n} Y^m_n(\vartheta, \varphi) + \end{equation*} +\end{definition} + \subsection{Fourier on $S^2$} -- cgit v1.2.1 From 63dee97e79f65a967f7d6b34bb8141ccaa226e20 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 20 Aug 2022 23:40:29 +0200 Subject: kugel: Minor corrections --- buch/papers/kugel/spherical-harmonics.tex | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index 5a17b99..54c8fa9 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -607,11 +607,11 @@ short. Let's do for example lemma \ref{kugel:thm:associated-legendre-ortho}. \end{proof} But that was still rather informative and had a bit of explanation, which is -terrible. Real snobs, such as Wikipedia contributors, some authors and sometimes -regrettably even ourselves, would write instead: +terrible. Real snobs, such as Wikipedia contributors, some authors and +regrettably sometimes even ourselves, would write instead: \begin{proof}[ - Pretentiously short proof of lemma \ref{kugel:thm:associated-legendre-ortho} + Infuriatingly short proof of lemma \ref{kugel:thm:associated-legendre-ortho} ] The associated Legendre polynomials are solutions of the associated Legendre equation which is a Sturm-Liouville problem and are thus orthogonal to each @@ -688,9 +688,9 @@ In some other branches of physics such as seismology and quantum mechanics there is a so called Condon-Shortley phase factor $(-1)^m$ in front of the square root in the definition of the normalized spherical harmonics. It is yet another normalization that is added for physical reasons that are not very relevant to -our discussion, but mention its existence this potential source of confusion -since many numerical packages (such as \texttt{SHTOOLS} \kugeltodo{Reference}) -offer an option to add or remove it from the computation. +our discussion, but we mention this potential source of confusion since many +numerical packages (such as \texttt{SHTOOLS} \kugeltodo{Reference}) offer an +option to add or remove it from the computation. Though, for our purposes we will mostly only need the orthonormal spherical harmonics, so from now on, unless specified otherwise when we say spherical -- cgit v1.2.1 From 288eb54f5089c48177434757b083309e05e30bf2 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 21 Aug 2022 11:48:48 +0200 Subject: kugel: More on Sturm-Liouville --- buch/papers/kugel/spherical-harmonics.tex | 42 ++++++++++++------------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/buch/papers/kugel/spherical-harmonics.tex b/buch/papers/kugel/spherical-harmonics.tex index 54c8fa9..bff91ef 100644 --- a/buch/papers/kugel/spherical-harmonics.tex +++ b/buch/papers/kugel/spherical-harmonics.tex @@ -107,7 +107,7 @@ the surface of the unit sphere. Now that we have defined an operator, we can go and study its eigenfunctions, which means that we would like to find the functions $f(\vartheta, \varphi)$ that satisfy the equation -\begin{equation} \label{kuvel:eqn:eigen} +\begin{equation} \label{kugel:eqn:eigen} \surflaplacian f = -\lambda f. \end{equation} Perhaps it may not be obvious at first glance, but we are in fact dealing with a @@ -619,31 +619,21 @@ regrettably sometimes even ourselves, would write instead: reader. \end{proof} - -\if 0 -As explained in the chapter \ref{}, the concept of orthogonality is very important and at the practical level it is very useful, because it allows us to develop very powerful techniques at the mathematical level.\newline -Throughout this book we have been confronted with the Sturm-Liouville theory (see chapter \ref{}). The latter, among other things, carries with it the concept of orthogonality. Indeed, if we consider the solutions of the Sturm-Liouville equation, which can be expressed in this form -\begin{equation}\label{kugel:eq:sturm_liouville} - \mathcal{S}f := \frac{d}{dx}\left[p(x)\frac{df}{dx}\right]+q(x)f(x) -\end{equation} -possiamo dire che formano una base ortogonale.\newline -Adesso possiamo dare un occhiata alle due equazioni che abbiamo ottenuto tramite la Separation Ansatz (Eqs.\eqref{kugel:eq:associated_leg_eq}\eqref{kugel:eq:ODE_1}), le quali possono essere riscritte come: -\begin{align*} - \frac{d}{dx} \left[ (1-x^2) \cdot \frac{dP_{m,n}}{dx} \right] &+ \left(n(n+1)-\frac{m}{1-x^2} \right) \cdot P_{m,n}(x) = 0, \\ - \frac{d}{d\varphi} \left[ 1 \cdot \frac{ d\Phi }{d\varphi} \right] &+ 1 \cdot \Phi(\varphi) = 0. -\end{align*} -Si può concludere in modo diretto che sono due casi dell'equazione di Sturm-Liouville. Questo significa che le loro soluzioni sono ortogonali sotto l'inner product con weight function $w(x)=1$, dunque: -\begin{align} -\int_{0}^{2\pi} \Phi_m(\varphi)\Phi_m'(\varphi) d\varphi &= \delta_{m'm}, \nonumber \\ -\int_{-1}^1 P_{m,m'}(x)P_{n,n'}(x) dx &= \delta_{m'm}\delta_{n'n}. \label{kugel:eq:orthogonality_associated_func} -\end{align} -Inoltre, possiamo provare l'ortogonalità di $\Theta(\vartheta)$ utilizzando \eqref{kugel:eq:orthogonality_associated_func}: -\begin{align} - x -\end{align} -Ora, visto che la soluzione dell'eigenfunction problem è formata dalla moltiplicazione di $\Phi_m(\varphi)$ e $P_{m,n}(x)$ -\fi - +Lemma \ref{kugel:thm:legendre-poly-ortho} has a very similar +proof, while the theorem \ref{kugel:thm:spherical-harmonics-ortho} for the +spherical harmonics is proved by the following argument. The spherical harmonics +are the solutions to the eigenvalue problem $\surflaplacian f = -\lambda f$, +which as discussed in the previous section is solved using separation. So to +prove their orthogonality using the Sturm-Liouville theory we argue that +\begin{equation*} + \surflaplacian = L_\vartheta L_\varphi \iff + \surflaplacian f(\vartheta, \varphi) + = L_\vartheta \Theta(\vartheta) L_\varphi \Phi(\varphi), +\end{equation*} +then we show that both $L_\vartheta$ and $L_\varphi$ are both Sturm-Liouville +operators (we just did the former in the shorter proof above). Since both are +Sturm-Liouville operators their combination, the surface spherical Laplacian, is +also a Sturm-Liouville operator, which then implies orthogonality. \subsection{Normalization and the Phase Factor} -- cgit v1.2.1