[NumCS] Finish clenshaw-curtis

This commit is contained in:
2025-10-28 11:02:38 +01:00
parent 72db277b0a
commit 0a17657d2c
6 changed files with 37 additions and 2 deletions

Binary file not shown.

View File

@@ -134,7 +134,6 @@ Mit $c = \pi(a + b)$ und $d = \pi(b - a)$
\label{fig:trigo-interp-overarcing} \label{fig:trigo-interp-overarcing}
\end{figure} \end{figure}
\stepLabelNumber{all}
\inlineremark Meist ist es nicht möglich (oder nicht sinnvoll) die Fourier-Koeffizienten analytisch zu berechnen, \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}$, 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: wobei $l = 0, 1 \ldots, N - 1$ und $N$ die Anzahl der Intervalle ist:

View File

@@ -11,6 +11,7 @@ was bei $N = 1024$ bereits eine Laufzeitsverbesserung von $100\times$ mit sich b
Die untenstehende Abbildung \ref{fig:trigo-interp-fft-runtimes} findet sich, zusammen mit dem Code, Die untenstehende Abbildung \ref{fig:trigo-interp-fft-runtimes} findet sich, zusammen mit dem Code,
mit der sie produziert wurde im Skript auf Seite 86-88 mit der sie produziert wurde im Skript auf Seite 86-88
\setLabelNumber{all}{3}
\begin{figure}[h!] \begin{figure}[h!]
\begin{center} \begin{center}
\includegraphics[width=0.7\textwidth]{assets/01_interpolation/01_trigonometric/fft-runtimes.png} \includegraphics[width=0.7\textwidth]{assets/01_interpolation/01_trigonometric/fft-runtimes.png}

View File

@@ -15,6 +15,7 @@
\end{multicols} \end{multicols}
\end{definition} \end{definition}
\numberingOff
\inlineex Zur Fehlerbetrachtung verwenden wir drei Funktionen $f : [0, 1] \rightarrow \R$, welche wir mit trigonometrischer Interpolation an den Punkten $\frac{k}{N}$ approximieren: \inlineex Zur Fehlerbetrachtung verwenden wir drei Funktionen $f : [0, 1] \rightarrow \R$, welche wir mit trigonometrischer Interpolation an den Punkten $\frac{k}{N}$ approximieren:
\begin{enumerate}[label=(\Roman*)] \begin{enumerate}[label=(\Roman*)]
% FIXME: Possibly wrong function definition in script % FIXME: Possibly wrong function definition in script
@@ -27,6 +28,7 @@
\item Hutfunktion (periodische Fortsetzung von $h$) $g : [0, 1] \rightarrow \R$ mit $g(t) = \left| t - \frac{1}{2} \right|$ \item Hutfunktion (periodische Fortsetzung von $h$) $g : [0, 1] \rightarrow \R$ mit $g(t) = \left| t - \frac{1}{2} \right|$
\end{enumerate} \end{enumerate}
Die untenstehende Abbildung \ref{fig:interpolation-error-examples} beinhaltet einen Plot, auf dem die Konvergenz in Abhängigkeit des Grades des Interpolationspolynoms aufgetragen ist. Die untenstehende Abbildung \ref{fig:interpolation-error-examples} beinhaltet einen Plot, auf dem die Konvergenz in Abhängigkeit des Grades des Interpolationspolynoms aufgetragen ist.
\numberingOn
\begin{figure}[h!] \begin{figure}[h!]
\begin{center} \begin{center}
@@ -80,10 +82,12 @@ heisst das folgendes für die Approximation von Polynomen von Grad $\deg(P(x)) <
\fancycorollary{Abtasttheorem} Sei $f$ $1$-periodisch mit maximaler Frequenz $m$, also $\hat{f}(k) = 0 \smallhspace \forall |k| > m$. Falls $N > 2m$, dann gilt $p_N(x) = f(x) \smallhspace \forall x$ \fancycorollary{Abtasttheorem} Sei $f$ $1$-periodisch mit maximaler Frequenz $m$, also $\hat{f}(k) = 0 \smallhspace \forall |k| > m$. Falls $N > 2m$, dann gilt $p_N(x) = f(x) \smallhspace \forall x$
\numberingOff
\inlineex Ein Beispiel aus der Musik: Wir haben ein analoges Signal und wollen es digitalisieren. \inlineex Ein Beispiel aus der Musik: Wir haben ein analoges Signal und wollen es digitalisieren.
Wir messen die Spannungswerte in äquidistanten Punkten. Wir messen die Spannungswerte in äquidistanten Punkten.
Falls wir jedoch die Frequenz der Messung zu niedrig wählen, so kann ein total falsches Interpolationspolynom entstehen, Falls wir jedoch die Frequenz der Messung zu niedrig wählen, so kann ein total falsches Interpolationspolynom entstehen,
wie in der untenstehenden Abbildung \ref{fig:aliasing} zu sehen: wie in der untenstehenden Abbildung \ref{fig:aliasing} zu sehen:
\numberingOn
\begin{figure}[h!] \begin{figure}[h!]
\begin{center} \begin{center}
\includegraphics[width=0.95\textwidth]{assets/01_interpolation/01_trigonometric/aliasing-in-music.png} \includegraphics[width=0.95\textwidth]{assets/01_interpolation/01_trigonometric/aliasing-in-music.png}

View File

@@ -5,4 +5,33 @@ und Clenshaw und Curtis haben dann zusätzlich noch die Endknoten hinzugefügt (
Die Clenshaw-Curtis-Knoten sind die Chebyshev-Abszissen und die Formel verhält sich mit den entsprechenden Gewichten ähnlich gleich wie die Gauss-Quadratur. Die Clenshaw-Curtis-Knoten sind die Chebyshev-Abszissen und die Formel verhält sich mit den entsprechenden Gewichten ähnlich gleich wie die Gauss-Quadratur.
Da die Clenshaw-Curtis-Quadratur mithilfe der DFT berechnet werden kann ist sie sehr effizient. Da die Clenshaw-Curtis-Quadratur mithilfe der DFT berechnet werden kann ist sie sehr effizient.
Dazu müssen wir aber zuerst etwas umformen Dazu müssen wir aber zuerst etwas umformen, mit $x = \cos(\theta)$, so dass das Integral eine periodische Funktion wird:
\rmvspace
\begin{align*}
\int_{-1}^{1} f(x) \dx x = \int_{0}^{\pi} f(\cos(\theta)) \sin(\theta) \dx \theta = f(\cos(\theta))
\end{align*}
\drmvspace
$F(\theta)$ ist $2\pi$-periodisch und gerade, kann sich also in eine Kosinius-Reihe entwickeln, also: $F(\theta) = \sum_{k = 0}^{\infty} a_k \cos(k \theta)$, woraus folgt, dass
\drmvspace
\begin{align*}
\int_{0}^{\pi} F(\theta) \sin(\theta) \dx \theta = \ldots = a_0 + \sum_{2 \leq k \text{ gerade}} \frac{2a_k}{1 - k^2}
\end{align*}
\drmvspace
wobei sich die Koeffizienten $a_k$ mit FFT oder DCT berechnen lassen
% TODO: Insert code from TA slides here
Eine wichtige Erkenntnis ist, dass die Newton-Cotes bei grösserer Ordnung komplett unbrauchbar werden, wie das in Abbildung 5.5.24 im Skript zu sehen ist,
während die Clenshaw-Curtis-Quadratur ähnlich gut ist wie die Gauss-Quadratur (gleiche Konvergenzordnung).
\begin{fullTable}{llllll}{Quadratur & Intervall & Gewichtsfunktion & Polynom & Notation & \texttt{scipy.special.}}
{Gewichtsfunktionen für Quadraturformeln}
Gauss & $(-1, 1)$ & $1$ & Legendre & $P_k$ & \texttt{roots\_legendre} \\
Chebyshev I & $(-1, 1)$ & $\frac{1}{\sqrt{1 - x^2}}$ & Chebyshev I & $T_k$ & \texttt{roots\_chebyt} \\
Chebyshev II & $(-1, 1)$ & $\sqrt{1 - x^2}$ & Chebyshev II & $U_k$ & \texttt{roots\_chebyu} \\
Jacobi $\alpha, \beta > 1$ & $(-1, 1)$ & $(1 - x)^\alpha (1 + x)^\beta$ & Jacobi & $P_k^{(\alpha, \beta)}$ & \texttt{roots\_jacobi} \\
Hermite & $\R$ & $e^{-x^2}$ & Hermite & $H_k$ & \texttt{roots\_hermite} \\
Laguerre & $(0, \infty)$ & $x^\alpha e^{-x^2}$ & Laguerre & $L_k$ & \texttt{roots\_genlaguerre} \\
\end{fullTable}

View File

@@ -1,2 +1,4 @@
\newsection \newsection
\subsection{Adaptive Quadratur} \subsection{Adaptive Quadratur}
Der lokale Fehler einer zusammengesetzten Quadraturformel auf dem Gitter $\mathcal{M} := \{ a = x_0 < x_1 < \dots < x_m = b \}$ ist (für $f \in C^2([a, b])$).
Test