常微分方程是描述运动,变化规律的重要数学方法,可以分为初值问题和边值问题。在数学建模比赛中科学类赛题解法中尤为常见。
在高等数学中,我们学习了一些典型的常微分方程经典的解析解法,然而,在实际问题中的常微分方程往往比较复杂,获得解析解较为困难甚至不可能实现。
因此,通过数值解法获取达到所需精度的解成为在实际问题中解决常微分方程的重要手段。
本文仅仅讨论一阶常微分方程常用数值解法,常用解法欧拉法,改进欧拉法,龙格库塔法都会在下文中涉及,一阶常微分方程有如下标准形式:
在一般的情况下(1)式有无数组解,(2)式为确定解的初值条件。
本文所介绍的解法同属于差分方法,或离散变量的方法。
方法大致流程如下:
根据节点值的使用我们可分为:
单步法:
在计算上的近似值时只使用了前一个节点上的近似值。
多步法:
在计算上的近似值时除了节点之外还需要等其他节点的信息。
根据递推格式我们可以分为:
显式方法:
即右端不包含,给出了即可计算出。
隐式方法:
右端包含,在给出之后解关于的方程。
在解常微分方程时我们常常会思考以下三个问题来确保我们最终得到的解是否满足我们的要求:
方法推导。我们将采用哪种递推格式计算我们的解。
收敛性。差分方程在递推过程中是否会逼近微分方程的初值条件下的解。
误差传播。在递推过程中我们带入的时各个节点的近似解。在递推过程中对下一节点的近似值会使用前面节点的近似值,以及在计算机内部浮点数的表达方式,会不可避免产生局部误差和截断误差,误差会随着递推的进行而向后传播,我们需要评估这些误差是否会对后续计算产生严重影响。
欧拉方法是最简单的单步显式方法,称为显式欧拉法。
一阶常微分方程有如下标准形式:
设在区间[a,b]上节点等距划分,即,将在上进行泰勒展开,将高阶小量舍去,有 并将精确解析解替换成近似值,有,上述递推式为欧拉方法的递推式。
由此,从出发,根据题目的初值条件,有:
一般的有(n=0,1,2...)
欧拉方法的格式为:
算法:
1.输入a,b,h,
2.x=a,y=
3.for i in 1,2,3...,n
y=y+hf(x,y)
x=x+h
输出(x,y)
从积分的思想来理解上述的欧拉方法:
,根据,并将近似值带入,有,这就是欧拉方法。
在上述积分式近似采用的是节点,若此时更换为节点,即有,此时问题变为此有关的方程求根问题(该方程求根可采用二分法,迭代法,牛顿下山法等数值方法,会在后续文章当中介绍),由于这里在递推式右端出现了,此方法称为隐式欧拉法。
上述欧拉法和隐式欧拉法从积分的思想来看,一个是采用了前一节点的信息,一个则是采用了后一节点的信息,无论是哪种方法,都只是以该区间[,]的边界信息,会有较大的误差,综合以上观点,同时为了充分利用两个节点信息,修改递推公式为n=0,1,2,3...,同样式对关于的方程求根,该方法称为梯形法。
在上述梯形法中,计算结果有了更高的精度,但该方法为隐式方法,对方程求解计算量较大,为了减少计算量,我们观察式子,左右两边均含有,若我们将其中一个通过其他方式求出,而不是采用解方程的方式求出,则可以大大减少我们的计算量。于是,我们可以将右端的通过欧拉法求出,带入上述方程,隐式欧拉法的隐式性质将不复存在。
计算量大大减少,算法如下:
(1)
(2)
将上述(1)式带入(2)式中,有:
改进欧拉法为单步显式法,减少计算量的同时也保证了一定的精度。改进欧拉法是数学建模比赛中求解常微分方程的一个重要工具。
在了解高阶泰勒方法之前,先来介绍整体截断误差和局部截断误差的概念。
整体截断误差:在处,计算得到的近似值与准确值的差别叫做该数值方法的在的整体截断误差。正如前文所说的误差传播特性整体截断误差不仅与当前节点有关,还与节点有关,该误差表现为整体性。
局部截断误差:对一般单步显式方法而言,局部截断误差为,在这里,假设,即假设节点不存在误差。若一个显式单步法局部截断误差,则称该单步显式方法有P阶精度。
对一般显式单步法,我们有一般形式,如何构造Φ,使得精度更高?
对进行泰勒展开,有取,由一阶常微分方程一般形式可知,该式可写为,原式,有p阶精度。
高阶泰勒方法需要大量计算,一般运用较少。
由改进欧拉法可以知道,改进欧拉法中中是由两个节点的斜率求平均而来,由此启发我们是不是可以在两个节点之间尽可能取多的斜率进行加权来计算?
一般格式如下:
以此类推
根据所需精度将未知数一一求出(证明略,求解过程略)
在这里,本文直接给出4阶经典龙格库塔法的标准性质供大家使用:
我们通常说的龙格库塔方法即为此式。
解常微分方程是数模比赛中所必备的数学方法,本文介绍了几种常用的方法。
了解这些方法有利于我们在比赛时选取合适的解法进行求解。目前,在我们的常用的编程语言matlab以及python中都有常微分方程的求解器,我们在实际比赛中不需要真正去编写一个完完全全的常微分方程求解器。但是了解背后的数学原理还是非常有必要的。
这可以提高我们在比赛中对所求结果的正确性有较为敏感的感知。
最后,祝各位读者在今后的数模比赛中取得理想的成绩!
马世拓,男,湖北武汉人,曾在华中科技大学数模基地进行数学建模竞赛的教学培训与竞赛指导工作,在2022美赛中指导多名学生获得F奖、M奖,录制有课程《数学建模导论》。
为使同学们省去美赛报名的繁琐流程
现针对美赛特推出美赛辅助报名!
↓↓
2023年美国数学建模竞赛报名开始!
通过辅助报名过程简单,直接在线报名组队,使用微信/支付宝即可缴费,无须VISA等国外银行卡,很大程度地方便了学生的报名
额外赠送大量资料、视频、课程、软件以及赛题翻译等服务(报名后无需等待立即开始学习、而且报名同学同享)
赛氪连续10年为美赛辅助报名提供服务,截至目前已成功为10万余名学生完成了美赛辅助报名!成为目前国内最大、最靠谱的辅助报名平台!
2022年美赛一共产生44个O奖,通过赛氪辅助报名的同学喜提7个O奖,占O奖总数比例高达16%,一支队伍兼得了Rachel Carson Award,一支队伍兼得了SIAM Award!
凡是报名参加“美赛辅助报名以及证书打印邮寄活动”的同学,均可享受以下服务:
1、数学建模资料大礼包(历年美赛特等奖论文、UMAP等资料,Matlab、SPSS等软件包);
2、免费获得价值500元的美赛专属课程一门,3人同享(共30学时,包含:数学建模入门、数学实验、初等数学模型、优化数学模型、排队论模型、数学处理模型、智能优化算法、赛题解析、学术论文的写作与投稿九大方面的内容)。
3、免费获得2020-2021年美国大学生数学建模竞赛真题的视频讲解。(报名成功后也在上方基础课程中进行学习,自动开通课程);
4、2023年美赛降至,为帮助同学们在这场国际性赛事中拿到心仪的奖项,特邀请美赛数模教学名师、历年O奖得主创办了“美赛备考经验分享”系列公开课,及“美赛赛前模拟实战训练营”系列课程,欢迎加入我们。
扫描下方二维码即可报名
集体报名780元/队(含证书),集体报名需10队以上,集体报名表见下面附件。报名表格和交费截图发送至美赛辅助报名邮箱:1870544744@qq.com
说明:美赛证书每人一份,证书上队员名字排名不分先后,各参赛队员具有同等的贡献率。
辅助报名负责人QQ:1870544744
客服微信号:saikr-zhang
美赛辅助报名接待群:1014064840