2022年常微分方程数值解法课程设计分析方案.docx

上传人:C****o 文档编号:12958102 上传时间:2022-04-27 格式:DOCX 页数:16 大小:374.37KB
返回 下载 相关 举报
2022年常微分方程数值解法课程设计分析方案.docx_第1页
第1页 / 共16页
2022年常微分方程数值解法课程设计分析方案.docx_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《2022年常微分方程数值解法课程设计分析方案.docx》由会员分享,可在线阅读,更多相关《2022年常微分方程数值解法课程设计分析方案.docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数值分析课程设计 题目:常微分方程的数值解法组员:邓全飞 202120320215许曦202120320218熊鲁平 202120320213余佳明 202120320216专业:信息与运算科学指导老师:刘唐伟16 / 14一、摘要 3二、设计目的 3三、理论基础 31. 欧拉公式【 3】 32. 改进 Euler方法【 3】33. 三阶龙格 - 库塔方法【 3】34. 四阶龙格 - 库塔方法【 3】4四、程序代码及运算结果 41、用欧拉法求解52、用改进欧拉法求解:63、用 3 阶龙格库塔求解74、用 4 阶龙格库塔求解96、欧拉方法与改进欧拉方法、3 阶龙格库塔法以及4 阶龙格库塔法得出的

2、解得比较;10五、数值分析设计的 GUI界面 13六、结果分析 14七、设计心得 14八、参考文献 14一、摘要在 matlab环境下熟识的运用运算机编程语言并结合龙格库塔法的理论基础对常微分方程初值问题进行求解,在运行完程序后以及对运行结果做出各 方面的分析和比较;二、设计目的用熟识的运算机语言编程上机完成用欧拉方法、改进欧拉方法、3 阶龙格库塔法以及 4 阶龙格库塔法求解常微分方程初值问题;三、理论基础1. 欧拉公式 【3】在点将作 Taylor 绽开,得,那么当 h 充分小时,略去误差项, 用近似替代、近似替 代, 并留意到,便得上述方法称为 Euler 方法;2. 改进 Euler 方

3、法【3 】在应用梯形方法的迭代公式进行运算时,每迭代一次都要重新运算函数 的值,且仍要判定何时可以终止或转下一步运算;为了掌握运算量和简化算法,通常只迭代一次就转入下一步运算;详细说,我们先用Euler公式求得一个初步的近似值,称之为猜测值,然后用梯形方法的迭代公式作一次迭代得,即将校正一次,这样建立的猜测- 校正方法称之为改进的Euler 方法:猜测:,校正:.3. 三阶龙格 - 库塔方法 【3 】类似前面改进的 Euler方法公式的推导方法,将在处作 Taylor 绽开,然后再将在处作 Taylor绽开,只要将两个绽开式前四项相同便有;于是得到三阶龙格 - 库塔公式为:4. 四阶龙格 -

4、库塔方法 【3】类似前面三阶龙格 - 库塔的推导方法,假如每步运算四次函数f x=x_span1:h:x_span2;y1=y0 ;for n=1:lengthx-1yn+1=yn+h*fevalfun,xn,yn;endx=x ;y=y ;在 MATLAB输入以下程序: clear all fun=inline y2*x ; x,y=cwfa1fun,0,1,-2,0.1; x,y plotx,y,r+- ans =0-2.00000.1000-2.00000.2000-1.96000.3000-1.88320.4000-1.77680.5000-1.65050.6000-1.51430.7

5、000-1.37670.8000-1.24400.9000-1.12021.0000-1.0073结果及其图象:图 1 欧拉法解2、用改进欧拉法求解: 程序如下:建立函数文件 cwfa2.mfunction x,y=cwfa2fun,x_span,y0,h x=x_span1:h:x_span2;y1=y0 ;for n=1:lengthx-1k1=fevalfun,xn,yn;yn+1=yn+h*k1;k2=fevalfun,xn+1,yn+1;yn+1=yn+h*k1+k2/2;endx=x ;y=y ;在 MATLAB输入以下程序: clear all fun=inline y2*x;

6、x,y=cwfa2fun,0,1,-2,0.1; x,y plotx,y,r+- ans =0-2.00000.1000-1.98000.2000-1.92270.3000-1.83450.4000-1.72390.5000-1.60010.6000-1.47110.7000-1.34320.8000-1.22080.9000-1.10661.0000-1.0018结果及其图像:图 3 改进欧拉解3、用 3 阶龙格库塔求解程序如下:建立函数文件 cwfa4.mfunction x,y=cwfa4fun,x_span,y0,h x=x_span1:h:x_span2;y1=y0 ;for n=1

7、:lengthx-1k1=fevalfun,xn,yn;k2=fevalfun,xn+h/2,yn+h/2*k1;k3=fevalfun,xn+h,yn+h*2*k2-k1;yn+1=yn+h*k1+4*k2+k3/6;endx=x ;y=y ;在 Matlab 输入以下程序:clear all;fun=inline y2*x;x,y=cwfa4fun,0,1,-2 ,0.1;x,yplotx,y, b*- ans =0-2.00000.1000-1.98030.2000-1.92320.3000-1.83500.4000-1.72430.5000-1.60020.6000-1.47070.7

8、000-1.34240.8000-1.21960.9000-1.10501.0000-1.0000结果及图像:图 3 3 阶龙格- 库塔解4、 用 4 阶龙格库塔求解程序如下:建立函数文件 cwfa3.mfunction x,y=cwfa3fun,x_span,y0,h x=x_span1:h:x_span2;y1=y0 ;for n=1:lengthx-1 k1=fevalfun,xn,yn;k2=fevalfun,xn+h/2,yn+h/2*k1;k3=fevalfun,xn+h/2,yn+h/2*k2;k4=fevalfun,xn+1,yn+h*k3;yn+1=yn+h*k1+2*k2+

9、2*k3+k4/6;endx=x ;y=y ;在 MATLAB输入以下程序: clear all; fun=inline y2*x ; x,y=cwfa3fun,0,1,-2 ,0.1; x,y plotx,y, b*- ans =0-2.00000.1000-1.98020.2000-1.92310.3000-1.83490.4000-1.72410.5000-1.60000.6000-1.47060.7000-1.34230.8000-1.21950.9000-1.10501.0000-1.0000结果及其图象:图 4 4 阶龙格- 库塔解6、欧拉方法与改进欧拉方法、 3 阶龙格库塔法以及

10、4 阶龙格库塔法得出的解得比较;x=0:0.1:1 ;y0= -2.0000-1.9802-1.9231-1.8349-1.7241-1.6000-1.4706-1.3423-1.2195-1.1050-1.0000y1= -2.0000-2.0000-1.9600-1.8832-1.7768-1.6505-1.5143-1.3767-1.2440-1.1202-1.0073y2= -2.0000-1.9800-1.9227-1.8345-1.7239;-1.6001-1.4711-1.3432-1.2208-1.1066-1.0018y3= -2.0000-1.9803-1.9232-1.8

11、350-1.7243;-1.6002-1.4707-1.3424-1.2196-1.1050-1.0000y4= -2.0000-1.9802-1.9231-1.8349-1.7241;-1.6000-1.4706-1.3423-1.2195-1.1005-1.1000;plotx,y0,r*-hold on,plotx,y1,b-,title精确解与欧拉方法比较 plotx,y0,r+-hold on,plotx,y2,b-,title精确解与改进欧拉方法比较 plotx,y0,r+-hold on,plotx,y3,b-,title精确解与 3 阶龙格库塔方法比较 plotx,y0,r+-

12、hold on,plotx,y4,b-,title精确解与 4 阶龙格库塔方法比较 图 5 精确解与欧拉法比较图 6 精确解与改进欧拉法比较图 7 精确解与 3 阶- 龙格库塔方法比较图 8 精确解与 4 阶龙格- 库塔方法比较五、数值分析设计的 gui 界面六、结果分析由以上的各种方法与精确解的比较图可以看出在运算精度上,四阶龙格- 库塔方法的误差最小,其次是三阶龙格 - 库塔方法,再次之就是改进欧拉方法,欧拉方法误差就比较大,所以四阶龙格 - 库塔方法得到正确的精度;而在运算量上面,相应地,很明显的四阶龙格- 库塔方法也是最大,三阶龙格- 库塔次之,其后为改进欧拉方法,欧拉方法运算量最小;

13、这样的结果,说明白运用以上三种方法时,其运算量的多少与精度的大小成正比;我们在实际运用与操作中,可以依据实际情形,挑选这4 种方法中的其中一种最适合的,追求精度的话,可以使用三阶或四阶龙格 - 库塔方法;而改进的欧拉方法,在精度上和运算量上都表现得很杰出,能够满意一般情形;而欧拉方法更主要的是适用于对的估量上,相应的,精度就有所欠缺;以上的挑选,都取决于详细的情形;七、设计心得这次试验花了较多的时间,先是挑选方程方面遇到了困难:有些方程在运行过程中会不断出错,错误的缘由有许多,有的是在输入格式上有错,有的是在步长和初值的取法上出错;在试了十多个方程之后最终找到一个自己中意的;接下来的运行中也显

14、现了一些错误;在用第一个方程求精确解时由于没有区分点乘和乘导致错误,有些方程精确解时可以运行但是在用欧拉方程和改进的欧拉方法时就会报错,有的方程即使求的出来结果与精确解的误差是很大的,明显是错误的;仍有就是刚开头犯了一个低级错误:把原函数直接代入欧拉求解这样当然是不正确的;取初值对函数图像的影响很大,假如初值取的不合适误差也会特别大,所以要合理的挑选初值,在几种求解方法中只有龙格库塔的求解与精确值最为接近几乎是重合的;通过的后面的不同步长求解的比较发觉步长越小与精确值越接近;总之在做这次试验中对学习数学有了更多的体会,那就是肯定要仔细,不能丝毫马虎,一个小小的错误就会导致全部的数据不能运行;八、参考文献1 刘卫国. MATLAB程序设计与应用程 .北京:高等训练出版社, 20212 奚如成 数值分析方法 中国科学技术高校出版社;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁