diff options
Diffstat (limited to 'buch/papers/laguerre')
-rw-r--r-- | buch/papers/laguerre/definition.tex | 86 | ||||
-rw-r--r-- | buch/papers/laguerre/eigenschaften.tex | 129 | ||||
-rw-r--r-- | buch/papers/laguerre/gamma.tex | 184 | ||||
-rw-r--r-- | buch/papers/laguerre/images/estimates.pdf | bin | 13780 -> 13813 bytes | |||
-rw-r--r-- | buch/papers/laguerre/images/laguerre_poly.pdf | bin | 19815 -> 19815 bytes | |||
-rw-r--r-- | buch/papers/laguerre/images/rel_error_simple.pdf | bin | 23353 -> 24455 bytes | |||
-rw-r--r-- | buch/papers/laguerre/images/targets.pdf | bin | 14462 -> 14495 bytes | |||
-rw-r--r-- | buch/papers/laguerre/main.tex | 2 | ||||
-rw-r--r-- | buch/papers/laguerre/presentation/presentation.pdf | bin | 394774 -> 0 bytes | |||
-rw-r--r-- | buch/papers/laguerre/presentation/sections/gamma_approx.tex | 2 | ||||
-rw-r--r-- | buch/papers/laguerre/quadratur.tex | 98 | ||||
-rw-r--r-- | buch/papers/laguerre/references.bib | 4 | ||||
-rw-r--r-- | buch/papers/laguerre/scripts/estimates.py | 2 | ||||
-rw-r--r-- | buch/papers/laguerre/scripts/laguerre_poly.py | 2 | ||||
-rw-r--r-- | buch/papers/laguerre/scripts/rel_error_simple.py | 2 | ||||
-rw-r--r-- | buch/papers/laguerre/scripts/targets.py | 2 |
16 files changed, 357 insertions, 156 deletions
diff --git a/buch/papers/laguerre/definition.tex b/buch/papers/laguerre/definition.tex index 4729a93..e2062d2 100644 --- a/buch/papers/laguerre/definition.tex +++ b/buch/papers/laguerre/definition.tex @@ -3,51 +3,80 @@ % % (c) 2022 Patrik Müller, Ostschweizer Fachhochschule % -\section{Definition - \label{laguerre:section:definition}} -\rhead{Definition} -Die verallgemeinerte Laguerre-Differentialgleichung ist gegeben durch +\section{Herleitung% +% \section{Einleitung +% \section{Definition +\label{laguerre:section:definition}} +\rhead{Definition}% +In einem ersten Schritt möchten wir die Laguerre-Polynome +aus der Laguerre-\-Differentialgleichung herleiten. +Zudem möchten wir die Lösung auch auf +die assoziierten Laguerre-Polynome ausweiten. +Im Anschluss möchten wir dann noch die Orthogonalität dieser Polynome beweisen. + +\subsection{Assoziierte Laguerre-Differentialgleichung} +Die assoziierte Laguerre-Differentialgleichung ist gegeben durch \begin{align} x y''(x) + (\nu + 1 - x) y'(x) + n y(x) = 0 , \quad -n \in \mathbb{N}_0 +n \in \mathbb{N} , \quad x \in \mathbb{R} \label{laguerre:dgl} . \end{align} -Spannenderweise wurde die verallgemeinerte Laguerre-Differentialgleichung +Spannenderweise wurde die assoziierte Laguerre-Differentialgleichung zuerst von Yacovlevich Sonine (1849 - 1915) beschrieben, aber aufgrund ihrer Ähnlichkeit nach Laguerre benannt. Die klassische Laguerre-Diffentialgleichung erhält man, wenn $\nu = 0$. -Hier wird die verallgemeinerte Laguerre-Differentialgleichung verwendet, + +{\subsection{Potenzreihenansatz} +\label{laguerre:subsection:potenzreihenansatz}} +Hier wird die assoziierte Laguerre-Differentialgleichung verwendet, weil die Lösung mit derselben Methode berechnet werden kann. Zusätzlich erhält man aber die Lösung für den allgmeinen Fall. -Zur Lösung von \eqref{laguerre:dgl} verwenden wir einen -Potenzreihenansatz. -Da wir bereits wissen, dass die Lösung orthogonale Polynome sind, -erscheint dieser Ansatz sinnvoll. -Setzt man nun den Ansatz +Wir stellen die Vermutung auf, +dass die Lösungen orthogonale Polynome sind. +Die Orthogonalität der Lösung werden wir im +Abschnitt~\ref{laguerre:subsection:orthogonal} beweisen. +Zur Lösung von \eqref{laguerre:dgl} verwenden wir aufgrund +der getroffenen Vermutungen einen Potenzreihenansatz. +Der Potenzreihenansatz ist gegeben als +% Da wir bereits wissen, +% dass die Lösung orthogonale Polynome sind, +% erscheint dieser Ansatz sinnvoll. \begin{align*} y(x) - & = +& = \sum_{k=0}^\infty a_k x^k -\\ +% \\ +. +\end{align*} +Für die 1. und 2. Ableitungen erhalten wir +\begin{align*} y'(x) - & = +& = \sum_{k=1}^\infty k a_k x^{k-1} = \sum_{k=0}^\infty (k+1) a_{k+1} x^k \\ y''(x) - & = +& = \sum_{k=2}^\infty k (k-1) a_k x^{k-2} = \sum_{k=1}^\infty (k+1) k a_{k+1} x^{k-1} +. \end{align*} -in die Differentialgleichung ein, erhält man + +\subsection{Lösen der Laguerre-Differentialgleichung} +Setzt man nun den Potenzreihenansatz in +\eqref{laguerre:dgl} +%die Differentialgleichung +ein, +% erhält man +resultiert \begin{align*} \sum_{k=1}^\infty (k+1) k a_{k+1} x^k + @@ -64,16 +93,18 @@ n \sum_{k=0}^\infty a_k x^k 0. \end{align*} Daraus lässt sich die Rekursionsbeziehung -\begin{align*} +\begin{align} a_{k+1} & = \frac{k-n}{(k+1) (k + \nu + 1)} a_k -\end{align*} +\label{laguerre:rekursion} +\end{align} ableiten. Für ein konstantes $n$ erhalten wir als Potenzreihenlösung ein Polynom vom Grad $n$, denn für $k=n$ wird $a_{n+1} = 0$ und damit auch $a_{n+2}=a_{n+3}=\ldots=0$. -Aus der Rekursionsbeziehung ist zudem ersichtlich, +Aus %der Rekursionsbeziehung +\eqref{laguerre:rekursion} ist zudem ersichtlich, dass $a_0 \neq 0$ beliebig gewählt werden kann. Wählen wir nun $a_0 = 1$, dann folgt für die Koeffizienten $a_1, a_2, a_3$ \begin{align*} @@ -114,7 +145,7 @@ L_n(x) \sum_{k=0}^{n} \frac{(-1)^k}{k!} \binom{n}{k} x^k \label{laguerre:polynom} \end{align} -und mit $\nu \in \mathbb{R}$ die verallgemeinerten Laguerre-Polynome +und mit $\nu \in \mathbb{R}$ die assoziierten Laguerre-Polynome \begin{align} L_n^\nu(x) = @@ -132,14 +163,19 @@ Abbildung~\ref{laguerre:fig:polyeval} dargestellt. \end{figure} \subsection{Analytische Fortsetzung} -Durch die analytische Fortsetzung erhalten wir zudem noch die zweite Lösung der -Differentialgleichung mit der Form +Durch die analytische Fortsetzung können wir zudem noch die zweite Lösung der +Differentialgleichung erhalten. +Laut \eqref{buch:funktionentheorie:singularitäten:eqn:w1} hat die Lösung +die Form \begin{align*} \Xi_n(x) = -L_n(x) \ln(x) + \sum_{k=1}^\infty d_k x^k +L_n(x) \log(x) + \sum_{k=1}^\infty d_k x^k . \end{align*} +Eine Herleitung dazu lässt sich im +Abschnitt \ref{buch:funktionentheorie:subsection:dglsing} +im ersten Teil des Buches finden. Nach einigen aufwändigen Rechnungen, % die am besten ein Computeralgebrasystem übernimmt, die den Rahmen dieses Kapitel sprengen würden, @@ -147,7 +183,7 @@ erhalten wir \begin{align*} \Xi_n = -L_n(x) \ln(x) +L_n(x) \log(x) + \sum_{k=1}^n \frac{(-1)^k}{k!} \binom{n}{k} (\alpha_{n-k} - \alpha_n - 2 \alpha_k)x^k diff --git a/buch/papers/laguerre/eigenschaften.tex b/buch/papers/laguerre/eigenschaften.tex index 4adbe86..55d2276 100644 --- a/buch/papers/laguerre/eigenschaften.tex +++ b/buch/papers/laguerre/eigenschaften.tex @@ -3,32 +3,83 @@ % % (c) 2022 Patrik Müller, Ostschweizer Fachhochschule % -\section{Orthogonalität - \label{laguerre:section:orthogonal}} -Im Abschnitt~\ref{laguerre:section:definition} +\subsection{Orthogonalität% +\label{laguerre:subsection:orthogonal}} +\rhead{Orthogonalität}% +Im Abschnitt~\ref{laguerre:subsection:potenzreihenansatz} haben wir die Behauptung aufgestellt, dass die Laguerre-Polynome orthogonal sind. Zu dieser Behauptung möchten wir nun einen Beweis liefern. -Wenn wir \eqref{laguerre:dgl} in ein -Sturm-Liouville-Problem umwandeln können, haben wir bewiesen, dass es sich -bei den Laguerre-Polynomen um orthogonale Polynome handelt (siehe -Abschnitt~\ref{buch:integrale:subsection:sturm-liouville-problem}). -Der Beweis kann äquivalent auch über den Sturm-Liouville-Operator +% +Um die Orthogonalität von Funktionen zu zeigen, +bieten sich folgende Möglichkeiten an: +\begin{enumerate} +\item Identifizieren der Funktion als Eigenfunktion eines Skalarproduktes +mit einem selbstadjungierten Operator. +Dafür muss aber zuerst bewiesen werden, +dass der verwendete Operator selbstadjungiert ist. +Die Theorie dazu findet sich in den +Abschnitten~\ref{buch:orthogonal:section:orthogonale-polynome-und-dgl} und +\ref{buch:orthogonalitaet:section:bessel}. +\item Umformen der Differentialgleichung in die Form der +Sturm-Liouville-Differentialgleichung, +denn für dieses verallgemeinerte Problem +ist die Orthogonalität bereits bewiesen. +Die Theorie dazu findet sich im Abschnitt~\ref{buch:integrale:subsection:sturm-liouville-problem}. +\end{enumerate} + +% \subsubsection{Plan} +\subsubsection{Idee} +Für den Beweis der Orthogonalität der Laguerre-Polynome möchten +wir den zweiten Ansatz über das Sturm-Liouville-Problem verwenden. +% Dazu müssen wir die Laguerre-Differentialgleichung~\eqref{laguerre:dgl} +% in die Form der Sturm-Liouville-Differentialgleichung bringen. +Allerdings möchten wir nicht die Laguerre-Differentialgleichung +in die richtige Form bringen, +sondern den Laguerre-Operator \begin{align} -S +\Lambda = -\frac{1}{w(x)} \left(-\frac{d}{dx}p(x) \frac{d}{dx} + q(x) \right). -\label{laguerre:slop} +x \frac{d}{dx^2} + (\nu + 1 -x) \frac{d}{dx} +\label{laguerre:lagop} +. \end{align} -und den Laguerre-Operator +Da es sich beim Sturm-Liouville-Problem um ein Eigenwertproblem handelt, +kann die Orthogonalität äquivalent über denn Sturm-Liouville-Operator \begin{align} -\Lambda +S = -x \frac{d}{dx^2} + (\nu + 1 -x) \frac{d}{dx} +\frac{1}{w(x)} \left(-\frac{d}{dx}p(x) \frac{d}{dx} + q(x) \right). +\label{laguerre:slop} \end{align} -erhalten werden, -indem wir diese Operatoren einander gleichsetzen. -Aus der Beziehung +bewiesen werden. +Dazu müssen wir die Operatoren einander gleichsetzen. + +% Wenn wir \eqref{laguerre:dgl} in ein +% Sturm-Liouville-Problem umwandeln können, haben wir bewiesen, dass es sich +% bei den Laguerre-Polynomen um orthogonale Polynome handelt (siehe +% Abschnitt~\ref{buch:integrale:subsection:sturm-liouville-problem}). +% Der Beweis kann äquivalent auch über den Sturm-Liouville-Operator +% \begin{align} +% S +% = +% \frac{1}{w(x)} \left(-\frac{d}{dx}p(x) \frac{d}{dx} + q(x) \right). +% \label{laguerre:slop} +% \end{align} +% und den Laguerre-Operator +% \begin{align} +% \Lambda +% = +% x \frac{d}{dx^2} + (\nu + 1 -x) \frac{d}{dx} +% \end{align} +% erhalten werden, +% indem wir diese Operatoren einander gleichsetzen. + +\subsubsection{Umformen in Sturm-Liouville-Operator} +% Aus der Beziehung von +Setzen wir nun +\eqref{laguerre:lagop} und \eqref{laguerre:slop} +einander gleich \begin{align} S & = @@ -75,11 +126,13 @@ x^{\nu+1} e^{-x} \frac{d^2}{dx^2} + = x \frac{d^2}{dx^2} + (\nu + 1 - x) \frac{d}{dx}. \end{align*} -Mittels Koeffizientenvergleich kann nun abgelesen werden, dass $w(x) = x^\nu -e^{-x}$ und $C=1$ mit $\nu > -1$. +Mittels Koeffizientenvergleich kann nun abgelesen werden, +dass $w(x) = x^\nu e^{-x}$ und $C=1$ mit $\nu > -1$. Die Gewichtsfunktion $w(x)$ wächst für $x\rightarrow-\infty$ sehr schnell an, deshalb ist die Laguerre-Gewichtsfunktion nur geeignet für den Definitionsbereich $(0, \infty)$. + +\subsubsection{Randbedingungen} Bleibt nur noch sicherzustellen, dass die Randbedingungen, \begin{align} k_0 y(0) + h_0 p(0)y'(0) @@ -93,10 +146,12 @@ k_\infty y(\infty) + h_\infty p(\infty) y'(\infty) \label{laguerre:sllag_randb} \end{align} mit $|k_i|^2 + |h_i|^2 \neq 0,\,\forall i \in \{0, \infty\}$, erfüllt sind. -Am linken Rand (Gleichung~\eqref{laguerre:sllag_randa}) kann $y(0) = 1$, $k_0 = -0$ und $h_0 = 1$ verwendet werden, +% +Am linken Rand \eqref{laguerre:sllag_randa} kann $y(0) = 1$, $k_0 = 0$ und +$h_0 = 1$ verwendet werden, was auch die Laguerre-Polynome ergeben haben. -Für den rechten Rand ist die Bedingung (Gleichung~\eqref{laguerre:sllag_randb}) + +Für den rechten Rand ist die Bedingung \eqref{laguerre:sllag_randb} \begin{align*} \lim_{x \rightarrow \infty} p(x) y'(x) & = @@ -105,9 +160,27 @@ Für den rechten Rand ist die Bedingung (Gleichung~\eqref{laguerre:sllag_randb}) 0 \end{align*} für beliebige Polynomlösungen erfüllt für $k_\infty=0$ und $h_\infty=1$. -Damit können wir schlussfolgern: -Die verallgemeinerten Laguerre-Polynome sind orthogonal -bezüglich des Skalarproduktes auf dem Intervall $(0, \infty)$ -mit der verallgemeinerten Laguerre\--Gewichtsfunktion $w(x)=x^\nu e^{-x}$. -Die Laguerre-Polynome ($\nu=0$) sind somit orthognal im Intervall $(0, \infty)$ -mit der Gewichtsfunktion $w(x)=e^{-x}$. + +% Somit können wir schlussfolgern: +\begin{satz} +Die Laguerre-Polynome %($\nu=0$) +\eqref{laguerre:polynom} +% \begin{align*} +% L_n(x) +% = +% \sum_{k=0}^{n} \frac{(-1)^k}{k!} \binom{n}{k} x^k +% \end{align*} +sind orthognale Polynome bezüglich des Skalarproduktes +im Intervall~$(0, \infty)$ mit der Gewichts\-funktion~$w(x)=e^{-x}$. +\end{satz} + +\begin{satz} +Die assoziierten Laguerre-Polynome \eqref{laguerre:allg_polynom} +% \begin{align*} +% L_n^\nu(x) +% = +% \sum_{k=0}^{n} \frac{(-1)^k}{(\nu + 1)_k} \binom{n}{k} x^k. +% \end{align*} +sind orthogonale Polynome bezüglich des Skalarproduktes +im Intervall~$(0, \infty)$ mit der Gewichts\-funktion~$w(x)=x^\nu e^{-x}$. +\end{satz} diff --git a/buch/papers/laguerre/gamma.tex b/buch/papers/laguerre/gamma.tex index 2e5fc06..e40d8ca 100644 --- a/buch/papers/laguerre/gamma.tex +++ b/buch/papers/laguerre/gamma.tex @@ -3,17 +3,34 @@ % % (c) 2022 Patrik Müller, Ostschweizer Fachhochschule % -\section{Anwendung: Berechnung der Gamma-Funktion +\section{Anwendung: Berechnung der + Gamma-Funktion% \label{laguerre:section:quad-gamma}} +\rhead{Approximation der Gamma-Funktion}% Die Gauss-Laguerre-Quadratur kann nun verwendet werden, -um exponentiell abfallende Funktionen im Definitionsbereich $(0, \infty)$ zu -berechnen. -Dabei bietet sich z.B. die Gamma-Funkion hervorragend an, +um exponentiell abfallende Funktionen im Definitionsbereich~$(0, \infty)$ +zu berechnen. +Dabei bietet sich zum Beispiel die Gamma-Funktion hervorragend an, wie wir in den folgenden Abschnitten sehen werden. -\subsection{Gamma-Funktion} +Im ersten Abschnitt~\ref{laguerre:subsection:gamma} möchten wir noch einmal +die wichtigsten Eigenschaften der Gamma-Funktion betrachten, +bevor wir dann im zweiten Abschnitt~\ref{laguerre:subsection:gauss-lag-gamma} +diese Eigenschaften nutzen werden, +damit wir die Gauss-Laguerre-Quadratur für die Gamma-Funktion +markant verbessern können. +% damit wir sie dann in einem nächsten Schritt verwenden können, +% um unsere Approximationsmethode zu verbessern +% Im zweiten Abschnitt~\ref{laguerre:subsection:gauss-lag-gamma} +% wenden wir dann die Gauss-Laguerre-Quadratur auf die Gamma-Funktion und +% erweitern die Methode + +{\subsection{Gamma-Funktion} +\label{laguerre:subsection:gamma}} Die Gamma-Funktion ist eine Erweiterung der Fakultät auf die reale und komplexe Zahlenmenge. +Mehr Informationen zur Gamma-Funktion lassen sich im +Abschnitt~\ref{buch:rekursion:section:gamma} finden. Die Definition~\ref{buch:rekursion:def:gamma} beschreibt die Gamma-Funktion als Integral der Form \begin{align} @@ -22,24 +39,30 @@ Integral der Form \int_0^\infty x^{z-1} e^{-x} \, dx , \quad -\text{wobei Realteil von $z$ grösser als $0$} +\text{wobei } \operatorname{Re}(z) > 0 \label{laguerre:gamma} . \end{align} -Der Term $e^{-t}$ im Integranden und der Integrationsbereich erfüllen +Der Term $e^{-x}$ im Integranden und der Integrationsbereich erfüllen genau die Bedingungen der Laguerre-Integration. % Der Term $e^{-t}$ ist genau die Gewichtsfunktion der Laguerre-Integration und % der Definitionsbereich passt ebenfalls genau für dieses Verfahren. -Weiter zu erwähnen ist, dass für die verallgemeinerte Laguerre-Integration die -Gewichtsfunktion $t^\nu e^{-t}$ exakt dem Integranden für $\nu=z-1$ entspricht. +Weiter zu erwähnen ist, dass für die assoziierte Laguerre-Integration die +Gewichtsfunktion $x^\nu e^{-x}$ exakt dem Integranden +für $\nu = z - 1$ entspricht. \subsubsection{Funktionalgleichung} Die Gamma-Funktion besitzt die gleiche Rekursionsbeziehung wie die Fakultät, nämlich \begin{align} +\Gamma(z+1) += z \Gamma(z) +\quad +\text{mit } +\Gamma(1) = -\Gamma(z+1) +1 . \label{laguerre:gamma_funktional} \end{align} @@ -61,21 +84,64 @@ her. Dadurch lassen Werte der Gamma-Funktion sich für $z$ in der rechten Halbebene leicht in die linke Halbebene übersetzen und umgekehrt. -\subsection{Berechnung mittels Gauss-Laguerre-Quadratur} +{\subsection{Berechnung mittels Gauss-Laguerre-Quadratur} +\label{laguerre:subsection:gauss-lag-gamma}} In den vorherigen Abschnitten haben wir gesehen, -dass sich die Gamma-Funktion bestens für die Gauss-Laguerre-Quadratur eignet. +dass sich die Gamma-Funktion bestens für die Gauss-Laguerre-Quadratur +\begin{align*} +\int_0^\infty x^{z-1} e^{-x} \, dx += +\int_0^\infty f(x) w(x) \, dx +\approx +\sum_{i=1}^n f(x_i) A_i +\end{align*} +eignet. Nun bieten sich uns zwei Optionen, diese zu berechnen: \begin{enumerate} -\item Wir verwenden die verallgemeinerten Laguerre-Polynome, dann $f(x)=1$. -\item Wir verwenden die Laguerre-Polynome, dann $f(x)=x^{z-1}$. +\item Wir verwenden die assoziierten Laguerre-Polynome $L_n^\nu(x)$ mit +$w(x) = x^\nu e^{-x}$, $\nu = z - 1$ und $f(x) = 1$. +% $f(x)=1$. +% \begin{align*} +% \int_0^\infty x^{z-1} e^{-x} \, dx +% = +% \int_0^\infty f(x) w(x) \, dx +% \quad +% \text{mit } +% w(x) +% = +% x^\nu e^{-x}, +% \nu +% = +% z - 1 +% \text{ und } +% f(x) = 1 +% . +% \end{align*} +\item Wir verwenden die Laguerre-Polynome $L_n(x)$ mit +$w(x) = e^{-x}$ und $f(x) = x^{z - 1}$. +% $f(x)=x^{z-1}$ +% \begin{align*} +% \int_0^\infty x^{z-1} e^{-x} \, dx +% = +% \int_0^\infty f(x) w(x) \, dx +% \quad +% \text{mit } +% w(x) +% = +% e^{-x} +% \text{ und } +% f(x) = x^{z - 1} +% . +% \end{align*} \end{enumerate} Die erste Variante wäre optimal auf das Problem angepasst, allerdings müssten die Gewichte und Nullstellen für jedes $z$ neu berechnet werden, da sie per Definition von $z$ abhängen. Dazu kommt, -dass die Berechnung der Gewichte $A_i$ nach \cite{laguerre:Cassity1965AbcissasCA} +dass die Berechnung der Gewichte $A_i$ nach +\cite{laguerre:Cassity1965AbcissasCA} \begin{align*} A_i = @@ -113,7 +179,7 @@ ergibt sich \sum_{i=1}^n x_i^{z-1} A_i. \label{laguerre:naive_lag} \end{align} - +% \begin{figure} \centering % \input{papers/laguerre/images/rel_error_simple.pgf} @@ -123,7 +189,7 @@ ergibt sich für verschiedene reele Werte von $z$ und Grade $n$ der Laguerre-Polynome} \label{laguerre:fig:rel_error_simple} \end{figure} - +% Bevor wir die Gauss-Laguerre-Quadratur anwenden, möchten wir als ersten Schritt eine Fehlerabschätzung durchführen. Für den Fehlerterm \eqref{laguerre:lag_error} wird die $2n$-te Ableitung @@ -146,7 +212,7 @@ R_n , \label{laguerre:gamma_err_simple} \end{align} -wobei $\xi$ ein geeigneter Wert im Interval $(0, \infty)$ ist +wobei $\xi$ ein geeigneter Wert im Intervall $(0, \infty)$ ist und $n$ der Grad des verwendeten Laguerre-Polynoms. Eine Fehlerabschätzung mit dem Fehlerterm stellt sich als unnütz heraus, da $R_n$ für $z < 2n - 1$ bei $\xi \rightarrow 0$ eine Singularität aufweist @@ -169,12 +235,12 @@ exakt ist für zu integrierende Polynome mit Grad $\leq 2n-1$ und hinzukommt, dass zudem von $z$ noch $1$ abgezogen wird im Exponenten. Es ist ersichtlich, -dass sich für den Polynomgrad $n$ ein Interval gibt, +dass sich für den Polynomgrad $n$ ein Intervall gibt, in dem der relative Fehler minimal ist. Links steigt der relative Fehler besonders stark an, während er auf der rechten Seite zu konvergieren scheint. Um die linke Hälfte in den Griff zu bekommen, -könnten wir die Reflektionsformel der Gamma-Funktion ausnutzen. +könnten wir die Reflektionsformel der Gamma-Funktion verwenden. \begin{figure} \centering @@ -204,8 +270,8 @@ das Problem in den Griff zu bekommen. Wie wir im vorherigen Abschnitt gesehen haben, scheint der Integrand problematisch. Darum möchten wir jetzt den Integranden analysieren, -um ihn besser verstehen zu können und -dadurch geeignete Gegenmassnahmen zu entwickeln. +damit wir ihn besser verstehen und +dadurch geeignete Gegenmassnahmen zu entwickeln können. % Dieser Abschnitt soll eine grafisches Verständnis dafür schaffen, % wieso der Integrand so problematisch ist. @@ -263,7 +329,7 @@ grösser als $0$ und kleiner als $2n-1$ ist. \subsubsection{Ansatz mit Verschiebungsterm} % Mittels der Funktionalgleichung \eqref{laguerre:gamma_funktional} -% kann der Wert von $\Gamma(z)$ im Interval $z \in [a,a+1]$, +% kann der Wert von $\Gamma(z)$ im Intervall $z \in [a,a+1]$, % in dem der relative Fehler minimal ist, % evaluiert werden und dann mit der Funktionalgleichung zurückverschoben werden. Nun stellt sich die Frage, @@ -322,28 +388,15 @@ s(z, m) \cdot (z - 2n)_{2n} \frac{(n!)^2}{(2n)!} \xi^{z + m - 2n - 1} \label{laguerre:gamma_err_shifted} . \end{align} - +% \begin{figure} \centering \includegraphics{papers/laguerre/images/targets.pdf} % %\vspace{-12pt} -\caption{$a$ in Abhängigkeit von $z$ und $n$} +\caption{$m^*$ in Abhängigkeit von $z$ und $n$} \label{laguerre:fig:targets} \end{figure} -% wobei ist -% mit $z^*(n) \in \mathbb{R}$ wollen wir finden, -% in dem wir den Fehlerterm \eqref{laguerre:lag_error} anpassen -% und in einem nächsten Schritt minimieren. -% Zudem nehmen wir an, -% dass $z < z^*(n)$ ist. -% Wir fügen einen Verschiebungsterm um $m \in \mathbb{N}$ Stellen ein, -% daraus folgt -% -% Damit wir den idealen Verschiebungsterm $m^*$ finden können, -% müssen wir mittels des Fehlerterms \eqref{laguerre:gamma_err_shifted} -% ein Optimierungsproblem % -% Das Optimierungsproblem daraus lässt sich als Daraus formulieren wir das Optimierungproblem \begin{align*} m^* @@ -361,8 +414,8 @@ nur wirklich praktisch sinnvoll für kleine $n$ ist, können die Intervalle $[a(n), a(n)+1]$ empirisch gesucht werden. Wir bestimmen nun die optimalen Verschiebungsterme empirisch -für $n = 2,\ldots, 12$ im Intervall $z \in (0, 1)$, -da $z$ sowieso um den Term $m$ verschoben wird, +für $n = 1,\ldots, 12$ im Intervall $z \in (0, 1)$, +da $z$ sowieso mit den Term $m$ verschoben wird, reicht die $m^*$ nur in diesem Intervall zu analysieren. In Abbildung~\ref{laguerre:fig:targets} sind die empirisch bestimmten $m^*$ abhängig von $z$ und $n$ dargestellt. @@ -382,7 +435,7 @@ Den linearen Regressor = \alpha n + \beta \end{align*} -machen wir nur abhängig von $n$ +machen wir nur abhängig von $n$, in dem wir den Mittelwert $\overline{m}$ von $m^*$ über $z$ berechnen. \begin{figure} @@ -395,8 +448,8 @@ in dem wir den Mittelwert $\overline{m}$ von $m^*$ über $z$ berechnen. \end{figure} In Abbildung~\ref{laguerre:fig:schaetzung} sind die Resultate -der linearen Regression aufgezeigt mit $\alpha = 1.34094$ und $\beta = -0.854093$. +der linearen Regression aufgezeigt mit $\alpha = 1.34154$ und $\beta = +0.848786$. Die lineare Beziehung ist ganz klar ersichtlich und der Fit scheint zu genügen. Der optimale Verschiebungsterm kann nun mit \begin{align*} @@ -413,8 +466,8 @@ gefunden werden. In einem ersten Schritt möchten wir analysieren, wie gut die Abschätzung des optimalen Verschiebungsterms ist. Dazu bestimmen wir den relativen Fehler für verschiedene Verschiebungsterme $m$ -rund um $m^*$ bei gegebenem Polynomgrad $n = 8$ für $z \in (0, 1)$. -Abbildung~\ref{laguerre:fig:rel_error_shifted} sind die relativen Fehler +in der Nähe von $m^*$ bei gegebenem Polynomgrad $n = 8$ für $z \in (0, 1)$. +In Abbildung~\ref{laguerre:fig:rel_error_shifted} sind die relativen Fehler der Approximation dargestellt. Man kann deutlich sehen, dass der relative Fehler anwächst, @@ -512,21 +565,36 @@ H_k(z) \frac{(-1)^k (-z)_k}{(z+1)_k} \end{align*} mit $H_0 = 1$ und $\sum_0^n g_k = 1$ (siehe \cite{laguerre:lanczos}). -Diese Methode wurde zum Beispiel in -{\em GNU Scientific Library}, {\em Boost}, {\em CPython} und +Diese Methode wurde zum Beispiel in +{\em GNU Scientific Library}, {\em Boost}, {\em CPython} und {\em musl} implementiert. -Diese Methode erreicht für $n = 7$ typischerweise Genauigkeit von $13$ +Diese Methode erreicht für $n = 7$ typischerweise eine Genauigkeit von $13$ korrekten, signifikanten Stellen für reele Argumente. -Zum Vergleich: die vorgestellte Methode erreicht für $n = 7$ -eine minimale Genauigkeit von $6$ korrekten, signifikanten Stellen +Zum Vergleich: die vorgestellte Methode erreicht für $n = 7$ +eine minimale Genauigkeit von $6$ korrekten, signifikanten Stellen für reele Argumente. -Das Resultat ist etwas enttäuschend, -aber nicht unerwartet, -da die Lanczos-Methode spezifisch auf dieses Problem zugeschnitten ist und + +\subsubsection{Fazit} +% Das Resultat ist etwas enttäuschend, +Die Genauigkeit der vorgestellten Methode schneidet somit schlechter ab, +als die Lanczos-Methode. +Dieser Erkenntnis kommt nicht ganz unerwartet, +% aber nicht unerwartet, +da die Lanczos-Methode spezifisch auf dieses Problem zugeschnitten ist und unsere Methode eine erweiterte allgemeine Methode ist. -Was die Komplexität der Berechnungen im Betrieb angeht, -ist die Gauss-Laguerre-Quadratur wesentlich ressourcensparender, -weil sie nur aus $n$ Funktionsevaluationen, -wenigen Multiplikationen und Additionen besteht. +Allerdings besticht die vorgestellte Methode +durch ihre stark reduzierte Komplexität. % und Rechenaufwand. +% Was die Komplexität der Berechnungen im Betrieb angeht, +% ist die Gauss-Laguerre-Quadratur wesentlich ressourcensparender, +% weil sie nur aus $n$ Funktionsevaluationen, +% wenigen Multiplikationen und Additionen besteht. +Was den Rechenaufwand angeht, +benötigt die vorgestellte Methode, +für eine Genauigkeit von $n-1$ signifikanten Stellen, +nur $n$ Funktionsevaluationen +und wenige zusätzliche Multiplikationen und Additionen. Demzufolge könnte diese Methode Anwendung in Systemen mit wenig Rechenleistung -und/oder knappen Energieressourcen finden.
\ No newline at end of file +und/oder knappen Energieressourcen finden. +Die vorgestellte Methode ist ein weiteres Beispiel dafür, +wie Verfahren durch die Kenntnis der Eigenschaften einer Funktion +verbessert werden können.
\ No newline at end of file diff --git a/buch/papers/laguerre/images/estimates.pdf b/buch/papers/laguerre/images/estimates.pdf Binary files differindex bd995de..fe48f47 100644 --- a/buch/papers/laguerre/images/estimates.pdf +++ b/buch/papers/laguerre/images/estimates.pdf diff --git a/buch/papers/laguerre/images/laguerre_poly.pdf b/buch/papers/laguerre/images/laguerre_poly.pdf Binary files differindex 21278f5..f31d81d 100644 --- a/buch/papers/laguerre/images/laguerre_poly.pdf +++ b/buch/papers/laguerre/images/laguerre_poly.pdf diff --git a/buch/papers/laguerre/images/rel_error_simple.pdf b/buch/papers/laguerre/images/rel_error_simple.pdf Binary files differindex 3212e42..0072d28 100644 --- a/buch/papers/laguerre/images/rel_error_simple.pdf +++ b/buch/papers/laguerre/images/rel_error_simple.pdf diff --git a/buch/papers/laguerre/images/targets.pdf b/buch/papers/laguerre/images/targets.pdf Binary files differindex 9514a6d..dc61c88 100644 --- a/buch/papers/laguerre/images/targets.pdf +++ b/buch/papers/laguerre/images/targets.pdf diff --git a/buch/papers/laguerre/main.tex b/buch/papers/laguerre/main.tex index 57a6560..91c1475 100644 --- a/buch/papers/laguerre/main.tex +++ b/buch/papers/laguerre/main.tex @@ -9,7 +9,7 @@ \chapterauthor{Patrik Müller} {\parindent0pt Die} Laguerre\--Polynome, -benannt nach Edmond Laguerre (1834 - 1886), +benannt nach Edmond Laguerre (1834 -- 1886), sind Lösungen der ebenfalls nach Laguerre benannten Differentialgleichung. Laguerre entdeckte diese Polynome, als er Approximations\-methoden für das Integral diff --git a/buch/papers/laguerre/presentation/presentation.pdf b/buch/papers/laguerre/presentation/presentation.pdf Binary files differdeleted file mode 100644 index 3d00de3..0000000 --- a/buch/papers/laguerre/presentation/presentation.pdf +++ /dev/null diff --git a/buch/papers/laguerre/presentation/sections/gamma_approx.tex b/buch/papers/laguerre/presentation/sections/gamma_approx.tex index ecd02ab..811fbfa 100644 --- a/buch/papers/laguerre/presentation/sections/gamma_approx.tex +++ b/buch/papers/laguerre/presentation/sections/gamma_approx.tex @@ -163,7 +163,7 @@ da Gauss-Quadratur nur für kleine $n$ praktischen Nutzen hat} \alpha n + \beta \\ &\approx -1.34093 n + 0.854093 +1.34154 n + 0.848786 \\ m^* &= diff --git a/buch/papers/laguerre/quadratur.tex b/buch/papers/laguerre/quadratur.tex index a494362..841bc20 100644 --- a/buch/papers/laguerre/quadratur.tex +++ b/buch/papers/laguerre/quadratur.tex @@ -3,20 +3,21 @@ % % (c) 2022 Patrik Müller, Ostschweizer Fachhochschule % -\section{Gauss-Quadratur +\section{Gauss-Quadratur% \label{laguerre:section:quadratur}} +\rhead{Gauss-Quadratur}% Die Gauss-Quadratur ist ein numerisches Integrationsverfahren, welches die Eigenschaften von orthogonalen Polynomen verwendet. -Herleitungen und Analysen der Gauss-Quadratur können im +Herleitungen und Analysen der Gauss-Quadratur können im Abschnitt~\ref{buch:orthogonal:section:gauss-quadratur} gefunden werden. Als grundlegende Idee wird die Beobachtung, dass viele Funktionen sich gut mit Polynomen approximieren lassen, verwendet. Stellt man also sicher, -dass ein Verfahren gut für Polynome funktioniert, +dass ein Verfahren gut für Polynome funktioniert, sollte es auch für andere Funktionen angemessene Resultate liefern. -Es wird ein Polynom verwendet, -welches an den Punkten $x_0 < x_1 < \ldots < x_n$ +Es wird ein Polynom verwendet, +welches an den Punkten $x_0 < x_1 < \ldots < x_n$ die Funktionwerte~$f(x_i)$ annimmt. Als Resultat kann das Integral via einer gewichteten Summe der Form \begin{align} @@ -29,25 +30,35 @@ berechnet werden. Die Gauss-Quadratur ist exakt für Polynome mit Grad $2n -1$, wenn ein Interpolationspolynom von Grad $n$ gewählt wurde. -\subsection{Gauss-Laguerre-Quadratur +\subsection{Gauss-Laguerre-Quadratur% \label{laguerre:subsection:gausslag-quadratur}} Wir möchten nun die Gauss-Quadratur auf die Berechnung von uneigentlichen Integralen erweitern, -spezifisch auf das Interval $(0, \infty)$. +spezifisch auf das Intervall~$(0, \infty)$. Mit dem vorher beschriebenen Verfahren ist dies nicht direkt möglich. -Mit einer Transformation die das unendliche Intervall $(a, \infty)$ mit -\begin{align*} -x -= -a + \frac{1 - t}{t} -\end{align*} -auf das Intervall $[0, 1]$ transformiert, -kann dies behoben werden. -Für unseren Fall gilt $a = 0$. +% Mit einer Transformation +% \begin{align*} +% x +% = +% % a + +% \frac{1 - t}{t} +% \end{align*} +% die das unendliche Intervall~$(0, \infty)$ +% auf das Intervall~$[0, 1]$ transformiert, +% kann dies behoben werden. +% % Für unseren Fall gilt $a = 0$. Das Integral eines Polynomes in diesem Intervall ist immer divergent. -Darum müssen wir das Polynom mit einer Funktion multiplizieren, -die schneller als jedes Polynom gegen $0$ geht, -damit das Integral immer noch konvergiert. +Es ist also nötig, +den Integranden durch Funktionen zu approximieren, +die genügend schnell gegen $0$ gehen. +Man kann Polynome beliebigen Grades verwenden, +wenn sie mit einer Funktion multipliziert werden, +die schneller gegen $0$ geht als jedes Polynom. +Damit stellen wir sicher, +dass das Integral immer noch konvergiert. +% Darum müssen wir das Polynom mit einer Funktion multiplizieren, +% die schneller als jedes Polynom gegen $0$ geht, +% damit das Integral immer noch konvergiert. Die Laguerre-Polynome $L_n$ schaffen hier Abhilfe, da ihre Gewichtsfunktion $w(x) = e^{-x}$ schneller gegen $0$ konvergiert als jedes Polynom. @@ -55,20 +66,32 @@ gegen $0$ konvergiert als jedes Polynom. % $L_n$ ausweiten. % Diese sind orthogonal im Intervall $(0, \infty)$ bezüglich % der Gewichtsfunktion $e^{-x}$. -Die Gleichung~\eqref{laguerre:gaussquadratur} lässt sich wie folgt -umformulieren: +Um also das Integral einer Funktion $g(x)$ im Intervall~$(0,\infty)$ zu berechen, +formt man das Integral wie folgt um: +\begin{align*} +\int_0^\infty g(x) \, dx += +\int_0^\infty f(x) e^{-x} \, dx +\end{align*} +Wir approximieren dann $f(x)$ durch ein Interpolationspolynom +wie bei der Gauss-Quadratur. +% Die Gleichung~\eqref{laguerre:gaussquadratur} lässt sich daher wie folgt +% umformulieren: +Die Gleichung~\eqref{laguerre:gaussquadratur} wird also +für die Gauss-Laguerre-Quadratur zu \begin{align} \int_{0}^{\infty} f(x) e^{-x} dx \approx \sum_{i=1}^{n} f(x_i) A_i \label{laguerre:laguerrequadratur} +. \end{align} \subsubsection{Stützstellen und Gewichte} Nach der Definition der Gauss-Quadratur müssen als Stützstellen die Nullstellen des verwendeten Polynoms genommen werden. Für das Laguerre-Polynom $L_n$ müssen demnach dessen Nullstellen $x_i$ und -als Gewichte $A_i$ die Integrale $l_i(x)e^{-x}$ verwendet werden. +als Gewichte $A_i$ die Integrale von $l_i(x) e^{-x}$ verwendet werden. Dabei sind \begin{align*} l_i(x_j) @@ -76,7 +99,7 @@ l_i(x_j) \delta_{ij} = \begin{cases} -1 & i=j \\ +1 & i=j \\ 0 & \text{sonst} \end{cases} % . @@ -97,6 +120,7 @@ des orthogonalen Polynoms $\phi_n(x)$, $\forall i =0,\ldots,n$ und \int_0^\infty w(x) \phi_n^2(x)\,dx \end{align*} dem Normalisierungsfaktor. + Wir setzen nun $\phi_n(x) = L_n(x)$ und nutzen den Vorzeichenwechsel der Laguerre-Koeffizienten aus, damit erhalten wir @@ -122,39 +146,41 @@ Für Laguerre-Polynome gilt Daraus folgt \begin{align} A_i -&= + & = - \frac{1}{n L_{n-1}(x_i) L'_n(x_i)} -. \label{laguerre:gewichte_lag_temp} +. \end{align} Nun kann die Rekursionseigenschaft der Laguerre-Polynome +\cite{laguerre:hildebrand2013introduction} +% (siehe \cite{laguerre:hildebrand2013introduction}) \begin{align*} -x L'_n(x) -&= +x L'_n(x) + & = n L_n(x) - n L_{n-1}(x) \\ -&= (x - n - 1) L_n(x) + (n + 1) L_{n+1}(x) + & = (x - n - 1) L_n(x) + (n + 1) L_{n+1}(x) \end{align*} umgeformt werden und da $x_i$ die Nullstellen von $L_n(x)$ sind, -vereinfacht sich der Term zu +vereinfacht sich die Gleichung zu \begin{align*} x_i L'_n(x_i) -&= -- n L_{n-1}(x_i) + & = +- n L_{n-1}(x_i) \\ -&= - (n + 1) L_{n+1}(x_i) + & = +(n + 1) L_{n+1}(x_i) . \end{align*} -Setzen wir das nun in \eqref{laguerre:gewichte_lag_temp} ein, +Setzen wir diese Beziehung nun in \eqref{laguerre:gewichte_lag_temp} ein, ergibt sich \begin{align} \nonumber A_i -&= + & = \frac{1}{x_i \left[ L'_n(x_i) \right]^2} \\ -&= + & = \frac{x_i}{(n+1)^2 \left[ L_{n+1}(x_i) \right]^2} . \label{laguerre:quadratur_gewichte} diff --git a/buch/papers/laguerre/references.bib b/buch/papers/laguerre/references.bib index d21009b..1a4a903 100644 --- a/buch/papers/laguerre/references.bib +++ b/buch/papers/laguerre/references.bib @@ -10,15 +10,13 @@ series={Dover Books on Mathematics}, year={2013}, publisher={Dover Publications}, - pages = {389} + pages = {389-392} } @book{laguerre:abramowitz+stegun, added-at = {2008-06-25T06:25:58.000+0200}, address = {New York}, author = {Abramowitz, Milton and Stegun, Irene A.}, - biburl = {https://www.bibsonomy.org/bibtex/223ec744709b3a776a1af0a3fd65cd09f/a_olympia}, - description = {BibTeX - Wikipedia, the free encyclopedia}, edition = {ninth Dover printing, tenth GPO printing}, interhash = {d4914a420f489f7c5129ed01ec3cf80c}, intrahash = {23ec744709b3a776a1af0a3fd65cd09f}, diff --git a/buch/papers/laguerre/scripts/estimates.py b/buch/papers/laguerre/scripts/estimates.py index 21551f3..1acd7f7 100644 --- a/buch/papers/laguerre/scripts/estimates.py +++ b/buch/papers/laguerre/scripts/estimates.py @@ -15,7 +15,7 @@ if __name__ == "__main__": ) N = 200 - ns = np.arange(2, 13) + ns = np.arange(1, 13) step = 1 / (N - 1) x = np.linspace(step, 1 - step, N + 1) diff --git a/buch/papers/laguerre/scripts/laguerre_poly.py b/buch/papers/laguerre/scripts/laguerre_poly.py index 9700ab4..05db5d3 100644 --- a/buch/papers/laguerre/scripts/laguerre_poly.py +++ b/buch/papers/laguerre/scripts/laguerre_poly.py @@ -46,7 +46,7 @@ if __name__ == "__main__": ax.set_yticks(get_ticks(-ylim, ylim), minor=True) ax.set_yticks(get_ticks(-step * (ylim // step), ylim, step)) ax.set_ylim(-ylim, ylim) - ax.set_ylabel(r"$y$", y=0.95, labelpad=-18, rotation=0, fontsize="large") + ax.set_ylabel(r"$y$", y=0.95, labelpad=-14, rotation=0, fontsize="large") ax.legend(ncol=2, loc=(0.125, 0.01), fontsize="large") diff --git a/buch/papers/laguerre/scripts/rel_error_simple.py b/buch/papers/laguerre/scripts/rel_error_simple.py index 686500b..e1ea36a 100644 --- a/buch/papers/laguerre/scripts/rel_error_simple.py +++ b/buch/papers/laguerre/scripts/rel_error_simple.py @@ -18,7 +18,7 @@ if __name__ == "__main__": # Simple / naive xmin = -5 - xmax = 30 + xmax = 25 ns = np.arange(2, 12, 2) ylim = np.array([-11, 6]) x = np.linspace(xmin + ga.EPSILON, xmax - ga.EPSILON, 400) diff --git a/buch/papers/laguerre/scripts/targets.py b/buch/papers/laguerre/scripts/targets.py index 3bc7f52..69f94ba 100644 --- a/buch/papers/laguerre/scripts/targets.py +++ b/buch/papers/laguerre/scripts/targets.py @@ -38,7 +38,7 @@ if __name__ == "__main__": ) N = 200 - ns = np.arange(2, 13) + ns = np.arange(1, 13) bests = find_best_loc(N, ns=ns) |