191 60 40MB
German Pages 268 [269] Year 1990
Claus Richter u.a. Mathematische Probleme auf Microcomputern
Anwender-PROBLEME Mathematische VERFAHREN Computer-PROGRAMME Unter dieser Überschrift erscheinen Titel, die dem Anwender helfen sollen, bei der Lösung praktischer Probleme in Naturwissenschaft, Technik, Wirtschafts- und Sozialwissenschaften, Medizin und anderen Fachgebieten die Methoden der Mathematik und Informatik und die Möglichkeiten von Microcomputern effektiv zu nutzen. Der Leser wird mit den mathematischen Grundlagen soweit vertraut gemacht, wie es für die Lösung anwendungsbezogener Aufgaben erforderlich ist. Oer Schwerpunkt der Publikationen liegt bei den Methoden und Verfahren und ihrer Umsetzung in lauffähige Computerprogramme. Praxisnahe Beispiele erleichtern die Erprobung und Anwendung. Weiterführende Hinweise und Bemerkungen regen zum Studium der Grundlagen an. Der Verlag nimmt gern Vorschläge zur inhaltlichen Gestaltung künftiger Titel entgegen.
Mathematische Probleme auf Microcomputern von Claus Richter u.a.
Akademie-Verlag Berlin 1989
Autorenkollektiv unter der Leitung von Prof. Dr. Claus Richter: W. Beiche, Dr. J . Biehounek, Dr. U. Breitschuh, Dr. R. Jurisch, Dr. U. Kaftan, Dr. S. Krüger, Dr. P. Kurth, P. Pawlak, C. v. Schmudi, Doz. Dr. J . Tiedge, Dr. J . Vondran, Dr. U. Werner Ingenieurhochschule Kothen Abteilung Mathematik/Rechentechnik
Der Titel wurde von Originalmanuskripteri der Autoren reproduziert.
I S B N 3-05-500603-8
Erschienen im Akademie-Verlag Berlin, Leipziger Straße 3 — 4 , Berlin, DDR-1086 © Akademie-Verlag Berlin 1989 Lizenznummer: 202 • 100/425/89 Printed in the German Democratic Republic Gesamtherstellung: V E B Druckerei „Gottfried Wilhelm Leibniz", Gräfenhainichen, D D R - 4 4 5 0 Einband: Christine Koch Lektor: Dr. Reinhard Höppner LSV1084 Bestellnummer: 763 911 9 (9158) 01950
Die zunehmende theoretische Durchdringung von Technik und Technologie wird begleitet von einer immer stärkeren Einbeziehung der Mathematik in die Formulierung und Lösung von Problemen aus diesen Bereichen. Hierbei spielen neben den Resultaten klassischer mathematischer Disziplinen in zunehmenden Maße auch zugkräftige numerische Methoden eine entscheidende Rolle. Diese Tendenz wird durch 2 Faktoren positiv beeinflußt; zum einen haben sich die theoretischen Grundlagen der Numerischen Mathematik in den vergangenen Jahrzehnten außerordentlich stark entwickelt. Insbesondere die Verwendung anspruchsvoller fünktionalanalytischer Hilfsmittel hat zu gesicherten Aussagen über Durchführbarkeit, Konvergenz, numerische Stabilität und über Fehlerabschätzungen von Näherungsverfahren geführt. Dieser qualitative Aspekt wird wohl in der englischen Sprache mit dem Begriff "Numerical Analysis" treffend charakterisiert. Zum anderen hat die umwälzende Entwicklung auf dem Gebiet der Rechentechnik zu einer neuen Haltung gegenüber numerischen Verfahren geführt. Dieses Umdenken betrifft sowohl die Dimension und die Kompliziertheit der erfolgreich lösbaren Aufgaben als auch den Umfang der Nutzung implementierter Algorithmen. Besonders mit der Verbreitung von Klein- und Kleinstcomputern hat sich die Notwendigkeit und Möglichkeit ergeben, leistungsfähige numerische Methoden so aufzubereiten, daß sie dem Ingenieur und Ökonomen in ihrer Einheit von theoretischer Begründung, rechen-
6
Vorwort
technischer Realisierung und praktischer Anwendung vorgestellt werden. Diesem Ziel dient das vorliegende Buch. Ihm liegen Erfahrungen des unter Leitung des Herausgebers arbeitenden Kollektivs bei der Anwendung grundlegender numerischer Verfahren in der Lehre und der interdisziplinären Forschung zugrunde. Obwohl zur Lösung ingenieurtechnischer Aufgaben oft anspruchsvollere Realisierungen als die vorgestellten BASIC-Implementierungen verwendet werden, haben wir die Beobachtung gemacht, daß der vorrangig am Verstehen und Anwenden mathematischer Verfahren Interessierte als Einstieg BASIC verwendet, da damit der Weg zu gesicherten Fertigkeiten im Umgang mit Kleinrechentechnik recht kurz ist. Thematisch orientiert sich das Buch zum einen an Fragestellungen, die in der Zusammenarbeit mit Ingenieuren und Ökonomen immer wieder an den Mathematiker herangetragen werden, und zum anderen an Schwerpunkten in der Mathematikausbildung der Studenten technischer und ökonomischer Fachrichtungen. Es soll damit helfen, die effektive Nutzung der Klein- und Kleinstrechentechnik zu untertützen und außerdem - last but not least - die Freude an der Beschäftigung mit der Mathematik fördern. Herausgeber und Autoren danken zahlreichen Fachkollegen für kritische Hinweise und ermutigende Worte, die das Entstehen des Buchs begleiteten. Sie danken Frau S. HOFFMANN und Frau B. SCHMIDT für die sorgfältige Ausführung der Schreibarbeiten. Unser Dank gilt schließlich dem Akademie-Verlag und insbesondere Herrn Dr. HÖPPNER für die sachkundige und entgegenkommende Zusammenarbeit.
Röthen, im Mai 1988
Claus Richter
Inhalt
Kapitel 1. Tendenzen der numerischen Mathematik und der Informatik (C. Richter)
g
1.1.
Wesentliche Aufgabenstellungen der Numerischen
1.2.
Eigenschaften numerischer Verfahren
13
1.3.
Realisierung numerischer Verfahren auf Kleinrechnern
17
Mathematik
9
1.3.1. Computersahlen und. Rundungs fehl er
17
1.3.2. Korrektheit des LösungsVerfahrens
18
1.3.3. Zur Implementierung numerischer Verfahren in BASIC
19
Kapitel 2. Lineare Qleichungssysteme (U. Werner)
22
2.1.
22
Direkte Lösungsverfahren
2.1.1. Gaußscher Algorithmus
23
2.1.2. LU-Zerlegung
29
2.1.3. Lineare Gleichungssysteme'mit Bandmatrizen
37
2.1.4. QR-Zerlegung
41
2.2.
Iterationsverfahren
50
2.2.1. Gesamt- und Einzelschrittverfahren
51
2.2.2. Relaxation
57
Kapitel 3. Nichtlineare Gleichungen und nichtlineare Gleichungssysteme (W. Beiche, P. Pawlak, C.Richter, C.v.Schmudi) 62 3.1.
Eindimensionale Nullstellen
62
3.1.1. Bisektionsverfahren
63
3.1.2. Sekantenverfahren (regula falsi)
66
3.1.3. Newton-Verfahren
70
3.2.
Bai rstow-Verfahren
.
73
3.3.
Gewöhnliches Iterationsverfahren
80
3.4.
Newton-Verfahren und Modifikationen
84
3.4.1. Newton-Verfahren und Newton-Verfahren mit konsistenter Approximation der Jacobi-Matrix 3.4.2. Quasi-Newton-Verfahren 3.4.3. Regularisiertes Gauß-Newton-Verfahren Kapitel 4. Numerische Integration (U. Kaftan, C. Richter) . . Kapitel 5. Numerische Behandlung von Differentialgleichungen (0. Breitschuh, R. Jurisch, S. Krüger) 5.1. Anfangswertprobleme gewöhnlicher und partieller Differentialgleichungen 5.1.1. Mathematische Grundlagen
84 91
. . . .
5.1.2. Eihschritt-Verfahren vom Runge-Kutta-Typ
96 103 112 115 115 119
8
Inhalt
5.1.3. Konsistenz und Schrittweitensteuerung bei Einschrittverfahren
129
5.1.4. Stablität und Konvergenz, A-stabile Verfahren . . . .
136
5.2.
147
Randwertprobleme
5.2.1. Differenzenverfahren für gewöhnliche Differentialgleichungen
147
5.2.2. Differenzenverfahren für partielle Differentialgleichungen 5.3.
156
Anfangs-Randwertprobleme für parabolische Differentialgleichungen
166
5.3.1. Explizites Differenzenverfahren für eindimensionale parabolische Differentialgleichungen
166
5.3.2. Crank-Nicolson-Verfahren für eindimensionale parabolische Differentialgleichungen
173
5.3.3. Linienverfahren für eindimensionale parabolische Differentialgleichungen
178
5.3.4. Explizites Differenzenverfahren für zweidimensionale parabolische Differentialgleichungen Kapitel 6. Stochastik 0 , setze k=l. Spaltenpivotisierurig Bestimme einen Index h gemäß (6), setze p = h. k Regularitätstest Falls |a ist die Matrix A numerisch singulär. hk STOP. Gauß-Schritt Für i = 1, . . . , n:
(9)
26
S4: S5:
2. Lineare
61eichungssysteae
Falls i = p j , j = 1, ..., k, lasse i-te Zelle umgeändert, Für i j- p : Berechne 1 nach (7), a nach (8). j ik ij Falls k c n, setze k=k+l , gehe au Sl. Auflösung des gestaffelten Systems: Bestimme x gemäß (9). STOP, k
BASIC-Programm Das folgende Programm realisiert den beschriebenen Algorithmus. 100 120 140 160 180 200 220 240 260 280 300 320 340
PRINT" " PRINT" GAUSS scher ALGORITHMUS" PRINT" " REM ***** >>> KONSTANTEN > SCHRITT 0 S
:
IF
THEN S = T : P>>
THEN
J=K
:
3 IF
(j/n)";E$ 1260 IF E$="j" OR E$="J" THEN 840 1280 IF E$="n" OR E$="N" THEN END ELSE 1240
Numerisches Beispiel Für das lineare Gleichungssystem 2x 5x 3x 4x x
+ 4x
+ 3x
+
+ 5x
+ 5x
+ 2x
2 2 + X 2 2x — 2 + 7x 2
3 3 + 2x 3 + X 3 + 4x 3
X
4 4 + X 4 + 3x 4 + X 4
= = = = =
22 40 18 24 26
T ergibt sich der Pivotvektor p = (2,4,0,5) , das zugehörige Gleichungssystem enthält folglich nur drei linear unabhängige Gleichungen und besitzt eine einparametrige Lösung: H x
=
T t(-0,5; -0,5; 1; 0) .
Die
Vorwärtselimination
ergibt
den Hilfsvektor
mit
y = (0,40; 0; -8; 10)T, dessen Hilfe die RUckwärtselimination
36
2. Lineare 61eichung5SysteBe
P T x = (3,5; 2,5; 0; 5) liefert. Die allgemeine Lösung des Gleichungssystems ist somit
+ t T T Für b = (7,10,4,10,8) dagegen ist y = (1,10,0,2,8) , wegen y ^ O ist das Gleichungssystem nicht lösbar, da der Index 1 im Indexvektor nicht auftritt.
Heiterführende
Bemerkungen
Neben der LU--Zerlegung für eine beliebige Koeffizientenmatrix A gibt es eine Reihe von direkten Lösungsverfahren, die besondere Eigenschaften von A nutzen, um sowohl Rechenaufwand als auch Speicherplatz zu sparen. Es kann nicht in jedem Fall eindeutig entschieden werden, welches Lösungsverfahren für ein vorliegendes Gleichungssystem am effektivsten ist. Besonders bei symmetrischen Koeffizientenmatrizen kommt man fast mit dem halben Rechenaufwand aus. Für eine reguläre n x n-Matrix A, bei der die LU-Zerlegung ohne Pivotisierung durchführbar ist (A heißt dann streng regulär), läßt sich U als Produkt T U = D L darstellen, wobei D eine Diagonalmatrix ist, die in der Hauptdiagonalen die Pivotelemente enthält. Die Symmetrie von A überträgt sich auf die Zerlegung T A = L D L .
(19)
Es brauchen nur noch die 1 und die Pivotelemente u =d ik kk kk berechnet zu werden. Mit (19) läßt sich das Gleichungssystem A x = b in den Teilschritten T L y = b , D z = y , lösen.
L
x=z
(20)
Ist A darüber hinaus noch positiv definit, was sich darin
2.1. Direkte
Lösungsverfahren
äußert, daß in (19) alle d positiv sind, kk weiter vereinfacht werden:
so kann
37
(19) noch
A = L L mit L = L D. D entsteht aus D, indem aus den Di agona1 e 1 emeriten die Wurzeln gezogen werden: D D = D. Dieses nach Cholesky benannte Verfahren erfordert jedoch gegenüber von (19) die zusätzliche Berechnung von n Wurzeln. Dafür vereinfacht sich (20) auf T L y = b , L x = y. Vereinfachungen gegenüber der allgemeinen Lü-Zerlegung und darauf basierende spezielle Lösungsverfahren ergeben sich auch, wenn nur relativ wenige Elemente i- 0 sind. Dabei ist zu unterscheiden, ob die Nicht-Null-Elemente nach gewissen Regeln (Block-, Bandmatrizen) oder regellos verteilt sind. Für letztere benutzt man eine Kompaktspeichertechnik (vgl. RHEINBOLDT,MESZTENYI (1973)), für erstere wird im nächsten Abschnitt ein Verfahren beschrieben.
2.1.3. Lineare Gleichungssysteme mit Bandmatrizeri Mathematische Grundlagen des Verfahrens Tritt das Lösen von linearen Gleichungssystemeri als Teilaufgabe umfassenderer mathematischer Verfahren auf, so übertragen sich gewisse Eigenschaften des Verfahrens auch auf die Koeffizientenmatrix A. So treten bei der Diskretisierung von Differentialgleichungen (vgl. Kapitel 5) Gleichungssysteme auf, deren Matrizen lediglich in der Hauptdiagonalen und den beiden benachbarten Kodiagonalen besetzt sind:
A =
2
2
2
Da bei solchen Aufgaben die Anzahl der Unbekannten meist recht groß ist, empfiehlt es sich, die LO-Zerlegung dieser speziellen
38
2. Lineare Sleichungssysteoe
Struktur
anzupassen,
um
Speicherbedarf einzusparen.
sowohl
Rechenaufwand
als
auch
Wir speichern die drei Diagonalen in
je einem Spaltenvektor ab und kommen so mit 3 statt mit n Spalten aus.
Wir
wollen,
in
weiter voraussetzen, also
die
Ubereinstimmung mit
vielen
Anwendungen,
daß die Matrix A diagonaldominant ist,
Hauptdiagonalelemente betragsmäßig nicht kleiner
daß sind
als die Betragssumme der übrigen Elemente in ihrer Zeile: |dT I = |a I + |c I. k k k Dann
läßt
sich
durchführen.
der
Die
Gaußsche
Algorithmus
ohne
Pivotisierung
Bandstruktur der tridiagonalen Matrix A
trägt sich auf die beiden Dreiecksfaktoren
! 1
L =
\
1
1
u
1
c u
und U =
1 2
c
2
über-
\
1 1 n-2 1 1 n-1 , Das erste Pivotelement ist
im folgenden ergeben sich immer
abwechselnd Eliminationskoeffizient 1
k
- a
k+1
/u
(21)
k
und Pivotelement u
k+1
= d
k+1
- 1 c , k k
(22)
k=l,...,n-l.
Die Elemente c^ der oberen Kodiagonalen gehen unverändert in Matrix
U ein.
Die Vorwärtselimination L y = b vereinfacht
die sich
jetzt zu (23) V
= b
k ~
V i
V i
'
k
=
2,
n
'
und die Eückwärtselimination U x - y liefert die Lösung x = y /u n n n x
k
= (y
k
- e x )/u , k = n-1, ..., 1. k k+1 k
(24)
2.1. Direkte Lösungsverfahren
39
Aufbau des Algorithmus SO: Sl: S2: S3: S4:
S5:
Eingabe der 3 Diagonalen. Setze u = d , k=l. Wähle >0. 1 1 Ist |u | < £ , so ist A nicht diagonal dominant, k STOP. Lü-Zerlegung Berechne 1 nach (21), u nach (22). k k+1 Setze k = k+1. Falls k < n, gehe zu Sl. Vorwärtselimination: Eingabe von b. Berechne y^ nach (23). Rückwärtselimination: Berechne x nach (24). STOP.
BASIC-Prpflr»mm Das folgende Programm realisiert den beschriebenen Algorithmus. 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400 420 440
PRINT" " PRINT" LINEARE GLEICHUNGSSYSTEME" PRINT'MIT TRIDIAGÓNALER KOEFFIZIENTENMATRIX" PRINT" REM ***** >>> KONSTANTEN > SCHRITT 0 > SCHRITT 1 « < ***** FOR K=1 TO N-l:IF ABS(D(K))>> SCHRITT 2 > S C H R I T T 4 < <
>> S C H R I T T 5 / A U S G A B E < <
k
|a | k
+
|d I . k
sind:
in e i n e r
auf
das
tridiagonalen
sondern die Elemente
der
2.1.
Direkte
Lösungsverfahren
41
Es ergibt sich ein Lösungsverfahren, das wesentlich von dem eben gezeigten abweicht: Mit Hilfe der ersten Gleichung drückt man x durch x aus, die 2 1 zweite Gleichung wird nach x^ aufgelöst, wobei zusätzlich x^ wieder durch x^ ausgedrückt wird, usf. Es ergibt sich für alle Unbekannten x = h + g x , k = 2, . . . , n, (25) k k k l wobei h und g die durch die Auflösung entstehenden k k ten sind.
Koeffizien-
Die letzte Gleichung liefert x^, womit (25) alle anderen Unbekannten liefert. Diese als Schießverfahren bekannte Methode tritt bei der numerischen Lösung von Randwertproblemen bei Differentialgleichungen 2. Ordnung auf.
2.1.4- QR-Serlegupg Mathematische Grundlagen des Verfahrens Ist bei einem linearen Gleichungssystem die Anzahl der Gleichungen größer als die Zahl der Unbekannten (bei gewissen Problemen sogar wesentlich größer), so ist zu erwarten, daß es keinen Lösungsvektor x gibt, der alle Gleichungen befriedigt. Probleme dieser Art treten in der Ausgleichsrechnung auf. Bei einem physikalischen, technischen, ökonomischen oder biologischen Prozeß z. B. ist der Zusammenhang zwischen zwei Prozeßgrößen u und v in der Regel noch durch eine Anzahl von Parametern bestimmt, die wir hier
mit
x ,...,x bezeichnen. Der prinzipielle Zusammenhang 1 n u und v sei bekannt, er wird durch eine Funktion be-
zwischen schrieben: • v = f(u; x , .. . ,x ). 1 n
(26)
Die Parameter dagegen können meist nur durch Messungen bestimmt werden, wobei noch die Schwierigkeit hinzukommen kann, daß sie sich nicht direkt messen lassen. Man mißt demzufolge u und v unter verschiedenen Versuchsbedingungen und schließt aus den Ergebnissen auf die Größe der Parameter. Um Meßungenauigkeiten
42
2. L i n e a r e
61eichungssystei»e
weitgehend auszugleichen, werden mehr Messungen ausgeführt, als zur Bestimmung der unbekannten Parameter nötig wären. Man bekommt so aus (26) mehr Gleichungen, als Unbekannte vorhanden sind; das Gleiohungssystem ist {Iberbestimmt. Ist in (26) die Abhängigkeit von den x , ...,x linear, so ergibt n 1 sich (eventuell nach Zusammenfassen gleichartiger Glieder) ein lineares Gleichungssystem A x = b
(27)
mit m > n. Dieses hat in der Regel keine Lösung. Wir suchen folglich eine Pseudolösung, die auf folgende Weise charakterisiert wird. Für eine Lösung gilt A x - b = 0, also auch BA x - bll = 0. Für eine Pseudolösung fordern wir: Es ist ein Vektor x so zu bestimmen, daß IIa x - bl| = min!
2 II A x - bll
bzw.
= min!
(28)
Bei Verwendung der euklidischen Vektornorm suchen wir also für ein überbestimmtes lineares Gleichungssystem eine Lösung von (27) nach der Gaußschen Methode der kleinsten Quadrate. Wir setzen voraus, daß A n linear unabhängige Spalten enthält, also Rang A gleich n ist. Um das Gleichungssystem aufzulösen, führen wir wieder eine Dreieckszerlegung von A durch: A = Q R.
(29)
Dabei enthält die m x n - Matrix R unter der Hauptdiagonalen nur Nullelemente, was eine Rückwärtselimination des gestaffelten Systems gestattet. Allerdings bestehen die letzten m-n Zeilen von R nur aus Nullelementen, was zu Widersprüchen führt, wenn die rechten Seiten in diesen Gleichungen nach der Transformation ungleich Null sind. (27) geht nach Multiplikation mit Q über in R x = c also
mit
-1
c = Q
b
2.1. Direkte Lösungsverfahren
11
12
ln\ r 2n
r 22
M
43
/c
x 2
x
(30)
n/ n+1
0
... 0
Das Gleichungssystem lösbares System R x = c (n, n) (n)
(30)
zerfällt
somit
in
ein
eindeutig (31)
und ein zweites Teilsystem 0 x = c ( m-n ) das widersprüchlich ist, falls eines der c , ...,c von Null n+1 m verschieden ist. Um die Minimalforderung (28) abzusichern, führen wir A mittels einer orthogonalen Transformation (Drehungen oder Spiegelungen) in R über, d.h., für Q verwenden wir eine orthogonale Matrix: -1 T Q = Q . Bei einer derartigen Transformation bleibt die euklidische Norm eines Vektors r unverändert. IQ r 11= H r || . Für den "Restvektor" r = A x - b gilt |rl|2 = ||QTrl|2 = JRx-cll2 = ||R x-c J (n,n) (n)
+
c
(m-n)
|| rJnimmt seinen kleinstmöglichen Wert an, wenn auf der Seite von (32) der erste Term verschwindet, x also eine von (31) ist: II rll.
-ri \ II (m-n)
(32) rechten Lösung (33)
Die Matrix R wird aus A erzeugt durch n nacheinander ausgeführte Spiegelungen. Bei der ersten Spiegelung Q^ A = A
(1)
(34)
44
2 . L i n e a r e 61 e i c h u n g s s y s t e a e
wird der erste Spaltenvektor a^ von A auf den Vektor (1) T a i = (-sgn a i i f| a ^ JJ, 0,0, ...,0) (35) gespiegelt. Die Wahl des Vorzeichens erfolgt dabei aus Gründen der numerischen Stabilität; für den Fall a = 0 vereinbaren wir 11 sgn a = -1. Diese Transformation wird durch den normierten 11 Sp i egelungsvektor n
1 ( 1 = — ,(a - a \) 1 ßl 1 1
mit
(D„
~
s
= II a
bestimmt. Eine anschauliche Vorstellung, wie Spaltenvektoren a j, j=2,...,n, gespiegelt werden, wenn man a auf den Spiegelungsvektor projiziert,
die übrigen ergibt sich,
3
P T T a - (n a ) n = (n n )a 1 j 1 1 1 j j und aj gemäß P P a j = a j + (aj - a j ) P zerlegt. Beim Spiegeln ändert a lediglich das j während der restliche Anteil unverändert bleibt:
Vorzeichen,
(1) P P T =-a +(a - a )=a - 2(n n )a . (36) j j j j j 1 1 j Dies entspricht einer orthogonalen Householder-Transformation a
a
(1) j
= Q Q
1
1
a
j
mit der symmetrischen m x m-Matrix
T = I - 2 n n 11
Die Auswertung von (36) ergibt für die ersten Komponenten sgn a (1) 11 T a (a a ) lj s^ 1 j und für die weiteren Komponenten
(37)
45
2 . 1 . D i r e k t e l_ö»ung»ver f a h r e n
a
(1) = a - A a , ij ij j il
i=2,...,m,
(38)
wobei der Umrechnungskoeffizient A
3
jeweils m, n
:";M,N
A(M,N+l),X(N)
280 P R I N T 300 FOR
der
"Eingabe
der
Koeffizienten
1=1 TO M : P R I N T
INPUT
A(I,J):
I;"-te
(einschl.
Gleichung
NEXT J : N E X T
I:INPUT
rechter
:":F0R
J = 1 TO
"Testgroesse
Seite)" N+l
";EPS
3 4 0 F O R K = 1 TO N 360 REM * * * * *
>>> S C H R I T T
380 S = 0 : F O R J = K 400
IF
S>> S C H R I T T
I = N TO 1 S T E P
700 P R I N T
: PRINT
:
*****
NEXT J :
";X(I) 5 z : la. .1 U
i=l,
,n
(51)
Entsprechendes gilt für die Spalten. Aber selbst wenn (51) nicht erfüllt ist, liegt in vielen Fällen Konvergenz vor. Unter Umständen gelingt durch Umnumerierung der Gleichungen oder der Unbekannten, die strenge Diagonaldominanz zu erzeugen. Eine Umnumerierung ist auch erforderlich, wenn eines der Diagonalelemente gleich Null ist, da in diesem Fall (48) oder (49) nicht direkt anwendbar sind.
2.2.
Aufbau des SO:
Iterationsverfahren
Algorithmus
E i n g a b e v o n A u n d b. 0 0 T Eingabe eines Startvektors x (Standard: x = (0, ...0) ) Wähle die Abbruchschranke £ >0 u n d d i e T e s t g r ö ß e >0. S e t z e k = 1.
Sl:
Test: a
ii Falls ein
f 0, i = 1, . . . , n. f. |a I < d » vertausche i-te Zeile mit j-ter Zeile ii
S2:
>> S C H R I T T 0 >> SCHRITT 1 =D THEN 620 NEXT 10
520 540 560 580 600
FOR 11=1-1 TO 1 STEP -1 : IF ABS(A(II,I))>=D THEN 580 NEXT II PRINT "Matrix A ist (numerisch) singulaer.": END FOR J=1 TO N+l : G=A(I,J) : A(I,J)=A(II,J) : A(I1,J)=G NEXT J : 1=11 : GOTO 640
620 640 660 680 700 720 740 760 780
FOR J=1 TO N+l: G=A(I,J) : A(I,J)=A(10,J) : A(I0,J)=G :NEXT J NEXT I REM ***** >>> SCHRITT 2 1 (fjberrelaxation). CO < 1 wäre angebracht, wenn die Folge alterniert. Dieser Fall tritt aber praktisch kaum ein. Problematisch ist die richtige Wahl des Relaxationsfaktors. Einerseits gewährleistet ein großes CO eine schnellere Konvergenz, andererseits kann durch einen su großen Faktor die Monotonie oder die Konvergenz überhaupt gestört werden. Eine definitive Antwort auf diese Frage ist auf relativ wenige, eng begrenzte Klassen von Matrizen A beschränkt. Ist beispielsweise A symmetrisch und positiv definit, so konvergiert die Relaxation genau für den Parameterbereich 0 < CO < 2. Welcher Wert aus diesem Intervall jedoch der optimale ist, wird damit nicht beantwortet. Erst durch Abschätzung der Eigenwerte der Iterationsmatrix können für gewisse Matrizen A der günstigste Relaxationsfaktor oder zumindest Schranken für ihn angegeben werden. Wir beschränken uns im Interesse einer größeren Matrizenmenge auf eine einfache Version des Helaxationsverfahrens. Nach jedem Schritt wird die (komponentenweise) Monotonie der Näherungsvektoren überprüft. Ist sie gegeben, wählen wir einen Faktor 1 < CO < 2. Sowie aber die Monotonie gestört ist, kehren wir zur Grunditeration ( 03= 1) zurück.
Aufbau des Algorithmus SO:
Eingabe von A und b. 0 0 T Eingabe eines Startvektor x (Standard: x = (0, ..., 0) ).
2.2.
Wähle eine Abbruchschranke
59
Iterationsverfahren
£ > 0 und eine Testgröße
cT > 0.
CO (1 < CO < 2).
Wähle einen Relaxationsfaktor Setze k = 1. Sl:
S2:
Test a j* 0, i = 1, . . . , n. ii Falls ein |a I < 0 , vertausche i-te Zeile mit ii j-ten Zeile >> SCHRITT 0 > SCHRITT 1 >=D THEN 680 560 NEXT 10 580 FOR 11=1-1 TO 1 STEP -1 : IF ABS(A=D THEN 640 600 NEXT II 620 PRINT "Matrix a ist (numerisch) singulaer." : END 640 FOR J=1 TO N+l : G=A(I,J) : A( I, J)=A( II, J) : A(I1,.J)=G 660 NEXT J : 1=11 : GOTO 700 660 FOR J=1 TO N+l : G=A(I,J):A(I,J)=A(10,J):A(10,J)=G : NEXT J 700 NEXT I 720 REM ***** >>> SCHRITT 2 >> SCHRITT 3 > SCHRITT 4 > SCHRITT 5 SCHRITT 6 > SCHRITT 7 > KONSTANTEN > SCHRITT 0 >> SCHRITT 1 | < (f'(x )) , gehe zu SO. k k k
S2:
Setze x = x - f(x )/f'(x ). k+1 k k k
S3:
Falls k > ITMAX STOP. Setze k = k+1 und gehe zu Sl.
72
3.Nichtlineare
61eichungen
BASIC-Programm Das folgende Programm realisiert den beschriebenen Algorithmus. 100 PRINT"—r 120 PRINT"NEWTON - VERFAHREN" 140 PRINT" 160 180 200 220
REM DEF DEF DEF
"
***** >>> FUNKTIONEN / ABLEITUNGEN FNY(X)=X*2-C0S(X) FNYA(X)=2*X+SIN(X) FNYB(X)=2+C0S(X)
240 REM ***** 260 280 300 320 340 360 380 400 420 440 460 480 500 520 540 580 600 620 640 660
"
c
«
>> KONSTANTEN < «
A1$="K0NVERGENZBEDINGUNG NICHT ERFUELLT" A2$="MAXIMALE ITERATIONSZAHL ERREICHT" A3$="ABBRUCHTEST ERFUELLT" REM ***** >>> SCHRITT 0 > SCHRITT 1 < « FOR K=1 -TO ITMAX Y=FNY(X0):Y1=FNYA 0. Setze k=0 k+1 k k k+1 Bestimme x nach (19) mit (21) : x = x - F(x ). k+1 k # k+1 Falls |[ x Lösung. STOP. - x l| < £ , ist x =x Setze k = k + 1 und gehe zu Sl.
82
3. N i c h t l i n e a r e
Gleichungen
E^SISdEESgraffiffl
Das
folgende
100
PRINT"
Programm
realisiert
beschriebenen
ITERATIONSVERFAHREN"
PRINT"
160 REM
Algorithmus.
"
120 PRINT"GEWOEHNLICHES 140
den
"
*****
>>> DES
SCHRITT
180
INPUT"DIMENSION
PROBLEMS
200
DIM
220
PRINT"STARTVEKTOR
:":FOR
240
INPUT"GENAUIGKEIT
:",
260
INPUT"MAX.
0
>> THE.N G O T O
*****
480 >>>
480
*******" 620:Y(I)=Y:NEXT
TO N : X < I ) = X ( I ) - Y < I ) : N 0 = N 0 + Y ( I ) * Y ( I ) : N E X T
***** N0 R n
(24)
T wird die Funktion F(x) = (f (x), ..., f (x)) in einer vorliegen1 n k * den Näherung x der Wurzel x von (1) linearisiert. Dadurch erk gibt sich zunächst der Punkt y als Lösung des linearen Gleichungssystems k k F(x ) + B (x - x )
= 0.
(25)
3.4.1. Newton-Verfahren
BS
k k Hierbei wird als Matrix B die Jacobi-Matrix H(x ) = (h ) ij k k k ö'i«*» ) k (26) B = H(x ) = (h ) . = ( — k ij ax x=x j k der Funktion F im Punkt x verwendet. k In der Originalversion wird die Lösung y von 0, so daß U(x ,r) c D, $ F(x ) = 0, und # —1 * -1 (iii) H(x ) existiert mit ||H(x ) II < ß . die folgende Aussage: 0 * Es existiert ein £ > 0, sodaß für x £ U(x ,£) durch die beschriek bene Vorgehensweise eindeutig eine Folge {x } bestimmt ist, weine che gegen x konvergiert und für die k+1 *„ k *„ 2 II x - x II < C öx - x II (27) gilt. Den Vorteilen der Q-quadratischen Konvergenz bei vorliegender guter Startnäherung für den Fall, daß H(x ) nichtsingulär ist, stehen folgende Nachteile gegenüber: 1. Im allgemeinen keine globale Konvergenz. 2. Berechnung von H(x ) in jedem Schritt der Iteration notwendig. 3. Lösung eines linearen Gleichungssystems, welches unter Umständen schlecht konditioniert ist. Der erste Nachteil kann durch die Verwendung einer gedämpften Version des Newton-Verfahrens bzw. seiner Modifikationen beseite k tigt werden. Dabei wird y nicht sofort als Nachfolger von x K+1 k k k k k akzeptiert. Man wählt x = x + oi s mit s = y -x und k i oc - (1/2)J , wobei j die kleinste nichtnegative ganze Zahl ist, k k für welche bezüglich der Funktion ip(x) = (1/2) HF(x)ll 2 = (1/2) Y2. f i 2 < x > i—1
86
3. N i c h t l i n e a r e
Bleichungen
die Ungleichung k k k T k k f(x + oCS ) i f + q u , V f (x ) s k k
(28)
mit 0 < q < 1 gilt. Es läßt sich unter hinreichend schwachen Voraussetzungen zeigen, daß für genügend großes k gilt: 0 oL = 1 k
Vk > k . 0 *
Damit geht in einer Umgebung von x das gedämpfte in das ungedämpfte Newton-Verfahren über. Man hat eine globale und lokal überlinear konvergente Methode zur Lösung der Aufgabe (1). Eine Möglichkeit, den zweiten Nachteil zu beseitigen, besteht in k k der konsistenten Approximation B = {b ) der Matrix H(x) der ij k Funktion F(x). Hierbei wird h durch die dividierte Differenz ij k k k f KONSTANTEN > SCHRITT 0 >> OR
E$="a"
1=1
DN=SQR(DN):IF
660
IF
680
A> 1=1
NO durchführbar, die Iterierten x k liegen in S und die Matrizen A genügen den Abschätzungen 0 k IIB ||< M
k
und
IIB _1 ||< N.
k
Darüber hinaus läßt sich verifizieren : Entweder das Verfahren endet nach endlich vielen Schritten wegen N N * , k, F(x ) =^0 mit x = x oder die Folge {x j konvergiert überlinear gegen x . Praktisch von Vorteil ist die Arbeit^mit der sogenannten inversen Aufdatierungsformel für A = (B ) k+1 k k k k k (y - A s )(y - A s ) k k A = A + k+1 k k k T k (y - A s ) s k Davon wird im Algorithmus Gebrauch gemacht.
3.4.2. Quasi-Newton-Verfahren Aufbau des SO:
Algorithmus
Wähle eine Anfangsnäherung x
0
Wähle die Abbruchgenauigkeit S1:
Bestimme sk s
k
93
= - A
k
„ k+ II x
Ist
S3:
Ermittle y
. Setze
A
gemäß
F(x
1
S2:
für eine Lösung von F(x) €
k
) und setze x
k
- x k
„
rII < £
= F(x
k+1
k+1
= x
* , so ist x > - F(x
k
k
k + s .
k+1 = x
) und A
S e t z e k = k + 1 u n d g e h e z u Sl.
0
= 0
= I u n d k = 0.
k+1
Lösung. gemäß
STOP.
(34).
BASTC-Pi-nrfr« m m Das folgende Programm realisiert den beschriebenen 100 P R I N T "
r
"
120 P R I N T " V E R F A H R E N D E R V A R I A B L E N
METRIK"
140 P R I N T "
"
160 R E M * * * * *
>>> K O N S T A N T E N
180 T 1 $ = " A B B R U C H T E S T 200 T2$="MAXIMALE
ERFÜELLT
> S C H R I T T 0 < <
INPUT
KONTROLLDRUCK
U0(I):
NEXT
I
>> MODELLGLEICHUNGEN >> AUSGABE >> SCHRITT 1 > ANFANGSWERTE > SCHRITT 2 .
Lösungen
(der damit (siehe
Einen U b e r b l i c k über w e i t e r e Verfahren
zur Lösung von ( 2 4 ) f i n d e t man s.
B.
in COLLATZ (1960), ORTEGA,
RHEINBOLDT (1970). Analog zu ( 2 1 ) können auch andere Randbedingungen in ( 2 3 ) gewählt werden.
5.2.2.
Differerizenverfahren für p a r t i e l l e Differentialgleichungen
Mathematische Grundlagen des Verfahrens Die
Grundzüge des D i f f e r e n z e n v e r f a h r e n s f ü r d i e s e
Problemklasse
s o l l e n an folgendem s t e t i g e n Modellproblem e r l ä u t e r t werden: 2 - A u = f ( x , y) V(x, y ) £ f i c R (Differentialgleichung), u = g(x, mit
G: = { ( x , dG:=
{(x,
y)
tf(x,
y)e 9 G
(Randbedingung),
2 y ) e R | 0 < x < a; 0 < y < b } , y ) e R I x = 0 , a ; 0 = y = b,
¿lu:= u + u xx yy
und y = 0 , b ; 0 = x - a } , (Laplace-Operator).
Die Funktionen f und g s t e l l e n vorgegebene Daten in G bzw.
(29) (30)
(31) (32) auf
5.2.2. Randwertprobleme 2-D-Fall
157
dem Rand von G dar. Das zugrundeliegende Gebiet G stellt hier ein achsenparalleles Rechteck dar, dessen Rand aus den vier Kanten des Rechtecks besteht. Für f = 0 nennt mein (29) Dirichlet-Problem, anderenfalls Poisson-Problem. Als Lösung von (29) - (32) wird im klassischen Sinne eine in G zweimal stetig differenzierbare Funktion gesucht, die auf 0G stetig ist und dort die Randbedingungen (30) erfüllt. Um G bzw. 3 G zu diskretisieren, werden in x- bzw. y-Richtung festgelegt durch: h
x
= a/(n + 1 ) ,
h
y
zunächst Schrittweiten
= b/(m + 1), n, m = 1.
Mit Hilfe dieser Schrittweiten wird in G bzw. der folgenden Art festgelegt:
(33)
auf 3 G ein Gitter
G : = { ( x , y ) f Gl 1 = i = n, 1 i j = m>, h i j
(34)
9G := {(x., y.)£ 3 G | i = 0, n+1; 0 = j = m+1 h i j und j = 0, m+1; 0 = i = n+1}, x = ih , i x y j = j h y,
0 - i = n + 1, ^ ^ 0 = j = m + 1.
Als Näherurigslösung für (29) wird eine Gitterfunktion gesucht, die durch ihre Werte in den Punkten von G bzw. 9 G charakteh h risiert ist. Eine solche Gitterfunktion wird im weiteren durch die zweifach indizierte Größe u = (uv ) gekennzeichnet, wobei die Größen u ij ij die gesuchten Näherungswerte für die LOsung u(x, y) von (29) in den Gitterpunkten (x , y ) darstellen soll, i j Man beachte, daß aufgrund der Randbedingungen in (30) die Werte u auf 3 G vorgegeben sind: ij h u. . = g(x , y ) lj l J
V(x , y )e 3 G , i J h
so daß als Unbekannte nur die n*m Größen u
(35)
ij
(1- i -n, 1- j -m)
verbleiben. Das diskrete Näherungsproblem zu (29) erhält man auf eine zu 5.2.1 analoge Weise. Dazu werden die partiellen Ableitungen des Laplace-Operators in (32) durch entsprechende finite Differenzen
1S8
3. Nueerik der
Differentialgleichungen
ersetzt: u Au. .= h ij
i+1, j
- 2 u + u u - 2 u + u ij i-1, j i, j+1 ij + r 2 2 h h x y
i, j-1
Damit läßt sich das Näherungsproblem für (29) in folgender schreiben: - A u . . = f(x., y.) y.) £ G , h ij l j l J h u. . = g(x., y.) ij l j
(36)
Form
(37)
V(x., y.)C 9 G . i j h
(37) stellt ein lineares Gleichungssystem zur Bestimmung der Näherungswerte u dar. Allerdings entspricht die Notationsweise ij in (37) nicht der üblichen Art der Darstellung solcher Systeme (die Unbekannten u sind zweifach indizierte Größen), ij Um Anschluß an die Lösungstheorie linearer Gleichungssysteme zu erhalten, muß das System (37) umgeordnet werden. Dazu werden zunächst die Unbekannten u i j auf jeder Gitterlinie in x-Richtung zu einem Vektor v j zusammengefaßt: T v . = (u ..... u .) , J lj nj
j = 1, .... m,
und anschließend die Teilvektoren v v = (v
1
j
(38)
zu einem Gesamtvektor v
T v ) m
(39)
der gesuchten Größen angeordnet. Des weiteren werden folgende Hilfsgrößen benötigt: 2 2 2 = 2(h + h ), d = (h h ) /d , x y x y 1 2 2 d = h /d , d = h /d , x y 1 y x 1 d
1
(h , h aus (33)). x y Multiplikation von (37) mit d und anschließende Umordnung der Gleichungen in (37) bezüglich der Struktur des Vektors v aus (39) ergibt das folgende Gleichungssystem in Matrix-Darstellung:
5.2.2. RindMertprobleoe 2-D-Fall Dv = p mit: /a A B
-d
D =
>
A =
V
B a/
B
P = (P 1
B = -d
.... P ) , ra
(41)
u
A
B .
159
l
7
(42)
V
V = {V , .... V ) . m 1
w
-d
(43)
Die Matrix D in (41) besitzt eine sogenannte Tridiagonal-Blockstruktur, wobei die einzelnen Blöcke A und B die durch (42) definierten Matrizen der Ordnung (n x n) sind. Oer Vektor p auf der rechten Seite von (41) ist durch folgende Beziehungen charakterisiert: T P. = (p. .... P ) . j = 1. . . ., m, j U nj = d f
11
+dg +dg , x Ol y 10
= d f + d g , il y iO = df
nl
+dg x n+1,1
2 = i = n-1, + d g , y nO
= d f + d g , 1j x Oj = d f , ij
2 = i = n-1,
2 = j = m-1.
(44)
= d f + d g nj x n+1, j p P
Im im
- A t
Im
+ d g + d g x 0,1 y l,m+l
= d f + d g , im y i,m+l
2 - i - n-1.
P =df + d g + d g , nm nm x n+l,m y n,m+l mit: f
lj
:= f(x., y .) l j x
ij
Ä< .> i
J
V U . . Vj € G . l j h V(x.,y)e9 G. l j h
(45)
160
S. Nuaerilt der Differentialgleichungen
Zur Lösung des linearen Gleichungssystems (41) können nun wiederum die in Kapitel 2 erläuterten Verfahren benutzt werden. Jedoch erweist es sich auch in diesem Fall, daß Verfahren, die die spezielle Struktur des Problems £ , dann gehe zu S6, sonst STOP.
RART(!-Prnrfrflmin Das folgende Programm realisiert den beschriebenen Algorithmus. 100 PRINT" 120 PHINT" 140 PRINT" 160 PRINT"
" HANDWERTPROBLEM FÜER PART.DGL 2.0RDN6. -(UXX+UYY)=F(X,Y) ! 0 < X < A , U =G(X,Y) AUF DEM RAND "
0 < Y < B "
180 PRINT" 200 REM *****
" >>> SCHRITT 1 > MODELLFUNKTIONEN UND RANDBEDINQ.
SCHRITT
7
>>
9
/T t ik ik
(45) auftretenden
Ableitungen
(46) (47) (48) (49) (50)
Durch Einsetzen dieser Beziehungen in die Differentialgleichung (42) und Umstellen der Gleichungen nach u erhält man ein zu ik (13) analoge explizite Berechnungsgrundlage der Größen in der (j+l)ten Zeitschicht mit Hilfe der u der Zeitschicht j. Aus der ik Anfangsbedingung (44) erhält man die entsprechenden Anfangs-
186
S. Nuaerik der Differentialgleichungen
werte u° als Startwerte der Rechnung, ik In Analogie zu (22) und (23) lassen sich durch Stabilitätsuntersuchungen geben : h h
x
y
folgende Schranken für Orts und Zeitschrittweiten
an-
. (x) (x) i 2a /|b |,
(51)
(y) (y) -2a /|b |,
(52)
ZT = l/(2a
(x) 2 (y) 2 /h + 2a /h x y
c).
(53)
Aufbau des Algorithmus Sl:
Eingabe Zeitschrittweite, Endzeitpunkt, Druckschrittweite,
S2:
Berechnung der Ortschrittweiten.
Zahl der Gitterpunkte in x und yRichtung. S3:
Berechnung des Ortsgitters und der Anfangswerte.
S4:
Festlegung der Randwerte.
S5:
Festlegung der Zeit und der Größen für die Drucksteuerung.
S6:
Wenn "Druckzeitpunkt nicht erreicht", dann gehe zu S9.
S7:
Ausgabe der Lösung.
S8:
Festlegung des neuen Druckzeitpunktes.
S9:
Wenn "Endzeitpunkt erreicht", dann STOP.
S10: Umspeicherung der Lösung und Belegung der Randwerte. Sil: Berechnung der neuen Lösung nach Formel (46) - (50) und Fehlerbehandlung nach Formel (51) - (53). S12: Festlegung der neuen Zeit und GOTO S6.
BASICProgramm Das
folgende
BASIC-Programm- realisiert den beschriebenen
rithmus. 100 PRINT"
"
120 PRINT"EXPLIZITES DIFFERENZENVERFAHREN" 140 PRINT" 160 PRINT"
fuer zweidim. parab. Dgln." "
Algo-
1B7
5.3.4. Explizites Differenzenverfahren 2-D-Fall
180 G O T O 200 REM 220
NOTATION
*****
>>>
DEB
DGL.
>
NOTATION
UA=0: RETURN
360 REM
*****
>>>
STABILITAETSKONTROLLE
>
520 G3(I,N5)=UR:NEXT 540 REM
I:
*****
RANDBELEGUNG
THEN
NF=3: RETURN
>
SCHRITT
1 >>
SCHRITT
4
>
SCHRITT
5
>
SCHRITT
6
>
SCHRITT
7
480
*****
T0-0:Tl=-TA/2:T=0
840 REM
*****
IF T0>>
*****
780 GOSUB
820
Y-Gitterpunkte';N5
D3(N3,N5),G3(N3,N5),X3(N3),Y3(N5>
740 FOR J=1 760
X-Gitterpunkte";N3
HX=1/(N3-1):HY=1/(N5-1):N4=N3-1:N6=N5-1:N7=N5+1
700 FOR 720
der
der
*****
THEN
1080
I N P U T 'Neue A u s g a b e ? " ; Z $ : P R I N T :
920 PRINT
> SCHRITT 8 > SCHRITT 9 >> SCHRITT 10 BERECHNUNG DER NEUEN RANDWERTE > SCHRITT 11 >> VORZEICHENKORREKTUR > UPSTUD / STUDENT-VERTEILUNG > KONSTANTEN > UEBERPRUEFUNG DER EINGABE VERZWEIGUNG IN ABHAENG. VON FG INT(FG) THEN 9280 9140 REM ***** >>> EXAKTE FORMELN FUER FG=1,2,3,4 /SQR(T2*T2+4) F2 = .5+R2: R2=.5-R2: RETURN REM ***** >>> "NORMALISIERUNG" >>
LESEN
THEN
*****
PRINT"P
DER
EINGABE
IN U P Q S T U D
UPQSTUD:
13340
REM
13360
P1=ABS(P-.5):B7=1/FG:RESTORE
13380
READ
13400
IF ABS(P1-B8) STIRLINGSCHE FORMEL > AL= REIHENENTWICKL. FUER T3=> "NORMALISIERUNG" FUER AL>20 >> AUFRUF UP GAU >> UP G / SPEZIELLE FUNKTION « < REM ***** >>> NEGAT. ARGUMENT > 0.9=< T2 =< 1.1 > 0 < T2 < 0.9 oder T2 > 1.1 > AL - GANZZAHLIG