Mathematische Probleme auf Microcomputern [Reprint 2021 ed.] 9783112594001, 9783112593998


192 60 40MB

German Pages 268 [269] Year 1990

Report DMCA / Copyright

DOWNLOAD PDF FILE

Recommend Papers

Mathematische Probleme auf Microcomputern [Reprint 2021 ed.]
 9783112594001, 9783112593998

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

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