数值分析复习笔记-第九章-常微分方程初边值问题

本文介绍了微分方程的两类问题——初值问题和边界值问题,并重点探讨了欧拉法及其改进,包括欧拉法、后退欧拉法、梯形欧拉法以及预估校正法。此外,还讲解了Runge-Kutta公式,特别是二阶Runge-Kutta方法的构造过程和特点,以及单步法的收敛性和稳定性概念。

Chapter9 常微分方程初边值问题

9.1 前言

  1. 对微分方程,主要有两类问题:
    • 初值问题
      { y′=f(x,y)y(a)=y0 \left \{ \begin{aligned} y'=f(x,y) \\ y(a)=y_0 \end{aligned} \right. { y=f(x,y)y(a)=y0
    • 边界值问题
      { y′=f(x,y)y(a)=α,y(b)=β \left \{ \begin{aligned} y'&=f(x,y) \\ y(a)&=\alpha,y(b)=\beta \end{aligned} \right. { yy(a)=f(x,y)=α,y(b)=β
  2. 其中,x∈[a,b]x\in[a,b]x[a,b]y∈Rmy\in R^myRm
    { m=1,微分方程m>1,微分方程组 \left \{ \begin{aligned} m&=1,微分方程 \\ m&>1,微分方程组 \end{aligned} \right. { mm=1,微分方程>1,微分方程组
  3. 本章节考点:
    • 欧拉公式及其改进:欧拉公式、局部截断、p阶方法
    • 龙格-库塔公式:泰勒级数、二阶Runge-kutta
    • 单步法的收敛性和稳定性:会用即可

9.2 欧拉法及其改进

9.2.1 欧拉法

  1. 很简单,就是一阶差分+近似:
    y′(xn)=f(xn,y(xn))↓h=xn+1−xn=b−aN↓y′(xn)≈y(xn+1)−y(xn)xn+1−xn=y(xn+1)−y(xn)h↓y(xn+1)≈y(xn)+hf(xn,y(xn))↓y(xn+1)≈yn+1↓yn+1=yn+hf(xn,yn) y'(x_n)=f(x_n,y(x_n))\\ \downarrow\\ h=x_{n+1}-x_n=\frac{b-a}{N}\\ \downarrow\\ y'(x_n)\boldsymbol{\approx}\frac{y(x_{n+1})-y(x_{n})}{x_{n+1}-x_n}=\frac{y(x_{n+1})-y(x_{n})}{h}\\ \downarrow\\ y(x_{n+1})\boldsymbol{\approx}y(x_{n})+hf(x_n,y(x_n))\\ \downarrow\\ y(x_{n+1})\boldsymbol{\approx}y_{n+1}\\ \downarrow\\ y_{n+1}=y_{n}+hf(x_n,y_{n}) y(xn)=f(xn,y(xn))h=xn+1xn=Nbay(xn)xn+1xny(xn+1)y(xn)=hy(xn+1)y(xn)y(xn+1)y(xn)+hf(xn,y(xn))y(xn+1)yn+1yn+1=yn+hf(xn,yn)
  2. 几何意义:化曲为直->用多段折线来反映曲线
  3. 实例代码:
    • 给定整数N:用来计算步长h=(b-a)/N
    • 遍历x:计算y
    function [x,y]=odeEuler(f,y0,a,b,N)
    h=(b-a)/N;
    x=a:h:b;
    y(1)=y0;
    for n=1:N
        y(n+1)=y(n)+h*feval(f,x(n),y(n));
    end
    

9.2.2 精度

  1. 局部截断误差:假设前n次精确,第n+1次的误差=>yn+1^\widehat{y_{n+1}}yn+1 是用前n次真解算的
    y(xn+1)−yn+1^=εn+1y(x_{n+1})-\widehat{y_{n+1}}=\varepsilon_{n+1}y(xn+1)yn+1 =εn+1
  2. 整体截断误差:前n次累积误差,yny_{n}yn是第n次近似解,误差会逐层累积
    y(xn)−yn=eny(x_{n})-y_{n}=e_{n}y(xn)yn=en
  3. p-阶方法:局部截断误差为εn+1=O(hp+1)\varepsilon_{n+1}=O(h^{p+1})εn+1=O(hp+1),即局部截断误差是hp+1h^{p+1}hp+1的等价无穷小,这个就称为p阶精度和p阶方法
  4. 常用方法:

    欧拉方法:1阶方法
    εn+1=y(xn+1)−yn+1^\varepsilon_{n+1}=y(x_{n+1})-\widehat{y_{n+1}}εn+1=y(xn+1)yn+1
    y(xn+1)=y(xn)+hy′(xn+1)+h22y′′(ξ)y(x_{n+1})=y(x_{n})+hy'(x_{n+1})+\frac{h^2}{2}y''(\xi)y(xn+1)=y(xn)+hy(xn+1)+

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值