1、数学应用软件作业6用Matlab求解微分方程组的解析解和数值解注:上机作业文件夹以自己的班级学号命名,文件夹包括如下上机报告和Matlab程序。上机报告模板如下:科学技术学院上 机 报 告课程名称 数学应用软件 上机项目 用Matlab求解微分方程(组)的解析解和数值解 专业班级 姓 名 学 号 一. 上机目的1.了解求微分方程(组)的解的知识。2.学习Matlab中求微分方程的各种解的函数,如dsolve命令、ode45函数等等,其中注意把方程化为新的方程的形式。3.掌握用matlab编写程序解决求解微分方程的问题。二. 上机容1、求高阶线性齐次方程:y-y-3y+2y=0。2、求常微分方程
2、组 3、求解分别用函数ode45和ode15s计算求解,分别画出图形,图形分别标注标题。 4、求解微分方程先求解析解,在0,1上作图;再用ode45求数值解(作图的图形用“o”表示),在同一副图中作图进行比较,用不同的颜色表示。三. 上机方法与步骤给出相应的问题分析及求解方法,并写出Matlab程序,并有上机程序显示截图。题1:直接用命令dsolve 求解出微分方程的通解。Matlab程序:dsolve(D3y-D2y-3*Dy+2*y,x)题2:将微分方程组改写为 ,再用命令dsolve求解微分方程的通解。Matlab程序:建立timu2.m如下:x,y=dsolve(Dx=5*cos(t)
3、+2*exp(-2*t)-x-y,Dy=-5*cos(t)+2*exp(-2*t)+x-y,x(0)=2,y(0)=0,t)x=simple(x)y=simple(y)题3: 由于所给的微分方程为一阶微分方程,则直接用函数ode45和ode15s求解微分方程的数值解,具体程序如下:(1)Matlab程序:建立M文件fun2.m,如下:function dy=fun2(t,y);dy=zeros(2,1);dy(1)=0.04*(1-y(1)-(1-y(2)*y(1)+0.0001*(1-y(2)2);dy(2)=-10000*y(1)+3000*(1-y(2)2);取t0=0,tf=100,建
4、立程序timu32.m如下:t0=0;tf=100;T,Y=ode45(fun2,0 100,1 1);plot(T,Y(:,1),+,T,Y(:,2),*);title(ode45图形);(2)Matlab程序:建立M文件fun1.m,如下:function dy=fun1(t,y);dy=zeros(2,1);dy(1)=0.04*(1-y(1)-(1-y(2)*y(1)+0.0001*(1-y(2)2);dy(2)=-10000*y(1)+3000*(1-y(2)2);取t0=0,tf=100,建立程序timu3.m如下:t0=0;tf=100;T,Y=ode15s(fun1,0 100
5、,1 1);plot(T,Y(:,1),+,T,Y(:,2),*);title(ode15s图形);题4: Matlab程序:(1)先建立程序timu41.m如下:y=dsolve(Dy=-y+t+1,y(0)=1,t)截图如下:作图:建立程序tuxing41.m如下:ezplot(t + 1/exp(t),0,1)title(t + 1/exp(t)(2)先建立M文件fun3.m,如下:function dy=fun3(t,y)dy=zeros(1,1);dy(1)=-y(1)+t+1;再取t0=0,tf=1,建立程序tuxing42.m如下:t0=0;tf=1;T,Y=ode45(fun3
6、,0 1,1); plot(T,Y,ro);title(比较图); t=0:0.1:1;y=t+1./exp(t);hold onplot(t,y,b);四.上机结果 题1结果为:ans = C4*exp(2*x) + C2*exp(x*(5(1/2)/2 - 1/2) + C3/exp(x*(5(1/2)/2 + 1/2)题2结果为:x = 4*cos(t) - 2/exp(2*t) + 3*sin(t) - (2*sin(t)/exp(t) y = sin(t) - 2*cos(t) + (2*cos(t)/exp(t)题3结果为:题4结果为:解析解为:y = t + 1/exp(t)作图如下:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1