二阶龙格库塔公式推导_数值常微分方程-欧拉法与龙格-库塔法

本文详细介绍了常微分方程数值求解的欧拉法与二阶龙格-库塔法。通过泰勒展开、数值积分推导,展示了两种方法的递推公式,并通过Python代码实现求解具体问题。同时,分析了欧拉法的误差来源、稳定性以及二阶龙格-库塔法的原理,强调了二阶龙格-库塔法相对于欧拉法的精度优势。
摘要由CSDN通过智能技术生成

大三时候在跳蚤市场闲逛,从一位数学院的学长那里买了一些闲书,最近翻出来刚好有李荣华、刘播老师的《微分方程数值解法》和王仁宏老师的《数值逼近》,结合周善贵老师的《计算物理》课程,整理一下笔记。

本文整理常微分方程数值求解的欧拉法与龙格-库塔法。

一般地,动力学系统的时间演化可以用常微分方程的初值问题来描述,例如设一维简谐运动的回复力:

equation?tex=f%3D-ky ,有则运动方程:

equation?tex=y%27%27%3D-%5Cfrac%7Bk%7D%7Bm%7Dy 。令

equation?tex=y_1%3Dy%2C+y_2%3D%5Cfrac%7Bdy_1%7D%7Bdt%7D ,可以将二阶微分方程转化为一阶微分方程组:

equation?tex=%5Cfrac%7Bdy_1%7D%7Bdt%7D%3Dy_2%5C%5C+%5Cfrac%7Bdy_2%7D%7Bdt%7D%3D-%5Cfrac%7Bk%7D%7Bm%7Dy_1

因此本文主要整理一阶常微分方程初值问题的数值解法。

一阶常微分方程初值问题

equation?tex=f%28y%2Ct%29+在区域

equation?tex=G

equation?tex=0%5Cleq+t%5Cleq+T%2C%7Cy%7C%3C%5Cinfty 上连续,对于一个给定的常微分方程

equation?tex=%5Cfrac%7Bdy%7D%7Bdt%7D%3Df%28y%2Ct%29 及初值

equation?tex=y%280%29%3Dy_0 ,求解

equation?tex=y%28t%29 。为了保证解

equation?tex=y%28t%29 存在、唯一且连续依赖初值

equation?tex=y_0 ,要求

equation?tex=f%28y%2Ct%29 满足Lipschitz条件:

存在常数L,使得

equation?tex=%7Cf%28y_1%2Ct%29-f%28y_2%2Ct%29%7C%5Cleq+L+%7Cy_1-y_2%7C 对所有

equation?tex=t%5Cin+%5B0%2CT%5D

equation?tex=u_1%2Cu_2%5Cin+%28-%5Cinfty%2C%2B%5Cinfty%29 成立。

假设

equation?tex=f%28y%2Ct%29 总满足上述条件。常用的近似解法有级数解法等近似解析方法,以及下文整理的数值方法:欧拉法与龙格-库塔法。

欧拉法

将区间

equation?tex=%5B0%2CT%5D 作N等分,每一小区间长度

equation?tex=%5Ctau+%3D+%5Cfrac%7BT%7D%7BN%7D 称为步长,

equation?tex=t_n%3Dn%5Ctau 称为节点。根据初值

equation?tex=y%280%29%3Dy_0 ,代入微分方程可直接解出

equation?tex=t%3Dt_0 的导数值

equation?tex=y%27%3Df%28y_0%2Ct_0%29

推导

1、根据泰勒展开式:

equation?tex=y%28t_1%29%3Dy%28t_0%2B%5Ctau%29%3Dy%28t_0%29%2By%27%28t_0%29%5Ctau%2BO%28%5Ctau%5E2%29

略去二阶小量,得:

equation?tex=y_1%3D+y%28t_0%29%2By%27%28t_0%29%5Ctau%3Dy_0%2Bf%28y_0%2Ct_0%29%5Ctau%5Capprox+y%28t_1%29

以此类推,得到递推公式:

equation?tex=y_%7Bn%2B1%7D%3D+y%28n%29%2Bf%28y_n%2Ct_n%29%5Ctau%2C+n%3D0%2C1%2C2...N-1

2、数值积分推导

equation?tex=y_t%3Dy_0%2B%5Cint_%7Bt_o%7D%5E%7Bt%7Df%28y_%5Ctau%2C%5Ctau%29d%5Ctau 可得:

equation?tex=y%28t_1%29%3Dy_0%2B%5Cint_%7Bt_o%7D%5E%7Bt_1%7Df%28y_%5Ctau%2C%5Ctau%29d%5Ctau ,使用左矩形积分得:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值