[常微分方程的数值解法系列一] 常微分方程
常微分方程
- 简介
- 解法介绍
- 截断误差
在惯性导航以及VIO等实际问题中利用IMU求解位姿需要对IMU测量值进行积分得到需要的位置和姿态,其中主要就是求解微分方程。但之前求解微分方程的解析方法主要是应用于一些简单和特殊的微分方程求解中,对于一般形式的微分方程,一般很难用解析方法求出精确解,只能用数值方法求解。该系列主要介绍一些常用的常微分方程的数值解法,主要包括:
- [常微分方程的数值解法系列一] 常微分方程
- [常微分方程的数值解法系列二] 欧拉法
- [常微分方程的数值解法系列三] 改进欧拉法(预估校正法)
- [常微分方程的数值解法系列四] 中值法
- [常微分方程的数值解法系列五] 龙格-库塔(RK4)法
这个系列后面文章会用到前面文章的理论和技术,所以建议按照顺序查看。
简介
而在具体求解微分方程中,一般来说给定的条件是
{x′(t)=f(t,x(t)),a≤t≤bx(t0)=x0\begin{cases} \mathbf{x}^{\prime}(t)=f(t, \mathbf{x}(t)), \quad a \leq t \leq b \\ \mathbf{x}({t_0}) = x_0 \end{cases} {x′(t)=f(t,x(t)),a≤t≤bx(t0)=x0
即给定微分方程以及原方程在初始点的值,求原方程在某个ttt下的x(t)x(t)x(t)原方程的值,这类问题就是(一阶)常微分方程初值求解问题。
(这里不对常微分方程或者偏微分方程等概念,以及求解微分方程的其他条件如边界条件情况做详细介绍,需要了解的话可以自己google,不影响本系列介绍。)
解法介绍
一般来说,(一阶)常微分方程数值解法基本思想是:
在区间[a,b][a, b][a,b]中插入一系列间隔相同为Δt\Delta tΔt的离散点
a≤t0<t1<⋯<ti<⋯<tn−1<tn≤ba \leq t_0 < t_1< \cdots < t_i < \cdots < t_{n-1} < t_n \leq b a≤t0<t1<⋯<ti<⋯<tn−1<tn≤b
常微分方程的数值解法的目的就是在给定合适初始值前提下,建立求解x(t)x(t)x(t)的近似值xtx_txt的递推方式,这样求得x(t)x(t)x(t)在各个离散点的近似值。
给定一个具体的时间间隔Δt\Delta_tΔt,可以把该方程转换成差分方程
x(t+Δt)=x(t)+∫τ∈[t,t+Δt]f(τ,x(τ))dτ,a≤t≤b,(1)\mathbf{x}(t+\Delta t)=\mathbf{x}(t)+\int_{\tau \in [t, t+\Delta t]} f(\tau, \mathbf{x}(\tau)) d \tau, \quad a \leq t \leq b, \tag{1} x(t+Δt)=x(t)+∫τ∈[t,t+Δt]f(τ,x(τ))dτ,a≤t≤b,(1)
这样利用之前说的离散点可以把ttt离散化,那么ti=a+iΔtt_{i}=a+i \Delta tti=a+iΔt以及 xi≈x(ti)\mathbf{x}_{i} \approx \mathbf{x}(t_{i})xi≈x(ti),所以上面公式(2)(2)(2)也可以写成
x(ti+1)≈xi+1=xi+∫τ∈[a+iΔt,a+(i+1)Δt]f(τ,x(τ))dτ,(2)\mathbf{x}(t_{i+1}) \approx x_{i+1}=\mathbf{x}_{i}+\int_{\tau \in [a+i \Delta t, a+(i+1) \Delta t]} f(\tau, \mathbf{x}(\tau)) d \tau, \tag{2} x(ti+1)≈xi+1=xi+∫τ∈[a+iΔt,a+(i+1)Δt]f(τ,x(τ))dτ,(2)
截断误差
上节介绍常微分方程的数值解法就是利用初值和离散点获得近似值xtx_txt,但是和真实值x(t)x(t)x(t)之前还是存在误差,即
ei=xi−x(ti),(3)\boldsymbol{e}_i = x_i - \mathbf{x}(t_i), \tag{3} ei=xi−x(ti),(3)
ei\boldsymbol{e}_iei则表示该数值解法在离散点tit_iti处的局部截断误差。局部截断误差在一定程度上反应了该数值解法的精度。
一般来说常用泰勒展开式来计算讨论局部截断误差,后面具体方法会给出具体的对应的截断误差的讨论。这里简单给出定义:
如果数值解法的局部截断误差为ei=O(ΔtP+1)\boldsymbol{e}_i = \boldsymbol{O}(\Delta t^{P+1})ei=O(ΔtP+1),则称该解法具有P阶精度或P阶解法。
这里O(ΔtP+1)\boldsymbol{O}(\Delta t^{P+1})O(ΔtP+1)为泰勒展开式的余项
[常微分方程的数值解法系列一] 常微分方程相关推荐
- [常微分方程的数值解法系列五] 龙格-库塔(RK4)法
龙格-库塔法 简介 基本思想 具体方法 一阶 二阶 求解参数 特殊二阶 三阶 高阶 步长选择 例子 在惯性导航以及VIO等实际问题中利用IMU求解位姿需要对IMU测量值进行积分得到需要的位置和姿态,其 ...
- [常微分方程的数值解法系列三] 改进欧拉法(预估校正法)
改进欧拉法 简介 预估-校正 截断误差 例子 在惯性导航以及VIO等实际问题中利用IMU求解位姿需要对IMU测量值进行积分得到需要的位置和姿态,其中主要就是求解微分方程.但之前求解微分方程的解析方法主 ...
- [常微分方程的数值解法系列二] 欧拉法
欧拉法 简介 几何意义 证明 泰勒展开近似 求导近似 积分近似 几种欧拉方式 向前欧拉公式 向后欧拉公式 梯形公式 中点公式 截断误差 求解过程 向前欧拉公式 例子 向前欧拉公式 在惯性导航以及VIO ...
- [常微分方程的数值解法系列四] 中值法
中值法 简介 具体步骤 截断误差 例子 在惯性导航以及VIO等实际问题中利用IMU求解位姿需要对IMU测量值进行积分得到需要的位置和姿态,其中主要就是求解微分方程.但之前求解微分方程的解析方法主要是应 ...
- 二阶龙格库塔公式推导_[常微分方程的数值解法系列五] 龙格-库塔(RK4)法
在惯性导航以及VIO等实际问题中利用IMU求解位姿需要对IMU测量值进行积分得到需要的位置和姿态,其中主要就是求解微分方程.但之前求解微分方程的解析方法主要是应用于一些简单和特殊的微分方程求解中,对于 ...
- 【数理知识】《数值分析》李庆扬老师-第9章-常微分方程初值问题数值解法
第8章 回到目录 无 第9章-常微分方程初值问题数值解法 9.1 引言 利普希茨 (Lipschitz) 条件 / 利普希茨常数 定理1 解的存在唯一性定理 定理2 解对初值依赖的敏感性 9.2 简单 ...
- 二阶常微分方程的数值解法(中心差分法和有限体积法)
二阶常微分方程的数值解法(中心差分法和有限体积法) 这里我们介绍中心差分法和有限体积法求解方程. 题目: 用差分法的中心差分格式和有限体积法求解两点边值问题 u′′−α(2x−1)u′−2αu=0,0 ...
- 一阶常微分方程的数值解法(二阶显式、隐式 Adams 公式及 Milne 方法)
一阶常微分方程的数值解法 这里我们介绍二阶显式.隐式 Adams 公式及 Milne 方法求解方程. 题目: 对初值问题 u ′ = u − t 2 , 0 ≤ t ≤ 1 , u ( 0 ) = 0 ...
- 常微分方程数值解的c语言程序,常微分方程的数值解法 一阶常微分方程数值解的C语言编程实现.doc...
常微分方程的数值解法 一阶常微分方程数值解的C语言编程实现 导读:就爱阅读网友为您分享以下"一阶常微分方程数值解的C语言编程实现"资讯,希望对您有所帮助,感谢您对92的支持! 一阶 ...
- 常微分方程初值问题数值解法[完整公式](Python)
目录 1.概述 (1)常微分方程初值问题数值解法 (2)解题步骤 (3)数值微分解法 (4)数值积分解法 2.所有知识点代码 3.结果---以三阶Runge-Kutta公式为例(其他的类似) 1.概述 ...
最新文章
- Lua学习笔记6:C++和Lua的相互调用
- Django进阶Model篇001 - mysql 数据库的配置
- [恢]hdu 2056
- 协同遗漏的效果–使用简单的NIO客户端/服务器测量回送延迟
- java的classpath
- 3DS_MAX渲染笔记
- 诺基亚7 android 9,诺基亚7 Plus正式推送安卓9.0系统!
- python 存储对象_Python使用redis存储对象
- 社团管理系统软件测试,软件测试大作业社团管理系统.doc
- Mac如何创建快捷方式?
- 消防水池液位报警装置设置参数
- 4 月 1 日罗永浩直播首秀带货小米 10,你会剁手吗?
- 学专业计算机的配置,大学学计算机专业的学生电脑普遍配置是什么呢?
- 数据库安全性和完整性考虑_您是否考虑过云安全性?
- 计算机应用基础165791,[2018年最新整理]人大网大计算机应用基础试题答案.doc
- 【STL模板】双端队列
- XML Schema教程
- 《人物》:计算机世界第一人——艾兰·图灵(转贴)
- 国产智能BI产品崛起,帆软Fine BI、瓴羊Quick BI等应该如何选择
- 数据中台为什么不好搞?