Beruflich Dokumente
Kultur Dokumente
0 Einleitung 5
1 Finite Differenzen 7
1.1 Finite Differenzen in 1D . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Konvergenztheorie für Differenzenverfahren . . . . . . . . . . . . . . . 11
1.3 Ein zweidimensionales Beispiel . . . . . . . . . . . . . . . . . . . . . . 15
1.4 Totale Variation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4.1 TV-L2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4.2 TV-L1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2 Finite Elemente 35
2.1 Schwache Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2 Approximation durch Finite Elemente . . . . . . . . . . . . . . . . . . 39
2.3 Randwerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.4 Finite Elemente auf Dreiecksgittern . . . . . . . . . . . . . . . . . . . 45
2.5 Assemblierung der Matrizen . . . . . . . . . . . . . . . . . . . . . . . 47
2.6 Randwerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.7 Ein wenig Konvergenztheorie . . . . . . . . . . . . . . . . . . . . . . . 54
2.8 Adaptive Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.8.1 Fehlerschätzer . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.8.2 Verfeinerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.9 Lineare Elastizitätstheorie . . . . . . . . . . . . . . . . . . . . . . . . 61
2.9.1 Diskretisierung . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3 Randelemente 73
3.1 Lösung im Außenraum . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.2 Exkurs: uneigentlich Integrale . . . . . . . . . . . . . . . . . . . . . . 76
3.2.1 Schwach singuläre Integranden . . . . . . . . . . . . . . . . . . 76
3.2.2 Stark singuläre Integranden . . . . . . . . . . . . . . . . . . . 77
3.3 Lösung auf dem Rand . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.4 Diskretisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.4.1 Berechnung der Matrixeinträge . . . . . . . . . . . . . . . . . 80
3
Inhaltsverzeichnis
4
0 Einleitung
Thema: Numerische Lösungsverfahren für partielle Differentialgleichungen
Modellproblem:
∂2 ∂2
u(x, y) + u(x, y) = f (x, y)
∂x2 ∂y 2
Diese sogenannte „Poisson-Gleichung“ tritt beispielsweise bei der Datenglättung oder
der Modellierung eines Schwerefelds auf.
• Finite Differenzen
• Finite Elemente
• Randelemente
• Wolfgang Dahmen und Arnold Reusken: „Numerik für Ingenieure und Natur-
wissenschaftler“ (Kapitel 12), Springer.
• Lothar Gaul, Martin Kögl und Marcus Wagner: „Boundary Element Methods
for Engineers and Scientists“ (Kapitel 4), Springer.
5
1 Finite Differenzen
1.1 Finite Differenzen in 1D
Modellproblem: Datenglättung für Funktionen f : R → R
Als Beispiel wollen wir gemessene Höhendaten entlang eines Weges betrachten. Die
Höhenwerte mögen dabei starkes Rauschen (z.B. durch schlechten GPS-Empfang)
enthalten.
Wie erhält man daraus ein „vernünftiges“ Höhenprofil?
Höhe
gemessenes Höhenprofil
echtes Höhenprofil
Weglänge
f : [0, L] → R.
• Die Funktion u soll nicht weit weg von f sein, d.h. |u(x) − f (x)| soll klein sein.
• u soll nicht verrauscht sein, d.h. |u0 (x)| soll klein sein.
Dies führt uns auf das folgende Funktional, das wir minimieren wollen:
ZL
E[u] := (u(x) − f (x))2 + β(u0 (x))2 dx, β > 0 konstant.
0
7
1 Finite Differenzen
Erinnerung: Hat eine differenzierbare Funktion ein Minimum, so ist die Ableitung
dort 0.
Wie sieht nun die Ableitung von E nach u aus? Wir betrachten hierzu die Rich-
tungsableitung dtd E[u + tv] von E in Richtung einer differenzierbaren Funktion
t=0
v : [0, L] → R für die v(0) = v(L) = 0 gilt. Dann gilt:
d
0 = E[u + tv]
dt t=0
L
d Z
= (u(x) + tv(x) − f (x))2 + β(u0 (x) + tv 0 (x))2 dx
dt
0 t=0
ZL
d d
= (u(x) + tv(x) − f (x))2 + β (u0 (x) + tv 0 (x))2 dx
dt dt
0 t=0
ZL
Kettenregel
= 2 (u(x) + tv(x) − f (x)) v(x) + 2β(u0 (x) + tv 0 (x))v 0 (x) dx
0 t=0
ZL
= 2 (u(x) − f (x)) v(x) + 2βu0 (x)v 0 (x) dx
0
x=L
ZL ZL
part. Int. 00 0
= 2 (u(x) − f (x)) v(x) dx − 2βu (x)v(x) dx + u (x)v(x)
0 0 x=0
ZL
= 2 u(x) − f (x) − βu00 (x) v(x) dx
0
Die Richtungsableitung muss im Minimum für alle Richtungen 0 ergeben, d.h. es muss
gelten:
ZL
2 u(x) − f (x) − βu00 (x) v(x) dx = 0
0
für alle differenzierbaren v : [0, L] → R mit v(0) = v(L) = 0. Daraus ergibt sich
u(x) − f (x) − βu00 (x) = 0 für alle x ∈ (0, L).
Was passiert am Rand?
Einfacher Fall: Wir kennen die Höhen am Start- und Zielpunkt sehr genau. Dann
können wir diese einfach vorschreiben: u(0) = f (0), u(L) = f (L). Insgesamt erhalten
wir:
Problemstellung 1.1. Gegeben sei eine stetige Funktion f : [0, L] → R und β > 0.
Wir suchen eine zweimal stetig differenzierbare Funktion u : [0, L] → R mit
8
1.1 Finite Differenzen in 1D
0
L
L
h= N −1
x1 xN
Approximation der Ableitung? Hierbei dürfen nur Werte an den Knoten verwen-
det werden! Idee: Differenzenquotienten
Nach dem Satz von Taylor gelten für eine viermal stetig differenzierbare Funktion
u die Identitäten
1 1
u(x + h) = u(x) + u0 (x)h + u00 (x)h2 + u000 (x)h3 + O(h4 ),
2 6
1 00 1
u(x − h) = u(x) − u (x)h + u (x)h − u000 (x)h3 + O(h4 ).
0 2
2 6
Addition ergibt u(x + h) + u(x − h) = 2u(x) + u00 (x)h2 + O(h4 ), d.h. es ergibt sich
der folgende Differenzenquotient für die zweite Ableitung
1
u00 (x) =2
u(x − h) − 2u(x) + u(x + h) + O(h2 )
h
00 1
⇒ u (xi ) = 2 u(xi−1 ) − 2u(xi ) + u(xi+1 ) + O(h2 )
h
Die Differentialgleichung (P ) wird also wie folgt approximiert.
u(x + h) − u(x)
w(x) := ,
h
9
1 Finite Differenzen
w(x) − w(x − h)
h
gegeben. Wir haben also erst Vorwärtsdifferenzen und dann Rückwärtsdifferenzen ver-
wendet. Dies hängt damit zusammen, dass wir in höheren Dimensionen ∆ = div∇,
also die Divergenz des Gradienten, haben. Dabei werden Divergenz und Gradient un-
terschiedlich diskretisiert, siehe auch Bemerkung 1.18.
Problemstellung 1.3. Gegeben sei eine stetige Funktion f : [0, L] → R und β > 0.
Sei N ∈ N und h = L/(N − 1). Wir suchen U ∈ RN mit
β
− (Ui−1 − 2Ui + Ui+1 ) + Ui = f (xi ), i = 2, ..., N − 1,
h2
U1 = f (x1 ), (Ph )
UN = f (xN ).
ML: SS10
Ende 2. Stunde
10
1.2 Konvergenztheorie für Differenzenverfahren
Da u und f stetig sind, können wir in a) von Maxima (und nicht nur von Suprema)
reden.
Beweis.
a) Sei x̂ ∈ [0, L] Maximalstelle von u. Falls x̂ = 0 oder x̂ = L, so ist
max u(x) = u(x̂) = f (x̂) ≤ max f (x).
x∈[0,L] x∈[0,L]
Falls x̂ ∈ (0, L), so folgt (x̂ ist Maximalstelle, u ist zweimal stetig differenzierbar)
u00 (x̂) ≤ 0 ⇒ −βu00 (x̂) ≥ 0
⇒ f (x̂) − u(x̂) ≥ 0
⇒ u(x̂) ≤ f (x̂),
11
1 Finite Differenzen
wobei wie oben f (x̂) ≤ maxx∈[0,L] f (x). Für das Minimum betrachte ũ =
−u, f˜ = −f .
Uı̂−1 ≤ Uı̂ ,
Uı̂+1 ≤ Uı̂ .
Daraus folgt
β
Uı̂−1 − 2Uı̂ + Uı̂+1 ≤ 0 ⇒ − (Uı̂−1 − 2Uı̂ + Uı̂+1 ) ≥ 0
n2
⇒ f (xı̂ ) − uı̂ ≥ 0
⇒ uı̂ ≤ f (xı̂ ),
Folgerung 1.7. Das lineare Gleichungssystem zu (Ph ) ist stets eindeutig lösbar.
Beweis. Das lineare Gleichungssystem ist eindeutig lösbar genau dann, wenn seine
Matrix regulär ist. Die Matrix ist regulär, wenn das homogene Gleichungssystem
(mit rechter Seite Null) nur die Lösung U = 0 hat.
Betrachten wir also das homogene Gleichungssystem d. h. für alle i = 1, . . . , N ist
f (xi ) = 0. Es gilt also
0 ≤ min Ui ≤ max Ui ≤ 0,
i=1,...,N i=1,...,N
Kommen wir nun zur zweiten Frage. Dazu benötigen wir vorweg einige Definitionen,
die uns viel Schreibarbeit sparen werden.
12
1.2 Konvergenztheorie für Differenzenverfahren
Ωh := {xi = (i − 1)h | i = 1, . . . , N }
β
(Lβh u)(xi ) := − (u(xi−1 ) − 2u(xi ) + u(xi+1 )) + u(xi ),
h2
diskreter Differentialoperator zu Lβ . Analog schreiben wir für U ∈ RN
β
(Lβh U )i := − (Ui−1 − 2Ui + Ui+1 ) + Ui .
h2
Mit diesen Bezeichnungen können wir nun den Begriff der Konsistenz definieren.
Dies bezeichnet die Approximationsqualität der Ableitungen durch den gewählten
Diskretisierungsansatz.
Satz 1.9 (Konsistenz). Sei u auf Ω viermal stetig differenzierbar. Dann gilt
(mit einer Konstanten C unabhängig von h). Ein solches Verfahren heißt konsistent
der Ordnung 2.
Beweis.
1
| − βu00 (xi ) + u(xi ) − (Lβh u)(xi )| = β| − u00 (xi ) + (u(xi−1 ) − 2u(xi ) + u(xi+1 )|
h2
= βO(h2 )
≤ βCh2 .
Das zweite Gleichheitszeichen folgt aus den Überlegungen anhand des Satzes von
Taylor, die wir in Abschnitt 1.1 angestellt haben.
(mit einer Konstanten C unabhängig von h). Ein solches Verfahren heißt stabil.
13
1 Finite Differenzen
Aus diesen beiden Eigenschaften können wir nun die Konvergenz des Verfahrens her-
leiten. Ein wichtiger Merksatz ist
Konsistenz + Stabilität ⇒ Konvergenz
Satz 1.11 (Konvergenz). Sei u Lösung von (P ) und viermal stetig differenzierbar,
sei U Lösung von (Ph ). Dann gilt
Beweis. Zunächst zeigen wir, dass der Fehler e : Ωh → R, e(xi ) := Ui − u(xi ) eine
Variante des diskreten Problems (Ph ) mit einer speziellen rechten Seite erfüllt:
(Lβh e)(xi ) = (Lβh U )i − (Lβh u)(xi )
= f (xi ) − (Lβh u)(xi )
= −βu00 (xi ) + u(xi ) − (Lβh u)(xi )
= (Lβ u)(xi ) − (Lβh u)(xi ) =: r(xi ) für i = 2, . . . N − 1.
Setzt man zusätzlich r(x1 ) := r(xN ) := 0, so löst e tatsächlich das Problem (Ph ) mit
r anstelle von f . Da unser Verfahren stabil ist, wissen wir also
max |e(xi )| ≤ C max |r(xi )|
i=1,...,N i=1,...,N
Dabei verwenden wir die Bezeichnung C für alle von h unabhängigen Konstanten und
ML: SS10
Ende 4. Stunde verzichten auf eine Unterscheidung.
14
1.3 Ein zweidimensionales Beispiel
Dabei interpretieren wir beispielsweise den Wert 0 als schwarz und den Wert 1 als
weiß.
Wir setzen wieder an
Z
E[u] := β |∇u(x, y)|2 + (u(x, y) − f (x, y))2 dx dy
Ω
Notation 1.12 (Gradient, Divergenz, Laplace). Wir bezeichnen den Gradienten von
u mit !
∂x u
=: ∇u.
∂y u
Die Divergenz von F ist gegeben durch
∂x F1 + ∂y F2 =: divF.
Satz 1.13 (Satz von Gauß). Sei Ω eine offene und beschränkte Teilmenge von R2
mit stückweise glattem Rand. Dann gilt
Z Z
divF = F · ν,
Ω ∂Ω
15
1 Finite Differenzen
Beweis.
2
X 2
X 2
X
div(uF ) = ∂xi (uF )i = ∂xi (uFi ) = (∂xi u + Fi + u∂xi Fi )
i=1 i=1 i=1
X2 2
X
= Fi ∂xi u + u ∂xi Fi = F · ∇u + u(divF ).
i=1 i=1
das L2 -Skalarprodukt. Man rechnet leicht nach, dass h·, ·i symmetrisch, bilinear und
positiv definit ist und damit ein Skalarprodukt. Mit diesem Skalarprodukt erhält man
eine Norm, die L2 -Norm
Z
kuk2L2 (Ω) := hu, uiL2 (Ω) = u2 dx.
Ω
16
1.3 Ein zweidimensionales Beispiel
Bemerkung 1.18. Mit Hilfe des L2 -Skalarprodukts lässt sich die partielle Integration
schreiben als
h∇u, F iL2 (Ω) = hu, −divF iL2 (Ω) .
Vergleichen wir dies mit dem Standardskalarprodukt auf Rn für eine Matrix A und
Vektoren u und F :
hAu, F iRn = hu, At F iRn ,
wobei At die transponierte Matrix ist. Es liegt nun Nahe zu sagen, dass der zu ∇
transponierte Operator −div ist. Dies wird uns später dabei helfen ∇ und div richtig
zu diskretisieren, nämlich so dass der obige Zusammenhang gegeben ist.
Damit dieses Integral für alle v mit v = 0 auf ∂Ω verschwindet, muss gelten
−β∆u + u = f in Ω .
Problemstellung 1.19. Es seien Ω = (0, 1)2 , Ω̄ = [0, 1]2 und ∂Ω = Rand von Ω.
Ferner sei f : Ω̄ → R stetig. Gesucht ist eine zweimal stetig differenzierbare Funktion
u : Ω̄ → R mit
Nun approximieren wir die kontinuierliche Funktion u wiederum auf einem Gitter mit
Gitterweite h = N1−1 , dabei soll jeder Gitterpunkt einem Pixel des ursprünglichen
Bildes entsprechen.
17
1 Finite Differenzen
0 1
Wir definieren die Knoten (xi , yj ) = ((i − 1)h, (j − 1)h) mit den Knotenwerten Uij =
u(xi , yj ). Ein Bild bestehe aus N × N Pixeln und Uij entspreche dem Grauwert des
Pixels (i, j).
Wie approximieren wir nun ∆u(x, y)? Im Kontinuierlichen ist
also die Summe aus den zweiten Richtungsableitungen. Zur Approximation benutzen
wir die bekannte eindimensionale Approximation der Richtungsableitungen:
1
∂xx u(xi , yj ) ≈ (u(xi−1 , yj ) − 2u(xi , yj ) + u(xi+1 , yj )) ,
h2
1
∂yy u(xi , yj ) ≈ 2 (u(xi , yj−1 ) − 2u(xi , yj ) + u(xi , yj+1 )) .
h
18
1.3 Ein zweidimensionales Beispiel
Die erste Variante wird z.B. in MATLAB und Fortran benutzt, die zweite z.B. in C.
ML: SS10
Ende 6. Stunde
Beobachtung: Das Bild ist kaum noch verrauscht, aber “verschwommen”. Woran
liegt das?
Exkurs: Wärmeleitungsgleichung
Wir betrachten das Anfangswertproblem
∂t u − ∆u = 0 t > 0, x ∈ R2 ,
u=f t = 0, x ∈ R2 .
u(x, τ ) − u(x, 0)
− ∆u(x, τ ) = 0
τ
⇐⇒ u(x, τ ) − τ ∆u(x, τ ) = u(x, 0)
⇐⇒ u(x, τ ) − τ ∆u(x, τ ) = f (x)
und mit τ := β
⇐⇒ − β∆u(x, β) + u(x, β) = f.
19
1 Finite Differenzen
0 d
Die Funktion u ist also gegeben durch
0
x≤0
1
u(x) =
d
x 0≤x≤d.
1 x≥d
Wir interessieren uns zunächst für den ersten Beitrag der Energie, also für u0 (x)2 dx.
R
Da die Ableitung außerhalb der Intervalls (0, d) verschwindet, betrachten wir nur
dieses Intervall:
Z d Z d 2
1 1 Zd 1 1
u0 (x)2 dx = dx = 2
1= 2
(d) = .
0 0 d (d) 0 (d) d
Dieser Wert wird kleiner, wenn d groß ist. Wir sehen also, dass dieser Energiebei-
trag, den wir ja zur Verringerung des Rauschens angesetzt hatten, lange Übergänge
bevorzugt und damit die Unschärfe erzeugt.
Würden wir statt dessen die Enegie u0 (x) dx (also ohne das Quadrat) betrachten,
R
so erhielten wir
Z d Z d
1 1Z d 1
u0 (x) dx = dx = 1 = (d) = 1.
0 0 d d 0 d
Die Energie des Übergangs ist also unabhängig von der Länge des Übergangs! Es soll-
ten also auch steile Übergänge und somit scharfe Kanten möglich sein. Da die Energie
nicht von der Richtung des Übergangs abhängen darf und nicht negativ werden soll,
müssen wir noch den Betrag von u0 nehmen. Täten wir das nicht, könnte man durch
Einfügen von zusätzlichen Übergängen in Gegenrichtung die Energie verringern.
20
1.4 Totale Variation
1.4.1 TV-L2
Wir benutzen also die neue Energie
Z
E[u] = β |∇u| + (u − f )2 . (1.1)
Ω
Ω |∇u| bezeichnet man mit Totale Variation von u, kurz TV. Der zweite
R
Den Term
Term, Ω (u − f )2 , ist die L2 -Norm von u − f . Daher bezeichnet man die Energie mit
R
TV-L2 .
Da die Betragsfunktion nicht differenzierbar, können wir unsere bisherige Vorgehens-
weise, nämlich die erste Variation der Energie zu berechnen, nicht mehr anwenden.
Um dieses Problem zu umgehen, verwenden wir folgende Darstellung
da p auf dem Rand verschwindet. Wir betrachten die Gleichung nun punktweise. Falls
∇u(x) = 0, dann ist offenbar für alle p die Gleichung |∇u| = ∇u · p erfüllt. Nehmen
wir nun also an, dass ∇u(x) 6= 0. Es ist ∇u · p ≤ |∇u| |p| (∇u und p sind in jedem
Punkt Vektoren) und es gilt Gleichheit, falls ∇u und p parallel sind, d.h. p = λ∇u
mit λ ∈ R. Um die Beschränkung |p| ≤ 1 einzuhalten, wählen wir
∇u
p=± .
|∇u|
wobei die Bedingungen an p aus dem Satz mit |p| ≤ 1 abgekürzt wurden.
21
1 Finite Differenzen
Wir können nun die Minimierungsaufgabe minu F [u] (für p fest) wie üblich durch
berechnen der ersten Variation lösen:
d d Z
0 = F [u + tv] = β(u + tv)(divp) + (u + tv − f )2
dt t=0 dt Ω t=0
Z
= βv(divp) + 2(u + tv − f )v
Ω t=0
Z
= (β(divp) + 2(u − f )) v.
Ω
Statt der Minimierung eines nicht differenzierbaren Funktionals haben wir also nun
die Maximierung unter Nebenbedingungen eines differenzierbaren Funktionals erhal-
ten. Hat man das Maximum p∗ gefunden, so erhält man die Funktion u∗ durch (1.2).
heißt
L(p, λ) := f (p) + λg(p)
22
1.4 Totale Variation
Die zweite Gleichung gilt, da die Nebenbedingung erfüllt sein muss. Die erste Glei-
chung besagt, dass ∇f (p∗ ) in die selbe Richtung wie ∇g(p∗ ) zeigt. Der Anteil von
∇f (p∗ ), der senkrecht zu ∇g(p∗ ) ist – also tangential zur durch g(p) = 0 beschriebe-
nen Niveaumenge – muss nämlich Null sein.
Die selbe Funktion L(p, λ) kann man auch im Fall von Ungleichungs-Nebenbedingun-
gen definieren. Wir betrachten nun zur Veranschaulichung die verschiedenen Fälle,
wo das unrestringierte Minimum von f in Bezug auf die zulässige Menge liegt:
Im Inneren Auf dem Rand Außen
minf
minf ∇g
minf ∇f = 0
∇f = 0 ∇f
Nun definieren wir einige Begriffe, die wir bei der Behandung von Ungleichungs-
Nebenbedingungen benötigen.
23
1 Finite Differenzen
gilt.
Betrachtet man für eine zweimal stetig differenzierbare Funktion f das entsprechende
Restglied der Taylorentwicklung, so sieht man, dass diese Ungleichung jedenfalls dann
erfüllt ist, wenn die Hesse-Matrix von f positiv semidefinit ist.
f (y + h) ≥ f (y) + f 0 (y)h,
der Graph der Funktion verläuft also immer oberhalb der Tangente.
ML: SS10
Ende 8. Stunde
Nun kommen wir zu den Optimalitätsbedingungen.
heißt
L(p, λ) := f (p) + λg(p)
Lagrange-Funktion und λ ∈ R heißt Lagrange-Multiplikator. Ein Punkt (p∗ , λ∗ ) ∈
Rn × R heißt KKT-Punkt (nach Karush, Kuhn und Tucker) von (1.3), wenn er die
Bedingungen
∇p L(p∗ , λ∗ ) = 0
λ∗ ≥ 0
g(p∗ ) ≤ 0
λ∗ g(p∗ ) = 0
erfüllt.
Bemerkung 1.26. Die letzte Bedingung heißt, dass in einem KKT-Punkt immer
λ∗ = 0 oder g(p∗ ) = 0 gilt. Im ersten Fall ist p∗ auch ein Minimum von f ohne
Nebenbedingung, denn L(p, 0) = f (p) und daher 0 = ∇p L(p∗ , 0) = ∇f . Wir sagen in
diesem Fall, dass die Nebenbedingung nicht aktiv ist. Im zweiten Fall, wenn g(p∗ ) = 0,
liegt p∗ also auf dem Rand des zulässigen Gebietes. Wir sagen, die Nebenbedingung
ist aktiv.
24
1.4 Totale Variation
Damit erhalten wir auch im zweiten Fall f (p) ≥ f (p∗ ). Da dies für alle zulässigen p
gilt, ist p∗ ein Minimierer von f .
Beispiel (in 2D):
! !2
x x0
f (x, y) = − mit x0 ∈ R.
y 0
Wir berechnen den KKT-Punkt zum Minimierungsproblem
min f (x, y).
x2 +y 2 ≤1
25
1 Finite Differenzen
f (x) f (x)
f (x)
x x x
−1 1 −1 1 −1 1
d Z β2
0= −βf (divp + tdivq) + (divp + tdivq)2
dt Ω 4 t=0
2 Z
Z
β
= −β f (divq) + 2(divp + tdivq)(divq)
Ω 4 Ω t=0
2 Z
Z
β
= −β f (divq) + (divp)(divq)
Ω 2 Ω
Z
β2 Z
= β ∇f · q − ∇divp · q
Ω 2 Ω !
Z
β2
= − ∇divp + β∇f · q.
Ω 2
Dabei verwenden wir wieder Testfunktionen q, die auf dem Rand Null sind, so dass
das Randintegral bei der partiellen Integration wegfällt. Die erste Variation ist also
!
β
−β∇ divp(x) − f (x) .
2
26
1.4 Totale Variation
Wenn wir die erste Variation statt des Gradienten verwenden, erhalten wir als Be-
dingung für einen KKT-Punkt
!
β
− β∇ divp(x) − f (x) + 2λ(x)p(x) = 0. (1.4)
2
β β
Lemma 1.28. Es ist λ(x) = 2
∇ 2
(divp(x)) − f (x) .
Beweis. Wir zeigen die Aussage wieder punktweise. Falls λ(x) > 0, dann muss |p| = 1
sein. Nehmen wir den Betrag von (1.4), so erhalten wir in x
β β
λ(x) = |λ(x)| = |λ(x)p(x)| = 2
∇ 2
(divp(x)) − f (x) .
Falls λ(x) = 0, so ist nach (1.4) auch die rechte Seite Null.
Einsetzen liefert
β β
−∇ 2
(divp(x)) − f (x) + ∇ 2
(divp(x)) − f (x) p(x) = 0. (1.5)
Diese Gleichung wollen wir nun mit Hilfe einer Fixpunktiteration numerisch lösen.
Fixpunktiterationen
Allgemein ist eine Fixpunktgleichung von der Form f (x∗ ) = x∗ . Gesucht ist also
ein Fixpunkt x∗ von f . Man kann nun eine Gleichung in eine Fixpunktgleichung
umformulieren und dann die Fixpunktgleichung mittels einer Fixpunktiteration lösen.
Der einfachste Fall einer Fixpunktiteration ist die Richardson-Iteration. Um ein li-
neares Gleichungssytem Ax = b zu lösen, addiert man Null
Ax = b ⇐⇒ x − x + Ax = b ⇐⇒ x = x + b − Ax
und setzt
xn+1 = xn + b − Axn ⇐⇒ xn+1 = (id − A)xn + b. (1.6)
ML: SS10
Ende 10. Stunde
∗ ∗ ∗ ∗
Gesucht ist nun x mit x = (id − A)x + b und somit Ax = b. Die Konvergenz der
Iteration (1.6) hängt von den Eigenwerten der Iterationsmatrix (id − A) ab.
Um die Iterationsmatrix zu ändern (und damit das Konvergenzverhalten), kann man
z.B.
27
1 Finite Differenzen
Die Iterationsmatrix ist nun (id + τ A1 )−1 (id − τ A2 ). Um xn+1 zu bestimmen würde
man nicht (id + τ A1 ) invertieren, sondern das Gleichungssystem (1.7a) lösen.
Bevor wir die Fixpunktiteration auf die Gleichung (1.5) anwenden, teilen wie die
Gleichung durch β/2:
−∇ (divp(x)) − β2 f (x) + ∇ (divp(x)) − β2 f (x) p(x) = 0.
• der neue Wert pn+1 einfach und ohne Lösen eines Gleichungssystems berechnet
werden kann,
• die Konvergenz des Verfahrens sich durch die Wahl von τ steuern lässt und
Wir stoppen die Fixpunktiteration, wenn sich p nicht mehr oder kaum noch ändert,
denn wenn pn+1 ≈ pn , dann ist pn (fast) ein Fixpunkt.
Ortsdiskretisierung
Wir benutzen wie in Abschnitt 1.3 ein äquidistantes zweidimensionales Gitter mit
Gitterweite h. Wie vorher Diskretisieren wir die eindimensionalen Richtungsableitun-
gen ∂x und ∂y durch Vorwärtsdifferenzen. Für das Entrauschen eins Bildes schien
unsere Randbedingung u = f auf ∂Ω nicht ideal zu sein, da sich so ein unschöner
Rand bildete. Wir verwenden diesmal die Randbedingung
∇u · ν = 0,
28
1.4 Totale Variation
wobei ν die äußere Normale ist. Bei einem rechteckigen Ω heißt dies, dass ∂x u = 0 am
linken und rechten Rand und ∂y u = 0 am oberen und unteren Rand. Wir erhalten
also für die diskreten, approximierten Gradienten ∂xh und ∂yh
1 (u(x − u(xi , yj )) falls i < N
i+1 , yj )
∂xh u(xi , yj ) = h
0 falls i = N
und
1 (u(x − u(xi , yj )) falls j < N
i , yj+1 )
∂yh u(xi , yj ) = h
0 falls j = N
Das Vektorfeld p speichern wir in zwei Komponenten p(1) und p(2) . Die Divergenz
von p erhält man dann nach Bemerkung 1.18 durch Negieren und Transponieren der
Matrixdarstellung des Gradienten:
(1)
p (xi , yj ) falls i = 1
1
h (1) (1)
(div p)(xi , yj ) = p (xi , yj ) − p (xi−1 , yj ) falls 1 < i < N
h
−p(1) (xi−1 , yj )
falls i = N
(2)
p (xi , yj ) falls j = 1
1
(2) (2)
+ p (xi , yj ) − p (xi , yj−1 ) falls 1 < j < N
h
−p(2) (xi , yj−1 )
falls j = N
Das Aufstellen der Matrizen verläuft analog zu Abschnitt 1.3. Statt spdiags zu ver-
wenden und die entsprechenden Zeilen und Spalten Null zu setzen, kann man auch
die Funktion sparse benutzen. Der Aufruf ist
S=sparse(i,j,s,n,n);
mit Vektoren i, j, s, die für jeden nicht-Null-Eintrag der Matrix einen Eintrag haben.
Die Matrix S ist dann eine n × n Matrix mit Si(k),j(k) = s(k) für alle k. Für den
Gradienten in x-Richtung also z.B.
29
1 Finite Differenzen
col(count)=i*N+j;
val(count)=1/h;
end
end
dx=sparse(row,col,val,rows,rows);
mit θ klein.
Bemerkung 1.30. Mit der Energie aus Abschnitt 1.3 war es egal, ob die Helligkeit
eines Bildpunktes durch Werte in [0, 1] oder [0, 255] (wie imread es liefert) gerechnet
wurde, denn
Z Z
2
E[λu] = β |λ∇u| + (λu − λf ) = λ 2 2
β |∇u|2 + (u − f )2 .
Ω Ω
Als Ergebnis für τ = 7.6 · 10−7 , β = 8 · 10−4 , θ = 10−3 , Ω = [0, 1]2 , h = 1/511 erhalten
wir nach ca. 60 Sekunden
Wie wir sehen, ist das Ergebnis weit weniger verschwommen als zuvor. Ein Nachteil
dieses Verfahrens ist allerdings, dass der Kontrast des Bildes verringert wird.
Bemerkung 1.31. In der Rechnung wurde ein Bild mit den Dimensionen Ω = [0, 1]2
angenommen. Da das Bild 512 × 512 Pixel hat, ergibt sich ein Wert von h = 1/511.
30
1.4 Totale Variation
Hierbei ist zu beachten, dass die Schrittweite τ sich mit h2 verändert. Im Programm
wurde τ = 0.2h2 gesetzt.
Als andere Möglichkeit würde man h = 1 setzen, also Ω = [1, 512]2 . Dann ist τ zwar
unabhängig von der Auflösung des Bildes, aber dafür muss man β anpassen, wenn
sich die Auflösung ändert.
Der Vorteil der ersten Variante ist also, dass man das passende β für ein niedrig
aufgelöstes Bild suchen kann und dann die höher aufgelöste Variante mit demselben
β rechnen kann.
1.4.2 TV-L1
Um den Nachteil des verringerten Kontrastes zu beheben, betrachten wir folgende
weitere Änderung an der Energie
Z
E[u] = β |∇u| + |u − f | .
Ω
Da der zweite Term der (hier nicht eingeführten) L1 -Norm von u − f entspricht,
bezeichnet man diese Energie als TV-L1 . ML: SS10
Ende 12. Stunde
Anders als beim TV-Term, bei dem wir eine äquivalente Formulierung gefunden hat-
ten, wählen wir für den L1 -Term eine Approximation:
Z
1 Z 2
Z
Ẽ[u, v] = β |∇u| + (u + v − f ) + |v| ,
Ω 2ε Ω Ω
R
wobei ε sehr klein ist. Die Idee dahinter ist, dass durch das kleine ε der Term Ω (u +
v − f )2 sehr stark bestraft wird. Für einen Minimierer (u∗ , v ∗ ) der Energie erwarten
wir also u∗ + v ∗ − f ≈ 0, also |v ∗ | ≈ |u∗ − f |. Damit
∗ ∗
Z
∗ 1 Z Z
Ẽ[u , v ] ≈ β |∇u | + 0 + |u∗ − f | = E[u∗ ].
Ω 2ε Ω Ω
Um den Minimierer (u∗ , v ∗ ) zu finden, minimieren wir separat in u und v und iterieren:
Da der Minimierer der Gleiche bleibt, wenn wir die Zahl Ω v k weg lassen und
R
die Energie mit 2ε multiplizieren, können wir auch den Minimierer von
Z Z
min
u
β̃ |∇u| + (u − f˜)2 (1.8a)
Ω Ω
31
1 Finite Differenzen
wobei g = f − un+1 und wir wieder die Zahl β |∇un+1 | weg lassen konnten.
R
Ω
Um (1.8a) zu lösen, können wir also den TV-L2 -Algorithmus aus dem vorigen Ab-
schnitt verwenden. Der zweite Teil (1.8b) lässt sich leicht lösen.
Dazu betrachten wir das 1d Minimierungsproblem
1
min (v − g)2 + |v|
v∈R 2ε
und nehmen an, v ∗ sei ein Minimierer. Dann gibt es drei Möglichkeiten
• v ∗ < 0. Dann ist v ∗ Minimierer von
1
min (v − g)2 − v,
v∈R 2ε
erfüllt also
1 ∗
(v − g) − 1 = 0 ⇐⇒ v ∗ = g + ε
ε
und die Annahme v ∗ < 0 ist äquivalent zu g < −ε.
• v ∗ = 0.
Programmieraufgabe 3.
1. Implementieren Sie das TV-L2 -Verfahren zur Bildglättung in MATLAB als Funk-
tion.
32
1.4 Totale Variation
2. Implementieren Sie das TV-L1 -Verfahren zur Bildglättung in MATLAB und be-
nutzen Sie dabei obige Funktion.
3. Wenden Sie beide Verfahren auf das Testbild (weißer Kreis auf schwarzem
Grund) an. Wie ändert sich das Resultat bei verschiedenen β. Achten Sie auf
den Kontrast, hier die Differenz aus dunkelstem und hellstem Grauwert. Gibt
es einen Zusammenhang zwischen dem Radius des Kreises und dem Verhalten
des TV-L1 -Verfahren?
4. Für welche Werte von τ konvergiert die Iteration und wie schnell?
Bemerkung: Wenn Sie das Bild auf Ω = [0, 1]2 und nicht auf Ω = [1, #Pixel]2
skalieren, also den Gradienten mit h 6= 1 verwenden, können Sie zuerst die kleinen
Testbilder verwenden und mit dem gleichen β dann die großen Testbilder rechnen.
Es spart viel Rechenzeit, wenn man das letzte p aus der inneren (TV-L2 ) Iteration
als Startwert für die nächste innere Iteration verwendet.
Als Ergebnis für τ = 7.6 · 10−7 , β = 2 · 10−3 , θ = 10−3 , L = 1, h = 1/511 und ε = 10−2
erhalten wir nach ca. 35 Minuten
33
2 Finite Elemente
Finite Differenzen haben den Vorteil, einfach implementierbar und effizient zu sein.
Allerdings
• sind sie unflexibel bei der Approximation des Gebiets Ω, falls dieses kein Recht-
eck bildet (z.B. bei Messpunkten auf einem Dreiecksgitter).
• besitzen sie nur dann eine gute Konvergenzordnung, wenn die kontinuierliche
Lösung sehr glatt ist (viermal stetig differenzierbar!)
Abhilfe schafft die sogenannte Finite-Elemente-Methode.
−β∆u + u = f
35
2 Finite Elemente
Stattdessen sagen wir, dass u eine schwache Lösung von −β∆u + u = f ist, wenn für
alle „Testfunktionen“ v gilt
Z
β∇u · ∇v + (u − f )v = 0.
Ω
Damit reicht es, wenn u einmal differenzierbar ist. Allerdings brauchen wir gar nicht,
dass u stetig differenzerbar ist, sonder nur dass
Z
∇u · ∇v
Ω
Definition 2.1. Sei Ω ⊂ Rn beschränkt, der Rand von Ω sei stückweise glatt. Dann
ist C0∞ (Ω) die Menge aller beliebig oft differenzierbarer Funktionen, die in einer Um-
gebung des Randes von Ω Null sind.
Wir nennen wi = ∂i u schwache Ableitung bezüglich xi von u auf Ω, falls für alle
ϕ ∈ C0∞ gilt, dass Z Z
wi ϕ = − u∂i ϕ .
Ω Ω
Bemerkung 2.2.
1. Schreiben wir w := (w1 , . . . , wn ), so erhalten wir
Z Z
wϕ = − u∇ϕ ∀ϕ ∈ C0∞ (Ω)
Ω Ω
oder Z Z
w·Φ=− u(divΦ) ∀Φ : Ω → Rn mit Φi ∈ C0∞ (Ω).
Ω Ω
2. Falls u differenzierbar ist, so ist stimmen die übliche („starke“) Ableitung und
die schwache Ableitung überein: mit w := ∇u erhalten wir
Z Z Z Z Z
w·Φ= ∇u · Φ = − u(divΦ) + uΦ · ν} = − u(divΦ).
Ω Ω Ω ∂Ω Ω
| {z
=0
36
2.1 Schwache Lösungen
−1 ≤ x ≤ 0
0
u00 (x)
00
u (x) = 1 0 < x < 1
x
0 1≤x≤2
1
u00 besitzt keine schwache Ableitung.
Allgemein ist für eine stetige Funktion u : [a, c] → R, die auf den Intervallen (a, b) und
(b, c) differenzierbar ist (im Punkt b jedoch nicht), die schwache Ableitung gegeben
durch
0
u (x) x ∈ (a, b)
w(x) = 0 x=b
0
u (x) x ∈ (b, c)
In der Tat ist
Z c Z b Z c
wϕ = wϕ + wϕ
a a b
Z b Z c
= u0 ϕ + u0 ϕ
a b
Z b Z c
= − uϕ − 0
wϕ0 + uϕ|ba + uϕ|cb
Zac b
0
= − uϕ + u(c) ϕ(c) −u(b)ϕ(b) + u(b)ϕ(b) −u(a) ϕ(a)
a | {z } | {z } | {z }
=0 =0 =0
Z c
0
= − uϕ .
a
Dabei ist u(b) einmal als linksseitiger Grenzwert, einmal als rechtsseitiger zu verste-
hen, die bieden Werte sind also nur gleich, wenn u stetig ist.
Also ist w schwache Ableitung von u, obwohl u im Punkt b nicht differenzierbar ist.
Wir wir gesehen haben, „sieht“ das Integral einzelne Punkte nicht, denn
Z c Z b Z c
u= u+ u
a a b
und somit ist die Festlegung w(b) = 0 beliebig und eigentlich auch überflüssig. Wie
in obigem Beispiel schon geschehen, werden wir die schwache Ableitung in einzelnen
Punkten nicht festlegen.
Wir wollen jetzt noch zeigen, dass die Funktion u aus Beispiel 2.3 schwache Lösung
von
−1 x ∈ (0, 1)
−∆u = f in (−1, 2) mit f (x) =
0 sonst
ist. Dazu ist zu zeigen, dass
Z Z
∇u · ∇ϕ = fϕ ∀ϕ
Ω Ω
gilt. Setzen wir die schwache Ableitung von u ein, erhalten wir
Z 2 Z 0 Z 1 Z 2
0 0 0 0
uϕ = 0ϕ + xϕ + 1ϕ0
−1 −1 0 1
37
2 Finite Elemente
Z 1
=− ϕ + [xϕ]10 + [ϕ]21
0
Z 1 Z 1
=− ϕ + 1ϕ(1) − 0ϕ(0) + ϕ(2) −ϕ(1) = (−1) · ϕ
0 | {z } 0
=0
Z 2
= f ϕ.
−1
Definition 2.4 (Sobolevraum). Sei Ω ⊂ Rn offen mit einem stückweise glatten Rand.
Wir bezeichnen mit H 1 (Ω) die Menge aller Funktionen u aus L2 (Ω), die in alle Rich-
tungen schwach differenzierbar sind deren schwache Ableitung in L2 (Ω) liegt (also
2
Ω (∂xi u) < ∞ für alle i = 1, . . . , N ).
R
i=1
n
Z !
u2 + (∂xi u)2 .
X
=
Ω i=1
Weiter sei H01 (Ω) die Menge der Funktionen u ∈ H 1 (Ω), die beliebig gut in C0∞ (Ω)
approximiert werden können, d.h. jedem ε > 0 gibt es ein uε ∈ C0∞ (Ω) mit
ku − uε k1,Ω < ε.
Die Mengen H 1 (Ω) und H01 (Ω) sind Vektorräume.
Notation 2.5. Wir schreiben kurz kuk0,Ω := kukL2 (Ω) (Null-mal schwach differen-
zierbar) und kuk1,Ω := kukH 1 (Ω) (Ein-mal schwach differenzierbar).
Wir schauen uns nun einige Beispiele für Funktionen aus H 1 (Ω) an. Das wichtigste
Beispiel, nämlich stetige, stückweise differenzierbare Funktionen, haben wir schon
gesehen. In 1d lassen alle Funktionen aus H 1 (Ω) stetig ergänzen, indem
R
man sieR ggf.
auf einer Ausnahmemenge A, die vom Integral „nicht gesehen“ wird ( Ω\A 1 = Ω 1),
umdefiniert.
In höheren Dimensionen müssen Funktionen aus H 1 (Ω) nicht stetig ergänzbar sein.
Betrachten wir z.B. die beiden Funktionen
38
2.2 Approximation durch Finite Elemente
!!
1 1
f (x) = log log 1 + , g(x) = q ,
|x| |x|
die im Nullpunkt eine Singularität besitzen, sich also dort nicht stetig ergänzen lassen.
Für beide Funktionen kann man zeigen, dass sie schwache Ableitungen besitzen (die
außerhalb des Ursprungs ihren klassichen Ableitungen entsprechen), aber nur die
schwache Ableitung von f liegt in L2 (B1 (0)). Damit ist f ∈ H 1 (B1 (0)) und g 6∈
H 1 (B1 (0)). Der Unterschied zwischen beiden Funktionen ist, wie schnell sie gegen
Unendlich gehen.
Schließlich sei noch angemerkt, dass Funktionen mit einem Sprung nicht in H 1 (Ω)
liegen.
Für uns wird im weiteren Verlauf nur das Beispiel der stetigen, stückweise differen-
zierbaren Funktion relevant sein.
Mit diesen Definitionen können wir nun Problemstellung 1.19 wie folgt verallgemei-
nern.
39
2 Finite Elemente
uh
ML: SS10
Ende 14. Stunde
gilt.
1 ϕi
xi−1 xi xi+1
Satz 2.8. Jede stetige, in Bezug auf die Gitterpunkte x1 < . . . < xN stückweise affine
Funktion uh kann als Linearkombination aus Hütchenfunktionen dargestellt werden:
N
X
uh (x) = Ui ϕi (x),
i=1
Nun lässt sich das Problem (P w ) einfach approximieren: Wir ersetzen lediglich H01 (Ω)
durch Vh0 !
40
2.2 Approximation durch Finite Elemente
Die Gleichung (2.1) ist linear in Bezug auf vh . Es genügt also, statt allen vh nur
vh = ϕi für i = 2, . . . , N − 1 zu betrachten, also
Z Z Z
β ∇uh · ∇ϕi + uh ϕi = fh ϕi i = 2, . . . , N − 1.
Ω Ω Ω
Nun können wir noch uh und fh in der Basis darstellen
N
X −1 N
X −1
uh (x) = Uj ϕj (x) und fh (x) = Fj ϕj (x).
j=2 j=2
=: Lij =: Mij
Wir nennen die Matrix M Massematrix und die Matrix L Steifigkeitsmatrix.
Daraus ergibt sich die Matrix-Vektor-Formulierung des Gleichungssystems:
(L + M )U = M F
Bemerkung 2.9. Wir mussten uns bei der Finite-Elemente-Diskretisierung keine
Gedanken über die Art der Approximation des Gradienten machen. Nach Wahl der
Approximationsfunktionen sind die Matrizen durch die Integrale für Mij und Lij ge-
geben, dabei können die schwachen Ableitungen der Basisfunktionen exakt berechnet
werden. Die einzige Approximation findet durch die Wahl des Ansatzraumes Vh bzw.
Vh0 statt.
41
2 Finite Elemente
1 ϕi ϕi+1
xi xi+1
42
2.3 Randwerte
2.3 Randwerte
Bisher haben wir implizit Null-Randwerte durch Wahl der Räume H01 (Ω) bzw. Vh0
vorgeschrieben, also
−β∆u + u = f in Ω
u=0 auf ∂Ω
−β∆u + u = f in Ω
u=f auf ∂Ω
Dazu führen wir das Problem auf ein Problem mit Nullrandwerten zurück: wir setzen
w := u − f . Mit dieser Definition erhalten wir w = 0 auf ∂Ω und
−β∆w + w = β∆f in Ω
w = 0 auf ∂Ω.
43
2 Finite Elemente
L W + M W + L F = 0.
Die (Approximation an die) Funktion u erhält man nach Definition von w durch
u = w + f.
Wir hatten aber gesehen, dass zumindest für die Bildglättung Nullrandwerte nicht
unbedingt ideal sind. Daher betrachten wir wie in Abschnitt 1.4 die Randwerte
∇u · ν = 0.
Diese erhält man, indem man das Problem (P w ) mit H 1 (Ω) statt H01 (Ω) betrachtet:
Gesucht wird eine Funktion u ∈ H 1 (Ω), so dass für alle v ∈ H 1 (Ω)
Z
β∇u · ∇v + (u − f )v = 0
Ω
gilt. Falls u zweimal differenzierbar ist, erhält man mit Hilfe des Satzes von Gauß
Z Z
−β∆u v + (u − f )v + β ∇u · ν v = 0.
Ω ∂Ω
Verwendet man Testfunktionen v mit Nullrandwerten (diese sind zulässig da H01 (Ω) ⊂
H 1 (Ω)), so ergibt sich wie bisher
−β∆u + u = f.
Daher ist Z
∇u · ν v = 0
∂Ω
... ...
0 = x1 L = xN 0 = x1 L = xN
44
2.4 Finite Elemente auf Dreiecksgittern
von ϕN wird jeweils nur über „halbe“ Basisfunktionen integriert, so dass sich dort
auch jeweils der halbe Wert ergibt. Wir erhalten also
1 2 0 1 −1 0
1
4 1 −1 2 −1
h . β
.. ... ... .. .. ..
M= , L= . . . .
6 h
1 4 1 −1 2 −1
0 1 2 0 −1 1
Als Beispiel wollen wir die Generalisierung von DHM (digitalen Höhenmodellen) be-
trachten. Hier besteht die Aufgabe darin, die grobskaligen bzw. die „wichtigen“ Ge-
ländeeigenschaften zu finden. Dazu betrachten wir Dreiecksgitter in den Ebenen (z.B.
Gauß–Krüger-Koordinaten) und der Funktionswert u stellt die Höhe des Gitterpunk-
tes dar. Dies führt auf die bekannte partielle Differentialgleichung
−β∆u + u = f in Ω,
∇u · ν = 0 auf ∂Ω.
Definition 2.11. Eine Triangulierung eines polygonalen Gebietes Ωh ist eine Unter-
teilung von Ωh in Dreiecke, wobei gilt
• ganz Ωh wird überdeckt
45
2 Finite Elemente
xi
x1 x2
Dabei ist es sinnvoll, eine Konvention für die Orientierung der Dreiecke zu haben,
z.B. gegen den Uhrzeigersinn.
In eine Datei schreib man üblicherweise zunächst die Anzahl der Punkte und die
Anzahl der Dreiecke und listet diese dann auf:
4 2
0 0
1 0
0 1
1 1
1 2 4
4 3 1
46
2.5 Assemblierung der Matrizen
ML: SS10
Ende 18. Stunde
Auch in 2d definieren wir wieder eine Basis für stetige, sückweise affine Funktionen:
Definition 2.12. Zu einer Triangulierung wie oben bezeichnet ϕi die stetige stück-
weise affine Funktion, für die am Knoten xj gilt:
(
1 für i = j
ϕi (xj ) = δij =
0 sonst.
Wie in 1d gilt
N
X
uh (x) = Ui ϕi (x).
i=1
für jedes einzelne Dreieck T und für alle ϕi , ϕj , die auf diesem Dreieck nicht Null
sind, aus.
Hierbei wissen wir genau, welche ϕi auf dem Dreieck T nicht Null sind: diejenigen,
die zu einer Ecke des Dreiecks gehören. Für T = (xa , xb , xc ) sind wären das also i, j ∈
{a, b, c}. Dies führt zu 3 × 3-Kombinationen, die auf die entsprechenden Stellen der
Matrix verteilt werden, dabei addiert man die Beiträge aus allen beteiligten Dreiecken
auf.
47
2 Finite Elemente
a c d b
a b c
a a + +
b
c + +
c d a
d
c
a
b
• der Punktemenge, aus der eine Seite besteht und dem zugehörigen Kantenvek-
tor.
Steifigkeitsmatrix
Die Steifigkeitamatrix ist einfacher, denn ∇ϕi und ∇ϕj sind konstante Vektoren auf
T , also
Z
∇ϕi · ∇ϕj = |T | ∇ϕi · ∇ϕj .
T
48
2.5 Assemblierung der Matrizen
xi
ϕi = 1
bi
Daher
Z
1
|∇ϕi |2 = |T |
,
T h2i
Z
1 1
∇ϕi · ∇ϕj = |T | cos(βij ).
T hi hj
Um cos βij zu berechnen, betrachten wir
xi
∇ϕi
βij
δ α αij
αij
xk
γ = 90◦ − α γ ∇ϕj
δ = 90◦ − γ = α
xj
so dass wir cos(βij ) = cos(180◦ − αij ) = − cos(αij ) erhalten. Letzteres können wir
nun einfach aus den Seitenvektoren bestimmen. Wir bezeichnen mit si := xi+2 − xi+1
(und der Konvention, dass die Punkte entgegen des Uhrzeigersinns durchnummeriert
sind, Indizes jeweils modulo 3) die Seite gegenüber von xi . Damit ist
−si · sj
−si · sj = |si | |sj | cos(^(−si , sj )) = |si | |sj | cos(αij ) =⇒ cos(αij ) = .
|si | |sj |
Wir brauchen nun noch die Fläche des Dreiecks und die Länge der Höhe hi . Nach
dem Satz des Heron erhält man mit dem Semiperimeter s = (|s1 | + |s2 | + |s3 |)/2 die
Fläche des Dreiecks durch
q
|T | = s(s − |s1 |)(s − |s2 |)(s − |s3 |).
Damit kann man dann schließlich durch „Fläche gleich Grundseite mal Höhe“ die
Höhe berechnen:
2 |T |
|T | = 21 |si | hi ⇐⇒ hi = .
|si |
49
2 Finite Elemente
Massematrix
Die Einträge der Massematrix berechnen wir durch eine numerische Quadraturformel,
die auf den vorkommenden Funktionen den exakten Wert des Integrals liefert.
Lemma 2.13. Sei T ein Dreieck mit den Seitenmitten a, b, c und p sei quadratisches
Polynom. Dann gilt
Z
|T |
p(x) dx = (p(a) + p(b) + p(c)) (2.2)
T 3
Beweis. Zunächst zeigen wir das Lemma für das Einheitsdreieck T̂ . Es reicht, die
Aussage für die Basis {1, x, y, xy, x2 , y 2 } der quadratischen Polynome zu zeigen. Aus
Symmetriegründen genügt es, die Funktionen {1, x, xy, x2 } zu betrachten. Es gilt
• p(x, y) = 1
1
Z
1 2 1 √
1 dx = 2
, (1 + 1 + 1) = 2
T 3
• p(x, y) = x
Z Z 1 Z 1−y
1 Z 1
2 1Z 1
x dx = x dx dy = (1 − y) dy = 1 − 2y + y 2 dy
T 0 0 0 2 2 0
1 1 1 1 1 1
= 1 − y 2 + y 3 = (1 − 1 + ) = ,
2 3 0 2 3 6
1
2 1 1 1 √
(0 + + ) =
3 2 2 6
• p(x, y) = xy
Z Z 1 Z 1−y
1 Z 1
2 1Z 1
xy dx = xy dx dy = (1 − y) y dy = y − 2y 2 + y 3 dy
T 0 0 0 2 2 0
1 1 2 2 3 1 5 1 1 1 2 1 1 6−8+3 1
= y − y + y = ( − + )= · = ,
2 2 3 4 0 2 2 3 4 2 12 24
1
2 1 1 √
(0 + 0 + ) =
3 4 24
50
2.5 Assemblierung der Matrizen
• p(x, y) = x2
Z
2
Z 1 Z 1−y
1 2
Z 1
x dx = (1 − y)3 dy
x dx dy =
T 0 0 0 3
1Z 1 1 3 1 1
= 1 − 3y + 3y 2 − y 3 dy = y − y2 + y3 − y4
3 0 3 2 4 0
1 3 1 1 8 − 12 + 8 − 2 1
= (1 − + 1 − ) = · = ,
3 2 4 3 8 12
1
2 1 1 1 √
(0 + + ) =
3 4 4 12
Wie sehen nun die Einträge der (lokalen) Massenmatrix aus? Die Basisfunktionen hat
in der Mitte einer Seite den Wert 0, in den beiden anderen der Wert 12 . Mit Lemma
2.13 erhalten wir
Z
|T |
ϕi ϕi = ,
T 6
Z
|T |
ϕi ϕj = für i 6= j
T 12
Für die lokale Massenmatrix erhalten wir also
2 1 1
|T |
MT = 1 2 1 .
12
1 1 2
Bemerkung 2.14 (Mass lumping). Einfacher, aber ungenauer ist die Quadraturfor-
mel Z
|T |
p(x) ≈ (p(x1 ) + p(x2 ) + p(x3 )) ,
T 3
wobei xi die Ecken des Dreiecks sind. Sie ist nur für affine p exakt. Der Vorteil ist,
dass wegen ϕi (xj ) = δij
Z
|T |
ϕi ϕi ≈ (1 + 0 + 0)
T 3
Z
|T |
ϕi ϕj ≈ (0 + 0 + 0) falls i 6= j.
T 3
51
2 Finite Elemente
und so ist auch die Massematrix M eine Diagonalmatrix (und damit sehr effizient in
der Handhabung). Man bezeichnet diesen Ansatz als „lumped masses“.
2.6 Randwerte
Natürliche Randwerte
Wie schon in 1d wird für Randknoten nur der innere Teil der Hütchenfunktion be-
trachtet. Wenn man die Matrix wie oben beschrieben dreicksweise assembliert, ge-
schieht dies automatisch: Es werden für alle Dreiecke im Gebiet die auf dem jeweiligen
Dreieck lebenden Teile der Basisfunktionen integriert.
Null-Randwerte
Um Nullrandwerte zu erhalten, betrachten wir wieder den Raum Vh0 , d.h. nur dieje-
nigen Ansatzfunktionen, die zu inneren Knoten gehören. Unbekannte sind also nur
diejenigen Knoten, die nicht auf dem Rand liegen. Beim Assemblieren beider Matrizen
auf einem Dreieck verwendet man nur die Nicht-Rand-Knoten.
Schwierigkeit: die Nummern der Randknoten sind über die Liste der Knoten verteilt.
Um dies zu umgehen, gibt es zwei Möglichkeiten.
52
2.6 Randwerte
i
↓
0
|
0
i→
0 ··· 0 1 0 ··· 0
0
|
0
Nicht-Null-Randwerte
Genau wie in Abschnitt 2.3 wird dieser Fall auf den Fall von Nullrandwerten zurück
geführt.
−β∆u + u = f in Ω
∇u · ν = 0 auf ∂Ω.
zur Generalisierung digitaler Höhenmodelle auf Dreiecksgittern. Achten Sie auf eine
effiziente Assemblierung der Matrix.
Als Ergebnis für β = 5 · 104 (dieser Wert ist sicherlich zu groß, zerstört also zu viele
Details) erhalten wir
53
2 Finite Elemente
ML: SS10
Ende 22. Stunde
(a − b)2 ≥ 0 ⇐⇒ a2 + b2 − 2ab ≥ 0 ⇐⇒ ab ≤ 12 a2 + 12 b2 .
Damit ist
1 Z Z
|u| |v|
|uv| =
kukL2 (Ω) kvkL2 (Ω) Ω Ω kukL2 (Ω) kvkL2 (Ω)
Z
1 u2 1 v2
≤ 2 +
Ω 2 kuk 2
L (Ω)
2 kvk2L2 (Ω)
1 Z
2 1 Z
= u + v2
2 kuk2L2 (Ω) Ω 2 kvk2L2 (Ω) Ω
1 1
= 2
+ 2
= 1.
Da wir die rechte Seite f durch eine Funktion fh approximiert haben, ist es wichtig zu
wissen, dass kleine Änderungen der rechten Seite nur kleine Änderungen der Lösung
nach sich ziehen.
54
2.7 Ein wenig Konvergenztheorie
−β∆u + u = f in Ω,
u=f auf ∂Ω.
Beweis. Wir können den Beweis auf den Fall von Nullrandwerten zurückführen. Mit
wh = uh − fh war wh Lösung des Problems mit Nullrandwerten (und anderer rechter
Seite). Wenn wir zeigen können, dass für wh
kuh kH 1 (Ω) = kwh + fh kH 1 (Ω) ≤ kwh kH 1 (Ω) + kfh kH 1 (Ω) ≤ (C1 + 1) kfh kH 1 (Ω) .
nach dem Satz von Hölder. Teilen wir nun durch β̃ kwh kH 1 (Ω) , erhalten wir
β
kwh kH 1 (Ω) ≤ kfh kH 1 (Ω) .
β̃
Schließlich C1 := β/ min{β, 1}.
Wir zeigen nun, dass die Genauigkeit der numerischen Lösung wesentlich davon ab-
hängt, wie gut die Lösung u in Vh approximiert werden kann.
55
2 Finite Elemente
Lemma 2.17 (Lemma von Céa). Sei u die exakte und uh die numerische Lösung von
−β∆u + u = f in Ω,
u=0 auf ∂Ω.
Dann ist
max{β, 1}
ku − uh kH 1 (Ω) ≤ inf ku − wh kH 1 (Ω) .
min{β, 1} wh ∈Vh0
Dies ist die Bestapproximationseigenschaft. Bis auf eine Konstante ist die numerische
Lösung so gut, wie die exakte Lösung durch stückweise affine Funktionen (auf dem
gegebenen Gitter) approximiert werden kann. Nun zum
Beweis. Der Einfachheit halber betrachten wir hier nur den Fall, dass f stückweise
affin ist, also fh = f . Da u und uh die exakte und numerische Lösung sind, gilt
Z Z Z
β ∇uh · ∇vh + uh vh = f vh ∀vh ∈ Vh0 , (2.4)
Ω
Z Z Ω Z Ω
Da Vh0 ⊂ H 1 (Ω) gilt (2.5) insbesondere auch für alle vh ∈ Vh0 , also
Z Z Z
β ∇u · ∇vh + uvh = f vh ∀vh ∈ Vh0 . (2.6)
Ω Ω Ω
Z Z
β (∇u − ∇uh ) · ∇vh + (u − uh )vh = 0 ∀vh ∈ Vh0 . (2.7)
Ω Ω
56
2.8 Adaptive Methoden
=β ∇(u − uh ) · ∇(u − wh + wh − uh )
ZΩ
+ (u − uh )(u − wh + wh − uh )
ZΩ Z
=β ∇(u − uh ) · ∇(u − wh ) + (u − uh )(u − wh )
Ω Ω
Z Z (2.7)
+β ∇(u − uh ) · ∇ (wh − uh ) + (u − uh ) (wh − uh ) = 0
Ω | {z } Ω | {z }
=:vh ∈Vh0 =vh
≤ max{β, 1} k∇(u − uh )kL2 (Ω) k∇(u − wh )kL2 (Ω)
+ ku − uh kL2 (Ω) ku − wh kL2 (Ω)
1/2
≤ max{β, 1} ku − uh k2L2 (Ω) + k∇(u − uh )k2L2 (Ω)
1/2
· ku − wh k2L2 (Ω) + k∇(u − wh )k2L2 (Ω)
= max{β, 1} ku − uh kH 1 (Ω) ku − wh kH 1 (Ω) .
Teilen wir nun durch min{β, 1} ku − uh kH 1 (Ω) erhalten wir
max{β, 1}
ku − uh kH 1 (Ω) ≤ ku − wh kH 1 (Ω) .
min{β, 1}
Da wh beliebig war, können wir auch dasjenige wählen, das ku − wh kH 1 (Ω) minimiert.
für eine von u abhängige Konstante C > 0 und die Gitterweite h. Folglich
ku − uh kH 1 (Ω) ≤ C̃h
57
2 Finite Elemente
Schon mit relativ wenigen Gitterpunkten, die sich dort häufen wo sich u stark ändert,
kann die Kurve mit einer stückweise affinen Funktion (rot) gut approximiert werden.
Das Problem ist natürlich, dass wir die Lösung u vor der Berechnung mit einem
gegebenen Gitter gar nicht kennen. Daher verwenden wir folgende Iteration
1. Starte mit grobem Gitter und löse das Problem
2. Markiere mit Hilfe eines Fehlerschätzers die Dreiecke, die verfeinert werden
müssen
3. Verfeinere die markierten Dreiecke
4. Löse das Problem auf dem neuen Gitter
2.8.1 Fehlerschätzer
Als einfachen Fehlerindikator ηT auf einem Dreieck verwenden wir den mit der Sei-
tenlänge gewichteten Sprung der Normalenableitung über die Kanten:
3
" # 2
∂uh
ηT2 :=
X
|si | ,
i=1 ∂νi si
wobei si wieder die Kanten von T sind, |si | deren Länge und [∂uh /∂νi ]si ist der Sprung
der Normalenableitung ∇uh · νi =: ∂uh /∂νi über die Kante si :
" #
∂uh ∂uh ∂uh
= lim (mi + ενi ) − lim (mi − ενi ),
∂νi si
ε&0 ∂νi ε&0 ∂νi
wobei νi die zur Kante si gehörende Normale ist (z.B. si um 90◦ gedreht) und mi ein
Punkt auf si ist.
νi mi
T
mi
58
2.8 Adaptive Methoden
• Wähle Fehlerschranke η
Markiere T zur Verfeinerung, falls ηT > η
• Wähle p ∈ (0, 1)
Markiere diejenigen p · NT Dreiecke mit dem größten ηT
2.8.2 Verfeinerung
Bei der Verfeinerung einer Triangulierung müssen wir darauf achten, dass das neue
Gitter
• Dreiteilung
59
2 Finite Elemente
Keine dieser Operationen ist alleine gesehen optimal. Wir müssen uns also Verfeine-
rungsstrategien anschauen, die die obigen Operationen kombinieren. Da die wieder-
holte Dreiteilung die Winkel zwangsläufig immer weiter verkleinert, werden nur die
beiden anderen verwendet.
Wir diskutieren hier zwei weit verbreitete Strategien. Dazu seien die Dreiecke mar-
kiert, die unterteilt werden sollen (in den Bildern durch ein x dargestellt).
1. Rot-Grün-Verfeinerung
x x
x
x
x
60
2.9 Lineare Elastizitätstheorie
• Falls zwei Kanten geteilt sind, verbinde den Mittelpunkt der längsten
Kante mit dem Mittelpunkt der zweiten Kante sowie der gegenüber-
liegenden Ecke.
61
2 Finite Elemente
Wir wollen dann berechnen, wie sich der Gegenstand verformt und welche Spannungen
auftreten.
Elastizitätstheorie (in 3d) hat Anwendungen in vielen verschiedenen Gebieten, z.B.
bei der Konstruktion von Bauteilen, Häusern, Brücken, etc. oder bei der Ausbreitung
von seismischen Wellen. In letzterem Fall müsste man allerdings die zeitabhängigen
Gleichungen betrachten.
Wir beschäftigen uns hier nur mit der linearen Theorie, gehen also von geringen
Verformungen des Gegenstandes aus.
Bemerkung 2.19. Wir sprechen von elastischer Verformung, wenn der Gegenstand
bei Nachlassen der Kraft wieder in seinen ursprünglichen Zustand zurückkehrt. Bei
einer dauerhaften Verformung sprechen wir von plastischer Verformung.
Wir gehen wie folgt vor: zunächst definieren wir einige grundlegende Begriffe der
Elastizitätstheorie sowie die Energie eines elastischen Gegenstandes bei gegebener
Verformung. Diese Energie wird dann unter gegebenen Kräften minimiert, um die
Verformung zu berechnen.
Sei also Ω ⊂ R2 ein Gebiet mit Rand Γ, das den Gegenstand in seiner Referenzkon-
figuration, also ohne einwirkende Kräfte und frei von Spannungen zeigt.
Der Gegenstand werde durch die Deformation ϕ verformt, d.h. der Punkt x aus der
Referenzkonfiguration befindet sich nach der Verformung an der Position ϕ(x).
ϕ
ϕ(x)
• ϕ stetig differenzierbar,
62
2.9 Lineare Elastizitätstheorie
(−1,1) (1,1)
(−a,b) (a,b)
(−a,−b) (a,−b)
(−1,−1)
( (1,−1)
Dann ist !
a 0
Dϕ = .
0 b
gegeben. Die Matrix DϕT Dϕ heißt Verzerrungstensor (siehe auch der metrische Ten-
sor einer parametrisierten Fläche) und kann als Maß für Längenänderungen im Ma-
terial angesehen werden.
Im Fall DϕT Dϕ = id ändert sich die Länge nicht. Man kann zeigen, dass die De-
formation in diesem Fall eine Starrkörperbewegung, also eine Drehung und/oder Ve-
schiebung ist.
Wir betrachten die über die Starrkörpertransformation hinausgehenden Veränderung
und bezeichnen mit
V := 12 (DϕT Dϕ − id)
die Verzerrung. Ebenso betrachten wir statt der Deformation ϕ die Verschiebung
u := ϕ − id.
63
2 Finite Elemente
also
V = 21 (DuT + Du) + 12 DuT Du.
ML: SS10
Ende 26. Stunde
Wenn Du klein ist, dann ist der quadratische Anteil DuT Du viel kleiner als der lineare
Anteil Du und kann vernachlässigt werden. Wir betrachten im Folgenden nur den Fall
linearer Elastizität und definieren
Der schiefsymmetrische Teil charakterisiert die infinitesimalen Drehungen, die für die
Verzerrung keine Rolle spielen.
Die Flächenänderung wird nach dem Transformationssatz durch den Faktor det Dϕ
beschrieben. Analog zur Längenänderung suchen wir eine Approximation für die Dif-
ferenz det Dϕ − 1, wobei 1 der Faktor einer Starrkörpertransformationen ist, unter
der Annahme dass Du klein ist.
!
∂1 u1 + 1 ∂2 u1
det Dϕ − 1 = det −1
∂1 u2 ∂2 u2 + 1
= (∂1 u1 + 1)(∂2 u2 + 1) − ∂2 u1 ∂1 u2 − 1
= ∂1 u1 + ∂2 u2 + ∂1 u1 ∂2 u2 − ∂2 u1 ∂1 u2
≈ divu
Uns interessieren vor allem die Spannungen, die im Material auftreten. Um die im
Material auftretenden Spannungen zu quantifizieren, stellen wir uns eine durch den
elastischen Körper laufende Fläche vor und untersuchen die Kraft, die auf diese Fläche
wirkt.
64
2.9 Lineare Elastizitätstheorie
ν(x)
Dazu nehmen wir an, dass der Körper entlang dieser Fläche zerschneiden. Um ihn
genauso zu deformieren wie den ursprünglichen Körper, müssen wir auf diese Flä-
che in der Regel eine Kraft ausüben. Diese Kraft lässt sich punktweise durch den
Spannungstensor und die Normale an die Fläche beschreiben:
F (x) = σ(u)ν(x),
wobei ν die Normale an die gedachte Fläche durch den Körper ist. Die Matrix σ(u)
ist der Spannungstensor, gegeben durch
wobei tr ε(u) ∈ R die Spur der Matrix ε(u) ist. Dieser proportionale Zusammen-
hang zwischen Spannung und Verformung heißt auch Hookesches Gesetz. Die Lamé-
Konstanten λ und µ sind materialabhängig.
Mit obiger Formel können wir also bei gegebener Verschiebung die im Material auf-
tretenden Kräfte berechnen. Unser Ziel war aber der umgekehrte Fall: wir haben auf
den Körper wirkende Kräfte vorgegeben und wollen die entstehende Verschiebung
berechnen. Dazu gehen wir wie folgt vor: wir betrachten die elastische Energie ei-
nes Körpers bei gegebenen Kräften und suchen dann diejenige Verschiebung mit der
minimalen Energie.
Wir brauchen zur Formulierung noch die
Notation 2.24. Für zwei n × n-Matrizen A und B schreiben wir (analog zum Ska-
larprodukt zweier Vektoren)
n
X
A:B= Aij Bij .
i,j=1
65
2 Finite Elemente
√
Ebenso wie die Länge oder Norm eines Vektors a durch kak = a · a gegeben ist,
definieren wir die Frobenius-Norm als
v
√ u n
uX
kAkF = A:A= t A2ij .
i,j=1
Satz 2.25 (Elastische Energie). Die elastische Energie eines (isotropen, linear ela-
stischen) Körpers Ω ⊂ R2 bei gegebener Verschiebung u ist gegeben durch
Z
λZ 2
Z Z
E(u) = µ ε(u) : ε(u) + (tr ε(u)) − f · u − g · u,
Ω 2 Ω Ω Γ1
• In der linearen Approximation ist ε(u) ≈ V R, wobei V ein Maß für Längenän-
derungen. Daher „bestraft“ der erste Term, Ω kε(u)k2F , Längenänderungen im
Material.
(DuT
X X X X
1
tr ε(u) = ε(u)kk = 2
+ Du)kk = (Du)kk = ∂k uk
k k k k
= divu.
Der zweite Term ist also kdivukL2 (Ω) und misst die Volumenkontraktion.
Die beiden Terme sind nicht unabhängig voneinander. Es gibt zwar Längenänderun-
gen ohne Volumenkontraktion, aber nicht umgekehrt, denn
Um das Minimum der Energie zu finden, berechnen wir wie in den vorigen Abschnitten
die erste Variation.
Z
λZ
E(u + tv) =µ ε(u + tv) : ε(u + tv) + (divu + tdivv)2
Ω
Z Z 2 Ω
− f · (u + tv) − g · (u + tv).
Ω Γ1
Wegen
ε(u + tv) : ε(u + tv) = ε(u) : ε(u) + 2tε(u) : ε(v) + t2 ε(v) : ε(v)
66
2.9 Lineare Elastizitätstheorie
erhalten wir
d Z Z Z Z
E(u + tv) = 2µ ε(u) : ε(v) + λ (divu)(divv) − f · v − g · v.
dt t=0 Ω Ω Ω Γ1
für alle v. Bevor wir zur Diskretisierung dieser Gleichung kommen, leiten wir noch
die starke Form der Gleichung her und rechnen ein Beispiel.
Um die starke Form herzuleiten, integrieren wir in der schwachen Form partiell. Wir
verwenden die folgende
Div A(x) ist also ein Vektor, bei dem im i-ten Eintrag die Divergenz der i-ten Zeile
von A(x) steht.
Mit dieser Notation können wir die partielle Integration auf matrixwertige Abbildun-
gen verallgemeinern.
Beweis.
Z 2 Z
X 2
X Z Z
A : Dv = Aij ∂j vi = − ∂j Aij vi + Aij vi νj
Ω i,j=1 Ω i,j=1 Ω ∂Ω
2
Z X 2
X 2
Z X 2
X
=− vi ∂j Aij + vi Aij νj
Ω i=1 j=1 Ω i=1 j=1
2
Z X 2
Z X
=− vi (Div A)i + vi (Aν)i
Ω i=1 Ω i=1
Z Z
=− Div A · v + AT v · ν.
Ω ∂Ω
67
2 Finite Elemente
Damit können wir nun in Gleichung (2.8) partiell integrieren. Für den ersten Term
erhalten wir
Z Z Z Z
ε(u) : ε(v) = ε(u) : 12 (Dv T + Dv) = 1
2
ε(u) : Dv T + 1
2
ε(u) : Dv
Ω ΩZ Z Ω Z Ω Z
= 1
2
ε(u)T : Dv + 1
2
ε(u) : Dv = 1
2
ε(u) : Dv + 1
2
ε(u) : Dv
Z Ω Z Ω Z Ω Ω
für alle v. Daher ist die starke Form der Gleichung gegeben durch
−2µ Div ε(u) − λ∇divu = f in Ω
(2µε(u) + λ(divu)id) ν = g auf Γ1
(2µε(u) + λ(divu)id) ν = 0 auf Γ0
u=0 auf ΓD
Mit Hilfe des Spannungstensors lässt sich dies vereinfachen zu
− Div σ(u) = f in Ω (2.9a)
σ(u)ν = g auf Γ1 (2.9b)
σ(u)ν = 0 auf Γ0 (2.9c)
u=0 auf ΓD (2.9d)
Beispiel 2.28. Wir betrachten einen rechteckigen Gegenstand, Ω = (0, L) × (0, R),
und ziehen an zwei Enden des Gegenstandes nach außen, also
−1
auf (0, y) y ∈ (0, R)
0
g=
1
auf (L, y) y ∈ (0, R)
0
Γ1 Γ1
Γ0
(0, 0) (L, 0)
68
2.9 Lineare Elastizitätstheorie
Da nach Definition der Energie diese nicht verändert wird, wenn wir den Körper
verschieben, müssen wir ihn noch „festhalten“, setzen also z.B. ΓD := {(0, 0)}. Wir
betrachten nun die Abbildung
! ! !
α γ1 x b
u(x, y) = + 1 .
γ2 β y b2
| {z }
=:A
also ist ε(u) konstant und damit Div ε(u) = 0. Ebenso ist tr ε(u) = α + β konstant
und daher ∇tr ε(u) = 0. Nun müssen wir überprüfen, ob diese Abbildung die Randbe-
dingungen erfüllen kann.
Festhalten der Körpers (2.9d) liefert b1 = b2 = 0. Für den Spannungstensor erhalten
wir
(2µ + λ)α + λβ = 1
λα + (2µ + λ)β = 0
für die beiden Unbekannten α und β. Im Fall µ = 0 haben diese Gleichungen keine
Lösung. Für µ 6= 0 erhalten wir
2µ + λ λ
α= , β=− .
4µ(µ + λ) 4µ(µ + λ)
µ(γ1 + γ2 ) = 0 =⇒ γ2 = −γ1 .
69
2 Finite Elemente
Den zweiten Term kann man wie folgt interpretieren: sei ϕ̃ eine Drehung um den
Winkel γ, also
! ! ! !
cos(γ) − sin(γ) x cos(γ) − 1 − sin(γ) x
ϕ̃(x, y) = =⇒ ũ(x, y) = .
sin(γ) cos(γ) y sin(γ) cos(γ) − 1 y
Für sehr kleine Winkel γ ist cos(γ) ≈ 1 und sin(γ) ≈ γ (vgl. Taylor-Reihe). Daher
! !
0 −γ x
ũ(x, y) =
γ 0 y
und so kann dieser Term als Linearisierung einer Drehung angesehen werden.
Betrachten wir die Lösungen ohne Drehung, also
! !
1 2µ + λ 0 x
u(x, y) = ,
4µ(µ + λ) 0 −λ y
so sehen wir, dass der Körper wie erwartet in x-Richtung gedehnt wird und in y-
Richtung gestaucht wird. Die Stärke der Stauchung hängt von λ ab. Im Fall λ = 0
wirken keine Kräfte quer zur Zugrichtung und der Körper wird in y-Richtung nicht
gestaucht.
2.9.1 Diskretisierung
Als Basis für den Finite-Elemente-Raum wählen wir die 2N Basisfunktionen ψik (x),
definiert durch
ψik (xj ) = δij ek i, j = 1, . . . , N, k = 1, 2,
wobei ! !
1 0
e1 = und e2 = .
0 1
Es bietet sich an, die Steifigkeitsmatrix in vier Unter-Matrizen zu zerlegen,
!
L11 L12
L= ,
L21 L22
Die Berechnung der Einträge basiert auf dem Transformationssatz und der Ketten-
ML: SS10
Ende 30. Stunde regel.
70
2.9 Lineare Elastizitätstheorie
1. Einem Block, an dem an beiden Seiten gezogen wird. Vergleiche Sie das Ergebnis
mit der analytischen Lösung aus der Vorlesung. Bemerkung. Das Ergebnis aus
der Vorlesung erhalten Sie nur für λ = 0 und diesen Dirichlet-Randwerten.
Können Sie erklären warum?
2. Einem Bauteil mit und ohne Querverstrebung. Finden Sie sinnvolle Werte für µ
und λ und vergleichen Sie die Verschiebungen. Bemerkung. Versuchen Sie z.B.
λ = 1600 und µ = 270.
3. Erweitern Sie den Löser auf nicht-konstante Werte für die Volumenkraft f sowie
für die Parameter λ und µ. Wenden Sie den Löser auf das Beispiel eines Hauses
(hohe Steifigkeit, große Masse) auf einem Hügel (geringere Steifigkeit, niedrigere
Masse bzw. Dichte) an.
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
0 0.5 1 1.5 0 0.5 1 1.5
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
Deutlich sichtbar ist, dass bei gleicher Last die Querverstrebung zu einer viel gerin-
geren Verschiebung führt.
71
2 Finite Elemente
2.5 2.5
2 2
1.5 1.5
1 1
0.5 0.5
0 0
−1 −0.5 0 0.5 1 −1 −0.5 0 0.5 1
Auf Grund des weicheren Materials sinkt das Haus in den Hügel ein.
Hinweis: Damit man überhaupt etwas sieht, wurden die Parameter so gewählt, dass
die Verschiebung groß ist. Eigentlich ist dann das lineare Modell natürlich nicht mehr
gültig.
72
3 Randelemente
Wir betrachten folgendes Modellproblem. Sei Ω ⊂ Rn , n = 2, 3, beschränkt (z.B.
Erde) und Γ der Rand von Ω. Wir betrachten das Gravitationspotential u : Rn → R
im Außenraum
− ∆u = 0 in Rn \ Ω (3.1)
und u soll klein werden, wenn |x| → ∞, z.B.
|u| ≤ c kxk−1 für |x| → ∞, c ∈ R.
Wir haben gegeben ∇u · ν, wobei ν die äußere Normale an Rn \ Ω also die innere
Normale an Ω ist, und suchen u auf Rn \ Ω.
Da Rn \ Ω nicht beschränkt ist, können wir nicht wie bisher das Gebiet triangulieren.
Idee: Wenn ∆ϕ = 0, dann bleibt nur eine Gleichung auf Γ übrig. Um diese zu
diskretisieren, benötigen wir lediglich eine Triangulierung des Randes Γ statt des
Gebietes Rn \ Ω.
73
3 Randelemente
Beweis. Zunächst ist ϕy (x) = ϕ0 (x − y). Es reicht also zu zeigen, dass ∆ϕ0 (z) = 0
für z 6= 0, denn dann
1 1 x x
−2π∇ϕ0 (x) = ∇ (log |x|)) = ∇(|x|) = = 2.
|x| |x| |x| |x|
und damit
!
1 1
−2πdiv∇ϕ0 (x) = div x 2 = 2 divx + x · ∇ |x|−2
|x| |x|
!
2 −3 x 2 2x · x
= 2 + x · −2 |x| = 2−
|x| |x| |x| |x|4
2 2
= 2 − 2 = 0.
|x| |x|
Ebenso für n = 3.
Wir wollen nun ϕ = ϕy in (3.2) wählen und zwar mit y ∈ Rn \Ω. Wegen der Bedingung
x 6= y müssen wir einen Ball Br (y) um y aus dem Integrationsgebiet heraus schneiden.
Hierbei sei r so klein, dass Br (y) ⊂ Rn \ Ω.
Br (y)
74
3.1 Lösung im Außenraum
Lemma 3.2. Seien Br (y) ⊂ Rn und ν innere Normale an Br (y). Dann gilt für r → 0
Z
(I) ϕy ∇u · ν dx → 0.
∂Br (y)
Z
(II) u∇ϕy · ν dx → u(y).
∂Br (y)
75
3 Randelemente
Beweis von Lemma 3.2. Für das Integral (I) erhalten wir
Z Z
ϕy ∇u · ν ≤ max |∇u · ν| |ϕy |
∂Br (y) ∂Br (y) ∂Br (y)
1 Z C Z
=C |log(r)| = |log(r)| 1
2π ∂Br (y) 2π ∂Br (y)
= Cr |log(r)| → 0 für r → 0
1 x−y x−y
∇ϕy (x) = − und ν(x) = − .
2π |x − y|2 |x − y|
Damit
Z
1 Z x−y x−y 1 Z 1
u∇ϕy · ν = u 2 · = u
∂Br (y) 2π ∂Br (y) |x − y| |x − y| 2π ∂Br (y) |x − y|
1 Z
= u(x) dx → u(y)
2πr ∂Br (y)
also Z
u(y) = ϕy ∇u · ν − u∇ϕy · ν. (3.3)
Γ
Wir können also u überall in Rn \ Ω ausrechnen, wenn wir u und ∇u · ν auf Γ kennen!
In unserem Modellproblem kennen wir bereits ∇u · ν auf Γ, wir müssen also noch u
auf Γ berechnen. Bevor wir dazu kommen, müssen wir uns kurz mit der Integration
singulärer Funktionen beschäftigen
F + (x) = x log(x) − x + c.
76
3.2 Exkurs: uneigentlich Integrale
F − (x) = x log(−x) − x + c.
77
3 Randelemente
Γ Γ̃ Γ0ε
y Γ1ε y
Ω Ω̃
ν ν
In dem neuen Gebiet Ω̃ ist nun y ∈ Rn \ Ω̃ und daher können wir das Resultat (3.3)
verwenden: Z
u(y) = ϕy ∇u · ν − u∇ϕy · ν
Γ̃
für alle ε > 0. Wir brauchen also die Werte von ∇u · ν auf Γ̃. Da wir ∇u · ν jedoch
nur auf Γ kennen, betrachten wir den Limes für ε → 0 von
Z Z Z
u(y) = ϕy ∇u · ν − u∇ϕy · ν + ϕy ∇u · ν − u∇ϕy · ν
Γ\Bε (y) Γ1ε Γ1ε
| {z } | {z }
(I’) (II’)
Hierbei gibt θ ∈ (0, 2π] den Limes der Größe des Kreisbogens Γ1ε an. Für einen vollen
Kreis, also θ = 2π erhalten wir das Ergebnis aus Lemma 3.2 zurück. Das Vorzeichen
ist anders, da die Normale hier die äußere Normale an Bε (y) ist, in Lemma 3.2 jedoch
die innere Normale war.
Ist der Rand im Punkt y glatt, so konvergiert Γ1ε gegen einen (kleiner werdenden)
Halbkreis, also ist θ = π und der Koeffizient vor u(y) ist 12 .
Damit !
Z Z
θ
u(y) = lim ϕy ∇u · ν − u∇ϕy · ν + u(y).
ε→0 Γ\Bε (y) Γ\Bε (y) 2π
Da −2πϕy (x) = log(|x − y|) ist, ist das Integral von ϕy ∇u · ν nur schwach singulär
in y, also Z Z
lim ϕy ∇u · ν = ϕy ∇u · ν
ε→0 Γ\Bε (y) Γ
78
3.4 Diskretisierung
Hingegen ist 2π∇ϕy · ν = |x − y|−1 und daher ist das zweite Integral stark singulär
in y. Als Grenzwert verwenden wir den Cauchy’schen Hauptwert
Z Z
lim u∇ϕy · ν = C u∇ϕy · ν.
ε→0 Γ\Bε (y) Γ
Zusammen also
!
θ(y) Z Z
1− u(y) = ϕy ∇u · ν − C u∇ϕy · ν. (3.4)
2π Γ Γ
3.4 Diskretisierung
Es sei Γ eine Fläche im R3 (oder eine Kurve im R2 ). Wir approximieren Γ durch
Dreiecke (oder Geradenstücke), Γh = {Ti }. Für die Approximation von u wählen wir
stückweise konstante Ansatzfunktionen
1 : x ∈ Ti ,
χi (x) = .
0 : x 6∈ Ti ,
Für jedes Dreieck Ti wählen wir einen Punkt yi ∈ Ti . Der Punkt liege im Inneren von
Ti , so also ist für ε klein genug θ(yi ) = π. Damit erhalten wir
1 Z X Z X
Ui = ϕyi (x) Qj χj (x) dx − C ∇ϕyi (x) · ν Uj χj (x) dx
2 Γh j Γh j
X Z X Z
= Qj χj (x)ϕyi (x) dx − Uj C χj (x)∇ϕyi (x) · ν dx
j Γh j Γh
X Z X Z
= Qj ϕyi (x) dx − Uj C ∇ϕyi (x) · ν dx
j Tj j Tj
| {z } | {z }
=:Vij =:Kij
= (V Q)i − (KU )i
79
3 Randelemente
a xa
yi α
Γh t = |x − xa |
Ti
Γ |x − yi | =: d x
Tj
xb
können wir das zweidimensionale Integral über x durch ein eindimensionales Integral
über t transformieren. Nach einer Drehung und Verschiebung können wir annehmen,
dass xa im Nullpunkt liegt und dass die Gerade xa xb auf der x-Achse verläuft, also
! !
0 l
xa = und xb = , l = |xb − xa | .
0 0
Nach dem Kosinussatz ist
d2 = a2 + t2 − 2at cos α,
wobei alle Werte außer t für die gewählten i 6= j fest sind. Daher ist
Z
1 Z Z
2πVij = log dx = log d(x)−1 dx = − 21 log d(x)2 dx
Tj |x − yi | Tj Tj
Z l
= − 21 log(a2 + t2 − 2at cos(α)) dt.
0
80
3.4 Diskretisierung
Für i = j haben ϕyi und ∇ϕyi · ν eine Singularität auf Ti . Wir betrachten zunächst
Z
Kii = C ∇ϕyi (x) · ν(x) dx.
Ti
1
∇ϕyi (x) · ν = − (x − yi ) · ν = 0,
4πr3 x
yi
Im 3-d-Fall ist Ti ∩ Bε eine Kreisscheibe und der Integrand kann analytisch berechnet
werden:
Z Z
ϕyi (x) dx = ϕ0 (x) dx
Ti ∩Bε (yi ) (Ti −yi )∩Bε (0)
Z
= ϕ0 (x) dx,
{z=0}∩Bε (0)
Das Integral über T \ Bε (yi ) ist dagegen problemlos numerisch integrierbar, wobei wir
das Dreieck dafür wieder auf ein Referenzdreieck zurück führen.
Im 2-d-Fall kann Vii vollständig analytisch berechnet werden:
Z Z t2 Z t1 Z t2
−2πVii = log |x − yi | = log |t| = log t + log t
Ti −t1 0 0
= t1 (log(t1 ) − 1) + t2 (log(t2 ) − 1),
81
3 Randelemente
82
4 Finite Differenzen: Wellenfronten
in der Seismik
Wir betrachten die Ausbreitung einer Welle in einem elastischen Material. Uns inter-
essiert nur die Bewegung der Wellenfront.
83
4 Finite Differenzen: Wellenfronten in der Seismik
• nah: deren Nachbarn, für diese ist eine obere Schranke für T bekannt;
Dabei entspricht die Abschätzung von T für Punkte in nah der Ankunftszeit der
Wellenfront, wenn man nur mögliche Wege der Welle berücksichtigt, die vollständig
durch fertig verlaufen.
In jedem Schritt wird ein neuer Punkt nach fertig verschoben. Dies ist der Punkt in
nah mit kleinster Zeit. Da für diesen keine kürzeren Wege mehr hinzukommen können,
ist dessen Zeitabschätzung korrekt. Dadurch entstehen jedoch für die anderen Punkte
in nah neue mögliche Wege, so dass deren Zeiten ggf. verringert werden.
Berücksichtigt werden müssen nur die Nachbarn dieses Punktes, da für alle anderen
Punkte die Ankunftszeit zu einem späterem Zeitpunkt noch einmal aktualisiert wird.
Start:
Schritt:
84
4.2 Die Fast-Marching-Methode
85