mirror of
https://github.com/janishutz/eth-summaries.git
synced 2025-11-25 10:34:23 +00:00
[NumCS] Integrate numeric quadrature
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
\begin{definition}[]{Lagrange Polynome}
|
||||
Für Knoten (auch gennannt Stützstellen) $x_0, x_1, \ldots, x_n \in \R$ definieren wir die Lagrange-Polynome für $n = \text{Anzahl Stützstellen}$, also haben wir $n - 1$ Brüche, da wir eine Iteration überspringen, weil bei dieser $j = i$ ist:
|
||||
\begin{align*}
|
||||
l_i(x) = \prod_{j = 0 \neq i}^n \frac{x - x_j}{x_i - x_j}
|
||||
l_i(x) = \prod_{j = 0 \atop j \neq i}^n \frac{x - x_j}{x_i - x_j}
|
||||
\end{align*}
|
||||
\end{definition}
|
||||
Falls $j = i$ im Produkt, so überspringt $j$ diese Zahl.
|
||||
|
||||
@@ -1 +1,58 @@
|
||||
\section{Quadratur}
|
||||
\setcounter{subsection}{2}
|
||||
\subsection{Grundbegriffe und -Ideen}
|
||||
Es ist oft nicht möglich oder sinnvoll einen Integral analytisch zu berechnen.
|
||||
Mit Methoden der Quadratur können wir Integrale nummerisch berechnen.
|
||||
|
||||
\innumpy kann \texttt{scipy.integrate.quad} verwendet werden.
|
||||
Falls man jedoch eine manuelle Implementation erstellen will, so nutzt man oft die Trapez- oder Simpson-Regel, da sie sowohl einfach zu implementieren, wie auch effizient sind.
|
||||
In gewissen Anwendungen sind Gauss-Quadratur-Formeln nützlich, welche man durch Spektralmethoden ersetzen kann, welche die FFT verwenden und effizienter sind.
|
||||
|
||||
\begin{definition}[]{Quadratur}
|
||||
Ein Integral kann durch eine gewichtete Summe von Funktionswerten der Funktion $f$ an verschiedenen Stellen $c_i^n$ approximiert werden:
|
||||
\begin{align*}
|
||||
\int_{a}^{b} f(x) \dx \approx Q_n(f; a, b) := \sum_{i = 1}^{n} \omega_i^n f(c_i^n)
|
||||
\end{align*}
|
||||
wobei $\omega_i^n$ die \textit{Gewichte} und $c_i^n \in [a, b]$ die \textit{Knoten} der Quadraturformel sind.
|
||||
\end{definition}
|
||||
|
||||
Wir wollen natürlich wieder $c_i^n \in [a, b]$ und $w_i^n$ so wählen, dass der Fehler minimiert wird.
|
||||
\begin{definition}[]{Fehler}
|
||||
Der Fehler der Quadratur $Q_n(f)$ ist
|
||||
\begin{align*}
|
||||
E(n) = \left| \int_{a}^{b} f(x) \dx - Q_n(f; a, b) \right|
|
||||
\end{align*}
|
||||
Wir haben \bi{algebraische Konvergenz} wenn $E(n) = \tco{\frac{1}{n^p}}$ mit $p > 0$ und
|
||||
\bi{exponentielle Konvergenz} wenn $E(n) = \tco{q^n}$ mit $0 \leq q < 1$
|
||||
\end{definition}
|
||||
|
||||
% Der Polynom, das Ansatz, yep... excellent German there
|
||||
Die Idee, den Integral einer schweren Funktion zu berechnen, ist diese mit einer einfachen Funktion, die analytisch integrierbar ist, zu approximieren.
|
||||
Wenn wir diese Funktion geschickt wählen, dann ist es sogar möglich, dass wir nur eine solche Funktion für alle Funktionen $f$ benötigen.
|
||||
|
||||
% NOTE: Called the b_j from the script c_i here, as the clash with the limits of the integral looked a bit confusing
|
||||
Wir ersetzen also $f$ durch $f_n \in \text{span} \{ c_0, c_1, \ldots, c_n \}$, wobei die $c_i$ eine Basis des Raums der Funktionen auf $[a, b]$ bilden:
|
||||
\rmvspace
|
||||
\begin{align*}
|
||||
\int_{a}^{b} f(x) \dx x \approx \int_{a}^{b} f_n(x) \dx x = \int_{a}^{b} \left( \sum_{k = 0}^{n} \alpha_k b_k(x) \right) \dx x = \sum_{k = 0}^{n} \alpha_k \int_{a}^{b} c_k(x) \dx x
|
||||
\end{align*}
|
||||
Falls wir $c_k(x) = x^k$ haben (was oft der Fall ist, je nach Funktion aber könnte eine rationale Funktion oder andere Arten besser geeignet sein), dann erhalten wir:
|
||||
\rmvspace
|
||||
\begin{align*}
|
||||
\int_{a}^{b} c_k(x) \dx x = \frac{b^{k + 1} - a^{k + 1}}{k + 1}
|
||||
\end{align*}
|
||||
% Mit äquidistanten Punkten $x_0, x_1, \ldots, x_n$ können wir die Koeffizienten $\alpha_0, \alpha_1, \ldots, \alpha_n$ mithilfe eines linearen Gleichunssystems berechnen,
|
||||
% wessen Matrix eine $(n + 1) \times (n + 1)$-Vandermonde Matrix ist, so dass $p_n(x) = \alpha_0 + \alpha_1 x + \ldots + \alpha_n x^n$,
|
||||
% also sind unsere Gleichungen $p_n(x_j) = f(x_j)$ für alle $j = 0, 1, \ldots, n$.
|
||||
% Dieser Ansatz hat jedoch grosse Rundungsfehler.
|
||||
|
||||
\begin{definition}[]{Lagrange-Polynome}
|
||||
Für die Knoten $x_0, x_1, \ldots, x_n \in \R$ definieren wir die Polynome
|
||||
\rmvspace
|
||||
\begin{align*}
|
||||
l_i(x) = \prod_{j = 0 \atop j \neq i}^n \frac{x - x_j}{x_i - x_j}
|
||||
\end{align*}
|
||||
|
||||
\rmvspace
|
||||
als die Lagrange-Polynome zu den Stützstellen $x_0, x_1, \ldots, x_n$
|
||||
\end{definition}
|
||||
Für ein Beispiel verweisen wir auf Abschnitt \ref{sec:barycentric-interpolation}
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
\setcounter{subsection}{2}
|
||||
\subsection{Grundbegriffe und -Ideen}
|
||||
Es ist oft nicht möglich oder sinnvoll einen Integral analytisch zu berechnen.
|
||||
Mit Methoden der Quadratur können wir Integrale nummerisch berechnen.
|
||||
|
||||
\innumpy kann \texttt{scipy.integrate.quad} verwendet werden.
|
||||
Falls man jedoch eine manuelle Implementation erstellen will, so nutzt man oft die Trapez- oder Simpson-Regel, da sie sowohl einfach zu implementieren, wie auch effizient sind.
|
||||
In gewissen Anwendungen sind Gauss-Quadratur-Formeln nützlich, welche man durch Spektralmethoden ersetzen kann, welche die FFT verwenden und effizienter sind.
|
||||
|
||||
\begin{definition}[]{Quadratur}
|
||||
Ein Integral kann durch eine gewichtete Summe von Funktionswerten der Funktion $f$ an verschiedenen Stellen $c_i^n$ approximiert werden:
|
||||
\begin{align*}
|
||||
\int_{a}^{b} f(x) \dx \approx Q_n(f; a, b) := \sum_{i = 1}^{n} \omega_i^n f(c_i^n)
|
||||
\end{align*}
|
||||
wobei $\omega_i^n$ die \textit{Gewichte} und $c_i^n \in [a, b]$ die \textit{Knoten} der Quadraturformel sind.
|
||||
\end{definition}
|
||||
|
||||
Wir wollen natürlich wieder $c_i^n \in [a, b]$ und $w_i^n$ so wählen, dass der Fehler minimiert wird.
|
||||
\begin{definition}[]{Fehler}
|
||||
Der Fehler der Quadratur $Q_n(f)$ ist
|
||||
\begin{align*}
|
||||
E(n) = \left| \int_{a}^{b} f(x) \dx - Q_n(f; a, b) \right|
|
||||
\end{align*}
|
||||
Wir haben \bi{algebraische Konvergenz} wenn $E(n) = \tco{\frac{1}{n^p}}$ mit $p > 0$ und
|
||||
\bi{exponentielle Konvergenz} wenn $E(n) = \tco{q^n}$ mit $0 \leq q < 1$
|
||||
\end{definition}
|
||||
|
||||
Die Idee, den Integral einer schweren Funktion zu berechnen, ist diese mit einer einfachen Funktion, die analytisch integrierbar ist, zu approximieren.
|
||||
Wenn wir diese Funktion geschickt wählen, dann ist es sogar möglich, dass wir nur eine solche Funktion für alle Funktionen $f$ benötigen.
|
||||
|
||||
% Der Polynom, das Ansatz, yep... excellent German there
|
||||
Reference in New Issue
Block a user