資源描述:
《MATLAB求解微分方程.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、求微分方程的解析解dsolve(‘方程1’,‘方程2’,…‘方程n’,‘初始條件’,‘自變量’)記號:在表達(dá)微分方程時,用字母D表示求微分,D2、D3等表示求高階微分.任何D后所跟的字母為因變量,自變量可以指定或由系統(tǒng)規(guī)則選定為確省MATLAB命令:dsolve(‘Dx=1+x*x’)結(jié)果:x=tan(t+C1)MATLAB命令:[x,y]=dsolve('D2x+2*Dx=x+2*y-exp(-t)',...'Dy=4*x+3*y+4*exp(-t)');結(jié)果:x=-6*t*exp(-t)+C1*exp(-t)+C2*exp((1+6^(1/2))*t)+C3
2、*exp((1-6^(1/2))*t)y=6*t*exp(-t)-C1*exp(-t)+4*C2*exp((1+6^(1/2))*t)+2*C2*exp((1+6^(1/2))*t)*6^(1/2)+4*C3*exp((1-6^(1/2))*t)-2*C3*exp((1-6^(1/2))*t)*6^(1/2)+1/2*exp(-t)用Matlab求微分方程的數(shù)值解[t,x]=solver(’f’,ts,x0,options)ode45ode23ode113ode15sode23s由待解方程寫成的m-文件名ts=[t0,tf],t0、tf為自變量的初值和終值函數(shù)的
3、初值自變量值函數(shù)值用于設(shè)定誤差限(缺省時設(shè)定相對誤差10-3,絕對誤差10-6),命令為:options=odeset(’reltol’,rt,’abstol’,at),rt,at:分別為設(shè)定的相對誤差和絕對誤差.STEP1令y1=x,y2=y1’STEP2建立M文件functiondy=vdp(t,y)dy=[y(2);1000*(1-y(1)^2)*y(2)-y(1);]STEP3調(diào)用MATLAB函數(shù)ODE15S[T,Y]=ode15s('vdp',[03000],[20]);plot(T,Y(:,1))圖形結(jié)果使用匿名函數(shù),STEP2和STEP3可以合并為
4、vdp2=@(t,y)[y(2),1000*(1-y(1)^2)*y(2)-y(1)]';%vdp2為匿名函數(shù)[T,Y]=ode15s(vdp2,[0,3000],[2,0]);plot(T,Y(:,1))選定a=0.3,b=2,c=3初值x(0)=0,y(0)=0,z(0)=0a=0.3;b=2;c=3;rossler=@(t,y)[-y(2)-y(3),y(1)+a*y(2),b+(y(1)-c)*y(3)]';ts=[0100];x0=[000];[t,y]=ode45(rossler,ts,x0);plot(t,y(:,1),'r',t,y(:,2),'
5、b',t,y(:,3),'g');figureplot3(y(:,1),y(:,2),y(:,3))微分方程求解時參數(shù)傳遞方法一假設(shè)上例中參數(shù)a,b,c的值在運行時確定,我們可以這樣建立函數(shù)文件rosslersolve.mfunctionrosslersolve(a,b,c)rossler1=@(t,y,a,b,c)[-y(2)-y(3),y(1)+a*y(2),b+(y(1)-c)*y(3)]';rossler2=@(t,y)rossler1(t,y,a,b,c);ts=[0100];x0=[000];[t,y]=ode45(rossler2,ts,x0);p
6、lot3(y(:,1),y(:,2),y(:,3))Matlab命令行輸入>>rosslersolve(0.2,2,3)求解參數(shù)a,b,c的值為0.2,2,3時的rossler方程參數(shù)傳遞方法二Lorenz=@(t,y,beta,rho,sigma)...[-beta*y(1)+y(2)*y(3)-rho*(y(2)-y(3))-y(1)*y(2)+sigma*y(2)-y(3)];ts=[0,100];x0=[001e-10];[t,y]=ode45(Lorenz,ts,x0,[],8/3,10,28);plot(y(:,1),y(:,2));figure;p
7、lot(y(:,1),y(:,3));figure;plot(y(:,2),y(:,3));