Files
eth-summaries/semester3/numcs/parts/02_quadrature/02_non-equidistant/00_gauss.tex

108 lines
5.9 KiB
TeX

\newsection
\subsection{Nicht äquidistante Stützstellen}
Alternativ zur Unterteilung des Intervalls können wir andere Quadraturpunkte erlauben
\subsubsection{Gauss Quadratur}
In diesem Kapitel werden die Gewichte mit $b_1, b_2, \ldots, b_s$ und die Knoten auf unserem Referenzintervall,
welches hier $[0, 1]$ ist, mit $c_1, c_2, \ldots, c_s \in [0, 1]$ bezeichnet.
% TODO: It would probably be a good idea to link the document together much better (and maybe create an index in the end?)
Wir möchten unsere Gewichte $b_i$ und Knoten $c_i$ so bestimmen, dass die Quadraturordnung maximal ist.
Wir definieren die Notation $\langle M, g \rangle = \int_{0}^{1} M(t) g(t) \dx t$ (also das Skalarprodukt).
\begin{theorem}[]{Ordnung der Quadraturformel}
Die Ordnung ist $s + m$ genau dann, wenn $\langle M, g \rangle = 0$ für alle Polynome $g$ mit $\deg(g) \leq m - 1$ und
$M(t) = (t - c_1) \cdot (t - c_2) \cdot \ldots \cdot (t - c_s)$ für $s$. Also steht $M$ senkrecht zu allen $g$.
\end{theorem}
\fancytheorem{Maximale Ordnung einer Quadraturformel} Die Ordnung einer Quadraturformel mit $s$ Knoten ist $\leq 2s$
\fhlc{lime}{Orthogonale Polynome}
Für $I = ]a, b[$ sei $w: I \rightarrow \R$ eine stetige Gewichtsfunktion mit $w(x) > 0 \smallhspace \forall x \in I$, so dass für alle $k = 0, 1, 2, \ldots$
$\int_{a}^{b} |x|^k w(x) \dx x$ existiert.
\begin{theorem}[]{Orthogonale Polynome}
Im Raum $V = \{ f: I \rightarrow \R \text{ stetig}, \int_{a}^{b} |f(x)|^2 w(x) \dx x \text{ existiert} \}$ existiert eine eindeutige Folge von Polynomen
$p_0, p_1, \ldots$ mit $p_k(x) = x^k + P(x)$ mit $\deg(P(x)) \leq k - 1$ für $k \geq 0$, so dass $p_k \perp \text{span}\{ p_0, p_1, \ldots, p_{k - 1} \}$. Sie können mit der
\bi{3-Term-Rekursion} gebaut werden:
\begin{align*}
p_{k + 1}(x) = (x - \beta_{k + 1}) \cdot p_k(x) - \gamma_k p_{k - 1}(x)
\end{align*}
mit $p_0(x) = 1$, $p_{- 1}(x) = 0$, $\beta_{k + 1} = \frac{\langle x \cdot p_k, p_k \rangle}{\langle p_k, p_k \rangle}$
und $\beta_{k + 1} = \frac{\langle p_k, p_k \rangle}{\langle p_{k - 1}, p_{k - 1} \rangle}$,
wobei hier $\langle f, g \rangle = \int_{a}^{b} f(x) g(x) w(x) \dx x$
das Skalarprodukt ist.
\end{theorem}
\fancyex{Legendre-Polynome} sind definiert für $w(x) = 1$, $a = -1$ und $b = 1$ (sie sind orthogonal):
\begin{align*}
p_0(x) & = 1 & p_1(x) & = x \\
p_2(x) & = \frac{1}{2}(3x^2 - 1) & p_3(x) & = \frac{1}{2}(5x^3 - 3x)
\end{align*}
Die Normierung der Legendre-Polynome ist nicht standardisiert
\innumpy können wir mit
\texttt{scipy.special.eval\_legendre} und \texttt{scipy.special.legendre} diese Polynome berechnen und mit
\texttt{scipy.special.roots\_legendre} die Knoten berechnen
\fancyex{Hermite-Polynome} sind definiert für $w(x) = e^{-x^2}$, $a = -\infty$ und $b = \infty$:
\begin{align*}
p_0(x) & = 1 & p_1(x) & = 2x \\
p_2(x) & = 4x^2 - 2 & p_3(x) & = 8x^3 - 12x
\end{align*}
\stepLabelNumber{all}
\inlineremark Aus Theorem \ref{all:5-5-3} folgt direkt, dass $c_1, c_2, \ldots, c_s$ die Nullstellen von $p_s$ sind.
\setLabelNumber{all}{11}
\fancyremark{Knoten und Fehler der Gauss-Quadratur}
\begin{itemize}
\item Gauss-Knoten sind nicht äquidistant.
\item Gauss-Knoten sind nicht verschachtelt (was er damit meint ist, dass wir sie nicht mit DnQ verwenden können \textemdash
Wir können also nicht für eine Quadratur höherer Ordnung die Knotenpunkte der Gauss-Quadratur tieferer Ordnung verwenden)
\item Die Gauss-Quadratur ist offen (da die Endpunkte des Intervalls keine Knoten sind)
\item Bei der \bi{Radau-Quadratur} fixiert man ein Ende als Randknoten, und man hat nun Ordnung $2s - 1$.
Die Berechnung ist ansonsten gleich, bis auf den Fakt, dass wir nur noch $(s - 1)$ Knoten haben ($1$ bis und mit $s - 1$).\\
Sie können mit \texttt{scipy.special.roots\_jacobi(s - 1, alpha=1, beta=0)} berechnet werden.
\item Bei der \bi{Lobatto-Quadratur} fixiert man gleich beide Enden als Randknoten, und man hat Ordnung $2s - 2$ und wir haben die Knoten $c_2, \ldots, c_{s - 1}$
\item Die Lombatto- und Radau-Quadratur werden häufig bei der Lösung gewöhnlicher DGL verwendet.
\end{itemize}
Der Fehler der Gauss-Quadratur ist:
\rmvspace
\begin{align*}
\int_{a}^{b} f(x) \dx x - \sum_{j = 1}^{s} b_j \cdot f(c_j) = \frac{b - a}{(2s)!} f^{(2s)}(z) \text{ mit } z \in [a, b]
\end{align*}
\drmvspace
Und eine obere Schranke für den Fehler ist dann
\rmvspace
\begin{align*}
\left| \int_{a}^{b} f(x) \dx x - \sum_{k = 1}^{N} G_s(f, x_{k - 1, x_k})\right| \leq c \cdot h^{2s} \max_{z \in [a, b]}|f^{(2s)}(z)|
\end{align*}
\drmvspace
wobei $c \in \R$ eine Konstante ist und $h = b - a$ die Grösse des Intervalls ist.
\setLabelNumber{all}{14}
\fancyremark{Gewichte der Gauss-Legendre-Quadratur} Für die Knoten $c_1, \ldots, c_s$ und den entsprechenden Lagrange-Polynomen $l_1, \ldots, l_s$
mit $\deg(l_i) = s - 1 \ \forall i \in \{ 1, \ldots, s \}$.
Die zugehörige Quadraturformel ist exakt für Polynome $2s - 1$-ten Grades. Die Gewichte sind:
\begin{align*}
b_i = \int_{0}^{1} l_i(t)^2 \dx t
\end{align*}
% Yeah, there is *no way* we would have figured that out... and he even provides a proof for it... yikes...
\inlinetheorem Die Gewichte der Gauss-Legendre-Quadraturformel sind positiv.
% TODO: Consider adding code
\begin{tables}{cccc}{Algorithmus & Laufzeit & Genauigkeit Knoten & Genauigkeit Gewichte}
GW (1969) & $\tco{s^3}$ / $\tco{s^2}$ & $\tco{1}$ & $\tco{s^2}$ \\
Bogaert-Townsend & $\tco{s}$ & $\tco{1}$ & $\tco{1}$ \\
CC ($2s$ Knoten) & $\tco{s \log(s)}$ & $\tco{1}$ & $\tco{1}$ \\
\end{tables}
Die Gauss-Quadratur ist in der Messtechnik nicht besonders geeignet, da wir die zugrundeliegende Funktion nicht im Vorhinein kennen und die Kosten für die Anpassung der Ordnung
aufgrund fehlender Verschachtelbarkeit sehr hoch sind (wir müssen alle vorigen Berechnungen komplett neu machen)