数值分析RungeKuttaFields方法.docx
- 文档编号:30775319
- 上传时间:2023-08-23
- 格式:DOCX
- 页数:14
- 大小:427.66KB
数值分析RungeKuttaFields方法.docx
《数值分析RungeKuttaFields方法.docx》由会员分享,可在线阅读,更多相关《数值分析RungeKuttaFields方法.docx(14页珍藏版)》请在冰豆网上搜索。
数值分析RungeKuttaFields方法
数值分析第七次程序作业
PB09001057孙琪
【问题】
应用RKF45或RKF54方法,设计实现自适应方法,求解如下常微分方程初值问题:
初值步长取为h=0.01.在自适应方法中步长的选取采用第二种策略。
在解溢出前终止。
程序的输出:
解的范围[1,?
]
提示输入一个介于上述范围的值,应用简单的两点线性插值计算出对应的函数值
【自适应龙格—库塔—费尔贝格方法】
在龙格—库塔方法中设计一个自动调节步长的方法,Fehlberg在四阶方法和五阶方法中选择参数从而得到具有相同函数赋值点的不同阶数的两个公式,因此只需要六个函数赋值,便得到一个基于步长控制的局部截断误差的估计,所得到的龙格—库塔—费尔贝格方法是五阶的。
这些公式给出解的不同的近似值:
误差项为:
其中公式中要求的多项式系数都已给出。
同时,另一个通用的每步控制误差的公式是:
此时同样的公式既被用来增加步长又被用来减短步长。
【自适应龙格—库塔—费尔贝格方法算法】
主体公式如上所述,具体算法在课本435页,在此不多做叙述了。
【实验】
通过实验可以发现:
b的取值不能够小于1.05太多,否则在做判断时只会输出较少的项或者会得到无穷大,因为最终会发现t的值在循环过较大的有限多项后得到的值都在1.04附近,如果取b小于这个数,那么在开始得到的d的值就是一个负数,当这个负数较小时就会在进行有限项时不符合判读,无法输出我们事先指定多项。
同时
的取值也会影响最终的结果,因为
的大小在判断中很重要,直接影响k的前进还是停留重新计算直到满足对误差的要求,下面列举实验结果:
一、取h=0.01,采取第一种策略时有:
取M=100,
,b=2得到:
二、取h=0.01,采取第二种策略
即有采用公式:
取M=100,
,b=2得到:
【结果】
由上面的两种策略,最终我们都得到了正确的结果,但采用第二种策略时我们发现在得到最终正确结果时,相对于第一种策略还是节省了一些步骤的,这就体现出了第二种策略的优势。
画出t在1到1.05的图像可以看到:
纵轴代表x的值,横轴代表t的值,我们可以看到这与我们计算得到的结果是相同的,所以我们得到了正确的结果。
【Mathematica程序】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 分析 RungeKuttaFields 方法