常微分方程的求解与定性分析.docx
- 文档编号:4084316
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:8
- 大小:37.63KB
常微分方程的求解与定性分析.docx
《常微分方程的求解与定性分析.docx》由会员分享,可在线阅读,更多相关《常微分方程的求解与定性分析.docx(8页珍藏版)》请在冰豆网上搜索。
常微分方程的求解与定性分析
学生实验报告(4)
学生姓名
陈宋学号008888
同组人:
无
实验项目
Matlab程序设计与作图
□必修■选修□演示性实验□验证性实验■操作性实验□综合性实验
实验地点
H110
实验仪器台号
D02
指导教师
谢建
实验日期及节次
2011-04-18第八九十节
、实验综述
.归纳和学习求解常微分方程(组)的基本原理和方法;
2.掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析;
3.熟悉MATLAB软件关于微分方程求解的各种命令;
4.通过范例学习建立微分方程方面的数学模型以及求解全过程;
通过该实验的学习,使学生掌握微分方程(组)求解方法(解析法、欧拉法、梯度法、改进欧拉法等),对常微分方程的数值解法有一个初步了解,同时学会使用
MATLAB软件求解微分方程的基本命令,学会建立微分方程方面的数学模型。
这对于学生深入理解微分、积分的数学概念,掌握数学的分析思维方法,熟悉处理大量的工程计算问题的方法是十分必要的。
二、实验过程(实验步骤、记录、数据、分析)
1.开启MATLAB软件平台,开启MATLAB编辑窗口;
2•根据问题,建立的线性规划模型,并编写求解规划模型的M文件;
3.保存文件并运行;
4.观察运行结果(数值或图形),并不断地改变参数设置观察运行结果;
5.根据观察到的结果和体会,写出实验报告。
三、实验要求与任务
根据实验内容和步骤,完成以下实验,要求写出实验报告(实验目的-问题-
数学模型-算法与编程-计算结果-分析、检验和结论)
1.求微分方程的解析解,并画出它们的图形。
y'=y+2x,y(0)=1,0 程序如下: 由y=dsolve('Dy=y+2*x','y(0)=1','x')得出解析解y=-2*x-2+3*exp(x) 建立函数m文件: functiony=myfun4(x) y=-2*x-2+3*exp(x) 图形如下: 2.求微分方程 首先建立函数 7(0)=0;u(0)=0的数值解,要求编写求解程序。 t=[010] M文件: functiondy=myfun5(t,y) dy=zeros(2,1); dy(i)=y (2); dy (2)=0.1*(y (1)A3)-y (1); 输入命令: [T,Y]=ode15s('myfun5',[0,10],[0,1]); plot(T,丫(: 1),'-',T,丫(: 2),'*'); 图形如下: 3.Rossler微分方程组: X=-y-Z I *y=X+ay I z=b中z(x-c) 当固定参数b=2,c=4时,试讨论随参数a由小到大变化(如a€(0,0.65))而 方程解的变化情况,并且画出空间曲线图形,观察空间曲线是否形成混沌状? 首先 建立函数M文件rossler.m,在其中用x (1)表示x,用x (2)表示y,用x(3)表示乙 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.02: 0.65 [t,x]=ode45('rossler',t0,[0,0,0]); a 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'); pauseend 08, 当a=0时,(x,y,z)收敛于(0,0.5,0.5)当a=0.05时,(x,y,z)仍然收敛,但收敛速度较小。 其收敛速度已 当a=0.12时,(x,y,z)仍然收敛(准确的说,只能说具有收敛的趋势, 大大降低)。 法曲為舟俸色)匿邑㈱1砒舷 04 '0.2 Q -0.3 -06 -06 0.6 八2(]50100150200 a=0.l2 0丄 0\ ■05 a=0.16时,(x,y,z)已经发散。 但是, (x,y,z)并不是发散于无穷大,而是周期性变化。 a=0.16 2 ■2 0 501001麵200 411. a=U.2O 15, 05 *1 2 £ 50 100 150 7-5 a-034 8・O・36 我也/沌)丄潘a刪变化AS说 I. &I■j. ■Q50IDOla200 4.炮弹发射角的确定 炮弹发射视为斜抛运动,已知初始速度为200m/s,若要击中水平距离360m、 垂直距离160m的目标,当忽略空气阻力时,发射角应为多大? 此时炮弹的运行轨迹如何? 要求: 建立在忽略空气阻力情况下的描述炮弹发射轨迹的数学模型; 用Matlab软件求解方程和微分方程; 结合实际对解的合理性进行分析。 进一步思考: 如果要考虑水平方向的阻力,且设阻力与(水平方向)速度成正比,系数为 0.1(1/s),结果又如何? 此时炮弹的运行轨迹如何? 建立模型 x=200cos0*t 2 y=200sin0*t-1/2*9.8t2 函数myfun6.m文件如下: functiony=myfun6(x) y=360*tan(x)-4.9*(360/200/cos(x))A2-160; 建立Newton2.m函数如下: functiony=newton2(x0,x1,n,tol) x (1)=x0; x (2)=x1; b=1; i=2; while(abs(b)>eps*x(i)) x(i+1)=x(i)-myfun6(x(i))*(x(i)-x(i-1))/(myfun6(x(i))-myfun6(x(i-1))); b=x(i+1)-x(i); i=i+1; if(i>n)error('nisfull'); end end disp(i-2); y=x(i); 运行结果如下: >>nevton2(i0,5,IjlOOjle-5) 7 ans= 0,4633 建立模型如下: A哙 代入初始条件可以得出x=-10*200cos0*exp(-0.1t)+10*200cos0 建立myfun7函数如下: functiony=myfun7(x)y=200*sin(x)*(-10*log(1-360/2000/cos(x)))-4.9*((-10*log(1-360/2000/cos(x))).八2)-160 建立newton2函数如下: functiony=newton2(x0,x1,n,tol)x (1)=x0; x (2)=x1; b=1; i=2; while(abs(b)>eps*x(i)) x(i+1)=x(i)-myfun7(x(i))*(x(i)-x(i-1))/(myfun7(x(i))-myfun7(x(i-1))); b=x(i+1)-x(i); i=i+1; if(i>n)error('nisfull');end end disp(i-2); y=x(i); 运行结果如下: >>newton2(0.5,1,100,le-6) 441.4577 441.457? -L1369e-013 ans 0,429? 错后进行调制、再进行运行得到结果,结束。 Matlab。 心得体会: 通过自己的一次次锻炼,总算对matlab的线性规划有所了解了,虽然操作中有很多错误,尤其是模型没有建好所带来的错误,在一次次的修改调试中不断提升自己的能力,希望自己进一步加强学习 四、指导教师评语及成绩: 成绩: 指导教师签名:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微分方程 求解 定性分析