DiploMat 1 Uge 7Preben Alsholm, 8/10 2008Pakkerrestart;if ssystem("hostname")=[0,"PC-PKA1"] then
libname:="C:/Documents and Settings/alsholm/Dokumenter/DMat/libDMat",libname
elif ssystem("hostname")=[0,"pc-pka1"] then
libname:="J:/DMat/libDMat",libname
elif ssystem("hostname")=[0,"alsholm-PC"] then
libname:="F:/DMat/libDMat",libname
else print("Fremmed computer. Skriv selv libname.")
end if;#libname:="J:/DMat/libDMat",libname;with(DMat):with(DEtools): with(plots):Indledende eksemplerEksempel AligningA:=diff(x(t),t)=3*x(t);dsolve(ligningA);subs(%,ligningA);%;dsolve({ligningA,x(0)=47});Eksempel BligningB:=diff(x(t),t,t)+7*diff(x(t),t)+12*x(t)=10*sin(t);dsolve(ligningB);L:=dsolve({ligningB,x(0)=1,D(x)(0)=0});plot(rhs(%),t=0..30);Eksempel 0 Generel separabel differentialligningligning0:=diff(x(t),t)=f(t)*g(x(t));Med f og g ukendte funktioner er der selvf\303\270lgelig ikke s\303\245 meget vi kan g\303\270re, men alligevel lidt:dsolve(ligning0);L\303\270sningen er skrevet p\303\245 implicit form.Eksempel 1 Separabel differentialligningligning1:=diff(x(t),t)=5*t^4/(x(t)-3)^2;Differentialligningen fort\303\246ller, hvordan man kan finde h\303\246ldningen (x'(t) ) for tangenten til l\303\270sningens graf i ethvert punkt (t, x ) af planen:DEplot(ligning1,x(t),t=-2..2,x=3..7,title="H\303\246ldningsfeltet for ligning1");Vi tegner 3 l\303\270sninger sammen med h\303\246ldningsfeltet:(Vi undertrykker advarsler, der blot skal fort\303\246lle os, at l\303\270sningernes definitionsomr\303\245de ikke omfatter hele plotteintervallet).w:=interface(warnlevel=0);DEplot(ligning1,x(t),t=-1.2..2,[[x(0)=4],[x(0)=5],[x(0)=6]],x=3..7,color=grey,linecolor=[red,blue,maroon],title="3 l\303\270sninger sammen med h\303\246ldningsfeltet");Animering:p1:=DEplot(ligning1,x(t),t=-1.2..2,x=3..7,color=grey):animate(DEplot,[ligning1,x(t),t=-1.2..T,[[x(0)=4],[x(0)=5],[x(0)=6]],x=3..7,arrows=none,linecolor=[red,blue,maroon],title="3 l\303\270sninger sammen med h\303\246ldningsfeltet"],T=-1.19..2,background=p1);Animering, hvor x(0) \303\246ndres fra 4 til 6:
p1:=DEplot(ligning1,x(t),t=-2...2,x=3..7,color=grey):animate(DEplot,[ligning1,x(t),t=-2..2,[[x(0)=x0]],x=3..7,arrows=none,linecolor=red,title="L\303\270sning med skiftende begyndelsesv\303\246rdi sammen med h\303\246ldningsfeltet"],x0=4..6,background=p1);###
interface(warnlevel=w): #advarsler sl\303\245s til igen
###Vi kan finde den fuldst\303\246ndige l\303\270sning ved brug af dsolve. Her f\303\245s den fuldst\303\246ndige l\303\270sning p\303\245 eksplicit form:dsolve(ligning1);Der kom 3 forskellige formler i dette tilf\303\246lde.Det kan (som i dette tilf\303\246lde) undertiden v\303\246re en god id\303\251 ogs\303\245 at se l\303\270sningen p\303\245 implicit form:dsolve(ligning1,implicit);Vi ser nu hvorfor der kom 3 forskellige formler: Det skyldes, at man i ovenst\303\245ende implicitte resultat skal l\303\270se en binom ligning af 3. grad, nemligisolate(%,(x(t)-3)^3);Denne ligning har indenfor de komplekse tal 3 l\303\270sninger:solve(%,{x(t)});Holder vi os til reelle tal (hvad vi g\303\270r!) er kun den ene brugbarremove(has,[%],I);Den l\303\270sning, der opfylder begyndelsesbetingelsen x(0) = 6 findes s\303\245ledes:res:=dsolve({ligning1,x(0)=6});L\303\270sningen kan kontrolleres vha. odetest:odetest(res,ligning1);Nullet betyder, at vi har fat i en l\303\270sning.Direkte ved "h\303\245ndkraft" kan l\303\270sningen kontrolleres ved inds\303\246ttelse s\303\245ledes:subs(res,ligning1);%;L\303\270sningen blev ogs\303\245 tegnet af DEplot ovenfor, men her kommer den s\303\245 igen:plot(rhs(res),t=-2..3);Eksempel 2 Separabel differentialligningligning2:=diff(x(t),t)=sqrt(1-x(t)^2)/(1+t^2);DEplot(ligning2,x(t),t=-5..5,x=-1..1,title="H\303\246ldningsfeltet for ligning2");Bem\303\246rk med det samme, at differentialligningen har to konstante l\303\270sninger, nemlig x(t) = 1 og x(t) = -1. Disse finder dsolve ikke!Alle andre er givet veddsolve(ligning2);Mellemregning:dsolve(ligning2,implicit);Den l\303\270sning, der opfylder begyndelsesbetingelsen x(0) = 1/2 findes s\303\245ledes:res:=dsolve({ligning2,x(0)=1/2});plot(rhs(res),t=-10..10,caption="Maples l\303\270sning");Det ser jo nydeligt ud, men faktisk er resultatet galt p\303\245 det t-interval, hvor x(t) aftager, da det af differentialligningen fremg\303\245r, at x'(t) er ikke-negativ.N\303\245r l\303\270sningen opn\303\245r v\303\246rdien 1, m\303\245 x'(t) = 0 og l\303\270sningen forbliver 1.Skiftet sker ved t-v\303\246rdien bestemt ved at arctan(t)+Pi/6=Pi/2;dvs. for t lig medtan(Pi/2-Pi/6);eller fundet direkte:solve(rhs(res)=1,t);Den korrekte l\303\270sning f\303\245s i dette tilf\303\246lde ved sammens\303\246tning af den ved separation fundne l\303\270sning med den konstante l\303\270sning 1, som f\303\270lgerLSN:=piecewise(t<sqrt(3),rhs(res),1);plot(LSN,t=-5..5,title="Den korrekte l\303\270sning");L\303\270sningen n\303\245r ikke den anden konstante l\303\270sning x = -1 p\303\245 noget tidspunkt:Limit(rhs(res),t=-infinity): %=value(%);Vi tegner 3 l\303\270sninger sammen med h\303\246ldningsfeltet:DEplot(ligning2,x(t),t=-5..5,[[x(0)=-1/2],[x(0)=0],[x(0)=1/2]],x=-0.99...0.99,color=grey,linecolor=[red,blue,maroon],title="3 l\303\270sninger sammen med h\303\246ldningsfeltet");Animering:p1:=DEplot(ligning2,x(t),t=-5..5,x=-1...1,color=grey):animate(DEplot,[ligning2,x(t),t=-5..T,[[x(0)=0],[x(0)=1/2]],x=-0.99...0.99,arrows=none,linecolor=[blue,maroon],title="2 l\303\270sninger sammen med h\303\246ldningsfeltet"],T=-4.9..5,background=p1);Eksempel 3 Line\303\246r differentialligningligning3:=diff(x(t),t)+2*t*x(t)=2*t^3;Den fuldst\303\246ndige l\303\270sning:dsolve(ligning3);Mellemregning:dsolve(ligning3,useInt);Vi beder Maple om at gange parentesen ud (men ikke g\303\270re noget ved exp):expand(%,exp);Vi beder Maple om kun at at udregne integralet i eksponentialfunktionen:subsindets(%,specfunc(anything,exp),value);value(%);expand(%);combine(%);Den l\303\270sning, der opfylder begyndelsesbetingelsen x(0) = 1 findes s\303\245ledes:res:=dsolve({ligning3,x(0)=1});plot(rhs(res),t=-2..2);Vi tegner 5 l\303\270sninger sammen med h\303\246ldningsfeltet:DEplot(ligning3,x(t),t=-2..2,[[x(0)=-1],[x(0)=0],[x(0)=1],[x(0)=2],[x(0)=3]],color=grey,linecolor=[red,blue,maroon,aquamarine,sienna],title="5 l\303\270sninger sammen med h\303\246ldningsfeltet");Animering:p1:=DEplot(ligning3,x(t),t=-2..2,x=-1..3,color=grey):animate(DEplot,[ligning3,x(t),t=-2..T,[[x(0)=-1],[x(0)=0],[x(0)=1],[x(0)=2],[x(0)=3]],arrows=none,linecolor=[red,blue,maroon,aquamarine,sienna],title="5 l\303\270sninger sammen med h\303\246ldningsfeltet"],T=-1.99..2,background=p1);Animering, hvor x(0) \303\246ndres fra -1 til 3:p1:=DEplot(ligning3,x(t),t=-2..2,x=-1..3,color=grey):animate(DEplot,[ligning3,x(t),t=-2..2,[[x(0)=x0]],arrows=none,linecolor=red,title="L\303\270sning med skiftende begyndelsesv\303\246rdier sammen med h\303\246ldningsfeltet"],x0=-1..3,background=p1,trace=10);Eksempel 4 Line\303\246r differentialligningligning4:=(3+t)*diff(x(t),t)+x(t)=(6+2*t)*exp(-t);Den fuldst\303\246ndige l\303\270sning:dsolve(ligning4);Mellemregning:dsolve(ligning4,useInt);Vi beder Maple om at gange parentesen ud (men ikke g\303\270re noget ved exp):expand(%,exp);Vi beder Maple om kun at at udregne integralet i eksponentialfunktionen:subsindets(%,specfunc(anything,exp),value);Vi vil nu gerne have eksponentialfunktionen under integraltegnet simplificeret:simplify(%);value(%);Den l\303\270sning, der opfylder begyndelsesbetingelsen x(-2) = 0 f\303\245s s\303\245ledesres:=dsolve({ligning4,x(-2)=0});plot(rhs(res),t=-3..10,-10..10);Vi tegner 5 l\303\270sninger sammen med h\303\246ldningsfeltet:DEplot(ligning4,x(t),t=-2.9..10,[[x(-2)=0],[x(-1)=0],[x(0)=0],[x(1)=0],[x(0)=-5]],x=-10..8,color=grey,linecolor=[red,blue,maroon,aquamarine,sienna],title="5 l\303\270sninger sammen med h\303\246ldningsfeltet");Animering, hvor begyndelsesv\303\246rdien x(0) \303\246ndres fra -5 til 7:p1:=DEplot(ligning4,x(t),t=-2.9..10,x=-10..8,color=grey,title="5 l\303\270sninger sammen med h\303\246ldningsfeltet"):animate(DEplot,[ligning4,x(t),t=-2.9..10,[[x(0)=x0]],x=-10..8,arrows=none,linecolor=red,title="L\303\270sning med skiftende begyndelsesv\303\246rdi sammen med h\303\246ldningsfeltet"],x0=-5..7,background=p1,trace=10);