为什么?
- 很多情况下,不存在解析解
- 即使存在解析解,大多数不是显式解(显示解:用有限个初等函数表示出来)
- 即使存在显式解,未必能从显式解得出数值解。例如,方程 $u’=1-2tu,u(0)=0$,解是 $u(t)=e^{-t^2}\int_0^te^{\tau^2}d\tau$,这个解析解也难以算出数值解。
方法论
- 区域划分。把定义域划分为若干小区间
- 微分方程离散。用原来的微分方程构建离散点的递推公式或方程
- 初始和边界条件处理。2步骤的方程组不够,初始和边界条件也作为补充条件
- 离散系统的性态研究。
- 是否可解。存在性、唯一性问题
- 收敛性。收敛速度如何
- 稳定性。
- 递推计算,或者解线性方程,得到数值解
误差来自
- 模型误差。把实际问题归结为模型时做的简化。
- 观测误差。模型需要的系数、值来源于测量,由于客观条件和仪器产生的误差。
- 截断误差。模型离散化时,舍弃了一些次要项,产生的误差
- 舍入误差。计算机计算时的精度产生的误差。
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种理解:
- 微分角度 $u’\approx \dfrac{u(t+h)-u(t)}{h}$
- 积分角度 $u(t+h)-u(t)=\int_t^{t+h}f(\tau,u(\tau))d\tau \approx hf(t,u(t))$
- 幂级数展开 $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.\)