数学实验报告利用MALTAB计算常微分方程数值解..docxVIP

数学实验报告利用MALTAB计算常微分方程数值解..docx

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数学实验报告利用MALTAB计算常微分方程数值解.

实验二 常微分方程数值解一、火箭飞行器㈠问题描述小型火箭初始质量为1400kg,其中包括1080kg燃料,火箭竖直向上发射时燃料燃烧率为18kg/s,由此产生32000N的推力,火箭引擎在燃料用尽时关闭,设火箭上升时空气阻力正比于速度的平方,比例系数为0.4kg/m,求引擎关闭瞬间火箭的高度,速度,加速度及火箭达到最高点时的高度和加速度,并画出高度、速度、加速度随时间变化的图形。㈡方法与公式1、简要分析本题的求解需要用到常微分方程,而整个过程又被分为两个阶段:火箭加速上升阶段和燃料燃尽后减速的阶段。由题目易知第一个阶段持续时间列出第一阶段的方程组:设M0为火箭本身质量,m为燃料质量,g为重力加速度 = 9.8m/,燃料燃烧率为a,空气阻力的比例系数为k,F为推进力。M0 = 1400-1080 = 320kg; 初值。由以上各式可以求出t=时火箭的速度。再求解第二阶段: 可以求出火箭速度降为0的时刻。将整个过程中的时间向量以及速度向量联合起来,利用第三章所学插值与数值积分的方法可以求得任意时刻火箭的近似高度。2、方法求解常微分方程时,我分别采用了自己编写的欧拉公式、改进欧拉公式、4级4阶龙格-库塔公式,以及MATLAB自带的龙格-库塔方法,求解数值积分时采用辛普森公式。由于Matlab自带的Simpson公式是自适应的,因此需要使用自己在上一次实验时所编的Simpson公式。㈢结果与分析1、各种公式的对比首先,我作出了各种不同公式计算得到的火箭速度随时间变化的图像,图如下:从图中可以看出,各种公式计算得到的结果基本一致,为确定其区别,将图像放大,放大约2000 倍后,得到下图:分析:从图中可以看出,自编欧拉公式距离MATLAB自带龙格-库塔公式最远,精度最差;自编的改进欧拉公式和自编的龙格-库塔公式结果基本一致,两者中自编龙格-库塔公式距MATLAB自带龙格-库塔公式的结果稍近。与之前的分析基本一致。然而产生自编龙格-库塔公式与MATLAB自带龙格-库塔公式之间的差距的原因还未知。由于MATLAB自带龙格-库塔公式精度较高,因此以下各项实验不再计算其它几项公式的结果。2、第一阶段火箭关闭瞬间的速度关闭前瞬间的加速度此时火箭的高度3、第二阶段由初始速度以及常微分方程可以求得火箭达到最高点的时间约为71.3s;此时火箭的高度加速度4、整体过程下图为火箭加速度与时间的关系。由图可以看出,火箭一开始的加速度很大,随着时间的推移,火箭的燃料有所减少,与此同时速度有所上升。两者中前者使火箭的加速度增大,后者使其减小,综合作用,最终体现为加速度先略有上升,然后慢慢减小。当火箭中燃料燃尽时,火箭丧失推动力,因而加速度急剧减小为负值。此后火箭速度不断减小,导致火箭所受阻力逐渐减小,因而加速度的绝对值有所减小,直到最终火箭速度降为零,火箭不受阻力,仅受重力,加速度为重力加速度。 下图为火箭速度与时间的关系: 此图可以看作是由第一幅图对时间积分所得结果,本图的斜率对应第一幅图的值。第一阶段火箭加速度为正,因此速度不断增加,只是增加的速度不断减慢。燃料燃尽后,加速度变为负值,因此速度开始急剧下降,与此同时下降的速率不断减小。最终火箭速度降为0。 下图为火箭高度与实践的关系:此图可以看作是由第二幅图对时间积分所得结果,本图的斜率对应第一幅图的值。一开始或减速度较小,因此高度缓慢增加,之后增加的速度不断提升,直到火箭的燃料耗尽,此后速度不断减小,但仍为正值,因此火箭继续向上飞行,只是高度提升的速度逐渐变慢。知道最终火箭速度降为零。3、总结这是自己接触数学实验以来第一次解决相对复杂的实际问题,总体上还是有些不适应。虽然最终得以成功解决,但是编程的逻辑以及脚本之间的层次没有考虑清楚,需要在之后的学习中不断加强相关能力。当然也有不小收获:(1)了解了MATLAB解决常微分方程组的原理与步骤;(2)进一步熟悉了MATLAB的相关操作,包括画图、调试、编写脚本等;(3)加强了对之前插值与数值积分的理解,学习将其应用到实际问题的解决中。㈣程序清单1、第一阶段的微分方程组function dx = fly(t,y)M0 = 320;a = 18; k = 0.4;g = 9.8;F = 32000;dx = [(-k*y(1)^2 + F - (M0 + y(2))*g)/(M0+y(2)) ; - a*sign(y(2))];2、第二阶段微分方程组function dx = fly1(t,y)M0 = 320; k = 0.4;g = 9.8;F = 0;a = 0;dx = [(-k*y(1)^2 + F - (M0 + y(2))*g)/(M0+y(2)) ; -a];3、自编欧拉公式function y = Euler(fun,ts,x0)NumO

文档评论(0)

stzs + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档