[ 常微分方程 ] 03 微分方程数值解

今天学习常微分方程的数值解,学习视频指路:微分方程数值解,感谢本视频让我突击学会了数值解(教材真的看不懂www)。本文作为该视频的学习笔记,加入了个人的一些理解,同时参考了王高雄老师的《常微分方程》第四版,如有理解不当地方还请各位指正。

文章目录

  • 一、 欧拉方法(Euler法)
    • 01 Euler法基本格式
    • 02 差分形式拓展
    • 03 Euler法的改进
      • (1)左矩形公式
      • (2)右矩形公式
      • (3)梯形公式
    • 04 实际运行效果
    • 05 欧拉法的评价
  • 二、 龙格—库塔方法(Runge—Kutta)
    • 01 龙格—库塔方法基本介绍
    • 02 相容性条件
    • 03 龙格—库塔方法的评价

一、 欧拉方法(Euler法)

01 Euler法基本格式

对于微分方程的初值问题 { d y d x = f ( x , y ) y ( x 0 ) = y 0 \begin{cases}\frac{dy}{dx}=f(x,y)\\ y(x_0)=y_0\end{cases} { dxdy=f(x,y)y(x0)=y0数值方法本质上就是希望能够找出一系列点去逼近 y = f ( x ) y=f(x) y=f(x)这条曲线。

微分方程的近似
假设这个微分方程的解曲线在 [ 0 , T ] [0,T] [0,T]上有定义,我们将区间划分为 n n n个区间,即 n + 1 n+1 n+1个节点,并令步长 h = T n h=\frac{T}{n} h=nT,记节点为 t k t_k tk,满足 0 < t 0 < t 1 < . . . < t n = T 0<t_0<t_1<...<t_n=T 0<t0<t1<...<tn=T
为了方便推导符号的统一性(其实用 y y y也是可以的),我们记初值问题为 { u ( t 0 ) = u 0 u ′ ( t 0 ) = f ( t 0 , u 0 ) \begin{cases}u(t_{0})=u_{0}\\u'(t_{0})=f(t_0,u_{0})\end{cases} { u(t0)=u0u(t0)=f(t0,u0)在下一个节点处进行泰勒展开有 u ( t 1 ) = u ( t 0 + h ) = u ( t 0 ) + u ′ ( t 0 ) h + O ( h 2 ) u(t_1)=u(t_0+h)=u(t_0)+u'(t_0)h+O(h^2) u(t1)=u(t0+h)=u(t0)+u(t0)h+O(h2)忽略二阶小量,令一个新的符号表示近似值 u 1 = u ( t 0 ) + u ′ ( t 0 ) h u_1=u(t_0)+u'(t_0)h u1=u(t0)+u(t0)h由于在递推过程中,精确解本身就是难以得到的,所有的逼近过程都是用近似值 u 1 = u 0 + f ( t 0 , u 0 ) h ≈ u ( t 1 ) u_1=u_0+f(t_0,u_0)h\approx u(t_1) u1=u0+f(t0,u0)hu(t1)以此类推,得到递推公式
u i + 1 = u i + f ( t i , u i ) h ( i = 0 , 1 , . . . , n − 1 ) (1-1) u_{i+1}=u_i+f(t_{i},u_{i})h\quad (i=0,1,...,n-1)\tag{1-1} ui+1=ui+f(t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值