diff --git a/semester3/numcs/numcs-summary.pdf b/semester3/numcs/numcs-summary.pdf index a95a5d3..a2e3784 100644 Binary files a/semester3/numcs/numcs-summary.pdf and b/semester3/numcs/numcs-summary.pdf differ diff --git a/semester3/numcs/numcs-summary.tex b/semester3/numcs/numcs-summary.tex index 5503eb6..ff95d4c 100644 --- a/semester3/numcs/numcs-summary.tex +++ b/semester3/numcs/numcs-summary.tex @@ -130,6 +130,7 @@ Moral of the story: Use descriptive variable names and do NOT use $t$, $tt$, $tt \input{parts/01_interpolation/02_piece-wise/02_splines.tex} \newsection +\section{Numerische Quadratur} \input{parts/02_quadrature/00_introduction.tex} diff --git a/semester3/numcs/parts/01_interpolation/00_polynomial/03_lagrange-and-barzycentric-formula.tex b/semester3/numcs/parts/01_interpolation/00_polynomial/03_lagrange-and-barzycentric-formula.tex index aeb8f45..19a835e 100644 --- a/semester3/numcs/parts/01_interpolation/00_polynomial/03_lagrange-and-barzycentric-formula.tex +++ b/semester3/numcs/parts/01_interpolation/00_polynomial/03_lagrange-and-barzycentric-formula.tex @@ -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. diff --git a/semester3/numcs/parts/02_quadrature/00_introduction.tex b/semester3/numcs/parts/02_quadrature/00_introduction.tex index 713bd9d..bcc9cd5 100644 --- a/semester3/numcs/parts/02_quadrature/00_introduction.tex +++ b/semester3/numcs/parts/02_quadrature/00_introduction.tex @@ -1 +1,58 @@ -\section{Quadratur} \ No newline at end of file +\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} diff --git a/semester3/numcs/parts/02_quadrature/intro.tex b/semester3/numcs/parts/02_quadrature/intro.tex deleted file mode 100644 index ae6bd4a..0000000 --- a/semester3/numcs/parts/02_quadrature/intro.tex +++ /dev/null @@ -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