常微分方程数值求解简介
常微分方程
含有未知函数及其导数的方程叫做微分方程。若未知函数有一个自变量,则称为常微分方程(ODE);若未知函数有多个自变量,则称为偏微分方程(PDE)。常微分方程的一般形式为:
其中左边是自变量x,函数y,以及y的1到n阶导组成的表达式,若表达式中最高阶导数为n,则称为n阶常微分方程。比如下面(a)是一阶ODE,(b)是二阶ODE。
ODE可以用来描述很多物理过程,是众多研究领域的基础。一般研究过程是将问题进行抽象,建模成ODE的数学形式,然后通过求解ODE来认识系统在每一时刻的状态。然而科学与工程问题中遇到的ODE往往很复杂,绝大多数情况下不可能求出函数y的表达式。所以在实际问题中退而求其次,不去解函数y表达式,而是求y在若干点上的近似值即可。
数值求解
举个例子,讨论下面ODE的数值求解问题:
第一个式子是ODE形式,第二个式子给出了在时刻0时的初值条件,这个问题也是ODE里面的初值问题。刚才提到由于f可能是很复杂的表达式,所以绝大情况下求不出函数y的表达式,实际中经常用数值解法。
所谓数值解法就是根据公式(1),把我们所关注的各个时刻函数y的值直接计算出来,即y(t)上一系列离散点
对应的y值:
欧拉方法
欧拉方法是求解ODE最常用的方法之一。首先需要将公式(1)重写成欧拉公式,假设相邻两个离散点是等距的
函数y在tn时刻的导数可以写成差分形式:
根据公式(1)和(2),可以得到欧拉公式:
根据公式(3),就可以依次求解函数y在t0,t1,t2,...等离散时刻的数值解了。
但是,公式(2)是由泰勒展开得到的,存在误差,所以欧拉方法求解的数值解会有误差积累,具体来说,函数y在tn+1时刻的展开为:
根据公式(1)(3)(4),可得函数y(t{n+1])与欧拉解y{n+1}误差为:
举个例子
用欧拉方法求解下列ODE初值问题,x范围[0,1],间距h取0.1,并跟真实解比较
求解过程:
构建ODE公式(5)的欧拉形式:
依次计算y1到y9,结果如下表所示:
可以看出,欧拉解与真实解之间是由误差的,随着t时刻的增加,误差不断积累,所以也有一些校正的方法提出来,这里不做介绍。
最后总结一下,本文简要地介绍了常微分方程的概念以及数值求解方法,并通过一个简单的示例来解释ODE的求解过程和存在的误差。
- 点赞
- 收藏
- 关注作者
评论(0)