数值计算方法第七章—常微分方程初值问题的数值解法

本文介绍了常微分方程初值问题的数值解法,包括欧拉法、龙格—库塔法等,详细讨论了各种方法的公式、阶数和收敛性。通过实例展示了改进欧拉法和经典龙格—库塔法的应用。
摘要由CSDN通过智能技术生成

常微分方程初值问题的数值解法

本文参考书为马东升著《数值计算方法》

引言

未知函数为一元函数的微分方程叫常微分方程,讨论一阶常微分方程的初值问题
{ y ′ = f ( x , y ) y ( x 0 ) = y 0 \begin{cases}y'=f(x,y)\\y(x_0)=y_0\end{cases} { y=f(x,y)y(x0)=y0

  • 李普希兹条件
    ∣ f ( x , y 1 ) − f ( x , y 2 ) ∣ ≤ L ∣ y 1 − y 2 ∣ |f(x,y_1)-f(x,y_2)|\le L|y_1-y_2| f(x,y1)f(x,y2)Ly1y2
    x 0 ∈ [   a   , b   ] x_0\in [\ a\ ,b\ ] x0[ a ,b ] f ( x , y ) f(x,y) f(x,y) x x x 连续且关于 y y y 满足李普希兹条件,则对所有 x ∈ [   a   , b   ] x\in[\ a\ ,b\ ] x[ a ,b ] 及任何实数 y 1 y_1 y1 y 2 y_2 y2 均成立,则初值问题在区间 [   a   , b   ] [\ a\ ,b\ ] [ a ,b ] 上有唯一解

欧拉法

欧拉公式

P 0 ( x 0 , y 0 ) P_0(x_0,y_0) P0(x0,y0) 做曲线 y ( x ) y(x) y(x) 的切线 y ′ ( x 0 ) y'(x_0) y(x0) 与直线 x = x 1 x=x_1 x=x1 交于 P 1 ( x 1 , y 1 ) P_1(x_1,y_1) P1(x1,y1) ,用 y 1 y_1 y1 作为 y ( x ) y(x) y(x) 上的点 y ( x 1 ) y(x_1) y(x1) 的近似值。然后过 P 1 ( x 1 , y 1 ) P_1(x_1,y_1) P1(x1,y1) 作切线,这样一直继续下去

  • 欧拉公式导出
    y n + 1 = y n + h f ( x n , y n ) y_{n+1}=y_n+hf(x_n,y_n) yn+1=yn+hf(xn,yn)
    其中 h = x n + 1 − x n h=x_{n+1}-x_n h=xn+1xn

例: 求解初值问题
{ y ′ = y − 2 x y   ,   0 < x < 1 y ( 0 ) = 1 \begin{cases} y'=y-\dfrac {2x}y\ ,\ 0<x<1\\ y(0)=1 \end{cases} y=yy2x , 0<x<1y(0)=1
解: 欧拉公式为
y n + 1 = y n + h ( y n − 2 x n y n ) y_{n+1}=y_n+h(y_n-\dfrac {2x_n}{y_n}) yn+1=yn+h(ynyn2xn)
取步长为 h = 0.1 h=0.1 h=0.1 n = 0 , 1 , ⋯   , 9 n=0,1,\cdots,9 n=0,1,,9 时,有
n = 0 y 1 = y 0 + h ( y 0 − 2 x 0 y 0 ) = 1 + 0.1 ( 1 − 2 × 0 1 ) = 1.1 n = 1 y 2 = y 1 + h ( y 1 − 2 x 1 y 1 ) = 1.1 + 0.1 ( 1.1 − 2 × 0.1 1.1 ) ≈ 1.191818 ⋮ n=0\quad y_1=y_0+h(y_0-\dfrac {2x_0}y_0)=1+0.1(1-\dfrac {2\times 0}1)=1.1\\ n=1\quad y_2=y_1+h(y_1-\dfrac {2x_1}y_1)=1.1+0.1(1.1-\dfrac {2\times 0.1}{1.1})\approx 1.191818\\ \vdots n=0y1=y0+h(y0y2x00)=1+0.1(112×0)=1.1n=1y2=y1+h(y1y2x11)=1.1+0.1(1.11.12×0.1)1.191818

  • 局部截断误差和阶

    设第 n n n 步是准确的, 即 y ( x n ) = y n y(x_n)=y_n y(xn)=yn ,将 y ( x n + 1 ) − y n + 1 y(x_{n+1})-y_{n+1} y(xn+1)y

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值