From be88125ca90a950b3175f26d78110bb6cc4efb9f Mon Sep 17 00:00:00 2001 From: DariCari <38152878+dariusptrs@users.noreply.github.com> Date: Tue, 12 Mar 2024 15:19:44 +0100 Subject: [PATCH 01/18] update for WS23/24 Additions: spezielle orthogonale Matrizen, Kompression, Rekursive Folgen, Definitheit & Quadratische Funktionen Changes: minor additions and changes in 1., 2.3, 4.5, 8., 9., 10., 11.2 --- Lineare-Algebra.tex | 148 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 114 insertions(+), 34 deletions(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index 1adf610..2839d61 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -98,8 +98,7 @@ \subsection{Allgemeines} % (fold) \left| \sprod{x}{y} \right| \le \| x\| \cdot \| y\| \end{array}\end{math}\\ $\mathbb{K}$ steht für $\mathbb{R}$ und $\mathbb{C}$\\ -$\mathbb{I}_n$ ist die $nxn$-Einheitsmatrix. - +$\mathbb{I}_n$ ist die $nxn$-Einheitsmatrix. \qquad$e_i$ ist der i-te Einheitsvektor. \subsection{Matrizen} % ---------------------------------------------------------------------- Die Matrix $A=(a_{ij}) \in \mathbb K^{m\times n}$ hat $m$ Zeilen mit Index $i$ und $n$ Spalten mit Index $j$. @@ -128,7 +127,7 @@ \subsubsection{Transponieren} $(A+B)^\top=A^\top+B^\top$\qquad $(A\cdot B)^\top=B^\top\cdot A^\top$\qquad \\ $(\lambda A)^\top=\lambda A^\top$ \qquad \qquad \qquad $(A^\top)^\top=A$\\ \\ -$A\in \mathbb K^{n\times n}$ ist symmetrisch, falls $A=A^\top$\qquad ($\Rightarrow$ diagbar)\\ +$A\in \mathbb K^{n\times n}$ ist symmetrisch, falls $A=A^\top$ ($\Rightarrow$ orth. diagbar)\\ $A\in \mathbb K^{n\times n}$ ist schiefsymmetrisch, falls $A=-A^\top$\\ $A\in \mathbb K^{n\times n}$ ist orthogonal (Spalten-/Zeilenvektoren=ONB), falls:\\ $AA^\top=\mathbb{I}_n \quad \Leftrightarrow \quad A^\top=A^{-1} \quad \Leftrightarrow \quad \det A=\pm 1$\\ @@ -154,15 +153,19 @@ \subsubsection{Inverse Matrix von $A\in \mathbb K^{n\times n}$} \subsubsection{Rang einer Matrix $A\in \mathbb K^{m\times n}$} {\tiny (N0-Zeilen = Nicht-Null-Zeilen)}\\ \\ +\begin{minipage}{\columnwidth} \textbf{Bringe A auf ZSF} \\ Rang (Zeilrang) $\rang(A)$: Anzahl N0-Zeilen \\ Zeilenraum $\row(A)$: Erzeugnis der Zeilen, $\text{Basis}(\row(A)) = \{\text{ N0-Zeilen }\}$ \\ Kern: $\Kern(A) = \dme{x \in \mathbb K^n}{Ax= 0}$ \\ Dimensionsformel: $\rang(A) + \mathrm{dim}(\Kern(A)) = n$ \\ +\end{minipage} +\begin{minipage}{\columnwidth} \textbf{Bringe A auf Spaltenstufenform (transponieren, ZSF)} \\ Spaltenrang: Anzahl der N0-Spalten\\ Spaltenraum $\col(A)$: Erzeugnis der Spalten, $\text{Basis}(\col(A)) = \{\text{ N0-Spalten }\}$ \\ Bild = Spaltenraum: Erzeugnis der Spalten +\end{minipage} \subsubsection{Matrixpotenzen} Gegeben: $A \in\mathbb{R}^{mxn}, x \in\mathbb{R}^n$.\\ Gesucht: Lösung von $A^n$.\\ @@ -195,8 +198,9 @@ \subsubsection{Lineares Gleichungssystem LGS} \subsubsection{Determinante von $A\in \mathbb K^{n\times n}$: $\det(A)=|A|$} \begin{itemize}\itemsep0pt -\item $|A|=\sum\limits_{i=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \qquad Entwicklung n. $j$-ter Spalte -\item $|A|=\sum\limits_{j=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \qquad Entwicklung n. $i$-ter Zeile +\item $|A|=\sum\limits_{i/j=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \\ +Entwicklung nach $i$-ter Zeile/$j$-ter Spalte +%\item $|A|=\sum\limits_{j=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \qquad Entwicklung n. $i$-ter Zeile \item $\det\begin{pmatrix}A&0\\C&D\end{pmatrix}=\det\begin{pmatrix}A&B\\0&D\end{pmatrix}=\det(A)\cdot\det(D)$ \item $\begin{vmatrix}\lambda_1&&* \\ &\ddots& \\ 0&&\lambda_n \end{vmatrix} = \lambda_1\cdot \ldots\cdot \lambda_n = \begin{vmatrix} \lambda_1&&0 \\ &\ddots& \\ *&&\lambda_n \end{vmatrix}$ \item $A=B \cdot C \quad \Rightarrow \quad |A|=|B| \cdot |C|$ @@ -309,19 +313,34 @@ \subsubsection{Orthogonalität} \item \textbf{Orthonormalsystem}, wenn $B$ Orthogonalssystem u. $\forall v\in B: \norm{v}=1$ \item \textbf{Orthonormalbasis(ONB)}, wenn $B$ Orthonormalsystem u. Basis von V ist \end{itemize} -\textbf{Matrix $A$ heißt orthogonal}, wenn $A^\top A = \mathbb{I}_n$ -\begin{itemize}\itemsep0pt +Eine \textbf{quadratische Matrix $A$ heißt orthogonal}, wenn $A^\top A = \mathbb{I}_n$ +\begin{tabular}{p{0.45\linewidth}p{0.45\linewidth}} +\begin{itemize} \item $A^{-1}=A^\top $ \item $\det{A}=\pm1$ \item Spalten bilden ONB \item Zeilen bilden ONB -\item $\norm{Av}=\norm{v}$ -\end{itemize}\itemsep0pt +\item $\|Av\|=\|v\|$ % Using \norm for the norm +\end{itemize} +& +\begin{itemize} +\item Drehmatrix mit Drehung um den Ursprung:\ \ +$\begin{pmatrix} +\cos(\alpha) & -\sin(\alpha)\\ +\sin(\alpha) & \cos(\alpha) +\end{pmatrix}$ +\item (Dreh-)Spiegelmatrix mit Spiegelung an der Geraden $y=tan(\frac{\alpha}{2})\cdot x$:\ \ +$\begin{pmatrix} +\cos(\alpha) & \sin(\alpha)\\ +\sin(\alpha) & -\cos(\alpha) +\end{pmatrix}$ +\end{itemize} +\end{tabular} \textbf{Orthonormalisierungsvefahren einer Basis $\{v_1,\ldots,v_n\}$ nach Gram-Schmidt} \begin{enumerate}\itemsep0pt -\item $b_1=\frac{v_1}{\|v_1\|}$ \qquad (Vektor mit vielen 0en oder 1en) -\item $b_{2}= \frac{c_2}{\norm{c_2}}$\ \ mit \ \ $c_2=v_2-\frac{\sprod{v_2}{v_1}}{\sprod{v_1}{v_1}}\cdot v_1$ -\item $b_{3}= \frac{c_3}{\norm{c_3}}$\ \ mit \ \ $c_3=v_3-\frac{\sprod{v_3}{v_1}}{\sprod{v_1}{v_1}} \cdot v_1-\frac{\sprod{v_3}{c_2}}{\sprod{c_2}{c_2}}\cdot c_2$ +\item $b_1=\frac{c_1}{\|c_1\|}$\ \ mit \ \ $c_1=v_1$ \ \ (Vektor mit vielen 0en oder 1en) +\item $b_{2}= \frac{c_2}{\norm{c_2}}$\ \ mit \ \ $c_2=v_2-\frac{\sprod{v_2}{c_1}}{\sprod{c_1}{c_1}}\cdot c_1$ +\item $b_{3}= \frac{c_3}{\norm{c_3}}$\ \ mit \ \ $c_3=v_3-\frac{\sprod{v_3}{c_1}}{\sprod{c_1}{c_1}} \cdot c_1-\frac{\sprod{v_3}{c_2}}{\sprod{c_2}{c_2}}\cdot c_2$ \end{enumerate} \textbf{Erweitern einer ONB von $V$ auf eine ONB des $\mathbb{R}^n$} \begin{enumerate}\itemsep0pt @@ -481,34 +500,37 @@ \subsection{QR-Zerlegung} $A = QR$, wobei $Q$ orthogonal und R oben dreieckig.\\ \textbf{Vorgehen} \begin{itemize}\itemsep0pt - \item $Q$ berechnen durch Gram-Schmidt mit den Spalten von $A$, beginnend bei der ersten - \item Die Koeffizienten von $R$ ergeben sich durch Umstellen der jeweiligen Gram-Schmidt Gleichungen auf die Spalten von $A$ + \item $Q$ berechnen durch Gram-Schmidt mit den Spalten von $A$, \textbf{beginnend bei der ersten} + \item Die Koeffizienten von $R$ ergeben sich aus den Gram-Schmidt Gleichungen wie folgt: $r_{i,i}=||c_i||^2$ und $r_{i,j}=\frac{\langle v_j,c_i \rangle}{r_{i,i}}$ \item Alternativ gilt: $R = Q^TA$ \end{itemize} \subsection{Kleinstes-Quadrate-Problem} Für $Ax = b$ lautet die \textbf{Normalengleichung} -$A^TAx = A^Tb$\\ +$A^TAx^* = A^Tb$\\ +\\ +\textbf{Lösen} durch Gauß oder Umstellen: $x^* = (A^TA)^{-1}A^Tb$\\ +Für $A=QR$ lautet die Lösung $x^* = R^{-1}Q^Tb$\\ $\Rightarrow$ optimale Lösung mit minimalem quadratischen Fehler (existiert immer). \subsection{Singulärwertzerlegung} -Bei der Singulärwertzerlegung wird eine beliebige Matrix $A\in \mathbb{R}^{m\times n}$ als Produkt dreier Matrizen $U$, $S$ und $V$ geschrieben +Bei der Singulärwertzerlegung wird eine beliebige Matrix $A\in \mathbb{R}^{m\times n}$ als Produkt dreier Matrizen $V$, $\Sigma$ und $W$ geschrieben \begin{equation*} -A=USV^\top +A=V\Sigma W^\top \end{equation*} -mit $U\in \mathbb{R}^{m\times m}$, $S\in \mathbb{R}^{m\times n}$ und $V\in \mathbb{R}^{n\times n}$.\\ -$U$ und $V$ sind orthogonal, $S$ ist eine Diagonalmatrix. +mit $V\in \mathbb{R}^{m\times m}$, $\Sigma\in \mathbb{R}^{m\times n}$ und $W\in \mathbb{R}^{n\times n}$.\\ +$V$ und $W$ sind orthogonal, $\Sigma$ ist eine Diagonalmatrix. \subsubsection{Rezept: Singulärwertzerlegung} Gegeben: $A\in \mathbb{R}^{m\times n}$ \begin{enumerate}\itemsep0pt -\item Bestimme alle Eigenwerte $\lambda_j$ und Eigenvektoren $v_j$ der Matrix $A^\top A\in \mathbb{R}^{n\times n}$ und ordne sie \\ $\lambda_1\ge\lambda_2\ge \dots \ge \lambda_r>\lambda_{r+1}=\dots=\lambda_n=0$ mit $r\le n$ -\item Bestimme eine ONB des $\mathbb{R}^n$ aus den Eigenvektoren $v_j$ und erhalte $V=\begin{pmatrix} -v_1 &\dots & v_n +\item Bestimme alle Eigenwerte $\lambda_j$ und Eigenvektoren $w_j$ der Matrix $A^\top A\in \mathbb{R}^{n\times n}$ und ordne sie \\ $\lambda_1\ge\lambda_2\ge \dots \ge \lambda_r>\lambda_{r+1}=\dots=\lambda_n=0$ mit $r\le n$ +\item Bestimme eine ONB des $\mathbb{R}^n$ aus den Eigenvektoren $w_j$ und erhalte $W=\begin{pmatrix} +w_1 &\dots & w_n \end{pmatrix} \in \mathbb{R}^{n\times n}$ \item Die Singulärwerte sind $\sigma_j=\sqrt{\lambda_j}$ \qquad $j=1,\dots,\min\{m,n\}$ \begin{equation*} -S=\begin{pmatrix} +\Sigma=\begin{pmatrix} \sigma_1 & & & 0 & \dots & 0\\ & \ddots & & \vdots & & \vdots\\ & & \sigma_m & 0 & \dots & 0\\ @@ -516,7 +538,7 @@ \subsubsection{Rezept: Singulärwertzerlegung} \qquad mn \end{equation*} -\item Bestimme $u_1,\dots,u_r$ aus $u_i=\frac{1}{\sigma_j}Av_j$ für alle $j=1,\dots,r$ (alle $\sigma_j\ne 0$) -\item Falls $r v^{\top}Av> 0,\quad\forall v \in\mathbb R^n\backslash \{0\}$ +\item negativ definit: EW negativ $<=> v^{\top}Av< 0,\quad\forall v \in\mathbb R^n\backslash \{0\}$ +\item positiv semidefinit: EW $\geq 0 <=> v^{\top}Av\geq 0,\quad\forall v \in\mathbb R^n$ +\item negativ semidefinit: EW $\leq 0 <=> v^{\top}Av\leq 0,\quad\forall v \in\mathbb R^n$ +\end{itemize} +\subsubsection{Quadratische Funktionen} +\textbf{Form:} $f(x)=x^{\top}Ax+b^{\top}x+c = \langle x,Ax \rangle + \langle b,x \rangle + c$\\ +Berechnen von Extrempunkten: +\begin{itemize}\itemsep0pt +\item positiv definit: Minimum bei $x^{*}=-\frac{1}{2}A^{-1}b$ +\item negativ definit: Maximum bei $x^{*}=-\frac{1}{2}A^{-1}b$ +\item positiv/negativ semidefinit: Existenz von Extremum hängt von Lösbarkeit des LGS $2Ax=-b$ ab. (nicht eindeutig!) +\end{itemize} + \end{multicols*} % Ende der Spalten From 9d0ddf8afa76398ea91072b5d5f1b14709c6b0af Mon Sep 17 00:00:00 2001 From: DariCari <38152878+dariusptrs@users.noreply.github.com> Date: Wed, 13 Mar 2024 09:56:23 +0100 Subject: [PATCH 02/18] add more understandable description in 2.8 --- Lineare-Algebra.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index 2839d61..f0cff12 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -198,8 +198,8 @@ \subsubsection{Lineares Gleichungssystem LGS} \subsubsection{Determinante von $A\in \mathbb K^{n\times n}$: $\det(A)=|A|$} \begin{itemize}\itemsep0pt -\item $|A|=\sum\limits_{i/j=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \\ -Entwicklung nach $i$-ter Zeile/$j$-ter Spalte +\item $|A|=\sum\limits_{i\text{ oder }j=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \\ +Entwicklung nach $j$-ter Spalte oder $i$-ter Zeile %\item $|A|=\sum\limits_{j=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \qquad Entwicklung n. $i$-ter Zeile \item $\det\begin{pmatrix}A&0\\C&D\end{pmatrix}=\det\begin{pmatrix}A&B\\0&D\end{pmatrix}=\det(A)\cdot\det(D)$ \item $\begin{vmatrix}\lambda_1&&* \\ &\ddots& \\ 0&&\lambda_n \end{vmatrix} = \lambda_1\cdot \ldots\cdot \lambda_n = \begin{vmatrix} \lambda_1&&0 \\ &\ddots& \\ *&&\lambda_n \end{vmatrix}$ From 85c5eebceecd44225c7e8dbef9d9c792238bd400 Mon Sep 17 00:00:00 2001 From: DariCari <38152878+dariusptrs@users.noreply.github.com> Date: Wed, 27 Mar 2024 13:44:59 +0100 Subject: [PATCH 03/18] add rezept in 9. --- Lineare-Algebra.tex | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index f0cff12..3e9b46b 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -504,7 +504,6 @@ \subsection{QR-Zerlegung} \item Die Koeffizienten von $R$ ergeben sich aus den Gram-Schmidt Gleichungen wie folgt: $r_{i,i}=||c_i||^2$ und $r_{i,j}=\frac{\langle v_j,c_i \rangle}{r_{i,i}}$ \item Alternativ gilt: $R = Q^TA$ \end{itemize} - \subsection{Kleinstes-Quadrate-Problem} Für $Ax = b$ lautet die \textbf{Normalengleichung} @@ -513,7 +512,21 @@ \subsection{Kleinstes-Quadrate-Problem} \textbf{Lösen} durch Gauß oder Umstellen: $x^* = (A^TA)^{-1}A^Tb$\\ Für $A=QR$ lautet die Lösung $x^* = R^{-1}Q^Tb$\\ $\Rightarrow$ optimale Lösung mit minimalem quadratischen Fehler (existiert immer). - +\subsubsection{Rezept: Quadratische Funktion finden} +Gegeben: mehrere Punkte ($x_i, y_i$) im Koordinatensystem\\ +Gesucht: Koeffizienten $\mathtt{a}, \mathtt{b}, \mathtt{c}$ für $f(x)=\mathtt{a}\cdot x^2+\mathtt{b}\cdot x+\mathtt{c}\cdot 1=y$\\ +\textbf{Vorgehen:} +\begin{enumerate} +\item $b = (y_1, y_2, \dots)^\top$ \qquad $A = \begin{pmatrix} +x_1^2 & x_1 & 1 \\[3pt] +x_2^2 & x_2 & 1 \\[3pt] +\vdots & \vdots & \vdots +\end{pmatrix}$ \\ +\textit{Für eine lineare Funktion erste Spalte von $A$ streichen} +\item Lösungsvektor $x^*$ mithilfe von $A$ und $b$ berechnen +\item $x^*=(\mathtt{a}, \mathtt{b}, \mathtt{c})^\top \rightarrow \ f(x)=\mathtt{a}x^2+\mathtt{b}x+\mathtt{c}$ +\end{enumerate} +%\textbf{Lineare Funktion $(bx+c)$:} erste Spalte von $A$ streichen. $x^*=(\mathtt{b}, \mathtt{c})^\top$ \subsection{Singulärwertzerlegung} Bei der Singulärwertzerlegung wird eine beliebige Matrix $A\in \mathbb{R}^{m\times n}$ als Produkt dreier Matrizen $V$, $\Sigma$ und $W$ geschrieben \begin{equation*} From 53b309d21295683009bc3f3a2b34b42ac7f73f74 Mon Sep 17 00:00:00 2001 From: Darius Peters <38152878+dariusptrs@users.noreply.github.com> Date: Mon, 1 Apr 2024 15:08:04 +0200 Subject: [PATCH 04/18] update template + add orth. diag --- .../ISSUE_TEMPLATE/inhaltlicher_fehler.yaml | 1 - .github/workflows/ci.yml | 32 ++- .github/workflows/update.yml | 38 ++++ .gitignore | 2 + Lineare-Algebra.tex | 200 ++++++++---------- scripts/__init__.py | 0 scripts/requirements.txt | 2 + scripts/tests/__init__.py | 0 scripts/tests/test_update_files.py | 75 +++++++ scripts/update_files.py | 42 ++++ write-gitid.sh | 11 +- 11 files changed, 288 insertions(+), 115 deletions(-) create mode 100644 .github/workflows/update.yml create mode 100644 scripts/__init__.py create mode 100644 scripts/requirements.txt create mode 100644 scripts/tests/__init__.py create mode 100644 scripts/tests/test_update_files.py create mode 100644 scripts/update_files.py diff --git a/.github/ISSUE_TEMPLATE/inhaltlicher_fehler.yaml b/.github/ISSUE_TEMPLATE/inhaltlicher_fehler.yaml index e994e5e..95b8d1e 100644 --- a/.github/ISSUE_TEMPLATE/inhaltlicher_fehler.yaml +++ b/.github/ISSUE_TEMPLATE/inhaltlicher_fehler.yaml @@ -1,6 +1,5 @@ name: Inhaltlicher Fehler description: Hilf uns Fehler zu Verbessern -title: '' labels: [bug] assignees: [] diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6b70f6d..ff9e20c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,34 +2,56 @@ name: CI on: push: - branches: [ master ] + branches: [ master, main ] pull_request: - branches: [ master ] - + branches: [ master, main ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.12.2' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r scripts/requirements.txt + - name: Run pytest + run: pytest + build: runs-on: ubuntu-latest container: makeappdev/uselatex:latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Configure Git safe directory with GITHUB_WORKSPACE + run: git config --global --add safe.directory $GITHUB_WORKSPACE + - name: Build run: | cmake --version; pdflatex --version mkdir -p build && cd build cmake .. make + - name: Prepare Deployment - if: github.ref == 'refs/heads/master' + if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' run: | mkdir -p export echo "# This branch is for deployment only" >> export/README.md cp build/*.pdf export cp build/git.id export + - name: Deploy - if: github.ref == 'refs/heads/master' + if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' uses: JamesIves/github-pages-deploy-action@v4.5.0 with: branch: gh-pages diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml new file mode 100644 index 0000000..9fe823a --- /dev/null +++ b/.github/workflows/update.yml @@ -0,0 +1,38 @@ +name: Update README and LaTeX Build File + +on: + workflow_dispatch: + +jobs: + update-and-create-pr: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.12.2' + + - name: Run update script + run: python scripts/update_files.py + + - name: Configure Git + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + + - name: Commit changes to a new branch + run: | + git checkout -b changes/${{ github.run_id }} + git add . + git commit -m "Apply automated updates" + git push -u origin changes/${{ github.run_id }} + + - name: Create Pull Request + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh pr create --base main --head changes/${{ github.run_id }} --title "Specify project URLs and CMake project" --body "Please review the changes applied by the automated script." diff --git a/.gitignore b/.gitignore index a4539ab..6751f5c 100644 --- a/.gitignore +++ b/.gitignore @@ -112,3 +112,5 @@ sympy-plots-for-*.tex/ # xindy *.xdy StochastischeSignale.pdf +git.id +*.DS_Store diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index f533822..a3043e1 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -5,65 +5,36 @@ % ====================================================================== % Dokumentklasse (Schriftgröße 6, DIN A4, Artikel) -\documentclass[6pt,a4paper]{scrartcl} +\documentclass[ngerman, 6pt]{latex4ei/latex4ei_sheet} +\title{Lineare Algebra} +\author{Lukas Kompatscher} +\myemail{lukas.kompatscher@tum.de} +\mywebsite{www.latex4ei.de} % Pakete laden -\usepackage[utf8]{inputenc} % Zeichenkodierung: UTF-8 (für Umlaute) -\usepackage[german]{babel} % Deutsche Sprache -\usepackage{multicol} % Spaltenpaket -\usepackage{amsmath} -\usepackage{amssymb} -\usepackage{esint} % erweiterte Integralsymbole -\usepackage{multicol} % ermöglicht Seitenspalten -\usepackage{wasysym} % Blitz -\usepackage{graphicx} -\usepackage[colorlinks=true, urlcolor=black]{hyperref} +\usepackage{setspace} % Seitenlayout und Ränder: -\usepackage{geometry} -\geometry{a4paper,landscape, left=6mm,right=6mm, top=0mm, bottom=3mm,includeheadfoot} - -%Kopf- und Fußzeile -\usepackage{fancyhdr} -\pagestyle{fancy} -\fancyhf{} - - \fancyfoot[C]{\textbf{Lineare Algebra} von Lukas Kompatscher (\href{mailto:lukas.kompatscher@tum.de}{lukas.kompatscher@tum.de})} - \renewcommand{\headrulewidth}{0.0pt} %obere Linie ausblenden - \renewcommand{\footrulewidth}{0.1pt} %untere Linie - - \fancyfoot[R]{Stand: \today \qquad \thepage} - \fancyfoot[L]{Homepage: www.latex4ei.de - Fehler bitte sofort melden.} - -% Schriftart SANS für bessere Lesbarkeit bei kleiner Schrift -\renewcommand{\familydefault}{\sfdefault} - +\titlespacing*{\section}{0pt}{2pt}{2pt} +\titlespacing*{\subsection}{.5pt}{1pt}{2pt} +\setstretch{1.2} +\titleformat*{\section}{\large\bfseries} +\titleformat*{\subsection}{\normalsize\bfseries} % Custom Commands -\renewcommand{\thesubsection}{\arabic{subsection}} \newcommand{\me}[1]{\ensuremath{\left\{#1\right\}}} \newcommand{\dme}[2]{\ensuremath{\left\{#1\,\vert\,#2 \right\}}} -\newcommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}} \newcommand{\un}[1]{\; \unit{#1} } \newcommand{\unf}[2]{\;\left[ \unitfrac{#1}{#2} \right]} -\newcommand{\norm}[2][\relax]{\ifx#1\relax \ensuremath{\left\Vert#2\right\Vert}\else \ensuremath{\left\Vert#2\right\Vert_{#1}}\fi} \newcommand{\enbrace}[1]{\ensuremath{\left(#1\right)}} \newcommand{\nira}[1]{\ensuremath{\overset{n \rightarrow \infty}{\longrightarrow}}} \newcommand{\os}[2]{\ensuremath{\overset{#1}{#2}}} \makeatletter -\newcommand{\Ra}[0]{\ensuremath{\Rightarrow}} -\newcommand{\ra}[0]{\ensuremath{\rightarrow}} \newcommand{\gk}[1]{\ensuremath{\left\lfloor#1\right\rfloor}} -\newcommand{\sprod}[2]{\ensuremath{% - \setbox0=\hbox{\ensuremath{#2}} - \dimen@\ht0 - \advance\dimen@ by \dp0 - \left\langle #1\rule[-\dp0]{0pt}{\dimen@},#2\right\rangle}} %Custom functions \DeclareMathOperator{\arccot}{arccot} \DeclareMathOperator{\im}{im} -\DeclareMathOperator{\diag}{diag} \DeclareMathOperator{\rang}{rang} \DeclareMathOperator{\col}{col} \DeclareMathOperator{\row}{row} @@ -75,18 +46,19 @@ % Dokumentbeginn % ====================================================================== \begin{document} + +\IfFileExists{git.id}{\input{git.id}}{} +\ifdefined\GitRevision\mydate{\GitNiceDate\ (git \GitRevision)}\fi +\ifdefined\GitIssuesURL + \ifdefined\setissueslinkurl + \setissueslinkurl{\GitIssuesURL} % Set the actual URL + \fi +\fi + %\section{} % ---------------------------------------------------------------------- - -% Aufteilung in Spalten -\begin{multicols*}{4} -\parbox{2.3cm}{ - \includegraphics[height=2cm]{./img/Logo.pdf} -} -\parbox{4cm}{ - \huge{\textbf{Lineare Algebra}} -} -\subsection{Allgemeines} % (fold) +\maketitle +\section{Allgemeines} % (fold) \label{sub:allgemeines} Dreiecksungleichung \qquad \qquad \qquad @@ -99,21 +71,20 @@ \subsection{Allgemeines} % (fold) \end{array}\end{math}\\ $\mathbb{K}$ steht für $\mathbb{R}$ und $\mathbb{C}$\\ $\mathbb{I}_n$ ist die $nxn$-Einheitsmatrix. \qquad$e_i$ ist der i-te Einheitsvektor. -\subsection{Matrizen} +\section{Matrizen} % ---------------------------------------------------------------------- Die Matrix $A=(a_{ij}) \in \mathbb K^{m\times n}$ hat $m$ Zeilen mit Index $i$ und $n$ Spalten mit Index $j$. -\subsubsection{Allgemeine Rechenregeln} -\textbf{Merke:} Zeile vor Spalte! (Multiplikation, Indexreihenfolge, etc.)\\ - +\subsection{Allgemeine Rechenregeln} +\textbf{Merke:} Zeile vor Spalte! (Multiplikation, Indexreihenfolge, etc.) \begin{tabular}{ll} 1) $A+0=A$ & 2) $1 \cdot A=A$ \\ 3) $A+B=B+A$ & 4) $A \cdot B \ne B \cdot A$ (im Allg.) \\ 5) $(A+B)+C=A+(B+C)$ & 6) $\lambda (A+B) = \lambda A + \lambda B$\\ -\end{tabular} +\end{tabular}\\ Multiplikation von $A\in \mathbb K^{m\times r}$ und $B\in \mathbb K^{r\times n}$: $AB\in\mathbb K^{m\times n}$ -\subsubsection{Elementare Zeilenumformungen (EZF) (gilt äquiv. für Spalten)} +\subsection{Elementare Zeilenumformungen (EZF) (gilt äquiv. für Spalten)} $A \in \mathbb K^{m\times n}$ hat $m$ Zeilen $z_i\in \mathbb K^n$ \begin{itemize}\itemsep0pt \item Vertauschen von Zeilen @@ -121,7 +92,7 @@ \subsubsection{Elementare Zeilenumformungen (EZF) (gilt äquiv. für Spalten)} \item Addition des $\lambda$-fachen der Zeile $z_i$ zur Zeile $z_j$ \end{itemize} -\subsubsection{Transponieren} +\subsection{Transponieren} $A=(a_{ij})\ \in \mathbb K^{m\times n}$ gilt: $A^\top=(a_{ji})\ \in \mathbb K^{n\times m}$\\ \textbf{Regeln:}\\ $(A+B)^\top=A^\top+B^\top$\qquad $(A\cdot B)^\top=B^\top\cdot A^\top$\qquad \\ @@ -134,8 +105,8 @@ \subsubsection{Transponieren} $A\in \mathbb C^{n\times n}$ ist hermitesch, falls $A=\overline{A}^\top$ \quad (kmplx. konj. u. transp.) -\subsubsection{Inverse Matrix von $A\in \mathbb K^{n\times n}$} -Für die inverse Matrix $A^{-1}$ von $A$ gilt: $A^{-1}A=\mathbb{I}_n$\\ +\subsection{Inverse Matrix} +Für die inverse Matrix $A^{-1}$ von $A\in \mathbb K^{n\times n}$ gilt: $A^{-1}A=\mathbb{I}_n$\\ $(A^{-1})^{-1}=A$ \qquad $(AB)^{-1}=B^{-1}A^{-1}$ \\ $(A^\top)^{-1}=(A^{-1})^\top$\\ \\ @@ -151,8 +122,9 @@ \subsubsection{Inverse Matrix von $A\in \mathbb K^{n\times n}$} -c & a \end{pmatrix}$ -\subsubsection{Rang einer Matrix $A\in \mathbb K^{m\times n}$} -{\tiny (N0-Zeilen = Nicht-Null-Zeilen)}\\ \\ +\subsection{Rang einer Matrix} +$A\in \mathbb K^{m\times n}$ +{(N0-Zeilen = Nicht-Null-Zeilen)}\\ \\ \begin{minipage}{\columnwidth} \textbf{Bringe A auf ZSF} \\ Rang (Zeilrang) $\rang(A)$: Anzahl N0-Zeilen \\ @@ -166,7 +138,7 @@ \subsubsection{Rang einer Matrix $A\in \mathbb K^{m\times n}$} Spaltenraum $\col(A)$: Erzeugnis der Spalten, $\text{Basis}(\col(A)) = \{\text{ N0-Spalten }\}$ \\ Bild = Spaltenraum: Erzeugnis der Spalten \end{minipage} -\subsubsection{Matrixpotenzen} +\subsection{Matrixpotenzen} Gegeben: $A \in\mathbb{R}^{mxn}, x \in\mathbb{R}^n$.\\ Gesucht: Lösung von $A^n$.\\ \begin{itemize} @@ -184,7 +156,7 @@ \subsubsection{Matrixpotenzen} \end{pmatrix}$. \end{itemize} -\subsubsection{Lineares Gleichungssystem LGS} +\subsection{Lineares Gleichungssystem LGS} Das LGS $Ax=b$ kurz $(A|b)$ mit $A\in \mathbb K^{m\times n}$, $x\in \mathbb K^n$, $b\in \mathbb K^m$ hat $m$ Gleichungen und $n$ Unbekannte.\\ \\ \textbf{Lösbarkeitskriterium:}\\ @@ -195,8 +167,8 @@ \subsubsection{Lineares Gleichungssystem LGS} Das homogene LGS: $(A|0)$ hat stets die triviale Lösung $0$\\ Summen und Vielfache der Lösungen von $(A|0)$ sind wieder Lösungen. -\subsubsection{Determinante von $A\in \mathbb K^{n\times n}$: $\det(A)=|A|$} - +\subsection{Determinante} +$A\in \mathbb K^{n\times n}$: $\det(A)=|A|$ \begin{itemize}\itemsep0pt \item $|A|=\sum\limits_{i\text{ oder }j=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \\ Entwicklung nach $j$-ter Spalte oder $i$-ter Zeile @@ -218,20 +190,21 @@ \subsubsection{Determinante von $A\in \mathbb K^{n\times n}$: $\det(A)=|A|$} \end{itemize} \textbf{Vereinfachung für Spezialfall $A\in \mathbb K^{2\times 2}$}\\ $A=\begin{pmatrix}a&b\\c&d\end{pmatrix} \Rightarrow \det(A)=|A|=ad-bc$ - -\subsubsection{Äquivalente Aussagen für $A\in \mathbb K^{n\times n}$} +\subsection{Hauptsatz invertierbarer quadratischer Matrizen} \begin{tabular}{ll} 1) $A$ ist invertierbar & 2) $\dim(\col(A))=\dim(\row(A))=n$\\ 3) $\Kern(A)={0}$ & 4) Die strenge ZSF von $A$ ist $\mathbb{I}_n$\\ - 5) $\det(A)\ne0$ & 6) Zeilen/Spalten von $A$ linear unabhängig\\ - 7) $Ax=b$ hat eine & 8) 0 ist kein Singulärwert von $A$\\\ \ \ \ eindeutige Lösung $\forall b\in\mathbb{R}^n$ & 9) Lineare Abbildung ist bijektiv\\ - 10) $\rang(A)=n$ & 11) 0 ist kein Eigenwert von $A$\\ - -\end{tabular} - -\subsection{Vektoren} + 5) $\det(A)\ne0$ & 6) Zeilen/Spalten von $A$ linear unabh.\\ + 7) $Ax=b$ hat eine & 8) $0$ ist kein Singulärwert von $A$\\\ \ \ \ eindeutige Lösung $\forall b\in\mathbb{R}^n$ & 9) Lineare Abbildung ist bijektiv\\ + 10) $\rang(A)=n$ & 11) $0$ ist kein Eigenwert von $A$\\ + 12) $\col(A)=\mathbb{R}^n$ & 13) $A$ ist Produkt elementarer Matrizen\\ +\end{tabular}\\ \\ +\textit{Ist eine dieser Aussagen wahr, so sind alle Aussagen wahr!} +\section{Vektoren} +\begin{minipage}{\columnwidth} Ein Vektor ist ein $n$-Tupel reeller oder komplexer Zahlen, also ein Element aus dem $\mathbb K^n$. -\subsubsection{Skalarprodukt $\langle v,w \rangle: V\times V \rightarrow \mathbb R$} +\subsection{Skalarprodukt} +$\langle v,w \rangle: V\times V \rightarrow \mathbb R$ \begin{enumerate}\itemsep0pt \item Linear: $\langle u,v+w \rangle=\langle u,v \rangle + \langle u,w \rangle \land \langle u,\lambda v \rangle = \lambda \langle u, v \rangle$ \item Symmetrisch: $\langle v,w \rangle=\langle w,v \rangle$ @@ -248,8 +221,8 @@ \subsubsection{Skalarprodukt $\langle v,w \rangle: V\times V \rightarrow \mathbb $v = \proj_a(v) + \proj_{a^\perp}(v) \Rightarrow \proj_{a^\perp}(v) = v - \proj_a(v)$\\ \textbf{Winkel} \quad $\cos \phi = \frac{\sprod{a}{b}}{\norm{a} \norm{b}} $ \qquad $\phi = \arccos \enbrace{ \frac{\sprod{a}{b} }{\norm{a} \norm{b} } }$ - -\subsubsection{Kreuzprodukt (Vektorprodukt)} +\end{minipage} +\subsection{Kreuzprodukt (Vektorprodukt)} $a\times b=\left( \begin{matrix} a_2b_3-a_3b_2\\a_3b_1-a_1b_3\\a_1b_2-a_2b_1\end{matrix}\right)$\qquad $a,b\ \in \mathbb R^3$\\ \\ $a\times b \perp a,b$ \qquad (falls $a\times b=0\ \Leftrightarrow\ a,b$\ linear abhängig)\\ @@ -261,7 +234,7 @@ \subsubsection{Kreuzprodukt (Vektorprodukt)} $[a,b,c]:=\langle a\times b, c\rangle=\det (a,b,c)\mathrel{\widehat{=}}$\ Volumen des Spates.\\ $[a,b,c]>0\ \Leftrightarrow\ a,b,c$\ bilden Rechtssystem \\ $[a,b,c]=0\ \Leftrightarrow\ \{a,b,c\}$\ linear abhängig -\subsection{Vektorräume (VR)} +\section{Vektorräume (VR)} % -------------------------------------------------------------- Eine nichtleere Menge V mit zwei Verknüpfungen $+$ und $\cdot$ heißt $K$-Vektorraum über dem Körper $\mathbb K$. \\ \textbf{Bedingung $(u,v,w\in V \quad \lambda,\mu \in \mathbb{R})$} @@ -276,14 +249,15 @@ \subsection{Vektorräume (VR)} \item $(\lambda \mu)v = \lambda(\mu v)$ \item $1v=v$ \end{enumerate}\itemsep0pt -\subsubsection{Untervektorraum (UVR) $U\subset V (u,v\in U \quad \lambda\in\mathbb{R})$} +\subsection{Untervektorraum (UVR)} +$U\subset V (u,v\in U \quad \lambda\in\mathbb{R})$ \begin{enumerate}\itemsep0pt \item $U\ne \emptyset \qquad (0\in U)$ \item $u+v\in U$ \item $\lambda u \in U$ \end{enumerate} -\subsubsection{Basis (Jeder VR und jeder UVR besitzt eine Basis!)} % (fold) +\subsection{Basis (Jeder VR und jeder UVR besitzt eine Basis!)} % (fold) \label{sub:basis} Eine Teilmenge $B\subset V$ heißt Basis von $V$, wenn gilt: \begin{itemize}\itemsep0pt @@ -291,12 +265,12 @@ \subsubsection{Basis (Jeder VR und jeder UVR besitzt eine Basis!)} % (fold) \item $B$ ist linear unabhängig \end{itemize} -\subsubsection{Dimension} +\subsection{Dimension} $n=\dim(V)=\abs{B} = $ Mächtigkeit von $B$\\ Mehr als $n$ Vektoren aus $V$ sind stets linear abhängig. \\ Für jeden UVR $U \subset V$ gilt: $\dim (U) \le \dim (V)$ -\subsubsection{Linearkombination} +\subsection{Linearkombination} Jeder Vektor $v\in\mathbb{K}^n$ kann als Linearkombination einer Basis $B=\{b_1, \dots, b_n\} \subset \mathbb{K}^n$ dargestellt werden \begin{equation*} v=\lambda_1 b_1 + \dots + \lambda_n b_n \Rightarrow \text{Gauß} \ \Big(b_1 \ b_2 \ b_3 \ |\ v\ \Big) @@ -305,7 +279,7 @@ \subsubsection{Linearkombination} Vektoren heißen linear unabhängig, wenn aus: \\ $\lambda_1 v_1 + \dots + \lambda_n v_n = 0$ folgt, dass $\lambda_1 = \dots = \lambda_n = 0$ -\subsubsection{Orthogonalität} +\subsection{Orthogonalität} $B\subset V$ heißt \begin{itemize}\itemsep0pt \item \textbf{Orthogonalsystem}, wenn $\forall v,w\in B: v\perp w$ @@ -315,7 +289,7 @@ \subsubsection{Orthogonalität} \end{itemize} Eine \textbf{quadratische Matrix $A$ heißt orthogonal}, wenn $A^\top A = \mathbb{I}_n$ \begin{tabular}{p{0.45\linewidth}p{0.45\linewidth}} -\begin{itemize} +\begin{itemize}\itemsep6pt \item $A^{-1}=A^\top $ \item $\det{A}=\pm1$ \item Spalten bilden ONB @@ -366,7 +340,7 @@ \subsubsection{Orthogonalität} \item $\proj_U(v)=\lambda_1 b_1 +\dots +\lambda_r b_r$ \end{enumerate} -\subsection{Norm} +\section{Norm} \textbf{Norm von Vektoren} $\norm{a}=\sqrt{\sprod{a}{a}} =\sqrt{a_1^2+a_2^2+\ldots +a_n^2}$\\ $\forall v, w \in \mathbb{R}^n$: @@ -375,7 +349,8 @@ \subsection{Norm} \item $\norm{v+w}\le \norm{v} + \norm{w}$ \end{enumerate} -\subsection{Lineare Abbildungen} +\begin{minipage}{\columnwidth} +\section{Lineare Abbildungen} Abbildung $f:V\rightarrow W$ ist linear, wenn \begin{enumerate}\itemsep0pt \item $f(0)=0$ @@ -386,7 +361,8 @@ \subsection{Lineare Abbildungen} \textbf{Injektiv}, wenn aus $f(x_1)=f(x_2) \Rightarrow x_1=x_2$\\ \textbf{Surjektiv}: $\forall y\in W \ \exists x\in V:f(x)=y$\\ \quad (Alle Werte aus $W$ werden angenommen.)\\ \textbf{Bijektiv}(Eineindeutig): $f$ ist injektiv und surjektiv $\Rightarrow$ $f$ umkehrbar. -\subsubsection{Koordinatenvektor bezüglich einer Basis $B$} +\end{minipage} +\subsection{Koordinatenvektor bezüglich einer Basis $B$} Gegeben: Vektorraum $V \in\mathbb{R}^n$, $v \in V$.\\ Gesucht: $[v]_B$ (Koordinaten von $v$ bezüglich der Basis $B$). \begin{enumerate} @@ -394,7 +370,7 @@ \subsubsection{Koordinatenvektor bezüglich einer Basis $B$} \item Löse das LGS $Bx = v$. \item $[v]_B = x$. \end{enumerate} -\subsubsection{Abbildungsmatrix (Darstellungsmatrix)} +\subsection{Abbildungsmatrix (Darstellungsmatrix)} Lineare Abbildung $f:\mathbb{R}^n \rightarrow \mathbb{R}^m$ \\ Abbildungsmatrix spaltenweise: $[f] = \begin{pmatrix}f(e_1) & \dots & f(e_n) @@ -430,17 +406,17 @@ \subsubsection{Abbildungsmatrix (Darstellungsmatrix)} \item $f$ bijektiv, wenn $[f]$ invertierbar \item $f$ ist bijektiv $\Leftrightarrow f$ ist injektiv $\Leftrightarrow f$ ist surjektiv \end{itemize} -\subsubsection{Transformationsmatrix} +\subsection{Transformationsmatrix} Transformationsmatrix der Koordinaten von $B$ zu $C$: $_CT_B$\\ \textbf{Regeln und Berechnung:} -\begin{itemize} +\begin{itemize}\itemsep2pt \item $_{\mathbb{I}_n}T_B = T_B$: Vektoren der Basis $B$ \item $_CT_B = {_CT} \cdot T_B$ \item $(_CT_B)^{-1} = {_BT_C}$ \item $[v]_C = {_CT_B}\cdot[v]_B$ \item $C=B\cdot {_CT_B}$ \end{itemize} -\subsection{Diagonalisierung (Eigenwerte und Eigenvektoren)} +\section{Diagonalisierung (Eigenwerte und Eigenvektoren)} Gegeben: Quadratische Matrix $A \in \mathbb{R}^{n\times n}$.\\ Gilt $Av = \lambda v$ mit $v\ne 0$, so nennt man \begin{itemize}\itemsep0pt @@ -465,7 +441,7 @@ \subsection{Diagonalisierung (Eigenwerte und Eigenvektoren)} \item Eine symmetrische Matrix hat nur reelle Eigenwerte und ist diagonalisierbar. \item Die Determinante einer Matrix ist gleich dem Produkt der Eigenwerte: $\det(A)=\lambda_1\dots\lambda_n$ \end{itemize} -\subsubsection{Rezept: Diagonalisieren} +\subsection{Rezept: Diagonalisieren} Gegeben: $A\in \mathbb{R}^{n\times n}$ \begin{enumerate}\itemsep0pt \item Bestimme das charakteristische Polynom von $A$ @@ -496,7 +472,15 @@ \subsubsection{Rezept: Diagonalisieren} D=B^{-1}AB \ \Leftrightarrow \ A=BDB^{-1} \end{equation*} \end{enumerate} -\subsection{QR-Zerlegung} +\subsection{Orthogonale Diagonalisierbarkeit} +Eine symmetrische Matrix $A \in \mathbb{R}^{n \times n}$ ist orthogonal diagonalisierbar. +\begin{equation*} +D=Q^{T}AQ \ \Leftrightarrow \ A=QDQ^{T} +\end{equation*} +Um $Q$ zu erhalten zuerst die Eigenvektoren zum selben Eigenwert orthonormalisieren (Gram-Schmidt). +Eigenvektoren zu unterschiedlichen Eigenwerten sind orthogonal und müssen nur noch normiert werden. +\section{QR-Zerlegung} +\begin{minipage}{\columnwidth} $A = QR$, wobei $Q$ orthogonal und R oben dreieckig.\\ \textbf{Vorgehen} \begin{itemize}\itemsep0pt @@ -504,7 +488,8 @@ \subsection{QR-Zerlegung} \item Die Koeffizienten von $R$ ergeben sich aus den Gram-Schmidt Gleichungen wie folgt: $r_{i,i}=||c_i||^2$ und $r_{i,j}=\frac{\langle v_j,c_i \rangle}{r_{i,i}}$ \item Alternativ gilt: $R = Q^TA$ \end{itemize} -\subsection{Kleinstes-Quadrate-Problem} +\end{minipage} +\section{Kleinstes-Quadrate-Problem} Für $Ax = b$ lautet die \textbf{Normalengleichung} $A^TAx^* = A^Tb$\\ @@ -512,7 +497,7 @@ \subsection{Kleinstes-Quadrate-Problem} \textbf{Lösen} durch Gauß oder Umstellen: $x^* = (A^TA)^{-1}A^Tb$\\ Für $A=QR$ lautet die Lösung $x^* = R^{-1}Q^Tb$\\ $\Rightarrow$ optimale Lösung mit minimalem quadratischen Fehler (existiert immer). -\subsubsection{Rezept: Quadratische Funktion finden} +\subsection{Rezept: Quadratische Funktion finden} Gegeben: mehrere Punkte ($x_i, y_i$) im Koordinatensystem\\ Gesucht: Koeffizienten $\mathtt{a}, \mathtt{b}, \mathtt{c}$ für $f(x)=\mathtt{a}\cdot x^2+\mathtt{b}\cdot x+\mathtt{c}\cdot 1=y$\\ \textbf{Vorgehen:} @@ -522,19 +507,19 @@ \subsubsection{Rezept: Quadratische Funktion finden} x_2^2 & x_2 & 1 \\[3pt] \vdots & \vdots & \vdots \end{pmatrix}$ \\ -\textit{Für eine lineare Funktion erste Spalte von $A$ streichen} +\textit{Falls lineare Funktion gesucht: erste Spalte von $A$ streichen} \item Lösungsvektor $x^*$ mithilfe von $A$ und $b$ berechnen \item $x^*=(\mathtt{a}, \mathtt{b}, \mathtt{c})^\top \rightarrow \ f(x)=\mathtt{a}x^2+\mathtt{b}x+\mathtt{c}$ \end{enumerate} %\textbf{Lineare Funktion $(bx+c)$:} erste Spalte von $A$ streichen. $x^*=(\mathtt{b}, \mathtt{c})^\top$ -\subsection{Singulärwertzerlegung} +\section{Singulärwertzerlegung} Bei der Singulärwertzerlegung wird eine beliebige Matrix $A\in \mathbb{R}^{m\times n}$ als Produkt dreier Matrizen $V$, $\Sigma$ und $W$ geschrieben \begin{equation*} A=V\Sigma W^\top \end{equation*} mit $V\in \mathbb{R}^{m\times m}$, $\Sigma\in \mathbb{R}^{m\times n}$ und $W\in \mathbb{R}^{n\times n}$.\\ $V$ und $W$ sind orthogonal, $\Sigma$ ist eine Diagonalmatrix. -\subsubsection{Rezept: Singulärwertzerlegung} +\subsection{Rezept: Singulärwertzerlegung} Gegeben: $A\in \mathbb{R}^{m\times n}$ \begin{enumerate}\itemsep0pt \item Bestimme alle Eigenwerte $\lambda_j$ und Eigenvektoren $w_j$ der Matrix $A^\top A\in \mathbb{R}^{n\times n}$ und ordne sie \\ $\lambda_1\ge\lambda_2\ge \dots \ge \lambda_r>\lambda_{r+1}=\dots=\lambda_n=0$ mit $r\le n$ @@ -568,18 +553,18 @@ \subsubsection{Rezept: Singulärwertzerlegung} orthogonal. \item $A=V\Sigma W^\top$ \end{enumerate} -\subsubsection{Kompression} +\subsection{Kompression} \begin{itemize}\itemsep0pt -\item Rang k Matrix $A_{(k)}=V\Sigma_{(k)}W^\top$. Die Matrix $\Sigma_{(k)}$ enthält nur die Singulärwerte $\sigma_1, ...,\sigma_k$. ($\sigma_{k+1}, ...,\sigma_{n/m}$ mit 0 ersetzen).\\ +\item Rang k Matrix $A_{(k)}=V\Sigma_{(k)}W^\top$. Die Matrix $\Sigma_{(k)}$ enthält nur die Singulärwerte $\sigma_1, ...,\sigma_k$.\qquad ($\sigma_{k+1}, ...,\sigma_{n/m}$ mit 0 ersetzen).\\ \item Frobenius-Norm $|| A ||_F = \sqrt[]{\sum_{i=1}^{m} \sum_{j=1}^{n} {a^{2}_{i,j}}}$\\ \item Es gilt: $|| A-A_{(k)} ||_F \leq || A-B ||_F$ mit $B$ als eine beliebige Matrix des $\mathbb{R}^{m\times n}$ mit $rang(B) \leq rang(A_{(k)}) = k$ \item Speicheraufwand einer Matrix $A\in \mathbb{R}^{m\times n}$: $rang(A) \cdot (m+n)$ \end{itemize} -\subsection{Lineare Differentialgleichungen und Rekursive Folgen} -\subsubsection{Lösen einer linearen Differentialgleichung} +\section{Lineare Differentialgleichungen \& Rekursive Folgen} +\subsection{Lösen einer linearen Differentialgleichung} Gegeben: $y'(t) = \lambda y(t)$, mit $y(0) = c$\\ Lösung: $y(t) = ce^{\lambda t}$ mit $c \in \mathbb R$\\ -\subsubsection{Lösen eines Systems linearer Differentialgleichungen} +\subsection{Lösen eines Systems linearer Differentialgleichungen} Gegeben: $y'(t) = Ay$, mit $y_1(0) , ..., y_n(0)$\\ Wobei $A \in \mathbb R^{nxn}, y_1(0) , ..., y_n(0) \in \mathbb R, y,y'\in\mathbb R^n$.\\ Lösung:\\ @@ -593,7 +578,7 @@ \subsubsection{Lösen eines Systems linearer Differentialgleichungen} = c_1e^{\lambda_1t}v_1+...+c_ne^{\lambda_nt}v_n$. \item Anfangswerte einsetzen und Werte für $c_1$, bis $c_n$ bestimmen. \end{enumerate} -\subsubsection{Rekursive Folgen} +\subsection{Rekursive Folgen} Gegeben: $x_{n+1} = {\alpha} x_n + {\beta} x_{n-1}$, Anfangswerte: $x_0$, $x_1$\\ Lösung:\\ \begin{enumerate} @@ -627,8 +612,8 @@ \subsubsection{Rekursive Folgen} x_{0}\end{pmatrix} \end{equation*} \end{enumerate} -\subsection{Definitheit und Quadratische Funktionen} -\subsubsection{Definitheit} +\section{Definitheit und Quadratische Funktionen} +\subsection{Definitheit} Eine symmetrische Matrix $A \in\mathbb R^{n\times n}$ mit den Eigenwerten (EW) $\lambda_1, ..., \lambda_n$ heißt: \begin{itemize}\itemsep0pt \item positiv definit: EW positiv $<=> v^{\top}Av> 0,\quad\forall v \in\mathbb R^n\backslash \{0\}$ @@ -636,7 +621,7 @@ \subsubsection{Definitheit} \item positiv semidefinit: EW $\geq 0 <=> v^{\top}Av\geq 0,\quad\forall v \in\mathbb R^n$ \item negativ semidefinit: EW $\leq 0 <=> v^{\top}Av\leq 0,\quad\forall v \in\mathbb R^n$ \end{itemize} -\subsubsection{Quadratische Funktionen} +\subsection{Quadratische Funktionen} \textbf{Form:} $f(x)=x^{\top}Ax+b^{\top}x+c = \langle x,Ax \rangle + \langle b,x \rangle + c$\\ Berechnen von Extrempunkten: \begin{itemize}\itemsep0pt @@ -645,7 +630,6 @@ \subsubsection{Quadratische Funktionen} \item positiv/negativ semidefinit: Existenz von Extremum hängt von Lösbarkeit des LGS $2Ax=-b$ ab. (nicht eindeutig!) \end{itemize} -\end{multicols*} % Ende der Spalten diff --git a/scripts/__init__.py b/scripts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scripts/requirements.txt b/scripts/requirements.txt new file mode 100644 index 0000000..fe79a98 --- /dev/null +++ b/scripts/requirements.txt @@ -0,0 +1,2 @@ +pyfakefs==5.3.5 +pytest==8.1.1 diff --git a/scripts/tests/__init__.py b/scripts/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scripts/tests/test_update_files.py b/scripts/tests/test_update_files.py new file mode 100644 index 0000000..efbc556 --- /dev/null +++ b/scripts/tests/test_update_files.py @@ -0,0 +1,75 @@ +import pytest +from scripts.update_files import check_tex_file_exists, update_readme_content, update_cmake_content +from pathlib import Path +import os + +@pytest.fixture +def fake_base_path(fs): + """Fixture to create a base path and mock environment variable.""" + base_path = Path("/test/project") + fs.create_dir(base_path) + os.environ['GITHUB_REPOSITORY'] = 'user/correct_title' + return base_path + +def test_check_tex_file_exists__file_does_not_exist__should_raise(fake_base_path, fs): + repo_name = "correct_title" + fs.create_file(fake_base_path / f"{repo_name}.tex") + check_tex_file_exists(repo_name, fake_base_path) + + with pytest.raises(FileNotFoundError): + check_tex_file_exists("nonexistent_repo", Path(fake_base_path)) + +def test_update_readme_content(fake_base_path, fs): + initial_readme_content = """ + # WrongTitle + Some content in the README file. + [![Actions Status](https://github.com/latex4ei/WrongCheatsheetTemplate/workflows/CI/badge.svg)](https://github.com/latex4ei/WrongCheatsheetTemplate) + ## Section + More details here. + """.strip() + fs.create_file(fake_base_path / "README.md", contents=initial_readme_content) + repo_name = "correct_title" + github_repository = 'user/correct_title' + + updated_content = update_readme_content(initial_readme_content, repo_name, github_repository) + + expected_content = """ + # correct_title + Some content in the README file. + [![Actions Status](https://github.com/user/correct_title/workflows/CI/badge.svg)](https://github.com/user/correct_title) + ## Section + More details here. + """.strip() + assert updated_content == expected_content, "README.md content was not updated correctly." + +def test_update_cmake_content(fake_base_path, fs): + initial_cmake_content = """ + cmake_minimum_required(VERSION 3.12) + project(WrongProjectName NONE) + # Add the main LaTeX document + add_latex_document( + CheatsheetTemplate.tex + AnotherDoc.tex + FORCE_PDF + IMAGE_DIRS img + DEPENDS writegitid + ) + """.strip() + fs.create_file(fake_base_path / "CMakeLists.txt", contents=initial_cmake_content) + repo_name = "correct_title" + + updated_content = update_cmake_content(initial_cmake_content, repo_name) + + expected_content = """ + cmake_minimum_required(VERSION 3.12) + project(correct_title NONE) + # Add the main LaTeX document + add_latex_document( + correct_title.tex + AnotherDoc.tex + FORCE_PDF + IMAGE_DIRS img + DEPENDS writegitid + ) + """.strip() + assert updated_content == expected_content, "CMakeLists.txt content was not updated correctly." diff --git a/scripts/update_files.py b/scripts/update_files.py new file mode 100644 index 0000000..ab0c3e1 --- /dev/null +++ b/scripts/update_files.py @@ -0,0 +1,42 @@ +from pathlib import Path +import re +import os +import sys + +def check_tex_file_exists(repo_name: str, base_path: Path): + """Check if a .tex file with the same name as the repository exists.""" + tex_file_path = base_path / f"{repo_name}.tex" + if not tex_file_path.exists(): + msg = f"No .tex file found with the name {tex_file_path.name}. File name must match repo name." + raise FileNotFoundError(msg) + +def update_readme_content(content: str, repo_name: str, github_repository: str) -> str: + """Updates the README.md content.""" + content = re.sub(r'^# .+', f'# {repo_name}', content, count=1, flags=re.MULTILINE) + actions_status_line = f'[![Actions Status](https://github.com/{github_repository}/workflows/CI/badge.svg)](https://github.com/{github_repository})' + return re.sub(r'\[!\[Actions Status\].*', actions_status_line, content) + +def update_cmake_content(content: str, repo_name: str) -> str: + """Updates the CMakeLists.txt content.""" + content = re.sub(r'project\(([^ ]*)', f'project({repo_name}', content, count=1) + return re.sub(r'^( *)[^\s#].*?\.tex', r'\1' + f'{repo_name}.tex', content, flags=re.MULTILINE, count=1) + +def main(github_repository: str): + repo_name = Path(github_repository).name + base_path = Path(__file__).parent.parent + + check_tex_file_exists(repo_name, base_path) + + readme_path = base_path / 'README.md' + cmake_path = base_path / 'CMakeLists.txt' + + readme_content = readme_path.read_text() + updated_readme_content = update_readme_content(readme_content, repo_name, github_repository) + readme_path.write_text(updated_readme_content) + + cmake_content = cmake_path.read_text() + updated_cmake_content = update_cmake_content(cmake_content, repo_name) + cmake_path.write_text(updated_cmake_content) + +if __name__ == "__main__": + main(os.getenv('GITHUB_REPOSITORY')) diff --git a/write-gitid.sh b/write-gitid.sh index 85d217d..b441cae 100755 --- a/write-gitid.sh +++ b/write-gitid.sh @@ -11,4 +11,13 @@ fi GITREV=$(git rev-list HEAD --count) echo "\\def\\GitRevision{$GITREV}"> git.id -git show -s --format=%ci | xargs -I var_d $DATEBIN -d "var_d" +\\def\\GitNiceDate{%-d.\ %B\ %Y\ um\ %H:%M\ Uhr} >> git.id +git show -s --format=%ci | xargs -I var_d $DATEBIN -d "var_d" +\\def\\GitNiceDate{%-d.\ %B\ %Y} >> git.id + +# Get the repository's remote URL +REPO_URL=$(git remote get-url origin) + +# Convert SSH URL to HTTPS URL and append /issues for the issues page +# This also ensures it works for URLs ending with .git and without +ISSUES_URL=$(echo $REPO_URL | sed -e 's/^git@github\.com:/https:\/\/github\.com\//' -e 's/\.git$//' -e 's/$/\/issues/') + +echo "\\def\\GitIssuesURL{$ISSUES_URL}" >> git.id From 2a9a4041ae03e0d37d3ce8bbf5ba92c0503ac656 Mon Sep 17 00:00:00 2001 From: Darius Peters <38152878+dariusptrs@users.noreply.github.com> Date: Mon, 1 Apr 2024 15:08:04 +0200 Subject: [PATCH 05/18] update template + add orth. diag Update Lineare-Algebra.tex --- .../ISSUE_TEMPLATE/inhaltlicher_fehler.yaml | 1 - .github/workflows/ci.yml | 32 ++- .github/workflows/update.yml | 38 +++ .gitignore | 2 + Lineare-Algebra.tex | 219 +++++++++--------- scripts/__init__.py | 0 scripts/requirements.txt | 2 + scripts/tests/__init__.py | 0 scripts/tests/test_update_files.py | 75 ++++++ scripts/update_files.py | 42 ++++ write-gitid.sh | 11 +- 11 files changed, 302 insertions(+), 120 deletions(-) create mode 100644 .github/workflows/update.yml create mode 100644 scripts/__init__.py create mode 100644 scripts/requirements.txt create mode 100644 scripts/tests/__init__.py create mode 100644 scripts/tests/test_update_files.py create mode 100644 scripts/update_files.py diff --git a/.github/ISSUE_TEMPLATE/inhaltlicher_fehler.yaml b/.github/ISSUE_TEMPLATE/inhaltlicher_fehler.yaml index e994e5e..95b8d1e 100644 --- a/.github/ISSUE_TEMPLATE/inhaltlicher_fehler.yaml +++ b/.github/ISSUE_TEMPLATE/inhaltlicher_fehler.yaml @@ -1,6 +1,5 @@ name: Inhaltlicher Fehler description: Hilf uns Fehler zu Verbessern -title: '' labels: [bug] assignees: [] diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6b70f6d..ff9e20c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,34 +2,56 @@ name: CI on: push: - branches: [ master ] + branches: [ master, main ] pull_request: - branches: [ master ] - + branches: [ master, main ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.12.2' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r scripts/requirements.txt + - name: Run pytest + run: pytest + build: runs-on: ubuntu-latest container: makeappdev/uselatex:latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Configure Git safe directory with GITHUB_WORKSPACE + run: git config --global --add safe.directory $GITHUB_WORKSPACE + - name: Build run: | cmake --version; pdflatex --version mkdir -p build && cd build cmake .. make + - name: Prepare Deployment - if: github.ref == 'refs/heads/master' + if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' run: | mkdir -p export echo "# This branch is for deployment only" >> export/README.md cp build/*.pdf export cp build/git.id export + - name: Deploy - if: github.ref == 'refs/heads/master' + if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' uses: JamesIves/github-pages-deploy-action@v4.5.0 with: branch: gh-pages diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml new file mode 100644 index 0000000..9fe823a --- /dev/null +++ b/.github/workflows/update.yml @@ -0,0 +1,38 @@ +name: Update README and LaTeX Build File + +on: + workflow_dispatch: + +jobs: + update-and-create-pr: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.12.2' + + - name: Run update script + run: python scripts/update_files.py + + - name: Configure Git + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + + - name: Commit changes to a new branch + run: | + git checkout -b changes/${{ github.run_id }} + git add . + git commit -m "Apply automated updates" + git push -u origin changes/${{ github.run_id }} + + - name: Create Pull Request + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh pr create --base main --head changes/${{ github.run_id }} --title "Specify project URLs and CMake project" --body "Please review the changes applied by the automated script." diff --git a/.gitignore b/.gitignore index a4539ab..6751f5c 100644 --- a/.gitignore +++ b/.gitignore @@ -112,3 +112,5 @@ sympy-plots-for-*.tex/ # xindy *.xdy StochastischeSignale.pdf +git.id +*.DS_Store diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index f533822..d14957c 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -5,88 +5,59 @@ % ====================================================================== % Dokumentklasse (Schriftgröße 6, DIN A4, Artikel) -\documentclass[6pt,a4paper]{scrartcl} +\documentclass[ngerman, 6pt]{latex4ei/latex4ei_sheet} +\title{Lineare Algebra} +\author{Lukas Kompatscher} +\myemail{lukas.kompatscher@tum.de} +\mywebsite{www.latex4ei.de} % Pakete laden -\usepackage[utf8]{inputenc} % Zeichenkodierung: UTF-8 (für Umlaute) -\usepackage[german]{babel} % Deutsche Sprache -\usepackage{multicol} % Spaltenpaket -\usepackage{amsmath} -\usepackage{amssymb} -\usepackage{esint} % erweiterte Integralsymbole -\usepackage{multicol} % ermöglicht Seitenspalten -\usepackage{wasysym} % Blitz -\usepackage{graphicx} -\usepackage[colorlinks=true, urlcolor=black]{hyperref} +\usepackage{setspace} % Seitenlayout und Ränder: -\usepackage{geometry} -\geometry{a4paper,landscape, left=6mm,right=6mm, top=0mm, bottom=3mm,includeheadfoot} - -%Kopf- und Fußzeile -\usepackage{fancyhdr} -\pagestyle{fancy} -\fancyhf{} - - \fancyfoot[C]{\textbf{Lineare Algebra} von Lukas Kompatscher (\href{mailto:lukas.kompatscher@tum.de}{lukas.kompatscher@tum.de})} - \renewcommand{\headrulewidth}{0.0pt} %obere Linie ausblenden - \renewcommand{\footrulewidth}{0.1pt} %untere Linie - - \fancyfoot[R]{Stand: \today \qquad \thepage} - \fancyfoot[L]{Homepage: www.latex4ei.de - Fehler bitte sofort melden.} - -% Schriftart SANS für bessere Lesbarkeit bei kleiner Schrift -\renewcommand{\familydefault}{\sfdefault} - +\titlespacing*{\section}{0pt}{2pt}{2pt} +\titlespacing*{\subsection}{.5pt}{1pt}{2pt} +\setstretch{1.1} +\titleformat*{\section}{\large\bfseries} +\titleformat*{\subsection}{\normalsize\bfseries} +\colorlet{col_section}{black} % Custom Commands -\renewcommand{\thesubsection}{\arabic{subsection}} \newcommand{\me}[1]{\ensuremath{\left\{#1\right\}}} \newcommand{\dme}[2]{\ensuremath{\left\{#1\,\vert\,#2 \right\}}} -\newcommand{\abs}[1]{\ensuremath{\left\vert#1\right\vert}} \newcommand{\un}[1]{\; \unit{#1} } \newcommand{\unf}[2]{\;\left[ \unitfrac{#1}{#2} \right]} -\newcommand{\norm}[2][\relax]{\ifx#1\relax \ensuremath{\left\Vert#2\right\Vert}\else \ensuremath{\left\Vert#2\right\Vert_{#1}}\fi} \newcommand{\enbrace}[1]{\ensuremath{\left(#1\right)}} \newcommand{\nira}[1]{\ensuremath{\overset{n \rightarrow \infty}{\longrightarrow}}} \newcommand{\os}[2]{\ensuremath{\overset{#1}{#2}}} \makeatletter -\newcommand{\Ra}[0]{\ensuremath{\Rightarrow}} -\newcommand{\ra}[0]{\ensuremath{\rightarrow}} \newcommand{\gk}[1]{\ensuremath{\left\lfloor#1\right\rfloor}} -\newcommand{\sprod}[2]{\ensuremath{% - \setbox0=\hbox{\ensuremath{#2}} - \dimen@\ht0 - \advance\dimen@ by \dp0 - \left\langle #1\rule[-\dp0]{0pt}{\dimen@},#2\right\rangle}} %Custom functions \DeclareMathOperator{\arccot}{arccot} \DeclareMathOperator{\im}{im} -\DeclareMathOperator{\diag}{diag} \DeclareMathOperator{\rang}{rang} \DeclareMathOperator{\col}{col} \DeclareMathOperator{\row}{row} \DeclareMathOperator{\Kern}{kern} \DeclareMathOperator{\proj}{proj} - - % Dokumentbeginn % ====================================================================== \begin{document} + +\IfFileExists{git.id}{\input{git.id}}{} +\ifdefined\GitRevision\mydate{\GitNiceDate\ (git \GitRevision)}\fi +\ifdefined\GitIssuesURL + \ifdefined\setissueslinkurl + \setissueslinkurl{\GitIssuesURL} % Set the actual URL + \fi +\fi + %\section{} % ---------------------------------------------------------------------- - -% Aufteilung in Spalten -\begin{multicols*}{4} -\parbox{2.3cm}{ - \includegraphics[height=2cm]{./img/Logo.pdf} -} -\parbox{4cm}{ - \huge{\textbf{Lineare Algebra}} -} -\subsection{Allgemeines} % (fold) +\maketitle +\section{Allgemeines} % (fold) \label{sub:allgemeines} Dreiecksungleichung \qquad \qquad \qquad @@ -99,21 +70,20 @@ \subsection{Allgemeines} % (fold) \end{array}\end{math}\\ $\mathbb{K}$ steht für $\mathbb{R}$ und $\mathbb{C}$\\ $\mathbb{I}_n$ ist die $nxn$-Einheitsmatrix. \qquad$e_i$ ist der i-te Einheitsvektor. -\subsection{Matrizen} +\section{Matrizen} % ---------------------------------------------------------------------- Die Matrix $A=(a_{ij}) \in \mathbb K^{m\times n}$ hat $m$ Zeilen mit Index $i$ und $n$ Spalten mit Index $j$. -\subsubsection{Allgemeine Rechenregeln} -\textbf{Merke:} Zeile vor Spalte! (Multiplikation, Indexreihenfolge, etc.)\\ - +\subsection{Allgemeine Rechenregeln} +\textbf{Merke:} Zeile vor Spalte! (Multiplikation, Indexreihenfolge, etc.) \begin{tabular}{ll} 1) $A+0=A$ & 2) $1 \cdot A=A$ \\ 3) $A+B=B+A$ & 4) $A \cdot B \ne B \cdot A$ (im Allg.) \\ 5) $(A+B)+C=A+(B+C)$ & 6) $\lambda (A+B) = \lambda A + \lambda B$\\ -\end{tabular} +\end{tabular}\\ Multiplikation von $A\in \mathbb K^{m\times r}$ und $B\in \mathbb K^{r\times n}$: $AB\in\mathbb K^{m\times n}$ -\subsubsection{Elementare Zeilenumformungen (EZF) (gilt äquiv. für Spalten)} +\subsection{Elementare Zeilenumformungen (EZF) (gilt äquiv. für Spalten)} $A \in \mathbb K^{m\times n}$ hat $m$ Zeilen $z_i\in \mathbb K^n$ \begin{itemize}\itemsep0pt \item Vertauschen von Zeilen @@ -121,7 +91,7 @@ \subsubsection{Elementare Zeilenumformungen (EZF) (gilt äquiv. für Spalten)} \item Addition des $\lambda$-fachen der Zeile $z_i$ zur Zeile $z_j$ \end{itemize} -\subsubsection{Transponieren} +\subsection{Transponieren} $A=(a_{ij})\ \in \mathbb K^{m\times n}$ gilt: $A^\top=(a_{ji})\ \in \mathbb K^{n\times m}$\\ \textbf{Regeln:}\\ $(A+B)^\top=A^\top+B^\top$\qquad $(A\cdot B)^\top=B^\top\cdot A^\top$\qquad \\ @@ -134,8 +104,8 @@ \subsubsection{Transponieren} $A\in \mathbb C^{n\times n}$ ist hermitesch, falls $A=\overline{A}^\top$ \quad (kmplx. konj. u. transp.) -\subsubsection{Inverse Matrix von $A\in \mathbb K^{n\times n}$} -Für die inverse Matrix $A^{-1}$ von $A$ gilt: $A^{-1}A=\mathbb{I}_n$\\ +\subsection{Inverse Matrix} +Für die inverse Matrix $A^{-1}$ von $A\in \mathbb K^{n\times n}$ gilt: $A^{-1}A=\mathbb{I}_n$\\ $(A^{-1})^{-1}=A$ \qquad $(AB)^{-1}=B^{-1}A^{-1}$ \\ $(A^\top)^{-1}=(A^{-1})^\top$\\ \\ @@ -151,8 +121,9 @@ \subsubsection{Inverse Matrix von $A\in \mathbb K^{n\times n}$} -c & a \end{pmatrix}$ -\subsubsection{Rang einer Matrix $A\in \mathbb K^{m\times n}$} -{\tiny (N0-Zeilen = Nicht-Null-Zeilen)}\\ \\ +\subsection{Rang einer Matrix} +$A\in \mathbb K^{m\times n}$ +{(N0-Zeilen = Nicht-Null-Zeilen)}\\ \\ \begin{minipage}{\columnwidth} \textbf{Bringe A auf ZSF} \\ Rang (Zeilrang) $\rang(A)$: Anzahl N0-Zeilen \\ @@ -166,7 +137,7 @@ \subsubsection{Rang einer Matrix $A\in \mathbb K^{m\times n}$} Spaltenraum $\col(A)$: Erzeugnis der Spalten, $\text{Basis}(\col(A)) = \{\text{ N0-Spalten }\}$ \\ Bild = Spaltenraum: Erzeugnis der Spalten \end{minipage} -\subsubsection{Matrixpotenzen} +\subsection{Matrixpotenzen} Gegeben: $A \in\mathbb{R}^{mxn}, x \in\mathbb{R}^n$.\\ Gesucht: Lösung von $A^n$.\\ \begin{itemize} @@ -184,7 +155,7 @@ \subsubsection{Matrixpotenzen} \end{pmatrix}$. \end{itemize} -\subsubsection{Lineares Gleichungssystem LGS} +\subsection{Lineares Gleichungssystem LGS} Das LGS $Ax=b$ kurz $(A|b)$ mit $A\in \mathbb K^{m\times n}$, $x\in \mathbb K^n$, $b\in \mathbb K^m$ hat $m$ Gleichungen und $n$ Unbekannte.\\ \\ \textbf{Lösbarkeitskriterium:}\\ @@ -195,8 +166,8 @@ \subsubsection{Lineares Gleichungssystem LGS} Das homogene LGS: $(A|0)$ hat stets die triviale Lösung $0$\\ Summen und Vielfache der Lösungen von $(A|0)$ sind wieder Lösungen. -\subsubsection{Determinante von $A\in \mathbb K^{n\times n}$: $\det(A)=|A|$} - +\subsection{Determinante} +$A\in \mathbb K^{n\times n}$: $\det(A)=|A|$ \begin{itemize}\itemsep0pt \item $|A|=\sum\limits_{i\text{ oder }j=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \\ Entwicklung nach $j$-ter Spalte oder $i$-ter Zeile @@ -218,20 +189,21 @@ \subsubsection{Determinante von $A\in \mathbb K^{n\times n}$: $\det(A)=|A|$} \end{itemize} \textbf{Vereinfachung für Spezialfall $A\in \mathbb K^{2\times 2}$}\\ $A=\begin{pmatrix}a&b\\c&d\end{pmatrix} \Rightarrow \det(A)=|A|=ad-bc$ - -\subsubsection{Äquivalente Aussagen für $A\in \mathbb K^{n\times n}$} +\subsection{Hauptsatz invertierbarer quadratischer Matrizen} \begin{tabular}{ll} 1) $A$ ist invertierbar & 2) $\dim(\col(A))=\dim(\row(A))=n$\\ 3) $\Kern(A)={0}$ & 4) Die strenge ZSF von $A$ ist $\mathbb{I}_n$\\ - 5) $\det(A)\ne0$ & 6) Zeilen/Spalten von $A$ linear unabhängig\\ - 7) $Ax=b$ hat eine & 8) 0 ist kein Singulärwert von $A$\\\ \ \ \ eindeutige Lösung $\forall b\in\mathbb{R}^n$ & 9) Lineare Abbildung ist bijektiv\\ - 10) $\rang(A)=n$ & 11) 0 ist kein Eigenwert von $A$\\ - -\end{tabular} - -\subsection{Vektoren} + 5) $\det(A)\ne0$ & 6) Zeilen/Spalten von $A$ linear unabh.\\ + 7) $Ax=b$ hat eine & 8) $0$ ist kein Singulärwert von $A$\\\ \ \ \ eindeutige Lösung $\forall b\in\mathbb{R}^n$ & 9) Lineare Abbildung ist bijektiv\\ + 10) $\rang(A)=n$ & 11) $0$ ist kein Eigenwert von $A$\\ + 12) $\col(A)=\mathbb{R}^n$ & 13) $A$ ist Produkt elementarer Matrizen\\ +\end{tabular}\\ \\ +\textit{Ist eine dieser Aussagen wahr, so sind alle Aussagen wahr!} +\section{Vektoren} +\begin{minipage}{\columnwidth} Ein Vektor ist ein $n$-Tupel reeller oder komplexer Zahlen, also ein Element aus dem $\mathbb K^n$. -\subsubsection{Skalarprodukt $\langle v,w \rangle: V\times V \rightarrow \mathbb R$} +\subsection{Skalarprodukt} +$\langle v,w \rangle: V\times V \rightarrow \mathbb R$ \begin{enumerate}\itemsep0pt \item Linear: $\langle u,v+w \rangle=\langle u,v \rangle + \langle u,w \rangle \land \langle u,\lambda v \rangle = \lambda \langle u, v \rangle$ \item Symmetrisch: $\langle v,w \rangle=\langle w,v \rangle$ @@ -248,8 +220,8 @@ \subsubsection{Skalarprodukt $\langle v,w \rangle: V\times V \rightarrow \mathbb $v = \proj_a(v) + \proj_{a^\perp}(v) \Rightarrow \proj_{a^\perp}(v) = v - \proj_a(v)$\\ \textbf{Winkel} \quad $\cos \phi = \frac{\sprod{a}{b}}{\norm{a} \norm{b}} $ \qquad $\phi = \arccos \enbrace{ \frac{\sprod{a}{b} }{\norm{a} \norm{b} } }$ - -\subsubsection{Kreuzprodukt (Vektorprodukt)} +\end{minipage} +\subsection{Kreuzprodukt (Vektorprodukt)} $a\times b=\left( \begin{matrix} a_2b_3-a_3b_2\\a_3b_1-a_1b_3\\a_1b_2-a_2b_1\end{matrix}\right)$\qquad $a,b\ \in \mathbb R^3$\\ \\ $a\times b \perp a,b$ \qquad (falls $a\times b=0\ \Leftrightarrow\ a,b$\ linear abhängig)\\ @@ -261,7 +233,7 @@ \subsubsection{Kreuzprodukt (Vektorprodukt)} $[a,b,c]:=\langle a\times b, c\rangle=\det (a,b,c)\mathrel{\widehat{=}}$\ Volumen des Spates.\\ $[a,b,c]>0\ \Leftrightarrow\ a,b,c$\ bilden Rechtssystem \\ $[a,b,c]=0\ \Leftrightarrow\ \{a,b,c\}$\ linear abhängig -\subsection{Vektorräume (VR)} +\section{Vektorräume (VR)} % -------------------------------------------------------------- Eine nichtleere Menge V mit zwei Verknüpfungen $+$ und $\cdot$ heißt $K$-Vektorraum über dem Körper $\mathbb K$. \\ \textbf{Bedingung $(u,v,w\in V \quad \lambda,\mu \in \mathbb{R})$} @@ -276,14 +248,15 @@ \subsection{Vektorräume (VR)} \item $(\lambda \mu)v = \lambda(\mu v)$ \item $1v=v$ \end{enumerate}\itemsep0pt -\subsubsection{Untervektorraum (UVR) $U\subset V (u,v\in U \quad \lambda\in\mathbb{R})$} +\subsection{Untervektorraum (UVR)} +$U\subset V (u,v\in U \quad \lambda\in\mathbb{R})$ \begin{enumerate}\itemsep0pt \item $U\ne \emptyset \qquad (0\in U)$ \item $u+v\in U$ \item $\lambda u \in U$ \end{enumerate} -\subsubsection{Basis (Jeder VR und jeder UVR besitzt eine Basis!)} % (fold) +\subsection{Basis (Jeder VR und jeder UVR besitzt eine Basis!)} % (fold) \label{sub:basis} Eine Teilmenge $B\subset V$ heißt Basis von $V$, wenn gilt: \begin{itemize}\itemsep0pt @@ -291,12 +264,12 @@ \subsubsection{Basis (Jeder VR und jeder UVR besitzt eine Basis!)} % (fold) \item $B$ ist linear unabhängig \end{itemize} -\subsubsection{Dimension} +\subsection{Dimension} $n=\dim(V)=\abs{B} = $ Mächtigkeit von $B$\\ Mehr als $n$ Vektoren aus $V$ sind stets linear abhängig. \\ Für jeden UVR $U \subset V$ gilt: $\dim (U) \le \dim (V)$ -\subsubsection{Linearkombination} +\subsection{Linearkombination} Jeder Vektor $v\in\mathbb{K}^n$ kann als Linearkombination einer Basis $B=\{b_1, \dots, b_n\} \subset \mathbb{K}^n$ dargestellt werden \begin{equation*} v=\lambda_1 b_1 + \dots + \lambda_n b_n \Rightarrow \text{Gauß} \ \Big(b_1 \ b_2 \ b_3 \ |\ v\ \Big) @@ -305,7 +278,7 @@ \subsubsection{Linearkombination} Vektoren heißen linear unabhängig, wenn aus: \\ $\lambda_1 v_1 + \dots + \lambda_n v_n = 0$ folgt, dass $\lambda_1 = \dots = \lambda_n = 0$ -\subsubsection{Orthogonalität} +\subsection{Orthogonalität} $B\subset V$ heißt \begin{itemize}\itemsep0pt \item \textbf{Orthogonalsystem}, wenn $\forall v,w\in B: v\perp w$ @@ -315,7 +288,7 @@ \subsubsection{Orthogonalität} \end{itemize} Eine \textbf{quadratische Matrix $A$ heißt orthogonal}, wenn $A^\top A = \mathbb{I}_n$ \begin{tabular}{p{0.45\linewidth}p{0.45\linewidth}} -\begin{itemize} +\begin{itemize}\itemsep6pt \item $A^{-1}=A^\top $ \item $\det{A}=\pm1$ \item Spalten bilden ONB @@ -366,7 +339,7 @@ \subsubsection{Orthogonalität} \item $\proj_U(v)=\lambda_1 b_1 +\dots +\lambda_r b_r$ \end{enumerate} -\subsection{Norm} +\section{Norm} \textbf{Norm von Vektoren} $\norm{a}=\sqrt{\sprod{a}{a}} =\sqrt{a_1^2+a_2^2+\ldots +a_n^2}$\\ $\forall v, w \in \mathbb{R}^n$: @@ -375,7 +348,8 @@ \subsection{Norm} \item $\norm{v+w}\le \norm{v} + \norm{w}$ \end{enumerate} -\subsection{Lineare Abbildungen} +\begin{minipage}{\columnwidth} +\section{Lineare Abbildungen} Abbildung $f:V\rightarrow W$ ist linear, wenn \begin{enumerate}\itemsep0pt \item $f(0)=0$ @@ -386,7 +360,8 @@ \subsection{Lineare Abbildungen} \textbf{Injektiv}, wenn aus $f(x_1)=f(x_2) \Rightarrow x_1=x_2$\\ \textbf{Surjektiv}: $\forall y\in W \ \exists x\in V:f(x)=y$\\ \quad (Alle Werte aus $W$ werden angenommen.)\\ \textbf{Bijektiv}(Eineindeutig): $f$ ist injektiv und surjektiv $\Rightarrow$ $f$ umkehrbar. -\subsubsection{Koordinatenvektor bezüglich einer Basis $B$} +\end{minipage} +\subsection{Koordinatenvektor bezüglich einer Basis $B$} Gegeben: Vektorraum $V \in\mathbb{R}^n$, $v \in V$.\\ Gesucht: $[v]_B$ (Koordinaten von $v$ bezüglich der Basis $B$). \begin{enumerate} @@ -394,7 +369,7 @@ \subsubsection{Koordinatenvektor bezüglich einer Basis $B$} \item Löse das LGS $Bx = v$. \item $[v]_B = x$. \end{enumerate} -\subsubsection{Abbildungsmatrix (Darstellungsmatrix)} +\subsection{Abbildungsmatrix (Darstellungsmatrix)} Lineare Abbildung $f:\mathbb{R}^n \rightarrow \mathbb{R}^m$ \\ Abbildungsmatrix spaltenweise: $[f] = \begin{pmatrix}f(e_1) & \dots & f(e_n) @@ -430,17 +405,18 @@ \subsubsection{Abbildungsmatrix (Darstellungsmatrix)} \item $f$ bijektiv, wenn $[f]$ invertierbar \item $f$ ist bijektiv $\Leftrightarrow f$ ist injektiv $\Leftrightarrow f$ ist surjektiv \end{itemize} -\subsubsection{Transformationsmatrix} +\subsection{Transformationsmatrix} Transformationsmatrix der Koordinaten von $B$ zu $C$: $_CT_B$\\ \textbf{Regeln und Berechnung:} -\begin{itemize} +\begin{itemize}\itemsep2pt \item $_{\mathbb{I}_n}T_B = T_B$: Vektoren der Basis $B$ \item $_CT_B = {_CT} \cdot T_B$ \item $(_CT_B)^{-1} = {_BT_C}$ \item $[v]_C = {_CT_B}\cdot[v]_B$ \item $C=B\cdot {_CT_B}$ \end{itemize} -\subsection{Diagonalisierung (Eigenwerte und Eigenvektoren)} +\begin{minipage}{\columnwidth} +\section{Diagonalisierung (Eigenwerte und Eigenvektoren)} Gegeben: Quadratische Matrix $A \in \mathbb{R}^{n\times n}$.\\ Gilt $Av = \lambda v$ mit $v\ne 0$, so nennt man \begin{itemize}\itemsep0pt @@ -465,7 +441,8 @@ \subsection{Diagonalisierung (Eigenwerte und Eigenvektoren)} \item Eine symmetrische Matrix hat nur reelle Eigenwerte und ist diagonalisierbar. \item Die Determinante einer Matrix ist gleich dem Produkt der Eigenwerte: $\det(A)=\lambda_1\dots\lambda_n$ \end{itemize} -\subsubsection{Rezept: Diagonalisieren} +\end{minipage} +\subsection{Rezept: Diagonalisieren} Gegeben: $A\in \mathbb{R}^{n\times n}$ \begin{enumerate}\itemsep0pt \item Bestimme das charakteristische Polynom von $A$ @@ -496,45 +473,60 @@ \subsubsection{Rezept: Diagonalisieren} D=B^{-1}AB \ \Leftrightarrow \ A=BDB^{-1} \end{equation*} \end{enumerate} -\subsection{QR-Zerlegung} -$A = QR$, wobei $Q$ orthogonal und R oben dreieckig.\\ +\subsection{Orthogonale Diagonalisierbarkeit} +Eine symmetrische Matrix $A \in \mathbb{R}^{n \times n}$ ist orthogonal diagonalisierbar. +\begin{equation*} +D=Q^{T}AQ \ \Leftrightarrow \ A=QDQ^{T} +\end{equation*} +\textbf{Vorgehen} +\begin{itemize} +\item Eigenwerte und Eigenvektoren bestimmten +\item Eigenvektoren zum selben Eigenwert orthonormalisieren (Gram-Schmidt) +\item Eigenvektoren zu unterschiedlichen Eigenwerten sind bereits orthogonal (ggf. noch normieren) +\item $Q=(b_1 \ \dots b_n)$ setzt sich aus den orthonormalen EV zusammen. \\ +$D=\diag(\lambda_1,\dots,\lambda_n)$ ist die Diagonalmatrix der Eigenwerte. +\end{itemize} +\section{QR-Zerlegung} +\begin{minipage}{\columnwidth} +$A = QR$, wobei $Q$ orthonormale Spalten hat und $R$ oben dreieckig ist.\\ \textbf{Vorgehen} \begin{itemize}\itemsep0pt \item $Q$ berechnen durch Gram-Schmidt mit den Spalten von $A$, \textbf{beginnend bei der ersten} \item Die Koeffizienten von $R$ ergeben sich aus den Gram-Schmidt Gleichungen wie folgt: $r_{i,i}=||c_i||^2$ und $r_{i,j}=\frac{\langle v_j,c_i \rangle}{r_{i,i}}$ \item Alternativ gilt: $R = Q^TA$ \end{itemize} -\subsection{Kleinstes-Quadrate-Problem} +\end{minipage} +\section{Kleinstes-Quadrate-Problem} Für $Ax = b$ lautet die \textbf{Normalengleichung} $A^TAx^* = A^Tb$\\ \\ \textbf{Lösen} durch Gauß oder Umstellen: $x^* = (A^TA)^{-1}A^Tb$\\ Für $A=QR$ lautet die Lösung $x^* = R^{-1}Q^Tb$\\ -$\Rightarrow$ optimale Lösung mit minimalem quadratischen Fehler (existiert immer). -\subsubsection{Rezept: Quadratische Funktion finden} +$\Rightarrow$ optimale Lösung mit minimalem quadratischen Fehler (gibt es immer). +\subsection{Rezept: Quadratische Funktion finden} Gegeben: mehrere Punkte ($x_i, y_i$) im Koordinatensystem\\ Gesucht: Koeffizienten $\mathtt{a}, \mathtt{b}, \mathtt{c}$ für $f(x)=\mathtt{a}\cdot x^2+\mathtt{b}\cdot x+\mathtt{c}\cdot 1=y$\\ -\textbf{Vorgehen:} +\textbf{Vorgehen} \begin{enumerate} \item $b = (y_1, y_2, \dots)^\top$ \qquad $A = \begin{pmatrix} x_1^2 & x_1 & 1 \\[3pt] x_2^2 & x_2 & 1 \\[3pt] \vdots & \vdots & \vdots \end{pmatrix}$ \\ -\textit{Für eine lineare Funktion erste Spalte von $A$ streichen} +\textit{Falls Ausgleichsgerade gesucht: erste Spalte von $A$ streichen} \item Lösungsvektor $x^*$ mithilfe von $A$ und $b$ berechnen \item $x^*=(\mathtt{a}, \mathtt{b}, \mathtt{c})^\top \rightarrow \ f(x)=\mathtt{a}x^2+\mathtt{b}x+\mathtt{c}$ \end{enumerate} %\textbf{Lineare Funktion $(bx+c)$:} erste Spalte von $A$ streichen. $x^*=(\mathtt{b}, \mathtt{c})^\top$ -\subsection{Singulärwertzerlegung} +\section{Singulärwertzerlegung} Bei der Singulärwertzerlegung wird eine beliebige Matrix $A\in \mathbb{R}^{m\times n}$ als Produkt dreier Matrizen $V$, $\Sigma$ und $W$ geschrieben \begin{equation*} A=V\Sigma W^\top \end{equation*} mit $V\in \mathbb{R}^{m\times m}$, $\Sigma\in \mathbb{R}^{m\times n}$ und $W\in \mathbb{R}^{n\times n}$.\\ $V$ und $W$ sind orthogonal, $\Sigma$ ist eine Diagonalmatrix. -\subsubsection{Rezept: Singulärwertzerlegung} +\subsection{Rezept: Singulärwertzerlegung} Gegeben: $A\in \mathbb{R}^{m\times n}$ \begin{enumerate}\itemsep0pt \item Bestimme alle Eigenwerte $\lambda_j$ und Eigenvektoren $w_j$ der Matrix $A^\top A\in \mathbb{R}^{n\times n}$ und ordne sie \\ $\lambda_1\ge\lambda_2\ge \dots \ge \lambda_r>\lambda_{r+1}=\dots=\lambda_n=0$ mit $r\le n$ @@ -568,18 +560,20 @@ \subsubsection{Rezept: Singulärwertzerlegung} orthogonal. \item $A=V\Sigma W^\top$ \end{enumerate} -\subsubsection{Kompression} +\begin{minipage}{\columnwidth} +\subsection{Kompression} \begin{itemize}\itemsep0pt -\item Rang k Matrix $A_{(k)}=V\Sigma_{(k)}W^\top$. Die Matrix $\Sigma_{(k)}$ enthält nur die Singulärwerte $\sigma_1, ...,\sigma_k$. ($\sigma_{k+1}, ...,\sigma_{n/m}$ mit 0 ersetzen).\\ +\item Rang k Matrix $A_{(k)}=V\Sigma_{(k)}W^\top$. Die Matrix $\Sigma_{(k)}$ enthält nur die Singulärwerte $\sigma_1, ...,\sigma_k$.\qquad ($\sigma_{k+1}, ...,\sigma_{n/m}$ mit 0 ersetzen).\\ \item Frobenius-Norm $|| A ||_F = \sqrt[]{\sum_{i=1}^{m} \sum_{j=1}^{n} {a^{2}_{i,j}}}$\\ \item Es gilt: $|| A-A_{(k)} ||_F \leq || A-B ||_F$ mit $B$ als eine beliebige Matrix des $\mathbb{R}^{m\times n}$ mit $rang(B) \leq rang(A_{(k)}) = k$ \item Speicheraufwand einer Matrix $A\in \mathbb{R}^{m\times n}$: $rang(A) \cdot (m+n)$ \end{itemize} -\subsection{Lineare Differentialgleichungen und Rekursive Folgen} -\subsubsection{Lösen einer linearen Differentialgleichung} +\end{minipage} +\section{Lineare Differentialgleichungen \& Rekursive Folgen} +\subsection{Lösen einer linearen Differentialgleichung} Gegeben: $y'(t) = \lambda y(t)$, mit $y(0) = c$\\ Lösung: $y(t) = ce^{\lambda t}$ mit $c \in \mathbb R$\\ -\subsubsection{Lösen eines Systems linearer Differentialgleichungen} +\subsection{Lösen eines Systems linearer Differentialgleichungen} Gegeben: $y'(t) = Ay$, mit $y_1(0) , ..., y_n(0)$\\ Wobei $A \in \mathbb R^{nxn}, y_1(0) , ..., y_n(0) \in \mathbb R, y,y'\in\mathbb R^n$.\\ Lösung:\\ @@ -593,7 +587,7 @@ \subsubsection{Lösen eines Systems linearer Differentialgleichungen} = c_1e^{\lambda_1t}v_1+...+c_ne^{\lambda_nt}v_n$. \item Anfangswerte einsetzen und Werte für $c_1$, bis $c_n$ bestimmen. \end{enumerate} -\subsubsection{Rekursive Folgen} +\subsection{Rekursive Folgen} Gegeben: $x_{n+1} = {\alpha} x_n + {\beta} x_{n-1}$, Anfangswerte: $x_0$, $x_1$\\ Lösung:\\ \begin{enumerate} @@ -627,8 +621,8 @@ \subsubsection{Rekursive Folgen} x_{0}\end{pmatrix} \end{equation*} \end{enumerate} -\subsection{Definitheit und Quadratische Funktionen} -\subsubsection{Definitheit} +\section{Definitheit und Quadratische Funktionen} +\subsection{Definitheit} Eine symmetrische Matrix $A \in\mathbb R^{n\times n}$ mit den Eigenwerten (EW) $\lambda_1, ..., \lambda_n$ heißt: \begin{itemize}\itemsep0pt \item positiv definit: EW positiv $<=> v^{\top}Av> 0,\quad\forall v \in\mathbb R^n\backslash \{0\}$ @@ -636,7 +630,7 @@ \subsubsection{Definitheit} \item positiv semidefinit: EW $\geq 0 <=> v^{\top}Av\geq 0,\quad\forall v \in\mathbb R^n$ \item negativ semidefinit: EW $\leq 0 <=> v^{\top}Av\leq 0,\quad\forall v \in\mathbb R^n$ \end{itemize} -\subsubsection{Quadratische Funktionen} +\subsection{Quadratische Funktionen} \textbf{Form:} $f(x)=x^{\top}Ax+b^{\top}x+c = \langle x,Ax \rangle + \langle b,x \rangle + c$\\ Berechnen von Extrempunkten: \begin{itemize}\itemsep0pt @@ -645,7 +639,6 @@ \subsubsection{Quadratische Funktionen} \item positiv/negativ semidefinit: Existenz von Extremum hängt von Lösbarkeit des LGS $2Ax=-b$ ab. (nicht eindeutig!) \end{itemize} -\end{multicols*} % Ende der Spalten diff --git a/scripts/__init__.py b/scripts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scripts/requirements.txt b/scripts/requirements.txt new file mode 100644 index 0000000..fe79a98 --- /dev/null +++ b/scripts/requirements.txt @@ -0,0 +1,2 @@ +pyfakefs==5.3.5 +pytest==8.1.1 diff --git a/scripts/tests/__init__.py b/scripts/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scripts/tests/test_update_files.py b/scripts/tests/test_update_files.py new file mode 100644 index 0000000..efbc556 --- /dev/null +++ b/scripts/tests/test_update_files.py @@ -0,0 +1,75 @@ +import pytest +from scripts.update_files import check_tex_file_exists, update_readme_content, update_cmake_content +from pathlib import Path +import os + +@pytest.fixture +def fake_base_path(fs): + """Fixture to create a base path and mock environment variable.""" + base_path = Path("/test/project") + fs.create_dir(base_path) + os.environ['GITHUB_REPOSITORY'] = 'user/correct_title' + return base_path + +def test_check_tex_file_exists__file_does_not_exist__should_raise(fake_base_path, fs): + repo_name = "correct_title" + fs.create_file(fake_base_path / f"{repo_name}.tex") + check_tex_file_exists(repo_name, fake_base_path) + + with pytest.raises(FileNotFoundError): + check_tex_file_exists("nonexistent_repo", Path(fake_base_path)) + +def test_update_readme_content(fake_base_path, fs): + initial_readme_content = """ + # WrongTitle + Some content in the README file. + [![Actions Status](https://github.com/latex4ei/WrongCheatsheetTemplate/workflows/CI/badge.svg)](https://github.com/latex4ei/WrongCheatsheetTemplate) + ## Section + More details here. + """.strip() + fs.create_file(fake_base_path / "README.md", contents=initial_readme_content) + repo_name = "correct_title" + github_repository = 'user/correct_title' + + updated_content = update_readme_content(initial_readme_content, repo_name, github_repository) + + expected_content = """ + # correct_title + Some content in the README file. + [![Actions Status](https://github.com/user/correct_title/workflows/CI/badge.svg)](https://github.com/user/correct_title) + ## Section + More details here. + """.strip() + assert updated_content == expected_content, "README.md content was not updated correctly." + +def test_update_cmake_content(fake_base_path, fs): + initial_cmake_content = """ + cmake_minimum_required(VERSION 3.12) + project(WrongProjectName NONE) + # Add the main LaTeX document + add_latex_document( + CheatsheetTemplate.tex + AnotherDoc.tex + FORCE_PDF + IMAGE_DIRS img + DEPENDS writegitid + ) + """.strip() + fs.create_file(fake_base_path / "CMakeLists.txt", contents=initial_cmake_content) + repo_name = "correct_title" + + updated_content = update_cmake_content(initial_cmake_content, repo_name) + + expected_content = """ + cmake_minimum_required(VERSION 3.12) + project(correct_title NONE) + # Add the main LaTeX document + add_latex_document( + correct_title.tex + AnotherDoc.tex + FORCE_PDF + IMAGE_DIRS img + DEPENDS writegitid + ) + """.strip() + assert updated_content == expected_content, "CMakeLists.txt content was not updated correctly." diff --git a/scripts/update_files.py b/scripts/update_files.py new file mode 100644 index 0000000..ab0c3e1 --- /dev/null +++ b/scripts/update_files.py @@ -0,0 +1,42 @@ +from pathlib import Path +import re +import os +import sys + +def check_tex_file_exists(repo_name: str, base_path: Path): + """Check if a .tex file with the same name as the repository exists.""" + tex_file_path = base_path / f"{repo_name}.tex" + if not tex_file_path.exists(): + msg = f"No .tex file found with the name {tex_file_path.name}. File name must match repo name." + raise FileNotFoundError(msg) + +def update_readme_content(content: str, repo_name: str, github_repository: str) -> str: + """Updates the README.md content.""" + content = re.sub(r'^# .+', f'# {repo_name}', content, count=1, flags=re.MULTILINE) + actions_status_line = f'[![Actions Status](https://github.com/{github_repository}/workflows/CI/badge.svg)](https://github.com/{github_repository})' + return re.sub(r'\[!\[Actions Status\].*', actions_status_line, content) + +def update_cmake_content(content: str, repo_name: str) -> str: + """Updates the CMakeLists.txt content.""" + content = re.sub(r'project\(([^ ]*)', f'project({repo_name}', content, count=1) + return re.sub(r'^( *)[^\s#].*?\.tex', r'\1' + f'{repo_name}.tex', content, flags=re.MULTILINE, count=1) + +def main(github_repository: str): + repo_name = Path(github_repository).name + base_path = Path(__file__).parent.parent + + check_tex_file_exists(repo_name, base_path) + + readme_path = base_path / 'README.md' + cmake_path = base_path / 'CMakeLists.txt' + + readme_content = readme_path.read_text() + updated_readme_content = update_readme_content(readme_content, repo_name, github_repository) + readme_path.write_text(updated_readme_content) + + cmake_content = cmake_path.read_text() + updated_cmake_content = update_cmake_content(cmake_content, repo_name) + cmake_path.write_text(updated_cmake_content) + +if __name__ == "__main__": + main(os.getenv('GITHUB_REPOSITORY')) diff --git a/write-gitid.sh b/write-gitid.sh index 85d217d..b441cae 100755 --- a/write-gitid.sh +++ b/write-gitid.sh @@ -11,4 +11,13 @@ fi GITREV=$(git rev-list HEAD --count) echo "\\def\\GitRevision{$GITREV}"> git.id -git show -s --format=%ci | xargs -I var_d $DATEBIN -d "var_d" +\\def\\GitNiceDate{%-d.\ %B\ %Y\ um\ %H:%M\ Uhr} >> git.id +git show -s --format=%ci | xargs -I var_d $DATEBIN -d "var_d" +\\def\\GitNiceDate{%-d.\ %B\ %Y} >> git.id + +# Get the repository's remote URL +REPO_URL=$(git remote get-url origin) + +# Convert SSH URL to HTTPS URL and append /issues for the issues page +# This also ensures it works for URLs ending with .git and without +ISSUES_URL=$(echo $REPO_URL | sed -e 's/^git@github\.com:/https:\/\/github\.com\//' -e 's/\.git$//' -e 's/$/\/issues/') + +echo "\\def\\GitIssuesURL{$ISSUES_URL}" >> git.id From 787fb4c670cf998fa866a79c24b74baaac8d8812 Mon Sep 17 00:00:00 2001 From: Darius Peters <38152878+dariusptrs@users.noreply.github.com> Date: Thu, 4 Apr 2024 14:01:18 +0200 Subject: [PATCH 06/18] Add Sarrus to 2.8 --- Lineare-Algebra.tex | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index d14957c..13c7260 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -13,6 +13,8 @@ % Pakete laden \usepackage{setspace} +\usepackage{tikz} +\usetikzlibrary{matrix, positioning} % Seitenlayout und Ränder: \titlespacing*{\section}{0pt}{2pt}{2pt} @@ -69,7 +71,7 @@ \section{Allgemeines} % (fold) \left| \sprod{x}{y} \right| \le \| x\| \cdot \| y\| \end{array}\end{math}\\ $\mathbb{K}$ steht für $\mathbb{R}$ und $\mathbb{C}$\\ -$\mathbb{I}_n$ ist die $nxn$-Einheitsmatrix. \qquad$e_i$ ist der i-te Einheitsvektor. +$\mathbb{I}_n$ ist die $n\times n$-Einheitsmatrix. \qquad$e_i$ ist der i-te Einheitsvektor. \section{Matrizen} % ---------------------------------------------------------------------- Die Matrix $A=(a_{ij}) \in \mathbb K^{m\times n}$ hat $m$ Zeilen mit Index $i$ und $n$ Spalten mit Index $j$. @@ -137,6 +139,7 @@ \subsection{Rang einer Matrix} Spaltenraum $\col(A)$: Erzeugnis der Spalten, $\text{Basis}(\col(A)) = \{\text{ N0-Spalten }\}$ \\ Bild = Spaltenraum: Erzeugnis der Spalten \end{minipage} +\begin{minipage}{\columnwidth} \subsection{Matrixpotenzen} Gegeben: $A \in\mathbb{R}^{mxn}, x \in\mathbb{R}^n$.\\ Gesucht: Lösung von $A^n$.\\ @@ -154,7 +157,7 @@ \subsection{Matrixpotenzen} 0 & \ldots & \lambda_k^n \\ \end{pmatrix}$. \end{itemize} - +\end{minipage} \subsection{Lineares Gleichungssystem LGS} Das LGS $Ax=b$ kurz $(A|b)$ mit $A\in \mathbb K^{m\times n}$, $x\in \mathbb K^n$, $b\in \mathbb K^m$ hat $m$ Gleichungen und $n$ Unbekannte.\\ \\ @@ -172,6 +175,29 @@ \subsection{Determinante} \item $|A|=\sum\limits_{i\text{ oder }j=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \\ Entwicklung nach $j$-ter Spalte oder $i$-ter Zeile %\item $|A|=\sum\limits_{j=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \qquad Entwicklung n. $i$-ter Zeile +\item Determinante einer $3\times 3$-Matrix: +\[\det(A)= +\begin{tikzpicture}[baseline=(current bounding box.center)] + \matrix (m) [matrix of math nodes,left delimiter=(,right delimiter=)] { + a_{11} & a_{12} & a_{13} \\ + a_{21} & a_{22} & a_{23} \\ + a_{31} & a_{32} & a_{33} \\ + }; + \matrix (extended) [matrix of math nodes, right=0.05cm of m.east, anchor=west] { + a_{11} & a_{12} \\ + a_{21} & a_{22} \\ + a_{31} & a_{32} \\ + }; + + \draw[thin, red] (m-1-1.north west) -- (m-3-3.south east); + \draw[thin, red] (m-1-2.north west) -- (extended-3-1.south east); + \draw[thin, red] (m-1-3.north west) -- (extended-3-2.south east); + \draw[thin, blue] (m-1-3.north east) -- (m-3-1.south west); + \draw[thin, blue] (extended-1-1.north east) -- (m-3-2.south west); + \draw[thin, blue] (extended-1-2.north east) -- (m-3-3.south west); +\end{tikzpicture} +\] +$=a_{11}a_{22}a_{33}+a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}-a_{12}a_{21}a_{33}-a_{11}a_{23}a_{32}-a_{13}a_{22}a_{31}$ \item $\det\begin{pmatrix}A&0\\C&D\end{pmatrix}=\det\begin{pmatrix}A&B\\0&D\end{pmatrix}=\det(A)\cdot\det(D)$ \item $\begin{vmatrix}\lambda_1&&* \\ &\ddots& \\ 0&&\lambda_n \end{vmatrix} = \lambda_1\cdot \ldots\cdot \lambda_n = \begin{vmatrix} \lambda_1&&0 \\ &\ddots& \\ *&&\lambda_n \end{vmatrix}$ \item $A=B \cdot C \quad \Rightarrow \quad |A|=|B| \cdot |C|$ @@ -340,7 +366,7 @@ \subsection{Orthogonalität} \end{enumerate} \section{Norm} -\textbf{Norm von Vektoren} +\textbf{Euklidische Norm von Vektoren} $\norm{a}=\sqrt{\sprod{a}{a}} =\sqrt{a_1^2+a_2^2+\ldots +a_n^2}$\\ $\forall v, w \in \mathbb{R}^n$: \begin{enumerate}\itemsep0pt @@ -405,6 +431,7 @@ \subsection{Abbildungsmatrix (Darstellungsmatrix)} \item $f$ bijektiv, wenn $[f]$ invertierbar \item $f$ ist bijektiv $\Leftrightarrow f$ ist injektiv $\Leftrightarrow f$ ist surjektiv \end{itemize} +\ \\ \subsection{Transformationsmatrix} Transformationsmatrix der Koordinaten von $B$ zu $C$: $_CT_B$\\ \textbf{Regeln und Berechnung:} @@ -587,6 +614,7 @@ \subsection{Lösen eines Systems linearer Differentialgleichungen} = c_1e^{\lambda_1t}v_1+...+c_ne^{\lambda_nt}v_n$. \item Anfangswerte einsetzen und Werte für $c_1$, bis $c_n$ bestimmen. \end{enumerate} +\ \\ \subsection{Rekursive Folgen} Gegeben: $x_{n+1} = {\alpha} x_n + {\beta} x_{n-1}$, Anfangswerte: $x_0$, $x_1$\\ Lösung:\\ From b7686183290790d2bb21e99619b8a8e9cf08e55d Mon Sep 17 00:00:00 2001 From: Darius Peters <38152878+dariusptrs@users.noreply.github.com> Date: Fri, 5 Apr 2024 14:51:16 +0200 Subject: [PATCH 07/18] add Beweise + formatting Update Lineare-Algebra.tex --- Lineare-Algebra.tex | 81 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 66 insertions(+), 15 deletions(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index 13c7260..0c764f3 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -139,7 +139,7 @@ \subsection{Rang einer Matrix} Spaltenraum $\col(A)$: Erzeugnis der Spalten, $\text{Basis}(\col(A)) = \{\text{ N0-Spalten }\}$ \\ Bild = Spaltenraum: Erzeugnis der Spalten \end{minipage} -\begin{minipage}{\columnwidth} +%\begin{minipage}{\columnwidth} \subsection{Matrixpotenzen} Gegeben: $A \in\mathbb{R}^{mxn}, x \in\mathbb{R}^n$.\\ Gesucht: Lösung von $A^n$.\\ @@ -157,7 +157,7 @@ \subsection{Matrixpotenzen} 0 & \ldots & \lambda_k^n \\ \end{pmatrix}$. \end{itemize} -\end{minipage} +%\end{minipage} \subsection{Lineares Gleichungssystem LGS} Das LGS $Ax=b$ kurz $(A|b)$ mit $A\in \mathbb K^{m\times n}$, $x\in \mathbb K^n$, $b\in \mathbb K^m$ hat $m$ Gleichungen und $n$ Unbekannte.\\ \\ @@ -172,12 +172,14 @@ \subsection{Lineares Gleichungssystem LGS} \subsection{Determinante} $A\in \mathbb K^{n\times n}$: $\det(A)=|A|$ \begin{itemize}\itemsep0pt -\item $|A|=\sum\limits_{i\text{ oder }j=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \\ +\item $|A|=\sum\limits_{i\text{ oder }j=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \\ Entwicklung nach $j$-ter Spalte oder $i$-ter Zeile %\item $|A|=\sum\limits_{j=1}^n (-1)^{i+j} \cdot a_{ij} \cdot |A_{ij}|$ \qquad Entwicklung n. $i$-ter Zeile +\item Determinante einer $2\times 2$-Matrix: \\ +$A=\begin{pmatrix}a&b\\c&d\end{pmatrix} \Rightarrow \det(A)=|A|=ad-bc$ \item Determinante einer $3\times 3$-Matrix: \[\det(A)= -\begin{tikzpicture}[baseline=(current bounding box.center)] +\begin{tikzpicture}[baseline=(current bounding box.center), scale=0.5] \matrix (m) [matrix of math nodes,left delimiter=(,right delimiter=)] { a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ @@ -213,8 +215,8 @@ \subsection{Determinante} \item Zeile/Spalte mit $\lambda$ multiplizieren, $|A|$ um Faktor $\lambda$ größer \item Addition des $\lambda$-fachen der Zeile X zur Zeile Y ändert $|A|$ nicht \end{itemize} -\textbf{Vereinfachung für Spezialfall $A\in \mathbb K^{2\times 2}$}\\ -$A=\begin{pmatrix}a&b\\c&d\end{pmatrix} \Rightarrow \det(A)=|A|=ad-bc$ +%\textbf{Vereinfachung für Spezialfall $A\in \mathbb K^{2\times 2}$}\\ +%$A=\begin{pmatrix}a&b\\c&d\end{pmatrix} \Rightarrow \det(A)=|A|=ad-bc$ \subsection{Hauptsatz invertierbarer quadratischer Matrizen} \begin{tabular}{ll} 1) $A$ ist invertierbar & 2) $\dim(\col(A))=\dim(\row(A))=n$\\ @@ -262,18 +264,26 @@ \subsection{Kreuzprodukt (Vektorprodukt)} \section{Vektorräume (VR)} % -------------------------------------------------------------- Eine nichtleere Menge V mit zwei Verknüpfungen $+$ und $\cdot$ heißt $K$-Vektorraum über dem Körper $\mathbb K$. \\ -\textbf{Bedingung $(u,v,w\in V \quad \lambda,\mu \in \mathbb{R})$} -\begin{enumerate}\itemsep0pt +\textbf{Bedingung $(u,v,w\in V \quad \lambda,\mu \in \mathbb{R})$}\\ \\ +\begin{tabular}{ll} +\begin{minipage}{.5\columnwidth} +\begin{itemize}\itemsep0pt \item $v+w\in V$ \qquad $\lambda v \in V$ \item $u+(v+w)=(u+v)+w$ \item $0\in V: v+0=v$ \item $v'\in V: v+v'=0$ +\end{itemize} +\end{minipage} +& +\begin{minipage}{.5\columnwidth} +\begin{itemize}\itemsep0pt \item $v+w=w+v$ \item $\lambda(v+w)=\lambda v + \lambda w$ \item $(\lambda + \mu)v=\lambda v +\mu v $ \item $(\lambda \mu)v = \lambda(\mu v)$ -\item $1v=v$ -\end{enumerate}\itemsep0pt +\end{itemize}\itemsep0pt +\end{minipage} +\end{tabular} \subsection{Untervektorraum (UVR)} $U\subset V (u,v\in U \quad \lambda\in\mathbb{R})$ \begin{enumerate}\itemsep0pt @@ -368,11 +378,9 @@ \subsection{Orthogonalität} \section{Norm} \textbf{Euklidische Norm von Vektoren} $\norm{a}=\sqrt{\sprod{a}{a}} =\sqrt{a_1^2+a_2^2+\ldots +a_n^2}$\\ -$\forall v, w \in \mathbb{R}^n$: -\begin{enumerate}\itemsep0pt -\item $\norm{\lambda v}=\abs{\lambda}\norm v$ -\item $\norm{v+w}\le \norm{v} + \norm{w}$ -\end{enumerate} +$\forall v, w \in \mathbb{R}^n$:\\ +1. $\norm{\lambda v}=\abs{\lambda}\norm v$ +\qquad 2. $\norm{v+w}\le \norm{v} + \norm{w}$ \begin{minipage}{\columnwidth} \section{Lineare Abbildungen} @@ -667,6 +675,49 @@ \subsection{Quadratische Funktionen} \item positiv/negativ semidefinit: Existenz von Extremum hängt von Lösbarkeit des LGS $2Ax=-b$ ab. (nicht eindeutig!) \end{itemize} +\begin{minipage}{\columnwidth} +\section{Wichtige Zusammenhänge} +\subsection{Rang} +\begin{itemize} + \item $\rang(A) Date: Fri, 5 Apr 2024 15:03:10 +0200 Subject: [PATCH 08/18] fix typo --- Lineare-Algebra.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index 0c764f3..24e7ffd 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -178,7 +178,7 @@ \subsection{Determinante} \item Determinante einer $2\times 2$-Matrix: \\ $A=\begin{pmatrix}a&b\\c&d\end{pmatrix} \Rightarrow \det(A)=|A|=ad-bc$ \item Determinante einer $3\times 3$-Matrix: -\[\det(A)= +\[\det(A)=\det \begin{tikzpicture}[baseline=(current bounding box.center), scale=0.5] \matrix (m) [matrix of math nodes,left delimiter=(,right delimiter=)] { a_{11} & a_{12} & a_{13} \\ From b8411da5896528bd8cf6b5db7eba02ee33f2aec2 Mon Sep 17 00:00:00 2001 From: Darius Peters <38152878+dariusptrs@users.noreply.github.com> Date: Fri, 21 Jun 2024 23:15:36 +0200 Subject: [PATCH 09/18] add pca Update Lineare-Algebra.tex --- Lineare-Algebra.tex | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index 24e7ffd..d2c718d 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -5,10 +5,10 @@ % ====================================================================== % Dokumentklasse (Schriftgröße 6, DIN A4, Artikel) -\documentclass[ngerman, 6pt]{latex4ei/latex4ei_sheet} +\documentclass[german, 6pt]{latex4ei/latex4ei_sheet} \title{Lineare Algebra} \author{Lukas Kompatscher} -\myemail{lukas.kompatscher@tum.de} +\myemail{info@latex4ei.de} \mywebsite{www.latex4ei.de} % Pakete laden @@ -604,6 +604,21 @@ \subsection{Kompression} \item Speicheraufwand einer Matrix $A\in \mathbb{R}^{m\times n}$: $rang(A) \cdot (m+n)$ \end{itemize} \end{minipage} +\subsection{Exkurs: Hauptkomponentenanalyse (PCA)} +Gegeben: Matrix $W$ der Eigenvektoren von $\mathbf{A\cdot A^\top}$\\ +Gesucht: Projektionen der Spalten von $A$ auf den Unterraum $U_{(k)}$ als Koordinaten bzgl. der ONB der Eigenvektoren von $AA^\top$\\ +Vorgehen: +\begin{enumerate} + \item Normiere $w^1, \dots , w^k$ + \item $\overline{w}=(w^1 \dots w^k)\in \mathbb{R}^{m\times k}$ + \item Die Koordinatenvektoren $y^1, \dots , y^k \in \mathbb{R}^{k}$ die Vektoren $x^1,\dots , x^n$ bzgl. der Basis $\{w^1, \dots , w^k\}$ von $U_{(k)}$ ausdrücken, sind die Spalten von \begin{equation*}\overline{w}^\top A=\begin{pmatrix} + (w^{1})^{\top} \\ + \vdots \\ + (w^{k})^{\top} + \end{pmatrix} + \cdot A + \end{equation*} +\end{enumerate} \section{Lineare Differentialgleichungen \& Rekursive Folgen} \subsection{Lösen einer linearen Differentialgleichung} Gegeben: $y'(t) = \lambda y(t)$, mit $y(0) = c$\\ From a4c2ddfd46a57a67700d04d753c8dc8cf9371ea4 Mon Sep 17 00:00:00 2001 From: Darius Peters <38152878+dariusptrs@users.noreply.github.com> Date: Tue, 20 Aug 2024 16:02:59 +0200 Subject: [PATCH 10/18] Update Lineare-Algebra.tex --- Lineare-Algebra.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index d2c718d..d23e215 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -7,7 +7,7 @@ % Dokumentklasse (Schriftgröße 6, DIN A4, Artikel) \documentclass[german, 6pt]{latex4ei/latex4ei_sheet} \title{Lineare Algebra} -\author{Lukas Kompatscher} +\author{LaTeX4Ei} \myemail{info@latex4ei.de} \mywebsite{www.latex4ei.de} From 69daef93a9027d006f035a3bdfd3b3391228a3e1 Mon Sep 17 00:00:00 2001 From: Darius Peters <38152878+dariusptrs@users.noreply.github.com> Date: Tue, 20 Aug 2024 19:51:53 +0200 Subject: [PATCH 11/18] A few changes --- Lineare-Algebra.tex | 65 +++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index d23e215..37cd3f7 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -44,6 +44,10 @@ \DeclareMathOperator{\Kern}{kern} \DeclareMathOperator{\proj}{proj} +%Custom font +\usepackage{lmodern} +\renewcommand{\ttdefault}{lmtt} + % Dokumentbeginn % ====================================================================== \begin{document} @@ -139,7 +143,7 @@ \subsection{Rang einer Matrix} Spaltenraum $\col(A)$: Erzeugnis der Spalten, $\text{Basis}(\col(A)) = \{\text{ N0-Spalten }\}$ \\ Bild = Spaltenraum: Erzeugnis der Spalten \end{minipage} -%\begin{minipage}{\columnwidth} +\begin{minipage}{\columnwidth} \subsection{Matrixpotenzen} Gegeben: $A \in\mathbb{R}^{mxn}, x \in\mathbb{R}^n$.\\ Gesucht: Lösung von $A^n$.\\ @@ -157,7 +161,7 @@ \subsection{Matrixpotenzen} 0 & \ldots & \lambda_k^n \\ \end{pmatrix}$. \end{itemize} -%\end{minipage} +\end{minipage} \subsection{Lineares Gleichungssystem LGS} Das LGS $Ax=b$ kurz $(A|b)$ mit $A\in \mathbb K^{m\times n}$, $x\in \mathbb K^n$, $b\in \mathbb K^m$ hat $m$ Gleichungen und $n$ Unbekannte.\\ \\ @@ -439,7 +443,7 @@ \subsection{Abbildungsmatrix (Darstellungsmatrix)} \item $f$ bijektiv, wenn $[f]$ invertierbar \item $f$ ist bijektiv $\Leftrightarrow f$ ist injektiv $\Leftrightarrow f$ ist surjektiv \end{itemize} -\ \\ + \subsection{Transformationsmatrix} Transformationsmatrix der Koordinaten von $B$ zu $C$: $_CT_B$\\ \textbf{Regeln und Berechnung:} @@ -462,8 +466,10 @@ \section{Diagonalisierung (Eigenwerte und Eigenvektoren)} \begin{itemize}\itemsep0pt \item $\text{Eig}_A(\lambda) = \{v \in \mathbb{R}^n | Av = \lambda v\}$ den Eigenraum von A zum Eigenwert $\lambda$ und \item $\dim({\text{Eig}_A(\lambda))}$ die geometrische Vielfachheit des Eigenwerts $\lambda$ -\item $\text{geo}(\lambda) = \dim(\text{Eig}_A(\lambda))$ +\item $\text{geo}(\lambda) = \dim(\text{Eig}_A(\lambda))$ \\ \end{itemize} +\end{minipage} +\begin{minipage}{\columnwidth} \textbf{Diagonalisieren von Matrizen}\\ $A$ ist diag.bar falls eine invertierbar Matrix $B$ existiert, sodass \begin{equation*} @@ -521,8 +527,8 @@ \subsection{Orthogonale Diagonalisierbarkeit} \item $Q=(b_1 \ \dots b_n)$ setzt sich aus den orthonormalen EV zusammen. \\ $D=\diag(\lambda_1,\dots,\lambda_n)$ ist die Diagonalmatrix der Eigenwerte. \end{itemize} + \section{QR-Zerlegung} -\begin{minipage}{\columnwidth} $A = QR$, wobei $Q$ orthonormale Spalten hat und $R$ oben dreieckig ist.\\ \textbf{Vorgehen} \begin{itemize}\itemsep0pt @@ -530,7 +536,6 @@ \section{QR-Zerlegung} \item Die Koeffizienten von $R$ ergeben sich aus den Gram-Schmidt Gleichungen wie folgt: $r_{i,i}=||c_i||^2$ und $r_{i,j}=\frac{\langle v_j,c_i \rangle}{r_{i,i}}$ \item Alternativ gilt: $R = Q^TA$ \end{itemize} -\end{minipage} \section{Kleinstes-Quadrate-Problem} Für $Ax = b$ lautet die \textbf{Normalengleichung} @@ -539,6 +544,7 @@ \section{Kleinstes-Quadrate-Problem} \textbf{Lösen} durch Gauß oder Umstellen: $x^* = (A^TA)^{-1}A^Tb$\\ Für $A=QR$ lautet die Lösung $x^* = R^{-1}Q^Tb$\\ $\Rightarrow$ optimale Lösung mit minimalem quadratischen Fehler (gibt es immer). +\begin{minipage}{\columnwidth} \subsection{Rezept: Quadratische Funktion finden} Gegeben: mehrere Punkte ($x_i, y_i$) im Koordinatensystem\\ Gesucht: Koeffizienten $\mathtt{a}, \mathtt{b}, \mathtt{c}$ für $f(x)=\mathtt{a}\cdot x^2+\mathtt{b}\cdot x+\mathtt{c}\cdot 1=y$\\ @@ -553,6 +559,7 @@ \subsection{Rezept: Quadratische Funktion finden} \item Lösungsvektor $x^*$ mithilfe von $A$ und $b$ berechnen \item $x^*=(\mathtt{a}, \mathtt{b}, \mathtt{c})^\top \rightarrow \ f(x)=\mathtt{a}x^2+\mathtt{b}x+\mathtt{c}$ \end{enumerate} +\end{minipage} %\textbf{Lineare Funktion $(bx+c)$:} erste Spalte von $A$ streichen. $x^*=(\mathtt{b}, \mathtt{c})^\top$ \section{Singulärwertzerlegung} Bei der Singulärwertzerlegung wird eine beliebige Matrix $A\in \mathbb{R}^{m\times n}$ als Produkt dreier Matrizen $V$, $\Sigma$ und $W$ geschrieben @@ -611,13 +618,13 @@ \subsection{Exkurs: Hauptkomponentenanalyse (PCA)} \begin{enumerate} \item Normiere $w^1, \dots , w^k$ \item $\overline{w}=(w^1 \dots w^k)\in \mathbb{R}^{m\times k}$ - \item Die Koordinatenvektoren $y^1, \dots , y^k \in \mathbb{R}^{k}$ die Vektoren $x^1,\dots , x^n$ bzgl. der Basis $\{w^1, \dots , w^k\}$ von $U_{(k)}$ ausdrücken, sind die Spalten von \begin{equation*}\overline{w}^\top A=\begin{pmatrix} + \item Die Koordinatenvektoren $y^1, \dots , y^k \in \mathbb{R}^{k}$ die Vektoren $x^1,\dots , x^n$ bzgl. der Basis $\{w^1, \dots , w^k\}$ von $U_{(k)}$ ausdrücken, sind die Spalten von\\ + $\overline{w}^\top A=\begin{pmatrix} (w^{1})^{\top} \\ \vdots \\ (w^{k})^{\top} \end{pmatrix} - \cdot A - \end{equation*} + \cdot A$ \end{enumerate} \section{Lineare Differentialgleichungen \& Rekursive Folgen} \subsection{Lösen einer linearen Differentialgleichung} @@ -691,41 +698,41 @@ \subsection{Quadratische Funktionen} \end{itemize} \begin{minipage}{\columnwidth} -\section{Wichtige Zusammenhänge} +\section{Wichtige Zusammenhänge zur Beweisführung} \subsection{Rang} \begin{itemize} \item $\rang(A) Date: Wed, 21 Aug 2024 19:11:08 +0200 Subject: [PATCH 12/18] remove git.id checks --- Lineare-Algebra.tex | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index 37cd3f7..c14bf6a 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -52,14 +52,6 @@ % ====================================================================== \begin{document} -\IfFileExists{git.id}{\input{git.id}}{} -\ifdefined\GitRevision\mydate{\GitNiceDate\ (git \GitRevision)}\fi -\ifdefined\GitIssuesURL - \ifdefined\setissueslinkurl - \setissueslinkurl{\GitIssuesURL} % Set the actual URL - \fi -\fi - %\section{} % ---------------------------------------------------------------------- \maketitle From 0080d906baf50414714240d84de2ae904540bf93 Mon Sep 17 00:00:00 2001 From: Darius Peters <38152878+dariusptrs@users.noreply.github.com> Date: Mon, 7 Oct 2024 12:31:49 +0200 Subject: [PATCH 13/18] =?UTF-8?q?add=20=C3=84hnlichkeit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Lineare-Algebra.tex | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index c14bf6a..8cff251 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -213,6 +213,16 @@ \subsection{Determinante} \end{itemize} %\textbf{Vereinfachung für Spezialfall $A\in \mathbb K^{2\times 2}$}\\ %$A=\begin{pmatrix}a&b\\c&d\end{pmatrix} \Rightarrow \det(A)=|A|=ad-bc$ +\subsection{Ähnlichkeit von Matrizen} +Zwei Matrizen $A, B \in \mathbb{R}^{n\times n}$ sind ähnlich zueinander, wenn es eine invertierbare Matrix $S$ gibt, sodass $A=SBS^{-1}$. Man schreibt $A \sim B$.\\ +\textbf{Eigenschaften:} +\begin{itemize} + \item $\det(A)=\det(B)$ + \item $A$ ist inviertierbar $\Leftrightarrow$ $B$ ist invertierbar + \item $\rang(A)=\rang(B)$ + \item $A$ und $B$ haben das gleiche charakteristische Polynom +\end{itemize} + \subsection{Hauptsatz invertierbarer quadratischer Matrizen} \begin{tabular}{ll} 1) $A$ ist invertierbar & 2) $\dim(\col(A))=\dim(\row(A))=n$\\ From 5fe7e5000cd6aa7b937b1485c1bcff95820a3ce9 Mon Sep 17 00:00:00 2001 From: Darius Peters <38152878+dariusptrs@users.noreply.github.com> Date: Sun, 20 Oct 2024 14:20:41 +0200 Subject: [PATCH 14/18] remove last section --- Lineare-Algebra.tex | 47 ++------------------------------------------- 1 file changed, 2 insertions(+), 45 deletions(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index 8cff251..522b63e 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -1,4 +1,4 @@ -% Mathe Formelsammlung für HM1 SoSe 2011 +% Mathe Formelsammlung für Lineare Algebra WiSe 23/24 % 2 Seiten % Dokumenteinstellungen @@ -7,7 +7,7 @@ % Dokumentklasse (Schriftgröße 6, DIN A4, Artikel) \documentclass[german, 6pt]{latex4ei/latex4ei_sheet} \title{Lineare Algebra} -\author{LaTeX4Ei} +\author{Lukas Kompatscher, Paul Thiel, Justus Rossmeier, Darius Peters} \myemail{info@latex4ei.de} \mywebsite{www.latex4ei.de} @@ -699,49 +699,6 @@ \subsection{Quadratische Funktionen} \item positiv/negativ semidefinit: Existenz von Extremum hängt von Lösbarkeit des LGS $2Ax=-b$ ab. (nicht eindeutig!) \end{itemize} -\begin{minipage}{\columnwidth} -\section{Wichtige Zusammenhänge zur Beweisführung} -\subsection{Rang} -\begin{itemize} - \item $\rang(A) Date: Sun, 20 Oct 2024 14:30:48 +0200 Subject: [PATCH 15/18] formatting --- Lineare-Algebra.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index 522b63e..aea6a62 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -138,7 +138,7 @@ \subsection{Rang einer Matrix} \begin{minipage}{\columnwidth} \subsection{Matrixpotenzen} Gegeben: $A \in\mathbb{R}^{mxn}, x \in\mathbb{R}^n$.\\ -Gesucht: Lösung von $A^n$.\\ +Gesucht: Lösung von $A^n$. \begin{itemize} \item Bestimme Eigenwerte $\lambda$ und Eigenvektoren $v$ von $A$. \item Bestimme $\alpha_1, ..., \alpha_k$ mit $x = \alpha_1v_1 + ... + \alpha_kv_k$. @@ -175,7 +175,7 @@ \subsection{Determinante} $A=\begin{pmatrix}a&b\\c&d\end{pmatrix} \Rightarrow \det(A)=|A|=ad-bc$ \item Determinante einer $3\times 3$-Matrix: \[\det(A)=\det -\begin{tikzpicture}[baseline=(current bounding box.center), scale=0.5] +\begin{tikzpicture}[baseline=(current bounding box.center), scale=0.4] \matrix (m) [matrix of math nodes,left delimiter=(,right delimiter=)] { a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ From 5b8b4c3ef70fb56abb7c1f43d51fbb9bf6a2fe98 Mon Sep 17 00:00:00 2001 From: Darius Peters <38152878+dariusptrs@users.noreply.github.com> Date: Sun, 20 Oct 2024 14:41:50 +0200 Subject: [PATCH 16/18] change format of 2.9 --- Lineare-Algebra.tex | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index aea6a62..3123e83 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -215,14 +215,12 @@ \subsection{Determinante} %$A=\begin{pmatrix}a&b\\c&d\end{pmatrix} \Rightarrow \det(A)=|A|=ad-bc$ \subsection{Ähnlichkeit von Matrizen} Zwei Matrizen $A, B \in \mathbb{R}^{n\times n}$ sind ähnlich zueinander, wenn es eine invertierbare Matrix $S$ gibt, sodass $A=SBS^{-1}$. Man schreibt $A \sim B$.\\ -\textbf{Eigenschaften:} -\begin{itemize} - \item $\det(A)=\det(B)$ - \item $A$ ist inviertierbar $\Leftrightarrow$ $B$ ist invertierbar - \item $\rang(A)=\rang(B)$ - \item $A$ und $B$ haben das gleiche charakteristische Polynom -\end{itemize} - +\textbf{Eigenschaften:}\\ +\begin{tabular}{ll} + $A$ ist inviertierbar $\Leftrightarrow$ $B$ ist invertierbar & $\det(A)=\det(B)$\\ + $A$ und $B$ haben das gleiche char. Polynom + & $\rang(A)=\rang(B)$ +\end{tabular} \subsection{Hauptsatz invertierbarer quadratischer Matrizen} \begin{tabular}{ll} 1) $A$ ist invertierbar & 2) $\dim(\col(A))=\dim(\row(A))=n$\\ From c9a6a209b3df47203d3be3849101034b436cb6b1 Mon Sep 17 00:00:00 2001 From: Darius Peters <38152878+dariusptrs@users.noreply.github.com> Date: Fri, 25 Oct 2024 17:03:43 +0200 Subject: [PATCH 17/18] add colors to 3x3 det --- Lineare-Algebra.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index 3123e83..e51a8a7 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -195,7 +195,7 @@ \subsection{Determinante} \draw[thin, blue] (extended-1-2.north east) -- (m-3-3.south west); \end{tikzpicture} \] -$=a_{11}a_{22}a_{33}+a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}-a_{12}a_{21}a_{33}-a_{11}a_{23}a_{32}-a_{13}a_{22}a_{31}$ +$=\textcolor{red!70!white}{a_{11}a_{22}a_{33}+a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}}\textcolor{blue!70!white}{-a_{12}a_{21}a_{33}-a_{11}a_{23}a_{32}-a_{13}a_{22}a_{31}}$ \item $\det\begin{pmatrix}A&0\\C&D\end{pmatrix}=\det\begin{pmatrix}A&B\\0&D\end{pmatrix}=\det(A)\cdot\det(D)$ \item $\begin{vmatrix}\lambda_1&&* \\ &\ddots& \\ 0&&\lambda_n \end{vmatrix} = \lambda_1\cdot \ldots\cdot \lambda_n = \begin{vmatrix} \lambda_1&&0 \\ &\ddots& \\ *&&\lambda_n \end{vmatrix}$ \item $A=B \cdot C \quad \Rightarrow \quad |A|=|B| \cdot |C|$ From 1c0110029da8facd30d78a8017f9b0fff3b6ff09 Mon Sep 17 00:00:00 2001 From: Darius Peters <38152878+dariusptrs@users.noreply.github.com> Date: Fri, 25 Oct 2024 17:10:50 +0200 Subject: [PATCH 18/18] fix text going outside of column --- Lineare-Algebra.tex | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Lineare-Algebra.tex b/Lineare-Algebra.tex index e51a8a7..7414a56 100644 --- a/Lineare-Algebra.tex +++ b/Lineare-Algebra.tex @@ -195,7 +195,10 @@ \subsection{Determinante} \draw[thin, blue] (extended-1-2.north east) -- (m-3-3.south west); \end{tikzpicture} \] -$=\textcolor{red!70!white}{a_{11}a_{22}a_{33}+a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}}\textcolor{blue!70!white}{-a_{12}a_{21}a_{33}-a_{11}a_{23}a_{32}-a_{13}a_{22}a_{31}}$ +\resizebox{\columnwidth}{!}{$ + =\textcolor{red!70!white}{a_{11}a_{22}a_{33}+a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}}% + \textcolor{blue!70!white}{-a_{12}a_{21}a_{33}-a_{11}a_{23}a_{32}-a_{13}a_{22}a_{31}} + $} \item $\det\begin{pmatrix}A&0\\C&D\end{pmatrix}=\det\begin{pmatrix}A&B\\0&D\end{pmatrix}=\det(A)\cdot\det(D)$ \item $\begin{vmatrix}\lambda_1&&* \\ &\ddots& \\ 0&&\lambda_n \end{vmatrix} = \lambda_1\cdot \ldots\cdot \lambda_n = \begin{vmatrix} \lambda_1&&0 \\ &\ddots& \\ *&&\lambda_n \end{vmatrix}$ \item $A=B \cdot C \quad \Rightarrow \quad |A|=|B| \cdot |C|$