常微分方程的求解与定性分析实验报告.docx
- 文档编号:26810159
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:10
- 大小:145.04KB
常微分方程的求解与定性分析实验报告.docx
《常微分方程的求解与定性分析实验报告.docx》由会员分享,可在线阅读,更多相关《常微分方程的求解与定性分析实验报告.docx(10页珍藏版)》请在冰豆网上搜索。
常微分方程的求解与定性分析实验报告
常微分方程的求解与定性分析实验报告
一、实验综述
1、实验目的及要求
●归纳和学习求解常微分方程(组)的基本原理和方法;
●掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析;
●熟悉MATLAB软件关于微分方程求解的各种命令;
●通过范例学习建立微分方程方面的数学模型以及求解全过程;
●通过该实验的学习,使学生掌握微分方程(组)求解方法(解析法、欧拉法、梯度法、改进欧拉法等),对常微分方程的数值解法有一个初步了解,同时学会使用MATLAB软件求解微分方程的基本命令,学会建立微分方程方面的数学模型。
这对于学生深入理解微分、积分的数学概念,掌握数学的分析思维方法,熟悉处理大量的工程计算问题的方法是十分必要的。
2、实验仪器、设备或软件
电脑、matlab7.0
二、实验过程(实验步骤、记录、数据、分析)
实验内容:
根据实验内容和步骤,完成以下实验,要求写出实验报告(实验目的→问题→数学模型→算法与编程→计算结果→分析、检验和结论)
1.求微分方程的解析解,并画出它们的图形。
y'=y+2x,y(0)=1,0 m=dsolve('Dy=y+2*x','y(0)=1','x') ezplot(m,[01]) m= 3*exp(x)-2*x–2 1.求微分方程 的数值解,要求编写求解程序。 functiondy=vdp1000(t,y) dy=zeros(2,1); dy (1)=y (2); dy (2)=-y (1)+0.1*y (1)^3; [T,Y]=ode15s('vdp1000',[010],[00]); plot(T,Y(: 1),'-') 3.Rossler微分方程组: 当固定参数b=2,c=4时,试讨论随参数a由小到大变化(如a∈(0,0.65))而方程解的变化情况,并且画出空间曲线图形,观察空间曲线是否形成混沌状? functionr=rossler(t,x) globala; globalb; globalc; r=[-x (2)-x(3);x (1)+a*x (2);b+x(3)*(x (1)-c)]; globala; globalb; globalc; b=2; c=4; t0=[0,200]; fora=0: 0.1: 0.6 [t,x]=ode45('rossler',t0,[0,0,0]); subplot(1,2,1); plot(t,x(: 1),'r',t,x(: 2),'g',t,x(: 3),'b'); title('x(红色),y(绿色),z(蓝色)随t的变化情况');xlabel('t'); subplot(1,2,2); plot3(x(: 1),x(: 2),x(: 3)) title('相图');xlabel('x');ylabel('y');zlabel('z'); pause end 结果显示: a=0: a=0.1: a=0.2: a=0.3: a=0.4: a=0.5: 结果分析: 从图像可以看出,当a=0时,微分方程的解(x,y,z)收敛与(0,0.5,0.5);当a=0.1时,(x,y,z)仍收敛与(0,0.5,0.5),只是收敛速度减慢;当a=0.2时,(x,y,z)已发散,周期性变化;随着a的增大,(x,y,z)接近其极限环的速度加快,空间曲线成混沌状。 4.炮弹发射角的确定 炮弹发射视为斜抛运动,已知初始速度为200m/s,若要击中水平距离360m、在垂直距离160m的目标,当忽略空气阻力时,发射角应为多大? 此时炮弹的运行轨迹如何? 要求: (1)建立在忽略空气阻力情况下的描述炮弹发射轨迹的数学模型; (2)用Matlab软件求解方程和微分方程; (3)结合实际对解的合理性进行分析。 进一步思考: 如果要考虑水平方向的阻力,且设阻力与(水平方向)速度成正比,系数为0.1(1/s),结果又如何? 此时炮弹的运行轨迹如何? 解: (1)忽略空气阻力时,设发射角为a,炮弹的飞行时间为t 水平方向: Vx=V0*cosa=200*cos(a) 竖直方向: Vy=V0*sina=200*sin(a) 得到: x=Vx*t=200*cos(a)*t=360 y=Vy*t-1/2*g*t^2=200*sin(a)*t-1/2*9.8*t^2=160 得到炮弹的路程为Y=360*tan(a)-4.9*(360/200/cos(a)).^2-160 编程为: functionY=fun2(a) Y=360*tan(a)-4.9*(360/200/cos(a)).^2-160; functionY=fun3(a0,a1,n,tol) a (1)=a0; a (2)=a1; b=1; i=2; while(abs(b)>eps*a(i)) a(i+1)=a(i)-fun2(a(i))*(a(i)-a(i-1))/(fun2(a(i))-fun2(a(i-1))); b=a(i+1)-a(i); i=i+1; if(i>n)error('nisfull'); end end disp(i-2); Y=a(i); fun3(0.5,1,100,1e-6) 结果为: ans= 0.4633 (3)结果合理,符合实际 进一步思考: 建立模型如下: =-0.1dx/dt 代入初始条件可以得出x=-10*200cosθ*exp(-0.1t)+10*200cosθ 建立myfun6函数如下: functionY=fun6(a) Y=200*sin(a)*(-10*log(1-360/2000/cos(a)))-4.9*((-10*log(1-360/2000/cos(a))).^2)-160 建立fun7函数如下: functionY=fun7(a0,a1,n,tol) a (1)=a0; a (2)=a1; b=1; i=2; while(abs(b)>eps*a(i)) a(i+1)=a(i)-fun6(a(i))*(a(i)-a(i-1))/(fun6(a(i))-fun6(a(i-1))); b=a(i+1)-a(i); i=i+1; if(i>n)error('nisfull'); end end disp(i-2); Y=a(i); 输入: >>fun7(0.5,1,100,1e-6) 结果: ans= 0.4297 三、结论 1、实验结果 编程及实验结果分析如上 2、分析讨论 1 通过此次实验,学习了微分方程求解的方法,并学会了建立微分方程的数学模型,使用求解微分方程的基本指令; 2 实验题目中的第三四道题,综合性较强,需要考虑多方面的程序,感觉较难,通过查找相关例题以及和同学讨论得以解决; 3 微分方程的求解问题较常见,因为许多的微分方程人为解起来较难,而使用matlab可以很轻松得解答。 因此掌握使用matlab求解微分方程很重要,在今后的学习中要多练习,熟练使用matlab软件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微分方程 求解 定性分析 实验 报告