diff --git a/sose2020/num/uebungen/num4.pdf b/sose2020/num/uebungen/num4.pdf new file mode 100644 index 0000000..06a0f19 Binary files /dev/null and b/sose2020/num/uebungen/num4.pdf differ diff --git a/sose2020/num/uebungen/num4.tex b/sose2020/num/uebungen/num4.tex new file mode 100644 index 0000000..dbe9b31 --- /dev/null +++ b/sose2020/num/uebungen/num4.tex @@ -0,0 +1,279 @@ +\documentclass[uebung]{../../../lecture} + +\title{Einführung in die Numerik: Übungsblatt 4} +\author{Leon Burgard, Christian Merten} + +\begin{document} + +\punkte + +\begin{aufgabe} + \begin{enumerate}[a)] + \item Beh.: + \[ + \Vert f \Vert_{\infty} = \max_{x \in [0,1]} |f(x)|, \quad f \in C^{0}([0,1], \R) + .\] ist eine Norm auf $C^{0}([0,1], \R)$. + \begin{proof} + Seien $f, g \in C^{0}([0,1], \R)$. + \begin{enumerate}[(N1)] + \item Es ist $\displaystyle \Vert f \Vert_{\infty} = \max_{x \in [0,1]} |f(x)| \ge 0$. + Außerdem ist + \[ + \Vert f \Vert_{\infty} = 0 \implies \max_{x \in [0,1]} \underbrace{|f(x)|}_{\ge 0} + = 0 \implies f(x) = 0 \quad \forall x \in [0,1] \implies f = 0 \in C^{0}([0,1], \R) + .\] + \item Sei $\alpha \in \R$. Dann folgt + \[ + \Vert \alpha f \Vert_{\infty} = \max_{x \in [0,1]} |\alpha f(x)| + = \max_{x \in [0,1]} \underbrace{|\alpha|}_{\ge 0} + \underbrace{|f(x)|}_{\ge 0} + = |\alpha| \max_{x \in [0,1]} |f(x)| + = |\alpha| \Vert f \Vert_{\infty} + .\] + \item Es ist + \[ + \Vert f + g \Vert_{\infty} = \max_{x \in [0,1]} |f(x) + g(x)| + \le \max_{x \in [0,1]} + \left( \underbrace{|f(x)|}_{\ge 0} + \underbrace{|g(x)|}_{\ge 0} \right) + = \max_{x \in [0,1]} |f(x)| + \max_{x \in [0,1]} |g(x)| + = \Vert f \Vert_{\infty} + \Vert g \Vert_{\infty} + .\] + \end{enumerate} + \end{proof} + \item Beh.: + \[ + \Vert f \Vert_{1} = \max_{x \in [0,1]} |f(x)|, \quad f \in C^{0}([0,1], \R) + .\] ist eine Norm auf $C^{0}([0,1], \R)$. + \begin{proof} + Seien $f, g \in C^{0}([0,1], \R)$. + \begin{enumerate}[(N1)] + \item Es ist $\displaystyle \Vert f \Vert_{1} = + \int_{0}^{1} \underbrace{|f(x)|}_{\ge 0} \d x \ge 0$. + Außerdem ist wegen der Monotonie des R.-Integrals: + \[ + \Vert f \Vert_{1} = 0 \implies \int_{0}^{1} \underbrace{|f(x)|}_{\ge 0} \d x + = 0 + \implies f(x) = 0 \quad \forall x \in [0,1] \implies f = 0 \in C^{0}([0,1], \R) + .\] + \item Sei $\alpha \in \R$. Dann folgt mit der Linearität des R.-Integrals + \[ + \Vert \alpha f \Vert_{1} + = \int_{0}^{1} |\alpha f(x)| \d x + = \int_{0}^{1} |\alpha| |f(x)| \d x + = |\alpha| \int_{0}^{1} |f(x)| \d x + = |\alpha| \Vert f \Vert_{1} + .\] + \item Es ist + \[ + \Vert f + g \Vert_{1} + = \int_{0}^{1} |f(x) + g(x)| \d x + \le \int_{0}^{1} |f(x)| \d x + \int_{0}^{1} |g(x)| \d x + = \Vert f \Vert_{1} + \Vert g \Vert_{1} + .\] + \end{enumerate} + \end{proof} + \item Für die gegebene Funktionenfolge gilt für $k \in \N$: + \[ + \Vert u_k \Vert_{\infty} = \max_{x \in [0,1]} |u_k(x)| + = \max_{x \in [x_{k+1}, x_k]} \sin\left( \frac{x_k - x}{x_{k} - x_{k+1}}\pi \right) = 1 + .\] Für die 1-Norm folgt + \begin{align*} + \Vert u_k \Vert_{1} &= \int_{0}^{1} u_k(x) \d x \\ + &= \int_{x_{k+1}}^{x_k} \sin\left( \frac{x_k - x}{ x_k - x_{k+1} } \pi\right) \d x \\ + &= \left[ \frac{x_k - x_{k+1}}{\pi} \cos\left( \frac{x_k - x}{x_k - x_{k+1}} \pi \right) \right] + \Big|_{x_{k+1}}^{x_k} \\ + &= 2 \frac{x_k - x_{k+1}}{\pi} + \intertext{Mit $x_k = \frac{1}{k}$ folgt} + \Vert u_k \Vert_1 &= \frac{2}{\pi} \left( \frac{1}{k} - \frac{1}{k+1} \right) \\ + &= \frac{2}{\pi} \left( \frac{1}{k^2 +k} \right) \\ + &\xrightarrow{k \to \infty} 0 + .\end{align*} + Beh.: $\Vert \cdot \Vert_1$ und $\Vert \cdot \Vert_\infty$ sind nicht äquivalent. + + \begin{proof} + Ang.: $\Vert \cdot \Vert_1$ und $\Vert \cdot \Vert_\infty$ seien äquivalent, dann existiert + ein $m \in \R$, s.d. $\forall f \in C^{0}([0,1], \R)$ gilt + \[ + m \Vert f \Vert_{\infty} \le \Vert f \Vert_1 + \quad \text{also insbes.} \quad m \Vert u_{k} \Vert_{\infty} \le \Vert u_k \Vert_1 + \quad \forall k \in \N + .\] + Wegen $\Vert u_k \Vert = 1$ $\forall k \in \N$, folgt also + \[ + m \le \Vert u_k\Vert_1 \quad \forall k \in \N \quad \contr \text{ zu } \Vert u_k \Vert + \xrightarrow{k \to \infty} 0 + .\] Also sind $\Vert \cdot \Vert_1$ und $\Vert \cdot \Vert_\infty$ nicht äquivalent. + \end{proof} + \end{enumerate} +\end{aufgabe} + +\begin{aufgabe} + \begin{enumerate}[(i)] + \item Beh.: $\Vert \cdot \Vert_F$ ist eine Norm auf $\mathbb{K}^{n \times n}$. + \begin{proof} + Sei $A \in \mathbb{K}^{n \times n}$ beliebig. + \begin{enumerate}[(N1)] + \item Es ist $\displaystyle \Vert A \Vert_F = \left( \sum_{i,j=1}^{n} \underbrace{|a_{ij}|^2}_{\ge 0} \right)^{\frac{1}{2}} \ge 0 $. Außerdem gilt + \[ + \Vert A \Vert_F = 0 \implies + \left(\sum_{i,j=1}^{n} \underbrace{|a_{ij}|^2}_{\ge 0} \right)^{\frac{1}{2}} + \implies a_{ij} = 0 \quad \forall i,j=1,\ldots n + \implies A = 0 + .\] + \item Sei $\alpha \in \mathbb{K}$ beliebig. Dann ist + \[ + \Vert \alpha A \Vert_F = \left( \sum_{i,j=1}^{n} |\alpha a_{ij}|^2 \right)^{\frac{1}{2}} + = \left( |\alpha|^2 \sum_{i,j=1}^{n} |a_{ij}|^2 \right)^{\frac{1}{2}} + = |\alpha| \Vert A \Vert_F + .\] + \item Sei $B \in \mathbb{K}^{n\times n}$. Durch Identifikation + von Matrizen aus $\mathbb{K}^{n \times n}$ mit der Frobeniusnorm + und Vektoren aus $\mathbb{K}^{n \cdot n}$ mit der Euklidschen Norm, gilt die + Cauchy-Schwarz-Ungleichung. Dann folgt + \begin{salign*} + \Vert A + B \Vert_F^2 &= \sum_{i,j=1}^{n} |a_{ij} + b_{ij}|^2 \\ + &= \sum_{i,j=1}^{n} |a_{ij}^2 + 2 a_{ij}b_{ij} + b_{ij}^2| \\ + &\le \sum_{i,j=1}^{n} |a_{ij}|^2 + 2\sum_{i,j=1}^{n} |a_{ij} b_{ij}| + + \sum_{i,j=1}^{n} |b_{ij}|^2 \\ + &\stackrel{\text{C.S.U.}}{\le } \Vert A \Vert_F^2 + + 2 \Vert A \Vert_F \Vert B \Vert_F + \Vert B \Vert_F^2 \\ + &= \left( \Vert A \Vert_F + \Vert B \Vert_F \right)^2 + .\end{salign*} + Damit folgt die Behauptung. + \end{enumerate} + \end{proof} + \item Beh.: $\forall A \in \mathbb{K}^{n \times n}$, $x \in \mathbb{K}^{n}$ gilt + \[ + \Vert A x \Vert_{2} \le \Vert A \Vert_F \Vert x \Vert_2 + .\] + \begin{proof} + Seien $A \in \mathbb{K}^{n \times n}$ und $x \in \mathbb{K}^{n}$ beliebig. + $A_i$ bezeichne die $i$-te Zeile der Matrix $A$. + Dann gilt + \begin{salign*} + \Vert A x \Vert_{2}^2 &= \sum_{i=1}^{n} \left( \sum_{j=1}^{n} |a_{ij}x_j| \right)^2 \\ + &= \sum_{i=1}^{n} (A_i, x)_2^2 \\ + &\stackrel{\text{C.S.U.}}{\le } \sum_{i=1}^{n} \Vert A_i \Vert_2^2 \Vert x \Vert_2^2 \\ + &= \Vert x \Vert_2^2 \sum_{i=1}^{n} \Vert A_i \Vert_{2}^2 \\ + &= \Vert x \Vert_2^2 \sum_{i=1}^{n} \sum_{j=1}^{n} |a_i|^2 \\ + &= \Vert x \Vert_2^2 \Vert A \Vert_F^2 + .\end{salign*} + Damit folgt die Behauptung. + \end{proof} + \item Beh.: $\forall A, B \in \mathbb{K}^{n \times n}$ gilt + \[ + \Vert A B \Vert_F \le \Vert A \Vert_F \Vert B \Vert_F + .\] + \begin{proof} + Seien $A \in \mathbb{K}^{n \times n}$ und $x \in \mathbb{K}^{n}$ beliebig. + $A_i$ bezeichne die $i$-te Zeile der Matrix $A$, $B_j$ die $j$-te Spalte (!) + der Matrix $B$. + Dann gilt + \begin{salign*} + \Vert A B \Vert_{F}^2 &= \sum_{i,j=1}^{n} \left| \sum_{k=1}^{n} a_{ik}b_{kj} \right|^2 \\ + &= \sum_{i,j=1}^{n} (A_i, B_j)_2^2 \\ + &\stackrel{\text{C.S.U.}}{\le } \sum_{i,j=1}^{n} \Vert A_i \Vert_2^2 \Vert B_j \Vert_2^2 \\ + &= \sum_{i=1}^{n} \Vert A_i \Vert_2^2 \sum_{j=1}^{n} \Vert B_j \Vert_{2}^2 \\ + &= \Vert A \Vert_F \Vert B \Vert_F + .\end{salign*} + \end{proof} + \end{enumerate} +\end{aufgabe} + +\begin{aufgabe} + \begin{enumerate}[a)] + \item Auszug aus \textit{rohrleitungsnetzwerk.cc} + \begin{lstlisting}[language=C++, title=Funktion zum Aufstellen der Matrix, captionpos=b] +// Funktion zum Aufstellen der Matrix +template +void flussMatrix( hdnum::DenseMatrix &A ) { + int M( A.rowsize() ); + int N( A.colsize() ); + if(M!=N) + HDNUM_ERROR("Matrix muss quadratisch sein!"); + + // Numerierung wie auf Zettel 3 nur mit 0 beginnend + // also v_0, ... ,v_(N^2-1) + // der Referenzknoten v_r hat Druck 0 + + // berechnung der kantenlaenge + int n = floor(sqrt(N+1)); + + for(int i = 0; i < N; i++) { + int edges = 0; + if ((i+1)%n != 0) { // nicht linker rand + edges++; + if (i-1 >= 0) A(i, i-1) = -1; // falls nicht der referenzknoten + } + if ((i+2)%n != 0) { // nicht rechter rand + edges++; + A(i, i+1) = -1; + } + if (i+n < N) { // nicht unterer rand + edges++; + A(i, i+n) = -1; + } + if (i-n >= -1) { // nicht oberer rand + edges++; + if (i-n >= 0) A(i, i-n) = -1; // falls nicht der referenzknoten + } + A(i, i) = edges; + } +}\end{lstlisting} + \item In \lstinline{DenseMatrix} sind schon die Zeilen- und Spaltensummennorm definiert. + Auszug aus \textit{rohrleitungsnetzwerk.cc} + + \begin{lstlisting}[language=C++, title=Frobeniusnorm, captionpos=b] +// Funktion zur Berechnung der Frobenius-Norm einer Matrix +template +NumberType frobeniusNorm(const hdnum::DenseMatrix &A) { + // Error checking + int M(A.rowsize()); + int N(A.colsize()); + if(M!=N) + HDNUM_ERROR("Matrix muss quadratisch sein!"); + + NumberType result=0.0; + + // iteriere ueber alle zeilen und spalten, quadriere die elemente und summiere + for (int i=0; i < N; i++) { + for (int j=0; j < N; j++) { + result += pow(A(i,j), 2); + } + } + + // ziehe wurzel aus summe + return sqrt(result); +}\end{lstlisting} + + \item Auszug aus \textit{rohrleitungsnetzwerk.cc} + \begin{lstlisting}[language=C++, title=Eigenwertberechnung, captionpos=b] +// Funktion zur Berechnung des betragsgrößten Eigenwertes mit Potenzmethode +template +NumberType maxEigenwert(const hdnum::DenseMatrix &A) { + // Error checking + int M(A.rowsize()); + int N(A.colsize()); + if(M!=N) + HDNUM_ERROR("Matrix muss quadratisch sein!"); + + // start vektor + hdnum::Vector r(N); + r[0] = 1; + // work copy + hdnum::Vector r_tmp(N); + hdnum::Vector diff(N); + // fuehre iterationsschritt 10000 mal aus + for (int k=0; k<10000; k++) { + A.mv(r_tmp, r); // r_tmp = Ar + r_tmp /= r_tmp.two_norm(); // normiere r_tmp + r = r_tmp; + } + A.mv(r_tmp, r); + // berechne eigenwert mit rayleigh quotient + return (r * r_tmp)/r.two_norm_2(); +}\end{lstlisting} + \end{enumerate} +\end{aufgabe} + +\end{document}