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

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

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

有限差分法的主要内容包括:如何根据问题的特点将定解区域作网格剖分;如何把原微分方程离散化为差分方程组以及如何解此代数方程组。此外为了保证计算过程的可行和计算结果的正确,还需从理论上分析差分方程组的性态,包括解的唯一性、存在性和差分格式的相容性、收敛性和稳定性。对于一个微分方程建立的各种差分格式,为了有实用意义,一个基本要求是它们能够任意逼近微分方程,这就是相容性要求。另外,一个差分格式是否有用,最终要看差分方程的精确解能否任意逼近微分方程的解,这就是收敛性的概念。此外,还有一个重要的概念必须考虑,即差分格式的稳定性。因为差分格式的计算过程是逐层推进的,在计算第n+1层的近似值时要用到第n层的近似值,直到与初始值有关。前面各层若有舍入误差,必然影响到后面各层的值,如果误差的影响越来越大,以致差分格式的精确解的面貌完全被掩盖,这种格式是不稳定的,相反如果误差的传播是可以控制的,就认为格式是稳定的。只有在这种情形,差分格式在实际计算中的近似解才可能任意逼近差分方程的精确解。关于差分格式的构造一般有以下3种方法。最常用的方法是数值微分法,比如用差商代替微商等。另一方法叫积分插值法,因为在实际问题中得出的微分方程常常反映物理上的某种守恒原理,一般可以通过积分形式来表示。此外还可以用待定系数法构造一些精度较高的差分格式。

方法的基础是变分原理和加权余量法,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的点,将中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式,借助于变分原理或加权余量法,将微分方程离散求解。采用不同的权函数和插值函数形式,便构成不同的有限元方法。

有限元方法最早应用于,后来随着计算机的发展慢慢用于的数值模拟。在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元内选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域内的解可以看作是由所有单元上的近似解构成。

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

对于有限元方法,其基本思路和解题步骤可归纳为:

(1)建立积分方程,根据变分原理或方程余量与权函数正交化原理,建立与微分方程初边值问题等价的积分表达式,这是有限元法的出发点。

(2)区域单元剖分,根据求解区域的形状及实际问题的物理特点,将区域剖分为若干相互连接、不重叠的单元。区域单元划分是采用有限元方法的前期准备工作,这部分工作量比较大,除了给计算单元和节点进行编号和确定相互之间的关系之外,还要表示节点的位置坐标,同时还需要列出自然边界和本质边界的节点序号和相应的边界值。

(3)确定单元基函数,根据单元中节点数目及对近似解精度的要求,选择满足一定插值条件的插值函数作为单元基函数。有限元方法中的基函数是在单元中选取的,由于各单元具有规则的几何形状,在选取基函数时可遵循一定的法则。

(4)单元分析:将各个单元中的求解函数用单元基函数的线性组合表达式进行逼近;再将近似函数代入积分方程,并对单元区域进行积分,可获得含有待定系数(即单元中各节点的参数值)的代数方程组,称为单元有限元方程。

(5)总体合成:在得出单元有限元方程之后,将区域中所有单元有限元方程按一定法则进行累加,形成总体有限元方程。

(6)边界条件的处理:一般边界条件有三种形式,分为本质边界条件(狄里克雷边界条件

)、自然边界条件边界条件)、混合边界条件边界条件)。对于自然边界条件,一般在积分表达式中可自动得到满足。对于本质边界条件和混合边界条件,需按一定法则对总体有限元方程进行修正满足。

(7)解有限元方程:根据边界条件修正的总体有限元方程组,是含所有待定未知量的封闭方程组,采用适当的求解,可求得各节点的函数值。

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

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

三者各有所长:

有限差分法:直观,理论成熟,精度可选。但是不规则区域处理繁琐,虽然网格生成可以使FDM应用于不规则区域,但是对区域的连续性等要求较严。使用FDM的好处在于易于编程,易于并行。

有限元方法:适合处理复杂区域,精度可选。缺憾在于内存和计算量巨大。并行不如FDM和FVM直观。不过FEM的并行是当前和将来应用的一个不错的方向。

有限容积法:适于流体计算,可以应用于不规则网格,适于并行。但是精度基本上只能是二阶了。FVM的优势正逐渐显现出来,FVM在应力应变,高频电磁场方面的特殊的优点正在被人重视。

比较一下:

有限容积法和有限差分法:一个区别就是有限容积法的截差是不定的(跟取的相邻点有关,积分方法离散方程),而有限差分就可以直接知道截差(微分方法离散方程)。

有限容积法和有限差分法最本质的区别是,前者是根据积分方程推导出来的(即对每个控制体积分),后者直接根据微分方程推导出来,所以前者的精度不但取决于积分时的精度,还取决与对导数处理的精度,一般有限容积法总体的精度为二阶,因为积分的精度限制,当然有限容积法对于守恒型方程导出的离散方程可以保持守恒型;而后者直接由微分方程导出,不涉及积分过程,各种导数的微分借助Taylor展开,直接写出离散方程,当然不一定有守恒性,精度也和有限容积法不一样,一般有限差分法可以使精度更高一些。

当然二者有联系,有时导出的形式一样,但是概念上是不一样的。

至于有限容积法和有限元相比,有限元在复杂区域的适应性对有限容积是毫无优势可言的,至于有限容积的守恒性,物理概念明显的这些特点,有限元是没有的。目前有限容积在精度方面与有限元法有些差距。

有限元方法比有限差分优越的方面主要在能适应不规则区域,但是这只是指的是传统意义上的有限差分,现在发展的一些有限差分已经能适应不规则区域。对于椭圆型方程,如果区域规则,传统有限差分和有限元都能解,在求解效率,这里主要指编程负责度和收敛快慢、内存需要,肯定有限差分有优势。

matlab最大剩余法,有限元法、有限差分法和有限体积法的区别(转载)相关推荐

  1. 有限元法、有限差分法和有限体积法的区别(转载)

    有限元法.有限差分法和有限体积法的区别(转载) (2011-06-12 21:52:50) 有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用.该方法将求解域划分为差分网格,用有限 ...

  2. 有限差分法和有限体积法的区别

    有限差分法(Finite Difference Method, FDM)和有限体积法(Finite Volume Method, FVM)都是用数值解逼近微分方程的真实解的计算方法,其区别主要在于逼近 ...

  3. 有限体积法、有限差分法和有限元法介绍

    学过弹性力学的人应该都知道什么是有限元,而对学计算流体力学的来说,有限差分和有限体积法也是两种非常重要的方法.三者虽然目前形式各异,但是思想上有很多类似的地方.CFD(Computational Fl ...

  4. 计算流体力学的基本方法简介(有限差分法、有限元法、有限体积法)

    1.有限差分法: 原理,用差商代替微商: 优缺点: 2.有限元方法: 有限元剖分方法: 特点: 3.有限体积法: 两种方式,格心格式和格点格式: 特点:

  5. 二阶椭圆型第一边值问题的数值解法(五点差分格式和有限体积法)附matlab代码

    二阶椭圆型第一边值问题的数值解法(五点差分格式和有限体积法)附matlab代码 这里我们介绍五点差分格式和有限体积法求椭圆型第一边值问题, 题目: 分别采用矩形网格的五点差分格式和有限体积法求椭圆型第 ...

  6. 二维有限体积 matlab,二维有限体积法计算热传导及源码.pdf

    二维有限体积法计算热传导及源码 //#include "stdafx.h" #include #include #include #include #include using n ...

  7. matlab黎曼问题roe格式,Godnov_HLLC 解1D黎曼问题的有限体积法,使用Roe格式做近似 Algorithm 数学计算 238万源代码下载- www.pudn.com...

    文件名称: Godnov_HLLC下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Fortran 文件大小: 344 KB 上传时间: 2014-04-15 下载次数: 0 提 供 者 ...

  8. 二阶常微分方程的数值解法(中心差分法和有限体积法)

    二阶常微分方程的数值解法(中心差分法和有限体积法) 这里我们介绍中心差分法和有限体积法求解方程. 题目: 用差分法的中心差分格式和有限体积法求解两点边值问题 u′′−α(2x−1)u′−2αu=0,0 ...

  9. 有限体积法及其网格简介

    有限体积法及其网格简介 有限体积法使目前CFD领域广泛使用的离散化方法,其特点不仅表现在对控制方程的离散结果上,还表现在所使用的网格上. 1.有限体积法的基本思想 有限体积法(Finite Volum ...

  10. 有限体积法(6)——离散格式的特性

    为了能够在有限网格数下得到符合物理现实的数值解,就需要离散格式满足某些特性.最重要的几个有:守恒性.有界性和输运性. 守恒性 守恒来自很自然的物理规律,比如一个无内源的流体域,无论它有几个入口和几个出 ...

最新文章

  1. KaliLinuxNetHunter教程刷入第三方Recovery与开始刷机
  2. vue中使用moment来实现导出excel时添加格式化的时间戳
  3. supervisord管理进程详解
  4. JAVA设计模式 - 工厂方法模式
  5. 碳酸钡颗粒行业调研报告 - 市场现状分析与发展前景预测
  6. 区块链第三方支付已登陆菲律宾
  7. python redis 订阅发布_【Python之旅】第七篇(三):使用Redis订阅服务
  8. P2325 [SCOI2005]王室联邦
  9. Noi2001 食物链(入门oj Problem 1706)
  10. 抖音养号教程技巧,做抖音怎么养号上热门
  11. 翻译文章-让生活变得简单
  12. Docker 搭建Pika分片多主集群(Docker Codis Pika Replication Sharding)
  13. CNN(卷积神经网络)的深度
  14. 用python做自我介绍_使用Python实现自我介绍
  15. 深恶痛绝重写setter和getter
  16. 360全景拼接 opencv_GitHub - hellojiawa/AndroidPanoDemo: 使用Opencv全景照片拼接
  17. c#处理未捕获的异常(UnhandledException)
  18. 车载网络基础——预备篇
  19. DirtyWordsFilter(脏字过滤)
  20. 服务器硬盘选金盘好吗,硬盘怎么选?NAS 盘、监控盘、企业级盘区别?

热门文章

  1. voip语音中转服务器,基于VoIP的语音应用服务器的设计与实现
  2. C语言抽签(抽奖)小程序
  3. [现代控制理论]6_稳定性_李雅普诺夫_Lyapunov
  4. [线性代数] 常用定义与公式
  5. 【精】18款在线网页SVG编辑器
  6. 弱电箱只埋了一根网线时,如何上网和IPTV兼顾?
  7. linux svn备份,SVN完全备份svnadmin hotcopy
  8. 盘点年度最佳10大顶级绘图软件,满足你99%的图表需求,赶紧收藏
  9. 文件打包下载 (ZipArchive)
  10. uni中一些插件的使用