Selaa lähdekoodia

add num4

master
flavis 5 vuotta sitten
vanhempi
commit
29cb962c06
2 muutettua tiedostoa jossa 279 lisäystä ja 0 poistoa
  1. BIN
      sose2020/num/uebungen/num4.pdf
  2. +279
    -0
      sose2020/num/uebungen/num4.tex

BIN
sose2020/num/uebungen/num4.pdf Näytä tiedosto


+ 279
- 0
sose2020/num/uebungen/num4.tex Näytä tiedosto

@@ -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<class NumberType>
void flussMatrix( hdnum::DenseMatrix<NumberType> &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<class NumberType>
NumberType frobeniusNorm(const hdnum::DenseMatrix<NumberType> &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<class NumberType>
NumberType maxEigenwert(const hdnum::DenseMatrix<NumberType> &A) {
// Error checking
int M(A.rowsize());
int N(A.colsize());
if(M!=N)
HDNUM_ERROR("Matrix muss quadratisch sein!");

// start vektor
hdnum::Vector<NumberType> r(N);
r[0] = 1;
// work copy
hdnum::Vector<NumberType> r_tmp(N);
hdnum::Vector<NumberType> 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}

Loading…
Peruuta
Tallenna