155 66 13MB
German Pages 250 [259] Year 1998
Richard Mohr
Numerische Methoden in der Technik
Aus dem Programm _ _ _ _ _ _ _ _ _ _ _ _----..... Mathematik
J. Herzberger Ubungsbuch zur Numerischen Mathematik G. Opfer Numerische Mathematik fiir Anranger H. Spath Numerik J. Werner Numerische Mathematik 2 Bande E. Heinrich, H.-D. Janetzko Mathematica: Yom Problem zum Programm Modellbildung flir Ingenieure und N aturwissenschaftler E. Heinrich, H.-D. Janetzko Das Maple Arbeitsbuch E. Heinrich, H.-D. Janetzko Das Mathematica Arbeitsbuch W. Strampp, V. Ganzha, V. E. Vorozhtsov Hohere Mathematik mit Mathematica 4 Bande
Vieweg ___________________________________ セ@
Richard Mohr
Numerische Methoden in der Technik Ein Lehrbuch mit MATLAB-Routinen
Die Deutsche Bibliothek - CIP-Einheitsaufnahme
Prof. Dr. Richa rd Mohr Fachhochschule Esslingen - Hochschule filr Technik Fachbereich Grundlagen KanalstraBe 33 73728 Esslingen
Aile Rechte vorbehalten © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden, 1998 Der Verlag Vieweg ist ein Unternehmen der Bertelsmann Fachinformation GmbH.
Das Werk und seine Teile sind urheberrechtlich geschiltzt. Jede Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des VerJages unzullissig und strafbar. Das gilt insbesondere fUr Vervielfliltigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.
http://www.vieweg.de Umschlaggestaltung: Ulrike Posselt, Wiesbaden Gedruckt auf sliurefreiem Papier
ISBN-13: 978-3-528-06988-9 e-ISBN-13: 978-3-322-87261-6 DOl: 10.1007978-3-322-87261-6
v
Vorwort Dieses Buch entstand aus Lehrveranstaltungen, die ich im Laufe von zehn Jahren fUr Studierende verschiedenster Fachrichtungen an der FH Esslingen gehalten habe. Vor allem sind hier die Wahlfachvorlesungen zum Thema "Numerische Methoden" fUr Ingenieurstudenten der Fachrichtungen Elektrotechnik, Informatik und Maschinenbau zu nennen. Der zweite Ausgangspunkt fUr die vorliegende Datstellung sind Computer-Praktika fUr denselben Horerkreis, bei denen die Studierenden in die Anwendung des SoftwarePakets MATLAB eingefUhrt wurden. Besonders durch Diskussionen mit Studierenden des Aufbaustudiengangs - bei den en auch bereits mit der Praxis konfrontierte Ingenieure anwesend waren - wurde ich yom Nutzen einer einheitlichen Sicht dieser beiden Aspekte der Ingenieurausbildung iiberzeugt. So entstand dieses etwas andere Lehrbuch. Es versucht, die Darstellung numerischer Verfahren mit einer EinfUhrung in ein Software-Paket zu verbinden. Ausgehend von Grundkenntnissen in Analysis und Linearer Algebra werden die meisten der fUr den Anwender wichtigen Gebiete der numerischen Mathematik abgehandelt; eine Vollstandigkeit wurde nicht angestrebt. Auf strenge mathematische BeweisfUhrung wurde zugunsten von informativen Beispielen und Skizzen verzichtet. Bei naturwissenschaftlichen Beispielen habe ich stets versucht, auch den physikalischen Hintergrund mit in die Darstellung einzubeziehen. Parallel dazu werden die zugehorigen Routinen aus MATLAB besprochen und auf erganzende Beispiele angewandt. Der Leser kann die entsprechenden numerischen Fragestellungen am Rechner nachvollziehen - die behandelte Mathematik wird dabei sofort greifbar, bekommt eine "spielerische" Komponente. Dabei sind Grundkenntnisse in MATLAB hilfreich, aber nicht unabdingbar. Eine kurze EinfUhrung in MATLAB befindet sich im Anhang. Das Inhaltsverzeichnis ist bewusst so ausfUhrlich gehalten, dass der Leser sofort gezielt die zu einer vorliegenden Thematik passenden MATLAB-Routinen nachschlagen kann. Bei der Umsetzung der numerischen Verfahren auf den Rechner habe ich mich fUr das Software-Paket MATLAB entschieden. Die Griinde fUr diese Wahl sind weniger im mathematischen Bereich angesiedelt. MAT LAB ist vor allem wegen seiner fast aIle technische Anwendungsbereiche abdeckenden Toolboxen und dem zugehorigen Simulationsprogramm SIMULINK an vielen ingenieurwissenschaftlich orientierten Hochschulen und in namhaften Industriebetrieben zum Standard geworden. Benutzt wurde die MATLAB-Version 4.2b. Fur die wenigen Probleme aus dem Bereich der ComputerAlgebra wird die Symbolic-Toolbox benotigt. Die im vorliegenden Buch angesprochenen MATLAB-Routinen stehen auf dem ftp-Server der FH Esslingen unter der Adresse: ftp.fht-esslingen.de/pub/local/fachbereiche/grundlagen/mohr fUr Interessenten zur VerfUgung.
VI
Vorwort
GroBes Gewicht liegt auf der Aufgabensammlung. Neben verstii.ndnisfOrdernden Problemstellungen zu den entsprechenden Stoffgebieten sind auch viele "Rechenaufgaben" in der Sammlung enthalten. Sie sollen in der Regel mit MATLAB-Routinen gerechnet werden, aber es ist auch der Einsatz eines anderen Mathematikprogramms denkbar. Die Numerik erhalt auf diese Weise einen experimentellen Charakter. Nicht der strenge Konvergenzbeweis steht bei diesen Beispielen im Vordergrund, sondern der konstruktive Entwurf von Rechenprozeduren. Ganz bewusst wurden auch einige schwierigere und umfangreichere Beispiele in die Darstellung aufgenommen. Alle Aufgaben sind mit einer ausfiihrlichen Losung versehen und sollen den Leser zu vertiefendem Nacharbeiten anregen. Viele graphische Darstellungen in diesem Buch wurden mit MATLAB erstellt. Sie sind au6erlich durch einen Rahmen sofort erkennbar. Die anderen Abbildungen sind mit einem von Herrn Dr. Bernhard Gotz (Mathematisches Institut A der Universitat Stuttgart) entwickelten Graphik-Paket gerechnet und gestaltet worden. Ihm sei an dieser Stelle herzlich gedankt. Besonders danken mochte ich auch meinem Kollegen Herrn Prof. Dr. Harro Kiimmerer fiir die Durchsicht des Manuskripts und die vielen anregenden Diskussionen wahrend der Entstehung. Fiir Erganzungen und Hinweise auf Fehler bin ich dankbar. Bitte schicken Sie mir eine E-Mail [email protected] . Esslingen, im Juli 1998
Richard Mohr
VII
Inhaltsverzeichnis 1 Einfiihrung
1
2 Iterationsverfahren zur Losung nichtlinearer Gleichungen 2.1 Fixpunktsatz .. 2.2 Fehlerschranken. 2.3 Newtonverfahren 2.4 Regula falsi . . . 2.5 Konvergenzordnung 2.6 Ubertragung auf mehrdimensionale Probleme 2.7 Realisierung mit MATLAB . . . . . . . . . .
7 7
12 13 15 16 18 22
3 Lineare Gleichungssysteme 3.1 GauB-Algorithmus 3.2 Pivotelementsuche . . . . 3.3 Nachiteration . . . . . . . 3.4 Iterative Losung von linearen Gleichungssystemen 3.5 Uberbestimmtes lineares Gleichungssystem 3.6 Nichtlineare Ausgleichsprobleme . . . . . . . . . .
25 25
4
43 43
Lineare Optimierung 4.1 Austauschverfahren . . . . . . . . . . . . . . . . . . . . . 4.2 Graphische Losung des linearen Optimierungsproblems . 4.3 Simplex-Verfahren . . . . . . . . . . . . . . . . . . . . .
5 Interpolation und Approximation 5.1 Polynominterpolation 5.2 Ausgleichspolynome 5.3 Kubische Splines . . . 5.4 Bezier Splines . . . . . 5.5 Approximation durch trigonometrische Polynome 5.6 Fast Fourier Transformation . . . . . . . . . . . . 6
Numerische Integration 6.1 Trapezformel . . . 6.2 Simpsonformel .. 6.3 Rombergverfahren
7 Differentialgleichungen 7.1 Eulerverfahren . . . . . . . . . . . . . . . . . . . . 7.2 Weitere Einschrittverfahren . . . . . . . . . . . . . 7.2.1 Theoretischer Hintergrund - Grundprinzip 7.2.2 Heun-Verfahren . . . . . . . . . . . . . . 7.2.3 Runge-Kutta-Verfahren . . . . . . . . . 7.2.4 Schrittweitensteuerung und Genauigkeit
29 31 32 34 38
47 53 59
60 64 67 71
74 79
85 85
86 88
92
92 94 94 96 98 99
VIn 7.3
7.4
7.5
7.6
7.7 7.8
7.9
Inhaltsverzeichnis MATLAB-Routinen . . . . 7.3.1 Symbolische LOsung 7.3.2 Numerische LOsung. 7.3.3 Drei-Korper-Problem. Wasserrakete - Beispiel fUr ein Differentialgleichungssystem 7.4.1 Physikalische Grundlagen . . . . . . . 7.4.2 Herleitung der Differentialgleichungen 7.4.3 Realisierung mit MATLAB Implizite Verfahren . . . . . . . . 7.5.1 Implizites Eulerverfahren . 7.5.2 Trapezmethode....... 7.5.3 Allgemeine Vorgehensweise Stabilitii.t . . . . . . . . . . . 7.6.1 Absolute Stabilitii.t . . . . . 7.6.2 Inhii.rente Instabilitii.t . . . 7.6.3 Steife Differentialgleichungssysteme . Mehrschrittverfahren.. Randwertaufgaben . . . . . 7.8.1 Schie8verfahren... 7.8.2 Differenzenverfahren 7.8.3 Beispiel fUr eine nichtlineare Randwertaufgabe Partielle Differentialgleichungen . 7.9.1 Poisson-Gleichung .. . . 7.9.2 Wii.rmeleitungsgleichung. 7.9.3 Finite Elemente. . . . . .
101 101 102 106 108 109 109 110 117 117 119 119 120 120 124 125 128 130 130 132 135 138 138 143 148
8 Aufgaben 8.1 Aufgaben zu Gleitpunktarithmetik 8.2 Aufgaben zu Iterationsverfahren . 8.3 Aufgaben zu linearen Gleichungssystemen 8.4 Aufgaben zur linearen Optimierung. . . . 8.5 Aufgaben zu Interpolation und Approximation 8.6 Aufgaben zu Integration und Differentialgleichungen 8.7 Aufgaben zu MATLAB . . . . . . . . . . . . . . . .
156 156 156 158 160 161 162 164
9 Losungen 9.1 Aufgaben 9.2 Aufgaben 9.3 Aufgaben 9.4 Aufgaben 9.5 Aufgaben 9.6 Aufgaben 9.7 Aufgaben
168 168 169 179 184 190 197 208
zu Gleitpunktarithmetik zu Iterationsverfahren . zu linearen Gleichungssystemen zur linearen Optimierung. . . . zu Interpolation und Approximation zu Integration und Differentialgleichungen zu MATLAB . . . . . . . . . . . . . . . .
A Einitihrung in MATLAB A.l Allgemeines . . . . . . . A.2 Fundamentals. . . . . . A.2.1 Eingabe von Matrizen A.2.2 Matrixelemente. . . .
225 225 225 225 225
IX
A.3
AA
A.5
A.6
A.7
A.2.3 Variable . . . . . . . . . . . A.2A Information fiber Variable. A.2.5 Zahlen und Arithmetik A.2.6 Komplexe Zahlen . A.2.7 Ausgabeformat A.2.8 Help-Funktion A.2.9 Sichern .... Matrizen, Vektoren .. A.3.l Rechenoperationen A.3.2 Matrizenfunktionen A.3.3 Elementeweise Rechenoperationen A.3A Vektor- und Matrixmanipulationen . Analysis . . . . . . . . AA.l Differentiation AA.2 Integration AA.3 Polynome . . . AAA Interpolation AA.5 Nichtlineare Gleichungen und Optimierung AA.6 Differentialgleichungen . . . Graphik . . . . . . . . . . . . . . . A.5.l Zweidimensionale Graphik . A.5.2 Dreidimensionale Graphik . A.5.3 Graphikbildschirm Programmsteuerung A.6.l for-Schleifen. . . A.6.2 while-Schleifen A.6.3 if/else Ausdrficke A.6A Vergleichsoperatoren, logische Operatoren A.6.5 Eingabe . . . . . m-Files ......... A.7.l Programm-Files A.7.2 function-Files .
226 226 226 227 227 227 227 228 228 228 228 229 229 229 230 230 230 231 232 232 232 233 234 234 234 235 235 235 235 236 236 236
B Verzeichnis der m-Files
237
C Orthogonalitatsbeziehungen
239
D FFT-Algorithmus fUr N = 27 Punkte
242
E Drei-Korper-Problem
245
Literaturverzeichnis
247
Sachwortverzeichnis
249
1
1
Einfiihrung
Der Weg vom konkreten technisch-naturwissenschaftlichen Problem zur numerischen Losung fiihrt haufig - schematisch aufgelistet - iiber folgende Schritte zum Ziel. 1) Modellbildung: Zunachst muss mittels Funktionen, Gleichungssystemen, Differentialgleichungen etc. aus physikalischen Grundgesetzen ein mathematisches Modell gebildet werden. 2) Haufig sind diese Beziehungen zu komplex, urn geschlossen gelost zu werden oder in endlicher Zeit numerisch behandelt zu werden. Man bemiiht sich dann urn ein mathematisches Ersatzproblem, das einerseits das Naturphanomen noch geniigend genau beschreibt und andererseits mit verniinftigem Rechenaufwand noch gelost werden kann. 3) Auswahl eines Algorithmus, der das gewonnene mathematische Ersatzproblem moglichst effektiv lost. 4) Implementierung des ausgewahlten Algorithmus in einer Programmiersprache oder - immer wichtiger - unter Zuhilfenahme eines Software-Pakets (z.B. MATLAB, etc.). Eventuell graphische Darstellung des Resultats. Diese Schritte seien an einem Beispiel aus der Mechanik erlautert. Wir betrachten zwei Korper, die auf einer Unterlage iibereinander gestapelt sind. Auf den oberen Korper wirke eine -+
Kraft f (t) parallel zur Unterlage. Die Reibungskrafte zwischen den beiden Korpern seien groBer als die zwischen dem unteren Korper und der glatten Unterlage. Xl(t) und X2(t) seien die Auslenkungen der beiden Massen aus der Ruhelage. Dann fiihrt das Newtonsche Bewegungsgesetz auf das folgende Differentialgleichungssystem:
mlXl(t)
f(t) - k 1(Xl(t),X2(t»
m2 x2(t)
k1(Xl(t),X2(t» - k2(X2(t»
Hierbei beschreibt die Funktion k 1(Xl,X2) die Reibung zwischen ml und m2, k 2(X2) die Reibung zwischen m2 und der Unterlage. Die Funktionen ki geben die von der Relativgeschwindigkeit abhangige Reibung wieder. Wenn man die molekulare Struktur der Materialien beriicksichtigt, sind Reibungsvorgange exakt sehr schwer zu erfassen. Wir wahlen das Modell der Coloumb-Reibung. Dabei wird angenommen, dass die Reibung nur von der Gewichtskraft und nicht vom Betrag der Geschwindigkeit abhangt. R. Mohr, Numerische Methoden in der Technik © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
1 EinfUhrung
2
Vernachlassigen wir die iibrigen Reibungskrafte (Luftreibung, innere Reibung), 80 ergibt sich der nebenstehend skizzierte Zusammenhang zwischen ki( vr ) und der Relativgeschwindigkeit vr .
I
Wir setzen ml = m2 = 1 und nehmen eine harmonische Anregung f(t) = sin t an. Mit Hilfe der Signum-Funktion stellt sich dann das vereinfachte mathematische Modell wie folgt dar: Zl(t)
= sin(t) - al· sign(zl(t) - Z2(t» al . sign(zl(t) - Z2(t» - a2 . sign(z2(t»
Z2(t)
Dieses vereinfachte Modell 8011 nun mit einem numerischen Verfahren aus einem SoftwarePaket gel6st werden. Dazu miissen wir die Differentialgleichungen 2. Ordnung als ein Differentialgleichungssystem darstellen. Fiihren wir fUr %l(t), Zl(t), %2(t), Z2(t), die Zustandsvariablen Zl(t), . .. Z4(t) ein, so ergibt sich das aquivalente Differentialgleichungssystem:
Zl(t)
= Z2(t)
Z2(t)
=
Z3(t)
= Z4(t)
Z4(t)
= al· sign(z2(t) - Z4(t» - a2 . sign(z4(t»
sin(t) - al . sign(z2(t) - Z4(t»
Zur Realisierung mit MATLAB ist der folgende m-File zu erstellen:
function xdot=dgr(t,x); global a k; xdot=[x(2);sin(t)-a*sign(x(2)-x(4»;x(4);a*sign(x(2)-x(4))-k*sign(x(4»];
=
=
Fiir die Parameterwerte al 0.1 und a2 0.01 ergibt sich mit der Prozedur "ode23" die in den beiden folgenden Schaubildern skizzierte L6sung.
i "
iv
0.1
':
0
.t
-0.1
'0
-,0
Wenn wir den Reibungskoeffizienten zwischen den beiden Massen auf al so ergibt sich:
'0
= 004 erhohen,
3
... CUI
• .1
.... ... 0 ,010
·0.1
... 0.11
_1
•
-0.2
•
1.
1.
Das Schaubild der Relativgeschwindigkeit zeigt in weiten Bereichen eine Oszillation urn den Nullpunkt. Eine Erhahung der Genauigkeit sowie der Einsatz einer anderen Integrationsprozedur bringt keine Verbesserung. In der Realitat ist eine solche Oszillation nicht zu beobachten. Bei groBem Reibungskoeffizienten kann f{t) bei Relativgeschwindigkeiten urn Null die Haftreibung nicht uberwinden und die beiden Karper bewegen sich gemeinsam. In diesem Falliauten die Bewegungsgleichungen: (ml (ml
+ +
=
m2)' Xl
f(t) f{t)
m2) ' X2
Der modifizierte m-File stellt sich dann wie folgt dar:
function xdot=dgr1(t.x); global a k; if (abs(sin(t»("
Nun gilt offensichtlich:
Eine rekursiv definierte Folge X
n+1
= F(xn);
Xo
=a
konvergiert gegen die LOsung der Gleichung
wenn fiir die Ableitung der Iterationsvorschrift F'(x) im betrachteten Bereich gilt: IF'(X)I $ L
xo) - 1 (xo)
eine verbesserte Niiherung Xl. Dieser Prozess liisst sich beliebig oft wiederholen. Wir erhalten mit der Rekursionsbeziehung
_
Xn+l -
Xn -
セHxョI@
1 (x n )
eine Zahlenfolge, die i.a. gegen die gesuchte LOsung x· konvergiert. Die Konvergenz des Verfahrens ist gesichert, wenn I"(x) in der Umgebung von x· nicht das Vorzeichen wechselt. 1st I'(x·) = 0, so konvergiert die Folge sehr langsam.
15
2.4 Regula falsi Beispiel: e:t:
=
2- x
""-+
I(x) = e:t:+x-2
""-+
/,(x) = e:t:
+1
xn -
Ik I
X/c
0 1 2 3 4 5 6
1.00000000000000 0.53788284273999 0.44561674852655 0.44285672464511 0.44285440100403 0.44285440100239 0.44285440100239
1
Wir wollen noch die Konvergenzbedingung fiir das Newtonverfahren iiberpriifen. X n +1
F(x)
x -
= F(x n ) =
Xn
f,t::)
-
4J)"
1 (x) (I' (x)) 2
- l(xJ .I"(x) = I(x) GiBセクI@ (I'(x» (I'(x» Wenn /,(x) in der Umgebung der Nullstelle sich wie 1/'(x)1 セ@ K > 0 verhalt, so ist die Konvergenz immer gewahrleistet, da I(x) -+ 0 bei Annaherung an die Nullstelle. Bei mehrfachen Nullstellen - d.h. wenn I'(x·) = 0 - strebt der Nenner des Newtonverfahrens
F'(x)
1 -
gegen Null und es sind Schwierigkeiten bei der Konvergenz zu erwarten. Bei bekannter Vielfachheit der Nullstelle kann der Algorithmus modifiziert werden, urn die Effizienz des Verfahrens zu erhohen. 6
2.4
Regula falsi
Eine analoge geometrische Uberlegung fiihrt zu einer zweigliedrigen Iterationsvorschrift, die die Berechnung der ersten Ableitung vermeidet. Dazu ersetzt man die Kurve zwischen zwei Kurvenpunkten durch die Sekante und schneidet diese mit der x-Achse. Ais Startwerte wahlt man zweckma6igerweise zwei Punkte mit unterschiedlichem Vorzeichen I(xo) . I(xt) < O. 6
1st
X*
eine p-fache Nullstelle (wenn bekannt!!), so konvergiert das modifizierte Verfahren Xn+l
besser gegen die gesuchte Nullstelle.
= F(xn) =
Xn -
p.
ヲGセZ@
2 Iterationsverfahren zur LOsung nichtlinearer Gleichungen
16
y
x
/
Mittels der Zwei-Punkte-Form ermitteln wir die Geradengleichung durch die heiden Punkte (xnlf(xn)) und (x n+1lf(x n+l)) . Y - f(xn) =
f(x n+1) - f(xn)
X-Xn
Der Schnittpunkt dieser Geraden mit der x-Achse (y wert X n +2. _ -
=0 !) ergiht den neuen Naherungs-
f(xn+d - f(xn) Xn+l
Xn
Unter den beiden Naherungswerten X n , Xn+1 wird derjenige ausgewahlt, dessen Funktionswert f(xn) bzw. f(xn+tl dasjeweils andere Vorzeichen von f(x n+2) hat. 7 Dies ist eine zweigliedrige Iterationsvorschrift, bei der im wesentlichen der Differentialquotient durch den Differenzenquotienten ersetzt wird. Ebenso sind die Schwierigkeiten bei mehrfachen Nullstellen mit denen beim Newtonverfahren vergleichbar.
2.5
Konvergenzordnung
In diesem Abschnitt beschaftigen wir uns mit der Frage, um welche Grof3enordnung sich die Naherung bei einem Iterationsschritt verbessert. Theoretischer Hintergrund ist die Taylor-Reihenentwicklung fur entsprechend oft differenzierbare Funktionen. 7
Verzichtet man auf diese Vorzeichenabfrage, spricht man yom Sebntenverfahren.
17
2.5 Konvergenzordnung Wir entwickeln die rechte Seite der Iterationsvorschrift x" .
F(x)
=
F(x")
+
+ {
+l = F(x n ) urn die Nullstelle
F'(x")· (x - x")
F(n)( ") n.
Xn
. (x -
x")n
+
Wir setzen x = Xn und konnen die Differenz der neuen Naherung Xn+1 = F(xn) zur exakten Losung x" = F(x") abschatzen: X
n+l - x" F'(x·) . (x n - x") + fBセクI@
• 2 + ... . (x n - x)
Damit ist es uns gelungen den "neuen" Fehler IXn+l - x"1 mit dem vorangegangenen Fehler IX n - x"1 in Beziehung zu setzen. Der Hauptbeitrag des Fehlers entsteht yom Summanden mit dem kleinsten Exponenten I bei (x n - x")'. Fur das Newtonverfahren wollen wir die ersten Ableitungen bestimmen: x-
セ@f
F'(x)
1 -
(f/(x»2 - f(xJ . f"(x) = f(x)· ヲBセクI@ (f/(X» (f/(X»
F'(x")
=
F"(x) =
f';(x? x . f'(x) . fll/(x) - 2 {f"(x))2 f (x + f( ) (f/(X))3
F"(x")
=
F(x) =
(x)
f';(x") f (x") .
Damit erhalten wir fUr das Newtonverfahren folgenden Zusammenhang zwischen altern (Llxn) und neuem Fehler (Llxn+d:
Besteht ein solcher Zusammenhang, dann redet man von quadratischer Konvergenz - der neue Fehler ist proportional zum Quadrat des alten Fehlers. Entsprechend spricht man von der Konvergenzordnung p, wenn gilt:
Durch eine Modifikation des Newtonverfahrens kann man erreichen, dass auch die zweite Ableitung F"(x) in x" zu Null wird. Wir addieren zu F(x) einen geeigneten Summanden, von dem von vornherein sicher ist, dass er die Eigenschaft F'(x") = 0 nicht zerstort. Dies ist bei einem Summanden gewahrleistet, der f(x)2 enthalt. 8
Fiir den Entwicklungspunkt x" gilt: [f(x*)
= 0 !! J
2 Iterationsverfahren zur LOsung nichtlinearer Gleichungen
18
ZL|セI@
F(z)
=
Z
F'(z)
=
I(z) . ALセコI@ (f'(z»
F"(z)
=
-
-
h(z)· (f(z»2
_ h'(z). (f(z»2 - 2h(z)· I(z) ·I'(z)
I';(z) I'(z)· I"'(z) - 2 (f"(z»2 I (z) + I(z)· (f'(Z»3 - I(z) . [h"(z)· I(z) + 4h'(z)· I'(z) + 2h(z). f"(z)] - 2h(z) . (f'(Z»2 an der Nullstelle z* erhalt man
F"(z*)
@セI
I
"" (z**) - 2h(z*). (/'(Z*»2 (z*)
Wenn wir h(z) so bestimmen, dass wir in der letzten Beziehung F"(z*) = 0 erhalten, so ergibt sich ein Verfahren dritter Ordnung.
_
Zn+l -
A(
F zn
) _ -
Zn -
セHzョI@ _ !"(zn)· (f(zn))2 I (zn) 2 (f'(Zn»3
Vergleich der Verfahren: Das soeben hergeleitete modifizierte Newtonverfahren konvergiert am besten, die Regula falsi ist theoretisch das "schlechteste" Verfahren. Trotzdem wird die Iterationsvorschrift Regula falsi bzw. das Sekandenverfahren sehr haufig benutzt, denn diese Algorithmen kommen ohne Ableitungen aus. Dass zur Erzielung einer vorgegebenen Genauigkeit in der Regel mehr Iterationsschritte notig sind, ist in Anbetracht der Leistungstahigkeit moderner Rechner zu vernachlassigen. Die Endgenauigkeit, d.h. die Differenz von Naherungslosung und exakter Losung, ist bei allen erwahnten Verfahren vergleichbar .
2.6
Ubertragung auf mehrdimensionale Probleme
Das Newtonsche Verfahren lasst sich auch auf mehrdimensionale Probleme iibertragen. Wir miissen dabei allerdings auf die Anschauung verzichten, daja bereits fUr eine zweidimensionale Vektorfunktion von zwei Veranderlichen ein 4-dimensionaler Raum notwendig ware. Der Grundgedanke des Newtonverfahrens lasst sich auch so formulieren: Wir linearisieren die Funktion im Punkt (znl/(zn»
Die Nullstelle der linearisierten Funktion ist die nachste Naherung z n +1.
o=
I(zn)
+
I'(zn)· (zn+1 - zn)
セ@
Zn+l = Zn -
Herleitung fUr die Dimension n = 2:
_f(z,y) = (!I(z,y»)
h(z,y)
!
o
Wir betrachten die Taylorentwicklungen fiir die Komponenten
Ii :
p(::\ .
19
2.6 Ubertragung auf mehrdimensionale Probleme
i = 1,2
Wenn wir die beiden Linearisierungen der Komponenten Ii zu Null setzen, erhalten wir die beiden linearen Gleichungen fUr die nachste Naherung (Xn+1IYn+d. 9
o
h(Xn,Yn)
+
Odl(Xn,Yn)' (Xn+l - Xn)
+
02l1(Xn,Yn)' (Yn+l - Yn)
o
h(Xn,Yn)
+
Od2(Xn,Yn)' (Xn+1 - Xn)
+
o2h(xn,Yn)' (Yn+l - Yn)
oder vektoriell geschrieben :
( xn+l - xn) Yn+l - Yn
Man nennt A die Funktionalmatrix der Abbildung f. Matrix, so erhalten wir -
+
10
(xn+l) Yn+1
1st A-I die zugehorige inverse
-
(::)
bzw.
( xn+l) Yn+1 Fiir n = 2 liisst sich das Losen eines nichtlinearen Gleichungssystems auch anschaulich interpretieren. Die zu den Funktionen z h(x,y) und z h(x,y) gehorenden Flachen schneiden sich in einer Raumkurve. Die DurchstoBpunkte dieser Raumkurve durch die (x,y)-Ebene sind die LOsungen des Gleichungssystems. In der nachfolgenden Graphik ist die Schnittkurve der beiden Flachen
=
=
z =
h(x,y)
z
4y
dargestellt. 9
Die beiden Gleichungen lassen sich auch wie rolgt plausibel machen: Wir betrachten z J;(x,y) ala reelle Funktion zweier Veranderlicher, die wir im Anschauungsraum darstellen konnen. Die Tangentialebenen in (xnIYn) werden beschrieben durch die Gleichungen
=
i
=
10
= 1,2
Der Schnitt dieser Tangentialebenen mit der Koordinatenebene z 0 ergibt den n1ichsten Iterationspunkt (xn+lIYn+l). Die Matrix A. triigt die Bezeichnung Jacobi-Matrix. Sie lust sich ala Ableitung der vektorwertigen Funktion
(:)
interpretieren.
f(x,y) -
=
(h(x,y») h(x,y)
20
2 Iterationsverfahren zur LOsung nichtlinearer Gleichungen
z == h(x,y) == x 3
z = h(x ,y) = x 2 + 2y2 - 8
-
4y
40 20
o -20 -40 3
3
-3
Ebenso lassen sich die Losungspunkte als Schnitt der Hohenlinien von h(x,y) und h(x,y) zum Niveau z = 0 deuten. Die beiden LOsungen zu dem Beispiel
h(x,y)
= x 2 + 2y2 - 8
h(x,y)
=
x3
-
SイM
セM
Mセ
x 2 + 2y2 - 8 = 0
4y x3
ergeben sich zu: --+*
Xl
セMイ@
-
4y = 0
= (1.82770057556632) 1.52635359698769)
--+*
x
2
Beispiel:
h(x,y)
X -
sinx - cosy
=
h(x,y)
y
sinx + cosy
= 0
--...
A-I =
0
1- cos:z: A= ( -cos:z:
(1- siny 1 1- cos x -smy+ 2cosx ·smy· cos x
Starten wir die Iteration mit :Z:o
-sin y ) 1- cos x
= 2 und Yo = 0, so ergibt sich:
siny ) 1- siny
__セ@
21
2.6 Ubertragung auf mehrdimensionale Probleme
,
セPNYWR@
QNPセI@
0.090702
( 1.93595115221563 ) -0.06404884778437
( 0.74871988457245 PNTUSYQRXWセ@ -0.25128011542755 0.95496086706126
(0.003933 ) -0.000167
(1.93301392268874 ) -0.06290033605741
3
( 0.74996691526424 0.04435402686890) -0.25003308473576 0.95564597313110
10-3. (-0.121824) 0.008768
( 1.93310489810176 ) -0.06293917604938
4
( 0.74992873911464 NPTSWUYXQVセ@ -0.25007126088536 0.95562249901844
10- 5
• (
5
( 0.74992994100763 0.04437676440141) -0.25007005899237 0.95562323559859
10-6
•
6
( 0.74992990320061 0.04437678757387) -0.25007009679939 0.95562321242613
10-8
• (
7
( 0.74992990438991 0.04437678684493) - 0.25007009561009 0.95562321315507
10-9
•
8
( 0.74992990435250 NPTSWVXセ@ -0.25007009564750 0.95562321313214
10-11
• (
9
( 0.74992990435367 0.04437678686714) -0.25007009564633 0.95562321313286
10- 12
•
10 ( 0.74992990435364 0.04437678686716) -0.25007009564636 0.95562321313284
lO- H
• (
1
( 0.70614146371870 -0.29385853628130
2
0.383400 ) -0.027251
( 1.93310203496547 ) -0.06293795685181
(-0.120604) 0.008575
( 1.93310212502996 ) -0.06293799520673
0.379386 ) -0.026976
( 1.93310212219680 ) -0.06293799400020
(-0.119343) 0.008486
( 1.93310212228592 ) -0.06293799403815
0.375433 ) -0.026700
( 1.93310212228312 ) -0.06293799403696
(-0.118016) 0.008548
( 1.93310212228321 ) -0.06293799403700
0.388578 ) -0.022204
( 1.93310212228320 ) -0.06293799403700
Der Hauptrechenaufwand besteht im Erstellen der inversen Matrix A -1. An obigem Beispiel sehen wir, dass sich diese beimjeweiligen Iterationsschritt nur wenig andert. Viele Rechenprogramme lassen aus diesem Grund die inverse Matrix fUr zwei bis drei Schritte fest und bestimmen die inverse Matrix nur bei jedem zweiten bzw. dritten Schritt neu. Dadurch wird das Programm etwas schneller. Problem: Hat dies auf die Endgenauigkeit Einfluss? Nein, denn "ungenaue" Zwischenschritte, Rundungsfehler etc. erhohen eventuell die Zahl der Iterationschritte bis zur gewiinschten Genauigkeit (dies wird aber dann durch die Schnelligkeit des Einzelschritts mehr als ausgeglichen), verandern aber nicht
2 Iterationsverfahren zur LOsung nichtlinearer Gleichungen
22
die erzielbare Endgenauigkeit - das Verfahren zieht in die Nullstelle " hinein " . Die fUr die Dimension n = 2 erzielte Verallgemeinerung des Newtonverfahrens liisst sich wartlich auf hahere Dimensionen iibertragen. Allerdings steigt dann der Rechenaufwand betrachtlich an.
2.7
Realisierung mit MATLAB
Das Software-Paket MATLAB stellt fUr obigen Fragenkreis die folgenden Prozeduren zur Verfiigung: 1) "fzero" liefert, ausgehend von einem Startwert, die Nullstellen einer Funktion einer reellen Veranderlichen. Implementiert ist ein Newton-Verfahren, wobei an Stelle des Differentialquotienten ein Differenzenquotient benutzt wird. Syntax: z=tzero('tunction',xO,tol)
tol eZ = 2 - x soli gelast werden. Function-File: tunction y=bsp1(x); y=2-x-exp(x) ;
Eingabe: z=tzero('bsp1',1,1e-10)
z = 0.44285440100239
2) "roots" liefert die Nullstellen eines Polynoms - auch komplexe Nullstellen. Die Prozedur "fzero" wiirde nur die reelle Nullstellen liefern. Die Eingabe eines Startwertes ist nicht erforderlich. Auf die dahinter liegende Theorie kann hier nicht eingegangen werden. Syntax: z=roots(p)
p : Koeffizienten des Polynoms in absteigender Reihenfolge Beispiel: p(x) = x 3 - 2x - 5 z=roots([1 0 -2 -5])
z = 2.09455148154233 -1.04727574077116 + 1.13693988908893i -1.04727574077116 - 1.13693988908893i
23
2.7 Realisierung mit MATLAB
3) "fsolve" ergibt Nullstellen bei mehrdimensionalen Problemen. Die Prozedur benutzt eine Kombination verschiedener mathematischer Methoden (Intervallschachtelung, Newton-Verfahren, etc). Ebenso kann die Funktionalmatrix optional eingegeben werden - ansonsten werden die Ableitungen durch Differenzenquotienten approximiert. Syntax:
fsolve('function',xO,options,'grad') function Vektorfunktion
xO Startvektor
grad Funktionalmatrix
Dabei steuert "options(2)" die Genauigkeit in セL@ d.h. das Abbruchkriterium bezieht sich auf die Differenz aufeinanderfolgender n。ィ・イオョァセォN@ Mit "options(3)" wird die Differenz des Funktionswerts ヲHセI@ zum Nullvektor als Abbruchkriterium bestimmt. Das Verfahren bricht ab, wenn beide Kriterien erfiillt sind. Die beiden letzten Parameter sind optional. Beispiel: Das bereits oben betrachtete Gleichungssystem soll gelost werden.
o o
=
x - sm x y
smx
Function-File:
function y=num1(x); y(1)=x(1)-sin(x(1»-cos(x(2»; y(2)=x(2)-sin(x(1»+cos(x(2»; function p=num1g(x); Funktionalmatrix zu num1.m p(l,l)=l-cos(x(l»; p(l,2)=sin(x(2»; p(2,l)=-cos(x(l»; p(2,2)=1-sin(x(2»; Yo
Eingabe:
options(2)=le-12; z=fsolve('num1', [2;0],options, 'num1g')
z = 1.93310212228320 -0.06293799403700
cos y
+
cosy
24
2 Iterationsverfahren zur LOsung nichtlinearer Gleichungen
4) »solve" ermoglicht geschlossene Losungen und algebraische Umformungen (Computeralgebra!) .
Syntax: solve( 'S', 'x') S
Gleichung
x Variable, nach der aufzulosen ist Beispiel: Schnitt zweier Kreisgleichungen 2x + y2 24 x2 x2
16x
+
y2
+
2y
+
40
0
= 0
u =
=
=
x 4, Y -4 x = S, Y = 3
oder mit Parametern
u =
x = RootOf(200*_Z-2+(-8+28*a-28*b)*_Z+4*a+a-2-2*a*b+b-2), y = 7*RootOf(200*_Z-2+(-8+28*a-28*b)*_Z+4*a+a-2-2*a*b+b-2) ... -1!2*b+l/2*a Hierbei bedeutet RootOf(G) die symbolische Losung der quadratischen Gleichung G. Die LOsung der quadratischen Gleichung ergibt sich aus:
w= [1/S0-7/100*a+7/100*b+l/l00*(4-228*a+28*b-a-2-98*a*b+49*b-2 ... +100*a*b-3)-(1/2)] [1/S0-7/100*a+7/100*b-l/l00*(4-228*a+28*b-a-2-98*a*b+49*b-2 ... +100*a*b-3)-(1/2)]
25
Lineare G leichungssysteme
3
Das Losen von linearen Gleichungssystemen, die Inversion von Matrizen etc. ist der rechentechnische Kern fast aller numerischen Verfahren. Auch viele Software-Pakete sind aus solchen Bibliotheken zur linearen Algebra entstanden. Es sollen hier nun nicht aIle, teilweise sehr kunstvolle Verfahren zur effizienten Losung von Fragestellungen der linearen Algebra behandelt werden. Diese stehen i.a. dem Anwender als fertige Unterprozeduren zur Verfiigung. Ziel dieses Abschnitts ist es, dem Leser ein Gespiir fiir die dabei auftretenden numerischen Probleme zu geben. Dariiber hinaus gehendes Interesse kann durch das Studium eines mehr allgemein gehaltenen Lehrbuchs der Numerik gestillt werden.
3.1
GauB-AIgorithmus
Beim Losen von linearen Gleichungssystemen werden sukzessive Variable eliminiert. Man stellt eine gestaffelte Form her. Dazu sind folgende Aquivalenzumformungen erlaubt: 1) Vertauschung zweier Gleichungen. 2) Multiplikation einer Gleichung mit einer Konstanten c =F O. 3) Addition des Vielfachen einer Gleichung zu einer anderen. 4) Vertauschung von Unbekannten (Vertauschung von Spalten). Beispiel: %1 %1 2%1 %1
0 0 %1
0 0
+ + + + + + + + +
%2
+
2%2
%3 %3
3%2
+
%2
+
%3 2%3
%2
%3
+
%2
0
%3 %3
+
%3
-2
6
5
%3
%2
%2
= = = =
セ@
-2
8 9
= = =
I· (-1) I· (-2)
I· (-1) ..J
-2
8 1
%1 :::}
%2 %3
= = =
-12
9 1
Die gestaifelte Form lasst sich bei jedem linearen Gleichungssystem durch zulassige Umformungen erreichen. Auf den folgenden Seiten ist diese Vorgehensweise an einem System von m linearen Gleichungen fiir n Unbekannte systematisch dargestellt. «n,m)-System) R. Mohr, Numerische Methoden in der Technik © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
3 Lineare Gleichungssysteme
26
GauBsches Eliminationsverfahren: Man erzeugt die gestaffelte Form durch systematisches Vorgehen. Dabei verwendet man die auf der vorigen Seite angegebenen Umformungen: aU z l a21 z 1 am l Zl
+ +
a12z 2
+
a m 2Z 2
a22 z 2
Annahme: au
+ +
a13 z 3
+
a m3 Z3
a21 z 1
+ +
a22 Z 2
+ +
aml Zl
+
a m 2Z 2
+
aUzl
+
C22 Z 2
+ +
Cm 2 Z 2
+
a12Z 2
Annahme: C22 aUZl
+
=1=
a12Z 2
+ +
+ +
+
+
b1 b2
= =
aln Z n a2n Z n
bi ail:
Storglieder Koeffizienten 1
= bm
amnZn
OJ sonst Zeilenvertauschung vornehmen.
=1=
a12z 2
aUzl
a23 z 3
+ +
aln Z n
a23Z 3
+ +
a m3 Z3
+
+
amnZn
a13Z 3
a2n Z n
=
b1
= =
b2
GHャセI@
bm •
+ +
+ +
aln Z n
=
C23Z 3
C2n Z n
=
bl d2
cm3z 3
+
+
CmnZn
=
dm
a13Z 3
セI@
0, sonst Zeilenvertauschung (oder Spaltenvertauschung) vornehmen. + a13Z 3 + + aln Z n = b1
C32Z 2
+ +
Cm 2 Z 2
+
C22Z 2
C33Z 3
+ +
Cm 3 Z 3
+ ... +
C23Z 3
+ +
d2
C2n Z n
GHャセI@
I(-ffi)
C3n Z n
=
CmnZn
= dm •
d3...J
Man setzt das Verfahren fort bis zu folgender Endgestalt: PU Z I
+
P12 Z 2 P22 Z 2
+ +
P13 Z 3 P23 Z 3
P33 Z 3
+ + +
+ + + PrrZr
Wobei gilt: PU' P22' .... Prr die Diagonalglieder dividiert. 1
1. Index: Zeilenindex,
=1=
+
Prr+1 Zr+l 0
+ +
+ +
0
+
+
Pln Z n P2n Z n PsnZn
= = =
ql q2 q3
0
= qr = qr+1
0
=
PrnZn
qm
O. 1m Folgenden denken wir uns die Zeilen durch
2. Index: Spaltenindex
27
3.1 Gauf3..AIgorithmus Fallunterscheid ungen : 1) r
< n und
+
Xl
qr+l
= qr+2 = ... = qm = 0:
+
X2
Xr
Dann sind
+ Pr r+l Xr+l + ... + Prnxn
Xr+l,
X r +2,
... ,
Xn
Xr ,
Xr-l,
... ,
Xl
In diesem Fall erhalt man eine 2) r
I (n -
qr
beliebig wahlbar セ@ n - r Parameter, sind dann von diesen Parametern abhangig. r)-parametrige Losung
I.
= n und qr+l = qr+2 = ... = qm = 0: Xn Xn-l
=?
X n -2
=
I.
I
In diesem Fall existiert eine eindeutige Losung Man erhalt sie durch " Ruckwartseinsetzen" .
3) Nicht aIle qr+l, qr+2, ... , qm sind Null. In diesen Fallen treten Widerspruche auf, z.B. Xn = qr+l -I Keine Losung
0.
I.
0.1
Fur den Fall eines eindeutig losbaren, quadratischen Gleichungssystems wollen wir uns noch die Anzahl der zur Losung notwendigen Rechenoperationen uberlegen. Der k-te Eliminationsschritt stellt sich wie folgt dar: aij
1---+
bi
1---+
「ᄋMセ@
aij -
•
aki . aik au
akk
i k
k+ 1, k+l,
,n ,n
i
k+ 1,
,n
Nft.
Wir berechnen zunachst die Faktoren Dies ergibt (n - k) Divisionen. Fur die Transformation der aik fallen dann noch (n - k) . (n - k) wesentliche Rechenoperationen an; beim Uberschreiben der bi sind weitere (n - k) Rechenoperationen notwendig. Insgesamt ergibt sich die Anzahl der fUr den k-ten Eliminationschritt notwendigen Rechenoperationen zu:
(n - k)2
+
Fur aIle Eliminationsschritte k n-l
L:[(n+l-k)2-1] k=l
2(n - k) = (n + 1 - k)2 - 1
= 1,2,
... ,n - 1 ergibt dies die Summe
n
= L:12
- (n-l)
= ョHKャセRI@
- n
セR@
D.h. die Zahl der wesentlichen Rechenoperationen steigt mit der dritten Potenz an!
3 Lineare Gleichungssysteme
28
Rundungsfehler 1m Nachfolgenden wollen wir uns nur mit dem Fall eindeutig 100barer Gleichungssysteme beschaftigen. Bier existiert ein geschlossenes LOsungsverfahren, das auf eine endliche Zahl von Grundrechenoperationen hinauslauft. Die numerische Problematik besteht nun darin, dass sich Rundungsfehler einer Rechenoperation auf aile folgenden iibertragen. Dies kann bei Gleitkommaarithmetik zu groBen Abweichungen fiihren. Das folgende Beispiel besitzt die exakte Losung {Xl 0, X2 -1, X3 1 }.
=
=
7
7X2
lOx 1
+
-3X1 5X1
=
+ X2 +
3.901
2.099x2
6
I· (0.3) I· (-0.5)
セ@
7
o o +
+ 2.5x2 +
lO X 1
7X2
0
0.001x2
+
0
6.001
0.001x2
0
2.5
I· (2500)
--.J
7
+ +
6.001
6X3 1.5005 . 10 4 x3
,1.50025.10
=
4
+ 2.5
'" =h
J
Nehmen wir an, dass wir einen Computer mit fiinf Dezimalstellen benutzen, bei dem entweder abgeschnitten (fle)2 oder gerundet (flr)2 wird. In beiden Fallen bestimmen wir die Losung. Fall fie b(e) 3
= =
=
fie (fIe (1.50025 . 104 ) + 2.5) fle(1.5002· 104 + 2.5) f le(1.50045.104 ) 1.5004 . 104
Fiir X3 erhiilt man damit
クセ・I@
= = =
fie HセZョ@ fie (0.999933356) .99993
Aus der zweiten umgeformten Gleichung ist X2 zu berechnen: -0.00lx2
+
6·0.99993
= 6.001
Wir erhalten
f le(6 ·0.99993) = fle(5.99958) = 5.9995
fle(6.001 - 5.9995) = .00150
und somit 2
Die Kiirzel fie bzw. fir bedeuten "floating cut" bzw. "floating rounded".
29
3.2 Pivotelementsuche (e) X2
= fl (0.0015) = -1 5000 e
Aus der ersten Gleichung erhalt man
-0.001
.
Xl
-.35000
10X1 - 7· (-1.5000) = 7
Fall fir
「セI@
fir (fIr (1.50025 .104 ) + 2.5) fir (1.5003 .10 4 + 2.5) f lr(1.50055.10 4 ) 1.5006.104
Fiir
クセI@
X3
erhalt man damit =
= =
fir ョZセァI@ fir (1.00006664) 1.0001
Aus der zweiten umgeformten Gleichung ist
-0.001x2
+
X2
zu berechnen:
6· 1.0001
= 6.001
Wir erhalten
flr(6· 1.0001)
= fir (6.0006) = 6.0006
fle(6.001 - 6.0006) = -.00040
und somit
xセI@
=
fir (
M]PセQTI@
Aus der ersten Gleichung ergibt sich wieder
= .40000 Xl
lOX1 - 7· (.40000) = 7
Wie die Zusammenstellung zeigt, liegen in beiden Fallen die numerischen Losungswerte weit von den exakten entfernt. Dies hat seine Ursache beim zweiten Umformungsschritt (Multiplikation mit 2500).
3.2
.98000
exakt (fIe) (fIr)
0 -.35000 .98000
-1 -1.5000 .40000
1 .99993 1.0001
Pivotelementsuche
Der verheerende Einfluss beim Abschneiden oder Runden kann dadurch verkleinert werden, dass man versucht, durch Umordnen des Gleichungssystems die Multiplikation mit groBen Faktoren zu umgehen. Dies sei an obigem Beispiel exemplarisch dargestellt.
3 Lineare Gleichungssysteme
30 10Xl -3Xl
7
7X2
+
5X l
2.099x2 X2
+ +
=
3.901
5X3 =
6
6X 3
I· (0.3) I· (-0.5)
セ@
7
o o +
+ +
0.001x2 2.5x2
6.001 2.5
7
o + o
2.5x2
+
2.5
0.001x2
+
6.001
I· (.0004)
.-.-l
7
10Xl
o + o +
2.5
o +
6.0020X3
6.001 + .001
'---v----" =b 3
Bei (fIe) und (fIr) ergeben sich jetzt sogar bei Beriicksichtigung von nur vier Stellen die exakten Losungen
「セ・I@
fie (fle(6.001
+ 0.001)
= f le(6.002) = 6.002
Fiir
クセ・I@
X3
erhiilt man damit fie HセZI@ = fie (1.000) = 1.000
und weiter xセ・I@
= -1.000
xセ・I@
= .0000
Man wird deshalb vor jedem Eliminationsschritt Zeilen und Spalten SO vert auschen , dass der betragsmaBig groBte Koeffizient in der linken oberen Ecke des Restschemas steht. Dieses Vorgehen nennt man Pivotelementsuche. Es verkleinert den Einftuss von Rundungs- und Abschneidefehler. Diese "totale" Pivotelementsuche erfordert hohen Rechenaufwand. Man beschrankt sich aus diesem Grund oft darauf, nur innerhalb der Spalte nach dem betragsmaBig groBten Element zu suchen (Spaltenpivotstrategie).
31
3.3 Nachiteration
3.3
N achiteration
Trotz optimaler Auswahl des Pivotelements konnen beim Rechnen mit Gleitpunktarithmetik Rundungsfehler entstehen. Durch eine dem expliziten Losungsverfahren angeschlossene Nachiteration lasst sich oftmals die Genauigkeit verbessern. Gesucht ist eine Losung des eindeutig losbaren linearen Gleichungssystems
= 4. aᄋセ@
Nun sei セHoI@
eine eventuell mit Rundungsfehlern behaftete Losung. Deshalb gilt:
4. Ein Korrekturvektor 、セHャI@ erfiillt ist.
A· HセoI@ 1st 、セHャI@
+ 、セHャᄏI@
A· セHoI@
=
::j:. 0
1:.(1)
.
solI so bestimmt werden, dass die lineare Gleichung "besser"
= 4.
= 4. _ A. セHoI@
A· 、セHャI@
......
1:.(1)
eine Losung des linearen Gleichungssystems
=
A . 、セHャI@
1:.(1) ,
dann ist セHQI@
=
セHoI@
+ 、セHャI@
eine "bessere" Losung des Ausgangsproblems. Diesen Sachverhalt wollen wir uns an folgendem Beispiel mit Hilfe von MATLAB klar machen.
1.5000 1.0000 1.2000) ( 1.2800 1.2000 0.8000 . 1.2000 0.9000 0.8955
(Xl)
= ( 3.28
X3
3.00
A =[1.5 1 1.2;1.28 1.2 0.8;1.2 0.9 0.8955]; d=[3.7 3.28 3]'; xO=A\d -46.99999999996229 26.19999999998020 39.99999999996938 r=d-A*xO 1.0e-014 * -0.44408920985006 0.17763568394003 -0.08881784197001 dx=A\r
3.70)
X2
3 Lineare Gleichungssysteme
32
1.0e-010
*
-0.11309471877606 0.06946364619888 0.09177843670227
x1=xO+
E
fiir
lak;i
k = 1,2, ... ,n
i#
Aus der Naherung {xr)} solI durch Einsetzen eine neue Naherung サクセュKャIス@ bestimmt werden. Hierbei kann man auf der rechten Seite サクセュIス@ so lange einsetzen, bis サクセュKャIス@ komplett ist (Gesamtschrittverfahren), oder man verwendet die jeweils neuesten Schatzwerte der einzelnen Komponenten (Einzelschrittverfahren).
k = 1,2, ... n
Gesamtschrittverfahren
bzw. als Einzelschrittverfahren
Das Konvergenzverhalten solI an folgendem einfachen Zahlenbeispiel demonstriert werden: Das lineare Gleichungssystem
besitzt die exakte Losung セ@
0.12820512820513) ( 0.15384615384615 0.17948717948718
Mit dem St.,tvektm .,(0) =
G) ..
halt man mit dem Einret.chdttven.lne.,
, Die partiellen Ableitungen der Iterationsvorschrift egeben sich zu
8x;Jk
=
_.!!li akk
.
Die Konvergenz ist gesichert, wenn die Summe der Betriige der partiellen Ableitungen jeder Zeile kleiner 1 ist.
3 Lineare Gleichungssysteme
34
0.25000000000000 0.16666666666667 0.13715277777778 0.13049768518519 0.12877363040123 0.12834764017490 0.12824072399584 0.12821402983628 0.12820735338929 0.12820568451980 0.12820526728224 0.12820516297454 0.12820513689747 0.12820513037821 0.12820512874840 0.12820512834095 0.12820512823908 0.12820512821362 0.12820512820725 0.12820512820566 0.12820512820526 0.12820512820516 0.12820512820514 0.12820512820513 0.12820512820513
1 2 3 4 5 6 7 8 9 10 11
12 13 14 15 16 17 18 19 20 21 22 23 24 25
3.5
0.08333333333333 0.13888888888889 0.14988425925926 0.15287422839506 0.15360162680041 0.15378515089163 0.15383089237361 0.15384233937251 0.15384520015320 0.15384591542913 0.15384609424138 0.15384613894500 0.15384615012086 0.15384615291483 0.15384615361332 0.15384615378795 0.15384615383160 0.15384615384252 0.15384615384524 0.15384615384593 0.15384615384610 0.15384615384614 0.15384615384615 0.15384615384615 0.15384615384615
0.16666666666667 0.17361111111111 0.17824074074074 0.17915702160494 0.17940618569959 0.17946680223337 0.17948209590764 0.17948590769780 0.17948686161438 0.17948710001277 0.17948715961909 0.17948717452011 0.17948717824542 0.17948717917674 0.17948717940957 0.17948717946778 0.17948717948233 0.17948717948597 0.17948717948688 0.17948717948710 0.17948717948716 0.17948717948717 0.17948717948718 0.17948717948718 0.17948717948718
Uberbestimmtes lineares Gleichungssystem
1m Umfeld numerischer Fragestellungen treten haufig Gleichungssysteme auf, bei denen mehr Bestimmungsgleichungen - haufig iiber Messungen oder ahnliches gewonnen - als Unbekannte auftreten. Bei solchen Gleichungssystemen sind Werte fiir Zi gesucht, die aile Gleichungen moglichst genau erfiillen - sogenannte ausgeglichene LOsungen. Beispiel: Die Abstinde von vier Punkten auf einer Geraden sollen bestimmt werden.
, I A
...
Z1
Z2
''''I B
...
Z3
" I C
...
.
I
D
35
3.5 Uberbestimmtes lineares Gleichungssystem Zur Bestimmung dieser drei Abstande sind eigentlich nur drei Messungen notwendig. Wenn wir aber mit Messfehlern rechnen, ist es naheliegend, nicht nur die Strecken AB, BC und CD zu messen, sondern auch noch zusatzlich als Kontrollmessung die Abstande von AC, AD und BD zu bestimmen. Insgesamt erhalten wir das nebenstehende lineare Gleichungssystem. Dieses lineare Gleichungssystem A . セ@ = 4 ist nicht exakt losbar. Je nach Wahl von セ@ entsteht
Xl Xl Xl
+ +
X2 X2 X2 X2
= =
+
X3
+
X3 X3
= =
5.05 8.95 12.12 3.91 7.03 2.94
ein Fehler !:..
AZN]aᄋセMUQ@
Wir wollen nun eine "Losung" セ@ bestimmen, so dass der Fehlervektor !:. moglichst klein wird. Ais MaB 5 fUr die Beurteilung des Fehlers benutzen wir:
= Tl2 + T22 + ... +
1!:. 12
2
=!
Tm
Min
Fiir zwei Variable Xl, X2 wollen wir die Beziehungen zur Bestimmung der ausgeglichenen Losung explizit herleiten.
( Tl) ···
_
T2
bzw.
(all al2) a2l
a22
. .. . . .
.
HZセI@
am 2 Das Fehlerquadrat fUr die ite Komponente ergibt sich zu amI
Tm
Die Summe der Fehlerquadrate ist eine Funktion der Variablen Xl. m
=
f(Xl,X2)
E
X2.
m
Tl
i=l
=E
(ail· Xl
+
ai2· X2 - di)2
i=l
Dies ist eine quadratische Funktion von Xl. X2 und hat im XlX2x3-Koordinatensystem die Gestalt eines Paraboloids. Zur Bestimmung des Minimums mussen wir die ersten partiellen Ableitungen Null setzen.
セヲHxャLRI@UXI
=
f:
i=l
2(ail· xl
m
+
2 E ail· ail . Xl i=l 2
= 5
ai2· x2 - di)·ail
+
{f: ail· ail . Xl i=l
2 { Xl .
ゥセ@
ail· ail
ail· ai2 . X2 - ail· di
+
m
E ail . ai2 . X2
i=l
+
Als MaS wire genauso die Summe der Betriige
II!: II
= hi + Ir21 + ... + Irml
plausibel. Durch die Betragsfunktion gehen aber siimtliche Hilfsmittel der Differentialrechnung verloren und deshalb benutzt man in Fehlerrecbnung und Statistik fast ausschlieBlich die Summe der Abstandsquadrate a1s Abstandskriterium.
3 Lineare Gleichungssysteme
36
Analog erhalten wir fUr die zweite partielle Ableitung
-A- f(x},x2)
=
UX 2
2 {Xl.
f:
ai2· ail
i=l
+
X2·
f: ai2 . di} f: ai2 . ai2 - i=l
i=l
.
Aus den Bedingungen
-Af(x1 ,X2) UX1 -A- f(x1 ,X2)
=
0
UX2
erhalten wir das lineare Gleichungssystem fUr Xl .
Xl·
lセ@
ail· ail}
+
X2·
{f
ai2· ail}
+
X2·
,=1
0
Xl, X2 :
lセ@
ail . ai2 }
{f
ai2· ai2}
m
E ail· di
i=l m
,=1
=
E ai2· di
i=l
Mit Hilfsmitteln der Vektorrechnung lassen sich die Koeffizienten des obigen Gleichungssystems etwas iibersichtlicher als Skalarprodukte darstellen. Sind !!1' !!2, 4. die entsprechenden Spaltenvektoren des Ausgangssystems
a21
au)
am1
am 2
!!1
!!2
C" セ@
a22
. HZセI@
=
(:D セ@
4.
so erhalten wir fUr unser Gleichungssystem, das die "ausgeglichene" Losung erbringt,
Xl .
(!!1 . !!1)
+
X2·
(!!1 . !!2)
!!1·4.
Xl .
(!!2 . !!1)
+
X2·
(!!2 . !!2)
!!2.4.
Die Verallgemeinerung fUr n Unbekannte ergibt sich zu au
a12
a21
a22
a1n a2n
{:)
d1 d2
=
bzw. aᄋセ@
= 4.
dm
Bezeichnen wir bei einem Problem mit n Unbekannten wieder die Spaltenvektoren der Koeffizientenmatrix mit!!;, so erhalten wir analog als Gleichungssystem zur Bestimmung der ausgeglichenen LOsung:
37
3.5 Uberbestimmtes lineares Gleichungssystem HセQ@
.
%1 . Hセ@
. セQI@
+ +
%1 . Hセ@
• セQI@
+
%1 .
セQI@
+
%n·
+
%n
%2· Hセ@
. セRI@
+ +
%2· Hセ@
NセI@
+ ... +
%2·
HセQ@
NセI@
NHセ@
HセQᄋI@ NセI@
%n·
Hセ@
.
セI@
a =n
·d -
=
セN@ Mit der MatrizenEine solche Gleichung nennt man Normalengleichung N· セ@ rechnung lassen sich obige Skalarprodukte noch iibersichtlicher darstellen. Die Koeffizientenmatrix erhiilt man durch
und die rechte Seite durch セ]atᄋT@
.
Zum Abschluss wollen wir noch unser Eingangsbeispiel mit MATLAB lasen. A=[l 0 0;1 1 0;1 1 1;0 1 0;0 1 1;0 0 1]; I=A'*A 3 2 1
2 4 2
1 2 3
d=[5.05 8.95 12.12 3.99 7.03 2.94]'; c=A'*d 26.1200 32.0900 22.0900
x=l\c 5.0375 3.9925 3.0225 y=A\d 5.0375 3.9925 3.0225
Wie die letzte Eingaberoutine zeigt, liefert MATLAB bei der Eingabe eines iiberbestimmten linearen Gleichungssystems sofort die ausgeglichene Lasung. Der zuniichst beschrittene Weg iiber die Bestimmung der Normalengleichung muss bei Verwendung von MATLAB nicht mehr explizit durchgefiihrt werden.
38
3 Lineare Gleiehungssysteme
3.6
Nichtlineare Ausgleichsprobleme
Beim Eingangsbeispiel des vorangegangenen Absehnitts fUhrten »Kontrollmessungen" der Abstande zu einem tiberbestimmten linearen Gleiehungssystem fUr die unbekannten {Zi}. Es sind aber aueh Situationen denkbar, in denen sinnvolle Kontrollmessungen zu einem nichtlinearen Gleiehungssystem ftihren. Beispiel: Bei einer regelmiiBigen Pyramide mit quadratisehem Grundriss sollen die Kantenlange a des Quadrats und die raumliehe Hohe H bestimmt werden. Als Kontrollmessungen bieten sieh an: • Diagonale der Grundflaehe d , • Lange der Pyramidenkante s , • Hohe einer Seitenlinie h . Bezeiehnen wir mit Z1 die Lange der Grundseite und mit Z2 die Hohe, so erhalten wir ftir die Messwerte { a, H, d, s, h } das folgende Gleiehungssystem:
Z1 Z2 V2Z1 ャHセI@
= !1
H d
h(Z1,Z2) 12(z1,z 2) = fa(Z1, Z2)
Z1 Z2 V2Z1
jセコ@
a
jセコ@
+ コセ@
s
14(z1,z 2)
jセz@
+ コセ@
h
!s(Z1, Z2) =
+ コセ@
jセコ@
+ コセ@
Dies ist ein System von fUnf niehtlinearen Gleiehungen fUr die beiden zu bestimmenden GraBen Z1, Z2. Dieses System ist in der Regel tiberbestimmt, d.h. es gibt keine Datenkombination (zi,z;), die alle fUnf Gleiehungen gleiehzeitig erflillt. Wir sind damit in einer ahnliehen Situation wie im vorangegangenen Absehnitt und wollen nun versuchen, einen Datensatz ftir (Z.,Z2) zu finden, so dass alle fUnf Gleiehungen mit minimalen Abweichungen in den Messwerten erftillt sind. Wir betrachten das tiberbestimmte System von N Gleichungen zur Bestimmung der n Unbekannten Z1,Z2, ... ,zn aus den Messwerten (d1,d 2 , .•• ,dN) : i
= 1,2, ... N
N"? n
Als ausgegliehene Losung dieser Problemstellung betraehten wir diejenige Kombination (zi,z;, ... LコセI@ fUr die die Summe der Fehlerquadrate F(Z1,Z2, ... ,Zn) minimal wird.
F(Z1'Z2' ... ,Zn) 8F(Zl,Z2' ... ,Zn) 8zj j
= 1, ... ,n
N = i=1 E
=
2
ri
N = i=1 E
[f,.( %1 ,Z2, 2 セ@L....J' i=1
2
[/i(z1,z2, ... ,Zn) - di] ... ,Zn
) - d·] . 8/i(z1,z2, , i:J ... ,zn) Zj
!
0
39
3.6 Nichtlineare Ausgleichsprobleme
Dieses System von n nichtlinearen Gleichungen ist in der Regel recht miihsam zu losen. Wenn wir nun die Fehlergleichungen am Messpunkt linearisieren, konnen wir die Methode des letzten Abschnitts zur Minimierung anwenden. Es ergibt sich daraus unter Umstanden eine Verbesserung des Startwerts. Diese Strategie kann iteriert werden und liefert im Falle der Konvergenz die gesuchte ausgeglichene Losung. Bei der Taylorentwicklung der Funktionen
ャゥHクセLァ@
li(X1,X2, ... ,Xn) =
... LxセI@
+
Ii
f:
j==l
。OゥHクセGァLᄋ@
Xj
.. LxセI@
. (Xj - xJ) + セ@
dXj
beriicksichtigen wir nur die linearen Glieder und erhalten als neues System 0 0 0) f,•.( x1,x2,···,xn
+ セ@L.J 。OゥHクセLァ@
J..I
j==l
•
uX1
... ,xg) . dx1. - . d. + r-.•.
Dies liisst sich als lineares Ausgleichsproblem fUr die dXj interpretieren. セ@L.J 。OゥHクセLァ@ ... ,xg) .dx.1 = di - f,( 0 0 0) J..I i x1,x2,···,xn + ri, i==l ,
uXj
",----
c?;
bzw. vektoriell : Addieren wir die Losung des linearisierten Ausgleichsproblems
zum Startvektor, so ergibt sich eine verbesserte Losung
セHQI@
= セHoI@
+ 、セN@
Wir wollen dieses Iterationsverfahren (GauB-Newton-Verfahren) auf unser Eingangsproblem anwenden.
エHセI@
=
(MZ"Z,] 12(x1,x2) Ia(Xl,X2) 14(x1,x2) 15(x1,x2)
Xl x2 V2X1 2 2 J!x 2 1 + x2
=
jセク@
+ クセ@
cHセI@
1 0
0 1 0
V2
(Cij) Rjエクセ@
XI クセ@
XI 2 x22 4J!.x 4 1
jエクセK@
Xa Xa
J!.X2+x2 4 1 2
3 Lineare Gleichungssysteme
40
Fur die Messwerte nehmen wir an:
4 --
Hセ、Zャ@
HTRZNセWj@
Als Startwerte fUr Seitenlange und Hohe benutzen wir die dafur gemessenen Werte: (0) _ セ@
HクセoI@
x (0) 2
_ (2.8) 45
-
.
Beim ersten Iterationsschritt erhalten wir:
c(O)
=
1.000000000 0.000000000 ( 1.414213562 0.284767033 0.148533276
0.000000000] 1.000000000 0.000000000 0.915322606 0.954856776
4. -
エHセoI@
=
HセZUQ@
0.083700578 -0.012748667
und den Korrekturvektor
、セ@
0.022785037) = ( 0.020101099
1m weiteren Verlauf der Iteration ergibt sich: (1:)
X2
0 2.80000000000000 1 2.82278503726894 2 2.82279690985320 3 2.82279693247424 4 2.82279693251384 5 2.82279693251391 6 2.82279693251391
4.50000000000000 4.52010109996749 4.52008932541702 4.52008930774969 4.52008930771878 4.52008930771873 4.52008930771873
Fehlerquadrat 8.784518230100659· 10 . ., 5.693493160018239. 10 -3 5.693492453146719. 10 -3 5.693492453144633 . 10 -3 5.693492453144693 . 10 -., 5.693492453144618 . 10 -3 5.693492453144618. 10 -3
Ab der dritten Iteration andert sich das Fehlerquadrat praktisch nicht mehr. Die folgenden Iterationen sind nur zur Demonstration des Konvergenzverhaltens aufgefUhrt und haben keinerlei praktische Bedeutung. Das folgende Schaubild zeigt die zu unserem Beispiel gehorende Fehlerquadratfunktion
3.6 Nichtlineare Ausgleichsprobleme
41
100
80
60 40
20
o 6
6
3
2
o
0
3 Lineare Gleichungssysteme
42
Wir erkennen ein gutartiges Minimierungsverhalten. Dies zeigt sich auch bei einer bewusst ungeschickten Wahl des Startvektors:
Fehlerquadrat
k
0 1 2 3 4 5 6 7 8 9 10 11
-1.000000000000000 1.993749690504469 3.466656482331118 4.039048271622871 2.920586805929859 2.822687204040376 2.822796502335632 2.822796931758668 2.822796932512591 2.822796932513910 2.822796932513912 2.822796932513912
-1.000000000000000 -1.966063731327278 -0.771720768050128 2.114793531427541 4.878374054888960 4.520499459838193 4.520089646688412 4.520089308308301 4.520089307719760 4.520089307718730 4.520089307718728 4.520089307718728
1.010867402908199.102 5.674175870122194 . 10 1 4.281029468637230 . 10 1 1.540076451798181 . 10 1 4.170563788942188.10- 1 5.693955345530580.10- 3 5.693492453915718. 10- 3 5.693492453144620. 10- 3 5.693492453144643. 10 3 5.693492453144596.10- 3 5.693492453144618.10 3 5.693492453144618.10- 3
Bei ungeeigneter Wahl des Startvektors braucht die mit der oben beschriebenen Methode gebildete Folge !!.(k) nicht zu konvergieren. Ebenso sind kritische Ausgleichsprobleme denkbar, bei denen das oben beschriebene Gau6-Newton-Verfahren nicht konvergiert. In solchen Situationen fUhren eventuell andere Minimierungsverfahren zum Ziel, auf die hier nicht eingegangen wird. MATLAB besitzt fUr diesen Fragenkreis die Prozedur "fmins". Sie minimiert die Fehlerquadratfunktion. Die notwendigen partiellen Ableitungen werden durch Differenzenquotienten approximiert. Der m-File fUr unser Beispiellautet:
function y=pyr(x); y=(x(1)-2.8).A2+(x(2)-4.5).A2+(sqrt(2)*x(1)-4).A2+(sqrt(O.5*x(1).A2 ... +x(2).A2)-5).A2+(sqrt(O.25*x(1).A2+x(2).A2)-4.7).A2; Neben der zu minimierenden Funktion ist der Startvektor und gegebenenfalls die Optionen fUr die Genauigkeit 6 einzugeben. Zur LOsung unseres Eingangsproblems sind folgende Befehle notwendig:
op(2)=le-12; op(3)=le-12; x=fmins('pyr'.[2.8;4.5].op); x' = 2.82279692983442 4.52008930974769 6
Hierbei bestimmt "op(2)" die Genauigkeit im x-Bereich und "op(3)" die Genauigkeit der zu minimierenden FUnktion.
43
4
Lineare Optimierung
Ein Programm zur linearen Qptimierung ist fester Bestandteil jedes mathematischen Software-Pakets. Bier solI nur die grundsatzliche Vorgehensweise eriautert werden.
4.1
Austauschverfahren
In diesem Abschnitt wollen wir einen Algorithmus fUr die Losung von linearen Gleichungssystemen entwickeln. Er entspricht inhaltlich dem bekannten GauB-Algorithmus, ergibt aber formal eine andere Datenorganisation. Die grundlegenden Schritte seien beim Problem der Inversion einer 3 x 3-Matrix eriautert.
(1)
Yl Y2
(2) (3)
Y3
als Matrix:
Yl Y2 Y3
-3 5 -4 2 -6 12 1 -2 2
Wir wollen nun das aus der Schule bekannte "Einsetzverfahren" zum Losen von linearen Gleichungssystemen nachvollziehen. Dazu losen wir z.B. die dritte Gleichung nach Xl auf Y3 =
und setzen
Xl
Xl
2X2
-
+
2X3
'""'-+
Xl
= Y3
+
2X2 -
2X3
(3a)
in die beiden anderen Gleichungen ein:
in (1) :
Yl
in (2) :
Y2
= =
-3(Y3 + 2X2 - 2X3) -3Y3 - X2 + 2X3 2(Y3 + 2X2 - 2X3) 2Y3 - 2X2 + 8X3
+
5X2 - 4X3
(1a) 6X2
+
12x3
(2a)
Wir stellen das veranderte System (1a), (2a), (3a) in Matrixform dar: Yl
Y2 Xl
Y3
X2
X3
-3 2 1
-1 -2 2
2 8 -2
Wir tauschen nun die unabhangige Variable X2 gegen Yl aus.
eingesetzt in (2a) :
Y2
in (3a) :
Xl
=
2Y3 - 2( -3Y3 - Yl + 2X3) + 8X3 8Y3 + 2Yl + 4X3 Y3 + 2( -3Y3 - Yl + 2X3) - 2X3 -5Y3 - 2Yl + 2X3
in Matrixform: R. Mohr, Numerische Methoden in der Technik © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 1998
(26) (36)
4 Lineare Optimierung
44 1/1
Z3
-1 2
2 4
-2
2
Jetzt muss noch Z3 gegen 1/2 ausgetauscht werden:
(2e) eingesetzt: -31/3
Z2
in (Ib) :
= -71/3 ZI
in (3b) :
=
-51/3 -91/3
1/1 +' 2(-21/3 - !1/1 + !1/2) 21/1 + !1/2 21/1 + 2(-21/3 - !1/1 + !y2) 31/1 + !1/2
(Ie) (Ie)
in Matrixform: Z2 Z3 ZI
1/3
1/1
-7 -2 -9
-2
1/2
-! -3
Wir formulieren nun die Rechenregeln so, dass wir die veranderte Matrix direkt aus der Ausgangsmatrix bestimmen konnen. Den Koeffizienten im Schnittpunkt der auszutauschenden Variablen nennen wir Pivotelement (eingerahmt), die zugehOrigen Zeilen und Spalten entsprechend Pivotzeile bzw. Pivotspaite (unterstrichen). ZI -3 2
1/1 1/2 1/3
Z2 5
-4
-6
12
-2
セ@
m I
Z3
2
-2 Z3 2
Z2
1/3 -3
1/1 -1
1/2 ZI
ft -5
セ@ -2
1-2
-2
m セ@
1/1 1/2 ZI
1/3 -3 2 1
Z2 -1 -2 セ@
1/3 -7 -2 -9
セ@
8
-2 2
1- 3
Z2 Z3 Zl
Z3
1/1 -2
1/2
1
I
-3
2
-2
f
1
Rechenregeln 1) Das Pivotelement geht in seinen reziproken Wert iiber. 2) Die iibrigen Elemente der Pivotzeile sind durch das Pivotelement zu dividieren und mit dem umgekehrten Vorzeichen zu versehen. 3) Die iibrigen Elemente der Pivotspaite sind durch das Pivotelement zu dividieren.
45
4.1 Austauschverfahren
4) Die iibrigen Elemente werden nach der sogenannten Rechteckregel transformiert: 1st apq das Pivotelement, so ergeben sich
a/,.L Ifi
-
-1
I
aiA:
a pq apA:
Der Ausdruck aiq . apA: Hisst sich interpretieren als Produkt der k.ten Komponenapq . te der neuen Pivotzeile mit der i.ten Komponente der alten Pivotspalte. Schrelben wir diese neue Pivotzeile als sogenannte "Kellerzeile" unter die Ausgangsmatrix, so erhiilt man das folgende Schema: Xl
XA:
YI
au
alA:
Yi
ail
B
@
Yp
apl
apA:
a pq
iMセ@
a pq
...
Xq al q
I ... iMセ@
Das Austauschverfahren lasst sich auch bei der Losung von linearen Gleichungssystemen einsetzen: aUxl + al2 x 2 + a13 x 3 + + Storglieder a2l x I + a22 x 2 + a23 x 3 + + Koeffizienten Wir bringen das lineare Gleichungssystem auf die Form
!! = 0
und stellen es in unserem Austauschschema dar: X2
YI Y2
au
al2
XA: alA:
al n
-b l
a2l
a22
a2A:
a2n
-b 2
Yi
ail
ail
aiA:
ain
-bi
Ym
amI
am 2
amA:
a mn
-bm
Xl
Xn
Z
Dabei haben wir die kiinstliche Variable z eingefiihrt, der am Ende der Wert 1 erteilt wird. Wir verabreden femer, dass z nicht ausgetauscht werden darf. Offensichtlich erhiilt man eine Losung des Gleichungssystems, wenn man die x- Variablen so wahlt, dass aIle y-Variablen zu Null werden. Ob es derartige x-Werte gibt, kann mit Hilfe des Austauschverfahrens entschieden werden. Sind aile y-Variable gegen x-Variable
4 Lineare Optimierung
46
austausehbar, so existiert eine LOsung: man setzt im transformierten Tableau einfach 111 Y2 11m OJ Z 1 und kann dann die passenden :1:-Werte ablesen. Es kann aber aueh sein, dass nieht alle y- Variablen gegen :1:- Variable austausehbar sind. Dies ist dann der Fall, wenn kein von Null verschiedenes Pivotelement maglieh ist. Die (eventuell umgeordnete) Matrix hat dann die Gestalt
= = ... = =
=
Y2
111
:l:r +l
:l: n
a2r
al,r+l a2,r+l
aln a2n
lIr air
Z -b 1
:1:1
au
:1:2
a21
a12 a22
:l: r
a rl
ar2
arr
a r ,r+l
a rn
-br
0
0
-br+l
0
0
-bm
lIr+l
a r +l,1
a r +l,2
a r +l,r
11m
ami
a m2
a mr
Die LOsungen des Systems erhaIt man durch ist das System nur dann 100bar, wenn br+l
=
111
=
br + 2
In diesem Fall sind die :l:r+l' :l:r +2 j ••• mit (n - r) frei wahlbaren Parametern.
,:l:n
-b 2
= 112 = ... = 11m = OJ Z = 1 . Deshalb bm
=0
frei wablbar und wir erhalten eine LOsung
Zahlenbeispiel: 3:1:1
+
2:1:1 4:1:1
+ :1:1
111 112 113
5:1:2 4:1:2
.a. 2
4
+ +
14:1:2
Z
Q セ@ -4 .a. 7 14 -1 -3
f
:1:3
1
113
:1:2
2:1:4 7:1:4 3:1:4
:1:4
:1:2
:1:1 :1:4
+ +
:1:3
-2
1-3 -5
:1:3
:1:3 3:1:3
1/1
Y2
= = =
-4 -3 -5 :1:1 :1:3
3 5
Y2 1/3
-4
:1:2
m
19
7 Z
-17 -43 7 -2 -22 7 19 -3 1 9 2 -1 0 0 0
111 :1:3
bzw.
Z
:1:4
111
1 -2 -4 -3 -5 -7 -19 .a. -9 19 -1 -1 9 7
:1:4
1/3
9
-3 Y2
:1:1
:1:2
Z
7 -2 -17 -43 -22 7 19 9 -3 1 2 -1 0 0 0
Aus dem letzten Tableau liisst sieh aueh die lineare Abhangigkeit der drei Gleiehungen 2111 - Y2 d.h die dritte Gleiehung ergibt sieh, indem man yom Doppelten ablesen: 1/3 der ersten Gleiehung die zweite Gleiehung abzieht.
=
4.2 Graphische LOsung des linearen Optimierungsproblems Die Losung erhaIt man, indem man Yl = Y2 = OJ wahlbaren Variablen :1:1,:1:2 Parameter setzt.
:1:1 :1:2 :1:3 :1:4
4.2
Z
47
= 1 setzt und fUr die frei
t
= = = =
8 -22 - 17t - 438 9 + 7t + 198
Graphische Losung des linearen Optimierungsproblems
Zunachst machen wir uns die Problematik an einem einfachen Beispiel klar: Eine Schuhfabrik stellt Damen- und Herrenschuhe her. Der beim Verkauf erzielte Gewinn betrage bei Herrenschuhen 32 DM, bei Damenschuhen nur 16 DM. Die Herstellung der Schuhe unterliegt bestimmten (stark vereinfachten) Nebenbedingungen, welche die monatlich zur Verfiigung stehende Zahl der Arbeitsstunden und Maschinenlaufzeiten sowie die in diesem Zeitraum verfUgbare Ledermenge betreffen. Diese Annahmen sind in der folgenden Tabelle zusammengefasst:
I Damenschuh I Herrenschuh I verfiigbar I Herstellungszeit [h] Maschinenbearbeitung [h] l・、イ「。ヲ{ュセ@
Gewinn [DM]
20 4 6 16
10
5 15 32
800 200 450
Wir fiihren als Variable ein: Zahl der produzierten Damenschuhe Zahl der produzierten Herrenschuhe Damit konnen wir unsere Optimierungsaufgabe wie folgt formulieren:
20:1:1 4:1:1 6:1:1 :1:1 16:1:1
+ + +
10:1:2 セ@ 5:1:2 < 15:1:2
32:1:2 =
>
800 200 450 0 0 Max!
Die ersten drei Ungleichungen beriicksichtigen die zu beachtenden Nebenbedingungen, die beiden weiteren Ungleichungen den Tatbestand, dass die Zahl der produzierten Schuhe nicht negativ sein kann. Die letzte Zeile gibt die zu maximierende Zielfunktion an. Die systematische rechnerische Losung erforderte eine einheitliche Formulierung aller Nebenbedingungen. Gleichzeitig fUhren wir fUr die ersten drei linearen Funktionen die abhangigen Variablen Yl, 112, Y3 ein.
4 Lineare Optimierung
48 Yl Y2
1/3
z
= = =
-20%1 -4%1 -6%1 %1
-
10%2 5%2 15%2
=
16%1
+
%2 32%2
-
+ + +
800 200 450
> > > > > --
0 0 0 0 0 Max!
Eine solche Fragestellung nennt man ein "lineares Programm". Da unser lineares Programm nur zwei Variable enthiilt, kann es graphisch in der (%1,%2)-Ebene gelost werden. Die Menge der Punkte (%1,%2), die eine der linearen Ungleichungen Yi
=
+
ail%1
ai2%2
+
ci セ@
0
erfUllt, besteht aus einer Halbebene, d .h. aus allen Punkten oberhalb oder unter der Grenzgerade (je nach Vorzeichen der ail, ai2)
Die fUnf Ungleichungen unseres Beispiels definieren auf diese Weise fiinf Halbebenen. Ein zuliissiger Punkt muss demnach im Durchschnitt dieser fiinf Halbebenen liegen. '.
,, ".
'. ,
\
,
" \
YJ
\ \
'. セN@
\
E
\ \ \
セB@
10
,
A
10
..........
\ ............. Gセ@
,
B
'.
'. ,
\
........ セL@
......
\
,
.,... ...... セ@
...
,,
'.
49
4.2 Graphische Losung des linearen Optimierungsproblems Die Zielfunktion z = 16x1 Die Gerade 16x1
+
32x2
+
=c
32x2 ist zu maximieren.
enthalt aIle Punkte mit konstantem Gewinn c.
Damit c maximal wird, verschieben wir diese Gerade moglichst weit parallel nach oben, so dass noch mindestens ein zulassiger Punkt darauf liegt. Man erkennt unschwer, dass der Punkt D(25120) zu optimalem Gewinn fiihrt:
z
= 16·25 +
32·20
= 1040
Aus der graphischen L6sung entnehmen wir noch eine zusatzliche Information. Der Y3 0 wahrend Losungspunkt liegt auf den beiden Geraden Y2, Y3, d.h. dort gilt Y2 Y1 > 0 ist. Dies bedeutet, dass die verfiigbare Maschinenzeit und die Ledermenge aufgebraucht sind, wahrend bei den Arbeitsstunden noch freie Kapazitat vorhanden ist.
= =
Dieses Verfahren lasst sich auf beliebig viele Ungleichungen anwenden. m Lineare Ungleichungen in zwei Variablen
au . Xl a21 • Xl
a m 1 . Xl
+ +
a12 • X2
+
a m 2 . X2
a22 • X2
+ +
C1 C2
> 0 > 0
+
Cm
> 0
Losungsmenge jeder Ungleichung ist eine Halbebene - je nach Vorzeichen von Bereich "unter" oder "iiber" der Grenzgerade
ai2
der
Die Festlegung "unter" oder "iiber" geschieht am besten durch eine Punktprobe. So kann man zum Beispiel durch Einsetzen des Koordinatenursprungs in die Ungleichung iiberpriifen, ob dieser Punkt zur gesuchten Halbebene gehort. Bemerkung: Auch Ungleichungen der Form 1
lassen sich durch Multiplikation mit dem Faktor (-1) in die Form
bringen. 1
Die Darstellungsfonn des Ungleichungssystems ist leider nicht einheitlich geregelt. So verlangt z.B. MATLAB eine etwas andere Eingabe.
4 Lineare Optimierung
50 Ais LOsungsmenge eines solchen linearen Ungleichungssystems ergibt sich ein durch Geradenstucke begrenztes Gebiet (zulassiger Bereich) in der (z,y)Ebene. Die Eckpunkte ergeben sich als Schnitt von zwei Geraden, d.h. als LOsung eines linearen Gleichungssystems in zwei Variablen. ai . Z aj . Z
+ +
Y = hj . Y = hi'
y
I
\
I I
\ \
: I
/
/ / "
/J( \
1 / \
Mセ
セM
Gセ M M
M /
/
/ /
/
/
/
Ci
/
/
/ /
Cj
/
x
Urn Eckpunkt des Gebiets zu sein, mussen auch aile ubrigen Ungleichungen erfiillt sein.
---
Optimierung der Zielfunktion Die Zielfunktion ist eine lineare Funktion der Variablen Z1 und Z2. Ihre Niveaulinien g(Z1,Z2) = constant bestehen aus einer Schar paralleler Geraden.
Die optimale Lage der Geraden h1 . Z1
+
h2 · Z2 = '"(
ergibt sich durch Parallelverschiebung. 1st die LOsungsmenge des Ungleichungssystems beschrankt, so liegt die optimale Lasung in einem Eckpunkt. Sind zwei benachbarte Eckpunkte Lasung des "linear progamming", so auch die gesamte Verbindungsstrecke. Rechenstrategie: Man berechnet die Zielfunktion an allen Eckpunkten, vergleicht deren Werte und bestimmt so den optimalen Punkt (zilz;). Beispiel eines Optimierungsproblems in drei Variablen Fur den Fall von drei Variablen kann das Optimierungsproblem noch im Anschauungsraum R3 gedeutet werden.
Ungleichungssystem:
-Z1 Z1 -3z 1 -3Z1 5Z1 Z1
+ +
Z2 3Z2 Z2 5Z2 3Z2
+ + +
3Z3 Z3 Z3 3z3 3Z3
+ + + +
+
Z2 Z3 Zielfunktion: z = g(Z1,Z2,Z3) = 4Z1
+ 5Z2 + 9Z3
1 @セ 3 セ@ 3 > 3 @セ 3 > セ@
> セ@
!
0 0 0 0 0 0 0 0
(1) (2) (3) (4) (5) (6) (7) (8)
Max
Das zulassige Gebiet wird durch Ebenen begrenzt. Die Eckpunkte des Gebiets ergeben
51
4.2 Graphische Losung des linearen Optimierungsproblems
sich als Schnitt von jeweils drei Ebenen unter Beachtung der iibrigen Ungleichungen. Dabei sind bei acht Ungleichungen im IR3 3 aus 8, d.h. (:) = 56 Moglichkeiten zu untersuchen. Bei unserem Beispiel ergeben sich die folgenden Eckpunkte:
A(OIOIO), B(11010), C(01110), D(01011), E(21211), F(31313) Exemplarisch sei hier die Berechnung der Koordinaten des Eckpunkts Emit dem Austauschverfahren eriiiutert. Sie ergeben sich als Schnitt der drei folgenden Ebenengleichungen: -Xl Xl -3Xl
Yl
Xl -1
Y2
1
Y3
-3
X3
Yl -14 4
Y3
1
Xl
1
4
X2
3X 2
+
X2
+ + +
X3
.3. 1
Xl
1 1
3 3
Y2 X3
-1
3
1
X2
Y2
Z
-14
-2 -1
1
BJ
X3 X3
1
X2
-1 -3 1
セ@
3X3
4 -2 1
-'2
+ + +
Yl -1 -1 3
1 3 3
X2
X3
-1
3
1
m1 0
-1
1 Yl
Y3
Y2
1 -1 -1 -1 I4 -1 -4 -'2
Xl X3 X2
(1) (2) (3)
1 1
-4 4 -8
4
セ@
0 0 0
Z
2 1 2
Xl "-+
X2 X3
2 2 1
2
Die Werte der Zielfunktion an den Eckpunkten des Gebiets sind der folgenden Tabelle zu entnehmen:
==>
optimal ist der Punkt F(31313)
In der folgenden Skizze sind zwei Schnitte
Ec: 4Xl
+ 5X2 + 9X3
E,
jj; der Ebenenschar
= c
mit dem zuliissigen Gebiet gepiinkelt eingezeichnet.
(Zielfunktion)
52
4 Lineare Optimi erung
c
Verallgemeinerung auf mehr als zwei Variable Bei n Variablen werden die zuliissigen Bereiche durch "Hyperebenen " im IRR begrenzt. Die Eckpunkte sind LOsungen von jeweils n Gleichungen. Die Zielfunktion in allen moglichen Eckpunkten zu berechnen, ist wenig effizient, da die Anzahl der Eckpunkte rasch mit der Anzahl der Variablen und der Nebenbedingungen wiichst ( HセI@ I). Ein sinnvolles Verfahren sollte nur wenige Eckpunkte iiberpriifen und gezielt den optima len Punkt suchen. Ein solches Verfahren sollte • nie von einer Ecke zu einer anderen mit geringerem Zielfunktionsw ert iibergehen; • ein Abbruc hkriter ium besitzen, welches es gestatt et zu entsche iden, ob der gegenwiirtig iiberpriifte Eckpun kt optima l ist oder weiter gesucht werden solI, oder ob das Proble m unlosbar ist. Das bekannteste Verfahren, das obige Kriterien erfiillt, ist das Simple xverfahren, das im folgenden Abschn itt erHi.utert wird.
53
4.3 Simplex-Verfahren
4.3
Simplex-Verfahren
Wir orientieren uns am Eingangsbeispiel des vorangegangenen Abschnitts.
= -20Xl -4Xl Y2 -6Xl Ya Xl Yl
10x2 5X2 15 x 2
+ + +
800 > 200 > 450 >
> >
X2
16xl
Z
+
0 0 0 0 0 Max!
32x 2
Urn die Begrenzungspunkte des zuliissigen Gebiets zu bestimmen, setzen wir zwei der Ungleichungen Null. Zusatzlich miissen die iibrigen Ungleichungen erfiillt sein! Formal liisst sich so eine Ecke des begrenzenden Polygonzugs dadurch charakterisieren, dass zwei der Variablen Xl, X2, Yl, ,Y2, Ya Null sind und die anderen positive Werte annehmen:
c
B
A
Xl -- 0 Xl > 0 Xl X2 -- 0 X2 -- 0 X2 Yl > 0 Yl -- 0 Yl Y2 > 0 Y2 > 0 Y2 Ya > 0 Ya > 0 Ya
> > ->
D
E 0 Xl -- 0
0 Xl > 0 X2 > 0 X2 0 Yl > 0 Yl 0 Y2 -- 0 Y2 0 Ya = 0 Ya
> > > -
0 0 0 0
Beim Ubergang vom Startpunkt A zu Punkt B hat X2 den Wert Null beibehalten, Xl ist positiv geworden, wahrend andererseits der positive Wert von Yl auf Null abgenommen hat. AIle iibrigen Variablen sind positv geblieben. Formal haben Xl und Yl ihre Rollen vertauscht. Dieser Ubergang kann durch einen geeigneten Austauschschritt nachvollzogen werden. Dabei erganzen wir unser System durch die Zielvariable z, die nicht ausgetauscht werden darf. In die rechte untere Ecke kommt der Wert der Zielfunktion am Startpunkt. (Auf die Angabe der Kellerzeile verzichten wir hier.)
Xl Yl Y2
Ya z
セ@ -4 -6 16
1 -10 800 -5 200 -15 450 32 0
Yl
X2
Xl
1
-20 1
Y2
i TIi
Ya z
Mセ@
1 40 Mセ@ -3 40 -12 210 24 640 X2
Der Wert der Zielfunktion hat bei diesem Austauschschritt zugenommen. Wenn wir - wie bei mehrdimensionalen Problemen der Fall - ohne Anschauung auskommen wollen, miissen wir der Frage nachgehen, warum wir nicht Xl mit Y2 austauschen diirfen. Der zugehorige Austauschschritt fiihrt zu dem Ergebnis:
Yl Y2
Ya z
1 Xl X2 -20 -10 800 -5 200 -6 -15 450 16 32 0
BJ
Yl Xl Ya z
Y2
X2
5
15
1
-24
a -4
5
ャセ@M -'2
12
1 -200 50 150 800
Bei diesem Schritt hat die Zielfunktion einen noch groBeren Wert angenommen. Setzen
4 Lineare Optimierung
54
wir jedoch X2, Y2 zu Null, so ist die Bedingung Y1 > 0 verletzt, d.h. wir erhalten keinen zulassigen Punkt. Wir miissen bei unseren Austauschschritten also darauf achten, dass die letzte Spalte der Absolutglieder positiv bleibt. Indem wir X2 mit Y2 austauschen, ergibt sich der Ubergang von Punkt B nach C.
1 40 Mセ@ 40 セ@ -12 210 24 640 X2
Y1 Xl Y2 Y3
z
1
-20 1
5
"3" Iii
-i
Y1
Y2
1 -12 1
Xl Y3
Hi -2"
z
i
X2
A-1 -3
1 100
""3 40 3"
4 50 -8 960
Der Wert der Zielfunktion hat weiter zugenommen. Woran erkennen wir am Schema, ob sich noch ein weiterer Austauschschritt lohnt? Es ist offensichtlich, dass das in Frage kommende Pivotelement negativ sein muss - andernfalls wiirde ja das in der Pivotzeile stehende Absolutglied negativ. Haben wir in der Zeile der Gewinnfunktion noch ein positives Element bi, so ergibt sich fiir ein negatives Pivotelement al:i mit der Rechteckregel
、G]Mセ@
alei
noch ein Zuwachs der Gewinnfunktion. Wir fiihren noch den Ubergang C nach D mittels Austausch
1 Xl X2
-12
6
15
-3
--r-
1
Y3
1.
z
-8
Y3
""3 40 3"
"""
50 960
Xl
.!.
X2
-6
z
Y2
Mセ@
61
12
5
-2
Y1
Mセ@
Y1
8 Mセ@
gegen
Y3
durch:
1 25 20 100 1040
Nun sind siimtliche Koeffizienten der Zielfunktion negativ geworden, d.h. ein zuliissiger Austauschschritt wiirde unweigerlich zu einer Abnahme der Gewinnfunktion fiihren. Wir versuchen nun, aus unserem Eingangsbeispiel eine allgemeine Strategie zu entwickeln. Dabei beschriinken wir uns auf den einfachsten Fall: n
Yi XI
0, n
Z
Der Nullpunkt mit falls die Bedingungen
> 0,
E blexle = 1e=1 Xl
+
d
=
= 1,2, . .. ,m k = 1,2, .. . ,n i
Max!
= X2 = ... = Xn = 0 stellt genau dann eine zulassige Ecke dar, i = 1,2, ... ,m
I
erfiillt sind. 2 2
Durch eine Koordinatentransfonnation kann hiiufig dieser Standardfall erzwungen werden.
55
4.3 Simplex-Verfahren
Die m linearen Ungleichungen und die Zielfunktion schreiben wir wieder m emem Austauschschema auf. Xl
X2
Y1
au
a12
Y2
a21
a22
.. . .. . .. .
Yi
ail
ai2
Yp
ap1
Ym Z
a2q
... ... ...
.. .
aiq
...
ain
Ci
a p2
.. .
apq
...
a pn
cp
am1
am 2
.. .
a mq
...
a mn
Cm
b1
b2
bn
d
Xq a1q
.. .
...
bq
Xn
1
a1n
C1
a2n
C2
Die im Schema oben stehenden Variablen nennen wir Basisvariable, die links stehenden, abhangigen Variablen Nichtbasisvariable. Der Wert der Zielfunktion d erscheint in der unteren, rechten Ecke. Die Basisvariable Xq solI gegen die Nichtbasisvariable Yp ausgetauscht werden. Das Pivotelement sei apq. Unter welchen Bedingungen fiihrt ein solcher Austauschschritt zu • einer zuliissigen Ecke? • einer VergroBerung des Werts der Zielfunktion? Da aIle Elemente
Ci
der Absolutspalte gro6er als Null sein miissen, folgt aus der Regel
..!i..>0 cp' -a pq dass das Pivotelement negativ sein muss. Wenden wir die Rechteckregel auf die iibrigen Elemente der Absolutspalte an, so erhalten wir daraus die Bedingung , Ci
1st
aip セ@
0, so gilt wegen
apq
=
aipcp apq
Ci -
< 0 stets 」セ@ > I
_
> _
0
,
c·1 _ > 0
Fiir negative Elemente der Pivotspalte erhalten wir aus c. I
> _
aipcp apq
die Bedingung
if; セ@ セ@
Iif; I セ@
bzw.
iセ@
Aus der Transformationsregel fiir den Wert d der Zielfunktion
d' =
、Mセ@
apq
und der Forderung nach Zuwachs der Zielfunktion ergibt sich wegen fiir bq die Bedingung
bq セ@
cp
> 0,
apq
< 0
0
Damit lassen sich die folgenden Regeln zur Bestimmung des Pivotelements formulieren:
4 Lineare Optimierung
56
• Die Pivotspalte ist so festzulegen, dass ihr Element blJ in der Zeile der Zielfunktion nicht negativ ist . • In der gewahlten Pivotspalte muss das Pivotelement apt negativ sein. Die Pivotzeile wird weiter bestimmt durch den grof3ten, d.h. absolut kleinsten Quotienten Qi = ...ll. , welcher mit den negativen Elementen ailJ der Pivotspalte gebildet wird. 0'9 Diese Regeln gestatten die systematische Bestimmung von Ecken des zuliissigen, konvexen Bereichs im IRn , welcher auch als Simplex bezeichnet wird. Der Wert der Zielfunktion nimmt dabei bei jedem Schritt zu. Die Auswahl des Pivotelements ist durch obige Regeln allein nicht eindeutig bestimmt. In einem Rechenprogramm sind zusatzliche Auswahlregeln zu formulieren. Bei geeigneten zusatzlichen Auswahlregeln bricht der Algorithmus nach endlich vielen Schritten abo Wegen Einzelheiten sei auf spezielle Literatur verwiesen. Zum Abschluss wollen wir noch das Beispiel im IR3 des vorangegangenen Abschnitts mit dem Simplex-Verfahren lasen. -Xl Xl -3X1 -3X1
Ungleichungssystem:
X2 3X2
+ +
X2
+ + +
3 X3 X3 X3 3 X3
5 X2 3 X2
5X1
3X3
+ + + + +
Xl X2 X3
Zielfunktion: Y1 Y2
z
g( Xl ,X2,X3)
Xl
X2
l2J
-1 -3 1
1
-3 -3
Y3 Y4
セ@
Ys
z
4
Y1 Xl
-1 -1
Y2
Qi セ@
0 0
0 0
8
3
Y1
X2
!.
!.
2
@]
8
3
1-
Ys
-2
-2
z
.2!. 8
2
"'3" Mセ@
1
セ@
セ@
2
セ@
-12 12 21 1/3
_.i! 8 1
-2 -,-
4 1 1
1
-2
0 0 8
8
4
-8 3 23
_-n
0 0 0 0 0 0 0 0
(1) (2) (3) (4) (5) (6) (7) (8)
Max
"-+
Dieser Zustand entspricht dem Punkt A(OIOIO) als Schnitt der Gleichungen (6), (7) und (8).
"-+
Dieser Zustand entspricht dem Punkt B(11010) als Schnitt der Gleichungen (1), (7) und (8).
"-+
Dieser Zustand entspricht dem Punkt B(11010) als Schnitt der Gleichungen (1), (7) und (3).
3
セ@
4
!
> > > > > > > >
5
1 1 4
1
Y4
3 3 3 3
X3
-4
X3
1
X2
z
Y2
Qi
-1 3 -1 -1
-1 -4
-5
8 1
1
0
Ys
Xl
1 1 -3 -3
+ 5X2 + 9X3
9
8 -8
セ@
セ@
5 -3 5
1
セ@
Y3 Y4
X3
4X1
1 3 3 3 3
1 2
Qi
2 -2 0 0
-4
57
4.3 Simplex-Verfahren
Xl
Y1
Y2
@セ 4
-'2
'2
-4
Mセ@
T
X2
T
X3
Ys z
Y4
Ys z
1.
-1 2
2
1
m
-4 -4
1 3 3 3 4
Qi -12
0
0
1 3 3 3 4
1
--....
-12 4 セ@
Dieser Zustand entspricht dem Punkt E(21211) als Schnitt der Gleichungen (1), (2) und (3).
Dieser Zustand entspricht dem Punkt F(31313) als Schnitt del Gleichungen (4), (2) und (3).
Qi
---
---
--
0
--.2. Mセ@
-¥
4 4 27
Ys
-f
1
Qi 8 8 2
セ@ セ@
Mセ@
1 2 2 1
54
0
-'2 0
Mセ@
Y3
1
-1 -1
-f
Mセ@
-4 -1 2
Y2
Y1
Mセ@
Q
Y4
-j
X3
Y3
3
-T
4
X2
-¥
-j
_£!.
Xl
z
Mセ@
-1 1
Y1
-1
Y2
-I -'2
X3
1
Mセ@
-.! 4 1
X2
1
-4 1 -4
-1 1
¥
Xl
Mセ@ 1
1
tIJ -1
Y4
Y3
--....
Dieser Zustand entspricht dem Punkt F(31313) als Schnitt der Gleichungen (4), (2) und (5).
54
Der Algorithmus bricht ab, da aIle bi negativ! An Hand der Skizze aufSeite 52lasst sich der Gang des Simplex-Algorithmus verfolgen. Dabei stellt sich z.B. die Frage, warum der Algorithmus von B nicht sofort zu F geht. Dieser Zustand wird durch die Gleichungen (1), (3) und (7) beschrieben. Die durch diese Gleichungen beschriebene "Kantenvektoren" lauten: 3
Dabei ist rti der zur Ebene Ei bzw. Gleichung (i) gehorende Normalenvektor. Wird eine der Gleichungen ausgetauscht, so bleibt einer der Kantenvektoren erhalten. Die Kantenvektoren rt 1 X rt 7 und rt 3 X rt 7 fiihren zu unzulassigen Ecken, so dass der Algorithmus notwendigerweise zu E fiihrt. Sind mehrere Kantenvektoren moglich, so entscheidet sich der Algorithmus fiir denjenigen mit dem starksten Zuwachs der Zielfunktion. 3
So erhiilt man als Schnitt der Ebenen -x} -3x}
-
+
X2 X2
+ +
3X3 X3
+ +
1 3
= =
0 0
4 Lineare Optimierung
58
MATLAB besitzt im Rahmen der Toolbox "Optimization" ein lineares Programm "Ip" . Es liefert das Minimum des Ausdrucks
unter der Nebenbedingung
l! . aGセZU@
Obere bzw. untere Schranken
セL@
f!u fur セ@
sind separat einzugeben.
Beispiel: Das Maximum der Funktion z = 4· %1
+
5· %2
+
6· %3
ist unter den Nebenbedingungen -%1
+
%2
+
%3
:5
20
:5
30
10,
%2
und den Einschrankungen セ@
%1
0,
%2
セ@
0,
%3
>
°
%1
y'(zo)
= !(zo,y(zo» = !(zo,Yo)
y"(Z)
!:c(Z,y(Z» + !I/(z,y(x», y'(z)
y"(zo)
!:c(ZO,Yo) + !1/(ZO,yo)' !(zo,Yo)
Fordert man Ubereinstimmung bis zur 1. Ordnung in h, so erhiilt man das Eulerverfahren:
y(Z + h) セ@
yf = Yo + h· !(zo,yo)
Urn eine zusiitzliche Ubereinstimmung mit dem h 2 -Glied zu erreichen, macht man den folgenden Ansatz:
95
7.2 Weitere Einschrittverfahren
mit
11
+ 12 = 1; 0 $ 0- $ 1; 0 $ f3 $ 1 y
y(x) ,- /' Dabei liegt der Punkt (x.ly.), in dem die zusatzliche Steigung abgegriffen wird, im Bereich der "Eulergeraden" . 1st yf der Endpunkt der "Eulergeraden" , so gilt konkret:
Xo $ x. $ Xo + h;
yヲMGセH@
,-
yo
NMャセL@
Yo $ y. $ yf
I
I
i i i i
i i i i
i
(schraffiert in nebenstehender Skizze!)
!
Zo
Wir bestimmen nun die Taylorentwicklung von f(xo Potenzen von h.
f(xo
+ o-h,yo + f3hf(xo,yo»
=
f(xo,yo)
+ h2 • { Damit ergibt sich insgesamt: Y1 = Yo + 11 . h . f(xo,yo)
Yo
,-
:Z:o
+h
+ o-h,yo + f3hf(xo,yo»
nach
+ h· [fz(xo,yo)· 0- + fy(xo,yo)· f3f(xo,yo»] •.• }
+ ...
+ 12· h . f(xo + o-h,yo + f3hf(xo,yo»
+ 11 . h . f(xo,yo)
+ 12· h· [f(xo,yo) + h· [Jz(XO,yo) .0-+ fy(xo,yo)· f3f(xo,yo»]
+ h2 • {
=
Yo
••• }
+ ...]
+ h· (-rl + 12) . f(xo,yo) + h 2 ·12· [fz(xo,yo) . 0- + f3. fy(xo,yo)· f(xo,yo)]
+ h3
. { ••• }
+ ...
Die Ubereinstimmung mit der Taylorentwicklung von y(xo ergibt die Gleichungen fiir die gesuchten Parameter. 11
+
12 = 1
+ h)
12 . f3 =
bis zur Ordnung h 2
1 2
Fur die vier Parameter ergeben sich durch diesen Koeffizientenvergleich nur drei Bestimmungsgleichungen. Damit bleibt noch ein "gestalterischer" Freiheitsgrad. Durch zusatzliche "Zwischenpunkte" an denen die Steigung abgegriffen wird, lasst sich auch eine Ubereinstimmung mit h6heren Potenzen von h in der Taylorentwicklung von y(xo + h) erreichen. Besitzt die rechte Seite f(x,y) entsprechende Differenzierbarkeitseigenschaften, so lassen sich aIle fiir die Reihenentwicklung notwendigen Ableitungen von y(x) aus der rechten Seite der Differentialgleichung bestimmen.
96
7 Differentialgleichungen
7.2.2
Heun-Verfahren
Fur einen Algorithmus mit zwei Funktionsauswertungen hat man nach obiger Uberlegung noch einen Freiheitsgrad in der Wahl der "Gewichtungsparameter" Q, /3, '}'1, '}'2· Gebrauchlich sind die folgenden beiden Moglichkeiten:
Fall 1:
'}'
_,},_1 1 2 2'
Q
= /3 = 1
Dieses sogenannte Heun-Verfahren stellt sich dann so dar: k1 k2
= =
n
=
"Eulerschritt"
+ h,Yn + kt) + k1 +2 k2
h ·/(x n Y
Yn+1 Xn +1
h ·/(xn,Yn)
Xn +h
In der folgenden Skizze sind die Punkte, in denen die zusatzlichen Steigungen abgegriffen werden, markiert. Die "mittlere Steigung" ergibt sich aus dem arithmetischen Mittelwert der Steigungen in den Punkten Po und Pl.
..
yf Yo
Xo
97
7.2 Weitere Einschrittverfahren
Fall 2:
11
=0
12
=
1,
a
= {J = !
Man nennt dieses Verfahren auch die verbesserte Polygonzugmethode. Fiir diese Parameterwahl ergibt sich der folgende Algorithmus:
=
"Eulerschritt"
Die Steigung wird hier in dem in der Mitte der "Eulergeraden" gelegenen Punkt P abgegriffen.
Yl
Yo
Da die oben beschriebenen Algorithmen bis zur Ordnung h 2 mit der Taylorentwicklung von y(xo + h) iibereinstimmen, beginnt der Fehler mit einem Summanden proportinal h3 • 1st der lokale Fehler im Wesentlichen proportional h 3 , so erhalt man fUr den globalen Fehler eine Abschatzung proportional h 2 • Man spricht dann von einem Verfahren 2. Ordnung.
98
7 Differentialgleichungen
7.2.3
Runge-Kutta-Verfahren
Sehr gebrauchlich ist der folgende klassische2 Runge-Kutta-Algorithmus, der an vier Stellen Steigungen abgreift und fiir den Gesamtschritt geeignet mittelt. 3 Pro Schritt sind dabei vier Funktionsauswertungen notig. " Eulerschritt"
h . !(Xn,Yn)
kl
+ セィLyョ@
+ セォャI@
k3
h . !(xn + セィLyョ@
+ セォRI@
k4
h . !(xn + h,Yn
k2
=
h . !(Xn
+ k3)
+ A[k 1 + 2k2 + 2k 3 + k4]
Yn+l
Yn
Xn+l
Xn +h
Bemerkung: Algorithmen zur Losung von Differentialgleichungen konnen auch als Verallgemeinerungen von Integrationsformeln gedeutet werden. Hangt die rechte Seite der Differentialgleichung nur von x ab, so ergibt sich z.B. aus den obigen Runge-KuttaFormeln
Dies entspricht genau der Simpsonformel 4 aus Abschnitt 6.2 . In dem folgenden Schaubild ist fiir das Anfangswertproblem 1
1
y' = 2· (x - -) . (y + -) 5 2
1
1
y(-) =5 2
der erste Runge-Kutta-Schritt fiir h = 1 skizziert. Die Punkte, in denen die vier Steigungen abgegriffen werden, sind durch Kreise markiert, die Steigungen werden durch Geradenstiickchen dargestellt. Die Steigung des Runge-Kutta-Schritts (Geradenstiick von (xoIYo) bis zum ausgefiillten Quadrat) ergibt sich als gewichteter Mittelwert der Einzelsteigungen. Das Eulerverfahren wiirde セ@ = Yo liefem! 2
3
4
Neben den klassischen "Steigunppunkten" und Gewichtungsparametenlsind auch noch andere Kombinationen gebrauchlich. Der Idassische Runge-Kutta-Algorithmus ist von bestechender Einfachheit und hat die Eigenschaft, dass die sukzessive Bestimmung der Steigungen ki nur den unmittelbar vorangegangenen Wert benotigt. Bei diesem Verfahren ist eine Ubereinstimmung mit der Reihenentwicklung von y(xo + h) bis zur Ordnung 4 gegeben. Man erhlilt dadurch ein Integrationsverfabren der Ordnung 4. In Abschnitt 6.2 hat h die Bedeutung: Lange des halben Integrationsbereichs.
99
7.2 Weitere Einschrittverfahren
.
I I I
y
y(x)I " I
I
I I I I
ケセ@
......................................................
····························· ···················.,.1/
/,/1
LNセ@
LセN@
","
BセN@
", '
;,"
yo=
t ........ M\
・ッ]Mセ NM MNL NZセ@
=1. V=(c/pa)-(1/k)iendi xdot(3)=(x(3)/sqrt(x(3)-2+x(4)-2»*2*A/ro*(c./V-k-pa)./(mO+1-V)i xdot(4)=(x(4)/sqrt(x(3)-2+x(4)-2»*2*A/ro*(c./V-k-pa)./(mO+1-V)-gOi xdot(6)=vol1(t.x(6»i
% x(2) % x(3) % x(4) % x(6)
Die folgenden Bilder sollen die Empfindlichkeit der Flugbahn in Abhiingigkeit von der GroBe des Startimpulses demonstrieren. Der Abschuss erfolgt im Winkel von {Der Startimpuls wurde relativ klein gewahlt und variiert. Dies fiihrt zu einem total unterschiedlichen Flugverhalten. 9 Erstellt wurde ein Diagramm der Flugbahn und ein Diagramm der Beschleunigung os(t) und al/(t) bis zum "Brennschluss" der Rakete. 9
Die numerischen Ergebnisse dieses Abscbnitts wurden nicht experimentell uberpriift.
7.4 Wasserrakete - Beispiel fUr ein Differentialgleichungssystem Wasserrakete QT
VO- 0.4
pO- 8
y- 0.2
115
alpha- 0.7854
イMLセ⦅N@
12
•••••••• j
...... .... ; ......... .
.......... ;.
2
0
-2
0
0.5
1.5
2.5
2
3
I
Wasserrakete
pO- 8
0.9
VO- 0.4
y- 0.2
alpha- 0.7854
0.8
......... ...
0.7 0.6
.:.........
0.5 セ@
>:
. :
. . .. . . . . . . ... .:.,
0.4
セ@
0.2 0.1
oセ
Mセ
セ
Mセ
Ml
02468
__セ@ Mセ@
10 X(I)
__セ@ 12
____セ@
14
16
__-L__セ@ 18
20
116
7 Differentialgleichungen Wasserrakete
pO- 8
VO- 0.4
v- 0.25
alpha- 0.7854
14 r---------.---------.---------.---------.-----____. -______--,
12
10
•••••• • •••• J
,...........
........... .. -
. . . . . . . ..
セ@
:.
• •• ;
.. . ....... .
8
>:
1
'"
6
........ ..
セ@
)(1
'" 2
o MRセl
o
____
0.5
1.5
Wasserrakete
QNTイMLセ⦅@
pO- 8
VO- 0.4
2 v- 0.25
_ L_ _ _ _ _ _セ@
2.5
3
alpha- 0.7854
1.2
oセ
o
Mセl@
2
4
6
8
10
x(t)
12
14
__セ@ 16
18
20
117
7.5 Implizite Verfahren
7.5
Implizite Verfahren
7.5.1
Implizites Eulerverfahren
Differentialgleichungen, deren linearisierte Problemstellung stark negative Eigenwerte besitzen ( RePi} セ@ 0 ), erweisen sich bei der Losung mit expliziten Verfahren wie Euler-, Runge-Kutta- und Heun-Verfahren als problematisch. Diese numerischen Verfahren konnen das starke Abklingen der Losung nur mit sehr kleinen Schrittweiten nachvollziehen und dies kann wegen der auftretenden Rundungsfehler zu qualitativ falschen Ergebnissen fiihren. Dies soIl am Eulerverfahren erlautert werden. Testgleichung:
y'
= >'Y;
yeO)
=1
Das Eulerverfahren lautet in diesem Fall: Iteriert man den Algorithmus, so erhalt man:
Yn+l
Yn
+ h>'Yn
Xn
+h
(1 + >.h) . Yn
= (1 + >'h)n+l · 1
1st>. > 0, so wachst die Losung Y = e AX exponentiell an und das Naherungsverfahren (Euler) ergibt qualitativ den "richtigen" Verlauf. 1st >. セ@ 0, so klingt die Losung exponentiell schnell abo Die Naherungslosung klingt aber nur dann ab, wenn der Ausdruck (1 + >'h) betragsmaBig kleiner 1 wird. Dies ist bei ReP} セ@ 0 nur durch sehr kleines h ereichbar!! Die Schrittweite h kann aber wegen der Rundungsfehlerproblematik nicht beliebig klein gemacht werden. Wenn wir das Eulerverfahren "riickwarts" durchfiihren, erhalten wir ein Verfahren, das in dieser Situation konvergiert. Wir greifen nun nicht mehr an irgend einer Stelle aus der Differentialgleichung die Steigung ab, sondern wir suchen auf der Geraden x = Xo + heine passende Stelle Yl. Dieses YI ist so zu wahlen, dass eine Gerade durch den Punkt (XO+h,YI) mit der Steigung f(xo + h,Yl) durch den Startpunkt (xo,Yo) geht.
y(x)
Xl
Yo
= Xo + h
!
Yl ケセ@
Z]セMN
I
I
i• !I . Xo
G ZNセ
N Z N セ[Z
N ZMエ
'
!I I• !
..セG N G@ ..,,.,,.""..,.,,,.,. ."",,., ........ .
7 Differentialgleiehungen
118
Die gesuehte y-Koordinate auf der Geraden x = Xo Y1 = Yo
+h
muss die Gleiehung erfiillen:
+ h· /(xo + h,yt)
Dies ergibt im allgemeinen eine niehtlineare Gleichung fiir Y1. Wendet man diese Uberlegung auf die Testgleiehung y' = /(x,y) = ).y, y(O) = 1 an, so erbalt man: Yn+1 Yn+! Xn+1
= =
Yn + h . /(Xn+1 ,Yn+!) Yn + h· ).Yn+1 Xn + h
1m Fall der Testgleiehung lasst sieh die Gleichung fiir Yn+! nach Yn+! aufl6sen und iterativ auf die vorhergehende Stiitzstelle Yn und sehlie81ieh auf Yo zuriickfiihren. Mセ n+! -
Y
Yo
_
1
I=7iA - (1 _ h).)"+1 - (1 _ h>t)"+1
1st ). セ@ 0 so ist (1 - h)') セ@ 1 und damit klingt die Niherungslosung wie verlangt stark abo Die Niherung stimmt damit qualitativ gut mit der exakten LOsung iiberein. Die y-Koordinaten der Stiitzstellen des expliziten Eulerverfahrens sind in der Skizze mit Yl' Y2 markiert, die des impliziten Verfahrens mit Yl' 112. Bereits relativ einfache meehanische Beispiele zeigen ein solches problematisches Losungsverhalten. (vgl.aueh das Eingangsbeispiel auf Seite 1 )
Oszillator mit Coulomb-Reibung mx = -Dx - a· sign(x) ,
D: Federkonstante
a : Reibungskonstante
tunctioDuxdot=linrei(t,x); %uSchwingungumituColoumb-Reibung %uReibungskoettizientuglobaluvorgeben globalua; xdot=[x(2);-x(l)-a*sign(x(2»]; Beim Aufruf der Prozedur "ode45" fiir a = 1 zeigt sieh, dass obige Differentialgleiehung damit nieht gelOst werden kann. Fiir sehr kleine Geschwindigkeiten mit weehselndem Vorzeiehen ergeben sieh groBe, zeitlieh dieht aufeinanderfolgende Spriinge fiir die Beschleunigung. Das Runge-Kutta-Verfahren kann dieses starke Abklingen und Anwachsen nur mit immer kleiner werdender Schrittweite naehvollziehen und "frisst" sieh sehlie8lich fest.
globalua;a=1;[t,x]=ode46('linrei',O,16,[lul]);
119
7.5 Implizite Verfahren 7.5.2
Trapezmethode
Weitere Integrationsmethoden fUr Differentialgleichungen ergeben sich durch bestimmte Integration der Differentialgleichung bzgl. x im Intervall [Xk' Xk+1] .
=
veX)
J
"'k+l
"'k+l
J
--...
f(x,y(x))
f(x,y(x)) dx
y'(x) dx
"'k '----v---'
"'k
Y("'k+l) - Y("'k)
Das rechts stehende Integral liisst sich i.a. nicht geschlossen auswerten. Benutzen wir zur naherungsweisen Integration das Trapez-Verfahren, so erhalten wir:
y(xk+d - Y(Xk) セ@
セ@ [f(Xk,Y(Xk)) + /(Xk+l,y(xk+d)]
Ersetzen wir Y(Xi) durch die Naherungen Yi, so ergibt sich die Trapezmethode:
+ セ{ヲHxォGyI@
Yk+l = Yk
+
f(Xk+l,Yk+d]
Dies ist ebenfalls eine implizite Integrationsmethode, da jeder Schritt die Losung einer i.a. nichtlinearen Gleichung fUr Yk+l verlangt. Da f(Xk ,Yk) ohnehin berechnet werden muss, kann yセャ@ = Yk +hf(Xk ,Yk) als Startwert fUr die Iteration dienen. Die Trapezmethode eignet sich ahnlich dem impliziten Eulerverfahren zur Losung von Differentialgleichungen mit starkem Abklingverhalten. 7.5.3
Allgemeine Vorgehensweise
Implizites Vorgehen ist auch bei Verfahren hoherer Ordnung moglich. Dazu ist bei jedem Schritt ein nichtlineares Gleichungssystem der Ordnung p zu losen. Ais niitzlich haben sich semi-implizite Verfahren erwiesen, bei denen die Gleichungen entkoppelt sind. So sind bei einem Verfahren der Ordnung 2 die beiden nichtlinearen Gleichungen fUr die "Zuwachse" kl. k2 zu 1000n. kl
=
k2
=
+ a1h,yo + f311kt} h· f(xo + a2h ,yo + f321kl + f322k2) h· f(xo
Urn die Losung (z.B. mit Newton-Verfahren) dieses nichtlinearen Gleichungssystems zu umgehen, kann man auch eine linearisierte Form des obigen Systems benutzen. Dazu entwickeln wir die rechte Seite der ersten Gleichung nach k 1 : kl
= h· [J(xo + a1h,yo)
Linearisierung ergibt:
+
fy(xo
+ a1h,yo) . f311
. kl
+ ォセN@
{ ... }
+ ...]
7 Differentialgleichungen
120 Fur k2 erhalt man analog:
k2
h . I(xo
+ (X2h,yO + P21k1) +
I,,(xo
+ (X2h,yo + P21 k 1) . P22 . hk2
Fur den Iterationsschritt sind dann noch die beiden Zuwachse k 1, k2 zu gewichten.
+
Yn+1 = Yn
11 . k1
+ 12 . k2
Bestimmungsgleichungen fUr die Koeffizienten (Xi, Pij und die Gewichte 1l: ergeben sich wieder durch Vergleich mit der Taylorentwicklung von y(xo + h) (vgl. Abschnitt 7.2.1).
7.6
Stabilitat
Bei der Auswahl eines bestimmten Verfahrens zur numerischen Losung einer Differentialgleichung sind die Eigenschaften der Gleichung und die sich daraus ergebende Losungsstruktur zu berucksichtigen. Tut man dies nicht, so konnen unter Umstanden die Naherungslosungen mit der exakten Losung sehr wenig zu tun haben oder die ausgewahlte Prozedur versagt vollstandig. (vgl. Seite 118 )
7.6.1
Absolute Stabilitat
In diesem Abschnitt wollen wir uns mit dem Fragekreis - wann liefert ein numerisches Verfahren zur Losung von Differentialgleichungen eine qualitativ richtige Naherung? im allgemeineren Zusammenhang befassen. Wir betrachten dazu die Testgleichung
= -\y(x)
y'(x) mit der exakten Losung y( x) =
j
yeO)
=1 j
-\
E (J;'
e AZ •
Das Verhalten der exakten Losung und der Naherungslosungen soli an den Diskretisierungspunkten {xd untersucht werden. Xk + h : Bei der exakten Losung y(x) gilt fUr den Ubergang von Xl: zu Xk+1
=
Y(Xl:+d = eA(Zk+ h ) = eAh • eAZk = eAh • Y(Xk) Dies bedeutet fUr die exakte Losung: Urn von einem Diskretisierungspunkt Xk zum nachsten zu kommen, muss mit dem Faktor e Ah
=
1
+
-\h
+
(-\N
2
+ HM|セ_@
+ ...
multipliziert werden. Wir wollen nun fUr einige Integrationsverfahren den entsprechenden Naherungsfaktor bestimmen, mit dem zu multiplizieren ist, urn von einem Diskretisierungspunkt (Xl:,Yl:) zum nachsten (Xk+ltYl:+1) zu kommen.
Eulerverfahren Yk+1
Yl: + h· l(xl:,Yl:) Yl: + h· -\Yl: (1 + -\h) . Yl:
121
7.6 Stabilitat Heun-Verfahren
kl k2
Yk+l
h· f(Xk,Yk) = h· AYk h . f(Xk + h,Yk + k 1) [hA + (hA)2] . Yk
. [k 1 + k2] セ@ . {hA . Yk + [hA
[1
+ hAYk]
セ@
+ + +
Yk Yk
h . A . [Yk
+
hA
セ}@
+ (hA )2] . Yk
}
. Yk
Implizites Eulerverfahren
+ +
h· f(XHl,YHd "-'> h· A· YHI
Yk+l
Yk Yk
Yk+l
2u·Yk
Trapezmethode Yk+l
Yk Yk
+ セN@ [f(Xk,Yk) + f(XHl,YHl)] + '2". [AYk + AYHl] "-'>
Dabei stellt sich die Frage, inwieweit diese vier Faktoren
FE
[1 + hAl
FH
[1 + hA + HィセIR}@
F/
= セ@
1
2
FT =
2
+
hA ).h
ein qualitativ richtiges Naherungsverhalten widerspiegeln. Eine lineare Differentialgleichung bzw. ein Differentialgleichungssystem heifit stabiI, wenn die Losungen des homogenen Problems fUr t -+ 00 beschrankt bleiben. Fiir unsere Testgleichung bedeutet dies
Rep}
セ@
O.
Die NaherungslOsung klingt ab, wenn der Faktor F. .. (Ah), mit dem beim Ubergang von (xkIYk) zu (xk+lIYHt) zu multiplizieren ist, betragsmafiig kleiner 1 ist. Mit der Abkiirzung z = Ah erklaren wir den Bereich
122
7 Differentialgleichungen
als den Bereich absoluter Stabilitat des entsprechenden Integrationsverfahrens. Dies bedeutet dann, dass fiir ein セ@ mit ReP} < 0 die Schrittweite h so zu wahlen ist, dass z = セ@ . h in dem betreffenden Stabilitatsbereich liegt. Fur die oben betrachteten Verfahren erhalt man die folgenden Stabilitatsbereiche:
Eulerverfahren
= feHセィI@
Die Gleichung erfiillt.
F(z)
=
1
+ z
Iz + 11 < 1 ist im Inneren des Kreises um Zo = -1 mit dem Radius r = 1
Heun-Verfahren fhHセィI@
= F(z)
=1 +
z
+
2
セ@
Zur Vereinfachung der Rechnung verschieben wir den Ursprung des Koordinatensystems z = z-1
und erhalten
1 + z _ 1 + (z 21)2 = セ@ . (z2 + 1) 2
Aus der Gleichung fiir die Begrenzungskurve
14-11=1 ergibt sich die Beziehung
(z2 + 1). (i + 1) = 4 Mit der Bezeichnung
bzw.
z2 .
I
:I
+
",;;;2
z2
+ z +
1
4
z = u + jv erhalten wir die Gleichung {u 2 + V 2 )2 + 2 {u 2 {u 2 + v2 )2 _ 2 (v 2
1 1
Dies ist eine Cassinische Kurve 4. Ordnung. Sie wird geometrisch durch die Eigenschaft beschrieben, dass das Produkt der Abstande eines Kurvenpunktes von F(O,I) und F(O, - 1) stets gleich 2 ist. Ais Schnittpunkte mit den Koordinatenachsen erhalt man
l
YfEI2 u{,: = -2 ± fill
u=O
v=O
v2
= 2±
Implizites Euler-Verfahren fャHセィI@
= F(z)
1 r=z
"-+
v=
±.J3
u=±1
123
7.6 Stabilitat Die Bedingung
Qセコャ@ ist im Au6eren des Kreises urn Zo
.h)
F(z)
=
セZA@
Die Begrenzungskurve des Stabilitatsbereichs ergibt sich aus
iセ@ (2
bzw .
+
z)·(2
+
= 1 z)
4 + 2z + 2z + z · z 4· (z
+
z)
= (2 - z)·(2 - z) 4- 2z - 2z + z· z
o
Die letzte Beziehung ist auf der imaginaren Achse erfiillt, d.h. der Stabilitatsbereich ist die ganze linke Halbebene von .} < 0 durch die Stabilitatsforderung keinerlei Einschrankungen fiir die Wahl der Schrittweite h. Diese Verfahren geben somit unabhangig von der Schrittweite auch fiir Re{>.} .h) = 1 + >'h stimmt bis zum Iinearen Glied damit uberein, wiihrend der Faktor
FH(>.h) = 1
+
>'h
+
(>'a)2
bis zur Ordnung 2 mit der Taylorentwicklung von e>.h ubereinstimmt. Fur die Faktoren
FT(>.h)
=
2
+ >'h
2 - }.h
=
1
+ >'h + (>'a)2 + H^NセIS@
+ ...
erhalten wir wieder Ubereinstimmung bis zum linearen bzw. quadratischen Glied.
7.6.2
Inhiirente Instabilitat
Von Instabilitiit spricht man auch, wenn bei einer Differentialgleichung eine geringe Abweichung vom Startwert groBe Abweichungen der Lasung verursacht. Dies sei exemplarisch an einer Klasse von linearen Differentialgleichungen illustriert.
y(x) = >.. [y(x) - F(x)]
+
F'(x);
y(xo) = Yo
Als Lasung des homogenen Problems ergibt sich
Yh(X) = C· e>':Z: wiihrend
Yp(x) = F(x) offensichtlich eine Lasung des inhomogenen Problems darstellt. Die exakte Lasung des Anfangswertproblems lautet damit:
y(x) = {yo - F(xo)}· e>'(:Z:-:Z:o) + F(x) Fur den speziellen Anfangswert Yo = F(xo) ist y(x) = F(x) die Lasung des Problems. Fur einen leicht veriinderten Startwert
Yo = F(xo) +
f
ist
die Lasung. Fur>. > 0 nimmt der erste Summand in x exponentiell zu, so dass sich die benachbarte entfernt. Es besteht somit eine starke EmpfindIichkeit Lasung y(x) von y(x) ・セーッョエゥャ@ der Lasung auf kleine Anderungen des Anfangswerts.
125
7.6 Stabilitiit
Wenn wir nun ein numerisches Verfahren zur Losung der urspriinglichen Aufgabenstellung verwenden, so liisst sich nicht vermeiden, dass die Niiherung yom "rechten Pfad" abkommt und damit ein "Ausbrechen" der Niiherungslosung verursacht. Dieses Phiinomen ist unabhiingig von der verwendeten Methode - auch implizite Verfahren zeigen dieses Verhalten. Diese inhiirente Instabilitiit kann man in einem nicht allzu groBen Intervall nur bis zu einem gewissen Grad in den Griff bekommen, indem man mit Methoden hoher Fehlerordnung und hoher Rechengenauigkeit arbeitet. Als Beispiel betrachten wir das Anfangswertproblem:
Y'(x)
=
10· [y(x) _
x2]
1+ x2
+
(1
2x
+ X 2 )2
y(O) = 0
Die folgende Graphik ist mit dem klassischen Runge-Kutta-Verfahren gerechnet, wobei jeweils die Schrittweite halbiert wurde. Man erkennt, dass die ausgehend von ho = Kurven mit kleinerer Schrittweite "spater" abdriften. Fiir einen groBen Beobachtungszeitraum liisst sich dieser Effekt aber niemals ganz vermeiden.
k
1.5
y(x)
0.5
o
-0.5
- 1 h 0-8"
-1
MQNUセl@
o
7.6.3
____セ@ 0.5
____セ@ 1.5
__セ@ 2
____セ@
2.5
Steife Differentialgleichungssysteme
Losungsfunktionen von Differentialgleichungssystemen, welche chemische oder biologische Vorgange beschreiben, haben oft die Eigenschaft, dass sie sich aus verschieden rasch exponentiell abklingenden Anteilen zusammensetzen.
7 Differentialgleichungen
126
Bei linearen Systemen mit konstanten Koeffizienten lassen sich diese Bestandteile explizit angeben. Das Differentialgleichungssystem yl
= ( 0
+
(-1) 10
-
-20
20 ) '1[ ; 1[(0) = -202
(99)
besitzt die Losung
'!!. =
(-110) Nセ@
-2t
1
%1(t)
1m nebenstehenden Bild ist das unterschiedliche Abklingverhalten der Losungsbestandteile ZI (t) und Z2(t) graphisch dargestellt.
t
Wird das DGL-System numerisch integriert, so miissen die zur Approximation von und Z2(t) notwendigen Rechnungen bzgl. der Schrittweite h mit verschiedenen Strategien durchgefiihrt werden. Aus Stabilitatsgriinden muss mit einer solchen Schrittweite gearbeitet werden, so dass die Zahlen Z = Aih im Stabilitatsbereich des eingesetzten Verfahrens liegen. 1st das Stabilitatsgebiet - wie bei expliziten Verfahren - beschrankt, dann ist man gezwungen, wegen Z2(t) mit extrem kleiner Schrittweite zu arbeiten. Der Losungsanteil ZI (t) ist lange Zeit deutlich von Null verschieden, so dass iiber einen langen Zeitraum gerechnet werden muss. Die dazu notwendige Schrittweite - bezogen auf ZI (t) - konnte relativ groB sein. Diese beiden sich widersprechenden Tendenzen fiihren haufig infolge von Rundungsfehlern zu numerisch unbrauchbaren Losungen. ZI (t)
Ein lineares Differentialgleichungssystem bezeichnet man als steif, wenn die Eigenwerte Ai der Matrix A sehr unterschiedliche, negative Realteile aufweisen. Als MaB fiir die Steifheit dient der Quotient der Realteile des groBten und kleinsten Eigenwerts:
S -
max Re A' min Re Ai
I .'
.
mIt
R {A} 0 e k
5 X 2 + 420 > X2 + 30 >
g(Xl,X2)
-Xl
-
-5Xl -Xl
-
-2Xl
-
-Xl
+
Xl
X2
Yl Y2
'Y3 Y4
Ys z Yl 1/2 Y3 Y4
Xl z
Xl -5 -1 -1 -2
r-n30 Ys Q. 1 1 2 -1 -30
x2
-1 -1 -2 -5 1 20 X2
セ@ -2 -
-3 -7 1 50
1 300 100 170 420 30 0 1 150 70 140 360 30 900
0 0 0 0 0 > 0 > 0
(1) (2) (3) (4) (5) (6) (7)
Qi
-60 -100 -170 -210 -30
Dieser Zustand entspricht dem Punkt A(OIO) als Schnitt der Gleichungen (6) und (7).
Qi
-25 -35 -
SセP@
140
--:;-
30
Dieser Zustand entspricht dem Punkt B(3010) als Schnitt der Gleichungen (5) und (7).
185
9.4 Aufgaben zur linearen Optimierung
Ys Y2
Ya Y4
Y1
セ@
X2
Mセ@
8J
1 T
-2
2
セ@
7
-6"
Xl
----r -6"
6" 1 -6"
z
W-
-T
Y2
_2
Y1
X2
1 21 -I
!
Ys Ya
-92
Y4 Xl z
T4 -¥
セ@
-1 -..l.
-%
1 25
Qi
20 65 185 55 2150
-30 lao -3
30 Dieser Zustand entspricht dem Punkt C(55125) als Schnitt der Gleichungen (5) und (1) .
1110
-""23
-330
1 50 30 20 70 50 2500
Qi
--
Dieser Zustand entspricht dem Punkt D(50150) als Schnitt der Gleichungen (5) und (1).
----
--
\
\
\
\ \ \ \
"
\
\ \ \ \ \
\
' D
"
/ 8
A
/
/
" ,
,
\ ....... I
....
Beim optimalen Punkt D sind die Variablen Ya, Y4, Ys positiv. Dies bedeutet, dass die Kapazitatsgrenzen bei den beiden Materialien A, B noch nicht erreicht sind. Ebenso greift noch nicht die Beschrankung, dass yom Produkt X hochstens 30 Einheiten mehr als yom Produkt Y produziert werden sollen.
186
9 LOsungen
Aufgabe 2:
-Xl
X2
X3
Xl -2Xl
2X2
2X3 2 X3
+
X2
+ 5 > + 6 > + 6 > + 2 > + 2 > + 2 >
-Xl
Ungleichungssystem:
X2 X3
> > >
Xl X2 X3
Zielfunktion:
z =
g(Xl,X2,X3)
0 0 0 0 0 0 0 0 0
(1) (2) (3) (4) (5)
(6) (7)
(8) (9)
+ X2 + X3
Xl
,":3 i
P7 Pa
P6
--- --- --"\
I
\ \
P9
\ \ \ \ \
\
\
\ \
\
\
\ \
\
\ \
...---- ------" \
/
,1..
/
P2
Xl
/
E
\\
/ /
\ \
/
\ \ \
/
Pu
\
/ /
,
/
\
\
/ /
,
/
\
/
,,
/
\
/ /
\
\
/ /
/
/
/
,
Ps
"'-,
セ@
"'-,
,
P4 ,
"- ,
セ@
セ@
187
9.4 Aufgaben zur linearen Optimierung
Y1 Y2 Y3 Y4 Ys
1
-2
tIl Q
z
1
Qi
5
-5
6 6
-3
2 2
-2 -
セ@
°
°1
°1
Y6
%3 -1 -2 -2 Q
%2 -1 -2 1 Q -1
%1 -1
-1 1 %3
1
Qi
--1
3 8
-3
1
@]
-1
z
°° -1
° 1°
Q Q -1 1
2 2 2 2
%2
Y3
1
Y1 Y2
Y4 Q -3
LiJ -3
%3 %1
1 -1
.I Q
Ys
° -1 °
1 -1
%1
-1
Ys
Y6
Y6 z
セ@
°
Y2
-3
%3 %1
1 -1
Ys
Q
Y6
-1
z
セ@
_1 2
3
Y1
Y3
Mセ@
3 2 1
-a-
°2 K 1
a-
Y4
%3 %1
-1
Y3 Y6
Q -1
1
°
-"2
-"2
°
Y2
z
° °1
-1
° @]
%2
1 1
"2
セ@
!
セ@
Q
-a-1
°
8J
s
a-
-2
1
a-
1
1 2
セ@
°
-5 -
K
Ys
-1
"-+
Dieser Zustand entspricht dem Punkt Pu(21211) als Schnitt der Gleichungen (4), (5) und (1). Wir tauschen weiter aus, urn die iibrigen Extremalpunkte zu erhalten.
-2 -2
2 2
a-
-3
-
4
-1 Q 1 Q
1 -1
-2 2
3 2
Y1
°2
"-+
Dieser Zustand entspricht dem Punkt pQッHRセャゥI@ als Schnitt der Gleichungen (4), (3) und (1). Wir tauschen weiter aus, urn die iibrigen Extremalpunkte zu erhalten.
Qi
Qi
°
-1
"-+
Dieser Zustand entspricht dem Punkt Pg(21011) als Schnitt der Gleichungen (4), (3) und (8).
-2
1
5
°
-
-a-4 セ@
.I
-4 -1
セ@
1
-1 -1
Y4 %2
-2
6 1 2 2 1
-1-
"-+
Dieser Zustand entspricht dem Punkt P 2(21010) als Schnitt der Gleichungen (4), (8) und (9).
°
%2 -1 -2
Y4 Y1 Y2 Y3
"-+
Dieser Zustand entspricht dem Punkt P1(OIOIO) als Schnitt der Gleichungen (7), (8) und (9).
6
セ@
1 2 2 1
5
Qi -
-a2 1 -1
9 LOsungen
188 Y1 0
112
-, 0
%2
1
Y4
2
31
%3
-13
%1
3
1/3
0
-3
Y6
1
3
2 1
3
z
0
-1
Mセ@
112
Y1
Y4
セ@M -,-3
-!. 3 2
%3
Q
0
%2
1
3
3
-3
Y3 Ys
L1J 3
!
z
0
-1
1
3
Y3 !. 3 1
Y4
.! Q
Mセ@
Y1 3 1
.!
%1
-3
0 1 -3
Y2 Y5
-1
1
%3
Z
Mセ@
1
2
'i
0
-1
1
Qi
2 2
-2
Q -3
5
3
セ@
-2
-3
2 1
8J
Dieser Zustand entspricht als dem Punkt pQRHエiセI@ Schnitt der Gleichungen (2), (5) und (1). Wir tauschen weiter aus, um die iibrigen Extremalpunkte zu erhalten.
-
I I3
!
1
-3
3
5
0
1
Y6 1 0 -1
2
%1
%2
Y5 -1 Q
セ@
Qi
-5
3 2
-2
3
-
2 4
0 セ@
3
4
!
-1 1
1
-1 0
3
セ@
5
1
Y6 Q
セ@
8J
Qi 1 -3
3 1
.!
-1
-2
2 5
!
f
セ@
-
1
セ@
0 0
セ@
s
3
3
Dieser Zustand entspricht dem Punkt pQSHエャセRI@ als Schnitt der Gleichungen (2), (6) und (1). Wir tauschen weiter aus, um die iibrigen Extremalpunkte zu erhalten.
Dieser Zustand entspricht dem Punkt P14(iltI2) als Schnitt der Gleichungen (3), (6) und (1). Der weitere Austausch fiihrt wieder zum Punkt P lO zuriick.
5
Aufgabe 3: -%1
%2
-%1 %2
Ungleichungssystem:
%1 -%1
+ +
%2
9
2%2
2
%1 %2
Zielfunktion:
z = g(%1,%2) =
%1
+ 18 > 0 (1) + 10 > 0 (2) + 11 > 0 (3)
+ %2
> 0 (4) > 0 (5) > 0 (6) > 0 (7)
189
9.4 Aufgaben zur linearen Optimierung
,
,
,
"
"
Ps ....
,
i / i/
, '. P4
KMZLセ
GMN_
,
)(
..
,/ i
P4 / Xl
+ X2, =
const
NM
, Ps
/ i / i Ps / / ..
/
セMエNB_
1/ / P 2
1
/
,
'.'. Ps
/
1
/
,
/
,/ ,/
,if'
,
/
/1
'
Xl
/
Wir unterwerfen die Ungleichungen einer Koordinatentransformation, so dass der Punkt P6 zum Nullpunkt wird, die Richtung der x2-Achse erhalten bleibt und die Richtung PSPI in die neue xI-Richtung iibergeht.
_ (1-1 (Xl) X2 -
0). (Xl) + (0) X2 9
oder
1
1m transformierten System ergeben sich die folgenden Beziehungen:
X2 -Xl Xl
+
X2 X2 2X2
+
+
%2
+
Ungleichungssystem: -3Xl Xl -Xl
+ + +
9 10 2
> 0 (1) 0 (2)
セ@
> 0
0 16 > 0 > 0 9 > 0 セ@
(3) (4) (5)
(6) (7)
Wie schon im Ausgangssystem ist die 7. Ungleichung redundant und wir erhalten nach Ubergang zur alten Bezeichnung den folgenden Algorithmus: Yl
Y2 Y3 Y4
z
Xl
x2
-1 0 1 -3 0
Q.
-1
8J 2 1
1 10 9 セ@
16 0
Qi
-9 -2 8
Dieser Zustand entspricht dem Punkt P6(010) als Schnitt der Gleichungen (6) und (4).
9 L6sungen
190
Yl
Y3
0
1 10
Qi -10
1
1
-7
[}]
Y2 X2 Y4
z
Yl Xl
1
-1 1
-1 -2 -1
2 20 2
2 -20
Y2
1/3
1
1
lU 1
Qi -3
1
7
-1 -1 1 -1
X2 Y4 Z
Y3 Xl
X2 Y4
z
9.5
Xl
-1
セ@
Q -3 Q
9 13 9
Y2
Yl
1 0 -1 -2 -1
-1 -1 0 3 0
1 3 10 9 4 9
Dieser Zustand entspricht dem Punkt P 5 (012) als Schnitt der Gleichungen (3) und (4).
Dieser Zustand entspricht dem Punkt P4(719) als Schnitt der Gleichungen (3) und (1).
-13
-"3
Dieser Zustand entspricht dem Punkt P3(1019) als Schnitt der Gleichungen (1) und (2). Der nachste Austauschschritt wiirde wieder den Punkt P4 ergeben.
Qi
----
--
Aufgaben zu Interpolation und Approximation
Aufgabe 1: Bestimmung des Newtonschen Interpolationspolynoms: a)
IT]
-1 0
2-1 0- (-1)
IT] -2-1 1- (-1)
2 0-2
1-lJ 1
=
-2
2
1
P3(X) セpSx@
r--r
2 0
=
セ@ MHセ@
2-(-i 1- (-2}
0 1-0
[]
=
[!]
3
2
1
= 1 + 1· (x - (-1» - セN@
(x - (-1». (x - 0) + 1· (x - (-1». (x - 0)· (x -1) -2 3 3 ( ) - -2,x-2'x 2+ x 3
191
9.5 Aufgaben zu Interpolation und Approximation
セ@
-2
b)
-1
4-8 -1- (-2)
=
2-2 r=lJ 1
=
IT] @]
-2
o1-- セMR@ -1
2
0
セ@
-2 - (-4} 0- (-2)
4 2-4 0- (-1)
2
Bl
=
1 0
0 2-0
2
2 4 p4(Z) = P2(Z) = 8 - 4· (z - (-2»
1
=
r--u
4-2 '2"=T
+ 1· (z -
(-2»· (z - (-1»
P2(Z) = 2 - z + z2 セ@
zimalen genau tabelliert: a)
Lineare Interpolation ergibt fUr cos(45°) = cos(600} 0.6830 ...
t cos(300}
R:I
¥
b) Newtonsches Interpolationpolynom durch aIle bekannte Werte fUr cos(z)
Umskalierung • =
W "gihl die ヲッセ、・@
Tabelle:
Iセ@ I:Iiii I: I
o IT]
14 2
va
1 2
1i =
0 3
0
1 1-22 2
セN@
¥
1 -2
va4- 2 -3 3 - 4213 P3(t) = 1 +
=
t+3
_ -
112 1 3 3-5
⦅セ@ Mセ@
-113 .t· (t - 1) + 312- 5. t· (t -1)· (t - 2).
R:I
9 LOsungen
192
=
=
Der Winkel Q 45° entspricht t 1.5 """ 1'3(1.5) = ... = 9· セᄆ@ 7 セ@ 0.705889288962875 c)
Bestimmung von Splines durch die Punkte der Wertetabelle: LGS zur Bestimmung der quadratischen Spline-Koeffizienten: A· Q セ@ mit
=
1 0
A=
0)
1 0 ( 01 41 o
4 1
o
o
0
(CO) Ct Q=
1
C2
C3
Mit der Grad-Skalierung erhalt man fiir die rechte Seite:
e=
-
4 1]
1 . (1 -2.
3UU
セMRGQKP@
+
o
Wir berechnen die Spline-Koeffizienten mit MATLAB: x=[Ou1u2u3]; y=[1 usqrt(3)/2uO.5 uO]; pp=splinm(x,y) ; [breaks,coef,l,k]=unmkpp(pp); In der Matrix coef sind die Koeffizienten der Splines in fallender Reihenfolge gespeichert. Tabelle 1 zeigt die Koeffizienten bei der t-Skalierung, Tabelle 2 bei der Grad-Skalierung: 1.0000000000000 0.8660254037844 0.5000000000000
0 1 2
-0.0529485756040 0.0326920704511 0.0202565051528
0.0000000000000 -0.1588457268119 -0.0607695154586
-0.0810260206115 -0.2398717474235 -0.4594869896942
0 1 2
-0.0000019610583 0.0000012108174 0.0000007502409
0.0000000000000 -0.0001764952520 -0.0000675216838
-0.0027008673537 1.0000000000000 -0.0079957249141 0.8660254037844 -0.0153162329898 0.5000000000000
=
=
=
Fiir t 1.5 bzw. Q 45° erhaIt man z. 0.71046460717605. Der exakte Wert ist cos(45°) = 0.70710678118655 . Aufgabe 3: Zu den folgenden sechs Punkten werden Ausgleichspolynome konstruiert:
I: I=! IセQ@ Iセ@ Iセ@ Iセ@ Iセ@ I Die Punktprobe fiir das Polynom P3(Z) folgende LGS:
= ao + atZ + a2z2 + a3z3
ftihrt auf das
193
9.5 Aufgaben zu Interpolation und Approximation
!l =
-4 0 1
4 -8 1 -1 0 0 1 1 4 8 9 27
1 -2 1 -1 1 0 1 1 1 2 1 3
(-4 0
!!l=
2 2 0
1 2 2 0)
Als Losung erhalt man: bzw. P3(X) =
1 1 1 1 1 1
"-+
セN@
!!2=
-1 0 1
!!3=
2 3
-8
4 1 0 1 4 9
!!.-1=
-1 0 1
8 27
Normalengleichung:
g = ( 1J
1J + m· x -
-2
ImiMセ@ IセI@
x 2 + セN@
x3
Bei Polynomen der Ordnung 1 bzw. 2 sind nur die ersten zwei bzw. drei Spalten des Ausgangssystems zu beriicksichtigen. Dadurch ergeben sich die Normalengleichungen:
Hセ@
GセQ@
!!2 . !!l !!3 . !!l
!!l . !!2 !!2 . !!2 !!3 . !!2
!!l . !!3 !!2 . !!3 !!3.!!3
セN@
!!2 !!3
·k ·k
) (:9 "-+
3 19
19
27
iセ@
27 115 -6
)
bzw.
(: Zセ@
IZセ@ ::) Zセ@
mit den L6sungen
P2(X)
=t+
m·
&= x-
HiセI@
*.
Hセ@
"-+
und
-2H x2
QSYセI@
セ@ HMZセI@ =
und den Polynomen
!f5" und
Pl(X)
= -is + セ@ . x
.
Aufgabe 4: Ein Ausgleichspolynom vom Grad 2 wird fiir die folgenden Messpunkte bestimmt:
Das zugehorige LGS:
9 LOsungen
194 1 1 1 1 1 1 1 1
!l =
3.10 2 9.104 4.10 2 16.104 5.102 25.10 4 6.10 2 36.104 7.10 2 49.104 8.10 2 64.10 4 9.10 2 81.104 103 106 138
(114
163
114 138 163 187 215 244 271 300
1 1 1 1 1 1 1 1 セャ]@
187 215
244
!h = 10 2
271
.
3 4 5 6 7 8 9 10
!b = 104
•
9 16 25 36 49 64 81 100
300)
Normalengleichung:
Als Losung ergibt sich:
!!.2 =
セI@ m
(
4
=
(47.55952380952710) 0.20761904761904 0.00004523809524
セ@
Daraus ergeben sich die physikalischen Konstanten zu:
Ro a
=
b =
Po
= 47.55952380952710
f
=
0.00436545682103
=
0.00000095118899
セ@
Aufgabe 5: Bestimmung von kubischen Splines durch die Punkte (1/1), (2/2), (3/4) und (4/2) ergibt folgendes LGS zur Bestimmung der quadratischen Spline-Koeffizienten: aᄋq]セュゥエ@
1 0 lOCI (1 4 o A= 0 1 4 1 Q= C2 o 0 o 1 C3
0)
(CO)
セMSᄋ@ _
セ@
(1- 2 2+4) 2-2.4+2
o
9.5 Aufgaben zu Interpolation und Approximation
195
in Matrixform geschrieben:
0 4 1 0
U
0 1 4 0
MセR@
0 0 1 1
0 0 0 -15 1 4 0 0
U
"-+
)
= C3 = 0,
Co
0 0 51 o 1 MセR@ 1
C2--'0' 17
C1
= -12 -
)
"-+
4 . C2
= セ@
Absolutglieder sind die "linken" Stiitzstellen der Splines:
ao
= 1,
a1
= 2,
a2
=4 .
kubische Glieder:'r M、ォ]セZG@
do
セ@ . (C1 -
d1
セ@ . (C2 -
d2
セ@ . (C3 - C2)
line are Glieder:
b2
= セ@ . Hセ@ - 0) cd = セN@ (- ¥ - セI@ co)
= =
=
! . (0 + ¥) 'b k = (ak+1 - ak) - ! .(Ck+1 + 2Ck) RMQANHセKPI@
a1- ao-!'(C1+ 2cO)
bo b1
(-C-k+-1--Ck-)',
a2 - a1 - ! . (C2 + 2C1) a3 - a2 - ! . (C3 + 2C2)
4- 2- ! .
=
is
(-¥ + RNセI@
2 - 4 - ! . (0 - 2·
= ¥)
H
A
Damit ergeben sich die drei Spline-Polynome:
So(x) fUr 1 $ x $ 2 So(x)
=1+
is .(x -
1) + O· (x - 1)2 +
A.(x -
2) + セ@ . (x - 2)2 -
i .(x - 2)3
1)3
Sl(X) fUr 2 $ x $ 3 Sl(X) = 2 +
H· (x -
S2(X) fUr 3 $ x $ 4 S2(X)
=4 +
A.(x - 3) - ¥ .(x - 3)2 + it· (x -
3)3
= 1.5 ergibt sich aus So(x): Interpolationswert fUr x = 3.2 ergibt sich aus S2(X): Interpolationswert fUr x
= 1.3 S2(3.2) = セ@ = 3.9264
So(1.5)
196
9 LOsungen
In nebenstehender Skizze ist neben den drei Spline-Segmenten auch das Newtonsche Interpolationspolynom (gestrichelt)
Y
I I I I
I
\ P3( z) I I
P3(Z)
I I
I \ \
eingezeichnet.
1
Die Stiitzstellen sind durch Punkte markiert, die beiden Interpolationsstellen mit kleinen Kreisen.
\
x
1
Aufgabe 6: Wir fiihren ein Koordinatensystem ein, dessen Zentrum in der Mitte der abzurundenden Strecke liegt. y ! ............................................................................................... .................... セ@
1 x
Eo
1
Dann gilt: Dann gilt:
-
b0 =
(-5) 0
セHエI@
= HセUI@ セHI@
=
HSセI@
.(I-t)3
+ SHセUI@
セ@
a=4
z(t) =
セ@ -
.(I-t)2.t
+
3(:) .(I-t).t2 + HセI@
Aufgabe 7:
a)
*. H」ャウNセコ@
+ 」ᄃセsク@
+ 」UNセコ@
+ ...)
.t3
197
9.6 Aufgaben zu Integration und Differentialgleichungen b) Bei acht Punkten ist w = eit = cos セ@ 1 Stufe Yo = 0 Yl ]Mセ@ Y2 = 1
ya - _ f2l Y4 = 0 Ys - _ f2l Y6 = 1 Y7=-4
+j
ウゥョセN@
3. Stufe
2. Stufe
Yo := Yo + Y4 = 0 Yl := Yl + Ys = -../2 Y2 := Y2 + Y6 = 2 Ya := Ya + Y7 = -../2 Y4 :- (Yo - Y4) - 0 Ys := (Yl - ys)w1 = 0 Y6 := (Y2 - Y6)W2 = 0 Y7 := (Ya - Y7)c;r3 = 0
Yo :- Yo + Yl - 2(1 - v'2) Yo := Yo + Y2 = 2 Yl := Yl + Ya = -2../2 Yl := Yo - Yl = 2(1 + ../2) Y2 := (Yo - Y2) = -2 Y2 :- Y2 + Ya - -2 Ya := (Yl - ya)w2 = 0 Ya := Y2 - Ya = -2 Y4 :- Y4 + Y6 - 0 Y4 :- Y4 + Ys - 0 Ys := Ys + Y7 = 0 Ys := Y4 - Ys = 0 Y6 :- (Y4 - Y6) - 0 Y6 :- Y6 + Y7 - 0 Y7 := (Ys - Y7)W 2 = 0 Y7 := Y6 - Y7 = 0
Co C4 C2 C6 Cl Cs Ca C7
Daraus ergeben sich die reellen Fourier-Koeffizienten zu:
=
0'0
セ@
=
¥;
0'2
セ@
=
=
Mセ[@
0'4
und das trigonometrische Polynom:
T(t) = c)
¥ - セ@
+ ¥.cos4t
In der folgenden Graphik ist x(t) durchgezogen, das trigonometrische Interpolationspolynom gestrichelt und die erst en Glieder der Fourierreihe mit Strich-Punkt eingezeichnet.
1
I
I I I II
'I
i,"
'I
!I
II
"
, ,, 'I
\
..
I \
I
I
'2
9.6
Aufgaben zu Integration und Differentialgleichungen
Aufgabe 1: Berechnen Sie mit dem Simpson- und Rombergverfahren die folgenden Integrale auf fiinf Dezimalen genau:
9 Lasungen
198
a) 1
f
Vl+z4 dz
f
sin;z) dz
o Sinnp80nverfahren eO=I.00000()e..006 Naherungen: Doppelintervall nnit Halbierung der Intervallbreite 1.08955319799 1.08941343319 1.08942929898 1.08942941152 Itonnbergverfahren eO=1.000000e-006 Tableau: 1.2071067811 0.0000000000 0.0000000000 0.0000000000 0.0000000000 1.1189415937 1.0895531979 0.0000000000 0.0000000000 0.0000000000 1.0967954733 1.0894134331 1.0894041155 0.0000000000 0.0000000000 1.0912708425 1.0894292989 1.0894303567 1.0894307732 0.0000000000 1.0898897692 1.0894294115 1.0894294190 1.0894294041 1.0894293987
b) 1
o Sinnpsonverfahren eO=1.000000e-006 Naherungen: Doppelintervall nnit Halbierung der Intervallbreite 0.94614588227 0.94608693395 0.946083310887 0.94608308538 Itonnbergverfahren eO=1.000000e-006 Tableau: 0.92073549240 0.00000000000 0.00000000000 0.00000000000 0.93979328480 0.94614588227 0.00000000000 0.00000000000 0.94451352166 0.94608693395 0.94608300406 0.00000000000 0.94569086358 0.94608331088 0.94608306935 0.94608307038
c)
Sinnp80nverfahren eO=I.000000e-006 Naherungen: Doppelintervall nnit Halbierung der Intervallbreite 5.3287925642 5.3792441226 5.3974533458 5.4039532183 5.4062619603 5.4070801031 5.4073696924 5.4074721365 5.4075083664 5.4075211774 Itonnbergverfahren eO= 1.000000e-006 Tableau:
199
9.6 Aufgaben zu Integration und Differentialgleichungen 0.000000000 5.328792564 5.379244122 5.397453345 5.403953218
5.113250378 5.274907017 5.353159846 5.386379970 5.399559906
0.000000000 0.000000000 5.382607559 5.398667294 5.404386543
0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 5.398922210 0.000000000 5.404477324 5.404499109
5.407527396 5.407527874 5.407527912 5.407527920 5.407527922 5.407527923 5.407527923 5.407527923 5.407527923 5.407527923 5.407527923 5.407527923
5.407527922 5.407527923
Bemerkung zum letzten Beispiel: Die Funktion eVi ist bei z = 0 nicht differenzierbar. Deshalb sind die Voraussetzungen fUrs Rombergverfahren nicht erfullt! Daher die schlechte Konvergenz! Oft kann diese Problematik durch eine geschickte Substitution umgangen werden. 2
f eVidz o
= 2
u
..fi.
f
u· eUdz
Substitution mittels
0
=
2eU • (u - 1)1f2 = 2e..fi. (v'2 -1)
+2
{
dz
=
=
Vi
2udu
0-0
2 -
v'2
5.40752818465632
Fur das transformierte Integral ergibt sich: Simpsonverfahren eO= 1.000000e-006 Naherungen: DoppeIintervail mit Halbierung der Intervallbreite 5.44632022805 5.41010524569 5.40769178654 5.40753845002 5.40752882687 Rombergverfahren eO=1.000000e-006 Tableau: 8.22650075756
5.45399890850
0.00000000000 0.00000000000 0.00000000000 0.00000000000 5.44632022805 0.00000000000 0.00000000000 0.00000000000 5.41010524569 5.40769091353 0.00000000000 0.00000000000 5.40769178654 5.40753088927 5.40752834920 0.00000000000
5.41915356464
5.40753845002 5.40752822758 5.40752818533 5.40752818469
6.14136536043 5.59292027437
Aufgabe 2: Gegeben ist das Anfangswertproblem:
11' = y. sin(z) z
a)
j
y(l) = 1
Berechnung von y(2) mit der Schrittweite h = 0.2:
9 Losungen
200
ad NM]Z[GセL@
Euler-Verfahren z
1 1.2 1.4 1.6 1.8 2
Runge-Kutta-Verfahren: z Y
Y
1.00000000000000 1.15533984766120 1.31798689636444 1.48266501020950 1.64309721105156 1.79250361765492
1 1.2 1.4 1.6 1.8 2
1.00000000000000 1.17581704852061 1.36361904289902 1.55752126835127 1.75020289648597 1.93349223108804
b) Losungsformel fUr lineare homogene Differentialgleichungen ergiht: Y . sin(z) Y' z
セ@
InlYI
I I
Y
k. e
I
=
sinJ z) dz sinJz) dz
I
sin(z) z
j sin(z) z
dz
dz
e1
Y
Mittels Fehlerrechnung wird die notwendige Genauigkeit des Integrals ermittelt: Genauigkeit des Ergehnisses : 0.5 . 10- 2 --... Genauigkeit des Integrals: 0.5 . 10- 2
bd
.
h
2
I
セ@
sm z z
:::::
:::::
0.2· 10- 2
dz
I
0.5 0.65935105486081 0.25 0.65933121094521
Simpson-Formel:
0.5· elO - 2
y(2) ::::: eI = 1.93349 ...
b 2 ) Potenzreihenentwicklung
alternierende Reihe --... Fehler kleiner als erstes weggelassenes Glied: hier his zur Ordnung 7 !!
12 . . . d z
l
-
-
1
'
7
31
127
- 370 + s-:TIU - 7 . 5040
...
,
+R
=0.659178005 ...
mit
IRI < 9.
iMsso : : :
1.5· 10- 4
y(2) = eI
1.93320 ...
201
9.6 Aufgaben zu Integration und Differentialgleichungen Aufgabe 3:
Gegeben ist das Anfangswertproblem (4 - x 2 )y" - 2xy' + 2y = 0 mit
a)
y(O)
=0 ,
x 0 0.25 0.5 0.75 1
y'(O)
exakt: y = x
Schrittweite h - 0.5 Schrittweite h = 0.25 y' y' y y 1 0.0000000000 1.0000000000 0.0000000000 I 1.0000000000 0.2500000000 1.0000000000 0.5000000000 1.0000000000 0.5000000000 I 1.0000000000 0.7500000000 1.0000000000 1.0000000000 1.0000000000 1.0000000000 I 1.0000000000
b) y(O)=l, y'(O)
x 0 0.25 0.5 0.75 1
=1
=1
exakt: y
= ャᄋョHセK[IクQ@
y(l)
=
I I I I
1.72534692 ...
Schrittweite h = 0.5 Schrittweite h = 0.25 y' y' y y I I 1.0000000000 1.0000000000 1.0000000000 11.0000000000 1 1.2342928200 0.8736824206 1.4361474332 0.7389666717 1.4361457545 I 0.7390631561 1 1.6021667474 0.5847140277 1. 7253545148 0.3920277774 1.7254334701 I 0.3922447579 1
Aufgabe 4: Aus der Differentialgleichung
w(O) = w(l) = 0 erhii.lt man fiir acht Teilintervalle die Diskretisierung Yi-l - 2Yi
+ Yi+l = _ セN@
=
セ@ 3
(1 - セNI@ . [1 + (Yi+l - Yi-l) 2]'l
1 + ウゥョHQiBセI@
U)2
Xi
21
i
= 1, 2,
... 7
yo=ys=o linear 0.125 -0.00583222720 0.250 -0.01042846334 0.375 -0.01330852828 0.500 -0.01428509078 0.625 -0.01330852828 0.750 -0.01042846334 0.875 -0.00583222720
1. It. -0.00583843688 -0.01043765527 -0.01331839973 -0.01429496223 -0.01331839973 -0.01043765527 -0.00583843688
2. It. -0.00583844507 -0.01043766596 -0.01331841066 -0.01429497316 -0.01331841066 -0.01043766596 -0.00583844507
3. It. -0.00583844508 -0.01043766597 -0.01331841067 -0.01429497317 -0.01331841067 -0.01043766597 -0.00583844508
9 Losungen
202 Blegellnle
0.015
0.01
0.005
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.6
0.7
0.8
0.9
0.6
0.7
0.8
0.9
0.8
0.7
0.8
0.9
Moment
0
-0.05
-0.1
-0.15
0
0.1
0.2
0.3
0.4
0.5
Fiir 50 Teilintervalle ergibt sich das Bild: Blegellnle
0.015
0.01
0.005
0
0
0.1
0.2
0.3
0.4
0.5 Moment
0
⦅PNQUセMlj@
-0.1
o
0.1
0.2
0.3
0.4
0.5
203
9.6 Aufgaben zu Integration und Differentialgleichungen Aufgabe 5: a)
Verbesserte Polygonzug-Methode kl
k2
h· !(Xk,Xk) = >.. h· Yk
= ィNAHxォKセGyI@
Y/c+l
Yk
= >.h·[Yk+>';Y.] +
k2 =
[1 + >'h + (>.;)2]. Yk
Dies ist derselbe Faktor wie beim Heun-Verfahren! b) Implizites Runge-Kutta-Verfahren kl
=
AHxォKセGyI@
>. >'h Xh . Yk 1- T
Y/c+l = Yk + hkl = Yk +
Dies ist derselbe Faktor wie beim Trapez-Verfahren! Aufgabe 6: Wir approximieren die gemischte Ableitung Uzy(x,y) durch Anwendung des zentralen Differenzenquotienten auf die Niiherung der ersten Ableitung.
Uz(Xk,YI+d
=
Uz ( Xk,YI-I )
=
Uk+l"+l2/i Uk-l,l+l Uk+l,l-l - Uk-l,l-l
2h
Uk+l,l+l - Uk-l,l+l
2h
2h
Uk+l,l-l - Uk-l,l-l
2h
= Aufgabe 1:
y
Die Funktionalmatrix ist gegeniiber einer Translation invariant. Deshalb kann o.B.A. PI = (010) angenommen werden. Das gleichseitige Dreieck ist damit durch die Koordinaten von P2(x2IY2) festgelegt. Fiir den Ortsvektor P 3 von (010) nach P3 gilt:
1
1 Die Jacobi-Determinante Jist die doppelte Fliiche des gleichseitigen Dreiecks:
J =
HクセKyョ
ᄋ@
4
9 LOsungen
204 Damit ergibt sich: a
=
b
=
c
=
コセK@
J
2
=
Va
-4 0 -4 -4 0 -4 24 -8 -4 -4 0 -4 -4 -8 24 -4 0 -4 -8 -8
A= セ@
. (25 1 + Rセ@
Aufgabe 8: a) em:
1
- 5..a) =
1 6 1
6 1 1
Steifigkeitselementmatrix:
673·
1 1 6 0
-4 0
-4 -8 -8 24
In einem langen, homogenen Zylinder fiihren wir Zylinderkoordinaten Zl
Z2 Z3
= r·costp = r· sintp = Z
Auf der Berandung sei eine nur von t, d.h. nicht von den Raumkoordinaten abhangige Temperatur vorgegeben. Dann erhalten wir fiir einen Schnitt senkrecht zur Zylinderachse eine Gleichung, die nur von r und t abhangt. Aus der allgemeinen Warmeleitungsgleichung
+
Uu
Uyy
+
Uzz = U,
erhalten wir wegen
=
TT
Urr
セ@ + ---=r + !lr. r r
die Gleichung Urr
+
!{.r-
= U,
mit den Anfangs- und Randbedingungen
U(r,O) = g(r) U(I,t) = let)
。ujセLエI@
= 0
Die Neumannbedingung fiir r = 0 ergibt sich aus der Forderung, dass U(r,t) in r gerade sein muss. Wenn wir in r-Richtung in n Teile unterteilen, in t-Richtung die Schrittweite Ie benutzen, so ergibt sich die Diskretisierung (vgl. Skizze auf Seite 144) : ri
= i· h ,
h --
!n
205
9.6 Aufgaben zu Integration und Differentialgleichungen
Fur inn ere Punkte fUhrt die Diskretisierung (Vorwartsdifferenzen!!) auf folgende Differenzengleichung Ui+l,j - 2Ui,i h2
+ Ui-1,j +
1
Ui+1,j - Ui-1,j
2h
ri .
_
-
Ui,j+1 - Ui,j
k
Fur 0 < i < n lasst sich die Differenzengleichung wie folgt explizit aufiosen: ij. '+1 ',1
Fur i
=
ij ...
',1
(1 MセI@
+
h'"
ij'+l ' ,
',1
= 0 ergibt sich wegen U ,j = U1
(.5..+ h'" + g) セコョ@
1 ,j
2Ul,j - 2Uo,j _ h2 -
ij'-l ' ,
',1
(.5..h'" - g) セzョ@
die Differenzengleichung UO,H1 - UO,j
k
die sich ebenfalls explizit aufiosen lasst: UO,j+l
=
UO,j'
HQMセI@
+
U 1,j .
セ@
Fur i = n gilt wegen der Dirichlet-Bedingung Un,j = f(tj). Das Verfahren ist nur fUr kleine k (Schrittweite in t-Richtung) numerisch stabil. b) Fur h = 0.05 und k = 0.001 ergaben sich die folgenden Schaubilder, die das e- t - 1 bzw. h(t) sin4t in Eindringen der Temperaturanderung /I(t) den Zylinder zeigt.
=
Waermeleltungsglelchung 1m Zyllnder fr- exp(-t)-1; g_ zeros(slze(x));
0.8 0.6
-
5" 0.4 0.2
o 2
o
0
=
k- 0.001; h- 0.05
9 LOsungen
206 W.ermeleltungsglelchung 1m Zyllnder fr- slnC"·t); g_ zerosCslzeCx»;
k- 0.001; h- 0.05
0.5
セ@
0
:::;,
-0.5
..
-1
o
0
Das folgende Bild zeigt eine "Mornentaufnahrne" zurn Zeitpunkt to = 0.59. Waermeleltung 1m Zyllnder f- slnC"·t); to- 0.55;
k- 0.0001; h- 0.025
0.86
0.82
0.8 2
1 .5
y
-2
-1 .5
x
9,6 Aufgaben zu Integration und Differentialgleichungen y
Aufgabe 9: In Abhangigkeit von z ergeben sich fUr:
Steigung:
207
m=2z
Kriimmungsradius: 3
_ (1 + y/2) 2
R-
3
_
(1 + 4z2)'" 2
yIi
Wir bestimmen den Betrag der Auflagekraft auf Fiihrung: Z
• Normalkomponente der Gewichtskraft:
• Zentrifugalkraft
Fiihrungskraft: -+
F
=
セ@
+ 2z2
1
JI + 4z2 ' JI + 4z2
(-2Z) 1
9 + 2z2 , (-2Z) = 1 + 4Z2 1
Reibungsskraft:
R --
-
k'
(' )
sIgn z '
9 + 2z2 1) VI + 4Z2 ' JI +1 4z2 ( 2z
=
-
' ( , ) 9 + 2z2 (1) k sIgn Z '1 + 4z 2 ' 2z
Bilanz:
Betrachten wir die erste Komponente, so erhalt man: Z = -
セ@
! 4:
2'2 2 ,[2z
+
ksign(z]
Fur die MATLAB-Prozedur "ode23" lautet der m-File:
function xdot=reipa(t,x); global k; xdot=[x(2);-(l+2*x(2).-2).*(2*x(l)+k*sign(x(2»)./(1+4*x(1).-2)]; Fur den Parameter wert kl = 0.1 ergibt sich:
9 Losungen
208
-LA -2
MRNVPZ[Lセ@
M[LセN@
--;.:';-. --;,:';-.--;,.::----:,:';-._--.l••. I
Fur den Parameterwert kl
= 0.5 erhiilt man:
...
,. 9.7
"
MGNャセV[Z@
•.' ; - - - : - - - . , - ' : I . I : - - - . J
Aufgaben zu MATLAB
Aufgabe 1: 1. m-File .. regula .... 1. Regula-Falsi fuer die Funktion fO(t) 1. fO(t) muss als function-file bereits vorhanden sein 1. lullstelle und Anzahl der notwendigen Iterationen fuer Maschinen1. genauigkeit werden ausgegeben 1. ill Vektor p sind die Zwischenwerte der Iterationen gespeichert
1. clear variables; global p; disp('Regula-Falsi zur Loesung der Gleichung f(x)=O '); fO=input('Funktion fuer Iteration f(x)= ','s');
209
9.7 Aufgaben zu MATLAB
disp('Graphische Darstellung der Funktion: '); s=1; while s==1. x1=input('linke Intervallgrenze x1= '); x2=input('rechte Intervallgrenze x2= '); d=(x2-x1)/500; t=x1:d:x2; y=feval(fO,t);clf; plot(t.y.t,zeros(size(t»);hold on;grid; str=['Nullstellen der Funktion , fO '(x)'];title(str); clear t y;but=1; s=input('Neue Graphik? Ja=1, Nein=2 '); end;l1=O;p=[] ; x1=input('Startwert xO= '); x2=input('Startwert x1= ');eO=3*eps;p=[x1 x2]; while (eO»(2*eps), if abs«feval(fO.x1)-feval(fO,x2»»0. x3=(x1*feval(fO.x2)-x2*feval(fO.x1»./(feval(fO.x2)-feval(fO.x1»; eO=abs(x3-x2);l1=l1+1;x1=x2;x2=x3;eO=eO/(abs(x3»; p=[p x3]; else s=O;eO=O; end; if 11>50, eO=O;end end; disp('Nullstellen, Anzahl der Iterationen'); disp('sind in der Matrix Reg abgelegt');Reg=p'; lullstelle=x3 Anzahl=l1 clear fO Aufgabe 2: a)
Schaubild der Funktion:
MセG[N@
u.
.•
...
- - ; - - - --:.':-----,:----:GZMセ
MZGL@
.•
9 LOsungen
210
Xl X2
Xs X4 X5 X6 1:7
X8 X9 XIO Xll
1. Nullstelle
2. Nullstelle
3. Nullstelle
4. Nullstelle
-1 .200000000000 -0.800000000000 -0 .921819905213 -1.051612091165 -0 .991459772487 -0.999147948693 -1.000015112767 -0.999999973571 -0 .999999999999 -1.000000000000 -1 .000000000000
0.800000000000 1.200000000000 0.881290322580 0.937309161237 1.042549051460 0.990759470345 0.998785261879 1.000038339558 0.999999844335 0.999999999980 1.000000000000
0.200000000000 0.300000000000 0.280842105263 0.843214038106 0.276350493957 0.272188846678 0.232172685685 0.255220052558 0.251011216808 0.249928443698 0.250000917333 0.250000000822 0.249999999999 0.250000000000
0.300000000000 0.400000000000 0.315294117647 0.324791545897 0.335883682631 0.333068981720 0.333325953708 0.333333355352 0.333333333331 0.333333333333
XI2 XIS
X14
p=[12 -7 -11 7 -1]; roots(p) ans=
-1.00000000000000 1.00000000000000 0.33333333333333 0.25000000000000
b) Schaubild der Funktion 16 イM
Mイ
Mイ
M
イM
Nuhlo non do, Funktion 'Og2(1) Mイ
Mイ
M
イM
セ
Mイ
ML
」M⦅L@
12 10
a
-2 ⦅ T セ
-3
MZG
M
-2 .5
MZ
-2
MZ⦅G
-1 .5
MZG
-1
Mセ
-0 .5
]M
NlMB
ZN
M
0 .5
MGlNj@
1.5
2
I
211
9.7 Aufgaben zu MATLAB 1. Nullstelle 0.00000000000000 2.00000000000000 0.40000000000000 0.68421052631579 1.23187710033605 0.94949140812989 0.99285540620988 1.00024770294914 0.99999881609453 0.99999999980452 1.00000000000000
Xl X2 X3 X4 X5 X6 X7
Xs X9
XlO Xu
2. Nullstelle -2.10000000000000 -1.80000000000000 -2.21481481481482 -0.52185347526628 -2.29387267003066 -2.45965017655395 -2.18825352809635 - 2.13863044079427 -2.08180074994658 -2.05228011268319 -2.03222325686760 -2.00000000696933
X41
p=[l 3 0 -4];
roots(p) ans=
-2.00000000000000 + 0.00000001985182i -2.00000000000000 - 0.00000001985182i 1.00000000000000 fzero('reg2',-1.9999) ans=
1
Die MATLAB-Prozedur "roots" liefert ein etwas schlechteres Resultat, wahrend die Routine "fzero" die doppelte Nullstelle gar nicht erkennt! Das Newtonverfahren mit dem Startwert -2.5 liefed nach 27 Iterationen den Wert -2.00000000371146. Aufgabe 3: Aus der Differentialgleichung mit dem Parameter a : y"
+ a 2y =
0, a
>0
.
ergibt sich die charakteristische Gleichung: A2
+
a2 = 0
"-+
AI,2
±ja
a)
y(X) y'(x)
CI cos(ax) + C2 sin(ax) -aCI sin(ax) + aC2 cos(ax)
b) Die Randbedingungen (R I ) y(O) + y'(0) = 0 (R 2 ) y'(1) = 0 ergibt das lineare Gleichungssystem:
9 Losungen
212
(Rd (R2)
yeO) + yeO) = 0 = y(l) = 0 =
C1
+
a . C2
-asina· C1 + a cos a . C2 Nichttriviale Losungen existieren, wenn die Determinante Null wird.
1 1-asina
a acosa
1-- 0
Da a > 0 ist die Gleichung zu erfiillen.
cosa
+
asina = 0
c) Nullstallan dar Funktlon rag3(x)
15.--------------,---------------,--------------,
10
5
ッセM⦅K@
-5
-10
MQUセ@
Xl X2 X3 X4 X5 X6 X7 X8
o 1. Nullstelle 3.0000000000000 4.0000000000000 2.8180500199483 2.8010537417072 2.7984044984161 2.7983860633414 2.7983860457840 2.7983860457838
5
10
15
2. N ullstelle 3. Nullstelle 4. Nullstelle 6.0000000000000 9.0000000000000 13.0000000000000 7.0000000000000 10.0000000000000 14.0000000000000 6.1180272241750 9.3082371577051 12.1658022997819 6.1212223041772 9.3179176141845 12.5591278712965 6.1212504817820 9.3178664081056 12.4835724787492 6.1212504668980 9.3178664617907 12.4864401082802 6.1212504668980 9.3178664617910 12.4864543985416 12.4864543952237
9.7 Aufgaben zu MATLAB
213
Aufgabe 4: m-File des Ganzschrittverfahrens:
1. 1. 1. 1.
Ganzschrittiteration zum Loesen des LGS A*x=d Startvektor ist der Nullvektor Die erst en 50 Zwischenresultate werden als Matrix P gespeichert Die Variable 11 gibt die Gesamtzahl der Iterationen Yo Die Transformationsmatrix der Umnummerierung ist die Matrix T 1. Der Loesungsvektor ist die Variable x 1. Benoetigt die Unterprozeduren gre.m, verts.m, beding.m, it.m Yo
disp('Ganzschrittverfahren zur Loesung eines'); disp('linearen Gleichungssystems A*x=d mit: '); disp('bei Leereingabe wird auf bereits definierte Matrix zugegriffen'); clear a D x xs P C T; a=input('Matrix A = '); if -isempty(a),A=a;end; D=input('rechte Seite d= ,); if -isempty(D),d=D;end; [n,m]=size(A);[n1,m1]=size(d); if n1O. r(11)=r1/abs(A(11.l1»j else r(l1)=2j end endj b=max(r)j function r=gre(A)
1. liefert Position des betragsmaessig groessten Elements einer Zeile 1. Ergebnis ist ein Vektor mit ebensoviel Komponenten wie Zeilen der Matrix [n.m]=size(A) ; for l1=1:n. r1=A(11.1);r(11)=1; for l2=2:m. if abs(A(11.l2»>r1. r(l1)=12; r1=abs(A(11.l2»; end end end; function B=it(A)
1. Ergibt Matix fuer iterative Loesung eines LGS 1. LGS Ax=b wird ueberfuehrt in x(n+1)=b-Bx(n) [n.m] =size(A) ; for 1=1:n. for j=1 :m, B(l.j)=A(l.j)/A(l.l); end end; k=min(n.m) ; for 1=1:k B(l.l)=O; end; function C=verts(A.n1,n2)
9.7 Aufgaben zu MATLAB
215
Yo liefert Transformationsmatrix, die bei einer Matrix der Groesse A Yo bei A*C die nl-te und n2-te Spalte vertauscht ODER Yo bei C*A die nl-te und n2-te Zeile vertauscht
C=eye(size(A»; a=C(:,nl); C(:,nl)=C(:,n2); C(: ,n2)=a;
1m Command-Window sind folgende Eingaben zu machen: A=[19 1 2 1 1 0;1 3 10 121 1;1 2 3 1 4 20 1;30 1 347 1 2]; A=[A;l 1 2 15 1 1 3;1 2 3 4 1 2 20;2 1 2 3 25 3 4]; b=[4764 165 112 101 187 193]'; iteratg Matrix A = A rechte Seite d= b umgeordnete Matrix A
A= 9 3 2 1 1 2 1
1 10 3 3 2 3 2
1 1 20 1 1 2 3
1 1 1 30 1 1 2
2 1 1 4 15 4 3
0 1 1 2 3 20 4
1 2 4 7 1 1 25
Anzahl = 90 x = 1.00194573126057 2.69527634436537 2.79962179868551 3.98952190623064 4.99918239260691 5.96281916679737 6.96630139174640
Beim Einzelschrittverfahren wa.ren nur 19 Iterationen notig gewesen.
Aufgabe 5: m-File Peilung Yo Standortbestimmung aus drei Peilungen Yo Yo Ohne Erdkruemmung
216
x
XBerechnung
9 LOsungen
des nicht1inearen Ausg1eichsprob1eas
X erfo1gt mit Gauss-lewton-Methode X X 1=(1_1,1_2,1_3) Messverte der Pei1ung als Spaltenvekor X xi=(x_l,x_2) Koordinatan der Sender als Spaltenvektor X X benoetigt: f_pei1.m, j_pei1.m, schnitt.m
XZvischenresu1tate
in xi
X disp('Standortbestimaung aus 3 Pei1ungen'); disp( 'ohne Erdkru8JlllllUD.g! !') ;disp(' ,); disp('Eingaben als Spa1tanvektor!!'); global xi xl x2 x3; fo='f_pei1';ja='j_pei1'; xl=input('Koordinatan des 1. Senders xl= '); x2=input('Koordinatan des 2. Senders x2= '); x3=input('Koordinatan des 3. Senders x3= '); 1=input('Winke1 der Pei1ungen(Grad) 1=(1_1,1_2,1_3)= '); izz=l; for iz=1:3, if 1(izz»90, 1(izz)=1(izz)-180; end; izz=izz+l; end; 1=pi*1/180; [xsl,ysl]=schnitt(xl,x2,l(1),l(2»; [xs2,Y82]=schnitt(xl,x3,l(1),l(3»; [x83,ys3]=schnitt(x2,x3,l(2),l(3»; xO=([xsl ysl]+[x82 ys2]+[xs3 ys3])'/3; x=xO;e=1;dx2=zeros(size(xO»; k=O;r=l-feval(fo,x); xi=[O xO' r'*r]; vhile e>10*eps, dxl=feval(ja,x)\r; e=abs(dxl-dx2);dx2=dxl;k=k+l; x=x+dxl; r=1-feva1(fo.x); xi=[xi;k x, r'*r]; if k>SO, e=O;end; end; Anzahl=k Standort=x Fehlerquadrat=r'*r x_min=min([xl(l) x2(1) x3(1) x(l)]); x_max=max([xl(l) x2(1) x3(1) x(l)]); d_x=(x_max-x_min)/10; y_min=min([x1(2) x2(2) x3(2) x(2)]); y_max=max([x1(2) x2(2) x3(2) x(2)]);
217
9.7 Aufgaben zu MATLAB
d_y=(y_max-y_min)/i0; x_aus=[xi(i) x2(i) x3(i);x(i) x(i) x(i)]; y_aus=[xi(2) x2(2) x3(2);x(2) x(2) x(2)]; x_p=[xi(i) x2(i) x3(i);xsi xs3 xs2]; y_p=[xi(2) x2(2) x3(2);ysi ys3 ys2]; x_s=[xi(i) x2(i) x3(i)]; y_s=[xi(2) x2(2) x3(2)]; plot(x_aus,y_aus,'g',x_p,y_p,'r',x_s,y_s,'oy'); line([xsi xs2 xs3 xsi],[ysi ys2 ys3 ysi],'Color','r'); axis([x_min-d_x x_max+d_x y_min-d_y y_max+d_y]); title('Peilungen rot; ausgeglichene Loesung gruen'); m-file Lpeil.m
function y=f_peil(x); global xi x2 x3; y=[atan((x(2)-xi(2»./(x(i)-xi(i») atan((x(2)-x2(2»./ ... (x(i)-x2(i») atan((x(2)-x3(2»./(x(i)-x3(i») ]'; m-File j_peil.m
function J=j_peil(x); global xi x2 x3; j]{HクゥRIMᄏNOセK@ HMクゥIKᄏNOセR[@ HクRIMᄏNOゥセK@
HMクRゥIKᄏNOセ[@ HクSRIMᄏNOゥセK@
.. . .. . .. . .. . .. .
HMクSゥIKᄏNOセR}[@
m-File schnitt.m
function [xs,ys]=schnitt(xi,x2,ai,a2); xs=(x2(2)-xi(2)+xi(i)*tan(ai)-x2(i)*tan(a2»/(tan(ai)-tan(a2»; ys=xs*tan(ai)+xi(2)-xi(i)*tan(ai); Aufgabe 6: periodische Losung II Die Berechnung der Bahnkurve und ihre Darstellung im bewegten Koordinatensystem erfolgt durch die MATLAB-Prozeduren:
x02=u[O.994uOuOu-2.00i585i06379]; [t,x]=ode45('sat',O,20,x02'); plot(x(:,i),x(:,3»;
218
9 LOsungen
1.5 r---------.---------.---------.---______.-________.-__
0 .5
o
-0 .5
-1
MQNUセ
-1 .5
Mセ
-1
セ
セM
-0.5
M
セM
Ml
0
セ@ 0.5
Die Bahn der zweiten periodischen Losung ist relativ instabil. Wird die Beobachtungszeit auf 50 Einheiten erhoht, so "explodiert " die L6sung. 10 8
6 4
2
0 -2 -4
-6 -8
-10 -10
-5
0
5
10
15
219
9.7 Aufgaben zu MATLAB
Erhohen wir die Genauigkeit der Prozedur "ode45" I so erhiilt man wieder das periodische Bild
[t,x]=ode45('sat',O,50,x02',le-10); plot(x(:,l),x(:,3»; Zur Beobachtung im festen Koordinatensystem miissen wir die errechneten Daten wieder der Koordinatentransformation unterwerfen:
v=[cos(t).*x(:,l)-sin(t).*x(:,3),usin(t).*x(:,l)+cos(t).*x(:,3)]; plot(v(:,l),v(:,2»; 1.5r--------.--------.--------.--------.--------.--------,
0.5
o
-0.5
-1
MQNUセl@
-1.5
-1
o
-0.5
0 .5
1.5
Aufgabe 7: Fiir die Neumann-Bedingung sind insgesamt acht geometrische Situationen denkbar. Die Gewichtung kann den folgenden Skizzen entnommen werden:
G
i
-1
+ I
.
i
4 -2 :-------- ----.- ..... ---1
-1
G
-2
G
i4 -2
-1
220
9 LOsungen
-1
..... -. -.. Mセ
4
-1
G
-2
-1
4
-2
G
G -2
+ I
i m-File partdg.m Yo Yo Yo Yo Yo Yo Yo Yo Yo Yo Yo Yo Yo Yo Yo Yo Yo Yo Yo Yo
partdg.m Ditterenzenmethode zur Loesung von ellipt. DGL in 2 Variablen Erstellung eines Datenfiles mit: Matrix A: Gitterpunkte des Gebiets Kennzeichnung: 4: innerer Punkt 1: Dirichlet 11 .. 18 Heumann (Grenze durch Gitterpunkte!!) Matrix td: Dirichletvorgaben Matrix t: Inhomogenitaet h: Maschenveite Beispiele tuer Datentiles: partl.m, part2.m, part3.m
part4
Yo Datentile
[nl,n2]=size(A) ; T=zeros(nl,n2);nr=1; Yo Hummerierung der Unbekannten tor iz=l:nl, tor izz=1:n2,
9.7 Aufgaben zu MATLAB
if A(iz,izz»O,T(iz,izz)=nr;nr=nr+l;end; end; end; k=zeros(nr-l,nr-l);c=zeros(nr-l,l); x=[] ;y=[] ;xd=[] ;yd=[] ;xn=[] ;yn=[]; for iz=l :nl, for izz=1:n2, if A(iz,izz)==l, xd=[xd izz];yd=[yd iz]; end; if A(iz,izz)==4, x=[x izz];y=[y iz]; end; if A(iz,izz»4,xn=[xn izz];yn=[yn iz];end; end; end; plot(x,y,'o',xd,yd,'+',xn,yn,'*'); % Plotten des Gebiets for iz=l:nl, %Erstellen des Gleichungssystems for izz=1:n2, if A(iz,izz)==l, n=T(iz,izz);k(n,n)=l;c(n)=fd(iz,izz); end; if A(iz, izz)==4, n=T(iz,izz);ne=T(iz,izz+l);nn=T(iz+l,izz); nw=T(iz,izz-l);ns=T(iz-l,izz); k(n,n)=4;k(n,ne)=-1;k(n,nn)=-1;k(n,nw)=-1;k(n,ns)=-1; c(n)=h*h*f(iz,izz); end; if A(iz,izz)==ll, n=T(iz,izz);nn=T(iz+l,izz); nw=T(iz,izz-l);ns=T(iz-l,izz); k(n,n)=4;k(n,nn)=-1;k(n.nw)=-2;k(n,ns)=-1; c(n)=h*h*f(iz.izz); end; if A(iz,izz)==12. n=T(iz. izz); nw=T(iz.izz-l);ns=T(iz-l,izz); k(n.n)=4;k(n,nw)=-2;k(n,ns)=-2; c(n)=h*h*f(iz,izz); end; if A(iz.izz)==13, n=T(iz.izz);ne=T(iz.izz+l); nw=T(iz.izz-l);ns=T(iz-l.izz); k(n,n)=4;k(n,ne)=-1;k(n,nw)=-1;k(n,ns)=-2; c(n)=h*h*f(iz.izz); end; if A(iz,izz)==14. n=T(iz.izz);ne=T(iz.izz+l);
221
222 ns=T(iz-l, izz) j k(n,n)=4jk(n,ne)=-2;k(n,ns)=-2; c(n)=h*h*f(iz,izz); end; if A(iz,izz)==16, n=T(iz,izz);ne=T(iz,izz+l);nn=T(iz+l,izz); ns=T(iz-l,izz); k(n,n)=4;k(n,ne)=-2;k(n,nn)=-1;k(n,ns)=-1; c(n)=h*h*f(iz,izz); end; if A(iz,izz)==16, n=T(iz,izz);ne=T(iz,izz+l);nn=T(iz+l,izz); k(n,n)=4;k(n,ne)=-2;k(n,nn)=-2; c(n)=h*h*f(iz,izz); end; if A(iz,izz)==17, n=T(iz,izz);ne=T(iz,izz+l);nn=T(iz+l,izz); nv=T(iz, izz-1); k(n,n)=4;k(n,ne)=-1;k(n,nn)=-2;k(n,nv)=-1; c(n)=h*h*f(iz,izz); end; if A(iz,izz)==18, n=T(iz, izz); nn=T(iz+l,izz);nv=T(iz,izz-l); k(n,n)=4;k(n,nn)=-2;k(n,nv)=-2; c(n)=h*h*f(iz,izz); end; end; end; xx=k\c; Y. Loesung des Gleichungssystems E=zeros(nl,n2); for iz=l:nl, for izz=1:n2, n=T(iz,izz); if n>O,E(nl-iz+l,izz)=xx(n);end; if n>O,Ef(iz,izz)=xx(n);end; end; end; [xf,yf]=meshgrid([O:O.06:1.7]); Y. part4.m figure;mesh(xf,yf,Ef);viev([210,40]); Aufgabe 8: Daten-File: part4.m Y. Poisson-Daten: part4.m A=zeros(36,36); [nl,n2]=size(A); for iz=2:26, for izz=2:21,
9 LOsungen
9.7 Aufgaben zu MATLAB A(iz,izz)=4; end; end; for iz=2:20, for izz=22:25, ACiz, izz)=4; end; end; d=l; for izz=26:35, for iz=(1+d):(21-d), A(iz,izz)=4; ACizz, iz) =4; end; d=d+l; end; for iz=1:25, A(iz,1)=15; end; for iz=2:25, A(1,iz)=17; end; A(1,1)=16; for iz=25:35, A(iz,iz-24)=1; A(iz-24,iz)=1; A(iz,46-iz)=1; A(46-iz,iz)=1; end; for iz=21:25, A(iz,21)=1; A(21,iz)=1; end; h=O.05; fd=zeros(nl,n2); for iz=l:nl, for izz=1:n2, f(iz,izz)=sin((10+iz+izz)/10); % f(iz,izz)=10*(sin((iz+izz)/5)+1)/(10+iz+izz); end; end;
223
224
9 LOsungen
f(z,y) = sin(l + 2z + 2y) 0.15 0 .1
-;;
0.05
.?!.
:::>
0
o
-0 .05 -0 .1 2
o
y
2
x
f(z,y)
sin(4z + Tyセ@ +1 1 + 2z+ y
0 .2
o
o 2 1 .5
o x
2
y
225
A A.1
Einfiihrung in MATLAB Allgemeines
MATLAB ist ein interaktives Softwarepaket fiir numerische Berechnungen bei mathematischnaturwissenschaftlichen Problemen und im Ingenieurbereich. MATLAB arbeitet bei allen Zahleneingaben auf der Basis von Matrizen (entstand aus einem Paket zur linearen Algebra). Dies hat zur Folge, dassjede Variable stets als Matrix interpretiert wird. Beim Gebrauch von Variablen ist nicht wie in einer Programmiersprache eine vorherige Definition des Zahlenformats notwendig. MATLAB unterscheidet zwischen GroB- und Kleinschreibung. Der Befehl "casesen" macht die Unterscheidung zwischen GroB- und Kleinschreibung riickgangig. Mit dem Befehl "quit" beendet man eine MATLAB-Sitzung. Mit ,,!" erreicht man wiihrend einer MATLAB-Sitzung die Ebene des Betriebssystems.
A.2 A.2.1
Fundamentals Eingabe von Matrizen
Der Befehl
weist der Variablen A die 3 x 3-Matrix
zu.
A=[lu2u3 uuu 4 u 6 u 6 uuu 7 u 8 u 9]
A.2.2
Matrixelemente
Matrizenelemente konnen auch mathematische Ausdriicke sein.
Einzelne Matrizenelemente konnen mit Indices angesprochen werden. x(6)=abs(x(l»
ergibt den Vektor x=-1.3000 1.73214.80000.0000 1.3000 Matrizen konnen durch Anfiigen vergroBert werden. r=[10 u ll u 12] A=[A;r]
ergibt die Matix
aセ・@
-
Mit der Anweisung
2
5 7 10
8 11
}J
A Einftihrung in MATLAB
226 B=I(1:3.2:3)
erhalten wir die Zeilen 1 bis 3 und die Spalten 2 und 3 der urspriinglichen Matrix A. Steht im Argument nur ": " ,so werden alle zuvor definierten Elemente ausgewahlt. A.2.3
Variable
Durch das Gleichheitszeichen wird einer Variablen ein Ausdruck zugewiesen. Fehlt die Variable in der Eingabezeile, so wird der Ausdruck der daf"tir reservierten Variable "ans" zugewiesen. Reicht fUr die Eingabe eine ZeiIe nicht aus, so bon in der folgenden Zeile weitergeschrieben werden, wenn vor der "return-Taste" drei Punkte stehen. a=1-1/2+1/3-1/4+1/S- u 1/6+1/7-u 1/8u +1/9 ... -1/10+1/11-1/12 u+1/13
Leerzeichen vor und nach Rechenoperationszeichen sind optional. Ein Semikolon am Ende der Anweisung unterdriickt die Bildschirmausgabe. A.2.4
Information iiber Variable
Der Befehl "who" listet alle Variablen auf, iiber die in der laufenden Sitzung bereits verfiigt wurde. Der Befehl "whos" ergibt eine detaillierte Information iiber diese bereits belegten Variablen: GroBe der Matrix, komplex, noch verftigbarer Arbeitsspeicher. Der Befehl "clear" 100cht die Belegung aller Variablen. Sollen nur bestimmte Variable gelOscht werden, so sind diese nach "clear" explizit anzugeben. Ebenso konnen bereits compilierte Funktionen mit "clear functions" aus dem Arbeitsspeicher entfernt werden. A.2.5
Zahlen und Arithmetik
Zuliissige Zahlendarstellungen sind 3.u-99.uO.001.u9.634S21.u1.4E-20.u6.4S782e12
Bei der Potenzdarstellung darf vor E bzw. e kein Leerzeichen stehen! Die Genauigkeit der internen Zahlendarstellung betrii.gt ungeflihr 16 Dezimalen und umfasst den Bereich von -lOS08 bis lOSos. Die kleinste von Null unterscheidbare Zahl ist eps セ@ 2.2.10- 16 . Diese interne Zahldarstellung liisst sich nicht beeinfiussen, es kann nur die Ausgabe auf Bildschirm und Drucker gesteuert werden. Die Variable "NaN" (not a Number!) stellt das Symbol 00 dar und wird z.B. bei der Division durch Null erzeugt. Die Funktion "pi" erzeugt die Konstante '11". Weiter sind die iiblichen Grundrechenoperationen und Funktionen verftigbar:
+ -
*
\ I A
Addition Subtraktion MuItiplikation Division rechts (siehe A.3.1 ) Division links (siehe A.3.1) Potenz
a6s(z) sqrt(z) log(z) sin(z) tan(z)
...
Absolutbetrag von z Quadratwurzel von z natiirlicher Logarithmus von z Sinus von z Tangens von z
....
227
A.2 Fundamentals A.2.6
Komplexe Zahlen
Bei allen Rechenoperationen und eingebauten Funktionen sind komplexe Zahlen erlaubt. Komplexe Zahlen werden wie folgt eingegeben und dargestellt:
z=3+4*j; z=3+4*i; z=3+sqrt(-1)*4; Dabei darf vor und nach dem ,,+" kein Leerzeichen stehen! Eine Eingabe in der Exponentialdarstellung ist ebenfalls moglich:
w=2*exp(i*2.5); A.2.7
Ausgabeformat
MATLAB rechnet intern stets mit Gleitkommadarstellung mittels 8 by tel . Die Ausgabe auf dem Bildschirm kann durch den Befehl " format " beeinfiusst werden. So wird die Zuweisung:
x= [4/3 usqrt (2)*le-6] wie folgt auf dem Bildschirm dargestellt: format format format format format
short ==> short e ==> long ==> long e ==> rat ==>
1.3333 0.0000 1.3333E + 000 1.4142E - 006 1.333333333333333 0.00000141421356 1.333333333333333E + 000 1.414213562373095e - 006 Darstellung als Bruch" 4/3 1/707107
Weiter gibt es noch die Formatbefehle "format hex" und format lung ist "format short". A.2.S
,,+". Die Voreinstel-
Help-E\mktion
Der Befehl " help " erzeugt eine Liste samtlicher eingebauter Funktionen und Prozeduren. Eine spezielle Hilfe zu einer bestimmten Funktion - z.B. fUr die Funktion "eig" erhalt man durch:
helpueig A.2.9
Sichern
Wenn MATLAB mittels "quit" verlassen wird, gehen samtliche Zuweisungen an Variable verloren. Diese Information kann mittels des Befehls "save" gesichert und mittels "load" wieder in den Arbeitsspeicher gel aden werden. Die Sicherungen konnen mit einem Filenamen spezifiziert werden. 1 2
vgl. z.B. Datenformate in Thrbopascal, C, Fortran, ... numerische Naherung - hat nichts mit der symbolischen Algebra zu tun!!
228
A.3
A Einfiihrung in MATLAB
Matrizen, Vektoren
Matrizen und Vektoren miissen nicht extra gekennzeichnet werden - MATLAB interpretiert jede Variable als potentielle Matrix. A.3.1
Rechenoperationen
Die iiblichen Matrizenrechenoperationen stehen zur Verfiigung: Addition A + B Subtraktion A - B Multiplikation A . B
A+B A-B A*B
"Division" A . B- 1
AjB
Division" B- 1 . A " -Transponieren Potenzen An
B\A
A.3.2
Matrixdimension muss iibereinstimmen Matrixdimension muss iibereinstimmen Spaltenzahl von A gleich der Zeilenzahl von B Multiplikation von A mit B -1 von rechts X=AjB ist eine Losung von X . B = A, det(B):I 0 Multiplikation von A mit B ·1 von links X=B\A ist eine Losung von B . X = A, det(B):I 0 Vertauschen von Zeilen und Spalten nur fiir quadratische Matrizen
A' A-n
Matrizenfunktionen
Determinante det(A) Inverse A ·1 Rang
det(A) inv(A) rank(A)
Eigenwerte
eig(A)
charakteristisches Polynom
polY(A)
A.3.3
Determinante von A liefert fiir det(A) :I 0 die Inverse von A ergibt den Rang von A ergibt die Eigenwerte von A [V,D]=eig(A) liefert in V die Eigenvektoren und in D die zugehorige Diagonalmatrix ergibt die Koeflizienten des charakt. Polynoms in fallender Reihenfolge
Elementeweise Rechenoperationen
Die in Abschnitt A.3.1 erwiihnten Rechenoperationen werden stets im Sinne der Matrizenrechnung ausgefiihrt. Soll die entsprechende Rechenoperation elementweise erfolgen, so muss vor der entsprechenden Rechenoperation ein Punkt gesetzt werden. Dies sei an folgenden Beispielen erHi.utert: Es sei x=[1 2 3]; y=[4 5 6]; Dann ergibt die Operation z=x.*y; das Ergebnis z=[4 10 18]; entsprechend erhiilt man mit z=x.\y; das Resultat z=[4.0000 2.5000 2.0000]; z=x.-y Ebenso ergibt sich aus der Vektor z=[1 32 729] 1st bei einer elementaren Funktion das Argument eine Matrix, so wird die entsprechende Rechenoperation elementweise ausgefiihrt. Ausnahmen sind die als solche ausgewiese" , "sqrtm" .3 bonen "expm" ,,,I ogm nen M a t 1'xfunk' 3
mittels der Funktion "funm" k5nnen auch die iibrigen elementaren Funktionen im Matrizensinn aosgewertet werden
229
A.4 Analysis
A.3.4
Vektor- und Matrixmanipulationen
Das Erzeugen eines Vektors mit aquidistanten Komponenten geschieht mittels des Doppelpunkts: x=1:5 erzeugt den Vektor x=[l 2345] x=[-2 -1.5 -1 -0.5 0 0.5 1 1.5 2] x=-2:0.5:2 ergibt So erhalt man zum Beispiel durch:
x=[O:O.2:3]' ; y=exp(-x).*sin(x); [x,y] eine Wertetabelle der Funktion y = e-'" . sin(x) zwischen 0 und 3 mit Abstanden 0.2. Die Prozedur "linspace(a,b,n)" erzeugt einen Vektor zwischen a und b mit n Punkten. Zur Erzeugung von Einheitsmatrizen und von Matrizen, die mit Nullen oder Einsen besetzt sind, existieren die folgenden Funktionen: Einhei tsmatrix Einsmatrix
Nullmatrix
eye(n) eye( size( A)) ones(n) ones(n,m) ones(size(A» zeros(n) zeros(n,m) zeros(size( A»
erzeugt erzeugt erzeugt erzeugt erzeugt erzeugt erzeugt erzeugt
eine Einheitsmatrix der Dimension n Einheitsmatrix derselben Dimension wie A eine quadrat. Einsmatrix der Dimension n Einsmatrix mit n Zeilen und m Spalten Einsmatrix derselben Dimension wie A eine quadr. Nullmatrix der Dimension n Nullmatrix mit n Zeilen und m Spalten Nullmatrix derselben Dimension wie A
Die Funktion "size(A)" gibt Zeilen- und Spaltenzahl der Matrix A zuruck. Mit "length(x)" erhalt man die Lange des Vektors x.
AA A.4.1
A ../.1.1
Analysis Differentiation Numerisches Differenzieren
Ausgangspunkt ist der Differenzenoperator "diff(v)", der die Differenz benachbarter Elemente von v zuruckgibt. 1st x=[l 3 4 7 9] ein Vektor mit fiinf Elementen, so erhalten wir mit z=diff(v) fiir z einen Vektor mit vier Elementen z=[2 1 3 2]. Die Ableitung einer Funktion lasst sich damit naherungsweise mittels des Differenzenquotienten bestimmen. Ais Beispiel solI die Ableitung der Funktion sin(x) im Bereich zwischen 0 und 11' numerisch berechnet werden.
x=linspace(O,pi,50); y=sin(x) , z=diff(y)./diff(x); A ../.l.2 Differenzieren mittels Computeralgebra
Der Funktionsaufruf ist mit dem Differenzenoperator identisch. 1st das Argument ein String mit einer symbolischen Variablen, so wird nach dieser differenziert.
230
A Einftihrung in MATLAB diff(S)
dift'(S,'y') difl'(S,'y',n) A.4.2
differenziert den Ausdruck S nach der Variable, die mittels "symvar" 4 alB symbolische Variable erklirt ist differenziert den Ausdruck S nach der Variablen y differenziert den Ausdruck S n mal nach y
Integration
A .Nャセ@
Numerische Integration
Zur numerischen Integration stehen zwei Prozeduren zur Verfugung ("quad": Simp80nformel, "quadS": Newton-Cotes - mit identischer Syntax). So erhiilt man das bestimmte Integral loft sin(t)dt durch den Aufruf: quad(,sin',O,pi). Zusatzliche Parameter ftir Genauigkeit des numerischen Verfahrens und zur graphischen Darstellung des Prozesses konnen eingegeben werden. Die durch m-Files (ygl. A.7.2) definierten eigenen Funktionen konnen auf dieselbe Weise behandelt werden.
A .NャMセR@
Integrieren mittels Computeralgebra
Die Funktion "int" wird mit der analogen Syntax wie in AA.1.2 aufgerufen. int(S) int(S,'y') int(S,a,b) int(S,'y',a,b) A.4.3
unbestimmtes Integral des Ausdrucks S nach der Variablen, die mittels "symvar" 4 als symbolische Variable erklart ist unbestimmtes Integral des Ausdrucks S nach der Variablen y bestimmtes Integral yon S zwischen den Grenzen a und b bestimmtes Integral yon S bezuglich y zwischen a und b
Polynome
Poly nome werden in MATLAB alB Vektoren dargestellt, wobei die Komponenten des Vektors die Koeffizienten des Polynoms in fallender Reihenfolge sind. (Ein Polynom der Ordnung n entspricht somit einem Vektor der Dimension n+ 1) Um Funktionswerte eines Polynoms auszuwerten, muss die Funktion "polyyal" benutzt werden. P3(Z) = 2z3 + 5z 2 - Z + 7 entspricht p=[2 5 -1 7] P3(2) errechnet sich durch polyyal(p,2) Zur Berechnung der Nullstellen (auch komplex) yon Polynomen stehen die beiden Prozeduren "roots" und "rootsl" mit identischer Syntax zur Verftigung. "roots(p)" A.4.4
ergibt die Nullstellen des Polynoms
P3(Z)
Interpolation
Die Prozedur "polyfit" bestimmt ein Polynom yorgegebener Ordnung n, das im Sinne del kleinsten Fehlerquadrate minimalen Abstand zu yorgegebenen Punkten hat. Fur n+ 1 Punkte erhiilt man das Newtonsche Interpolationspolynom. Die Eingabe • ohne SpezifikatiOD benutzt MATLAB die Variable, die alphabetisch der Variablen x am nichaten
stebt.
231
A.4 Analysis
x=[lu2u4u7];y=[lu3uSu3]; p=polyfit(x,y,2) ergibt ein Polynom 2. Ordnung dargestellt als Vektor
E:
Die Funktion "spline" bestimmt zu vorgegebenen Punk ten (dargestellt als Spaltenoder Zeilenvektoren セ@ bzw. y) kubisehe Splines5 und bereehnet den Interpolationswert an einer beliebigen Stelle6 . Die Eingabe
xs=spline(x,y,4.S) liefert den Funktionswert
:1:S
des Splines dureh
セL@
'!!.. an der Stelle 4.5.
Zur expliziten Bestimmung der Spline-Koeffizienten muss der "Output" der "spline"Routine uminterpretiert werden.
pp=spline(x,y); [breaks,coefs,l,k]=unmkpp(pp); A.4.5
A.4.5.1
Nichtlineare Gleichungen und Optimierung
Numerische Bestimmung
Fur die Bestimmung von Nullstellen stehen die Prozeduren "fzero" und "fsolve" zur VerfUgung. Lokale Minima konnen mit "fmin" bzw. "fmins" bestimmt werden. fzero('fun' ,:1:0) fsol ve( 'fkt ' LセI@ fmin('fun' ,:1:0) fmins(,fkt' LセI@
Nullstelle von fun; Start der Iteration bei :1:0 entspreehende Prozedur fUr Funktionen mehrerer Variabler lokales Minimum von fun; Start der Iteration bei :1:0 entspreehende Prozedur fUr Funktionen mehrerer Variabler
A.4.5.2 Symbolische Bestimmung Zur symbolisehen Losung von Gleiehungen und Gleiehungssystemen stellt MATLAB die Prozedur "solve" bereit. solve(S) solve(S,'v') solve(8l ,82 , ••• ,8n ,'Vl ,V2' ... GvセI@
lost die Gleiehungung S naeh der Variablen auf, die mittels "symvar" 7 als symbolisehe Variable erkliirt ist lost die Gleiehung des Ausdrueks S naeh v auf entspreehende Prozedur fUr Systeme
ans= [-3/4+1/4*(9+8*a) 4 (1/2)] [-3/4-1/4*(9+8*a)4(1/2)] 5 6
7
Die in MATLAB benutzte Routine stimmt nicht genau mit den einfachen "freien" Splines (lberein. Die Splinefunktion kann auch zur Extrapolation benutzt werden. 0 hne Spezifikation benutzt MATLAB die Variable, die alphabetisch der Variablen x am nichsten steht.
232
A Einfuhrung in MATLAB
A.4.6
Differentialgleichungen
A ../.6.1
Numerische Losung
Die numerische Lasung einer Differentialgleichung (Runge-Kutta-Verfahren fUr Anfangswertprobleme von Differentialgleichungen 1.0rdnung) erfolgt mittels der Prozeduren "ode23" und "ode45" mit identischer Syntax. Differentialgleichungen hoherer Ordnung mussen dazu in ein System von Differentialgleichungen erster Ordnung uberfuhrt werden. Beispiel: Z+
%
_}z3 = 0 ergibt mit der Substitution
=
%1
=
%2
Z2 -Z2
1 + '2zf
als "Function-File":
Zl
=
Z, Z2
=
%
das System:
function xdot=dgl(t.x); xdot=[x(2) ;-x(2)+0.6*x(1)-3];
1st "dgl" die als m-Files abgespeicherte "rechte Seite" der Differentialgleichung, so erhalten wir im Intervall [zo, ze] die numerische Losung zu der Anfangsbedingung y(zo) = Yo durch den Aufruf: xO=1;x8=2;yO=[1 1]; [t .x] =Od846( 'dgl' ,xO .X8.YO);
A ../.6.e Symbolische Losung
Mit der Funktion "dsolve" konnen auch symbolische Lasungen von Differentialgleichungen bestimmt werden. Es lassen sich sowohl allgemeine L6sungen (mit Integrationskonstanten) erzeugen als auch spezielle L6sungen, die an Anfangs- oder Randbedingungen 9 angepasst sind. Der Differentialoperator wird durch "D" symbolisch dargestellt. dsolve(,D2y=-y') liefert die L6sung Cl *sin(x)+C2*cos(x) ii+y=O; dsolve('D2y=-y', 'y(O)=O,Dy(O)=l') ii+y=O; yeO) = O,y(O) = 1 ergibt die Lasung sin (x) dsolve('D2y=-y', 'y(O)=l,Dy(pi)=O') ii+y=O; yeO) = l,Y(1I") = 0 ergibt die L6sung cos(x)
Graphik
A.S A.5.1
Zweidimensionale Graphik
Die Prozedur "plot" erzeugt zu einer Wertetafel ein Schaubild in der (z,y)-Ebene. Dazu mussen die z- und y- Koordinaten der zu verbindenden Punkte als gleichlange Vektoren eingegeben werden. Dies solI an folgendem einfachen Beispiel gezeigt werden. x=[O:O.05:4*pi]; erzeugt einen Vektor mit aquidistanten Komponenten y=sin(x); erzeugt die zugehOrigen Funktionswerte plot(x,y); erzeugt ilin Schaubild von y = sin(z) zwischen 0 und 11" 8
9
=
"dgl.m" muss eme Funktion II dgl(t,:I:) sem (t: unabhlngige s1ralare Variable; Vektoren derselben Dimension sein) echte Eigenwertprobleme konnen damit nicht behandelt werden
:1:, II
konnen auch
233
A.5 Graphik
Sollen mehrere Kurven in einem Koordinatensystem gezeichnet werden, so konnen die Argumente x und y als Matrizen eingegeben werden. Oder beim Plot-Befehl werden mehrere Paare von Vektoren eingegeben: plot(Ylo XloY2,X2, .... 'Yn'xn ). Andere Skalierungen der Achsen konnen mittels "loglog", "semilogx", "semilogy" und "polar" erreicht werden. Diese Funktionen besitzen dieselbe Syntax wie "plot". Eine Beschriftung kann title('Uberschrift')j xlabel( 'x ') jylabel( 'y ') j grid A.5.2
durch folgende Befehle erreicht werden. erzeugt eine Uberschrift erzeugt Achsenbeschriftung erzeugt ein Gitter
Dreidimensionale Graphik
Die Prozeduren "mesh" und "surf' liefem ein perspektives Bild einer Fliiche. Die Fliiche wird definiert durch die z-Koordinate iiber einem Gitter in der (x,y)-Ebene. Das Bild wird durch Verbinden der Punkte mit Linien erzeugt. Zur Erzeugung eines Gitters in der (x,y)-Ebene ist die Prozedur "meshgrid" hilfreich. Die Prozedur "contour" erlaubt die Darstellung der Hohenlinien einer Fliiche als Projektion in die (x,y)-Ebene. Die dazu notwendigen Befehle sollen an folgendem Beispiel erliiutert werden. [x,y]=meshgrid(-2:0.2:2,-2:0.2:2) j z=x.*exp(-x. -2-y.-2)j mesh(x,y,z)j contour(x,y,z);
erzeugt ein Gitter fiir das Rechteck -2 < x < 2, -2 < Y < 2 mit Abstand 0.2 erzeugt fiir die Funktion z = x . eeps). x1=0.6*(x+2/x) ; e=abs(x1-x);x=x1; end;x1 A.6.3
if/else Ausdriicke
Zur Steuerung stehen die Schliisselworte "if', "elseif', "else" und "end" zur Verfiigung. So erzeugen die folgenden Anweisungen eine Bandmatrix.
for i=1:6. for j=1:6. 2 if i==j. B(i.j )=2; -1 elseif abs(i-j)==l. B(i.j)=-l; 0 B= 0 else B(i.j)=O; end. 0 end. 0 end; A.6.4 Vergleichsoperatoren,logische Operatoren < > =
--
-=
grof3er oder gleich gleich ungleich
-1
0
2
-1
0 0
-1
2
-1
0 0 0
0 0 0
-1
2
-1
0 0 0 0
0 0
-1
2
-1
0
-1
2
&
I
-
und oder Verneinung
Vergleichsausdriicke konnen durch logische Operatoren miteinander verbunden werden. Mit dem Befehl"break" kann der Ausstieg aus einer Schleife erreicht werden. A.6.5
Eingabe
Die Funktion "input" schreibt einen Text in das Command-Window und wartet auf eine Eingabe. N=input('Zahl') j w=input('Name','s')j
wartet auf Zahleneingabe wartet auf eine String-Eingabe; der optionale Parameter's' bewirkt, daB die Eingabe als String interpretiert wird
Die Auswertung von Funktionen, die als m-File gegeben sind (vgl. A.7.2) erfolgt mittels "feval" bzw. "eval". Es sei fun='name' der Name einer als m-File gegebenen Funktion. y=feval(fun,3) berechnet die Funktion fun an der Stelle 3 und weist sie y zu eval(['y-' fun' 3)j') fiihrt zum gleichen Resultat 10
"eps" ist in MATLAB die kleinste von Null unterscheidbare Zahl
236
A.7 A.7.t
A Einfiihrung in MATLAB
m-Files Programm-Files
MATLAB wird fur kleinere Problemstellungen interaktiv benutzt. Wenn eine Befehlszeile eingegeben wird, so werden die Befehle ausgefiihrt und das Ergebnis auf dem Schirm angezeigt. SolI diese Kontrollausgabe unterdruckt werden, so sind die Befehle mit einem Strichpunkt abzuschlie6en. MATLAB kann aber auch eine Befehlsfolge, die in einem File gespeichert ist, abarbeiten. Dieser Weg ist fur komplexere Fragestellungen unvermeidlich. Diese Files mussen im aktiven Directoryll mit der Endung ".m" abgespeichert sein. m-FiIes konnen auch andere m-Files aufrufen oder rekursiv sich seiber (Vorsicht!!)12. Die in einem m-FiIe benutzten Variablen bleiben nach Abarbeiten des Files im Arbeitsspeicher. Sollen Variable aus einem m-File in einem zweiten, von diesem aufgerufenen m-File benutzt werden, so ist die entsprechende Variable in heiden m-Files als global zu erkliiren. Der Befehl "keyboard" in einem m-File platziert, gibt die Kontrolle uber die Variablen etc. ans Keyboard zuruck 13 . Der Befehl "echo on" liisst beim Abarbeiten eines m-Files die Kommandos wie gewohnt auf dem Schirm erscheinen. Diese Kontrollausgabe wird mit "echo off" wieder ausgeschaltet ("echo" schaltet zwischen den beiden Zustiinden hin und her). Kommentare werden mit einem % -Zeichen am Zeilenbeginn gekennzeichnet. MATLAB ignoriert dann den Rest der Zeile. Kommentarzeilen am Beginn des m-Files konnen mit der Help-Funktion sichtbar gemacht werden (Aufruf: help Filename).
A.7.2
function-Files
Urn eigene Funktionen zu definieren, benutzt man m-Files, die mit dem Schlusselwort "function" beginnen. In derselben Zeile muss die Definition, mit der von au6en zugegriffen wird, stehen. Ansonsten gilt das in Abschnitt A.7.1 erwiihnte Vorgehen. Mit der HelpFunktion konnen die Kommentarzeilen nach der Funktionsdeklaration sichtbar gemacht werden. Beispiel: Polynom 3.0rdnung
functioDuy=p3(x); Y.uPolynomu3.Ordnungup=x-3+2*x-2-4*x+10 y=x.-3+2*x.-2-4*x+10; Auf diese Funktion kann jetzt wie auf eine fest eingebaute Funktion zugegriffen werden:
y1=p3(4.2); weist der Variablen yl den Funktionswert von p3 an der Stelle 4.2 zu. Eine Funktion kann auch mehrere Variable zuriickgeben und ebenso mehrere Argumente aufnehmen. Bei Prozeduren werden die selbst erstellten Funktionen wie die Standardfunktionen mit Hochkomma als String eingegeben. 11 12 13
mit dem Path-Befehl wird ein entsprechendes Directory aktiviert analog zu Unterprozeduren bei Programmiersprachen niitzlich beim Debuggen
237
B
Verzeichnis der m-Files
Die nachfolgend aufgefUhrten m-Files stehen unter der Adresse zur Verfiigung: ftp.fht-esslingen.de/pub/local/fachbereiche/grundlagen/mohr
Allgemein farb.m cr_Lf.m
Hilfsfunktionen fUr 3D-Graphik. Hilfsmittel zur Erzeugung von Function-Files.
Abschnitt 2 newton.m Newtonverfahren zur Nullstellenbestimmung von Funktionen einer reellen Verii.nderlichenj Funktion und Ableitung als m-File. newtona.m wie newton.m, jedoch algebraische Eingabe der Funktionj die Ableitung wird symbolisch berechnetj benotigt punkt.m, punkt_1.m. newtonv.m Newtonverfahren fUr mehrfache Nullstellen. newton22.m zweidimensionales Newtonverfahrenj Funktionen und Funktionalmatrix als m-File. newton2a.m wie newton22.m, jedoch algebraische Eingabe der Funktionenj die Ableitungen werden symbolisch bestimmtj benotigt punkt.m, punkt_1.m. regula.m Regula falsi fiir eine Variablej Funktion als m-File.
aus..nl.m iteratg.m iterate.m peilung.m
Abschnitt 3 nichtlineares Ausgleichsproblemj Funktionen als m-File. Iterative L6sung eines linearen Gleichungssystems mit Ganzschrittverfahrenj benotigt beding.m, gre.m, it.m, verts.m. wie iteratg.m, jedoch mit Einzelschrittverfahren. Peilung vgl. Aufgabe aus Abschnitt 6j benotigt schnitt.m, j_peil.m, Lpeil.m. Abschnitt 4
at.m
Austauschverfahren.
linprog1.m
Lineare Optimierung fiir zwei Variable mit Graphik.
ffft.m
FFT einer stochastisch gestorten harmonischen Schwingung.
splinm.m
Kubische Splines mit natiirlichen Randbedingungen: y" =0 .
frdiskr.m
Diskrete Fourierreihe mit algebraischer Eingabe der Funktion.
romberg.m
Abschnitt 6 Rombergverfahrenj der Integrand ist als m-File einzugeben. Simpsonverfahrenj der Integrand ist als m-File einzugeben.
Abschnitt 5
simpson.m
B Verzeichnis der m-Files
238 Abschnitt 1 eulerr.m
implizites Eulerverfahrenj die "rechte Seite" als m-Filej benotigt rueck.m.
eulersch.m
Eulerverfahren mit Schrittweitensteuerungj die "rechte Seite" als m-Filej benotigt eulersch.m. eulrk.m Euler-, Heun-, Runge-Kutta-Verfahrenj Phasenebenej die "rechte Seite" als m-Filej benotigt eulersch.m, heunschr.m, rkschr.m. lin20.m lineare DGL 2. Ordnungj Phasenebenej die Koeffizienten sind als m-File oder algebraisch einzugebenj benotigt dgl20.m . lin20r.m lineares RWP 2. Ordnungj Schie8verfahrenj die Koeffizienten sind als m-File oder algebraisch einzugebenj benotigt dgI2o.m, dgl2oo.m . randnl.m nichtlineare Balkenbiegungj einfaches Differenzenverfahrenj die Koeffizienten sind als m-File einzugeben. randwerl.m lineare Balkenbiegungj einfaches Differenzenverfahrenj die Koeffizienten sind als m-File einzugeben. randwer2.m lineare Balkenbiegungj verfeinertes Differenzenverfahrenj die Koeffizienten sind als m-File einzugeben. randwer3.m lineare Balkenbiegungj Mehrstellenverfahrenj die Koeffizienten sind als m-File einzugeben. partdg.m Differenzenmethode zur Losung elliptischer DGL in zwei Variablenj Datenfiles: partl.m, part2.m, part3.m, part4.m. sat.m Function-File ffir das Drei-Korper-Problem. warm.m
Warmeleitungsgleichung - explizite Methode.
warmi.m
Warmeleitungsgleichung - implizite Methode.
warmzyl.m wasser.m wasserl.m
Warmeleitungsgleichung im Zylinder - explizite Methode. Wasserraketej senkrechter Abschussj benotigt poll.m, rak.m, voll.m . Wasserraketej Schragschussj benotigt poll.m, rakl.m, voll.m .
239
C
Orthogonalitatsbeziehungen 2N
Rセ@
E
i=1
=
cos IZi . cos kZi
2N
E
セ@
i=1
sin/zi . sin hi
2N
E
Rセ@
i=1
{ {
=
cos IZi . sin hi
1 2
1 0
1
2 0
0
i=
fUr I fUrl fUr I fUrl fiir I fUrl
0
k k i= N k=N k k i= N k=N
= i=
= =
fiir alle I, k
Komplexe Argumentation
Ais Voriiberlegung beweisen wir: 2N
E 1=1
fiir fUr
coskl1r
2N
E
1=1
= 0
sinkl1r
Dazu bilden wir die Summe
S(k) =
2N
E
2N "
cosklN+jsinkl N
'=1
L.J '=1
_;lel':'
t:"
_
'"
-
·1e".2N -;Ie-fr e1 1'1 Ii-
t:"
e1
1'1 -
-
1
1 _- 0 f"ur RQゥtセuj@
Ie
d. rn
Durch Real- und Imaginarteilbildung ergibt sich fUr diese k sofort die Behauptung. 1st k ein Vielfaches von 2N, so gilt cos kl N = 1 und sin kl N = 0 und die Behauptung ist ebenfalls evident. Nun gelten die Additionstheoreme: 2N
E
i=1
2N
lE
cos liN . cos kiN
i=1
2N
E
i=1 i=1
+
2N
sin liN' sin kiN
=
lE
sin liN' cos kiN
=
lE
2N
E
cos(k + l)i N
i=1 2N
i=1
cos(k -/)iN
cos(k - l)i N
cos(k + l)i N
sin(k + l)i N
sin(k - l)i N
Vor Anwendung unserer Voriiberlegung untersuchen wir noch die Quotienten
セ@
fiir k,1 セ@ Fall k
i= I:
"-+
< N:
"-+
=I = N:
"-+
Fall k = I Fall k
N :
W, セ@
W W
nicht ganz
nicht ganz , セ@ und,
セ@
=0
= 0 ganz ganz
Die Voriiberlegungen ergeben dann sofort die Orthogonalita.tsbeziehungen.
W
und
C Orthogonalitatsbeziehungen
240 Trigonometrische Argumentation
Fur den wichtigen Spezialfall, dass die Zahl der Stutzstellen eine zweier Potenz ist, wollen wir die folgenden Orthogonalitatsbeziehungen noch ohne komplexe Hilfsuberlegungen nachweisen:
*E
{ {
fUrl fUrl fiirl fUr I fUr I fUrl
0
2N
1
cos lz; " cos kz;
;=1
2"
1 0
2N
2kr ;=1 E
sin lz; "sin kz;
1
=
2"
0
:f
k k:f N k=N k k:f N k=N
:f
mit
1\""
z;
NZ
2N
2krE ;=1
cos Iz; " sin kz;
fiir aIle I, k
0
Es gilt das Additionstheorem: 2N
2N
L
2"
L
cos Iz; "sin h; =
;=1
sin(k + I) "
N"i
;=1
2N
+
L
sin(k - I) "
N"i
;=1
Wir zeigen nun fiir aIle ganzen Zahlen g: 2N
CS(g)
=L
sing"
N"i = 0
;=1 N
2N
N"i + ;=N+l L...J smg" N" E sing" N" i + E sin 9 " N "(i + N) ;=1 ;=1 E sing" N" i + ( -1)9 E sin 9 " N "i ;=1 ;=1 E ;=1
CS(g)
sing"
'"
N
"
N
N
=
1\"" Z
N
1st 9 ungerade, so gilt sofort: N
L
CS(g) =
sing"
N
N"i
;=1
;=1
1;, so dass gilt:
1st 9 gerade, so kiirzen wir
1;
o
L...J smg" N"' '"'" 1\""
I
=
fir
mit g' ungerade und N = N ' " 2m
Wir zerlegen nun die Summe in Zweierpaare:
CS(g)
N' 'L...J "
;=1
" 9 I1\" sm "NT"'"+
2N'
'" L...J
;=N'+1
3N' "I1\"" smg "NT"'
2N-N'
E ;=2N-2N'+1
+
'"
L...J ;=2N'+1
"I1\"" smg" NT" Z
+ """ +
2N " 1\""+ sm 9 1"NT" Z
'"
L...J i=2N-N'+1
"I1\"" sm 9 "NT" Z
Nun heben sich wieder nach obiger Argumentationjeweils benachbarte Summen weg und es gilt damit:
241 2N
L: cos Ix; . sin kx;
0
;=1 2N
2:
Fiir
cos Ix; . cos kx; ergibt wieder das Additionstheorem:
;=1 2N
2.
2:
;=1
cos Ix; . cos h; =
d. h. es ist zu untersuchen:
2N
2:
;=1
2N
cos( k + I)x;
+ 2:
;=1
cos( k - I)x;
2N
CC(g)
=
L: cosg· N· i ;=1
Fiir g # 0 und g < 2N liisst sich die Argumentation bzgl. CS(g) wortlich iibertragen, indem man sin durch cos ersetzt. Fiir 1= k erhalten wir mittels Additionstheorem: 2N
2N
L: cos I . N.i
2.
L: 1 + cos 21 . N.i
2
;=1
;=1
Fiir I < N gilt sofort wieder: 2N
cos 2/· N.i L: ;=1
0
Fiir I = N ergibt sich: 2N
cos 21T . i L: ;=1
2N
und wir erhalten insgesamt: 2N
1T . cos 21 ·N·' = サセ@ L: ;=1
fiirl fiirl
< N N
2N
Fiir
2:
;=1
sin Ix; . sin kx; ergibt sich wieder aus dem Additionstheorem: 2N
2·
L: sin Ix; . sin kx;
2N
=
;=1
L: cos(k -
2N
I)x; -
;=1
L: cos(k + I) x; ;=1
Diese Summe ist wieder fiir 1# k gleich Null. Fiir I = k erhiilt man: 2N
2N
;=1
L: ;=1
• 2 I 1T . 2.L: sm . N·' =
1 - cos 21 .
N.i
und damit 2N
. 21 1T . sm ·N·' L: ;=1
{N 0
fiirl fiirl
< N N
242
D
FFT -Alg orit hmu s ffir N
21 Pun kte
FFT fUr 2N Abtast punkte bedeut et eine effiziente Auswertung des Polynoms 2N-l
= セ@
Q(z)
fiir
Y'Z '
Zi
= eHr .
1=0
Analog zum Hornerschema klamm ern wir aus: Q(z)
=
+
N-l
z·
E
1=0
Y2/+1 Z21
wobei Ql, Q2 Polynome vom Grad N - 1 sind. Dieser Prozess liisst sich fortsetzen, da N eine Zweierpotenz ist: N/2-1
N-l
Ql(z2) Q2(z2)
= 1=0 E Y2/ Z21
E
1=0
N-l
E
=
+
Y41 Z41
N/2-1 z2.
E
Y2/+1 Z21
1=0
E
1=0
N/2-l Y41+1 z41
1=0
+
Y4/+2 Z41
N/2-l
E
z2.
Y4/+3 Z41
1=0
ergibt N/2-l Q(z)
セ@
=
N/2-1 Y41Z41
+
z·
1=0
セ@
N/2-1 Y4/+1Z41
+
セ@
z2.
1=0
N/2-1 Y4/+2 Z41
+
セ@
z3.
1=0
Y4/+3Z41 . 1=0
Diese Zerlegung wird durchgefUhrt, bis nur noch iiber zwei Summa nden zu summieren ist. Q(z)
=
1
1=0
1st
1
E YN/Z NI +z· E YNI+1ZNI +z2. E1 YNI+2 ZNI + 1=0
1=0
=
1
...
+ z N-l . "L.J YNI+N -IZ NI 1=0
eine n-te Einheitswurzel, so gilt: (z;)'N (_1)" d.h. bei der Auswertung der Summe n ist keine Multiplikation notwen dig. zi
Die Potenzen (Zi)1: mit k = O,l, ... ,N - 1 i = 0,1, ... ,2N - 1 besitzen bis aufs Vorzeichen nur N verschiedene Werte. Bei geschickter Datenorganisa tion liisst sich damit die Auswertung des Polynoms Q(z) fiir die Werte Zi = eilri auf N . r Multiplikationen reduzieren. Dazu machen wir bei der Auswertung der Summen 2N-l en
=
セ@
Y1:w1:n
1:=0
von der Binardarstellung der Indices Gebrauch.
w
243 Dies sei am Beispiel fUr acht Punkte dargestellt. n k
+ +
= 4n2 = 4k2
2n1 2k1
c(n2,n1,no)
=
+ +
no ko
1
ni, ki E 0,1
1
1
I: I: I: y(k2,k1,ko)w(4n3+2 .. 1+no)(41:3+21:1+1:0) 1: 0 =01: 1 =01: 3 =0
Fiir die Potenzen der Einheitswurzel erhalten wir:
Damit ergibt sich die Darstellung: c(n2,n1.no) =
Wir erhalten so die gewiinschte Faktorisierung. Allerdings muss die natiirliche Reihenfolge der Koeffizienten noch durch eine Inversion des Binarcodes hergestellt werden. Fiir die verschiedenen Stufen wollen wir noch die zugehorigen Matrizen explizit darstellen und den FFT-Algorithmus in der Form
Xn schreiben. Mit der Schreibweise
= A· X n- 1 n = 1,2,3 XO(k2,k1. ko) = y(k2,k1,ko)
erhalten wir:
1. Stufe
X1(O,O,O) X1(O,O,l) X 1(O,l,O) X1(O,l,l)
X1(l,O,O) X1(l,O,l) X 1(l,l,O) X 1(l,l,l)
= = =
= = =
Xo(O,O,O) Xo(O,O,l) Xo(O,l,O) Xo(O,l,l) Xo(O,O,O) Xo(O,O,l) Xo(O,l,O) Xo(O,l,l)
+ + + +
Xo(l,O,O) Xo(l,O,l) Xo(l,l,O) Xo(l,l,l)
Xo(l,O,O) Xo(l,O,l) Xo(l,l,O) Xo(l,l,l)
A1
=
1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0
0 0 1 0 0 0 1 0
0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 -1 0 0 0 0 0 -1 0 0 0 0 0 -1 0 1 0 0 0 -1
D FFT-Algorithmus fUr N = 2'1 Punkte
244
2. Stufe X2(O,O,O) X2(O,O,I) X 2(O,I,O) X 2(O,I,I) X2(I,O,O) X 2(I,O,I) X 2(1,I,O) X2(1,1,1)
Xl(O,O,O) X l (O,O,I) Xl(O,O,O) X l (O,O,I) X l (I,O,O) X l (I,O,I) X l (I,O,O) X l (I,O,I)
= = = =
° °° °°°° ° °° ° °° °°°°°° ° °° ° °°°° ° ° ° ° ° °° ° ° °° °°°° 1
1
-1
1
-1
1
セ]@
w2
1
1
1
_w 2
1
3. Stufe
X 2(O,O,O) X3(O,O,O) X 2(O,O,O) X3(O,O,I) X 3(O,I,O) = X 2(O,I,O) X 3(O,I,I) = X 2(O,I,O) X 3(I,O,O) X 2(I,O,O) X 2(1,O,O) X3(1,O,1) X 2(1,1,O) X3(1,1,O) X 3(1,1,1) = X2(1,1,O)
1
1
X l (O,I,O) X l (O,I,I) X l (O,I,O) X l (O,I,I) + w2Xl(I,I,O) + w2X l (I,I,I) - w2X l (I,I,O) - w2X l (I,I,I)
+ +
+
° ° ° ° ° °
w2
_w 2
°°°° °°°° ° ° ° ° ° °° °° °° °°° ° ° ° ° ° °°° ° ° ° ° ° ° ° ° ° ° ° ° ° ° °° °° 1 1 1 -1
X 2(O,O,I) X 2(O,O,I) + w2X 2(O,I,I) w2X 2(O,I,I) + wX2(I,O,I) wX2(1,O,1) + w3X 2(1,1,1) w3X2(1,1,1)
&=
1 w2 1 _w 2
1 w 1 -w
1 w3 1 _w 3
Die richtige Reihenfolge erhalten wir durch Inversion des Binarcodes:
c(O,O,O) c(O,O,l) c(O,I,O) c(O,l,l) c(l,O,O) c(l,O,l) c(l,l,O) c(l,l,l)
X 3(O,O,O) X 3(I,O,O) X 3(O,I,O) X 3(1,1,O) X 3(O,O,I) X3(1,O,I) X 3(O,1,1) X 3(1,1,1)
=
=
1
°° ° °°°°°°°° ° ° ° °°°°°°°° ° . Ka ° ° ° ° ° ° °°°°°°° °°° ° ° ° °° ° ° °° °°° ° ° ° ° + 1
1
£
=
1
1
1st N = 2'1, so erhalten wir fUr I = 1,2, ... ,,,,/
1
1
1
1 Rekursionsbeziehungen der Form:
X,(no,n!, ... ,n,-l,k'Y-I-l, ... ,k!,ko) = ... 1
E X,-l(no,nl, ... ,n,-2,k'Y- I " " 1:..,_1=0
,kl,ko)w(no+2n2+ ... +2'nl)2"'-II:..,-1
AnschlieBend muss dann durch Inversion des Binarcodes der Indices die richtige Reihenfolge wieder hergestellt werden.
245
E
Drei-Korper-Problem
In diesem Abschnitt soll das Differentialgleichungssystem fUr das eingeschrankte DreiKorper-Problem hergeleitet werden. Ausgangspunkt sind die aus dem Gravitationsgesetz abgeleiteten Bewegungsgleichungen. Erde Masse
Mond
Satellit
- - -- mE
mM
ms
ZE
ZM
Zs
Koordinaten
mE'ZE
-mE' mM'
Newtonsche Bewegungsgleichungen:
Z E - Z M I-ZE- -ZM 13
mE . ms .
mM' ZM
ms' Zs
-ms . mE'
_
Z s Z E Z S Z I- E 13
mS.mM'
--Z E -
I_ Z E
-
Z S
-Z S 13
ZS- ZM
I-ZS- -ZM 13
Wird der Einftuss des Satelliten auf Erde und Mond vernachliissigt, d.h. gilt fiir die Massen ms < mM < mE , so ergeben sich die entkoppelten Gleichungen:
-
ZE
=
-m
ZM
=
-m
=
-m
-
Zs
. M
. E
. E
- - Z
B. -
Z
M.
Z
M. -
Z
B.
(E.O.1)
3 I_ ZE- -ZM 1
--
3 I_ ZM- -ZE 1 Z S. - Z B. 3 I_ Z S - -Z E 1
m
. M
--
zs.- ZM.
3 I_ Z s - -ZM 1
(E.O.2) (E.O.3)
Die Gleichungen (E.O.1) und (E.O.2) konnen separat gelost werden. Legen wir den Ursprung des Koordinatensystems in den gemeinsamen Schwerpunkt von Erde und Mond, so erhalten wir als LOsung der beiden Differentialgleichungen fiir Erde und Mond eine Rotationsbewegung urn den gemeinsamen Schwerpunkt. Normieren wir die Massen so, 1 gilt, so ergibt sich als Losung von (E.O.1) und (E.O.2) eine dass mE + mM Rotationsbewegung mit der Winkelgeschwindigkeit 1:
z+E =
-mM'
(cost) ウゥセエ@
i
-
ZM
=
mE'
(cost) ウゥセエ@
(E.OA)
Wir betrachten nun die Bewegung des Satelliten in dem mit der Achse Erde-Mond fest verbundenen, rotierenden Koordinatensystem. In rotierenden Systemen treten zusatzliche Tragheitskrafte auf, die der mitbewegte Beobachter benotigt, urn die beobachtete Beschleunigung erklaren zu konnen.
E Drei-Korper-Problem
246 Formal ist beim Ubergang zum rotierenden System zu setzen:
d
d
at+
at
--+
wx
Damit wird aus der Bewegungsleichung im festen Koordinatensystem d2
--+
m°h2"r
dt
=
--+
K
im rotierenden Koordinatensystem die Beziehung:
m ° セ@
r+ + 2m(w x ,
It r+) + セHキ@
x (w x
"."
r+n, = K
v
Corioli.kra./t
Z entri/uga.lkra./t
Fur die Bestimmung der Coriolis- bzwo Zentifugalkraft sind noch die folgenden Vektorprodukte
fij, . .s
=
HセI@
'u berechne., --:+
-;+
J 0 il2
I
wxy
0
Yl
--:+
w x (w
x
1m rotierenden System gilt 7
y)
E
I
=
=
k
--:+
0
J 0
-Y2
Yl
(-mM) セ@
Hセョ@
1 0
k 1 0
=
und 7
M
MHセI@ =
(mE) セ@
°
Damit erhalten wir die Bewegungsgleichung des Satelliten im bewegten Koordinatensystem:
247
Literaturverzeichnis [1]
Becker/Dreyer/Haacke/Nabert: Numerische Mathematik fiir Ingenieure Teubner Verlag, Stuttgart 1977
[2]
Brigham, 0.: FFT Oldenbourg Verlag, Miinchen, Wien 1989
[3]
Burg/Haf/Wille: H6here Mathematik fiir Ingenieure; Band I - V Teubner Verlag, Stuttgart 1991
[4]
E. Eich-Soellner/C. Fuhrer: Numerical Methods in Multibody Dynamics Teubner Verlag, Stuttgart 1998
[5]
Glatz/Grieb/Hohloch/Kiimmerer/Mohr: Differential- und Integralrechnung 3 Cornelsen Verlag, Berlin 1994
[6]
Grieb, H. : Numerische Methoden Vorlesungsskript, FH Esslingen 1996
[7]
Hairer, E.: Solving Ordinary Differential Equations Springer Verlag, Berlin 1984
[8]
Hering/Martin/Stohrer: Physik fiir Ingenieure VDI Verlag, Diisseldorf 1992
[9]
Schwarz, H. R.: Numerische Mathematik Teubner Verlag, Stuttgart 1993
[10]
sセィキ・エャゥ」ォOkイウュ。Z@
Numerische Verfahren fiir Naturwissenschaftler und Inge-
meure Fachbuchverlag, Leipzig 1991 [11] Spath, H.: Numerik Vieweg Verlag, Braunschweig 1994 [12] Stoer: Einfiihrung in die Numerische Mathematik I Springer Verlag, Berlin 1972 [13] Bulirsch/Stoer: Einfiihrung in die Numerische Mathematik II Springer Verlag, Berlin 1972
248
5 Literaturverzeichnis
[14] Tornig, W.: Numerische Methoden fUr Ingenieure und Physiker Bd. 2 Springer Verlag, Berlin 1990 [15] Ulmet, D.: Grundlagen der CAD/CAM Entwicklung mit Splinekurven Forschungszentrum, Karlsruhe 1996
249
Sachwortverzeichnis
Sachwortverzeichnis Abbruchfehler, 4 Abbruchkriterium, 13, 23, 52 absoluter Fehler, 5, 6 Abstandsquadrate, 59 Adams-Bashforth, Verfahren von, 128 Adiabatengleichung, 109 Approximationsfunktion, 59 - Polynom, 60 - trigonometr. Polynom, 74 ausgeglichene Losung, 36, 37 Ausgleichspolynom, 60, 64, 161 Ausgleichsproblem - linear, 34, 159 - nichtlinear, 38, 159 Ausloschung, 6, 156 Austauschverfahren, 43 Balkenbiegung, 135 Banachscher Fixpunktsatz, 8 Bernoulli-Gleichung, 109 Bernsteinpolynome, 73 Bezier-Kurve, 72 Beziersegment, 73 Binarcode, 82 Coloumb-Reibung, 1, 118, 164 Computeralgebra, 24 diagonaldominant, 32 Differentialgleichung - Anfangsrandwertproblem, 144 - Anfangswertproblem, 92, 124 - partielle, 138 - - elliptisch, 138, 166 - - parabolisch, 143, 164 - Randwertproblem, 130, 165 - - nichtlinear, 135, 163 Differenzenschema, 62, 163 Differenzenverfahren - bei part. DGL, 139, 140, 144 - bei Randwertaufgaben, 132 Dirichlet-Bedingung, siehe Randbedingung Diskretisierung, 133, 139 Drei-Korper-Problem, 106, 166, 245 Dualzahlen, 4 Einschrittverfahren - explizite, 94 - implizite, 117 Einzelschrittverfahren, 33, 158 Energiemethode, 148, 149 Eulerverfahren, 92, 93, 162
- explizit, 120, 122 - implizit, 117, 121, 122 Exhaustionsverfahren, 156 Extrapolationsverfahren, 88, 128 Fehlerausgleich, 34, 159 - nichtlinear, 38, 159 Fehlerordnung, 17, 87, 90, 91, 97, 99, 125, 135 Fehlerquadrat, 35 Fehlerschranken, 12 - a-posteriori, 13 - a-priori, 12 FFT, 79, 83, 162 Finite Elemente, 148 Fixpunktsatz, 8, 9, 157 Formfunktionen, 152 Fourierreihe, 74 - diskrete, 77 - komplexe, 80 Funktionalmatrix, 19, 23 Ganzschrittverfahren, 165 Gaufi..AIgorithmus, 25 Gaufi..Newton-Verfahren, 39, 42 Gebiet absoluter Stabilitat, 122 Gesamtschrittverfahren, 33, 158 Gewichte, 85, 86, 120 Gitterpunkte, 139, 140 Gleitkommaarithmetik, 28 Gleitpunktarithmetik, 4 Grenzzyklus, 105 Hohenlinien, 20 Heun-Verfahren, 96, 121, 122 Hexadezimalzahlen, 4 Instabilitatj inharente, 124 Interpolationspolynom, 60, 161 - Newtonsches, 61, 191 - trigonometrisches, 77, 162 Intervallhalbierungsmethode, 7 inverse Matrix, 19, 21 Jacobi-Matrix, 19 Kellerzeile, 45 Keplersche Fassregel, 87 Knotenpunkt, 150, 155 Konditionszahl, 5 kontrahierend, 8 Konvergenzordnung, 16, 97 Konvertierungsfehler, 5
Sachwortverzeichnis
250 konvex,56 lineare Gleichungssysteme - iiberbestimmte, 34, 37, 64 - iterative L5sung, 32, 158 - Rundungsfehler, 28 lineare Optimierung - 3 Variable, 50 - Basisvariable, 55 - graphische L5sung, 47, 160 - Nebenbedingungen, 47 - Nichtbasisvariable, 55 - Zielfunktion, 47, 53, 54 - zulissiger Punkt, 48, 49 lineares Programm, 48, 160 lineare Ungleichungen, 49 Mantissenla.nge, 4 Maschinengenauigkeit, 4 Maschinenzahlen, 5 mathematisches Pendel, 93 Matrixinversion, 43 Mehrschrittverfahren, 128 Nachiteration, 31, 158 Neumann-Bedingung, siehe Randbedingung Newtonsches Interpolationspolynom, 60, 61, 63, 65 Newtonverfahren, 13, 157 - mehrdimensional, 18, 158 - modifiziert, 18 - p-fache Nullstelle, 15 Normalengleichung, 37, 75, 76 Oregonator, 126 Overflow, 4 Pendel, siehe mathematisches Pendel Phasenbild, 103 Pivotelement, 29, 44, 55, 56 Pivotspalte, 44, 55, 56 Pivotstrategie, 30 Pivotzeile, 44, 56 Poisson-Gleichung, 138, 140 Polygonzug, 53 Polygonzugverfahren - einfaches, 92 - verbessertes, 97 Pyramide, 38 Quadratwurzel, 7 Randbedingung - Dirichlet, 138, 144 - Neumann, 138, 144
Rechteckregel, 45 Regula falsi, 15, 164 relative Fehler, 5 Rombergverfahren, 88, 162 Runge-Kutta-Verfahren, 98, 162 SchieBverfahren, 130 Schrittweitensteuerung, 99 Simplex, 56 Simplexverfahren, 53, 160 Simpsonformel, 86, 87, 162 Splines, 60 - Bezier, 71, 162 - kubische, 67, 161, 192 - parametrische, 71 Stiitzstellen, 67, 75 Stabilita.t; absolute, 120, 163 steife Differentialgleichungen, 125, 126 Steifigkeitsmatrix, 155, 163 Trapezformel, 85 Trapezmethode, 119, 121, 123 Triangulierung, 150, 155 trigonometrische Polynome, 59, 75 Underflow, 4 Vandermondsche Determinante, 61 Van der Pool, 102 Variationsproblem, 148, 149, 153 Wirmeleitungsgleichung, 143, 164 - stationir, 130, 138, 140 Wasserrakete, 108 wellig, 64, 67 Zeilensummenkriterium, 33, 165 zulii.ssiger Bereich, 50, 52