Download (7333kb, 52 pages) - The Sharp MZ-Series
Download (7333kb, 52 pages) - The Sharp MZ-Series
Download (7333kb, 52 pages) - The Sharp MZ-Series
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Numerische Losung_gewohnlicher Difrerentialgleichungen mit<br />
Anrangswerten aur dem PC 1500<br />
Dieses Programm lost gewohn1iche Oifferentia1g1eichungen 1., 2.<br />
und 4. Ordnung sowie Systeme von zwei gekoppelten Oiffgln. 1. und<br />
2. Ordnung nach dem Runge-Kutta Verfahren. Ourch eine einfache<br />
Fehlerabsch§tzung wlrd eine Korrektur der Ergcbnisse und eine automat1sche<br />
Schrittweitensteuerung ermoglicht.<br />
Man kann sich so einen Uberblick verschaffen ilber den Verlauf der<br />
Losungskurve von Problemen, deren analytische Losung man nicht<br />
kennt.<br />
Die Diffg1. muG a1s Unterprogramm eingegeben werden. Es werden die<br />
Variablen X,Y,Z,Y1 (erste Ab1eitung von Y nach X),Z1,Y2 und Z2<br />
verwendet. Die Zeilen 1 bis 6 entha1ten drei 8eispie1e dazu. Sie<br />
gehoren nicht zum Programm und so11en nicht mit abgetippt werden.<br />
Man gibt dann einen Satz von Anfangswerten eln. Daraus werden<br />
schrittweise neue Wertetupel errcchnet, wobei die Variable X<br />
jcdesmal um die Schrittweite H erhoht wird. Die alten Werte werden<br />
dabei von den neuen ilberschrieben. Nach der Berechnung stehen die<br />
Ergebnisse in Zeile 670 zur VerfUgung. Im Listing werden hier X<br />
und Y angezeigt. Indem man die Zeile durch eine geeignete ersetzt<br />
kann man die Ergebnisse weiter auswerten, beispielsweise drucken<br />
oder in einem Feld'abspeichern. Niltzlich ist es auch in ein Pro<br />
:l> gramm zur graphischen Darstel1ung der Losungskurve zu verzweigen.<br />
....... A1s Beispie1 habe ich<br />
__~ ....... ...I Onlll... <br />
"- _. 1'01 00.111.,.<br />
...... 1'....,........ ...,., Amplitudenverlauf und<br />
""...........' ....1\ <br />
CD<br />
Phasenportrait der Van<br />
rJl<br />
der Pol'schen D1ffgl.<br />
""t)<br />
(y"=-y+(O,B-y_y)_y'),<br />
C: mit der man se1bsterreg<br />
'"1 te Schwingungen beschreiben<br />
kann p10tten lassen.<br />
m<br />
:::r<br />
Die Anfangsbedingungen<br />
CD<br />
waren Xo=0,Yo=-0,2,Yo=0.<br />
'"1<br />
Als Schrittweite habe ich<br />
'0<br />
H=0;1 gewahlt. Die Plotroutine<br />
1st n1cht 1m Lis<br />
o<br />
ting entha1ten, jeder<br />
a<br />
kann jedoch eine eigene<br />
'0<br />
in Zei1e 670 anschlieGen.<br />
c::<br />
rt<br />
ro<br />
'"1<br />
"...... 1"... .10..,<br />
-J..... I .•<br />
::r:<br />
-1•••2<br />
ro<br />
,..hlt<br />
ytS.u:...If'ldI......<br />
••••Zl<br />
""t)<br />
-1."...2."<br />
rt<br />
I-"<br />
I-" Die Leistung des AIgorithmus ist in hohem MaGe von der gew~hlten<br />
Schrittweite abhangig. Um einen Eindruck van der Genauigkeit der<br />
Rechnung bel verschledencn Schrittweiten zu erhalten kann man<br />
eine Oiffg1. mit bekannter Losung (Sei5pie1e 1 bis 3~ durchrech<br />
1-" nen und in Zeile 670 die Ergebnisse ~it den crwarteten Werten <br />
rt vergleichen.<br />
ro Das Programm belegt ungefahr 2K. Ich habe mich um Obersichtlich<br />
I-" keit bemuht, auf Kosten von Speicherplatz und Geschwindigkcit. <br />
\0 Wer will kann das ja tindern. <br />
m<br />
ro<br />
Zur Bedienung : <br />
Zunachst muG die Oiffgl. als Unterprogramm mit dem Namen "DGL" <br />
geschrieben werden. Es sind drei Falle moglich<br />
01ffgl. 1. Ordnung :<br />
Eine o~ffgl. 1. Urdnung kann in der Form y'=f(x,y) geschrieben •<br />
•<br />
werden. Sie w1rd entsprechend e1ngegeben Y1=f(X,Y).<br />
Beispie1 1 : y'=2xy. ~it den Anfangsbedingungen Xo=O und Yo=1 ist<br />
y=exp(x.x) die L6sung. Die karrekte Eingabe ist Y1=2.X.Y wie in <br />
Programmzei1e 1. <br />
o1ffg1. 2. Ordnung hzw. System zweier Oiff~ln. 1. Ordnung : <br />
Eine Oiffg1. 2. Ordnung 1autet y"=f(x,y,y ). Sie ist aquiva1ent <br />
zu einem System van ~wei Oiffg1n. 1. Ordnung. Zur Berechnung muG <br />
die Oiffg1. erst in ein s01ches System zer1egt werden. Das ge<br />
schieht so : Man substituiert y'als z und erhalt y'=z und <br />
z'=y"=f(x,y,z)., Das wird eingegeb~n als Y1=Z:Z1=f(X,Y,Z). <br />
So11en zwei gekoppelte Oiffgln. ge16st werden, dann konnen sie <br />
natilrlich gleich eingegcben werden. <br />
Beispiel 2 : y"=-y. roit der Umwandlung z=y', z'=-y folgt Zeile 3. <br />
Wahlt man Xo=0,Yo=0,Zo=Y10=1 erh~lt man die Losung y=sin(x). <br />
Oiff91. 4. Ordnung bzw. System zweier Diffgln. 2. Ordnung : <br />
.,<br />
~'=f(x,y,y' ,y" ,y"') wird wie oben in ein System von zwei <br />
Oiffgln. 2. Ordnung zerlegt : y"=z , z"=f(x,y,y' ,z,z'). <br />
Zwei gekoppelta Oiffg1n. kHnnen direkt eingegeben werden. <br />
Beispiel 3 : y"=-8y-2z', z"=-8z+2y'. Oiese beiden Gleichungen <br />
filhren mit Xo=0,Yo=1,Zo=O Y10=0 und Z10=1 auf die Rosette<br />
y=cos(x)cos(3x) , z=sin(x~cos(3x). Die richtige Programmierung<br />
steht in Zeile 5 •<br />
Oer Aufruf des Programms.erf01gt mit "OEF" "0". Vor Beginn der<br />
Rechnung werden folgende Parameter abgefragt :<br />
ordnung : 1, 2 oder 4.<br />
Zahl der Ausgaben : so oft wird Zeile 670 e·rreicht.<br />
Schrittwcite : Abstand von einem X-Wcrt zum nachsten.<br />
Zahl der Zwischenwerte : Will man zur Erh5hung der Genauigkeit<br />
die Schrittweite klein machen und trotzdem bis zum Erreichen eines<br />
Endwertes rechnen, dann kann die Zahl der Ausgaben sehr groG<br />
werden. Um dies zu verhindern kann hier die Anzahl der Wertetupel<br />
festgelegt werdcn, die zwischen zwei Ausgaben zwar berechnet,<br />
aber nicht ausgegeben werden.<br />
•<br />
Korrektur : r'~i t Hilfe ciner Fehlerabschatzung konnen die errechneten<br />
Wcrte karrigiert werden. Das erhoht die Genauigkeit, verdreifacht<br />
aber die Rechenzeit. Eingabe einer 1 schaltet die Korrektur<br />
ein, n schaltct sic aus.<br />
Schrittsteucrung : Nach Vergleich der Fehlerabschatzung mit einer 4<br />
Genauigkeitsschranke wird die Schrittweite halbiert, gleich belas<br />
sen oder vcrdoppclt. Die Schrittwpite wird also der gewilnschten <br />
Genauigkeit in ctwa angcpaOt. Die Schrittsteuerung funktioniert <br />
nur in Verbindung mit ~er Korrektur. 1=ein , o=aus. •<br />
Genauig~ : filr Schrittsteuerung (z.O. 1e-4). <br />
Anfangswerte : Xc, Yo, Zo, Y10, Z10. 8ei eincr Oiffgl. 2. Ordnung <br />
hat Zo-are-ITedeutung von y'.