常微分方程数值求解简介

举报
EI张工 发表于 2020/07/06 17:17:05 2020/07/06
【摘要】 本文简要地介绍了常微分方程的概念以及求解方法,并通过一个简单的示例来解释ODE的求解过程和存在的误差。

常微分方程

含有未知函数及其导数的方程叫做微分方程。若未知函数有一个自变量,则称为常微分方程(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的求解过程和存在的误差。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。