Initialisierung
Die Eingaben dieser Sektion müssen ausgelöst werden!
Laden der Bibliothek:
> 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
kann man die rechte Seite der Gleichung geometrisch als Tangentensteigung im Punkt
auffassen. Man kann dann dem Wertepaar
den Wert
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
Richtungsfeld mit Lösungskurven
-----------------------
>
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);
Man erhält im Grenzfall Dt->0 folgende Differentialgleichung:
> DGL:=limit(lhs(%),Dt=0)=limit(rhs(%),Dt=0);
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));
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);
Die Medikamentenmenge soll langfristig 100mg nicht übersteigen. Man muss also den Grenzwert für t ->
bilden. Falls dieser existiert, wird Maple ihn anzeigen:
> Limit(u(t),t=infinity)=limit(u(t),t=infinity);
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);
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]);
Nach knapp 100 Minuten ist der Sättigungswert etwa erreicht.
Durch Umformen kann die obige Differentialgleichung auch auf die Form
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);
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);
Die Konstante _C1 errechnet man aus der Anfangsbedingung, z.B für y(0)=0 ...
> c1:=solve(y(0)=0,_C1);
und für y(0)=20:
> c2:=solve(y(0)=20,_C1);
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));
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);
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);
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]);
>
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);
Die allgemeine Lösung für das Anfangswertproblem y(0)=k lautet:
> sol:=dsolve({DGL1,y(0)=k},y(x));
Offensichtlich hängt die Lösung für ein festes x kontinuierlich von k ab. Man kann aber noch mehr sagen. Wenn
und
die Lösungsfunktionen zu den Anfangswertproblemen
bzw
sind, dann beträgt der Betrag der Differenz beider Funktionen:
Für
sieht man, dass die Differenz der Funktionswerte betragsmäßig mit steigendem x abnimmt.
Für
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
und
unterscheiden sich die Funktionswerte um ein Vielfaches:
, 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]);
>
>
zurück zum Anfang
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
kann man zudem die rechte Seite der Gleichung als Tangentensteigung im Punkt
auffassen. Wenn man also dem Wertepaar
den Wert
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);
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);
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);
>
DGL1:=D(y)(x)=exp(-x)-2*y(x);
dfieldplot(DGL1,y(x),x=-4..3,y=-1..6,color=sienna,arrows=LINE);
>
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));
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 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]);
> DEplot(DGL2,n(t),t=-2..4,[[n(0)=50],[n(0)=-10]],n=-600..2000,linecolor=[red,green]);
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
>