[Maple Metafile]

Initialisierung

Die Eingaben dieser Sektion müssen ausgelöst werden!

Laden der Bibliothek:

> restart:

> with(DEtools):with(plots):with(richtfel);

>

Überblick

Oft ist es erwünscht, sich einen qualitativen Überblick über alle möglichen Lösungen einer Differentialgleichung verschaffen. Dies gelingt zum einen durch Schaubilder, die möglichst viele Lösungskurven bei verschiedenen Anfangsparametern darstellen, zum anderen durch sogenannte Richtungsfelder.

Bei expliziten, gewöhnlichen Differentialgleichungen erster Ordnung [Maple Math] kann man die rechte Seite der Gleichung geometrisch als Tangentensteigung im Punkt [Maple Math] auffassen. Man kann dann dem Wertepaar [Maple Math] den Wert [Maple Math] zuordnen und diese Zuordnung in einem Schaubild darstellen. Man visualisiert dazu die Steigung durch kurze Linienelemente im zugehörigen Punkt. Die Kurve einer Lösungsfunktion muss nun auf dieses Richtungsfeld "passen".

Inhaltsverzeichnis

Lösung einer Differentialgleichung bei verschiedenen Anfangsbedingungen

Richtungsfelder

Richtungsfeld mit Lösungskurven

-----------------------

zurück zur Startseite

>

Bedienungserklärung

Die Berechnungen auf diesem Arbeitsblatt können unter MapleV durch Drücken der Enter-Taste zeilenweise oder aber komplett über den Menüpunkt Edit - Execute - Worksheet ausgelöst werden.

Über die Bildlaufleisten kann ein beliebiger Ausschnitt ausgewählt werden.

Die einzelnen Sektionen sind unabhängig voneinander. Deshalb kann über das Inhaltsverzeichnis an jede beliebige Sektion gesprungen werden. Die Befehle innerhalb einer Sektion sind jedoch nicht unbedingt unabhängig. Hier empfiehlt sich das schrittweise Abarbeiten der einzelnen Befehle.

Lösung einer Differentialgleichung bei verschiedenen Anfangsbedingungen

Beispiel Tropfinfusion

Einem Patienten soll über eine Tropfinfusion ein bis dahin im Körper nicht vorhandenes Medikament verabreicht werden. Dabei gelangt pro Minute eine gleichbleibende Menge von x mg ins Blut (Das kann an der Infusionsflasche eingestellt werden.). Über die Niere wird ein Teil des Medikaments wieder ausgeschieden. Die Ausscheidungsrate A beträgt 5% der jeweils im Blut gerade vorhandenen Menge u(t). Also ist A= -5/100*u(t).
Die in der Zeit Dt zugeführte Menge beträgt x*Dt. Die langfristig im Blut enthaltene Menge soll 100mg nicht übersteigen.
Wie groß muss x gewählt werden?

Exkurs: Herleitung der Differentialgleichung

Die Bestandsgröße u(t) gibt die zur Zeit t im Blut vorhandene Menge des Medikaments in mg an.
Im Zeitraum zwischen t und t+Dt ändert sich der Bestand um die Größe:

> u(t+Dt)-u(t)=x*Dt-5/100*u(t)*Dt;
simplify(%/Dt);

[Maple Math]

[Maple Math]

Man erhält im Grenzfall Dt->0 folgende Differentialgleichung:

> DGL:=limit(lhs(%),Dt=0)=limit(rhs(%),Dt=0);

[Maple Math]

Beachten Sie bitte, dass nicht x sondern t die Variable ist. Maple löst nun die DGL mit der Anfangsbedingung, dass zur Zeit t=0 noch kein Medikament im Körper war, d.h. u(0)=0:

> sol:=dsolve({DGL,u(0)=0},u(t));

[Maple Math]

Man erhält eine Lösungsfunktion u(t). Der Exponentialfaktor zeigt einen Abnahmeprozess (negativer Exponent !).

Allerdings muss man Maple mitteilen, dass u(t) eine Funktion ist.

> u:=unapply(rhs(sol),t);

[Maple Math]

Die Medikamentenmenge soll langfristig 100mg nicht übersteigen. Man muss also den Grenzwert für t -> [Maple Math] bilden. Falls dieser existiert, wird Maple ihn anzeigen:

> Limit(u(t),t=infinity)=limit(u(t),t=infinity);

[Maple Math]

Die rechte Seite der Gleichung gibt den Grenzwert der Funktion u(t) an. Da dieser 100 betragen soll, gilt:

> 100=20*x;
x:=solve(%,x);

[Maple Math]

[Maple Math]

Bei einer konstanten Zufuhr von 5mg Medikament, wird die Medikamentenmenge insgesamt 100mg nicht überschreiten.

Man kann nun die Lösung im Schaubild betrachten.

> plot({100,u(t)},t=0..140,0..120,color=[red,blue]);

[Maple Plot]

Nach knapp 100 Minuten ist der Sättigungswert etwa erreicht.

Durch Umformen kann die obige Differentialgleichung auch auf die Form [Maple Math] gebracht werden. Dies ist die Form der Differentialgleichung des beschränkten Wachstums. G gibt die Sättigungsgrenze an. k ist die Wachstumskonstante. Man errechnet leicht, dass in diesem Fall k=1/20 und G=100 sein muss.

>

Die obige Aufgabe führt auf die folgende Differentialgleichung:

> y:='y':x:='x':
DGL:=D(y)(t)=5-1/20*y(t);

[Maple Math]

Mit dsolve lässt sich diese Differentialgleichung allgemein lösen. (Man muss an dieser Stelle Maple mitteilen, dass die Lösung eine Funktion von t ist. Dies erreicht man durch unapply ).

> lsg:=dsolve(DGL,y(t)):

> y:=unapply(rhs(lsg),t);

[Maple Math]

Die Konstante _C1 errechnet man aus der Anfangsbedingung, z.B für y(0)=0 ...

> c1:=solve(y(0)=0,_C1);

[Maple Math]

und für y(0)=20:

> c2:=solve(y(0)=20,_C1);

[Maple Math]

Jetzt kann man die Lösung für beide Anfangsbedingungen in einem Schaubild darstellen:

> display(plot([subs(_C1=c1,y(t)),subs(_C1=c2,y(t))],t=0..120,y=0..110));

[Maple Plot]

Die grüne Kurve bedeutet im vorliegenden Fall, dass der Patient zu Beginn der Tropfinfusion schon (noch?) 20 mg Wirkstoff im Blut hatte.

Natürlich kann man die Anfangsbedingungen weiter variieren, um sich einen Überblick über die verschiedenen Lösungen der Differentialgleichungen zu verschaffen.

> c_Werte:=[-100,-80,-60,-40,-20,0,20]:
Bildsequenz_1:=seq(plot(y(t),t=0..120),_C1=c_Werte):
display(Bildsequenz_1);

[Maple Plot]

Die oberste Kurve verwundert zunächst etwas. Obwohl der Patient zu Beginn der Infusion schon eine "Überdosis" im Blut hatte, kann man die Zufuhr trotzdem bei 5 mg pro Minute belassen. Langfristig wird wieder der Sättigungswert erreicht.

Aber noch weitere Fälle sind denkbar. Dem Befehl dsolve kann man die Anfangsbedingung unmittelbar übergeben.

> y:='y':
lsg1:=dsolve({DGL,y(20)=0},y(t)):

> r:=unapply(rhs(lsg1),t):

> plot(r(t),t=0..120,0..120,color=blue);

[Maple Plot]

Mit der Prozedur afb_seq können die Kurven für verschiedene Anfangsbedingungen in ein Schaubild gezeichnet werden.

> liste:=[[0,0], [20,0],[40,0], [60,0], [0,100], [0,120], [20,120],[40,120],[60,120]]:

> afb_seq(DGL,y(t),liste,0..120,view=[0..120,0..140]);

[Maple Plot]

>

zurück zum Anfang

Beispiel: Stabilität von Differentialgleichungen

Wie hängt die Lösung einer Differentialgleichung von der Anfangsbedingung ab? Führen kleine Veränderungen im Anfangswert y(0) zu großen oder kleinen Veränderungen der Lösung?
Fragen wie diese, zielen auf eine Stabilitätsbetrachtung der Differentialgleichung.

> y:='y':x:='x':
DGL1:=D(y)(x)=exp(-x)-2*y(x);

[Maple Math]

Die allgemeine Lösung für das Anfangswertproblem y(0)=k lautet:

> sol:=dsolve({DGL1,y(0)=k},y(x));

[Maple Math]

Offensichtlich hängt die Lösung für ein festes x kontinuierlich von k ab. Man kann aber noch mehr sagen. Wenn [Maple Math] und [Maple Math] die Lösungsfunktionen zu den Anfangswertproblemen [Maple Math] bzw [Maple Math] sind, dann beträgt der Betrag der Differenz beider Funktionen:

[Maple Math]

Für [Maple Math] sieht man, dass die Differenz der Funktionswerte betragsmäßig mit steigendem x abnimmt.

Für [Maple Math] ist die Situation anders. Je kleiner x hier wird, desto stärker macht sich der Exponentialfaktor gegenüber der Differenz der Konstanten bemerkbar. Schon für [Maple Math] und [Maple Math] unterscheiden sich die Funktionswerte um ein Vielfaches:

[Maple Math] , was etwa 1203 ergibt.

Kleine Unterschiede in der Anfangsbedingung führen bei negative x-Werten zu großen Unterschieden in den Funktionswerten: Man sagt die Lösung ist instabil für negative x-Werte.
Dies wird im folgenden Schaubild deutlich.

> Anfangsbedingungen:=[[0, 0.96], [0, 0.97], [0, 1], [0, 1.03]]:

> afb_seq(DGL1,y(x),Anfangsbedingungen,-4..3,color=[red,blue,green,magenta],
view=[-4..3,0..20]);

[Maple Plot]

>

>

zurück zum Anfang

Richtungsfelder

Schon bei dem Beispiel mit der Tropfinfusion ist deutlich geworden, dass man sich einen Überblick über mögliche Lösungen einer gewöhnlichen Differentialgleichung verschaffen kann, wenn man die Kurven zu verschiedenen Anfangsbedingungen in ein Schaubild zeichnen lässt. Man sieht sofort Bereiche, in denen der Kurvenverlauf ein ähnlicher ist oder sogar ganz von "benachbarten" Kurven abweicht.

Bei expliziten, gewöhnlichen Differentialgleichungen erster Ordnung [Maple Math] kann man zudem die rechte Seite der Gleichung als Tangentensteigung im Punkt [Maple Math] auffassen. Wenn man also dem Wertepaar [Maple Math] den Wert [Maple Math] zuordnet, so kann man diese Zuordnung in einem Schaubild durch die Zuordnung Punkt -> m darstellen. Hierbei wird m als Steigung der Tangente in diesem Punkt aufgefasst.
Visualisiert man die Steigung durch kurze Linienelemente im zugehörigen Punkt, so erhält man das sogenannte Richtungsfeld der Differentialgleichung. Die Kurve einer Lösungsfunktion muss nun auf dieses Richtungsfeld passen.
Die Prozedur
richtfeld ordnet jedem Wertepaar die Steigung an dieser Stelle zu und stellt das Richtungsfeld graphisch dar.

> y:='y':x:='x':
DGL:=D(y)(x)=5-0.05*y(x);
liste:=[[10,80],[20,80],[30,80],[10,100],[20,100],[30,100],[10,120],[20,120],[30,120]]:

> richtfeld(DGL,y(x),liste,0..40,0..130);

[Maple Math]

[Maple Plot]

Einfacher ist es, die Liste mit dem seq-Befehl zu erzeugen:

> liste:=[seq(seq([j*10,i*10],j=1..9),i=1..12)]:

> richtfeld(DGL,y(x),liste,0..100,0..130);

[Maple Plot]

MIt dfieldplot aus dem Paket DEtools stellt Maple ebenfalls einen Befehl zur Verfügung, um ein solches Richtungsfeld zu erzeugen

> dfieldplot(DGL,y(x),x=0..100,y=0..140);

[Maple Plot]

> DGL1:=D(y)(x)=exp(-x)-2*y(x);
dfieldplot(DGL1,y(x),x=-4..3,y=-1..6,color=sienna,arrows=LINE);

[Maple Math]

[Maple Plot]

>

zurück zum Anfang

Richtungsfelder mit Lösungskurven

Dass die Lösungskurven auf das Richtungsfeld wirklich "passen", soll im folgenden demonstriert werden.

> n:='n':t:='t':
DGL2:=D(n)(t)=2*(n(t)/1200)*(1200-n(t));

[Maple Math]

Zunächst werden das Richtungsfeld und die Lösungskurven für bestimmte Anfangsbedingungen berechnet. (Man beachte, dass Maple ohne die Option discont=true standardmäßig senkrechte Asymptoten an den Polstellen einzeichnet)

> liste:=[seq(seq([j*0.5,i*200],j=-4..8),i=-3..10)]:

> feld:=richtfeld(DGL2,n(t),liste,-2..4,-600..2000):

> lsg_kurven:=afb_seq(DGL2,n(t),[[0,50],[0,-10]],-2..4,color=[green,red],
thickness=3,discont=true):

Jetzt können beide Bilder in einem Koordinatensystem dargestellt werden:

> display([feld,lsg_kurven],view=[-2.5..4.5,-600..2000]);

[Maple Plot]

Maple stellt hierzu die Befehle phaseportrait und DEplot zu Verfügung. (Informationen zur Syntax entenhmen Sie bitte der entsprechenden Hilfeseite.)

> phaseportrait(DGL2,n(t),t=-2..4,[[n(0)=50],[n(0)=-10]],n=-600..2000,linecolor=[red,green]);

[Maple Plot]

> DEplot(DGL2,n(t),t=-2..4,[[n(0)=50],[n(0)=-10]],n=-600..2000,linecolor=[red,green]);

[Maple Plot]

Allerdings fehlt hier jeweils der obere Ast der einen Kurve. Ganz offensichtlich ein Fehler!

>

zurück zum Anfang

Literatur

H.J. Brochhagen
Differentialgleichungen in der Schulmathematik
in: Der Mathematikunterricht , Jg 41, Heft 2 März 1995

Coombes, Hunt, Lipsman, Osborn, Stuck
Differential Equations with Maple
John Wiley & Sons , New York 1996

Enz
Differentialgleichungen
Landesinstitut für Erziehung und Unterricht, Stuttgart 1995

>