Commit 33d4594d authored by Sander, Oliver's avatar Sander, Oliver
Browse files

Verbessere Abschnitt zu abstrakten Schwarz-Verfahren

parent d996d405
Pipeline #6256 passed with stage
in 3 minutes and 8 seconds
......@@ -2405,7 +2405,7 @@ dieser Darstellung die Prolongationsoperatoren.
\chapter{Teilraumkorrekturverfahren}
Wir beweisen jetzt die gitterunabhängige Konvergenz von Mehrgitterverfahren für elliptische Probleme.
Wir beweisen jetzt wieder die gitterunabhängige Konvergenz von Mehrgitterverfahren für elliptische Probleme.
\medskip
......@@ -2471,13 +2471,16 @@ Alternativ kann man folgende Charakterisierung verwenden:
\draw [dashed] (e) -- (P1e);
\draw (1.766,1.43) arc[start angle=120, delta angle=90,radius=0.48];
\node (e) [ballstyle,minimum size=0.7mm] at (1.75,1.1) {};
\node at (-2,2) {$X$};
\node at (-2,-0.6) {$X_1$};
\end{tikzpicture}
\end{center}
Der \glqq Unterschied\grqq{} $e-Pe$ steht senkrecht auf $X_1$,
bzlg.\ des Skalarprodukts $a(\cdot,\cdot)$.
bzgl.\ des Skalarprodukts $a(\cdot,\cdot)$.
\begin{lemma}
Sei $e_1 \in X_1$ und $e \in X$. Es gilt
......@@ -2510,7 +2513,7 @@ bzlg.\ des Skalarprodukts $a(\cdot,\cdot)$.
\end{align*}
Einmal durch $\norm{e_1-e}_a$ teilen gibt
\begin{equation*}
\norm{e_1-e}_a \le \norm{v-e}_a \qquad \forall v \in V_1.
\norm{e_1-e}_a \le \norm{v-e}_a \qquad \forall v \in X_1.
\qedhere
\end{equation*}
\end{proof}
......@@ -2525,7 +2528,7 @@ alte Bekannte wieder.
Sei wieder $X$ ein Vektorraum, diesmal mit:
\begin{itemize}
\item einem Skalarprodukt $(\cdot,\cdot) : X \to X \to \R$,
\item einem Skalarprodukt $(\cdot,\cdot) : X \times X \to \R$
\medskip
($X$ sei vollständig bzgl.\ der von $(\cdot,\cdot)$ induzierten Norm),
......@@ -2561,10 +2564,10 @@ die $a(\cdot,\cdot)$-orthogonale Projektion.
\begin{itemize}
\item Sei $u^* \in X$ die Lösung von $Au = f$, und $u^k \in X$
die aktuelle Iterierte eines iterativen Verfahrens.
die aktuelle Iterierte eines iterativen Verfahrens:
\begin{center}
\begin{tikzpicture}
\begin{tikzpicture}[scale=1.5]
\draw [<->] (-3,0) -- (3,0);
\draw [<->] ( 0,-1.5) -- (0,2);
\node at (-2,2) {$X$};
......@@ -2579,7 +2582,7 @@ die $a(\cdot,\cdot)$-orthogonale Projektion.
\draw [dashed] (uk) -- (ustar);
\draw [dashed,->] (uk) -- ++(-1.1,-0.55);
\node at (1,2) {$P_1(u^* - u^k)$};
\node at (0.8,1.8) {$P_1(u^* - u^k)$};
\end{tikzpicture}
\end{center}
......@@ -2598,7 +2601,7 @@ die $a(\cdot,\cdot)$-orthogonale Projektion.
\forall v \in X_i.
\end{align*}
\item Vorschlag für eine bessere Approximation von $u^*$ deshalb
\item Vorschlag für eine bessere Approximation von $u^*$ dann
\begin{equation*}
u^{k+1} = u^k + P_1(u^* - u^k).
\end{equation*}
......@@ -2607,6 +2610,8 @@ die $a(\cdot,\cdot)$-orthogonale Projektion.
Das ganze kann natürlich nur dann zu einem konvergenten Verfahren führen,
wenn man mehrere Teilräume hat.
\medskip
Für ein Teilraumkorrekturverfahren wählen wir jetzt eine endliche Menge von Teilräumen
\begin{equation*}
X_i \subset X,
......@@ -2619,6 +2624,8 @@ Für jeden Raum $X_i$ definieren wir die $a(\cdot,\cdot)$-Projektion $P_i : X \t
\qquad
\forall v \in X_i.
\end{equation*}
Mit jeder dieser Projektionen kann man eine Korrektur $P_i(u^* - u^k)$ berechnen.
\medskip
......@@ -2642,14 +2649,14 @@ Die jeweiligen Korrekturen kann man dann auf unterschiedliche Weise kombinieren:
& =
u^{k+\frac{1}{2}} + P_2 (u^* - u^{k+\frac{1}{2}}) \\
& =
u^k + P_1(u^* - u^k) + P_2(u^* - u^k - P_1(u^* - u^k)) \\
u^k + P_1(u^* - u^k) + P_2(u^* - (u^k + P_1(u^* - u^k))) \\
& =
u^k + (P_1 + P_2 - P_2 P_1)(u^* - u^k).
\end{align*}
\end{itemize}
Bei mehr als zwei Teilräumen kann man beliebige Kombinationen in betracht ziehen.
Bei mehr als zwei Teilräumen kann man beliebige Kombinationen in Betracht ziehen.
\bigskip
......@@ -2666,7 +2673,9 @@ ist.
Teilraumkorrekturverfahren sind lineare iterative Verfahren, denn
\begin{equation*}
u^{k+1} = u^k + \mathcal{P}(P_1,\dots,P_K)(u^* - u^k) = u^k + \mathcal{P}(P_1,\dots,P_p)A^{-1}(f-Au^n).
u^{k+1} = u^k + \mathcal{P}(P_1,\dots,P_K)(u^* - u^k)
=
u^k + \mathcal{P}(P_1,\dots,P_K)A^{-1}(f-Au^k).
\end{equation*}
Der Vorkonditionierer ist also $\mathcal{P}A^{-1}$, und die Iterationsmatrix
......@@ -2677,31 +2686,268 @@ ist $I- \mathcal{P}$.
Beachte dass zur praktischen Durchführung die Matrix $A^{-1}$ \emph{nicht}
berechnet werden muss!
\subsection{Das additive Schwarz-Verfahren}
(Nach Hermann Amandus Schwarz (1843--1921), der meines Wissens nie ein
additives Verfahren betrachtet hat.)
\bigskip
Das additive Schwarz-Verfahren hat die Form
\begin{align*}
u^{n+1}
u^{k+1}
& =
u^n + \mathcal{P}(P_1,\dots,P_K) A^{-1}(f-Au^n)
u^k + \mathcal{P}(P_1,\dots,P_K) A^{-1}(f-Au^k)
\end{align*}
mit
\begin{equation*}
\mathcal{P}(P_1,\dots,P_K) = P_1 + \dots + P_K
\mathcal{P}(P_1,\dots,P_K) = P_1 + \dots + P_K.
\end{equation*}
Es werden also zunächst die Projektionen des aktuellen Fehlers in alle
Teilräume unabhängig voneinander berechnet, und dann aufaddiert.
\todo[inline]{Beispiel: Das Jacobi-Verfahren als additives Schwarz-Verfahren}
\bigskip
\subsection{Das multiplikative Schwarz-Verfahren}
Als Beispiel betrachten wir den Fall
\begin{equation*}
X = \R^N,
\qquad
X_i = \big \{ y \in \R^N\; : \; y_j = 0 \quad \forall j \neq i \big \}.
\end{equation*}
Dann ist $A$ eine $N \times N$-Matrix, und
\begin{equation*}
a(v,w) = v^T A w
\qquad
\forall v,w \in \R^N.
\end{equation*}
Zu jedem Teilraum $X_i$ definieren wir
\begin{equation*}
R_i \in \R^{1 \times N}
\qquad
R_i = (0,\dots,0,1,0,\dots,0).
\end{equation*}
\bigskip
Wie sieht die Projektion $P_i v$ für ein $v \in \R^N$ aus?
\medskip
Nach Definition löst $P_iv \in X_i \subset \R^N$ die Gleichung
\begin{equation*}
a(P_iv,w) = a(v,w)
\qquad
\forall w \in X_i,
\end{equation*}
bzw.
\begin{equation*}
(P_iv)^T Aw = v^TAw
\qquad
\forall w \in X_i.
\end{equation*}
Da jedes $w \in X_i$ die Form $(0,\dots,0,\underbrace{\alpha}_{i},0,\dots,0)^T$ hat
ist die Gleichung äquivalent zu
\begin{equation*}
\sum_{j,l} (P_iv)_j A_{jl}w_l
=
\sum_j (P_iv)_j A_{ji}
=
v_j A_{ji}.
\end{equation*}
Da wir aber $P_iv$ ebenfalls in $X_i$ suchen ist
\begin{equation*}
P_i v
=
(0,\dots,0,A_{ii}^{-1}v_i,0,\dots,0)^T
=
R_i^T A_{ii}^{-1} v_i
=
R_i^T A_{ii}^{-1} R_i v.
\end{equation*}
Ein Korrekturschritt mit nur einem Teilraum ist also
\begin{align*}
u^{k+1}
& =
u^k + P_iA^{-1}(b - A u^k) \\
& =
u^k + R_i^T A_{ii}^{-1} R_i A A^{-1}(b - A u^k) \\
& =
u^k + R_i^T A_{ii}^{-1} R_i (b - A u^k).
\end{align*}
Das ist gleichbedeutend mit
\begin{equation*}
u_i^{k+1} = u_i^k + A_{ii}^{-1} (b-Au^k)_i.
\end{equation*}
Für alle Teilräume zusammen:
\begin{align*}
u^{k+1}
& =
u^k + \sum_{i=1}^K P_iA^{-1}(b - A u^k) \\
& =
u^k + \sum_{i=1}^K R_i^T A_{ii}^{-1} R_i A A^{-1}(b - A u^k),
\end{align*}
also
\begin{align*}
u_1^{k+1} & = u_1^k + A_{11}^{-1} (b-Au^k)_1 \\
u_2^{k+1} & = u_2^k + A_{22}^{-1} (b-Au^k)_2 \\
& \; \; \vdots \\
u_K^{k+1} & = u_K^k + A_{KK}^{-1} (b-Au^k)_K.
\end{align*}
Das ist das Jacobi-Verfahren.
\bigskip
Andere Teilraumzerlegungen erzeugen verwandte Verfahren:
\begin{itemize}
\item mehrdimensionale $X_i$ $\longrightarrow$ Block-Jacobi-Verfahren
\item nicht-direkte Summen $\longrightarrow$ überlappende Block-Jacobi-Verfahren
\end{itemize}
\bigskip
Zum besseren Verständnis kommt hier noch die algebraische
Darstellung von $P_i$ für einen beliebigen Teilraum von $\R^N$.
\medskip
Sei $X = \R^N$, $X_1$ Teilraum von $X$, und $R \in \R^{m \in N}$ eine Matrix, deren Zeilen
den Raum $X_1$ aufspannen.
\begin{lemma}
Die $A$-orthogonale Projektion von $X$ auf $X_1$ ist
\begin{equation*}
P = R^T(RAR^T)^{-1} RA.
\end{equation*}
\end{lemma}
%
\begin{proof}
Sei $e \in \R^N$. Wir wollen $Pe$ berechnen.
\begin{itemize}
\item Die Definition sagt
\begin{alignat*}{2}
a(Pe,v) & = a(e,v) &\qquad & \forall v \in X_1 \\
v^TAPe & = v^T A e && \forall v \in X_1
\end{alignat*}
Mit den gleichen (Teil-)Räumen wie eben schreibt man
\item Jedes Element in $X_1$ ist Linearkombination der Zeilen von $R$.
%
\item Es gibt also ein $\tilde{e}_1 \in \R^m$ mit $R^T \tilde{e}_1 = Pe$,\\
und ein $\tilde{v} \in \R^m$ mit $R^T \tilde{v} = v$.
%
\item Einsetzen:
\begin{alignat*}{2}
\tilde{v}^T R A R^T \tilde{e}_1 & = \tilde{v}^T RAe & \qquad & \forall \tilde{v} \in \R^m.
\end{alignat*}
%
\item Also
\begin{equation*}
R A R^T \tilde{e}_1 = RAe
\end{equation*}
bzw.
\begin{equation*}
\tilde{e}_1 = (R A R^T)^{-1} RAe
\end{equation*}
%
\item Also ist
\begin{equation*}
Pe = R^T \tilde{e}_1 = R^T (R A R^T)^{-1} RAe.
\qedhere
\end{equation*}
\end{itemize}
\end{proof}
Es ist also (für dieses Beispiel)
\begin{equation*}
u^{n+1} = u^n + \Big[I-(I-B_pA)\dots(I-B_1A)\Big] A^{-1} (f-Au^n)
\mathcal{P}
=
\sum_{i=1}^K P_i
=
\sum_{i=1}^K \Big[ R_i^T (R_i A R_i^T)^{-1} R_i \Big] A.
\end{equation*}
Man schreibt das häufig als
\begin{equation*}
\mathcal{P} = B_\text{add} A
\end{equation*}
mit
\begin{equation*}
B_\text{add}
=
\sum_{i=1}^K \Big[ R_i^T (R_i A R_i^T)^{-1} R_i \Big].
\end{equation*}
als Teilraumkorrekturverfahren mit
\subsection{Das multiplikative Schwarz-Verfahren}
Das multiplikative Schwarz-Verfahren ist
\begin{equation*}
\mathcal{P}(P_1,\dots,P_p) = I-(I-B_pA)\dots(I-B_1A).
u^{k+1} = u^k + \Big[I-(I-P_K)\cdots(I-P_1)\Big] A^{-1} (f-Au^k).
\end{equation*}
Es ist also
\begin{equation}
\label{eq:abstract_multiplicative_schwarz}
\mathcal{P}(P_1,\dots,P_K) = I-(I-P_K)\dots(I-P_1).
\end{equation}
\begin{lemma}
Das Polynom~\eqref{eq:abstract_multiplicative_schwarz} entspricht dem Verfahren
\begin{align*}
u^{k+\frac{1}{K}} & = u^k + P_1 A^{-1}(f - Au^k) \\
u^{k+\frac{2}{K}} & = u^{k+\frac{1}{K}} + P_2 A^{-1}(f - Au^{k+\frac{1}{K}})\\
& \;\; \vdots \\
u^{k+1} & = u^{k+\frac{K-1}{K}} + P_K A^{-1}(f - Au^{k+\frac{K-1}{K}}).
\end{align*}
\end{lemma}
\begin{proof}
Induktion über die Teilschritte.
\begin{itemize}
\item Klar für den ersten Teilschritt.
\end{itemize}
Induktionsschritt. Annahme: Die ersten $K-1$ Schritte entsprechen
\begin{equation*}
u^{k + \frac{K-1}{K}}
=
u^k + (I - (I-P_{K-1})(I-P_{K-2})\cdots(I-P_1)) A^{-1}(f-Au^k).
\end{equation*}
Dann ist
\begin{align*}
u^{k+1}
& =
u^{k+ \frac{K-1}{K}} + P_K A^{-1} (f - Au^{k+\frac{K-1}{K}}) \\
& =
u^{k+ \frac{K-1}{K}} + P_K (u^* - u^{k+\frac{K-1}{K}}) \\
& =
u^k + (I - (I-P_{K-1})\cdots(I-P_1)) (u^*-u^k) \\
& \qquad \qquad
+ P_K (u^* - u^k - (I - (I-P_{K-1})\cdots(I-P_1)) (u^*-u^k)) \\
& =
u^k + \Big[ (I - (I-P_{K-1})\cdots(I-P_1))+ P_K - P_K(I - (I-P_{K-1})\cdots(I-P_1))\Big] (u^*-u^k) \\
& =
u^k + \Big[ I - (I-P_{K-1})\cdots(I-P_1) + P_K (I-P_{K-1})\cdots(I-P_1)\Big] (u^*-u^k) \\
& =
u^k + \Big[ I - (I-P_K)(I-P_{K-1})\cdots(I-P_1)\Big] (u^*-u^k).
\qedhere
\end{align*}
\end{proof}
Hier wird also immer eine Korrektur für einen Teilraum berechnet und dann
direkt angewandt.
\medskip
Für $X = \R^N$, die $X_i$ wie oben erhält man das Gauß--Seidel-Verfahren.
\paragraph{Beispiel: Gauß--Seidel-Verfahren für ein 2x2-System}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment