Schnelle Assemblierung von FE-Steifigkeitsmatrizen bei Spektralmethoden Freie wissenschaftliche Arbeit zur Erlangung des akademischen Grades „Bachelor of Science“ an der technisch-naturwissenschaftlichen Fakultät der Friedrich-Alexander-Universität Erlangen-Nürnberg Erlangen Eingereicht von: Betreuer: Felix Ott Dr. Nicolas Neuß 21799984 Prof. Dr. Ulrich Rüde Computational Engineering, 6. Semester Dr. Nicolas Neuß Prof. Dr. Ulrich Rüde Erlangen, den Erlangen, den
34
Embed
Schnelle Assemblierung von FE-Steifigkeitsmatrizen bei ... · 3 Finite Elemente Methode 3.1 Grundlagen der Finiten Elemente Methode Aus mathematischer Sicht ist die Finite Elemente
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Schnelle Assemblierung von
FE-Steifigkeitsmatrizen bei Spektralmethoden
Freie wissenschaftliche Arbeit zur
Erlangung des akademischen Grades
„Bachelor of Science“
an der
technisch-naturwissenschaftlichen Fakultät der
Friedrich-Alexander-Universität Erlangen-Nürnberg
Erlangen
Eingereicht von: Betreuer:
Felix Ott Dr. Nicolas Neuß
21799984 Prof. Dr. Ulrich Rüde
Computational Engineering, 6. Semester
Dr. Nicolas Neuß Prof. Dr. Ulrich Rüde
Erlangen, den Erlangen, den
2
Eidesstattliche Erklärung:
„Ich versichere, dass ich die Arbeit ohne fremde Hilfe und ohne Benutzung anderer als der
angegebenen Quellen angefertigt und dass die Arbeit in gleicher oder ähnlicher Form noch
keiner anderen Prüfungsbehörde vorgelegen hat und von dieser als Teil einer Prüfungsleis-
tung angenommen wurde. Alle Ausführungen, die wörtlich oder sinngemäß übernommen
Abb. 4.5: Darstellung der Transformation vom globalen (links) zum lokalen (rechts) Gebiet .............. 20
Abb. 5.1: Gauß-Lobatto-Stützstellen für 𝑁 = 2 ................................................................................... 24
Abb. 5.2: Gauß-Lobatto-Stützstellen für 𝑁 = 3 ................................................................................... 24
Abb. 5.3: Gauß-Lobatto-Stützstellen für 𝑁 = 4 ................................................................................... 24
Abb. 5.4-5.6: Lineare (𝑁 = 2) (Abb. 5.4), quadratische (𝑁 = 3) (Abb. 5.5) und kubische (𝑁 = 4) (Abb. 5.6) Formfunktionen im Eindimensionalen mit 𝑁 Stützstellen der Gauß-Lobatto-Quadratur im Intervall [−1,1] .................................................................................................................................... 24
Abb. 5.7: Lineare Formfunktionen im Zweidimensionalen für 𝑁 = 2 Stützstellen der Gauß-Lobatto-Quadratur im Intervall [−1,1] .............................................................................................................. 25
Abb. 5.8: Quadratische Formfunktionen im Zweidimensionalen für 𝑁 = 3 Stützstellen der Gauß-Lobatto-Quadratur im Intervall [−1,1] ................................................................................................ 25
Abb. 5.9: Beispielfunktion Gl. 5.20 für die rechte Seite des Gleichungssystems 𝐴𝑢 = 𝑓 ..................... 29
Abb. 5.10: Logarithmischer Vergleich der analytischen (𝛼 = 2.4) und der approximierten Fehlerkonvergenz ................................................................................................................................. 29
Abb. 5.11: Aufwand zur Berechnung der zweidimensionalen Steifigkeitsmatrizen abhängig von der Anzahl 𝑁 der Stützstellen in eine Raumrichtung und der Optimierungsstrategie gemessen in Sekunden ............................................................................................................................................. 30
Abb. 5.12: Aufwand zur Berechnung der eindimensionalen Steifigkeitsmatrizen abhängig von der Anzahl 𝑁 der Stützstellen und der Optimierungsstrategie gemessen in Sekunden ............................. 30
𝐻𝑘(𝛺) Sobolev-Raum ℝ Menge der reellen Zahlen ℝ𝑛 Raum der Vektoren mit 𝑛 Komponenten |·| Betrag einer Zahl bzw. Funktion
⟨·,·⟩ Skalarprodukt zweier Vektoren oder Funktionen aus ℝ𝑛
𝐴𝑢 = 𝑓 Gleichungssystem mit Steifigkeitsmatrix 𝐴, rechter Seite 𝑓 und Lö-
sungsvektor 𝑢
𝑢 Exakter Lösungsvektor zum Gleichungssystem 𝐴𝑢 = 𝑓 �̃� Näherungslösung zum Gleichungssystem 𝐴�̃� = 𝑓 [𝐴𝑖]𝑗 mit 𝑖, 𝑗 є 𝛺 Steifigkeitsmatrix der Knoten 𝑖 bzgl. der Knoten 𝑗 im Eindimensionalen
[𝐴𝑖𝑗]𝑘𝑙 mit 𝑖, 𝑗, 𝑘, 𝑙 є 𝛺 Steifigkeitsmatrix der Knoten 𝑖, 𝑗 bzgl. der Knoten 𝑘, 𝑙 im Zweidimensio-
nalen
[𝑀𝑖]𝑗 mit 𝑖, 𝑗 є 𝛺 Massenmatrix der Knoten 𝑖 bzgl. der Knoten 𝑗 im Eindimensionalen
[𝑀𝑖𝑗]𝑘𝑙 mit 𝑖, 𝑗, 𝑘, 𝑙 є 𝛺 Massenmatrix der Knoten 𝑖, 𝑗 bzgl. der Knoten 𝑘, 𝑙 im Zweidimensiona-
len
[𝑓𝑖] mit 𝑖 є 𝛺 Lastvektor mit den Einträgen der Knoten 𝑖 im Eindimensionalen
[𝑓𝑖𝑗] mit 𝑖, 𝑗 є 𝛺 Lastvektor mit den Einträgen der Knoten 𝑖, 𝑗 im Zweidimensionalen
𝐷(𝑥) Dehnratenfunktion im Eindimensionalen
𝐼(𝑓) Wert des Integrals über 𝑓
𝑅𝑛 Fehler einer Quadraturregel zur exakten Lösung
𝜉𝑖 Stützstellen für die Gauß- bzw. Gauß-Lobatto-Quadraturformel
𝜔𝑖 Gewichte für die Gauß- bzw. Gauß-Lobatto-Quadraturformel
4.5 Vergleich der Verfahren und Güte einer Quadraturregel
Um nicht sinnlose Quadraturregeln zu erzeugen, müssen geeignete Kriterien bestimmt werden. Eine
Möglichkeit ist durch den Grad an Genauigkeit der Näherungslösung zur exakten Lösung definiert.
Somit minimiert eine gute Quadraturregel die Norm des Fehlers.27 Eine zweite Möglichkeit ist, den
Grad einer Regel zu bestimmen, welche durch den maximal, exakt integrierbaren Polynomgrad defi-
niert ist. Hierfür muss die Anzahl der existierenden Ableitungen von 𝑓(𝑥) größer als der Grad der
Quadraturregel sein.28
Der Vergleich der Ergebnisse der Verfahren aus den vorherigen Kapiteln zur exakten Lösung ergibt,
dass ∫ sin(𝜋𝑥)𝑑𝑥1
0 durch das Rechteckverfahren und die Sehnentrapezformel auf eine Genauigkeit
von einer und durch die Simpsonregel auf zwei Nachkommastellen genau approximiert wird (siehe
Tab. 4.1).26
24 Nach [L3], S. 138, (4.7), (4.8), (4.9) 25 Aus [L3], S. 140, (4.11) 26 Nach [L3], S. 141 27 Nach [L7], S. 93 28 Nach [L7], S. 116
Verfahren Approximation von ∫ sin(𝜋𝑥)𝑑𝑥1
0
Rechteckverfahren 0,653282
Sehnentrapezformel 0,603552
Simpsonregel 0,636704
Analytische Lösung 2
𝜋≈ 0,636620
Tab. 4.1: Vergleich der Ergebnisse der Verfahren zur exakten Lösung
15
4.6 Gaußsche Quadratur
4.6.1 Grundlagen der Gaußschen Quadratur Der Integrand der Funktion 𝑓(𝑥) kann im Eindimensionalen mithilfe der Gauß-Quadratur29, auch
Gauß-Christoffel-Quadratur genannt,
∫ 𝜔(𝑥)𝑓(𝑥)𝑑𝑥 = ∑𝜔𝑖𝑓(𝜉𝑖)
𝑛
𝑖=1
1
−1
+ 𝑅𝑛 Gl. 4.12
mit den Wichtungsfaktoren 𝜔𝑖 und den Stützstellen 𝜉𝑖 (häufig auch Knoten genannt) näherungs-
weise berechnet werden.30 Zur Vereinfachung der Berechnung sollte zunächst das im beliebigen In-
tervall 𝑥 є [𝑎, 𝑏] gegebene Integral auf das lokale Einheitsintervall 𝜉 є [−1,1] transformiert wer-
den. Die Substitutionen werden entsprechend den Formeln
𝑥(𝜉) =
𝑎 + 𝑏
2+
𝑏 − 𝑎
2𝜉, 𝜉(𝑥) =
𝑎 + 𝑏
𝑎 − 𝑏+
2𝑥
𝑏 − 𝑎 Gl. 4.13
𝑑𝑥 =
𝑏 − 𝑎
2𝑑𝜉, 𝑑𝜉 =
2
𝑏 − 𝑎𝑑𝑥 Gl. 4.14
vorgenommen.31 𝜔(𝑥) ist die Gewichtsfunktion, die im Folgenden definiert wird.
Definition 4.3: Die Gewichtsfunktion 𝜔(𝑥) ist eine Funktion, die nichtnegativ über das gegebene In-
tervall ist. Häufig ist die Funktion normalisiert, sodass ∫ 𝜔(𝑥) = 1𝑏
𝑎. Somit kann das Integral
∫ 𝜔(𝑥)𝑓(𝑥)𝑑𝑥𝑏
𝑎 als gewichteter Durchschnitt von 𝑓(𝑥) interpretiert werden. 32
Beispiel 4.4: Die Funktion 𝑓(𝑥) = 𝑠𝑖𝑛(𝜋𝑥) aus den vorherigen Kapiteln
soll nun in den Grenzen von 𝑎 = 0 bis 𝑏 = 1 mithilfe der Gauß-
Quadratur der Ordnung 𝑛 = 3 integriert werden. Dabei ist nach Gl. 4.13
𝑥(𝜉) =
1
2+
1
2𝜉 Gl. 4.15
und nach Gl. 4.14
𝑑𝑥 =
1 − 0
2𝑑𝜉 =
1
2𝑑𝜉, Gl. 4.16
um das Intervall 𝑥 є [0,1] auf das lokale Einheitsintervall 𝜉 є [−1,1] zu
transformieren. Nun kann folgender Ansatz erstellt werden:
∫ sin(𝜋𝑥)𝑑𝑥 = ∫ sin (𝜋 (1
2+
1
2𝜉))
1
2𝑑𝜉
1
−1
≈ ∑𝜔𝑖𝑓(𝜉𝑖)
𝑛
𝑖=1
1
0
Gl. 4.17
Setzt man nun die Stützstellen und Gewichte, die in Tab. 4.2 vorgegeben sind, ein, erhält man die
Approximationslösung mit
29 Benannt nach Carl Friedrich Gauß, veröffentlich im Jahr 1814 (nach [I2]) 30 Aus [L2], S. 321, (B.1) 31 Nach [L3], S. 143, (4.27), (4.28) 32 Nach [L5], S. 16, (1.10.1)
𝜉𝑖 𝜔𝑖
𝑖 = 1 −√3
5
5
9
𝑖 = 2 0 8
9
𝑖 = 3 √3
5
5
9
Tab. 4.2: Stützstellen und Ge-wichte der Gauß-Quadratur für 𝑛 = 3 Stützstellen aus Tab. 7.1
wird als auf dem Intervall [𝑎, 𝑏] orthogonal bezüglich der Gewichtsfunktion 𝜔(𝑥) bezeichnet, wenn
∫ 𝑃𝑛(𝑥)𝑃𝑚(𝑥)𝜔(𝑥)𝑑𝑥 = 0 𝑓ü𝑟 𝑚 ≠ 𝑛 𝑚, 𝑛 = 0,1,2, …
𝑏
𝑎
Gl. 4.27
gilt.“34 𝑥1, 𝑥2, … , 𝑥𝑛 sind die Nullstellen des Polynoms 𝑃𝑛(𝑥). Wenn
∫ 𝑃𝑛(𝑥)𝑃𝑚(𝑥)𝜔(𝑥)𝑑𝑥 = 1
𝑏
𝑎
𝑓ü𝑟 𝑚 ≠ 𝑛 𝑚, 𝑛 = 0,1,2, … Gl. 4.28
gilt, nennt man diese Polynome orthonormal.
Satz 4.1: „Ist 𝜔(𝑥) eine Gewichtsfunktion, so sind die Nullstellen 𝑥𝑛 der orthogonalen Polynome 𝑃𝑛(𝑥) alle reell, verschieden und liegen innerhalb des Intervalls [𝑎, 𝑏].“35
33 Nach [L3], S. 142, (4.18), (4.19), (4.21) 34 Aus [L3], S. 144, Definition (4.1) 35 Aus [L3], S. 144, Satz (4.1)
17
Definition 4.5: Die Legendre-Polynome 𝑃𝑛(𝑥) sind durch die Gewichtsfunktion 𝜔(𝑥) = 1 im Intervall
[−1,1] definiert.
Weitere Arten von Polynomen sind in Tab. 4.3 gegeben.
Name: Intervall: Gewichtsfunktion: Symbol:
Legendre [−1,1] 1 𝑃𝑛(𝑥)
Jacobi [−1,1] (1 − 𝑥)𝛼(1 + 𝑥)𝛽 , 𝛼, 𝛽 > 1 𝑃𝑛(𝛼,𝛽)
(𝑥)
Tschebyscheff [−1,1] √1 − 𝑥² 𝑈𝑛(𝑥)
Laguerre [0,∞) 𝑒−𝑥 𝐿𝑛(𝑥)
Generalized Laguerre [0,∞) 𝑥𝛼𝑒−𝑥, 𝛼 > −1 𝐿𝑛(𝛼)
(𝑥)
Hermite (−∞,∞) 𝑒−𝑥² 𝐻𝑛(𝑥)
Tab. 4.3: Klassische orthogonale Polynome und ihre Gewichtsfunktion36
Um diese orthogonalen Polynome 𝑃𝑛(𝑥) zu berechnen, gibt es unterschiedliche Möglichkeiten, die
kurz vorgestellt werden sollen.
Orthonormale Polynome:
Um normierte Polynome zu berechnen, kann man den Ansatz 𝑃0(𝑥) = 𝑎 aufstellen. Da für ortho-
normale Polynome die Normierungsbedingung
∫ (𝑃𝑛(𝑥))
2𝑑𝑥 =
2
2𝑛 + 1
1
−1
Gl. 4.29
gleich 1 ist und
⟨𝑃𝑛, 𝑃𝑚⟩ =
0 𝑤𝑒𝑛𝑛 𝑛 ≠ 𝑚1 𝑤𝑒𝑛𝑛 𝑛 = 𝑚
Gl. 4.30
gilt37, kann mit
∫ 𝑃0
2(𝑥)𝑑𝑥 = 2𝑎 = 11
−1
Gl. 4.31
das Polynom 0. Grades zu 𝑃0(𝑥) =1
2 ermittelt werden. Für Polynome höheren Grades erfolgt der
Ansatz sinngemäß.
Rekursionsformel:
Nach der Gleichung
𝑃𝑛(𝑥) =
2𝑛 − 1
𝑛𝑥𝑃𝑛−1(𝑥) −
(𝑛 − 1)
𝑛𝑃𝑛−2(𝑥) 𝑓ü𝑟 𝑛 = 1,2,… 38 Gl. 4.32
können mit
𝑃−1(𝑥) = 0, 𝑃0(𝑥) = 1 Gl. 4.33
die orthogonalen Polynome (siehe Gl. 4.39 bis Gl. 4.42) rekursiv berechnet werden.
36 Nach [L5], S. 24 37 Nach [L5], S. 73, (2.7.4) und S. 27 38 Nach [L5], S. 88, (2.7.3.1)
können ebenfalls orthogonale Polynome mit den Anfangsbedingungen
𝑃−1(𝑥) = 0, 𝑃0(𝑥) = 1, 𝑃1(𝑥) = 𝑥 − 𝛽1 Gl. 4.35
und
𝑎𝑛 =
𝐼𝑛,𝑛−1
𝐼𝑛−1,𝑛−1, 𝑏𝑛 =
𝐼𝑛−1,𝑛−1
𝐼𝑛−2,𝑛−2, Gl. 4.36
𝐼𝑛−1,𝑛−1 = ∫ 𝑥𝑛−1𝑃𝑛−1(𝑥)𝑑𝑥
𝑏
𝑎
Gl. 4.37
und
𝐼𝑛−2,𝑛−2 = ∫ 𝑥𝑛−2𝑃𝑛−2(𝑥)𝑑𝑥
𝑏
𝑎
Gl. 4.38
ermittelt werden.39
Beispielsweise erhält man die orthogonalen Polynome vom Grad 0, 1, 2 und 3 (siehe Abb. 4.4) zu
𝑃0(𝑥) = 1 Gl. 4.39 𝑃1(𝑥) = 𝑥 Gl. 4.40
𝑃2(𝑥) =3
2𝑥2 −
1
2 Gl. 4.41
𝑃3(𝑥) =
5
2𝑥3 −
3
2𝑥. Gl. 4.42
Die Nullstellen des 𝑛-ten Polynoms liegen somit innerhalb des Intervalls [−1,1] und zwischen den
Nullstellen des Polynoms 𝑃𝑛−1(𝑥) vom Grad (𝑛 − 1) und sind reell.
39 Nach [L3], S. 146 ff, (4.40), (4.41), (4.46), (4.47), (4.51) und nach [L5], S. 73, (2.6.7)
19
4.6.3 Bestimmung der Gauß-Quadraturformeln
Die Stützstellen für die Gauß-Quadratur vom Grad 𝑛 sind die Nullstellen des orthogonalen Polynoms
𝑃𝑛(𝑥) vom Grad 𝑛. Die Gewichte sind nach
𝜔𝑖 = ∫ 𝐿𝑖(𝑥)𝑑𝑥
𝑏
𝑎
= ∫ ∏𝑥 − 𝜉𝑗
𝜉𝑖 − 𝜉𝑗𝑑𝑥
1≤𝑗≤𝑛𝑗≠𝑖
𝑏
𝑎
Gl. 4.43
für einen Grad 𝑛 mit den Lagrange-Polynomen 𝐿𝑖(𝜉𝑗) = 𝛿𝑖𝑗 definiert und sind stets positiv (siehe Tab.
7.1).40 Außerdem erfüllen sie die Gleichung
𝜔𝑖 = −
𝑎𝑛+1
𝑎𝑛
1
𝑃𝑛+1(𝜉𝑖)𝑃𝑛′(𝜉𝑖)
Gl. 4.44
mit dem Führungskoeffizienten 𝑎𝑛 des orthonormalen Polynoms 𝑃𝑛(𝑥) = 𝑎𝑛𝑥𝑛 + ⋯.41 Gl. 4.44 kann
mit der Norm des Polynom 𝑛-ten Grades (siehe Gl. 4.29) und
𝑎𝑛 = 𝛽𝑛√2𝑛 + 1
2, Gl. 4.45
wobei
𝛽𝑛 =
1
2𝑛(2𝑛𝑛
) Gl. 4.46
ist42, umgestellt werden zu
𝜔𝑖 = −
1
𝑎𝑛2
1
𝛽𝑛+1𝑃𝑛+1(𝜉𝑖)𝛽𝑛𝑃𝑛′(𝜉𝑖)
= ⟨𝑃𝑛, 𝑃𝑛⟩1
𝑃𝑛+1(𝜉𝑖)𝑃𝑛′(𝜉𝑖)
. Gl. 4.47
Satz 4.2: Da das Polynom 𝑃𝑛 (𝑛 − 1) Koeffizienten besitzt, können maximal Polynome vom Grad 𝑁 ≤
2𝑛 − 1 exakt integriert werden.43
Beweis 4.1: Für die Gauß-Quadratur 𝐼𝑛−1(𝑓) = ∑ 𝜔𝑖𝑓(𝜉𝑖)𝑛𝑖=1 gilt: Falls die Approximation des Inte-
grals 𝐼𝑛−1(𝑓) exakt auf dem Polynom (𝑛 − 1)-ten Grades ist, dann ist diese Approximation auch
exakt für das Polynom (2𝑛 − 1)-ten Grades. 𝜉1, 𝜉2, … , 𝜉𝑛 seien die Nullstellen des 𝑛-ten Orthogonal-
polynoms 𝑃𝑛(𝑥). Diese Behauptung wird wie folgt bewiesen: Ist 𝐼𝑛−1 exakt auf 𝑃𝑛−1 und 𝑃 є 𝒫2𝑛−1,
dann kann 𝑃 mit den Polynomen 𝑄, 𝑅 є 𝑃𝑛−1 als 𝑃 = 𝑄𝑃𝑛 + 𝑅 geschrieben werden. Somit ist
∫ 𝜔𝑃 = ∫ 𝜔(𝑄𝑃𝑛 + 𝑅)
𝑏
𝑎
= ∫ 𝜔𝑅𝑏
𝑎
= 𝐼𝑛−1(𝑅)𝑏
𝑎
, Gl. 4.48
da der erste Term aufgrund der Orthogonalität von 𝑄 und 𝑃𝑛 Null ergibt. Nun kann dies rückwärts auf
die Quadraturformel angewendet werden und es gilt 𝐼𝑛(𝑅) = 𝐼𝑛(𝑃). Damit ist bewiesen, dass die
Gauß-Quadratur für Polynome bis zum Grad (2𝑛 − 1) exakt ist.44
40 Nach [L6], S. 307 41 Nach [L5], S. 88 f, (2.7.3.6), (2.7.3.7) 42 Nach [L5], S. 27 43 Nach [L6], S. 305 44 Nach [L6], S. 306 f
20
Abb. 4.5: Darstellung der Transformation vom globalen (links) zum lokalen (rechts) Gebiet
4.6.4 Gaußsche Quadratur: Zwei- und Mehrdimensional
Durch Multiplikation eindimensionaler Quadraturformeln, wird ein zweidimensionales Integral nach
∫ ∫𝑓(𝜉, 𝜂)𝑑𝜉𝑑𝜂 ≈
1
−1
1
−1
∑∑𝑓(𝜉𝑖, 𝜂𝑖)𝜔𝑖𝜔𝑗
𝑛
𝑗=1
𝑛
𝑖=1
Gl. 4.49
bzw. im Dreidimensionalen analog berechnet. Zur vereinfachten Berechnung sollte das Gebiet auf
das Einheitsgebiet 𝜉, 𝜂 = [−1,1]𝘹[−1,1] transformiert werden. Dies wird durch Abb. 4.545 verdeut-
licht, worauf jedoch nicht genauer eingegangen wird.46
4.6.5 Gauß-Integration mit vordefinierten Stützstellen In diesem Kapitel wird die Gauß-Integration mit fest vorgegebenen Stützstellen 𝑦𝑖 , 𝑖 = 1, … ,𝑚 be-
handelt, im Speziellen die Gauß-Lobatto-Integration, die eben diese Stützstellen bei 𝑦1 = −1 und
𝑦𝑛 = 1 besitzt und die Gewichtsfunktion 𝜔(𝑥) = 1 ist. Ein Integral über 𝑓(𝑥) innerhalb des Intervalls
[𝑎, 𝑏] wird nach Gleichung
∫ 𝑓(𝑥)𝑑𝑥 ≈ ∑𝑎𝑖𝑓(𝑦𝑖) + ∑𝜔𝑖𝑓(𝜉𝑖)
𝑛
𝑖=1
𝑚
𝑖=1
𝑏
𝑎
Gl. 4.50
angenähert, wobei die hintere Summation vom Grad 𝑛 ist und 𝑚 die Anzahl der vordefinierten Stütz-
stellen entspricht. 𝑎𝑖, 𝜔𝑖 und 𝜉𝑖 sind gesucht, sodass sie Polynome vom Grad (𝑚 + 2𝑛 − 1) exakt
integrieren.
Satz 4.3: Bei der Gauß-Quadratur mit vordefinierten Stützstellen ist der maximal integrierbare Poly-
nomgrad (𝑚 + 2𝑛 − 1) und es sind folgende zwei Bedingungen erfüllt:
1. Die Regel ist exakt für Polynome vom Grad ≤ 𝑚 + 𝑛 − 1
2. Für jedes Polynom 𝑝(𝑥) vom Grad ≤ 𝑛 − 1 gilt: ∫ 𝑟(𝑥)𝑠(𝑥)𝑝(𝑥)𝑑𝑥 = 0𝑏
𝑎
45 Nach [L3], S. 154, Abb. 4.4 46 Nach [L3], S. 152 f, (4.74), (4.86)
21
Die Polynome
𝑟(𝑥) = (𝑥 − 𝑦1)(𝑥 − 𝑦2)… (𝑥 − 𝑦𝑚) Gl. 4.51
𝑠(𝑥) = (𝑥 − 𝑥1)(𝑥 − 𝑥2)… (𝑥 − 𝑥𝑛) Gl. 4.52
mit den Stützstellen 𝑦1, 𝑦2, … , 𝑦𝑚 bzw. 𝑥1, 𝑥2, … , 𝑥𝑛 sind vom Grad 𝑚 bzw. 𝑛.47 Für den Beweis wer-
den die Skalarprodukte
⟨𝑢, 𝑣⟩ = ∫ 𝑢(𝑥)𝑣(𝑥)𝑑𝑥
𝑏
𝑎
Gl. 4.53
und
⟨𝑢, 𝑣⟩𝑟 = ∫ 𝑢(𝑥)𝑣(𝑥)𝑟(𝑥)𝑑𝑥
𝑏
𝑎
, 𝑟(𝑥) ≥ 0 Gl. 4.54
definiert.
Beweis 4.2: Der Beweis von (1.) ist trivial, da Funktionen 𝑛-ten Grades mithilfe der Lagrange-
Interpolation exakt integriert werden können. Nun wird davon ausgegangen, dass 𝑝(𝑥) vom Grad ≤
𝑛 − 1 ist. Dann ist 𝑡(𝑥) = 𝑟(𝑥)𝑠(𝑥)𝑝(𝑥) ein Polynom vom Grad ≤ 𝑚 + 2𝑛 − 1. Nimmt man nun an,
dass (1.) und (2.) gilt, kann man 𝑡(𝑥) = 𝑟(𝑥)𝑠(𝑥)𝑞(𝑥) + 𝑣(𝑥) mit dem Polynom 𝑞(𝑥) vom Grad ≤
𝑛 − 1 und 𝑣(𝑥) vom Grad ≤ 𝑚 + 𝑛 − 1 definieren. Folglich ist
∫ 𝑡(𝑥)𝑑𝑥 = ∫ [𝑟(𝑥)𝑠(𝑥)𝑞(𝑥) + 𝑣(𝑥)]𝑑𝑥
𝑏
𝑎
= ∫ 𝑣(𝑥)𝑑𝑥𝑏
𝑎
𝑏
𝑎
, Gl. 4.55
da der erste Teil durch (2.) verschwindet (siehe Beweis der Gauß-Integration im Kap. 4.6.3). Nun ist
𝑟(𝑥)𝑞𝑛(𝑥) mit den orthogonalen Polynomen 𝑞𝑛(𝑥), 𝑛 = 0,1,… eine Linearkombination aus den Po-
lynomen 𝑝𝑛(𝑥),… . , 𝑝𝑛+𝑚(𝑥). Am Beispiel der Gauß-Lobatto-Integration mit den Polynomen
𝑝𝑛(𝑥), 𝑝𝑛+1(𝑥), 𝑝𝑛+2(𝑥) ist dies
𝑟(𝑥)𝑞𝑛(𝑥) = |
𝑝𝑛(𝑥) 𝑝𝑛+1(𝑥) 𝑝𝑛+2(𝑥)
𝑝𝑛(−1) 𝑝𝑛+1(−1) 𝑝𝑛+2(−1)𝑝𝑛(1) 𝑝𝑛+1(1) 𝑝𝑛+2(1)
|. Gl. 4.56
Die Determinante ausmultipliziert ergibt in diesem Fall
Tab. 5.1: Fehlertabelle abhängig von der Anzahl 𝑁 der Stützstel-len im Zweidimensionalen
30
Abb. 5.12: Aufwand zur Berechnung der eindimensio-nalen Steifigkeitsmatrizen abhängig von der Anzahl 𝑁 der Stützstellen und der Optimierungsstrategie gemes-sen in Sekunden
Abb. 5.11: Aufwand zur Berechnung der zweidimen-sionalen Steifigkeitsmatrizen abhängig von der An-zahl 𝑁 der Stützstellen in eine Raumrichtung und der Optimierungsstrategie gemessen in Sekunden
5.7 Schnelle Assemblierung von FE-Steifigkeitsmatrizen
Nun können einige Eigenschaften von Steifigkeitsmatrizen verwendet werden, um die Assemblierung
aus Kap. 5.3 zu optimieren. Der Aufwand zur Berechnung der Steifigkeitsmatrizen im Eindimensiona-
len beträgt 4𝑁3 Float-Operationen. Nutzt man aus, dass Steifigkeitsmatrizen symmetrisch sind, kann
der Aufwand zu 4𝑁3 −𝑁2
2 verringert werden. Dies entspricht der zeitlichen Messung aus Abb. 5.12,
wobei, abhängig von der Anzahl 𝑁 der Stützstellen, der blaue Graph die Zeitmessung ohne Optimie-
rung und der rote Graph die Zeitmessung unter Ausnutzen der Symmetrie darstellt.
Im Zweidimensionalen (siehe Abb. 5.11) sind 11𝑁6 Float-Operationen nötig. Durch die Symmetrie der
Steifigkeitsmatrizen kann erneut erheblich profitiert werden. Zusätzlich können viele Rechenoperati-
onen eingespart werden, falls die Knoten 𝑖, 𝑗 und 𝑘, 𝑙 nicht auf einer Achse liegen, da dann der Ein-
trag der Steifigkeitsmatrix Null ergibt und der Aufwand auf 11𝑁5 reduziert wird (siehe roter Graph).
Außerdem wird beispielsweise der Term 𝐿𝑖′(𝜉𝑚)𝐿𝑗(𝜉𝑏) aus Gl. 5.5 Null, falls 𝑗 ≠ 𝑏. Wird dies durch if-
Abfragen überprüft, kann der Zugriff auf die Matrix 𝐿 vermieden und die Rechenzeit weiter verrin-
gert werden (siehe gelber Graph).
In Matlab besteht die Möglichkeit for-Schleifen auf mehreren Prozessoren verteilt laufen zu lassen.
Wird die äußerste for-Schleife durch „parfor“ auf vier Prozessoren parallelisiert, kann im Zweidimen-
sionalen der Code optimiert werden (siehe Abb. 5.11 lila Graph). Im Eindimensionalen wird kein Vor-
teil erzielt, da die Zeitmessung bereits im Millisekundenbereich liegt und die Matrizen der Stützstel-
len und Gewichte an alle Prozessoren geschickt werden müssen.
Der durchschnittliche Speed-Up im Eindimensionalen liegt für 2 ≤ 𝑁 ≤ 100 bei 2 und im Zweidimen-
sionalen für 9 ≤ 𝑁 ≤ 49 zwischen 2 und 530, welcher mit zunehmender Anzahl an Stützstellen stetig
steigt. Für 𝑁 ≤ 8 erzielt man keine Zeitersparnis.
31
6 Fazit Die Berechnung von Steifigkeitsmatrizen durch das Lösen der Integrale ist zwar exakt, allerdings ist
dies aufwendig und man erhält voll besetzte Matrizen. Die Möglichkeit, die Integrale durch numeri-
sche Quadraturregeln zu approximieren und die Stützstellen 𝜉𝑖 so zu wählen, dass die Formfunktio-
nen mit eingesetzten Gauß-Lobatto-Stützstellen an sehr vielen Knoten Null ergeben, ist eine gute
Alternative. Die Laufzeit kann erheblich gesenkt werden (siehe Abb. 5.11 und Abb. 5.12), da die Steifig-
keitsmatrizen dünnbesetzt sind. Allerdings muss für das Lösen des Gleichungssystems 𝐴𝑢 = 𝑓 zuerst
die Pseudoinverse von 𝐴 gebildet werden.
Im Zweidimensionalen geht der Fehler sehr schnell gegen Null (siehe Abb. 5.10). In der Fehlertabelle
Tab. 5.1 ist ersichtlich, dass ab einer Stützstellenanzahl von 𝑁 = 13 in jede Raumrichtung der Fehler
bereits in der Größenordnung 10−14 liegt. Somit ist die 𝑝-Methode der Finiten Elemente Methode
eine gute Möglichkeit, partielle Differentialgleichungen zu lösen.
Eine Option wäre nun, die Assemblierung auf 𝑛-dimensionale Gebiete zu erweitern bzw. die ℎ-
Version der FEM zu betrachten. Dies würde allerdings den Rahmen dieser Bachelorarbeit überstei-
gen.
32
7 Anhang
7.1 Stützstellen und Gewichte für die Gauß-Quadraturformel
Anzahl
Stützstellen:
Stützstellen 𝝃𝒊: Gewichte 𝝎𝒊:
𝑛 = 1: 𝜉1 = 0 𝜔1 = 2
𝑛 = 2: 𝜉1 = −1
√3≈ −0.577350269189625764509148780
𝜉2 =1
√3≈ 0.57735026918962576450914878050
𝜔1 = 1
𝜔2 = 1
𝑛 = 3: 𝜉1 = −√3
5≈ −0.774596669241483377035853079
𝜉2 = 0
𝜉3 = √3
5≈ 0.774596669241483377035853079
𝜔1 =5
9≈ 0.555555555555555555555555555556
𝜔2 =8
9≈ 0.888888888888888888888888888889
𝜔3 =5
9≈ 0.555555555555555555555555555556
𝑛 = 4: 𝜉1/4 ≈ ±0.86113631159405257522394648889
𝜉2/3 ≈ ±0.33998104358485626480266575910
𝜔1/4 ≈ 0.34785484513745385737306394922
𝜔2/3 ≈ 0.65214515486254614262693605077
𝑛 = 5: 𝜉1/5 ≈ ±0.90617984593866399279762687829
𝜉2/4 ≈ ±0.53846931010568309103631442070
𝜉3 = 0
𝜔1/5 ≈ 0.23692688505618908751426404071
𝜔2/4 ≈ 0.47862867049936646804129151483
𝜔3 ≈ 0.56888888888888888888888888888
𝑛 = 6: 𝜉1/6 ≈ ±0.93246951420315202781230155449
𝜉2/5 ≈ ±0.66120938646626451366139959501
𝜉3/4 ≈ ±0.23861918608319690863050172168
𝜔1/6 ≈ 0.17132449237917034504029614217
𝜔2/5 ≈ 0.36076157304813860756983351383
𝜔3/4 ≈ 0.46791393457269104738987034398
𝑛 = 7: 𝜉1/7 ≈ ±0.94910791234275852452618968404
𝜉2/6 ≈ ±0.74153118559939443986386477328
𝜉3/5 ≈ ±0.40584515137739716690660641207
𝜉4 = 0
𝜔1/7 ≈ 0.12948496616886969327061143267
𝜔2/6 ≈ 0.27970539148927666790146777142
𝜔3/5 ≈ 0.38183005050511894495036977548
𝜔4 ≈ 0.41795918367346938775510204081
𝑛 = 8: 𝜉1/8 ≈ ±0.96028985649753623168356086856
𝜉2/7 ≈ ±0.79666647741362673959155393647
𝜉3/6 ≈ ±0.52553240991632898581773904918
𝜉4/5 ≈ ±0.18343464249564980493947614236
𝜔1/8 ≈ 0.10122853629037625915253135430
𝜔2/7 ≈ 0.22238103445337447054435599442
𝜔3/6 ≈ 0.31370664587788728733796220198
𝜔4/5 ≈ 0.36268378337836198296515044927
𝑛 = 9: 𝜉1/9 ≈ ±0.96816023950762608983557620290
𝜉2/8 ≈ ±0.83603110732663579429942978806
𝜉3/7 ≈ ±0.61337143270059039730870203934
𝜉4/6 ≈ ±0.32425342340380892903853801464
𝜉5 = 0
𝜔1/9 ≈ 0.81274388361574411971892158110
𝜔2/8 ≈ 0.18064816069485740405847203124
𝜔3/7 ≈ 0.26061069640293546231874286941
𝜔4/6 ≈ 0.31234707704000284006863040658
𝜔5 ≈ 0.33023935500125976316452506928
𝑛 = 10: 𝜉1/10 ≈ ±0.97390652851717172007796401208
𝜉2/9 ≈ ±0.86506336668898451073209668842
𝜉3/8 ≈ ±0.67940956829902440623432736511
𝜉4/7 ≈ ±0.43339539412924719079926594316
𝜉5/6 ≈ ±0.14887433898163121088482600112
𝜔1/10 ≈ 0.66671344308688137593568809893
𝜔2/9 ≈ 0.14945134915058059314577633965
𝜔3/8 ≈ 0.21908636251598204399553493422
𝜔4/7 ≈ 0.26926671930999635509122692156
𝜔5/6 ≈ 0.29552422471475287017389299465
Tab. 7.1: Stützstellen und Gewichte für die Gauß-Quadraturformel im Intervall [−1,1]
33
7.2 Stützstellen und Gewichte für die Gauß-Lobatto-Quadraturformel
Anzahl
Stützstellen:
Stützstellen 𝝃𝒊: Gewichte 𝝎𝒊:
𝑛 = 2: 𝜉1/2 = ±1 𝜔1/2 = 1
𝑛 = 3: 𝜉1/3 = ±1
𝜉2 = 0
𝜔1/3 = 0.33333333333333333333333333333
𝜔2 = 1.3333333333333333333333333333
𝑛 = 4: 𝜉1/4 = ±1
𝜉2/3 ± 0.44721359549995793928183473374
𝜔1/4 = 0.16666666666666666666666666666
𝜔2/3 = 0.83333333333333333333333333333
𝑛 = 5: 𝜉1/5 = ±1
𝜉2/4 = ±0.65465367070797714379829245624
𝜉3 = 0
𝜔1/5 = 0.1
𝜔2/4 = 0.54444444444444444444444444444
𝜔3 = 0.71111111111111111111111111111
𝑛 = 6: 𝜉1/6 = ±1
𝜉2/5 = ±0.76505532392946469285100297395
𝜉3/4 = ±0.28523151648064509631415099404
𝜔1/6 = 0.066666666666666666666666666666
𝜔2/5 = 0.37847495629784698031661280821
𝜔3/4 = 0.55485837703548635301672052512
𝑛 = 7: 𝜉1/7 = ±1
𝜉2/6 = ±0.83022389627856692987203221396
𝜉3/5 = ±0.46884879347071421380377188190
𝜉4 = 0
𝜔1/7 = 0.047619047619047619047619047619
𝜔2/6 = 0.27682604736156594801070040629
𝜔3/5 = 0.43174538120986262341787102228
𝜔4 = 0.48761904761904761904761904761
𝑛 = 8: 𝜉1/8 = ±1
𝜉2/7 = ±0.87174014850960661533744576122
𝜉3/6 = ±0.59170018143314230214451073139
𝜉4/5 = ±0.20929921790247886876865726034
𝜔1/8 = 0.035714285714285714285714285714
𝜔2/7 = 0.21070422714350603938299206577
𝜔3/6 = 0.34112269248350436476424067710
𝜔4/5 = 0.41245879465870388156705297140
𝑛 = 9: 𝜉1/9 = ±1
𝜉2/8 = ±0.89975799541146015731234524441
𝜉3/7 = ±0.67718627951073775344588542709
𝜉4/6 = ±0.36311746382617815871075206870
𝜉6 = 0
𝜔1/9 = 0.027777777777777777777777777777
𝜔2/8 = 0.16549536156080552504633972002
𝜔3/7 = 0.27453871250016173528070561857
𝜔4/6 = 0.34642851097304634511513153213
𝜔5 = 0.37151927437641723356009070294
𝑛 = 10: 𝜉1/10 = ±1
𝜉2/9 = ±0.91953390816645881382893266082
𝜉3/8 = ±0.73877386510550507500310617485
𝜉4/7 = ±0.47792494981044449566117509273
𝜉5/6 = ±0.16527895766638702462621976595
𝜔1/10 = 0.022222222222222222222222222222
𝜔2/9 = 0.13330599085107011112622717075
𝜔3/8 = 0.22488934206312645211945782173
𝜔4/7 = 0.29204268367968375787558225737
𝜔5/6 = 0.32753976118389745665651052791
Tab. 7.2: Stützstellen und Gewichte für die Gauß-Lobatto-Quadraturformel im Intervall [−1,1]
34
8 Quellenverzeichnis Literaturquellen:
[L1] Melenk, J.M.: Fully Discrete hp-Finite Elements: Fast Quadrature. Schweden, Göteborg: Research
Report No. 99-15, 19999
[L2] Szabó, B.; Babuška, I.: Introduction to Finite Element Analysis. Formulation, Verification and Vali-
dation. United Kingdom: John Wiley & Sons, Ltd., 2011
[L3] Gaul, L.; Fiedler, C.: Methode der Randelemente in Statik und Dynamik. Stuttgart: Springer-Verlag
Berlin Heidelberg, 1997, 2013
[L4] Schwab, C.: Einführung in die Numerik Partieller Differentialgleichungen: Stationäre Probleme.
Vorlesungsmanuskript. 1998/1999
[L5] J. Davis, P; Rabinowitz, P.: Methods of Numerical Integration. New York 10003: Academic Press,