v4.7 – A posteriori Fehlerabschätzung, Adaptivität

 

4.7.1 Motivation

Es ist wichtig, nach der Berechnung einer Näherungslösung {u_h} die Größe des Fehlers u-{u_h} realistisch einzuschätzen. Zum Beispiel wurden bei der Konstruktion der Nordsee-Bohrinsel Sleipner A die Schubspannungen um 47% unterschätzt, so dass einige Betonwände nicht dick genug konzipiert wurden. Die Plattform ist gesunken.

Nehmen wir nun an, wir haben Informationen über den Fehler, die uns sagen, dass dieser zu groß ist. Welche Veränderung des Netzes (oder des polynomialen Ansatzes) bringt den größten Nutzen? Im Allgemeinen ist keine globale Verfeinerung notwendig. Bei gleicher Anzahl von Knoten und Elementen erhält man den kleinsten Fehler {\left\| {u-{u_h}} \right\|_{{H^1}\left( \Omega \right)}}, wenn

{\left\| {u-{u_h}} \right\|_{{H^1}\left( T \right)}} \approx const\quad \forall T \in {\mathcal{T}_h}

Man spricht von einer Gleichverteilung des Fehlers.

4.7.2 Netzverbesserung

Um ein verbessertes Netz zu konstruieren, gibt es zwei Möglichkeiten.

Man kann ein völlig neues Netz auf Basis einer Netzdichtefunktion konstruieren, die mit Hilfe des geschätzten Fehlers bestimmt wird. Der Vorteil besteht in einer optimalen Anpassbarkeit des Netzes an die Lösung, auch an anisotrope Lösungsbesonderheiten. Allerdings erhält man auf diese Weise keine Netzhierarchie, die für schnelle Löser wünschenswert wäre.

Alternativ kann man eine Hierarchie von Netzen erzeugen, indem man diejenigen Elemente markiert, in denen der Fehler hoch ist, und dann diese Elemente teilt. Teilungsideen haben wir bereits weiter oben besprochen. Eine Markierungsstrategie ist, alle Elemente Tzu markieren, für die {\eta _T} > \alpha \max \limits_T {\eta _T},\quad \alpha \in \left( {0,1} \right) ist, aber mindestens einen gewissen Anteil aller Elemente (z.B. mindestens 10%). Dabei bezeichnet {\eta _T} eine Schätzung des lokalen Fehlers {\left\| {u-{u_h}} \right\|_{{H^1}\left( T \right)}}.

4.7.3 Ziel der Fehlerschätzung

Man unterscheidet zwischen globalen Fehlerschätzern \eta und lokalen Fehlerschätzern {\eta _T}.

Für den globalen Fehlerschätzer soll \eta \sim {\left\| {u-{u_h}} \right\|_{{H^1}\left( \Omega \right)}} gelten, d.h. es sollen Konstanten {C_0},{C_1} existieren, so dass

{C_0}{\left\| {u-{u_h}} \right\|_{{H^1}\left( \Omega \right)}} \leq \eta \leq {C_1}{\left\| {u-{u_h}} \right\|_{{H^1}\left( \Omega \right)}}

gilt. Die beiden in dieser Kette enthaltenen Abschätzungen bezeichnet man als Zuverlässigkeit und Effizienz des Fehlerschätzers. Die Größe

\theta : = \mathop {\lim }\limits_{h \to 0} \frac{{\eta \left( {{u_h}} \right)}}{{{{\left\| {u-{u_h}} \right\|}_{{H^1}\left( \Omega \right)}}}}

heißt Effektivitätsindex. Angestrebt wird \theta \approx 1 unabhängig von den konkreten Daten des Randwertproblems. Man spricht dann von einem asymptotisch exakten Fehlerschätzer. Leider ist \theta meist nicht bekannt.

Für den lokalen Fehlerschätzer wünscht man sich natürlich {\eta _T} \sim {\left\| {u-{u_h}} \right\|_{{H^1}\left( T \right)}}. Bisher gibt es aber nur Resultate, die {\eta _T} \leq C{\left\| {u-{u_h}} \right\|_{{H^1}\left( T \right)}} beweisen. Zuverlässigkeit erhält man (bisher) nur global.

4.7.4 Residuen-Fehlerschätzer

Wir betrachten die Finite-Elemente-Lösung des Dirichletproblems für die Poissongleichung und benutzen die Beziehungen {V_{0h}} \subset {V_0} = H_0^1\left( \Omega \right),\:\:a\left( {u,v} \right) = \int\limits_\Omega {\nabla u \cdot \nabla v},
a\left( {u,v} \right) = \left( {f,v} \right)\quad \forall v \in {V_0}

a\left( {{u_h},{v_h}} \right) = \left( {f,{v_h}} \right)\quad \forall {v_h} \in {V_{0h}}

a\left( {u-{u_h},{v_h}} \right) = 0\quad \forall {v_h} \in {V_{0h}}

Mit einer beliebigen Funktion w \in {V_0} gilt

{\left( {\nabla \left( {u-{u_h}} \right),\nabla w} \right)_{{L^2}\left( T \right)}} = \int\limits_{\partial T} {\frac{{\partial \left( {u-{u_h}} \right)}}{{\partial n}}w} -\int\limits_T {\Delta \left( {u-{u_h}} \right)w}

= \int\limits_{\partial T} {\frac{{\partial \left( {u-{u_h}} \right)}}{{\partial n}}w} +\int\limits_T {{r_T}w}

mit dem (elementweise definierten) Elementresiduum

{r_T}: = f+\Delta {u_h}

Summiert man die Fehler über alle Elemente, kommen für jede innere Kante zwei Integrale vor (durch die zwei angrenzenden Elemente), während die Integrale über Randseiten verschwinden (w \in {V_0}).

Wir definieren das Kantenresiduum als den „Sprung der Normalenableitung“ beim Übergang von einem Element zum nächsten (die Lösung ist stetig, aber nicht stetig differenzierbar!):

{r_E}: = \left\{ {\begin{array}{*{20}{c}}{\frac{{\partial {u_h}}}{{\partial {n_E}}}\quad innen} \\{0\quad Rand} \\   \end{array} } \right.

Je kleiner der Sprung der Ableitung ist, desto näher ist die Funktion an einer {H^2}-Funktion (ohne Knicke) dran. Dies entspricht einer besseren Lösung. Eine Verbesserung kann durch das Erhöhen des Polynomgrads erfolgen.

Für den lokalen Fehlerschätzer erhalten wir:

{\eta _T}: = {h_T}{\left\| {{r_T}} \right\|_{{L^2}\left( T \right)}}+\frac{1}{2}h_T^{\frac{1}{2}}\sum\limits_{E \subset \partial T} {{{\left\| {{r_E}} \right\|}_{{L^2}\left( E \right)}}}

Das Elementresiduum geht also mit dem Durchmesser in die Fehlerschätzung ein, das Kantenresiduum mit der Wurzel des Durchmessers. Für den Fehler gilt:

{\left\| {u-{u_h}} \right\|_{{H^1}\left( \Omega \right)}} \leq C{\left[ {\sum\limits_{T \in {\mathcal{T}_h}} {\eta _T^2} \sum\limits_{T \in {\mathcal{T}_h}} {h_T^2\left\| {f-{f_T}} \right\|_{{L^2}\left( T \right)}^2} } \right]^{\frac{1}{2}}}

{\eta _T} \leq C\left[ {{{\left\| {u-{u_h}} \right\|}_{{H^1}\left( {{\omega _T}} \right)}}+{h_T}{{\left\| {f-{f_T}} \right\|}_{{L^2}\left( {{\omega _T}} \right)}}} \right]

Der Term {h_T}{\left\| {f-{f_T}} \right\|_{{L^2}\left( {{\omega _T}} \right)}} wird asymptotisch von höherer Ordnung klein, kann aber auf groben Netzen dominieren. Er gibt an, ob die Daten schon hinreichend ausgeschöpft sind (Oszillationsterm).

4.7.5 Fehlerschätzer auf der Grundlage lokaler Hilfsprobleme

Sei w \subset \Omega ein Teilgebiet. Für den Fehler bei der Poissongleichung gilt die Beziehung

{\left( {\nabla \left( {u-{u_h}} \right),\nabla v} \right)_{{L^2}\left( \omega \right)}} = {\left( {f,v} \right)_{{L^2}\left( \omega \right)}}+\int\limits_{\partial \omega } {\frac{{\partial u}}{{\partial n}}v} -{\left( {\nabla {u_h},\nabla v} \right)_{{L^2}\left( \omega \right)}}\quad \forall v \in {H^1}\left( \omega \right)

Man vergleiche dazu die Herleitung der Variationsformulierung. Durch näherungsweises Lösen auf elementbezogenen Teilgebieten erhält man eine Schätzung des Fehlers u-{u_h}.

num-407-lokale-hilfsprobleme-methode-fehlerschatzung

1. Lösung lokaler Dirichletprobleme:

Man wählt \omega = \bigcup\limits_{E \subset \partial T} {{\omega _E}} und einen Polynomraum {V_T} mit Funktionen, die auf \partial \omega verschwinden, siehe linkes Bild, berechnet {w_T} \in {V_T} aus

{\left( {\nabla {w_T},\nabla v} \right)_{{L^2}\left( \omega \right)}} = {\left( {f,v} \right)_{{L^2}\left( \omega \right)}}-{\left( {\nabla {u_h},\nabla v} \right)_{{L^2}\left( \omega \right)}}\quad \forall v \in {V_T}

und setzt {\eta _T} = {\left\| {{w_T}} \right\|_{{H^1}\left( T \right)}}.

2. Lösung lokaler Neumannprobleme:

Man wählt \omega = T und einen Polynomraum {V_T}, siehe rechtes Bild, bestimmt näherungsweise lokale Neumann-Randbedingungen {g_T}, berechnet {w_T} \in {V_T} aus

{\left( {\nabla {w_T},\nabla v} \right)_{{L^2}\left( T \right)}} = {\left( {f,v} \right)_{{L^2}\left( T \right)}}+\int\limits_{\partial T} {{g_T}v} -{\left( {\nabla {u_h},\nabla v} \right)_{{L^2}\left( T \right)}}\quad \forall v \in {V_T}

und setzt {\eta _T} = {\left\| {{w_T}} \right\|_{{H^1}\left( T \right)}}.

4.7.6 Fehlerschätzer durch Gradientenmittelung

Wenn man eine Approximation G{u_h} von \nabla u konstruieren kann, für die

{\left\| {\nabla u-G{u_h}} \right\|_{{L^2}\left( \Omega \right)}} \leq \alpha {\left\| {\nabla u-\nabla {u_h}} \right\|_{{L^2}\left( \Omega \right)}},\quad \alpha < 1

gezeigt werden kann, dann gilt

\frac{1}{{1+\alpha }}{\left\| {G{u_h}-\nabla {u_h}} \right\|_{{L^2}\left( \Omega \right)}} \leq {\left\| {\nabla u-\nabla {u_h}} \right\|_{{L^2}\left( \Omega \right)}} \leq \frac{1}{{1-\alpha }}{\left\| {G{u_h}-\nabla {u_h}} \right\|_{{L^2}\left( \Omega \right)}}

d.h. {\left\| {G{u_h}-\nabla {u_h}} \right\|_{{L^2}\left( \Omega \right)}} ist als Fehlerschätzer geeignet.

Bei stückweise linearem Ansatz für {u_h} ist \nabla {u_h} stückweise konstant. Alle Ideen zur Konstruktion von {\left. {G{u_h}} \right|_T} beruhen auf einer Mittelung von \nabla {u_h} in einer Umgebung von T. Verbreitet ist eine Mittlung \nabla {u_h} in den Knoten von T und anschließende lineare Interpolation. Als lokalen Fehlerschätzer verwendet man dann

{\eta _T} = {\left\| {G{u_h}-\nabla {u_h}} \right\|_{{L^2}\left( T \right)}}

Dieser Fehlerschätzer approximiert den {H^1}-Seminorm-Anteil des Fehlers erstaunlich gut, besser als man es bisher beweisen konnte. Beweisen konnte man, dass dieser Fehlerschätzer äquivalent zum Kantenanteil des Residuen-Fehlerschätzers ist.

Dieser Schätzer ist genauer als der Residuen-Fehlerschätzer. Allerdings funktioniert er auch nur für Gradienten gut. Andere Terme in der DGL verschlechtern die Qualität der Fehlerschätzung.

4.7.7 Fehlerschätzer für lineare Funktionen (duales Problem)

Oft ist man nicht an der Lösung u der Differentialgleichung interessiert, sondern an einer abgeleiteten Größe, z.B. dem Auftriebsbeiwert, einem linearen Funktional J\left( u \right). Man benötigt dann eine Schätzung des Fehlers J\left( u \right)-J\left( {{u_h}} \right) = J\left( {u-{u_h}} \right).

Wir gehen wieder von den Beziehungen {V_{0h}} \subset {V_0} = H_0^1\left( \Omega \right),\:\:a\left( {u,v} \right) = \int\limits_\Omega {\nabla u \cdot \nabla v},
a\left( {u,v} \right) = \left( {f,v} \right)\quad \forall v \in {V_0}

a\left( {{u_h},{v_h}} \right) = \left( {f,{v_h}} \right)\quad \forall {v_h} \in {V_{0h}}

a\left( {u-{u_h},{v_h}} \right) = 0\quad \forall {v_h} \in {V_{0h}}

aus und betrachten die Lösung w \in {V_0} des dualen Problems

a\left( {v,w} \right) = J\left( v \right)\quad \forall v \in {V_0}

Für den Fehler im Funktional gilt:

J\left( u \right)-J\left( {{u_h}} \right) = \left( {f,w-{I_h}w} \right)-a\left( {{u_h},w-{I_h}w} \right)

Könnte man w berechnen, hätte man den exakten Fehler, sogar mit seinen Beiträgen aus jedem einzelnen Element. Die Kunst besteht in einer möglichst wenig aufwändigen Bestimmung einer guten Näherung {w_h} für w (mit feinerem Netz oder höherem Polynomgrad als die Originalaufgabe). Der Vorteil dieser Idee besteht darin, dass sie auch für nichtlineare Probleme, parabolische Gleichungen, Optimierungsprobleme usw. angewendet werden kann.

Ähnliche Artikel

Kommentar verfassen