资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,微分方程MATLAB求解,第1页,第1页,微分方程解析解办法,第2页,第2页,例题1:求解微分方程组初值问题,clear,syms t x,x1,x2,x3=dsolve(Dx1=-x1+x3+1,Dx2=x1+2*x2-1,.,Dx3=-4*x1+3*x3+2,x1(0)=1,x2(0)=0,x3(0)=1),t1=0:.1:5;,xt1=subs(x1,t,t1);xt2=subs(x2,t,t1);xt3=subs(x3,t,t1);,plot(t1,xt1,t1,xt2,t1,xt3),第3页,第3页,微分方程数值积分,MATLAB中用来进行常微分方程数值积分函数有好各种,比如ode23,ode45,等,ode是常微分方程(ordinary differential equation)缩写。它们都用来解形如,一阶微分方程组在给定初始值y0时解。对入门者而言,会一个ode函数就行。,第4页,第4页,微分方程,求解函数,第5页,第5页,clear,close all,f1=(t,x)-1,0,1;1,2,0;-4,0,3*x+1;-1;2;,t_final=5;x0=1;0;1;t,x=ode23(f1,0,t_final,x0);,plot(t,x),第6页,第6页,第7页,第7页,第8页,第8页,【例】,第9页,第9页,第10页,第10页,Simulink,简介,1990 年前后出现最早 Simulink,当初名为SimuLAB,1992 年改为 Simulink,Simulink 名字有两重含义,仿真(simu)与模型连接(link),odegroup 命令能够打开自定义模块集,Simulink,相关模块,第11页,第11页,惯用模块:,第12页,第12页,第13页,第13页,微分方程,Simulink,建模与求解,建立起微分方程 Simulink 模型,能够用 sim()函数对其模型直接求解,得出微分方程数值解,第14页,第14页,【例7-30】,第15页,第15页,Simulink模型图,第16页,第16页,微分方程转换,单个高阶常微分方程处理办法,第17页,第17页,第18页,第18页,微分方程数值积分【例5-3-7】,用数值积分法求解微分方程,设初始时间t0=0;终止时间tf=3;初始条件y(0)=1,y(0)=0.,解:先将方程化为两个一阶微分方程方程组,其左端为两维变量一阶导数。,第19页,第19页,微分方程化为原则形式,写成矩阵形式为,其中 为取代变量y变量向量,为,x,导数,在程序中用xdot表示。,x,初始条件为,这就是待积分微分方程组原则形式。,用MATLAB语句表述为:,xdot=0,1;-t,0*x+0;1*(1-t2/pi2);,第20页,第20页,【例5-3-7】数值解程序,将微分方程右端写成一个exn547f.m函数程序,内容下列:,function xdot=exn547f(t,x),u=1-(t.2)/(pi2);,xdot=0,1;-t,0*x+0;1*u;%向量导数方程,主程序exn547下列,它调用MATLAB中现成数值积分函数ode23进行积分。,clf,t0=0;tf=3*pi;x0=1;0;%给出初始值,t,x=ode23(exn547f,t0,tf,x0)%此处显示结果,y=x(:,1);%y为x第一列,plot(t,y),grid%绘曲线,xlabel(t),ylabel(y(t),第21页,第21页,数值解程序exn547运营结果,程序运营结果见图5-37。这个数值积分函数是按精度要求自动选择步长。它默认精度为1.e-3,因此图中积分结果是可靠。,若要改变精度要求,可在调用命令中增长备选变元,详细做法可键入help ode23查找。,第22页,第22页,Simulink模型图,第23页,第23页,【例】,第24页,第24页,Simulink模型图,第25页,第25页,【例】,第26页,第26页,Simulink模型图,第27页,第27页,
展开阅读全文