Skip to content

Latest commit

 

History

History
59 lines (47 loc) · 1.91 KB

2021-06-19-numerical_ode.md

File metadata and controls

59 lines (47 loc) · 1.91 KB
layout title categories tags keywords description order
post
【数值计算】数值常微分方程
0x55_数值计算
5503

为什么?

  1. 很多情况下,不存在解析解
  2. 即使存在解析解,大多数不是显式解(显示解:用有限个初等函数表示出来)
  3. 即使存在显式解,未必能从显式解得出数值解。例如,方程 $u'=1-2tu,u(0)=0$,解是 $u(t)=e^{-t^2}\int_0^te^{\tau^2}d\tau$,这个解析解也难以算出数值解。

方法论

  1. 区域划分。把定义域划分为若干小区间
  2. 微分方程离散。用原来的微分方程构建离散点的递推公式或方程
  3. 初始和边界条件处理。2步骤的方程组不够,初始和边界条件也作为补充条件
  4. 离散系统的性态研究。
    • 是否可解。存在性、唯一性问题
    • 收敛性。收敛速度如何
    • 稳定性。
  5. 递推计算,或者解线性方程,得到数值解

误差来自

  1. 模型误差。把实际问题归结为模型时做的简化。
  2. 观测误差。模型需要的系数、值来源于测量,由于客观条件和仪器产生的误差。
  3. 截断误差。模型离散化时,舍弃了一些次要项,产生的误差
  4. 舍入误差。计算机计算时的精度产生的误差。

Eluer法

问题: $$\left {\begin{array}{ll} u'=f(t,u), & t_0<t\leq T \ u(t_0) = a \end{array}\right.$$

Euler 法 是一种 递推法 ,递推公式: $$\left {\begin{array}{ll} u_{m+1} = u_m + hf(t_m, u_m) \ u_0 = u(t_0) = a \end{array}\right.$$

3种理解:

  1. 微分角度 $u'\approx \dfrac{u(t+h)-u(t)}{h}$
  2. 积分角度 $u(t+h)-u(t)=\int_t^{t+h}f(\tau,u(\tau))d\tau \approx hf(t,u(t))$
  3. 幂级数展开 $u(t+h) = u(t) +hu'(t)+ \dfrac{h^2}{2!}u''(t)+...$

改进的 Euler 法, $$\left {\begin{array}{ll} u_{m+1} = u_m + h/2[f(t_m, u_m) + f(t_{m+1}, u_{m+1})] & m=0,1,...,N-1\ u_0 = u(t_0) = a \end{array}\right.$$