# Lineare Algebra ## Normen Um Fragen wie Kondition oder Konvergenz eines Algorithmus studieren zu können, brauchen wir eine Metrik. Für lineare Räume ist es zweckmäßig, die Metrik über eine Norm zu definieren: $$ d(x,y) := ||x-y|| $$ ### $p$-Normen Eine einfache Klasse von Normen im $ℝ^n$ sind die $p$-Normen $$ ||\mathbf{x}||_p = \left(\sum |x_i|^p\right)^\frac{1}{p}, $$ die die die euklidische Norm $p=2$ verallgemeinern. Sei $x_{\text{max}}$ die _betragsmäßig_ größte Komponente von $\mathbf{x}\in ℝ^n$. Dann gilt stets $$ |x_{\text{max}}| \le ||\mathbf{x}||_p \le n^\frac{1}{p} |x_{\text{max}}| $$ (Man betrachte einen Vektor, dessen Komponenten alle gleich $x_{\text{max}}$ sind bzw. einen Vektor, dessen Komponenten außer $x_{\text{max}}$ alle gleich Null sind.) Damit folgt $$ \lim_{p \rightarrow \infty} ||\mathbf{x}||_p = |x_{\text{max}}| =: ||\mathbf{x}||_\infty. $$ In Julia definiert das `LinearAlgebra`-Paket eine Funktion `norm(v, p)`. ```{julia} using LinearAlgebra v = [3, 4] w = [-1, 2, 33.2] @show norm(v) norm(v, 2) norm(v, 1) norm(v, 4) norm(w, Inf); ``` - Wenn das 2. Argument `p` fehlt, wird `p=2` gesetzt. - Das 2. Argument kann auch `Inf` (also $+\infty$) sein. - Das 1. Argument kann ein beliebiger Container voller Zahlen sein. Die Summe $\sum |x_i|^p$ erstreckt sich über *alle* Elemente des Containers. - Damit ist für eine Matrix `norm(A)` gleich der _Frobenius-Norm_ der Matrix `A`. ```{julia} A = [1 2 3 4 5 6 7 8 9] norm(A) # Frobenius norm ``` Da Normen homogen unter Multiplikation mit Skalaren sind, $||\lambda \mathbf{x}|| = |\lambda|\cdot||\mathbf{x}||$, sind sie durch die Angabe der Einheitskugel vollständig bestimmt. Subadditivität der Norm (Dreiecksungleichung) ist äquivalent zur Konvexität der Einheitskugel. ```{julia} #| code-fold: false #| fig-cap: "Einheitskugeln im $ℝ^2$ für verschiedene $p$-Normen: $p$=0.8; 1; 1.5; 2; 3.001 und 1000" using Plots colors=[:purple, :green, :red, :blue,:aqua, :black] x=LinRange(-1, 1, 1000) y=LinRange(-1, 1, 1000) fig1=plot() for p ∈ (0.8, 1, 1.5, 2, 3.001, 1000) contour!(x,y, (x,y) -> p * norm([x, y], p), levels=[p], aspect_ratio=1, cbar=false, color=[pop!(colors)], contour_labels=true, ylim=[-1.1, 1.1]) end fig1 ``` Wie man sieht, muß $p\ge 1$ sein, damit die Einheitskugel konvex und $||.||_p$ eine Norm ist. Die Julia-Funktion `norm(v, p)` liefert allerdings für beliebige Parameter `p` ein Ergebnis. ### Induzierte Normen (Operatornormen) Matrizen $A$ repräsentieren lineare Abbildungen $\mathbf{v}\mapsto A\mathbf{v}$. Die von einer Vektornorm Induzierte Matrixnorm beantwortet die Frage: > _„Um welchen Faktor kann ein Vektor durch die Transformation $A$ maximal gestreckt werden?“_ Auf Grund der Homogenität der Norm unter Multiplikation mit Skalaren reicht es aus, das Bild der Einheitskugel unter der Transformation $A$ zu betrachten. ::: {.callout-tip} ## Definition Sei $V$ ein Vektorraum mit einer Dimension $0