Преглед изворни кода

Pseudocode auch als sochen geschrieben

Martin Thoma пре 12 година
родитељ
комит
a6833cccf5

+ 53 - 10
documents/Numerik/Klausur2/Aufgabe1.tex

@@ -1,6 +1,35 @@
 \section*{Aufgabe 1}
 \subsection*{Teilaufgabe a)}
 
+\textbf{Gegeben:}
+
+\[A := \begin{pmatrix}
+4 & 2 & 8\\
+2 & 5 & 8\\
+8 & 8 & 29
+\end{pmatrix}\]
+
+\textbf{Aufgabe:} Cholesky-Zerlegung $A = L \cdot L^T$ berechnen
+
+\textbf{Rechenweg:}
+\begin{algorithm}[H]
+    \begin{algorithmic}
+        \Function{Cholesky}{$A \in \mathbb{R}^{n \times n}$}
+            \State $L = \Set{0} \in \mathbb{R}^{n \times n}$ \Comment{Initialisiere $L$}
+            \For{($k=1$; $\;k \leq n$; $\;k$++)}
+                \State $L_{k,k} = \sqrt{A_{k,k} - \sum_{i=1}^{k-1} L_{k,i}^2}$
+                \For{($i=k+1$; $\;i \leq n$; $\;i$++)}
+                    \State $L_{i,k} = \frac{A_{i,k} - \sum_{j=1}^{k-1} L_{i,j} \cdot L_{k,j}}{L_{k,k}}$
+                \EndFor
+            \EndFor
+            \State \Return $L$
+        \EndFunction
+    \end{algorithmic}
+\caption{Cholesky-Zerlegung}
+\label{alg:seq1}
+\end{algorithm}
+
+\textbf{Lösung:}
 $
 L =
 \begin{pmatrix}
@@ -14,22 +43,36 @@ $
 \subsection*{Teilaufgabe b)}
 \textbf{Gesucht}: $\det(A)$
 
-Sei $P \cdot L = L \cdot R$, die gewohnte LR-Zerlegung.
+Sei $P \cdot A = L \cdot R$, die gewohnte LR-Zerlegung.
 
 Dann gilt:
 
-\[\det(A) = \det(L) \cdot \det(R) / \det(P)\]
+\[\det(A) = \frac{\det(L) \cdot \det(R)}{\det(P)}\]
 
-$\det(L) = 1$, da alle Diagonalelemente 1 sind und es sich um eine untere Dreiecksmatrix handelt.
+$\det(L) = 1$, da alle Diagonalelemente 1 sind und es sich um eine strikte untere Dreiecksmatrix handelt.
 
-$\det(R) = r_{11} \cdot \ldots \cdot r_{nn} $ da es sich um eine obere Dreiecksmatrix handelt.
+$\det(R) = r_{11} \cdot \ldots \cdot r_{nn}$, da es sich um eine obere Dreiecksmatrix handelt.
 
 
-$\det(P) = 1$ oder $-1$
+$\det(P) \in \Set{1, -1}$
 
 Das Verfahren ist also:
-\begin{enumerate}
-\item Berechne Restmatrix R mit dem Gaußverfahren.
-\item \label{manker} Multipliziere die Diagonalelemente von R
-\item falls die Anzahl an Zeilenvertauschungen ungerade ist negiere das Produkt aus \ref{manker} (eine Zeilenvertauschung verändert lediglich das Vorzeichen und P ist durch Zeilenvertauschungen aus der Einheitsmatrix hervorgegangen)
-\end{enumerate}
+
+\begin{algorithm}[H]
+    \begin{algorithmic}
+        \Require $A \in \mathbb{R}^{n \times n}$
+        \State $P, L, R \gets \Call{LRZerl}{A}$
+        \State $x \gets 1$
+        \For{$i$ in $1..n$}
+            \State $x \gets x \cdot r_{ii}$
+            \State $x \gets x \cdot p_{ii}$
+        \EndFor
+    \end{algorithmic}
+\caption{Determinante berechnen}
+\label{alg:seq1}
+\end{algorithm}
+
+Alternativ kann man auch in einer angepassten LR-Zerlegung direkt die
+Anzahl an Zeilenvertauschungen zählen. Dann benötigt man $P$ nicht mehr.
+Ist die Anzahl der Zeilenvertauschungen ungerade, muss das Produkt 
+der $r_ii$ negiert werden.

BIN
documents/Numerik/Klausur2/Klausur2.pdf


BIN
documents/Numerik/Klausur2/aufgabe4-b.png