07.07.2014 Aufrufe

Download (7333kb, 52 pages) - The Sharp MZ-Series

Download (7333kb, 52 pages) - The Sharp MZ-Series

Download (7333kb, 52 pages) - The Sharp MZ-Series

MEHR ANZEIGEN
WENIGER ANZEIGEN

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'.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!