Gitterfreie Kollokation

Gitterfreie Kollokation

Die gitterfreie Kollokation ist ein numerisches Verfahren zur Lösung von partiellen Differentialgleichungen. Sie ist eine spezielle Variante von Approximationen durch RBFs. Im Gegensatz zu anderen Verfahren (z.B. FEM) benötigt man keine Einteilung in Elemente oder ein strukturiertes Gitter.

Inhaltsverzeichnis

Übersicht

Das Verfahren der gitterfreien Kollokation dient beispielsweise zur Lösung von elliptischen partiellen Differentialgleichungen. Dabei müssen nur Lineare Gleichungssysteme (LGS) gelöst werden, numerische Integration und Erstellung von Gittern sind nicht nötig (siehe auch Vergleich mit anderen Methoden).

Die Lösung des Problems wird durch radiale Basisfunktionen approximiert, die nur von Abständen zwischen Punkten abhängen. Somit ist die Implementierung des Verfahrens weitestgehend von der Dimension des Problems unabhängig.

Verfahren

Bei den Verfahren der gitterfreien Kollokation wird die exakte Lösung durch Linearkombination s(x,γ) von Ansatzfunktionen (bzw. von Ansatzfunktionen, auf die der Differentialoperator angewandt wurde) approximiert.

Zur Erzeugung der Ansatzfunktionen  \{\varphi_j(x,\gamma)\}_{j=1}^{N'} wird eine Menge von Ansatzzentren  X_A = \{x_j'\}_{j=1}^{N'} \subset \mathbb{R}^d in die radiale Basisfunktion φ(x,γ) eingesetzt:  \varphi_j(x,\gamma) :=  \varphi (\|x-x_j' \|,\gamma), hierbei ist  \gamma \in \mathbb{R} ein Parameter. Je nach Verfahren werden die Ansatzzentren im Gebiet (mit Rand) oder auch außerhalb des Gebiets gewählt.

Zur Bestimmung der Koeffizienten wählt man eine Menge von Kollokationszentren  X_K = \{x_i\}_{i=1}^{N} \subset \overline{\Omega} , die nicht mit den Ansatzzentren zusammenfallen müssen.

Sei  \Omega \subset \mathbb{R}^d ein Gebiet mit Lipschitz-Rand  \partial \Omega , L ein elliptischer Differentialoperator,  f \in L^2 (\Omega)\cap C^0(\Omega) eine Funktion in Ω und gD eine Funktion auf  \partial \Omega .

Gegeben sei folgendes Dirchlet-Problem:

\begin{cases} u(x) = g_D(x) \quad x \in \partial \Omega \\
Lu(x) = f(x) \quad x \in  \Omega \end{cases}

Direkte Kollokation

Zur Lösung mittels direkter Kollokation werden die N Ansatzzentren  X_A \subset \mathbb{R}^d und Kollokationszentren XK aus  \Omega \cup \partial \Omega gewählt. Der Lösungsansatz ist:  s(x,\gamma) := \sum_{j=1}^N \lambda_j \varphi_j(x,\gamma).

Für jedes Kollokationszentrum  x_i \in X_K ergibt sich eine Gleichung, je nach Lage des Punktes. Sei xi für  i = 1, \ldots, N_B auf  \partial \Omega und für  i = N_B+1, \ldots, N in Ω:

\begin{cases}
s(x_i,\gamma) = \sum_{j=1}^N \lambda_j \varphi_j(x_i,\gamma) = g_D(x_i) \quad i = 1, \ldots, N_B  \\ 
Ls(x_i,\gamma) = \sum_{j=1}^N \lambda_j L\varphi_j(x_i,\gamma) = f(x_i) \quad i = N_B+1, \ldots, N  \end{cases}

Dies führt zum LGS:

 \left [\frac {\varphi_j(x_i)}{L\varphi_j(x_i)} \right ] \cdot \lambda = \left [\frac {g_D(x_i)}{f(x_i)} \right ] \qquad 
\begin{cases}
i = 1, \ldots, N_B \\ 
i = N_B+1, \ldots, N  
\end{cases}
\lambda = (\lambda_1,\ldots, \lambda_N) \quad j = 1,\ldots,N

Die gesuchten Koeffizienten λj erhält man als Lösung dieses Systems. Die Wahl von Neumann-Randbedingungen ist ebenfalls möglich (auch in Kombination mit Dirichlet-Randbedingung), man muss lediglich die Lage der Kollokationszentren beachten. Der Nachteil bei dieser Variante ist, dass die Systemmatrix oftmals recht singulär und nicht symmetrisch wird.

Symmetrische Kollokation

Gegeben sei ein Dirchlet-Problem wie oben. Wähle Kollokationszentren  X_K = \{x_i\}_{i=1}^N , wobei wiederum xi für  i = 1, \ldots, N_B auf  \partial \Omega und für  i = N_B+1, \ldots, N in Ω liegt.

Die Ansatzfunktion ist: s(x,\gamma) := \sum_{j=1}^{N_B} \lambda_j \varphi_j(x,\gamma) + \sum_{k=N_B+1}^{N} \lambda_k L\varphi_k(x,\gamma)

Für jedes Kollokationszentrum ergibt sich folgende Gleichung:

\begin{cases}
s(x_i,\gamma) = \sum_{j=1}^{N_B} \lambda_j \varphi_j(x_i,\gamma) + \sum_{k=N_B+1}^{N} \lambda_k L\varphi_k(x_i,\gamma)= g_D(x_i) \quad i = 1, \ldots, N_B\\ 
Ls(x_i,\gamma) = \sum_{j=1}^{N_B} \lambda_j L\varphi_j(x_i,\gamma) + \sum_{k=N_B+1}^{N} \lambda_k L^2\varphi_k(x_i,\gamma) = f(x_i) \quad i = N_B+1, \ldots, N   \end{cases}

Wie bei der direkten Kollokation ergibt sich ein LGS mit den Koeffizienten λj als Lösungen:

 \left [\frac {\varphi_j(x_i) \; | \; L\varphi_k(x_i)}{L\varphi_j(x_i) \; | \; L^2\varphi_k(x_i)} \right ] \cdot \lambda = \left [\frac {g_D(x_i)}{f(x_i)} \right ] \qquad 
\begin{cases}
i = 1, \ldots, N_B \\ 
i = N_B+1, \ldots, N  
\end{cases}
j = 1,\ldots,N_B \quad k = N_B+1,\ldots,N

Bei dieser Variante erhält man eine symmetrische Systemmatrix, wodurch sichergestellt wird, dass das LGS nicht singulär ist.

Direkte Kollokation mit PDGL auf Rand

Da bei solchen Verfahren die Approximationsfehler am Rand oftmals groß werden, wird bei dieser Variante der gitterfreien Kollokation der Differentialoperator am Rand berücksichtigt. Die Anzahl der Ansatzfunktionen übersteigt dabei die der Kollokationszentren. Da sich die Anzahl der Gleichungen dadurch um NB vergrößert, werden zusätzliche Ansatzzentren  \{x_j\}_{j=N+1}^{N+N_B} außerhalb von  \Omega \cup \partial \Omega hinzugenommen. Die Ansatzfunktion ist:  s(x_i,\gamma) = \sum_{j=1}^{N+N_B} \lambda_j \varphi_j(x,\gamma)

Im Gegensatz zur direkten Kollokation ergeben sich für Kollokationszentren auf dem Rand zwei Gleichungen (im Inneren nach wie vor eine):

\begin{cases}
s(x,\gamma) = \sum_{j=1}^{N+N_B} \lambda_j \varphi_j(x_i,\gamma) = g_D(x_i) \quad i = 1,\ldots,N_B \\ 
Ls(x_i,\gamma) = \sum_{j=1}^{N+N_B} \lambda_j L\varphi_j(x_i,\gamma) = f(x_i) \quad  i = 1,\ldots,N \end{cases}

Wiederum erhält man die λj als Lösungen von:

 \left [\frac {\varphi_j(x_i)}{L\varphi_j(x_i)} \right ] \cdot \lambda = \left [\frac {g_D(x_i)}{f(x_i)} \right ] \qquad 
\begin{cases}
i = 1, \ldots, N_B \\ 
i = N_B+1, \ldots, N+N_B  
\end{cases} \quad j = 1,\ldots,N+N_B

Beispiel: Direkte Kollokation

Seien Ω,gD und f wie oben und L = Δ. Um das Dirichlet-Problem mittels direkter Kollokation zu lösen werden die Kollokationszentren XK = {x1,x2,x3}, wobei  x_1 \in \partial \Omega und  x_2, x_3 \in \Omega , und Ansatzzentren  X_A = \{x_1', x_2', x_3'\} \subset \Omega \cup \partial \Omega gewählt. Mit der Basisfunktion  \varphi(x,\gamma) = exp(-\gamma \|x\|^2) erhält man folgendes LGS:


  \begin{bmatrix} 
    e^{-\gamma \|x_1 - x_1'\|^2} & e^{-\gamma \|x_1 - x_2'\|^2} & e^{-\gamma \|x_1 - x_3'\|^2} \\
\Delta e^{-\gamma \|x_2 - x_1'\|^2} & \Delta e^{-\gamma \|x_2 - x'_2\|^2} & \Delta e^{-\gamma \|x_2 - x_3'\|^2} \\
\Delta e^{-\gamma \|x_3 - x_1'\|^2} & \Delta e^{-\gamma \|x_3 - x_2'\|^2} & \Delta e^{-\gamma \|x_3 - x_3'\|^2} \\
  \end{bmatrix}
\cdot
  \begin{bmatrix}
\lambda_1 \\
\lambda_2 \\
\lambda_3
\end{bmatrix}

=

  \begin{bmatrix}
g_D(x_1) \\
f(x_2) \\
f(x_3)
\end{bmatrix}

Als Lösung ergibt sich somit:  s(x) = \lambda_1 e^{-\gamma \|x - x_1'\|^2} + \lambda_2 e^{-\gamma \|x - x_2'\|^2} + \lambda_3 e^{-\gamma \|x - x_3'\|^2}

Vergleich mit anderen Methoden

Da bei diesem Verfahren kein Gitter aufgestellt werden muss, kann Rechenzeit gespart werden. Aufgrund der freien Wahl der Zentren kann eine bessere Anpassung an die Geometrie des Problems erreicht werden. Andererseits muss eine Vergrößerung der Zentrenmenge nicht unbedingt zu einer Verbesserung des Ergebnisses führen.

Zur Verbesserung des Ergebnisses werden i.A. adaptive Verfahren zur Wahl der Zentren benutzt. Obwohl das Verfahren kein Gitter benötigt, ist also die Wahl der Zentren dennoch von entscheidender Bedeutung.

Außerdem kann je nach Verfahren und Wahl der Zentren die Kondition der Systemmatrix sehr schlecht werden.

Quellen

  • E. Larsson, B. Fornberg: A Numerical Study of some Radial Basis Function based Solution Methods for Elliptic PDEs, Computers & Mathematics with Applications Volume 46, 2003
  • H. Wendland: Scattered Data Approximation, Cambridge University Press, 2005

Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”