DesignMat Uge 10 F2010Preben Alsholm, 15/4 2010Pakkerrestart;if ssystem("hostname")=[0,"PC-PKA1"] then
libname:="C:/Documents and Settings/alsholm/Dokumenter/Kopi af DropBox/DMat",libname
elif ssystem("hostname")=[0,"pc-pka"] then
libname:="F:/DMat",libname
elif ssystem("hostname")=[0,"alsholm-PC"] then
libname:="F:/DMat",libname
else print("Fremmed computer. Skriv selv libname.")
end if;with(DMat):with(DEtools):
with(plots):Eksempel 1Differentialligningen:ligning:=diff(x(t),t,t)+3*diff(x(t),t)+2*x(t)=20*t*exp(3*t);Den fuldst\303\246ndige l\303\270sning kommer ikke umiddelbart p\303\245 en p\303\246n form i Maple 13:dsolve(ligning);Her er den fuldst\303\246ndige l\303\270sning p\303\245 en p\303\246nere formcombine(collect(%,exp));En partikul\303\246r l\303\270sning ved "h\303\245ndkraft":ansats:=x(t)=(A*t+B)*exp(3*t);S\303\246tter ansatsen ind i differentialligningeneval(ligning,ansats);Samler mht. til funktionstyper:collect(%,[t,exp(3*t)]);L\303\270ser denne identitet som en s\303\245dan mht. de ubekendte konstanter A og B:solve(identity(%,t),{A,B});subs(%,ansats);Eksempel 2Differentialligningen:ligning:=diff(x(t),t,t)+3*diff(x(t),t)+2*x(t)=4*t^2;Den fuldst\303\246ndige l\303\270sning:dsolve(ligning);En partikul\303\246r l\303\270sning ved "h\303\245ndkraft":ansats:=x(t)=A*t^2+B*t+C;eval(ligning,ansats);collect(%,t);solve(identity(%,t),{A,B,C});subs(%,ansats);Eksempel 3Differentialligningen:ligning:=diff(x(t),t,t)+3*diff(x(t),t)+2*x(t)=3*exp(-2*t);Den fuldst\303\246ndige l\303\270sning kommer ikke umiddelbart p\303\245 en p\303\246n form i Maple 13:dsolve(ligning);Vi masserer den lidt:collect(combine(expand(%)),[t,exp(-2*t)]);og indf\303\270rer en ny konstant (samme navn som den gamle):fuld:=subs(_C1=-3-_C1,%);"H\303\245ndkraft":Her er resonans, da -2 er rod i karakterpolynomiet, s\303\245 den basale ansats m\303\245 modificeres (ganges med t):ansats:=x(t)=A*t*exp(-2*t);eval(ligning,ansats);solve(%,{A});xp:=rhs(subs(%,ansats));baggrund:=plot(xp,t=0..5,color=blue,caption=typeset("Baggrund med bl\303\245t: ",xp)):MultiAnimate(plot,[rhs(fuld),t=0..5,-1..1],[[_C1=-2..2.,frames=5,trace=4],[_C2=-2..2.,frames=5]]):
display(%,baggrund);Eksempel 4Differentialligningen:ligning:=diff(x(t),t,t)+3*diff(x(t),t)+2*x(t)=10*cos(t);Fuldst\303\246ndig l\303\270sning:fuld:=dsolve(ligning);En partikul\303\246r l\303\270sning ved "h\303\245ndkraft":ansats:=x(t)=A*cos(t)+B*sin(t);eval(ligning,ansats);collect(%,[cos,sin]);solve(identity(%,t),{A,B});xp:=rhs(subs(%,ansats));baggrund:=plot(xp,t=0..7,color=blue,caption=typeset("Baggrund med bl\303\245t: ",xp)):MultiAnimate(plot,[rhs(fuld),t=0..7],[[_C1=-2..2.,frames=5,trace=4],[_C2=-2..2.,frames=5]]):
display(%,baggrund);Eksempel 5Den komplekse g\303\246ttemetode p\303\245 eksempel 4.Vi betragter i stedetligning:=diff(x(t),t,t)+3*diff(x(t),t)+2*x(t)=10*exp(I*t);En partikul\303\246r l\303\270sning ved "h\303\245ndkraft":ansats:=x(t)=A*exp(I*t);eval(ligning,ansats);solve(%,{A});subs(%,ansats);Realdelen l\303\270ser differentialligningen i Eksempel 4:map(evalc@Re,%);Eksempel 6Differentialligningen:ligning:=diff(x(t),t,t)+3*diff(x(t),t)+2*x(t)=2*sin(t)*exp(-2*t);Fuldst\303\246ndig l\303\270sning:dsolve(ligning);P\303\245 p\303\246nere form:fuld:=combine(expand(%));Vi bruger nu den komplekse g\303\246ttemetode til at finde en partikul\303\246r l\303\270sning ved h\303\245ndkraft og betragter derfor:ligning:=diff(x(t),t,t)+3*diff(x(t),t)+2*x(t)=2*exp((-2+I)*t);ansats:=x(t)=A*exp((-2+I)*t);eval(ligning,ansats);collect(%,A,factor);solve(%,{A});subs(%,ansats);Imagin\303\246rdelen l\303\270ser den oprindelige reelle ligning:applyop(evalc@Im,2,%);MultiAnimate(plot,[exp(t)*rhs(fuld),t=0..10,thickness=2,color=COLOR(RGB,(_C2+2)/4,(_C1+_C2+4)/8,(_C1+2)/4),caption=typeset("L\303\270sninger ganget med ",exp(t))],[[_C1=-2..2.,frames=5,trace=4],[_C2=-2..2.,frames=5,trace=4]]);Eksempel 7Differentialligningenligning:=diff(x(t),t,t,t)+2*diff(x(t),t,t)+diff(x(t),t)+2*x(t)=12*sin(2*t);Fuldst\303\246ndig l\303\270sning:dsolve(ligning);Den l\303\270sning, der opfylder begyndelsesbetingelsen LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzY2LUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JKG1mZW5jZWRHRiQ2JC1GIzYkLUkjbW5HRiQ2JFEiMEYnL0YzUSdub3JtYWxGJ0Y+Rj4tSSNtb0dGJDYtUSI9RidGPi8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGRi8lKXN0cmV0Y2h5R0ZGLyUqc3ltbWV0cmljR0ZGLyUobGFyZ2VvcEdGRi8lLm1vdmFibGVsaW1pdHNHRkYvJSdhY2NlbnRHRkYvJSdsc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLyUncnNwYWNlR0ZVLUYsNiVRI3gwRidGL0YyLUZBNi1RIixGJ0Y+RkQvRkhGMUZJRktGTUZPRlEvRlRRJjAuMGVtRicvRldRLDAuMzMzMzMzM2VtRictRkE2LVEifkYnRj5GREZHRklGS0ZNRk9GUUZpbi9GV0ZqbkYrLUZBNi1RIidGJ0Y+RkRGR0ZJRktGTUZPRlEvRlRRLDAuMTExMTExMWVtRidGYG9GNUZALUYsNiVRI3gxRidGL0YyRmVuRl1vRitGYW9GYW9GNUZALUYsNiVRI3gyRidGL0YyRj4=:res:=dsolve({ligning,x(0)=x0,D(x)(0)=x1,(D@@2)(x)(0)=x2});En partikul\303\246r l\303\270sning ved h\303\245ndkraft og brug af den komplekse g\303\246ttemetode:ligning:=diff(x(t),t,t,t)+2*diff(x(t),t,t)+diff(x(t),t)+2*x(t)=12*exp(2*I*t);ansats:=x(t)=A*exp(2*I*t);eval(ligning,ansats);factor(%);solve(%,{A});subs(%,ansats);applyop(evalc@Im,2,%);MultiAnimate(plot,[rhs(res),t=0..10,caption=typeset(x(0)=x0," ",D(x)(0)=x1," ",(D@@2)(x)(0)=x2)],[[x2=-2..2.,frames=5,trace=4],[x1=-2..2.,frames=5],[x0=-2..2,frames=3]]);Bem\303\246rk nedenfor apostrofferne, der skal s\303\270rge for, at evaluering af rhs(res) sker f\303\270r Explore (og plot) g\303\245r i gang:'Explore'('plot'(rhs(res),t=0..10,caption=typeset(x(0)=x0," ",D(x)(0)=x1," ",(D@@2)(x)(0)=x2)));%;Animation: Forskellige h\303\270jresiderligning:=diff(x(t),t,t)+4*diff(x(t),t)+13*x(t)=A*cos(n*t);res:=dsolve({ligning,x(0)=1,D(x)(0)=a});f:=unapply(subs(res,x(t)),t):tangent:=f(0)+D(f)(0)*t:r1:=-1..4: r2:=-1..4:p1:=MultiAnimate(plot,[tangent,t=r1,r2,color=blue, thickness=2,caption=typeset("Begyndelsesv\303\246rdier ",x(0) = 1," og ", D(x)(0)=a)],[a=[$-5..5],A=[$0..4],n=[$0..4]]):p2:=MultiAnimate(plot,[f(t),t=r1,r2, thickness=2],[a=[$-5..5],A=[$0..4],n=[$0..4]]):display(p1,p2); ligning:=diff(x(t),t,t)+a*diff(x(t),t)+13*x(t)=A*cos(n*t);res:=dsolve({ligning,x(0)=1,D(x)(0)=1});f:=unapply(subs(res,x(t)),t):r1:=0..2*Pi:MultiAnimate(plot,[[f(t),A*cos(n*t)],t=r1, thickness=2,color=[red,blue]],[A=[$1..5],n=[$1..5],a=[$2..7]]);