From 56cc6c1fbae271c16c78935384b52e047cdd6f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20M=C3=BCller?= Date: Thu, 19 May 2022 16:11:27 +0200 Subject: Error correction & add gamma integrand plot --- buch/papers/laguerre/eigenschaften.tex | 11 ++++++++-- buch/papers/laguerre/gamma.tex | 4 ++-- buch/papers/laguerre/quadratur.tex | 6 +++--- buch/papers/laguerre/scripts/integrand.py | 34 +++++++++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 buch/papers/laguerre/scripts/integrand.py (limited to 'buch/papers/laguerre') diff --git a/buch/papers/laguerre/eigenschaften.tex b/buch/papers/laguerre/eigenschaften.tex index b0cc3a3..93d19a3 100644 --- a/buch/papers/laguerre/eigenschaften.tex +++ b/buch/papers/laguerre/eigenschaften.tex @@ -25,13 +25,20 @@ 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 Sturm-Liouville-Operator hat die Form +Der 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 der Laguerre-Operator +\begin{align} +\Lambda += +x \frac{d}{dx^2} + (\nu + 1 -x) \frac{d}{dx} +\end{align} +sind einander gleichzusetzen. Aus der Beziehung \begin{align} S @@ -56,7 +63,7 @@ Durch Separation erhalten wir dann \begin{align*} \int \frac{dp}{p} & = --\int \frac{\nu + 1 - x}{x}dx +-\int \frac{\nu + 1 - x}{x} \, dx \\ \log p & = diff --git a/buch/papers/laguerre/gamma.tex b/buch/papers/laguerre/gamma.tex index e3838b0..b15523b 100644 --- a/buch/papers/laguerre/gamma.tex +++ b/buch/papers/laguerre/gamma.tex @@ -30,12 +30,12 @@ welches alle Eigenschaften erfüllt, um mit der Gauss-Laguerre-Quadratur berechnet zu werden. \subsubsection{Funktionalgleichung} -Die Funktionalgleichung besagt +Die Funktionalgleichung der Gamma-Funktion besagt \begin{align} z \Gamma(z) = \Gamma(z+1). \label{laguerre:gamma_funktional} \end{align} -Mittels dieser Gleichung kann der Wert an einer bestimmten, +Mittels dieser Gleichung kann der Wert von $\Gamma(z)$ an einer bestimmten, geeigneten Stelle evaluiert werden und dann zurückverschoben werden, um das gewünschte Resultat zu erhalten. diff --git a/buch/papers/laguerre/quadratur.tex b/buch/papers/laguerre/quadratur.tex index 60fad7f..be69dee 100644 --- a/buch/papers/laguerre/quadratur.tex +++ b/buch/papers/laguerre/quadratur.tex @@ -7,7 +7,7 @@ \label{laguerre:section:quadratur}} {\large \color{red} TODO: Einleitung und kurze Beschreibung Gauss-Quadratur} \begin{align} -\int_a^b f(x) w(x) +\int_a^b f(x) w(x) \, dx \approx \sum_{i=1}^N f(x_i) A_i \label{laguerre:gaussquadratur} @@ -33,7 +33,7 @@ Gleichung~\eqref{laguerre:laguerrequadratur} lässt sich wiefolgt umformulieren: Nach der Definition der Gauss-Quadratur müssen als Stützstellen die Nullstellen des verwendeten Polynoms genommen werden. Das heisst für das Laguerre-Polynom $L_n$ müssen dessen Nullstellen $x_i$ und -als Gewichte $A_i$ werden die Integrale $l_i(x)e^{-x}$ verwendet werden. +als Gewichte $A_i$ die Integrale $l_i(x)e^{-x}$ verwendet werden. Dabei sind \begin{align*} l_i(x_j) @@ -57,7 +57,7 @@ A_i \subsubsection{Fehlerterm} Der Fehlerterm $R_n$ folgt direkt aus der Approximation \begin{align*} -\int_0^{\infty} f(x) e^{-x} dx +\int_0^{\infty} f(x) e^{-x} \, dx = \sum_{i=1}^n f(x_i) A_i + R_n \end{align*} diff --git a/buch/papers/laguerre/scripts/integrand.py b/buch/papers/laguerre/scripts/integrand.py new file mode 100644 index 0000000..89b9256 --- /dev/null +++ b/buch/papers/laguerre/scripts/integrand.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 +# -*- coding:utf-8 -*- +"""Plot for integrand of gamma function with shifting terms.""" + +import os +from pathlib import Path + +import matplotlib.pyplot as plt +import numpy as np + +EPSILON = 1e-12 +xlims = np.array([-3, 3]) + +root = str(Path(__file__).parent) +img_path = f"{root}/../images" +os.makedirs(img_path, exist_ok=True) + +t = np.logspace(*xlims, 1001)[:, None] +z = np.arange(-5, 5)[None] + 0.5 + + +r = t ** z + +fig, ax = plt.subplots(num=1, clear=True, constrained_layout=True, figsize=(6, 4)) +ax.semilogx(t, r) +ax.set_xlim(*(10.**xlims)) +ax.set_ylim(1e-3, 40) +ax.set_xlabel(r"$t$") +ax.set_ylabel(r"$t^z$") +ax.grid(1, "both") +labels = [f"$z={zi:.1f}$" for zi in np.squeeze(z)] +ax.legend(labels, ncol=2, loc="upper left") +fig.savefig(f"{img_path}/integrands.pdf") +# plt.show() -- cgit v1.2.1