mirror of
https://github.com/janishutz/eth-summaries.git
synced 2025-11-25 10:34:23 +00:00
[NumCS] Fix some typos, pagination issues
This commit is contained in:
Binary file not shown.
@@ -67,6 +67,7 @@ Dann verwandeln sich die Integrale in die Form $\frac{1}{T} \int_{\frac{T}{2}}^{
|
|||||||
\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$
|
\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$
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
\begin{theorem}[]{Fourier-Reihe}
|
\begin{theorem}[]{Fourier-Reihe}
|
||||||
Jede Funktion $f \in L^2(0, 1)$ ist der Grenzwert ihrer Fourier-Reihe:
|
Jede Funktion $f \in L^2(0, 1)$ ist der Grenzwert ihrer Fourier-Reihe:
|
||||||
\rmvspace
|
\rmvspace
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ Der Beweis hierfür ist im Skript auf p. $71$. Die $N$-te Einheitswurzel wird hi
|
|||||||
\fancydef{$N$-te Einheitswurzel} $\omega_N := \exp(\frac{-2\pi i}{N})$
|
\fancydef{$N$-te Einheitswurzel} $\omega_N := \exp(\frac{-2\pi i}{N})$
|
||||||
|
|
||||||
\fancyremark{Eigenschaften von $\omega_N$}
|
\fancyremark{Eigenschaften von $\omega_N$}
|
||||||
|
\vspace{-1.5pc}
|
||||||
\begin{multicols}{3}
|
\begin{multicols}{3}
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
\forall j,k \in \mathbb{Z}:\quad & \omega_N^{k+jN}=\omega_N^k \\
|
\forall j,k \in \mathbb{Z}:\quad & \omega_N^{k+jN}=\omega_N^k \\
|
||||||
@@ -43,3 +44,4 @@ Der Beweis hierfür ist im Skript auf p. $71$. Die $N$-te Einheitswurzel wird hi
|
|||||||
\end{align*}
|
\end{align*}
|
||||||
\newcolumn
|
\newcolumn
|
||||||
\end{multicols}
|
\end{multicols}
|
||||||
|
\vspace{-1.5pc}
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ Wir definieren die Trigonometrische Basis. Den Basiswechsel zu dieser Basis nenn
|
|||||||
|
|
||||||
\fancydef{Trigonometrische Basis}\\
|
\fancydef{Trigonometrische Basis}\\
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
\{v_0, v_{N-1}\} \text{ ist eine Basis von } \mathbb{C}^N, \text{ wobei } v_k =
|
\{v_0, \ldots, v_{N-1}\} \text{ ist eine Basis von } \mathbb{C}^N, \text{ wobei } v_k =
|
||||||
\begin{bmatrix}
|
\begin{bmatrix}
|
||||||
\omega_N^{0\cdot k} \\ \omega_N^{1\cdot k}1 \\ \vdots \\ \omega_N^{(N-1)\cdot k}
|
\omega_N^{0\cdot k} \\ \omega_N^{1\cdot k} \\ \vdots \\ \omega_N^{(N-1)\cdot k}
|
||||||
\end{bmatrix}
|
\end{bmatrix}
|
||||||
\in \mathbb{C}^N
|
\in \mathbb{C}^N
|
||||||
\end{align*}
|
\end{align*}
|
||||||
@@ -19,32 +19,35 @@ An Hand von $V$ definieren wir gleich die Fourier-Matrix $F_N$.
|
|||||||
\end{align*}
|
\end{align*}
|
||||||
|
|
||||||
Der Eintrag $y_l$ enstspricht einem Glied der Fourier-Reihe ausgewertet in $\frac{l}{N} \in [0,1)$. \\
|
Der Eintrag $y_l$ enstspricht einem Glied der Fourier-Reihe ausgewertet in $\frac{l}{N} \in [0,1)$. \\
|
||||||
Die diskreten Fourier-Koeffizienten $\gamma_k$ sind eine Umsortierung der trigonometrischen Basis Koeffizienten.
|
Die diskreten Fourier-Koeffizienten $\gamma_k$ sind eine Umsortierung der Koeffizienten der trigonometrischen Basis.
|
||||||
\begin{multicols}{2}
|
\begin{multicols}{2}
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
y = \underbrace{\sum_{k=0}^{N-1} y_k e_{k+1}}_{y \text{ in Komponenten}} = \underbrace{\sum_{k=0}^{N-1} z_k v_k}_{\text{in Trig. Basis}} = \sum_{k=0}^{N-1} z_k \begin{bmatrix}
|
y = \underbrace{\sum_{k=0}^{N-1} y_k e_{k+1}}_{y \text{ in Komponenten}} = \underbrace{\sum_{k=0}^{N-1} z_k v_k}_{\text{in Trig. Basis}} = \sum_{k=0}^{N-1} z_k
|
||||||
\omega_N^{0 \cdot k} \\ \omega_N^{1 \cdot k} \\ \omega_N^{2 \cdot k} \\ \vdots \\ \omega_N^{(N-1) \cdot k}
|
\begin{bmatrix}
|
||||||
\end{bmatrix}
|
\omega_N^{0 \cdot k} \\ \omega_N^{1 \cdot k} \\ \omega_N^{2 \cdot k} \\ \vdots \\ \omega_N^{(N-1) \cdot k}
|
||||||
\end{align*}
|
\end{bmatrix}
|
||||||
\newcolumn
|
\end{align*}
|
||||||
|
\newcolumn
|
||||||
|
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
y_l &= \sum_{k=0}^{N-1} z_k \omega_N^{l \cdot k} \overset{\text{S. 75}}{=} \sum_{k=-N/2}^{N/2-1} \gamma_k \cdot \exp(\frac{2\pi i}{N}lk) \\
|
y_l & = \sum_{k=0}^{N-1} z_k \omega_N^{l \cdot k} \overset{\text{S. 75}}{=} \sum_{k=-N/2}^{N/2-1} \gamma_k \cdot \exp(\frac{2\pi i}{N}lk) \\
|
||||||
\text{wobei }\gamma_k &= \begin{cases}
|
\text{wobei }\gamma_k & =
|
||||||
z_k, & 0 < k \leq \frac{N}{2}-1 \\
|
\begin{cases}
|
||||||
z_k+N, & -\frac{N}{2} \leq k < 0
|
z_k, & 0 < k \leq \frac{N}{2}-1 \\
|
||||||
\end{cases}
|
z_k+N, & -\frac{N}{2} \leq k < 0
|
||||||
\end{align*}
|
\end{cases}
|
||||||
|
\end{align*}
|
||||||
\end{multicols}
|
\end{multicols}
|
||||||
|
|
||||||
\fancydef{Fourier-Matrix}\\
|
\fancydef{Fourier-Matrix}
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
F_N := V^H = [v_0, \ldots, v_{N-1}]^H = \begin{bmatrix}
|
F_N := V^H = [v_0, \ldots, v_{N-1}]^H =
|
||||||
\omega_N^0 & \omega_N^0 & \cdots & \omega_N^0 \\
|
\begin{bmatrix}
|
||||||
\omega_N^0 & \omega_N^1 & \cdots & \omega_N^{N-1} \\
|
\omega_N^0 & \omega_N^0 & \cdots & \omega_N^0 \\
|
||||||
\omega_N^0 & \omega_N^2 & \cdots & \omega_N^{2(N-1)} \\
|
\omega_N^0 & \omega_N^1 & \cdots & \omega_N^{N-1} \\
|
||||||
\vdots & \vdots & & \vdots \\
|
\omega_N^0 & \omega_N^2 & \cdots & \omega_N^{2(N-1)} \\
|
||||||
\omega_N^0 & \omega_N^{N-1} &\cdots & \omega_N^{(N-1)^2}
|
\vdots & \vdots & & \vdots \\
|
||||||
|
\omega_N^0 & \omega_N^{N-1} & \cdots & \omega_N^{(N-1)^2}
|
||||||
\end{bmatrix}
|
\end{bmatrix}
|
||||||
=
|
=
|
||||||
\begin{bmatrix}
|
\begin{bmatrix}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
\subsubsection{DFT in Numpy}
|
\subsubsection{DFT in Numpy}
|
||||||
|
|
||||||
Sei $y$ in der Standardbasis, und $c = \mathcal{F}_N(y)$, also $y$ in der trig. Basis.
|
Sei $y$ in der Standardbasis, und $c = \mathcal{F}_N(y)$, also $y$ in der trig. Basis.
|
||||||
$$
|
\begin{align*}
|
||||||
c = F_N \times y = \verb|fft|(y)\quad \textit{(DFT in numpy)} \quad \quad \quad y = \frac{1}{N}F_N^Hc = \verb|ifft|(c)\quad \textit{(Inverse DFT in numpy)}
|
c = F_N \times y = \texttt{fft}(y)\quad \text{\textit{(DFT in numpy)}} & y = \frac{1}{N}F_N^Hc = \texttt{ifft}(c)\quad \textit{(Inverse DFT in numpy)}
|
||||||
$$
|
\end{align*}
|
||||||
|
|
||||||
Um zur ursprünglichen Darstellung des trig. Polynoms zurück zu kommen, müssen wir die Koeffizienten umsortieren: \\
|
Um zur ursprünglichen Darstellung des trig. Polynoms zurück zu kommen, müssen wir die Koeffizienten umsortieren: \\
|
||||||
Seien $z = \frac{1}{N} F_N y$ und $\zeta = \verb|fft.fftshift|(z)$.
|
Seien $z = \frac{1}{N} F_N y$ und $\zeta = \verb|fft.fftshift|(z)$.
|
||||||
@@ -12,14 +12,15 @@ Seien $z = \frac{1}{N} F_N y$ und $\zeta = \verb|fft.fftshift|(z)$.
|
|||||||
\end{align*}
|
\end{align*}
|
||||||
\setcounter{all}{13}
|
\setcounter{all}{13}
|
||||||
\inlineremark Man kann mit dieser Approximation einfach die $L^2$-Norm und Ableitungen berechnen:
|
\inlineremark Man kann mit dieser Approximation einfach die $L^2$-Norm und Ableitungen berechnen:
|
||||||
|
\vspace{-1.5pc}
|
||||||
\begin{multicols}{2}
|
\begin{multicols}{2}
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
||f||^2_{L^2} \approx \left\Vert \sum_{k=-N/2}^{N/2-1} \zeta_k \cdot e^{2 \pi ikx} \right\Vert^2_{L^2} = \sum_{k=-N/2}^{N/2-1} |\zeta_k|^2 = \Vert z \Vert^2_{L^2}
|
||f||^2_{L^2} \approx \left\Vert \sum_{k=-N/2}^{N/2-1} \zeta_k \cdot e^{2 \pi ikx} \right\Vert^2_{L^2} = \sum_{k=-N/2}^{N/2-1} |\zeta_k|^2 = \Vert z \Vert^2_{L^2}
|
||||||
\end{align*}
|
\end{align*}
|
||||||
|
|
||||||
\newcolumn
|
\newcolumn
|
||||||
|
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
f'(t) \approx \sum_{k=-N/2}^{N/2-1} (2\pi ik) \zeta_k \cdot e^{2 \pi ikx}
|
f'(t) \approx \sum_{k=-N/2}^{N/2-1} (2\pi ik) \zeta_k \cdot e^{2 \pi ikx}
|
||||||
\end{align*}
|
\end{align*}
|
||||||
\end{multicols}
|
\end{multicols}
|
||||||
@@ -56,7 +56,7 @@ Die Shift Matrix $S_N$ ist der Zirkulant für $c=e_2$. $S_N$ ist eine Permutatio
|
|||||||
|
|
||||||
Die Shift-Matrix hat einen speziellen Bezug zu den Spaltenvektoren $v_k$ von $F_N$, und auch allen anderen Zirkulanten $C$.
|
Die Shift-Matrix hat einen speziellen Bezug zu den Spaltenvektoren $v_k$ von $F_N$, und auch allen anderen Zirkulanten $C$.
|
||||||
|
|
||||||
\inlineremark Der $k$-te Fourier-vektor $v_k$ ist ein Eigenvektor von $S_N$ zu $\lambda_k = e^{2\pi i \frac{k}{N}}$.
|
\inlineremark Der $k$-te Fourier-Vektor $v_k$ ist ein Eigenvektor von $S_N$ zu $\lambda_k = e^{2\pi i \frac{k}{N}}$.
|
||||||
|
|
||||||
\fancytheorem{Diagonalisierung von Zirkulanten} Die Eigenvektoren von $S_N$ diagonalisieren jeden Zirkulanten $C$, und sind d.h. auch die Eigenvektoren von $C$.
|
\fancytheorem{Diagonalisierung von Zirkulanten} Die Eigenvektoren von $S_N$ diagonalisieren jeden Zirkulanten $C$, und sind d.h. auch die Eigenvektoren von $C$.
|
||||||
Die Eigenwerte erhält man aus $p(z) = c_0z^0 + \ldots + c_{N-1}z^{N-1}$.
|
Die Eigenwerte erhält man aus $p(z) = c_0z^0 + \ldots + c_{N-1}z^{N-1}$.
|
||||||
|
|||||||
@@ -45,15 +45,15 @@ Unten findet sich Python code der mit den unterschiedlichen Methoden die Koeffiz
|
|||||||
\rmvspace
|
\rmvspace
|
||||||
\begin{code}{python}
|
\begin{code}{python}
|
||||||
def get_coeff_trig_poly(t: np.ndarray, y: np.ndarray):
|
def get_coeff_trig_poly(t: np.ndarray, y: np.ndarray):
|
||||||
N = y.shape[0]
|
N = y.shape[0]
|
||||||
if N % 2 == 1:
|
if N % 2 == 1:
|
||||||
n = (N - 1.0) / 2.0
|
n = (N - 1.0) / 2.0
|
||||||
M = np.exp(2 * np.pi * 1j * np.outer(t, np.arange(-n, n + 1)))
|
M = np.exp(2 * np.pi * 1j * np.outer(t, np.arange(-n, n + 1)))
|
||||||
else:
|
else:
|
||||||
n = N / 2.0
|
n = N / 2.0
|
||||||
M = np.exp(2 * np.pi * 1j * np.outer(t, np.arange(-n, n)))
|
M = np.exp(2 * np.pi * 1j * np.outer(t, np.arange(-n, n)))
|
||||||
c = np.linalg.solve(M, y)
|
c = np.linalg.solve(M, y)
|
||||||
return c
|
return c
|
||||||
|
|
||||||
N = 2**12
|
N = 2**12
|
||||||
t = np.linspace(0, 1, N, endpoint=False)
|
t = np.linspace(0, 1, N, endpoint=False)
|
||||||
|
|||||||
Reference in New Issue
Block a user