[NumCS] Catch up to current state

This commit is contained in:
2025-09-30 18:53:42 +02:00
parent defc886090
commit 0533879054
12 changed files with 270 additions and 19 deletions

View File

@@ -1,6 +1,6 @@
\subsection{Introduction} \subsection{Introduction}
\shortex $f'(x) = f(x)$ has only solution $f(x) = ae^x$ for any $a \in \R$; \shortex $f'(x) = f(x)$ has only solution $f(x) = ae^x$ for any $a \in \R$;
$f' - a = 0$ has only solution $f(x) = \int_{x_0}^{x} a(t) \smallhspace \dx t$ $f' - a = 0$ has only solution $f(x) = \int_{x_0}^{x} a(t) \dx t$
\setcounter{all}{6} \setcounter{all}{6}
\shorttheorem Let $F: \R^2 \rightarrow \R$ be a differential function of two variables. Let $x_0 \in \R$ and $y_0 \in \R^2$. \shorttheorem Let $F: \R^2 \rightarrow \R$ be a differential function of two variables. Let $x_0 \in \R$ and $y_0 \in \R^2$.

Binary file not shown.

View File

@@ -58,13 +58,17 @@
% ──────────────────────────────────────────────────────────────────── % ────────────────────────────────────────────────────────────────────
% ╭────────────────────────────────────────────────╮
% │ Introduction │
% ╰────────────────────────────────────────────────╯
\newpage \newpage
\setcounter{section}{-1} \setcounter{section}{-1}
\section{Introduction} \section{Introduction}
This summary is intended to give you a broad overview of the topics relevant for the exam and is not intended to serve as a full on replacement for the script. This summary is intended to give you a broad overview of the topics relevant for the exam and is not intended to serve as a full on replacement for the script.
We have decided to write it in German, as is the new script and for some of the topics that are poorly explained in the script, we have added further explanations. We have decided to write it in German, as is the new script and for some of the topics that are poorly explained in the script, we have added further explanations.
The numbering should match the script's numbering exactly, making it easier for you to look up the relevant definitions, theorems, etc in context in the script. The numbering should match the script's numbering exactly (apart from the cases where two definitions were combined due to being closely related and short), making it easier for you to look up the relevant definitions, theorems, etc in context in the script.
% ──────────────────────────────────────────────────────────────────── % ────────────────────────────────────────────────────────────────────
@@ -82,18 +86,17 @@ The numbering should match the script's numbering exactly, making it easier for
% ── polynomial interpolation ──────────────────────────────────────── % ── polynomial interpolation ────────────────────────────────────────
\newsection \newsection
\section{Polynomiale Interpolation} \section{Polynominterpolation}
\input{parts/01_interpolation/00_polynomial/00_intro.tex} \input{parts/01_interpolation/00_polynomial/00_intro.tex}
\input{parts/01_interpolation/00_polynomial/01_monome.tex} \input{parts/01_interpolation/00_polynomial/01_monome.tex}
\input{parts/01_interpolation/00_polynomial/02_newton-basis.tex} \input{parts/01_interpolation/00_polynomial/02_newton-basis.tex}
\input{parts/01_interpolation/00_polynomial/03_lagrange-and-barzycentric-formula.tex} \input{parts/01_interpolation/00_polynomial/03_lagrange-and-barzycentric-formula.tex}
\input{parts/01_interpolation/00_polynomial/04_chebychev-interpolation.tex} \input{parts/01_interpolation/00_polynomial/04_chebyshev-interpolation.tex}
% ── trigonometric interpolation ───────────────────────────────────── % ── trigonometric interpolation ─────────────────────────────────────
\newsection \newsection
\section{Trigonometrische Interpolation} \section{Trigonometrische Interpolation}
\input{parts/01_interpolation/01_trigonometric/00_intro.tex} \input{parts/01_interpolation/01_trigonometric/00_fourier.tex}
\end{document} \end{document}

View File

@@ -1,3 +1,7 @@
% ┌ ┐
% │ AUTHOR: Janis Hutz<info@janishutz.com> │
% └ ┘
\subsection{Rundungsfehler} \subsection{Rundungsfehler}
\begin{definition}[]{Absoluter \& Relativer Fehler} \begin{definition}[]{Absoluter \& Relativer Fehler}

View File

@@ -1,3 +1,7 @@
% ┌ ┐
% │ AUTHOR: Janis Hutz<info@janishutz.com> │
% └ ┘
\newsection \newsection
\subsection{Rechenaufwand} \subsection{Rechenaufwand}
In NumCS wird die Anzahl elementarer Operationen wie Addition, Multiplikation, etc benutzt, um den Rechenaufwand zu beschreiben. In NumCS wird die Anzahl elementarer Operationen wie Addition, Multiplikation, etc benutzt, um den Rechenaufwand zu beschreiben.

View File

@@ -1,3 +1,7 @@
% ┌ ┐
% │ AUTHOR: Janis Hutz<info@janishutz.com> │
% └ ┘
\newsection \newsection
\subsection{Rechnen mit Matrizen} \subsection{Rechnen mit Matrizen}
Wie in Lineare Algebra besprochen, ist das Resultat der Multiplikation einer Matrix $A \in \C^{m \times n}$ und einer Matrix $B \in \C^{n \times p}$ ist eine Matrix $AB = \in \C^{m \times p}$ Wie in Lineare Algebra besprochen, ist das Resultat der Multiplikation einer Matrix $A \in \C^{m \times n}$ und einer Matrix $B \in \C^{n \times p}$ ist eine Matrix $AB = \in \C^{m \times p}$

View File

@@ -1,3 +1,9 @@
% ┌ ┐
% │ Author: Robin Bacher │
% └ ┘
% TODO: If you want your email to be in there, note it down here.
% I also did not touch the unedited files to avoid conflicts
% FIXME: Add subsection here and use \newsection on all further subsections to reset the counters and add a page break
Bei der Interpolation versuchen wir eine Funktion $\tilde{f}$ durch eine Menge an Datenpunkten einer Funktion $f$ zu finden.\\ Bei der Interpolation versuchen wir eine Funktion $\tilde{f}$ durch eine Menge an Datenpunkten einer Funktion $f$ zu finden.\\
Die $x_i$ heissen Stützstellen/Knoten, für welche $\tilde{f}(x_i) = y_i$ gelten soll. (Interpolationsbedingung) Die $x_i$ heissen Stützstellen/Knoten, für welche $\tilde{f}(x_i) = y_i$ gelten soll. (Interpolationsbedingung)
\begin{align*} \begin{align*}

View File

@@ -1,6 +1,10 @@
% ┌ ┐
% │ AUTHOR: Janis Hutz<info@janishutz.com> │
% └ ┘
\newsection \newsection
\subsection{Lagrange- und Baryzentrische Interpolationsformeln} \subsection{Lagrange- und Baryzentrische Interpolationsformeln}
Session: Gemäss TA sehr gut beschrieben im alten Script % Session: Gemäss TA sehr gut beschrieben im alten Script
\begin{definition}[]{Lagrange Polynome} \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 Knoten (auch gennannt Stützstellen) $x_0, x_1, \ldots, x_n \in \R$ definieren wir die Lagrange-Polynome:

View File

@@ -1,9 +0,0 @@
\newsection
\subsection{Chebychev Interpolation}
Session: Chebyshev Pol. : Abzisse = Extrema, Knoten = Nullstellen
Lecture: Orthogonalität ist eine wichtige Eigenschaft: Siehe Lecture notes (handgeschr.) für Veranschaulichung. \\
$\rightarrow$ Orth. liefert die Koeff. ohne Rechenaufwand.
Lecture: Clenshaw-Alg. relativ zentral (Taschenrechner nutzen diesen intern)

View File

@@ -0,0 +1,141 @@
% ┌ ┐
% │ AUTHOR: Janis Hutz<info@janishutz.com> │
% └ ┘
\newsection
\subsection{Chebyshev Interpolation}
% Session: Chebyshev Pol. : Abszisse = Extrema, Knoten = Nullstellen
%
% Lecture: Orthogonalität ist eine wichtige Eigenschaft: Siehe Lecture notes (handgeschr.) für Veranschaulichung. \\
% $\rightarrow$ Orth. liefert die Koeff. ohne Rechenaufwand.
%
% Lecture: Clenshaw-Alg. relativ zentral (Taschenrechner nutzen diesen intern)
\begin{definition}[]{Chebyshev-Polynome}
\begin{multicols}{2}
\fhl{Erster Art}
\rmvspace
\begin{align*}
T_n(x) = \cos(n \arccos(x)), \smallhspace x \in [-1, 1]
\end{align*}
\fhl{Zweiter Art}
\rmvspace
\begin{align*}
U_n(x) = \frac{\sin((n + 1) \arccos(x))}{\sin(\arccos(x))}, \smallhspace x \in [-1, 1]
\end{align*}
\end{multicols}
\end{definition}
$T_n(x)$ scheint erst nicht ein Polynom zu sein, aber wir haben einen $\arccos$ in einem $\cos$. Zudem:
\stepcounter{all}
\fancytheorem{Eigenschaften}
Das $n$-te Chebyshev-Polynom ist ein Polynom von Grad $n$ und für $x \in [-1, 1]$ gilt:
\begin{multicols}{2}
\begin{enumerate}
\item $T_0(x) = 1, T_1(x) = x$,\\ $T_{n + 1}(x) = 2x T_n(x) - T_{n - 1}(x)$
\item $|T_n(x)| \leq 1$
\item $T_n\left(\cos\left( \frac{k\pi}{n} \right)\right) = (-1)^k \text{ für } k = 0, \ldots, n$
\item $T_n\left( \cos\left( \frac{(2k + 1) \pi}{2n} \right) \right) = 0 \text{ für } k = 0, \ldots, n - 1$
\end{enumerate}
\end{multicols}
\fancydef{Chebyshev-Knoten} Die $(n + 1)$ Chebyshev-Knoten $x_0, \ldots, x_n$ im Intervall $[-1, 1]$ sind die Nullstellen von $T_{n + 1}(x)$
\fancyremark{Chebyshev-Knoten für beliebiges Intervall} Für $I = [a, b]$ sind die Chebyshev-Knoten:
\rmvspace
\begin{align*}
x_k = a + \frac{1}{2} (b - a) \left( \cos \left( \frac{2k + 1}{2(n + 1)} \pi \right) + 1 \right) \smallhspace k = 0, \ldots, n
\end{align*}
\fancydef{Chebyshev-Abszissen} Die $(n - 1)$ Chebyshev-Abszissen $x_0, \ldots, x_{n - 2}$ im Intervall $[-1, 1]$ sind die Extrema des Chebyshev-Polynoms $T_n(x)$ und zeitgleich die Nullstellen von $U_{n - 1}(x)$.
Je nach Kontext nimmt man noch die Grenzen des Intervalls ($1$ und $-1$) hinzu und hat dann $(n + 1)$ Abszissen.
\fancyremark{Chebyshev-Abszissen für beliebiges Intervall} Für $I = [a, b]$ sind die Chebyshev-Abszissen:
\rmvspace
\begin{align*}
x_k = a + \frac{1}{2} (b - a) \left( \cos \left( \frac{k}{n} \pi \right) + 1 \right) \smallhspace k = 0, \ldots, n
\end{align*}
Oder $k = 1, \ldots, n - 1$ bei ausgeschlossenen Endpunkten $a$ und $b$
\inlineremark Gegen die Ränder des Intervalls werden die Chebyshev-Knoten dichter.
\begin{theorem}[]{Orthogonalität}
Die Chebyshev-Polynome sind orthogonal bezüglich des Skalarprodukts
\rmvspace
\begin{align*}
\langle f, g \rangle = \int_{-1}^{1} f(x) g(x) \frac{1}{\sqrt{1 - x^2}} \dx x
\end{align*}
Sie ($T_0, \ldots, T_n$) sind zudem orthogonal bezüglich des diskreten Skalarprodukts im Raum der Polynome von Grad $\leq n$
\rmvspace
\begin{align*}
(f, g) = \sum_{l = 0}^{n} f(x_l)g(x_l)
\end{align*}
wobei $(x_0, \ldots, x_n)$ die Nullstellen von $T_{n + 1}$ sind.
\end{theorem}
% ────────────────────────────────────────────────────────────────────
\stepcounter{all}
\newpage
\subsubsection{Fehler}
Was hat die neue Verteilung für einen Einfluss auf den Fehler?
\begin{theorem}[]{Fehlerabschätzung}
Unter allen $(x_0, \ldots, x_n)$ mit $x_i \in \R$ wird (wobei $x_k$ die Nullstellen von $T_{n + 1}$ sind)
\rmvspace
\begin{align*}
\max_{x \in [-1, 1]} |(x - x_0) \cdot \ldots \cdot (x - x_n)| & & \text{minimal für } x_k = \cos \left( \frac{2k + 1}{2(n + 1)}\pi \right)
\end{align*}
\end{theorem}
Folglich sind also die Nullstellen der Chebyshev-Polynome $T_n$ die bestmögliche Wahl für die Stützstellen.
Da die Abszissen mit FFT einfacher zu berechnen sind, werden diese oft bevorzugt berechnet.
Dies, da die Nullstellen von $T_n$ in den Extrema von $T_{2n}$ enthalten sind, während zudem zwischen zwei nebeneinanderliegenden Chebyshev-Abszissen jeweils eine Nullstelle von $T_{2n}$ liegt
\stepcounter{all}
\fancytheorem{Lebesgue-Konstante} Für die Chebyshev-Interpolation: $\displaystyle \Lambda_n \approx \frac{2}{\pi} \log(n) \text{ für } n \rightarrow \infty$
% ────────────────────────────────────────────────────────────────────
\stepcounter{all}
\begin{theorem}[]{Interpolationspolynom}
Das Interpolationspolynom $p$ zu $f$ mit Chebyshev-Knoten gleich der Nullstellen von $T_{n + 1}$ ist gegeben durch
\begin{align*}
p(x) = c_0 + c_1 T_1(x) + \ldots + c_n T_n(x)
\end{align*}
wobei für die $c_k$ gilt:
\begin{align*}
c_k & = \frac{2}{n + 1} \sum_{l = 0}^{n} f\left( \underbrace{\cos \left( \frac{2l + 1}{n + 1} \frac{\pi}{2} \right)}_{= x_i (\text{Knoten})} \right)
\cos \left( k \frac{2l + 1}{n + 1} \frac{\pi}{2} \right) & & \text{für } k = 1, \ldots, n \\
c_k & = \frac{1}{n + 1} \sum_{l = 0}^{n} f\left( \underbrace{\cos \left( \frac{2l + 1}{n + 1} \frac{\pi}{2} \right)}_{= x_i (\text{Knoten})} \right)
\cos \left( k \frac{2l + 1}{n + 1} \frac{\pi}{2} \right) & & \text{für } k = 0
\end{align*}
\end{theorem}
Für $n \geq 15$ berechnet man $c_k$ mit der Schnellen Fourier Transformation (FFT).
\fancyremark{Laufzeit} Für die Interpolation ergibt sich folgender Aufwand:
\begin{center}
\begin{tabular}{ll}
Direkte Berechnung der $c_k$ & $\tco{(n + 1)^2}$ Operationen \\
Dividierte Differenzen & $\tco{\frac{n (n + 1)}{2}}$ Operationen (zum Vergleich) \\
$c_k$ mittels FFT & $\tco{n \log(n)}$ Operationen
\end{tabular}
\end{center}
\fancytheorem{Clenshaw-Algorithmus} Seien $d_{n + 2} = d_{n + 1} = 0$. Sei $d_k = c_k + (2x)d_{k + 1} - d_{k + 2} \text{ für } k = n, \ldots, 0$\\
Dann gilt: $p(x) = \frac{1}{2}(d_0 - d_2)$ und man kann $p(x)$ mit Hilfe einer Rückwärtsrekursion berechnen
Der Clenshaw-Algorithmus ist sehr stabil, auch wenn er mit (oft) unstabilen Rekursionen implementiert ist.
% ────────────────────────────────────────────────────────────────────
\subsection{DFT und Chebyshev-Interpolation}
Der folgende Abschnitt wurde ausgelassen, da dieser (noch) nicht während den Vorlesungen behandelt wurde.
Er behandelt primär die Implementation der Chebyshev-Interpolation.

View File

@@ -0,0 +1,97 @@
% ┌ ┐
% │ AUTHOR: Janis Hutz<info@janishutz.com> │
% └ ┘
% Lecture: Wir besitzen nicht das komplette Vorwissen in der Analysis für dieses Kapitel, d.h. wird totales Verständnis nicht
%
% Lecture: Intuitiv wird Fourier-Trans. zur Kompression genutzt, z.b. jpg format.
\subsection{Fourier-Reihen}
Eine Anwendung der Schnellen Fourier-Transformation (FFT) ist die Komprimierung eines Bildes und sie wird im JPEG-Format verwendet.
\fancydef{Trigonometrisches Polynom von Grad $\leq m$} Die Funktion:
\rmvspace
\begin{align*}
p_m(t) := t \mapsto \sum_{j = -m}^{m} \gamma_j e^{2 \pi ijt} \text{ wobei } \gamma_j \in \C \text{ und } t \in \R
\end{align*}
%
%
\inlineremark $p_m : \R \rightarrow \C$ ist periodisch mit Periode $1$.
Falls $\gamma_{-j} = \overline{\gamma_j}$ für alle $j$, dann ist $p_m$ reellwertig und
% NOTE: Uhh... do we want to use the fancy symbols for real and imaginary part or just use $\text{Re}$?
$p_m$ kann folgendermassen dargestellt werden ($a_0 = 2\gamma_0, a_j = 2\Re(\gamma_j)$ und $b_j = -2\Im(\gamma_j)$):
\rmvspace
\begin{align*}
p_m(t) = \frac{a_0}{2} + \sum_{j = 1}^{m} (a_j \cos(2\pi jt) + b_j \sin(2\pi jt))
\end{align*}
\begin{definition}[]{$L^2$-Funktionen}
Wir definieren die $L^2$-Funktionen auf dem Intervall $(0, 1)$ als
\rmvspace
\begin{align*}
L^2(0, 1) := \{ f: (0, 1) \rightarrow \C \divides ||f||_{L^2(0, 1)} < \infty \}
\end{align*}
während die $L^2$-Norm auf $(0, 1)$ durch das Skalarprodukt
\rmvspace
\begin{align*}
\langle g, f \rangle_{L^2(0, 1)} := \int_{0}^{1} \overline{g(x)} f(x) \dx x
\end{align*}
über $||f||_{L^2(0, 1)} = \sqrt{\langle f, f \rangle_{L^2(0, 1)}}$ induziert wird
\end{definition}
\inlineremark $L^2(a, b)$ lässt sich analog definieren mit
\rmvspace
\begin{align*}
\langle g, f \rangle_{L^2(a, b)} & := \int_{a}^{b} \overline{g(x)} f(x) \dx x \\
& = (b - a) \int_{0}^{1} \overline{g(a + (b - a)t)} f(a + (b - a)t) \dx t
\end{align*}
In Anwendungen findet sich oft das Intervall $\left[ -\frac{T}{2}, \frac{T}{2} \right]$.
Dann verwandeln sich die Integrale in die Form $\frac{1}{T} \int_{\frac{T}{2}}^{-\frac{T}{2}} (\ldots) \dx t$ und $\exp(2\pi ijt)$ durch $\exp(i \frac{2\pi j}{T} t)$ ersetzt wird.
\stepcounter{all}
\inlineremark Die Funktionen $\varphi_k(x) = \exp(2\pi ikx)$ sind orthogonal bezüglich des $L^2(0, 1)$-Skalarprodukts, bilden also eine Basis für den Unterraum der trigonometrischen polynome.
\inlinedef Eine Funktion $f$ ist der $L^2$-Grenzwert von Funktionenfolgen $f_n \in L^2(0, 1)$, wenn für $n \rightarrow \infty$ gilt, dass $||f - f_n||_{L^2(0, 1)} \rightarrow 0$
\begin{theorem}[]{Fourier-Reihe}
Jede Funktion $f \in L^2(0, 1)$ ist der Grenzwert ihrer Fourier-Reihe:
\rmvspace
\begin{align*}
f(t) = \sum_{k = -\infty}^{\infty} \hat{f}(k) e^{2\pi ikt}
\end{align*}
wobei die Fourier-Koeffizienten
\rmvspace
\begin{align*}
\hat{f}(k) = \int_{0}^{1} f(t)e^{-2\pi ikt} \dx t \smallhspace k \in \Z
\end{align*}
definiert sind. Es gilt die Parseval'sche Gleichung:
\rmvspace
\begin{align*}
\sum_{k = -\infty}^{\infty} |\hat{f}(k)|^2 = ||f||_{L^2(0, 1)}^2
\end{align*}
\end{theorem}
\inlineremark Oder viel einfacher und kürzer: Die Funktionen $\varphi_k(x)$ bilden eine vollständige Orthonormalbasis in $L^2(0, 1)$.
\setcounter{all}{14}
\inlineremark Die Parseval'sche Gleichung beschreibt einfach gesagt einen ``schnellen'' Abfall der $\hat{f}(k)$.
Genauer gesagt, klingen die Koeffizienten schneller als $\frac{1}{\sqrt{k}}$ ab.
Sie sagt zudem aus, dass die $L^2$-Norm der Funktion aus einer Summe berechnet werden kann (nicht nur als Integral).
Wenn wir die Fourier-Reihe nach $t$ ableiten, erhalten wir
\rmvspace
\begin{align*}
f'(t) = \sum_{k = -\infty}^{\infty} 2\pi ik\hat{f}(k)e^{2\pi ikt}
\end{align*}
\begin{theorem}[]{Fourier-Reihe}
Seien $f$ und $f'$ integrierbar auf $(0, 1)$, dann gilt $\hat{f'}(k) = 2\pi ik\hat{f}(k)$ für $k \in \Z$.
Falls die Operationen erlaubt sind, dann gilt zudem:
\rmvspace
\begin{align*}
\hat{f^{(n)}} = (2\pi ik)^n \hat{f}(k) \text{ und } ||f^{(n)}||_{L^2}^2 = (2\pi)^{2n} \sum_{k = -\infty}^{\infty} k^{2n} |\hat{f}(k)|^2
\end{align*}
\end{theorem}
\inlinetheorem Wenn $\displaystyle \int_{0}^{1} |f^{(n)}(t)|\dx t < \infty$, dann ist $\hat{f}(k) = \tco{k^{-n}}$

View File

@@ -1,3 +0,0 @@
Lecture: Wir besitzen nicht das komplette Vorwissen in der Analysis für dieses Kapitel, d.h. wird totales Verständnis nicht
Lecture: Intuitiv wird Fourier-Trans. zur Kompression genutzt, z.b. jpg format.