前向后项差分和显式隐式欧拉法

摘要:
本文主要介绍前向后向差分,显式隐式欧拉法及其稳定性分析。
前向差分对应显式方法,后向差分对应隐式方法。显式欧拉法是比较流行的显式方法,隐式欧拉法是比较流行的隐式方法。
显式欧拉法条件稳定,对积分步长有要求,隐式欧拉法无条件稳定,对积分步长无要求(理论上如此,但实际使用中对积分步长仍然有要求,只是比显式欧拉宽松)。

1. 前向差分与后向差分

设一元函数函数 y(t) 离散化为一系列的点, y0,y1,...,yn,yn+1,yn+2,... ,其中, yn=f(tn) , tn=tn1+h , 称 h 为步长。

1.1 前向差分(Forward Difference)

  1. 前向差分的定义:ynyn+1yn.
    之所以称之为前向差分,是因为当前时刻的差分 yn ,是下一时刻位置 yn+1 (时间向前前进一步)与当前时刻位置 yn 之差。

    • 高阶前向差分
      根据上式递归可得k阶前向差分公式为: kyn=k1yn+1k1yn.
      例如,二阶前向差分公式为:
      2yn=2n
          =(n)
          =(yn+1yn)
          =n+1n
          =yn+22yn+1+yn
    • 1.2 后向差分(Backward Difference)

      1. 后向差分定义: ynynyn1.
        由定义可以看出,当前时刻的差分,是当前时刻的位置与前一时刻的位置之差。
      2. 高阶后向差分
        同上,k阶后向差分公式为: kyn=k1ynk1yn1.
        因此,二阶后向差分公式为: 2yn=yn2yn1+yn2.

      1.3 差商和导数

      1. 差商就是差分除以步长,即, ynh.
      2. 在数值计算中,需要以差商代替导数,即, yn=ynh.
        • 如果使用前向差分,则为显式方法,例如, fn=yn+1ynh.
        • 如果使用后向差分,则为隐式方法,例如, yn=ynyn1h.

      2. 显式欧拉和隐式欧拉

      设有一阶常微分方程 dydt=f(t,y). 很多时候我们无法求出函数 y 的解析解,只能通过数值方法逼近,即,将时间离散为一系列的点t0,t1,...,tn,tn+1,...其中, ti=ti1+h. 我们要做的就是求函数 y 在这些离散的时间点上的值yn=y(tn).

      2.1 显式欧拉(Explicit Euler)

      • 显式欧拉公式: yn+1=yn+hf(tn,yn).
        之所以称之为显式,是因为下一时刻的值 yn+1 ,可根据当前时刻的值 yn 及其导数 yn 显式地给出。
      • 另一种角度看上面的公式:从当前时刻出发,根据当前时刻的函数值及其导数,可得到下一时刻的值。因此显式欧拉法又称为前向欧拉(Forward Euler)
      • 再从另一个角度看,我们把上面的公式做一下变形可得 f(tn,yn)=yn+1ynh. 即,显示欧拉就是用前向差商代替导数。

      2.2 隐式欧拉(Implicit Euler)

      • 隐式欧拉公式: yn=yn1+hf(tn,yn).
        之所以称之为隐式,是因为上式是一个隐式方程。
      • 另一种角度看上面的公式:将上式做一下变形可得: yn1=ynhf(tn,yn). 从当前时刻出发,根据当前时刻的函数值及其导数,可得到前一时刻函数的值。因此隐式欧拉法又称为后向欧拉(Backward Euler)
      • 再从另一个角度看,我们把上面的公式做一下变形可得 f(tn,yn)=ynyn1h. 即,显示欧拉就是用后向差商代替导数。

      2.3 例证欧拉法的稳定性

      设有一阶常微分方程 dydt=ay. 我们知道,这个常微分方程的解析解为 y=eat. t 时, y0. 那么分别用显式、隐式欧拉法会得到什么呢?
      1. 显式欧拉法条件稳定(Conditionally Stable)
      根据显式欧拉法公式,
      yn+1=yn+hf(tn,yn)=ynahyn=(1ah)yn=(1ah)2yn1=...=(1ah)n+1y0.
      为了保证上式收敛,需要保证 |(1ah)|<1 , 得, h<2a
      即,为了保证显式欧拉的稳定性,需要保证时间步长 h<2a ,即,条件稳定.

      2.隐式欧拉法无条件稳定(Unconditionally Stable)
      根据隐式欧拉公式, yn+1=yn+hf(tn+1,yn+1)=ynahyn+1.
      则, yn+1=yn1+ah.
      又, a>0,h>0 1+ah 恒大于1。即不管时间步长为多大,隐式欧拉始终稳定,即无条件稳定.

      注意:实际应用中,隐式欧拉需要求解隐式方程,通常也是使用逼近的方法(例如,Newton-Raphson)求解,因此实际的隐式欧拉方法并不是无条件稳定的。

      3.一般形式的稳定性分析,我目前还没有掌握。

  • 62
    点赞
  • 188
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
众所周知,人工智能是当最热门的话题之一, 计算机技术与互联网技术的快速发展更是将对人工智能的研究推向一个新的高潮。 人工智能是研究模拟和扩展人类智能的理论与方法及其应用的一门新兴技术科学。 作为人工智能核心研究领域之一的机器学习, 其研究动机是为了使计算机系统具有人的学习能力以实现人工智能。 那么, 什么是机器学习呢? 机器学习 (Machine Learning) 是对研究问题进行模型假设,利用计算机从训练数据中学习得到模型参数,并最终对数据进行预测和分析的一门学科。 机器学习的用途 机器学习是一种通用的数据处理技术,其包含了大量的学习算法。不同的学习算法在不同的行业及应用中能够表现出不同的性能和优势。目,机器学习已成功地应用于下列领域: 互联网领域----语音识别、搜索引擎、语言翻译、垃圾邮件过滤、自然语言处理等 生物领域----基因序列分析、DNA 序列预测、蛋白质结构预测等 自动化领域----人脸识别、无人驾驶技术、图像处理、信号处理等 金融领域----证券市场分析、信用卡欺诈检测等 医学领域----疾病鉴别/诊断、流行病爆发预测等 刑侦领域----潜在犯罪识别与预测、模拟人工智能侦探等 新闻领域----新闻推荐系统等 游戏领域----游戏战略规划等 从上述所列举的应用可知,机器学习正在成为各行各业都会经常使用到的分析工具,尤其是在各领域数据量爆炸的今天,各行业都希望通过数据处理与分析手段,得到数据中有价值的信息,以便明确客户的需求和指引企业的发展。
众所周知,人工智能是当最热门的话题之一, 计算机技术与互联网技术的快速发展更是将对人工智能的研究推向一个新的高潮。 人工智能是研究模拟和扩展人类智能的理论与方法及其应用的一门新兴技术科学。 作为人工智能核心研究领域之一的机器学习, 其研究动机是为了使计算机系统具有人的学习能力以实现人工智能。 那么, 什么是机器学习呢? 机器学习 (Machine Learning) 是对研究问题进行模型假设,利用计算机从训练数据中学习得到模型参数,并最终对数据进行预测和分析的一门学科。 机器学习的用途 机器学习是一种通用的数据处理技术,其包含了大量的学习算法。不同的学习算法在不同的行业及应用中能够表现出不同的性能和优势。目,机器学习已成功地应用于下列领域: 互联网领域----语音识别、搜索引擎、语言翻译、垃圾邮件过滤、自然语言处理等 生物领域----基因序列分析、DNA 序列预测、蛋白质结构预测等 自动化领域----人脸识别、无人驾驶技术、图像处理、信号处理等 金融领域----证券市场分析、信用卡欺诈检测等 医学领域----疾病鉴别/诊断、流行病爆发预测等 刑侦领域----潜在犯罪识别与预测、模拟人工智能侦探等 新闻领域----新闻推荐系统等 游戏领域----游戏战略规划等 从上述所列举的应用可知,机器学习正在成为各行各业都会经常使用到的分析工具,尤其是在各领域数据量爆炸的今天,各行业都希望通过数据处理与分析手段,得到数据中有价值的信息,以便明确客户的需求和指引企业的发展。
### 回答1: 向欧拉法和向后欧拉法都是常用的数值解法,用于解决常微分方程(ODE)的数值求解问题。它们可以用Matlab编写,以下是对两种方法的简要介绍。 向欧拉法(Forward Euler Method)是一种一阶ODE数值解法。它基于泰勒级数展开,通过将微分方程中的导数定义为一个差商,使用差分逼近替代微分,从而将微分方程转化为差分方程。 具体步骤为: 1. 将区间[a, b]划分为n个小区间,步长为h=(b-a)/n。 2. 初始化初始值y0。 3. 使用迭代公式:yn+1 = yn + h*f(tn, yn),其中f(tn, yn)为微分方程dy/dt=f(t, y)的右侧函数,tn表示当时间,yn代表当的解值。 4. 重复第3步,直到最终得到近似解y(t)。 向后欧拉法(Backward Euler Method)是另一种一阶ODE数值解法,它与向欧拉法的主要区别在于迭代公式的形式。在向后欧拉法中,通过将导数视为未知函数的变化率,对当解进行迭代求解。 具体步骤为: 1. 将区间[a, b]划分为n个小区间,步长为h=(b-a)/n。 2. 初始化初始值y0。 3. 使用迭代公式:yn+1 = yn + h*f(tn+1, yn+1),其中f(tn+1, yn+1)为微分方程dy/dt=f(t, y)的右侧函数,tn+1表示下一个时间点,yn+1代表下一个解值。 4. 由于迭代公式的非线性特性,需要利用数值方法,如牛顿迭代法,进行解的求解。 5. 重复第3和第4步,直到最终得到近似解y(t)。 总的来说,向欧拉法和向后欧拉法都是常用的数值方法,用于求解ODE。每种方法都有其适用的情况和局限性,根据具体问题的性质和求解要求,可以选择合适的方法进行数值求解,并使用Matlab编写代码来实现。 ### 回答2: 向欧拉法和向后欧拉法都是常用的数值求解常微分方程的方法,它们可以在MATLAB中实现。 向欧拉法是一种显式的一阶数值逼近方法,用于求解形如dy/dt = f(t,y)的常微分方程初值问题。它的基本思想是通过离散化时间,将微分方程转化为差分方程,然后使用差分方程进行递推计算。向欧拉法的计算公式为: y(n+1) = y(n) + h * f(t(n), y(n)) 其中,y(n)是在离散时间点t(n)处的近似解,h是时间步长,f(t(n), y(n))是在该点处的斜率。向欧拉法的缺点是存在误差累积的问题,因为它是根据上一个时间点的近似解来计算当时间点的近似解。 向后欧拉法是一种隐式的一阶数值逼近方法,同样用于求解初值问题。它的基本思想是将微分方程转化为差分方程后,使用近似解y(n+1)的线性函数对f(t(n+1), y(n+1))进行插值,然后通过牛顿迭代法求解方程得到y(n+1)的值。向后欧拉法的计算公式为: y(n+1) = y(n) + h * f(t(n+1), y(n+1)) 通过迭代,可以逐步逼近y(n+1)的值。向后欧拉法的优点是相对于向欧拉法,它具有更好的数值稳定性和误差控制的能力。 在MATLAB中,可以通过编写代码来实现这两种方法。将微分方程的右侧函数表示为一个匿名函数,然后使用迭代循环来计算近似解。通过逐步减小时间步长h来提高数值解的精度,同时可以与真实解进行对比来评估误差。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值