[NumCS] Update to new helpers

This commit is contained in:
2025-10-18 13:40:39 +02:00
parent 8c34f7196d
commit 580928bee1
16 changed files with 41 additions and 38 deletions

View File

@@ -26,16 +26,16 @@ Dann lässt sich der Bezug zwischen $f$ und $\tilde{f} = f_n(x)$ so ausdrücken:
f(x) \approx f_n(x) = \sum_{j=1}^n \alpha_j b_j(x)
\end{align*}
\setcounter{all}{2}
\setLabelNumber{all}{1}
\inlineremark Unterräume $\mathcal{V}_n$ existieren nicht nur für Polynome, wir beschränken uns aber auf $b_j(x) = x^{i-1}$.
Andere Möglichkeiten: $b_j = \cos((j-1)\cos^-1(x))$ \textit{(Chebyshev)} oder $b_j = e^{i2\pi j x}$ \textit{(Trigonometrisch)}
% FIXME: This could go into a special "maths theory" section -> GOOD
\setcounter{all}{5}
\setLabelNumber{all}{4}
\fancytheorem{Peano} $f$ stetig $\implies \exists p(x)$ welches $f$ in $||\cdot||_\infty$ beliebig gut approximiert.
\setcounter{all}{7}
\setLabelNumber{all}{5}
\fancydef{Raum der Polynome} $\mathcal{P}_k := \{ x \mapsto \sum_{j = 0}^{k} \alpha_j x^j \}$
\fancydef{Monom} $f: x \mapsto x^k$

View File

@@ -13,7 +13,7 @@ Die Konstruktion verläuft iterativ, und vorherige Datenpunkte müssen nicht neu
p_3(x) &= p_2(x) + \ldots
\end{align*}
\setcounter{all}{3}
\setLabelNumber{all}{2}
\fancytheorem{Newton-Basis} $\{ N_0,\ \ldots\ ,N_n\}$ ist eine Basis von $\mathcal{P}_n$
\begin{align*}
N_0(x) &:= 1 \quad
@@ -49,7 +49,7 @@ Wegen Satz 2.2.3 lässt sich jedes $p_n \in \mathcal{P}_n$ als $p_n(x) =\display
Die Matrixmultiplikation in $\mathcal{O}(n^3)$ ist aber nicht nötig: Es gibt ein effizienteres System.
\setcounter{all}{5}
\setLabelNumber{all}{4}
\fancydef{Dividierte Differenzen}
\begin{multicols}{2}
\begin{align*}
@@ -81,7 +81,7 @@ Falls $x_j = x_0 + \underbrace{j \cdot h}_{:= \Delta^j}$ gilt vereinfacht sich e
y[x_0,\ \ldots\ , x_n] &= \frac{1}{n! h^n} \Delta^n y_0
\end{align*}
\setcounter{all}{8}
\setLabelNumber{all}{8}
\fancytheorem{Newton} Falls $\beta_j = y[x_0,\ \ldots\ , x_j]$ geht das resultierende Polynom durch alle $(x_i,y_i)$.\\
\footnotesize
(D.h. die dividierten Differenzen sind korrekt.)
@@ -164,7 +164,7 @@ Auswertung eines Newton-Polynoms funktioniert in $\mathcal{O}(n)$ durch ein modi
\subsubsection{Fehler}
\setcounter{all}{11}
\setLabelNumber{all}{10}
\inlinetheorem $f$ $n$-mal diff.-bar, $y_i = f(x_i) \implies \exists \xi \in (\min_i x_i, \max_i x_i)$ s.d. $y[x_0,x_1,\ldots,x_n] = \frac{f^{(n)}(\xi)}{(n+1)!}$
\fancytheorem{Fehler} $f: [a,b] \to \R$ ist $(n+1)$-mal diff.-bar, $p$ ist das Polynom zu $f$ in $x_0,\ldots,x_n \in [a,b]$.

View File

@@ -84,14 +84,14 @@ Gleiche funktion, etwas kürzer:
\end{code}
Mit dem können wir dann ein Polynom mit der baryzentrischen Interpolationsformel interpolieren:
\setcounter{numberingConfig}{0}
\numberingOff
\begin{formula}[]{Baryzentrische Interpolationsformel}
\vspace{-1.5pc}
\begin{align*}
p(x) = \frac{\displaystyle \sum_{k = 0}^{n} \frac{\lambda_k}{x - x_k} y_k}{\displaystyle \sum_{k = 0}^{n} \frac{\lambda_k}{x - x_k}}
\end{align*}
\end{formula}
\setcounter{numberingConfig}{3}
\numberingOn
Falls wir die Stützstellen als $(n + 1)$ Chebyshev-Abszissen $\displaystyle x_k = \cos\left( \frac{k\pi}{n} \right)$ wählen,
so sind alle $\lambda_k$ gegeben durch $\lambda_k = (-1)^k \delta_k$ mit $\delta_0 = \delta_n = 0.5$ und $\delta_i = 1$.
@@ -141,7 +141,7 @@ Verglichen in der Lagrange-Basis zum korrekten Interpolationspolynom $p(x)$ ergi
\end{align*}
\stepcounter{all}
\stepLabelNumber{all}
\fancytheorem{Auswirkung von Messfehlern} Es gilt (wenn $\Lambda_n$ die beste Lebesgue-Konstante für die Ungleichung ist):
\rmvspace
\begin{align*}
@@ -156,7 +156,7 @@ Verglichen in der Lagrange-Basis zum korrekten Interpolationspolynom $p(x)$ ergi
\end{align*}
\end{theorem}
\stepcounter{all}
\stepLabelNumber{all}
\inlineremark Für gleichmässig auf $I$ verteilte Stützstellen gilt $\displaystyle \Lambda_n \approx \frac{2^{n + 1}}{e n \log(n)}$
\shade{gray}{Wichtig:} \bi{Niemals gleichmässig verteilte Stützstellen verwenden für die Interpolation von Polynomen hohen Grades}

View File

@@ -30,7 +30,7 @@
\end{definition}
$T_n(x)$ scheint erst nicht ein Polynom zu sein, aber wir haben einen $\arccos$ in einem $\cos$. Zudem:
\stepcounter{all}
\stepLabelNumber{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}
@@ -81,7 +81,7 @@ Oder $k = 1, \ldots, n - 1$ bei ausgeschlossenen Endpunkten $a$ und $b$
% ────────────────────────────────────────────────────────────────────
\stepcounter{all}
\stepLabelNumber{all}
\newpage
\subsubsection{Fehler}
Was hat die neue Verteilung für einen Einfluss auf den Fehler?
@@ -98,12 +98,12 @@ Folglich sind also die Nullstellen der Chebyshev-Polynome $T_n$ die bestmöglich
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}
\stepLabelNumber{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}
\stepLabelNumber{all}
\begin{theorem}[]{Interpolationspolynom}
Das Interpolationspolynom $p$ zu $f$ mit Chebyshev-Knoten gleich der Nullstellen von $T_{n + 1}$ ist gegeben durch
\begin{align*}

View File

@@ -60,7 +60,7 @@ $p_m$ kann folgendermassen dargestellt werden ($a_0 = 2\gamma_0, a_j = 2\Re(\gam
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}
\stepLabelNumber{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.
@@ -89,7 +89,7 @@ Dann verwandeln sich die Integrale in die Form $\frac{1}{T} \int_{\frac{T}{2}}^{
% A (small) intuitive explanation of what the fourier series / coefficients are & what they are useful for would be great, script *briefly* touches on it.
\setcounter{all}{14}
\setLabelNumber{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).
@@ -134,7 +134,7 @@ Mit $c = \pi(a + b)$ und $d = \pi(b - a)$
\label{fig:trigo-interp-overarcing}
\end{figure}
\stepcounter{all}
\stepLabelNumber{all}
\inlineremark Meist ist es nicht möglich (oder nicht sinnvoll) die Fourier-Koeffizienten analytisch zu berechnen,
weshalb man wieder zur Numerik und der Trapezformel greift, die folgendermassen definiert ist für $t_l = \frac{l}{N}$,
wobei $l = 0, 1 \ldots, N - 1$ und $N$ die Anzahl der Intervalle ist:

View File

@@ -58,14 +58,14 @@ Die diskreten Fourier-Koeffizienten $\gamma_k$ sind eine Umsortierung der Koeffi
Die skalierte Fourier-Matrix $\frac{1}{\sqrt{N}}F_N$ hat einige besondere Eigenschaften.
\setcounter{all}{6}
\setLabelNumber{all}{6}
\inlinetheorem Die skalierte Fourier-Matrix $\frac{1}{\sqrt{N}}F_N$ ist unitär: $F_N^{-1} = \frac{1}{N} F_N^H = \frac{1}{N} \overline{F_N}$
\fancyremark{Eigenwerte von $\frac{1}{\sqrt{N}}F_N$} Die $\lambda$ von $\frac{1}{\sqrt{N}}F_N$ liegen in $\{1,-1,i,-i\}$.
Die diskrete Fourier-Transformation ist nun einfach die Anwendung der Basiswechsel-Matrix $F_N$.
\setcounter{all}{5}
\setLabelNumber{all}{5}
\fancydef{Diskrete Fourier-Transformation} $\mathcal{F}_N: \mathbb{C} \to \mathbb{C}$ s.d. $\mathcal{F}_N(y) = F_Ny$
\begin{align*}
\text{Für } c = \mathcal{F}_N(y) \text{ gilt: }\quad c_k = \sum_{j=0}^{N-1} y_j \omega_N^{kj}

View File

@@ -10,7 +10,7 @@ Seien $z = \frac{1}{N} F_N y$ und $\zeta = \verb|fft.fftshift|(z)$.
\begin{align*}
f(x) \approx \underbrace{\sum_{k=-N/2}^{N/2-1} \zeta_k \cdot e^{2 \pi ikx} }_{\text{Form des trig. Polynoms}}
\end{align*}
\setcounter{all}{13}
\setLabelNumber{all}{13}
\inlineremark Man kann mit dieser Approximation einfach die $L^2$-Norm und Ableitungen berechnen:
\vspace{-1.5pc}
\begin{multicols}{2}

View File

@@ -1,7 +1,7 @@
\newpage
\subsubsection{DFT \& Lineare Algebra}
\setcounter{all}{25}
\setLabelNumber{all}{25}
\fancydef{Zirkulant} Für einen vektor $c \in \mathbb{R}^N$ hat der Zirkulant $C \in \mathbb{R}^{N \times N}$ die Form:
\begin{align*}
C = \begin{bmatrix}
@@ -74,7 +74,7 @@ Die Faltung von $a = [a_0,\ldots,a_{N-1}]^\top, b = [b_0,\ldots,b_{N-1}]^\top$ i
c = a \circledast b\quad\quad \text{s.d. } \sum_{n=0}^{N-1} a_nb_{k-n} \equiv_N \sum_{n=0}^{N-1}b_na_{n-k}
\end{align*}
\setcounter{all}{32}
\setLabelNumber{all}{32}
\inlineremark Zyklische Faltungen von Vektoren kann man mit Zirkulanten berechnen.
\begin{align*}
c = a \circledast b = Ab = \underbrace{\begin{bmatrix}
@@ -87,7 +87,7 @@ Die Faltung von $a = [a_0,\ldots,a_{N-1}]^\top, b = [b_0,\ldots,b_{N-1}]^\top$ i
% NOTE: I'm not sure if this below is correct. This is how I interpret what is written in the script
\setcounter{all}{30}
\setLabelNumber{all}{30}
\inlineremark Eine Multiplikation von Polynomen $g,h$ entspricht einer Faltung im Frequenzbereich.
\begin{align*}
\mathcal{F}_N(\underbrace{g * h}_{\text{Standard Basis}}) = \underbrace{\mathcal{F}_N(g) \cdot \mathcal{F}_N(h)}_{\text{Trigonometrische Basis}}

View File

@@ -36,7 +36,7 @@ Auch hier tritt das Gibbs-Phänomen wieder an den Sprungstellen von $f(t)$ auf.
Dies verursacht die Verlangsamung der Konvergenz in den Stellen, in welchen die Funktion nicht glatt ist.
\newpage
\stepcounter{all}
\stepLabelNumber{all}
\inlineex Sei für $\alpha \in [0, 1)$ $\displaystyle f(t) = \frac{1}{\sqrt{1 - \alpha \sin(2\pi t)}}$.
Die Konvergenz ist exponentiell in $n$ und je kleiner $\alpha$, desto schneller ist sie.
In der untenstehenden Abbildung \ref{fig:interpolation-error-convergence} sind einige Beispiele aufgetragen:
@@ -50,7 +50,7 @@ In der untenstehenden Abbildung \ref{fig:interpolation-error-convergence} sind e
\end{figure}
\setcounter{all}{6}
\setLabelNumber{all}{6}
\begin{theorem}[]{Aliasing}
Der k-te Fourier-Koeffizient des $N$-ten trigonometrischen Interpolationspolynoms unterscheidet sich vom $k$-ten Fourier-Koeffizienten von $f$
gerade um die Summe aller Fourier-Koeffizienten, die um ganze Vielfache von $N$ vom $k$-ten Fourier-Koeffizienten verschoben sind:

View File

@@ -39,7 +39,7 @@ Und mit weitern Umformungen erhalten wir
\end{align*}
Auf Seite 102 im Skript findet sich auch eine effiziente Implementation dessen.
\stepcounter{all}
\stepLabelNumber{all}
\inlineremark Die Formel in Satz 2.4.16 (und in der eben erwähnten Implementierung) sind nichts anderes als eine Version der DCT (Discrete Cosine Transform).
Dies ist eine günstigere, aber beschränktere Variante der DFT, mit der nur reellwertige, gerade Funktionen interpoliert werden können.

View File

@@ -26,7 +26,7 @@ Bei anderen Interpolationsmethoden ist dies nicht garantiert (so auch nicht beim
\textit{Wenn man den Parameter \texttt{method="makima"} bei \texttt{Akima1DInterpolator} mitgibt, wird eine neuere modifizierte Variante davon ausgeführt}
\end{footnotesize}
\stepcounter{all}
\stepLabelNumber{all}
\begin{theorem}[]{Fehler der CHIP}
% FIXME: Explain what the C is or if it is \C, then replace
Sei $f \in C^4[a, b]$ und $s$ der stückweise CHIP mit exakten Werten der Ableitungen $s'(x_j) = f'(x_j), s(x_j) = f(x_j)$ für $j = 0, \ldots, N$