Mathematik von T. Arens, F. Hettlich, Ch. Karpfinger, U. Kockelkorn, K. Lichtenegger, H. Stachel (zu Kapitel 29: Partielle Differenzialgleichungen)restart; Der Befehl pdsolveAuch zum Loesen partieller Differentialgleichungen stellt Maple einen Befehl und das Programmpaket PDEtools bereit. Zentral ist der allgemeine Befehl pdsolve, der in speziellen Situationen explizit Loesungen finden kann. Versuchen wir zunaechst eine quasi-lineare Differenzialgleichung erster Ordnung.pde:= x^2*diff(u(x,y),x)+x*y*diff(u(x,y),y)-(u(x,y))^2=0;
pdsolve(pde);Die vom System eingefuehrte Funktion _F1 ist dabei frei waehlbar. Mit den Optionen zum pdsolve Kommando bieten sich eine ganze Reihe von Moeglichkeiten partielle Differenzialgleichung zu untersuchen, bis hin zu numerischen Loesungen (Option numeric) durch die Methode der finiten Differenzen. Darueberhinaus gibt es das spezielle Paket PDEtools, aus dem wir uns noch ein paar Befehle ansehen. with(PDEtools);Wir koennen die Ordnung der Differenzialgleichung erfragendifforder(pde);oder uns das charakteristische System verschaffencharstrip(pde,u(x,y));Wichtig ist die Moeglichkeit Variablentransformationen vorzunehmen, z.B. eine Transformation, wie wir es bei der d'Alembert Loesung zur Waermeleitungsgleichung im Abschnitt 29.2 gesehen haben. Dazu dient der Befehl dchangedchange({x=t+s,y=t-s},pde);Gibt es weitere Informationen zur Loesung u, so lassen sich diese durch dsubs auch in die Differenzialgleichung einsetzen.eq :=u(x,y)=(v(x,y))^2;
dsubs(eq,pde);Auf diesem Weg koennten wir auch eine Separation ansetzen.eq :=u(x,y)=v(x)*w(y);
dsubs(eq,pde);Ob eine additive oder multiplikative Separation sinnvoll ist, laesst sich mit dem Befehl separability erfragen. So laesst sich die Laplacegleichung sowohl durch eine Summe als auch durch ein Produkt separieren pde:=diff(u(x,y),x,x) + diff(u(x,y),y,y)=0;
separability(pde,u(x,y));
separability(pde,u(x,y),`*`);
separability( lhs(pde)+(u(x,y))^2=0,u(x,y));Das Resultat 0 erhalten wir, wenn eine Separation vollstaendig moeglich ist. Dagegen ist das letzte Ergebnis wie folgt zu interpretieren: Fuer die modifizierte nichtlineare Differenzialgleichung kann nur unter der Bedingung, dass der angegebene Ausdruck verschwindet, eine Loesung in der separierten Form LCYtSSJmRzYiNiNJInhHRiUiIiItSSJnR0YlNiNJInlHRiVGKA== gefunden werden kann.Uebrigens, wenn Ihnen die Indexschreibweise fuer die partiellen Ableitungen lieber ist, so bietet Maple mit dem Befehl difftable eine entsprechende Moeglichkeit. Charakteristiken restart; with(plots): Neben den oben beschriebenen allgemeinen Befehlen zum Loesen partieller Differenzialgleichungen, koennen wir selbstverstaendlich auch die einzelnen Schritte der im Buch vorgestellten Methoden mit Maple nachvollziehen. Wir betrachten in diesem Abschnitt das Charakteristikenverfahren und im naechsten einen Separationsansatz im Detail.Starten wir mit der quasi linearen partiellen Differenzialgleichung erster Ordnung (siehe Abschnitt 29.3). Zunaechst geben wir die Differenzialgleichung ein.pde:= D[1](u)(x,y) - 2*u(x,y)*D[2](u)(x,y) - u(x,y) = 0;und lesen das charakteristische System ab,ode1:= D(k1)(s) = 1; ode2:= D(k2)(s) = 2*w(s); ode3:= D(w)(s) = w(s);(oder beschaffen es uns mit charstrip). Die allgemeine Loesung des Systems gewoehnlicher Differenzialgleichungen ergibt sich zulsgtmp:=dsolve([ode1,ode2,ode3]);Bemerkung: An dieser Stelle ergibt sich ein technisches Problem, dass Ihnen vielleicht nicht auffaellt. Aber die Zuordnungen der Konstanten und die Reihenfolge der Angaben der Funktionen in lsgtmp kann variieren, sodass wir im Worksheet einwenig Aufwand treiben muessen, um die richtigen Kombinationen zu extrahieren. Wenn Sie die Ausgabe vor Augen haben, koennen Sie k1, k2, w einfach durch eine Zeile wie k1:= rhs(lsg_tmp[1]); k2:=rhs(lsg_tmp[2]); w:=rhs(lsg_tmp[3]);definieren. Wir muessen hier aber erst die Position der Eintraege in der Loesungsmenge festlegen und bestimmen.lsgtmp:=convert(lsgtmp,list);
ltmp:=map(lhs,lsgtmp):
member('k1(s)',ltmp,'pk1'): member('k2(s)',ltmp,'pk2'): member('w(s)',ltmp,'pw'):
k1:=rhs(lsgtmp[pk1]);
k2:=rhs(lsgtmp[pk2]);
w:=rhs(lsgtmp[pw]);
Nun stellen wir uns die Anfangskurve durch Ly1JJmdhbW1hRyUqcHJvdGVjdGVkRzYjSSJ0RzYiNiQiIiFGJw== parametrisiert vor und erhalten fuer die Konstanten _C1,_C2,_C3 in Abhaengigkeit von t an der ausgewaehlten Stelle s=0 die Bedingungen bed1:= subs(s=0,k1)=0;
bed2:= subs(s=0,k2)=t;
bed3:=subs(s=0,w)=2*subs(s=0,k2);und bekommenlsgtmp:=solve({bed1,bed2,bed3},[_C1,_C2,_C3]);Wir setzen diese Werte ein, sodass sich lsgtmp:=[seq(lsgtmp[1,j],j=1..3)];
ltmp:=map(lhs,lsgtmp):
member('_C1',ltmp,'c1'): member('_C2',ltmp,'c2'): member('_C3',ltmp,'c3'):
_C1:=rhs(lsgtmp[c1]);
_C2:=rhs(lsgtmp[c2]);
_C3:=rhs(lsgtmp[c3]);Wieder haben wir dabei zunaechst die Reihenfolge der Variablen in der Loesung ermittelt. Nun loesen wir das Gleichungssystem lsgtmp:=solve({x=k1,y=k2},[s,t]);und setzen diese Ausdruecke in w ein um die Loesung u zu bestimmenlsgtmp:=[seq(lsgtmp[1,j],j=1..2)];
ltmp:=map(lhs,lsgtmp):
member('s',ltmp,'ps'): member('t',ltmp,'pt'):
u:=subs(s=rhs(lsgtmp[ps]),t=rhs(lsgtmp[pt]),w);Eine Illustration der Loesung, ermoeglicht uns Chrakteristiken und Grundcharakteristiken einzuzeichnen t:=-1/4:
p1:=plot3d(u,x=-0.1..1,y=-1..1,axes=boxed,style=patchnogrid):
p2:=spacecurve([k1,k2,0],s=0..0.5,color=black,thickness=2):
p3:=spacecurve([k1,k2,2*exp(s)*t],s=-0.1..0.5,color=red,thickness=2):
p4:=spacecurve([0,y,0],y=-1..1,color=blue,thickness=2):
t:=0:
p5:=spacecurve([0,y,2*y],y=-1..1,color=yellow,thickness=2):
p6:=spacecurve([k1,k2,2*t*exp(s)],s=-0.1..1,color=red,thickness=2):
t:=1/4:
p7:=spacecurve([k1,k2,0],s=-0.1..0.5,color=black,thickness=2):
p8:=spacecurve([k1,k2,2*t*exp(s)],s=-0.1..0.5,color=red,thickness=2):
display(p1,p3,p4,p5,p6,p7,p8);Eingezeichnet in den Graphen der Loesung u sind einige Charakteristiken (rot), eine zugehoerige Grundcharakteristik (schwarz), die Kurve, auf der Anfangsbedingungen gegeben sind (blau) und die Kurve mit den Anfangswerten (gelb). Bei den 3D Bildern hilft es oft, das Bild einwenig zu drehen, um es sich besser vortellen zu koennen. Ein Paukenschlagrestart: with(plots): with(DEtools):Wir nutzen die Gelegenheit um noch ein paar weitere Befehle aus dem DEtool Paket kennenzulernen. Als Beispiel einer Separation versuchen wir die Schwingung einer kreisfoermigen Membran zu analysieren. Die zugehoerige Schwingungsgleichung lautetpde:= D[1,1](u)(t,x,y) - D[2,2](u)(t,x,y) - D[3,3](u)(t,x,y) = 0;wobei wir in diesem Beispiel den Differentialoperator D nutzen, also im Gegensatz zu oben u als Funktion und nicht als Ausdruck behandeln. Nehmen wir an, das die Membran fest eingespannt ist, so ergibt sich eine Randbedingung von der Form u(t,x,y) = 0 fuer LywmKiRJInhHNiIiIiMiIiIqJEkieUdGJkYnRihGKA==. Eine Separation der Zeitabhaengigkeit bedeutetLy1JInVHNiI2JUkidEdGJUkieEdGJUkieUdGJSomLUkid0dGJTYjRiciIiItSSJ2R0YlNiRGKEYpRi4=Um die partielle Differentialgleichung in diesen Variablen zu schreiben nutzen wir den Befehl Dchangevar im Paket DEtools und erhaltenpde:=Dchangevar(u(t,x,y)=w(t)*v(x,y),pde,t);Wir teilen durch w und v, um die Abhaengigkeiten zu separieren,pde:=collect(pde/w(t)/v(x,y),D);und erhalten zwei DGL'n, die durch eine Konstante gekoppelt sind:dgl_t:=remove(has,op(1,pde),x)=-k^2;
dgl_xy:=remove(has,op(1,pde),t)=k^2;Fuer die Zeitabhaengigkeit w ergibt sich eine gewoehnliche Differentialgleichung zweiter Ordnung, deren allgemeine Loesung, eine harmonische Schwingung, wir leicht ermitteln koennen lsg_t:=dsolve({dgl_t,w(0)=0},w(t));wobei wir hier die Anfangsbedingung Ly1JIndHNiI2IyIiIUYn verwenden. Nun bleibt noch die Ortsabhaengigkeit, also die Helmholtzgleichungdgl_xy:= dgl_xy*v(x,y);zu untersuchen. Da wir Loesungen im Einheitskreis suchen waehlen wir Polarkoordinaten und transformieren die partielle Differntialgleichung mit PDEchangecoords auf die neuen Koordinaten. dgl_p:=PDEchangecoords(dgl_xy,[x,y],polar,[r,phi]);dgl_p:=subs(v(r*cos(phi),r*sin(phi))=v(r,phi),dgl_p);Nun folgt eine Separationsansatz in den Polarkoordinaten, d.h. v(NiRJInJHNiJJJHBoaUdGJA==) = rad(r) arg(SSRwaGlHNiI=),dgl_p:=Dchangevar(v(r,phi)=rad(r)*arg(phi),dgl_p,r);Wir sortieren den Ausdruck dgl_p:=collect(r^2*dgl_p/rad(r)/arg(phi),D);und extrahieren die beiden separierten Differntialgleichungen. Zunaechst bezueglich SSRwaGlHNiI=dgl_phi:=remove(has,op(1,dgl_p),r)=c;Es ergibt sich die allgemeine Loesunglsg_phi:=dsolve(dgl_phi,arg(phi));arg:=unapply(rhs(lsg_phi),phi);Wir benoetigen alle LCRJI1BpRyUqcHJvdGVjdGVkRyIiIw== -periodischen Loesungen, die wir durch_EnvAllSolutions:=true:
lsg_c:=solve({arg(0)=arg(2*Pi),D(arg)(0)=D(arg)(2*Pi)},c);bekommen, wobei an die vom Sytem eingefuehrte Hilfsvariable _Z die Bedingung about(indets(subs(lsg_c[2],c)));zu stellen ist. Wir fuehren statt c den Index n ein, um diese Loesungen zu kennzeichnenassume(n,integer); assume(n>=0); c:=n^2;Also erhalten wir die Loesungenlsg_phi:=simplify(arg(phi));Als letztes fehlt uns noch die radiale Abhaengigkeit. Wir betrachten also die Differentialgleichung fuer die Funktion rad(r)dgl_r:=simplify(eval(dgl_p))*rad(r);dgl_r:=collect(dgl_r,rad(r));Diese gewoehnliche Differentialgleichung heisst Besselsche Differentialgleichung und als allgemeine Loesung ergeben sich Linearkombinationen von Bessel- und Neumannfunktion n-ter Ordnung lsg_rad:=dsolve(dgl_r,rad(r));Zur Illustration schauen wir uns einige Graphen dieser Funktionen an, deren Auswertung durch die Befehle BesselJ und BesselY implementiert ist.J0:= plot(BesselJ(0,t), t=0..10, color=red):
J1:= plot(BesselJ(1,t), t=0..10, color=blue):
J2:= plot(BesselJ(2,t), t=0..10, color=green):
display(J0,J1,J2);und die NeumannfunktionenY0:= plot(BesselY(0,t), t=0..10, y=-1..1, color=red):
Y1:= plot(BesselY(1,t), t=0..10, y=-1..1, color=blue):
Y2:= plot(BesselY(2,t), t=0..10, y=-1..1, color=green):
display(Y0,Y1,Y2);Wir sehen, dass die Neumannfunktionen bei L0kickc2IiIiIQ== singulaer werden. Dies kann uns keine sinnvolle Beschreibung der Schwingung der Membran liefern, sodass wir diese Loesungen ausschliessen koennen.assume(k>0):
lsg_rad:= rhs(subs(_C2=0,lsg_rad));Es fehlt nun noch die Randbedingung bei L0kickc2IiIiIg== zu beruecksichtigen. Aus u =0, d.h. lsg_rad(1) = 0, ergibt sich, dass fuer die Kopplungskonstante k nur Nullstellen der Besselfunktion in frage kommen.solve(subs(r=1,lsg_rad)=0,k);Diese Nullstellen sind in Maple durch das Kommando BesselJZeros fest verankert und wir koennen uns einige Werte beschaffen.z01:=evalf(BesselJZeros(0,1));
z11:=evalf(BesselJZeros(1,1));
z21:=evalf(BesselJZeros(2,1));
z02:=evalf(BesselJZeros(0,2));
z12:=evalf(BesselJZeros(1,2));
Mit diesen Nullstellen kann die allgemeine Loesung durch eine ReiheLy1JInVHNiI2JUkidEdGJUkickdGJUkkcGhpR0YlLUkkc3VtRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliR0YlNiQqKCwmKiYmSSJhR0YlNiNJIm5HRiUiIiItSSRzaW5HRiw2IyomSSJtR0YlRjdGKUY3RjdGNyomJkkiYkdGJUY1RjctSSRjb3NHRixGOkY3RjdGNy1JIkpHRiU2JEY8KiYmSSJ6R0YlRjVGN0YoRjdGNy1GOTYjKiZGRkY3RidGN0Y3L0Y2O0Y3SSlpbmZpbml0eUdGLQ==mit den der Groesse nach nummerierten Nullstellen Jkkiekc2IjYjSSJuR0Yk der zugehoerigen m-ten Besselfunktionen angegeben werden. Jeder Summand repraesentiert einen Schwingungsmodus (eine Eigenschwingung) und deren Ueberlagerung liefert den Klang, wobei die Anteile, die Koeffizienten, der einzelnen Modi von der Anregung der Schwingung abhaengen. Betrachten wir eine kleine Auswahl dieser Modenu01:= BesselJ(0,z01*r)*sin(z01*t);
u21:= cos(2*phi)*BesselJ(2,z21*r)*sin(z21*t);
u12:= cos(phi)*BesselJ(1,z12*r)*sin(z12*t);und lassen mit animate3d einen Modus schwingen animate3d([r*cos(phi), r*sin(phi), u12], r=0..1, phi=0..2*Pi, t=1..3.7, frames=40);oder eine Ueberlagerung der Schwingungen.animate3d([r*cos(phi), r*sin(phi), 0.05*u01+0.05*u21+0.1*u12], r=0..1, phi=0..2*Pi, t=1..3.7, frames=50);Aufgaben1. Loesen Sie Aufgabe 29.7. mit Maple, d.h. gesucht ist die Loesung des Anfangsrandwertproblems LywoLUklZGlmZkclKnByb3RlY3RlZEc2JS1JInVHNiI2JEkieEdGKkkidEdGKkYsRiwiIiItRiU2JEYoRi0iIiVGKCEiJCIiIQ==mit den Bedingungen Ly1JInVHNiI2JEkieEdGJSIiISokLUkkc2luRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliR0YlNiNGJyIiJA== und Ly1JInVHNiI2JCIiIUkidEdGJUYn, LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzZBLUkjbWlHRiQ2JVEidUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JKG1mZW5jZWRHRiQ2JC1GIzYmLUYsNiVRJyYjOTYwO0YnL0YwUSZmYWxzZUYnL0YzUSdub3JtYWxGJy1JI21vR0YkNi1RIixGJ0Y/LyUmZmVuY2VHRj4vJSpzZXBhcmF0b3JHRjEvJSlzdHJldGNoeUdGPi8lKnN5bW1ldHJpY0dGPi8lKGxhcmdlb3BHRj4vJS5tb3ZhYmxlbGltaXRzR0Y+LyUnYWNjZW50R0Y+LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdRLDAuMzMzMzMzM2VtRictRiw2JVEidEYnRi9GMkY/Rj8tRkI2LVEiPUYnRj9GRS9GSEY+RklGS0ZNRk9GUS9GVFEsMC4yNzc3Nzc4ZW1GJy9GV0Zbby1JI21uR0YkNiRRIjBGJ0Y/LUZCNjBRIn5GJy8lJ2ZhbWlseUdRLkx1Y2lkYX5CcmlnaHRGJy8lK2JhY2tncm91bmRHUShbMCwwLDBdRicvJTBmb250X3N0eWxlX25hbWVHUSVUZXh0RidGP0ZFRmluRklGS0ZNRk9GUUZTL0ZXRlUtRkI2MFEiLkYnRmRvRmdvRmpvRj9GRUZpbkZJRktGTUZPRlFGU0ZdcEZhby1GLDYoUSdXZWxjaGVGJ0Zkb0Y9RmdvRmpvRj9GYW8tRiw2KFEqQmVkaW5ndW5nRidGZG9GPUZnb0Zqb0Y/RmFvLUYsNihRJW11c3NGJ0Zkb0Y9RmdvRmpvRj9GYW8tRiw2KFEnZ2VsdGVuRidGZG9GPUZnb0Zqb0Y/LUZCNjBGREZkb0Znb0Zqb0Y/RkVGR0ZJRktGTUZPRlFGU0ZWRmFvLUYsNihRJmRhbWl0RidGZG9GPUZnb0Zqb0Y/RmFvLUYsNihRJWVpbmVGJ0Zkb0Y9RmdvRmpvRj9GYW8tRiw2KFEpYWRkaXRpdmVGJ0Zkb0Y9RmdvRmpvRj9GYW8tRiw2KFErU2VwYXJhdGlvbkYnRmRvRj1GZ29Gam9GP0Zhby1GLDYoUSR6dW1GJ0Zkb0Y9RmdvRmpvRj9GYW8tRiw2KFEnRXJmb2xnRidGZG9GPUZnb0Zqb0Y/RmFvLUYsNihRJ2Z1ZWhydEYnRmRvRj1GZ29Gam9GPy1GQjYwUSI/RidGZG9GZ29Gam9GP0ZFRmluRklGS0ZNRk9GUS9GVFEsMC4xMTExMTExZW1GJy9GV0ZockY/LoesungWir geben die Differenzialgleichung einrestart;
pde:= diff(u(x,t),x,x)+4*diff(u(x,t),t)-3*u(x,t) = 0;und berechnen mit pdsolve Loesungenlsg:=pdsolve(pde,u(x,t));Offensichtlich fuehrt eine multiplikative Separation zum Ziel. Extrahieren wir die gewoehnlichen Differenzialgleichungen und loesen diese.l:=op(2,lsg);
lsg1:=dsolve(l[1][1]);
lsg2:=dsolve(l[1][2]);Damit ergeben sich Loesungen der Formutmp:=rhs(lsg1)*rhs(subs(_C1=1,lsg2));Beachten Sie, dass die weitere Konstante aus der zweiten Loesung ohne Einschraenkung auf 1 gesetzt werden kann. Nun untersuchen wir die Randbedingung.subs(x=0,utmp)=0;
Also ist _C2:=-_C1;und aus EnvAllSolutions:=true:
solve(subs(x=Pi,utmp)=0,_c[1]);Die weiteren Loesungen werden hier offensichtlich vom System nicht gefunden. Mit LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYpLUkjbWlHRiQ2JVEkX2MxRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEjOj1GJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy8lJ3JzcGFjZUdGTC1GNjYtUSomdW1pbnVzMDtGJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMjIyMjIyMmVtRicvRk5GUy1JJW1zdXBHRiQ2JS1GLDYlUSJuRidGL0YyLUkjbW5HRiQ2JFEiMkYnRjkvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnLUY2NjBRIn5GJy8lJ2ZhbWlseUdRLkx1Y2lkYX5CcmlnaHRGJy8lK2JhY2tncm91bmRHUShbMCwwLDBdRicvJTBmb250X3N0eWxlX25hbWVHUSVUZXh0RidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSYwLjBlbUYnL0ZORmlvLUYsNihRJmZvbGd0RidGX29GL0Zib0Zlb0YyRjk=assume(n,integer);
utmp:= _C1*sin(n*x)*rhs(subs(_C1=1,_c[1]=-n^2,lsg2));Um auch noch die Anfangsbedingung anzupassen benoetigen wir die Fourierkoeffizienten von LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2JkYrLUYjNiQtSSVtc3VwR0YkNiUtRiM2Ji1GLDYlUSRzaW5GJy8lJ2l0YWxpY0dRJmZhbHNlRicvJSxtYXRodmFyaWFudEdRJ25vcm1hbEYnLUkjbW9HRiQ2LVEwJkFwcGx5RnVuY3Rpb247RidGPi8lJmZlbmNlR0Y9LyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRlUtSShtZmVuY2VkR0YkNiQtRiM2JC1GLDYlUSJ4RicvRjxRJXRydWVGJy9GP1EnaXRhbGljRidGPkY+Rj4tSSNtbkdGJDYkUSIzRidGPi8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRidGPkYrRj5GK0Y+. Mit Hilfe der Additonstheoreme ergibt sich combine(sin(x)^3);Also besteht die Loesung aus einer Summe mit LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2JkYrLUYjNiYtRiw2JVEibkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIj1GJy9GOlEnbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkQvJSlzdHJldGNoeUdGRC8lKnN5bW1ldHJpY0dGRC8lKGxhcmdlb3BHRkQvJS5tb3ZhYmxlbGltaXRzR0ZELyUnYWNjZW50R0ZELyUnbHNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy8lJ3JzcGFjZUdGUy1JI21uR0YkNiRRIjFGJ0ZARkBGK0ZARitGQA== und LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2JkYrLUYjNiYtRiw2JVEibkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIj1GJy9GOlEnbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkQvJSlzdHJldGNoeUdGRC8lKnN5bW1ldHJpY0dGRC8lKGxhcmdlb3BHRkQvJS5tb3ZhYmxlbGltaXRzR0ZELyUnYWNjZW50R0ZELyUnbHNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy8lJ3JzcGFjZUdGUy1JI21uR0YkNiRRIjNGJ0ZARkBGK0ZARitGQA== und den entsprechenden Faktorenlsg:=subs(n=1,_C1=3/4,utmp)+ subs(n=3,_C1=-1/4,utmp);Wir ueberpruefen die Loesung, indem wir den Ausdruck u in die Differenzialgleichung pde einsetzen. Dies leistet der Befehl pdetesttest:=u(x,t)=lsg;
pdetest(test,pde);.2. Bestimmen Sie die Loesung u des AnfangswertproblemsLywoKiZJInhHNiIiIiItSSVkaWZmRyUqcHJvdGVjdGVkRzYkLUkidUdGJjYkRiVJInlHRiZGJUYnRicqKkYlRidGLyEiIkYsRjEtRik2JEYsRi9GJ0YnRixGJyIiIQ==und Ly1JInVHNiI2JCokSSJ0R0YlIiIjRigiIiI= fuer MiIiIUkidEc2Ig== (s. Aufagbe 29.11).LoesungMit dem pdsolve Befehl erhalten wirrestart: with(PDEtools):
pde:= x*diff(u(x,y),x) + x/y/u(x,y)*diff(u(x,y),y)+u(x,y)=0;
pdsolve(pde);Mit dem Ergebnis koennen wir nicht allzuviel anfangen. Gehen wir also schrittweise das Charakteristiken Verfahren durch. Zunaechst die charakteristischen Gleichungen charstrip(pde,u(x,y));Wir extrahieren die einzelnen Differenzialgleichungen ode1:= D(k1)(s) = k1(s); ode2:= D(k2)(s) = k1(s)/k2(s)/w(s); ode3:= D(w)(s) = -w(s);Die allgemeine Loesung des Systems gewoehnlicher Differenzialgleichungen ergibt sich mitlsgtmp:=dsolve([ode1,ode2,ode3]);Also erhalten wir k1:=C1*exp(s);
w:= C2*exp(-s);
k2a:=-sqrt(2*simplify(int(k1/w,s))+C3);
k2b:=-k2a;Nehmen wir nun positive Werte fuer y an, so folgt die zweite Variante und auf der Anfangskurve fuer s=0 giltC1:=simplify(solve(subs(s=0,k1)=t^2,C1));
C2:=simplify(solve(subs(s=0,w)=1,C2));
C3:=simplify(solve(subs(s=0,k2b)=t,C3));Wir loesen nach s,t auflsgtmp:=solve({x=k1,y=k2b},[s,t]);und erhalten die Loesunglsg:=simplify(subs(s=rhs(lsgtmp[1][1]),w));Wir testen noch unser Ergebnis mittest:=u(x,y)=lsg;
pdetest(test,pde);
subs({x=t^2,y=t},lsg);Also ist mit LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2JkYrLUYjNidGKy1GIzYmLUYsNiVRInVGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUTAmQXBwbHlGdW5jdGlvbjtGJy9GPFEnbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkYvJSlzdHJldGNoeUdGRi8lKnN5bW1ldHJpY0dGRi8lKGxhcmdlb3BHRkYvJS5tb3ZhYmxlbGltaXRzR0ZGLyUnYWNjZW50R0ZGLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGVS1JKG1mZW5jZWRHRiQ2JC1GIzYmLUYsNiVRInhGJ0Y4RjstRj82LVEiLEYnRkJGRC9GSEY6RklGS0ZNRk9GUUZTL0ZXUSwwLjMzMzMzMzNlbUYnLUYsNiVRInlGJ0Y4RjtGQkZCRkItRj82LVEiPUYnRkJGREZHRklGS0ZNRk9GUS9GVFEsMC4yNzc3Nzc4ZW1GJy9GV0Znby1JJm1mcmFjR0YkNigtRiM2JEZnbkZCLUYjNiZGKy1GIzYkLUklbXN1cEdGJDYlRmBvLUkjbW5HRiQ2JFEiMkYnRkIvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRkJGK0ZCLyUubGluZXRoaWNrbmVzc0dRIjFGJy8lK2Rlbm9tYWxpZ25HUSdjZW50ZXJGJy8lKW51bWFsaWduR0ZhcS8lKWJldmVsbGVkR0ZGRkJGK0ZCRitGQg==die Loesung des Anfangswertproblems bestimmt.