数值计算中的有限差分法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数值计算中的有限差分法相关的知识,希望对你有一定的参考价值。

参考技术A

早期,在科学技术的发展过程中,理论分析和实验研究一直是两种主要的科学方法,但是随着计算机的出现与发展,情况就大大不同了,研究者可以采用计算机去计算过去那些根本不能求解的问题,模拟一些难以观测的现象, 第三种科学方法——数值计算诞生了。

有限差分法作为一种最为朴素的计算方法,发展时间也最为悠久,至今依然活跃。有限差分法的朴素思想就是,在求解连续性问题时,将时空域离散后,利用差商代替微商求解问题。

从应用上看,有限差分法常使用在求解时间依赖问题(双曲型和抛物型方程),而有限元主要求解稳态问题(椭圆型方程)。从建立差分格式的方法上看,有限差分法既可以根据Taylor级数展开建立差分格式,也可以根据积分方法建立差分格式,其中,积分方法由于其本身的特殊性,也被单独称为有限体积法。

从微分方程建立差分方程,方法格式层出不穷,但三个基本性质确是核心所在, 即差分格式的相容性、收敛性和稳定性。

上述三个性质,通常是互相独立的,也就是相容的差分格式并不一定收敛。

通常,判断一个差分格式是否相容是简单的,只需要将微分方程光顺解带入差分方程再进行Taylor级数展开就可以得到截断误差,而截断误差是衡量相容性的重要标准。然而,判断一个差分格式是否收敛是复杂的。相容性和收敛性是差分格式本身的属性,而稳定性不仅与差分格式有关,还与离散的网格比大小有关。

实际问题中,如果研究一个差分格式的性质,需要从上述三个方面入手,这是麻烦的,能否将三个性质联系起来?特别是收敛性,能否有间接判断的依据?下面的定理给出了答案:

一般来说,证明一个差分格式的收敛性是困难的,而判断其稳定性则有许多方法,比如Fourier方法,von Neumann条件,Hirt启示性方法等等,其中应用最广泛的是von Neumann条件和其变形。

Neumann准则是十分重要的,其内容这里不再叙述,网上资料很多。但必须注意,Neumann条件是一个必要条件,下面两个定理说明了条件的充分性。

自此,差分格式的基本性质叙述完毕,有限差分法比起有限元来说理论简单不少,但是,真正活用理论解决实际问题是困难的。下面通过一个简单的双曲型对流方程说明这个问题。

一维常系数双曲型对流方程为:

为了求解这个方程,考虑其差分格式是最简单的方法,根据系数a的不同,有以下四种离散方法:

这是四种格式可能是最常用的,很多人实际使用时可能随便选一种就使用。这四种格式差距非常小,看(1)和(3)式,仅在空间离散时选取的点不同,那么它们的相容性、收敛性和稳定性如何呢?

首先,这四个格式都是相容的,至于收敛性和稳定性,采用von Neumann条件判断易知,格式(1)和(2)是条件收敛的,而格式(3)和(4)是完全不收敛的。如果采用后两种格式计算,是完全得不到正确结果的。其根本原因在于,上述的对流方程是双曲型的,沿其特征线方向是有信息传递的,因此,选取的网格点应该与双曲方程特征线一致才行,这也是上述(1)(2)格式被称为迎风格式的原因,要迎“风”不能背“风”。

下面这个格式被称为Richardson格式,从截差角度上说,这个格式是二阶精度的,似乎比迎风格式好,但是,这个差分格式实际完全没有实用价值,因为是不收敛的:

通常来说,差分格式都是条件收敛,很少有绝对收敛的,比如Crank-Nicolson格式是绝对收敛的。当然,条件收敛不一定就差,绝对收敛也不一定就好,关键还是要满足需求条件才行。前面反复说到条件收敛,那么这个条件到底是什么,什么条件下差分格式才收敛?下面的定理回答了这个问题。

最后我们来谈谈上述对流方程初值问题的依赖区域,简单的说,为了计算某一层网格点的数值,需要用到上一层的数值,上一层的数值又需要用到上上一层,依次递推到第一层上。第一层上的这些网格点值,都会影响我们所计算的某点的值,这就是差分格式的依赖关系。而微分方程的依赖关系,如上述的对流方程,它是双曲型方程,因此它的依赖区域和特征线息息相关。实际上,上述对流方程是条件收敛的,这个条件最后化简就是:

得到的正是我们常在计算中使用的库朗条件。

上述理论是有限差分法的冰山一角,理论虽然简单,但是灵活运用却是格外复杂,越是简单的东西,使用起来越要小心,稍不注意,就会陷入不收敛的尴尬境地!!

FDM, FVM, FEM

有限元法、有限差分法和有限体积法的区别 

 

标签: 函数 有限元 插值 差分 格式 

 

有限差分方法(Finite Differential Method)是计算机数值模拟最早采用的方法,至今仍被广泛运用。该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。有限差分法以泰勒级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。

对于有限差分格式,从格式的精度来划分,有一阶格式、二阶格式和高阶格式。从差分的空间形式来考虑,可分为中心格式和逆风格式。考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。 

  构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。其基本的差分表达 式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等, 其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。 

 

  有限元法(Finite Element Method)的基础是变分原理和加权余量法,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的插值点,将微分 方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式 ,借助于变分原理或加权余量法,将微分方程离散求解。采用不同的权函数和插值函数形式,便构成不同的有限元方法。有限元方法最早应用于结构力学,后来随着计算机的发展慢慢用于流体力学的数值模拟。在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元内选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域内的解可以看作是由所有单元上的近似解构成。

根据所采用的权函数和插值函数的不同,有限元方法也分为多种计算格式。从权函数的选择来说,有配置法、矩量法、最小二乘法和伽辽金法。从计算单元网格的形状来划分,有三角形网格、四边形网格和多边形网格,从插值函数

的精度来划分,又分为线性插值函数和高次插值函数等。不同的组合同样构成不同的有限元计算格式。对于权函数,伽辽金(Galerkin)法是将权函数取为逼近函数中的基函数 ;最小二乘法是令权函数等于余量本身,而内积的极小值则为对代求系数的平方误差最小;在配置法中,先在计算域内选取N个配置点 。令近似解在选定的N个配置点上严格满足微分方程,即在配置点上令方程余量为0。插值函数一般由不同次幂的多项式组成,但也有采用三角函数或指数函数组成的乘积表示,但最常用的多项式插值函数。有限元插值函数分为两大类,一类只要求插值多项式本身在插值点取已知值,称为拉格朗日(Lagrange)多项式插值;另一种不仅要求插值多项式本身,还要求它的导数值在插值点取已知值,称为哈密特(Hermite)多项式插值。单元坐标有笛卡尔直角坐标系和无因次自然坐标,有对称和不对称等。常采用的无因次坐标是一种局部坐标系,它的定义取决于单元的几何形状,一维看作长度比,二维看作面积比,三维看作体积比。在二维有限元中,三角形单元应用的最早,近来四边形等参元的应用也越来越广。对于二维三角形和四边形电源单元,常采用的插值函数为有Lagrange插值直角坐标系中的线性插值函数及二阶或更高阶插值函数、面积坐标系中的线性插值函数、二阶或更高阶插值函数等。

 

有限体积法(Finite Volume Method)又称为控制体积法。其基本思路是:将计算区域划分为一系列不重复的控制体积,并使每个网格点周围有一个控制体积;将待解的微分方程对每一个控制体积积分,便得出一组离散方程。其中的未知数是网格点上的因变量的数值。为了求出控制体积的积分,必须假定值在网格点之间的变化规律,即假设值的分段的分布的分布剖面。从积分区域的选取方法看来,有限体积法属于加权剩余法中的子区域法;从未知解的近似方法看来,有限体积法属于采用局部近似的离散方法。简言之,子区域法属于有限体积发的基本方法。 

有限体积法的基本思路易于理解,并能得出直接的物理解释。离散方程的物理意义,就是因变量在有限大小的控制体积中的守恒原理,如同微分方程表示因变量在无限小的控制体积中的守恒原理一样。 有限体积法得出的离散方程,要求因变量的积分守恒对任意一组控制体积都得到满足,对整个计算区域,自然也得到满足。这是有限体积法吸引人的优点。有一些离散方法,例如有限差分法,仅当网格极其细密时,离散方程才满足积分守恒;而有限体积法即使在粗网格情况下,也显示出准确的积分守恒。就离散方法而言,有限体积法可视作有限单元法和有限差分法的中间物。有限单元法必须假定值在网格点之间的变化规律(既插值函数),并将其作为近似解。有限差分法只考虑网格点上的数值而不考虑值在网格点之间如何变化。有限体积法只寻求的结点值,这与有限差分法相类似;但有限体积法在寻求控制体积的积分时,必须假定值在网格点之间的分布,这又与有限单元法相类似。在有限体积法中,插值函数只用于计算控制体积的积分,得出离散方程之后,便可忘掉插值函数;如果需要的话,可以对微分方程中不同的项采取不同的插值函数。

 

此文属于转载

文章来源:https://wenku.baidu.com/view/d83c8df6fad6195f302ba6b0.html

 

以上是关于数值计算中的有限差分法的主要内容,如果未能解决你的问题,请参考以下文章

FDM, FVM, FEM

MATLAB-非线性方程的数值解法——二分法

MATLAB-非线性方程的数值解法——二分法

数值计算方法 Chapter4. 非线性方程求根

DEM的作用是啥

4.2 数值分析: 非线性方程组的二分法