matlab 前向欧拉法,前向后项差分和显式隐式欧拉法
摘要:
本文主要介绍前向后向差分,显式隐式欧拉法及其稳定性分析。
前向差分对应显式方法,后向差分对应隐式方法。显式欧拉法是比较流行的显式方法,隐式欧拉法是比较流行的隐式方法。
显式欧拉法条件稳定,对积分步长有要求,隐式欧拉法无条件稳定,对积分步长无要求(理论上如此,但实际使用中对积分步长仍然有要求,只是比显式欧拉宽松)。
1. 前向差分与后向差分
设一元函数函数离散化为一系列的点,,其中,, , 称为步长。
1.1 前向差分(Forward Difference)前向差分的定义:
之所以称之为前向差分,是因为当前时刻的差分,是下一时刻位置(时间向前前进一步)与当前时刻位置之差。
高阶前向差分
根据上式递归可得k阶前向差分公式为:
例如,二阶前向差分公式为:
1.2 后向差分(Backward Difference)后向差分定义:
由定义可以看出,当前时刻的差分,是当前时刻的位置与前一时刻的位置之差。
高阶后向差分
同上,k阶后向差分公式为:
因此,二阶后向差分公式为:
1.3 差商和导数差商就是差分除以步长,即,
在数值计算中,需要以差商代替导数,即,如果使用前向差分,则为显式方法,例如,
如果使用后向差分,则为隐式方法,例如,
2. 显式欧拉和隐式欧拉
设有一阶常微分方程很多时候我们无法求出函数的解析解,只能通过数值方法逼近,即,将时间离散为一系列的点其中, 我们要做的就是求函数在这些离散的时间点上的值
2.1 显式欧拉(Explicit Euler)显式欧拉公式:
之所以称之为显式,是因为下一时刻的值,可根据当前时刻的值及其导数 显式地给出。
另一种角度看上面的公式:从当前时刻出发,根据当前时刻的函数值及其导数,可得到下一时刻的值。因此显式欧拉法又称为前向欧拉(Forward Euler)
再从另一个角度看,我们把上面的公式做一下变形可得 即,显示欧拉就是用前向差商代替导数。
2.2 隐式欧拉(Implicit Euler)隐式欧拉公式:
之所以称之为隐式,是因为上式是一个隐式方程。
另一种角度看上面的公式:将上式做一下变形可得:从当前时刻出发,根据当前时刻的函数值及其导数,可得到前一时刻函数的值。因此隐式欧拉法又称为后向欧拉(Backward Euler)
再从另一个角度看,我们把上面的公式做一下变形可得 即,显示欧拉就是用后向差商代替导数。
2.3 例证欧拉法的稳定性
设有一阶常微分方程 我们知道,这个常微分方程的解析解为 当时, 那么分别用显式、隐式欧拉法会得到什么呢?
1. 显式欧拉法条件稳定(Conditionally Stable)
根据显式欧拉法公式,
为了保证上式收敛,需要保证, 得,
即,为了保证显式欧拉的稳定性,需要保证时间步长,即,条件稳定.
2.隐式欧拉法无条件稳定(Unconditionally Stable)
根据隐式欧拉公式,
则,
又,则恒大于1。即不管时间步长为多大,隐式欧拉始终稳定,即无条件稳定.
注意:实际应用中,隐式欧拉需要求解隐式方程,通常也是使用逼近的方法(例如,Newton-Raphson)求解,因此实际的隐式欧拉方法并不是无条件稳定的。
3.一般形式的稳定性分析,我目前还没有掌握。
matlab 前向欧拉法,前向后项差分和显式隐式欧拉法相关推荐
- MATLAB学习笔记3:MATLAB编程基础(前半)
阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...
- 前向欧拉法、后向欧拉法简介
前言 这里简单介绍一下前向欧拉法和后向欧拉法. (在百度上没有找到满意的结果,所以在此补充) 1 欧拉方法 其简介 [2]: 欧拉方法,命名自它的发明者莱昂哈德·欧拉,是一种一阶数值方法,用以对给定初 ...
- 前向欧拉法的PI调节器C语言代码
前向欧拉法的 PI 调节器的 C 语言代码大致如下所示: #include <stdio.h>#define TS 0.01 // 采样周期 #define Kp 1.0 // 比例系数 ...
- 2022年4月编程语言排行榜:MATLAB 即将跌出前20名
好老的MATLAB即将跌出前20名,这是10多年来的第一次.MATLAB编程语言主要用于数值分析领域,通常与来自同一家公司的Simulink模型结合使用.尽管MATLAB有一个半年一次的发布周期,但该 ...
- 前端运行python代码几种方式_前的解释|前的意思|汉典“前”字的基本解释
详细字义 ◎ 前 qián 〈动〉 (1) (本义:前进) (2) 同本义 [go forward;go ahead] 前,进也.--<广雅> 然而驱之不前,却之不止.--<韩非子· ...
- 快慢指针____函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移
函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量.如原始串为:ab**cd**e*12,处理后为*****abcde12 ...
- iOS常用于显示几小时前/几天前/几月前/几年前的代码片段
/*** Retain a formated string with a real date string** @param dateString a real date string, which ...
- php时间转分钟前,PHP把时间转换成几分钟前几小时前几天前
现在很多网站将时间的显示都变得比较人性化,今天项目有一个也需要在对应的资讯后面显示为几分钟前.几小时前,接下来吾爱编程为大家分享一下PHP把时间转换成几分钟前.几小时前几天前的方法,有需要的小伙伴可以 ...
- 微信小程序-将时间转换成几秒前 几分钟前 几小时前 几天前等时间格式
描述: 显示消息时间为 几天前 几小时前 几分钟前:同时一年以上的日期直接显示YYY:MM:DD形式 效果: 方法实现: 可以在utils目录下建一个存放公共方法的文件,将getDateDiff方法放 ...
最新文章
- 20180925-7 规格说明书-吉林市2日游
- 解决mysql导入数据文件过慢的问题
- mysql 常用sql语句 简介
- 这个需求很简单,明天上线没问题吧?要不要怼回去?
- mysql错误:this authentication plugin is not supported
- python资源管理错误漏洞_国家信息安全漏洞库
- cmake (2)其他指令
- armv8-M(cortex-m) Trustzone总结和介绍
- 手动将经典 VM 从 VHD 迁移到新的 ARM 托管磁盘 VM
- hive数据库numeric_hive中常用的函数
- windows下apache报错The requested operation has failed解决方法
- 转-----EasyCHM制作教程
- java 对象数据 搜索,Java数据对象JDO 2.0查询语言的特点
- 《HelloGitHub》第 74 期
- Android8.0 WIFI ap Tethering 相关知识
- vpu测试_611bp上的VPU测试
- Bootstrap笔记5—关闭图标、浮动
- python输入数据带单位_python – Pandas用单位插入数据
- 云堡垒机的作用_传统运维堡垒机和云堡垒机,哪个更好?
- 基于jsp的旅游信息网站的设计
热门文章
- 绕过CDN查询真实IP
- 天然甜菊的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 2018年12月8日国际项目经理PMP培训考试报名中
- 苹果app商品定价_苹果将调整应用商店定价:中国区应用最低价涨至8元
- 我的Android读书笔记——(1)
- 【面试题】一个Http请求的流程
- 【Mac/iOS】解决CoreBluetooth中Characteristic的Properties显示问题
- 荣耀体质称显示网络服务器不可用,华为体脂秤如何重置
- 前端学习笔记001:HTML5
- AI常用框架和工具丨1. 科学计算库NumPy