有限差分法
- 格式:doc
- 大小:1.24 MB
- 文档页数:19
有限差分法finite difference method用差分代替微分,是有限差分法的基本出发点。
是一种微分方程和积分微分方程数值解的方法。
把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。
然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解。
如何根据问题的特点将定解区域作网格剖分;如何把原微分方程离散化为差分方程组以及如何解此代数方程组。
此外为了保证计算过程的可行和计算结果的正确,还需从理论上分析差分方程组的性态,包括解的唯一性、存在性和差分格式的相容性、收敛性和稳定性。
对于一个微分方程建立的各种差分格式,为了有实用意义,一个基本要求是它们能够任意逼近微分方程,这就是相容性要求。
另外,一个差分格式是否有用,最终要看差分方程的精确解能否任意逼近微分方程的解,这就是收敛性的概念。
此外,还有一个重要的概念必须考虑,即差分格式的稳定性。
因为差分格式的计算过程是逐层推进的,在计算第n+1层的近似值时要用到第n层的近似值,直到与初始值有关。
前面各层若有舍入误差,必然影响到后面各层的值,如果误差的影响越来越大,以致差分格式的精确解的面貌完全被掩盖,这种格式是不稳定的,相反如果误差的传播是可以控制的,就认为格式是稳定的。
只有在这种情形,差分格式在实际计算中的近似解才可能任意逼近差分方程的精确解。
最常用的方法是数值微分法,比如用差商代替微商等。
另一方法叫积分插值法,因为在实际问题中得出的微分方程常常反映物理上的某种守恒原理,一般可以通过积分形式来表示。
此外还可以用待定系数法构造一些精度较高的差分格式。
龙格库塔龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。
有限差分法有限差分法是数学领域的一项最新成果,它在某些特定情况下能得到非常好的结果。
所谓有限差分方程就是利用积分和求差公式将差分方程化成为多个等价的偏微分方程组的组合形式,然后再应用最优化方法求解这种方程组,从而得出未知数的近似值。
当已知方程组的每个参数及其变量代入数据计算后的误差时,只要对其进行必要的调整或者修改后,就可获得满意的精度与效率的估计值。
此外,还可以通过有限差分方程的求解来了解其物理背景。
比如说在物体碰撞问题中,两个质点之间距离的测量往往涉及到很复杂的三维几何关系。
即使是一个小的距离误差也会引起很大的误差。
因此,对于碰撞问题中两个质点之间的相互位置误差测量,必须考虑它们之间的三维几何关系,并根据具体问题建立相应的坐标系统。
有限差分方程可以用来描述许多不同类型的实际问题,例如质量、压力、速度、温度、流动、热传导、声音和电磁场等。
但是由于数学模型本身的复杂性,使得有限差分方程在求解上遇到了困难。
因此,人们开始寻找一种更加直观的方法来解决问题。
有限差分法正是基于此原理提出的。
利用有限差分方程求解偏微分方程,我们首先要给出所求解的偏微分方程的数学表达式,这样才能够在有限差分方程的数学模型中寻找解析解。
有限差分方程的解析解,需要借助解析函数的理论来确定。
但是在自然科学和工程技术领域里,对于一般的实际问题,很少会存在着某种数学模型完全适合于所有的具体问题,那么对于任意一个偏微分方程,总是存在着一个解析解。
当把偏微分方程的解析解用适当的坐标表示出来后,有限差分方程的求解就转化为如何寻找与这个解相对应的函数值的问题。
通常,解析函数的形式是比较复杂的,因此需要运用数值方法进行拟合,从而得到符合实际的数学表达式。
然后通过对这个数学表达式的求解来确定所求偏微分方程的解析解。
这种数值求解方法称为数值积分法。
在研究有限元法和边界元法时都可以采用一些简单易行而且计算机可能很容易处理的函数作为边界条件,而这些函数本身又是很容易计算的。
有限差分法推导【最新版】目录1.有限差分法的基本概念2.有限差分法的推导方法3.有限差分法的应用实例4.有限差分法的优缺点正文一、有限差分法的基本概念有限差分法是一种数值计算方法,主要应用于求解偏微分方程的初值问题。
它是通过将连续的函数值用有限个离散点上的函数值来代替,从而将偏微分方程转化为关于这些离散点上的代数方程组。
这种方法可以有效地降低问题的复杂度,使得求解过程更加简便。
二、有限差分法的推导方法有限差分法的推导过程主要包括以下几个步骤:1.对边界条件进行离散处理,将边界上的函数值用有限个离散点上的函数值来代替。
2.对偏微分方程进行离散处理,将偏微分方程转化为关于这些离散点上的代数方程组。
3.求解代数方程组,得到离散点上的函数值。
4.通过插值方法,将离散点上的函数值还原为连续函数。
三、有限差分法的应用实例有限差分法广泛应用于各种物理、工程和数学问题中,例如求解热传导方程、波动方程和亥姆霍兹方程等。
下面以求解一维热传导方程为例,展示有限差分法的应用过程。
假设我们要求解如下的热传导方程:u/t = k * ^2u/x^2x = [0, 1]t = [0, T]边界条件:u(0, t) = f(t), u(1, t) = 0初始条件:u(x, 0) = 0我们可以通过以下步骤应用有限差分法:1.对边界条件进行离散处理,将边界上的函数值用有限个离散点上的函数值来代替。
2.对偏微分方程进行离散处理,将偏微分方程转化为关于这些离散点上的代数方程组。
3.求解代数方程组,得到离散点上的函数值。
4.通过插值方法,将离散点上的函数值还原为连续函数。
四、有限差分法的优缺点有限差分法具有以下优点:1.适用范围广泛,可以应用于各种偏微分方程的初值问题。
2.推导过程相对简单,容易理解和实现。
3.计算精度较高,可以通过增加离散点数来提高精度。
然而,有限差分法也存在以下缺点:1.计算量较大,需要处理大量的代数方程组。
2.对于某些问题,可能需要进行特殊的处理,例如处理不稳定的代数方程组。
有限差分法有限差分法(Finite Differential Method, FDM )什么是有限差分法 有限差分法是指用泰勒技术展开式将变量的导数写成变量,在不同时间或空间点值的差分形式的方法。
按时间步长和空间步长将时间和空间区域剖分成若干网格,用未知函数在网格结(节)点上的值所构成的差分近似代替所用偏微分方程中出现的各阶导数,从而把表示变量连续变化关系的偏微分方程离散为有限个代数方程,然后解此线性代数方程组,以求出溶质在各网格结(节)点上不同时刻的浓度。
有限差分法的基本步骤(1)剖分渗流区,确定离散点。
将所研究的水动力弥散区域按某种几何形状(如矩形、任意多边形等)剖分成网络系统。
(2)建立水动力弥散问题的差分方程组。
(3)求解差分方程组。
采用各种迭代法,如点逐次超松驰方法(SOR)、线逐次超松驰方法(LSOR)、迭代的交替方向隐式方法(IADI)及强隐式方法(SID)等。
(1) 现在分别对时间(从0时刻到到期日)和股票价格(S max )为可达到的足够高的股票价格)进行分割,即\triangle S=S_{max}/M,\triangle T/N,这样就分别有N+1个时间段和M+1个股票价格,建立如图(所示的坐标方格,将定解区域网格化,坐标方格上的点(i,j )对应时刻和股票价格,用变量f i ,j 表示(i,j )点的期权价格。
2.建立差分格式(1)内含的有限差分方法其步骤可分为以下几步:(1)求前向差分近似:(2) 后向差分格式:(3)将(2),(3)式平均可更加对称地求出的近似,即(4)(2)求用前向差分近似:(5)(3)求(6)(4)将(4),(5),(6)式代入(1)式可得到内含有限差分公式:+ b j f i,j−c j f i,j + 1 = f i + 1,j(7)aj f i,j− 1其中:i=0,1,…,N-1。
j=0,1…,M-1针对看跌期权和看涨期权可分别求出方程的边界条件:看跌期权:看涨期权:(5)利用边界条件和(7)式可以给出M-1个联立方程组:+ b j f N− 1,j + c j f N− 1,j + 1j=1,2…,M-1aj f N− 1,j− 1求解这M-1个联立方程组即可以求出期权价格,但对美式看跌期权时我们必须考虑其提前执行的情况。
1. 引言有限差分法(Finite Difference Method,FDM)是一种求解微分方程数值解的近似方法,其主要原理是对微分方程中的微分项进行直接差分近似,从而将微分方程转化为代数方程组求解。
有限差分法的原理简单,粗暴有效,最早由远古数学大神欧拉(L. Euler 1707-1783)提出,他在1768年给出了一维问题的差分格式。
1908年,龙格(C. Runge 1856-1927)将差分法扩展到了二维问题【对,就是龙格-库塔法中的那个龙格】。
但是在那个年代,将微分方程的求解转化为大量代数方程组的求解无疑是将一个难题转化为另一个难题,因此并未得到大量的应用。
随着计算机技术的发展,快速准确地求解庞大的代数方程组成为可能,因此逐渐得到大量的应用。
发展至今,有限差分法已成为一个重要的数值求解方法,在工程领域有着广泛的应用背景。
本文将从有限差分法的原理、基本差分公式、误差估计等方面进行概述,给出其基本的应用方法,对于一些深入的问题不做讨论。
2. 有限差分方法概述首先,有限差分法是一种求解微分方程的数值方法,其面对的对象是微分方程,包括常微分方程和偏微分方程。
此外,有限差分法需要对微分进行近似,这里的近似采取的是离散近似,使用某一点周围点的函数值近似表示该点的微分。
下面将对该方法进行概述。
2.1. 有限差分法的基本原理这里我们使用一个简单的例子来简述有限差分法的基本原理,考虑如下常微分方程\begin{cases} u'(x)+c(x)u(x)=f(x), \quad x \in [a, b]; \\u(x=a) = d \end{cases} \tag{1}微分方程与代数方程最大的不同就是其包含微分项,这也是求解微分方程最难处理的地方。
有限差分法的基本原理即使用近似方法处理微分方程中的微分项。
为了得到微分的近似,我们最容易想到的即导数定义u'(x)=\lim_{\Delta x\rightarrow 0} \frac{u(x+\Delta x)-u(x)}{\Delta x}\approx \frac{u(x+\Delta x)-u(x)}{\Delta x} \tag{2}上式后面的近似表示使用割线斜率近似替代切线斜率,\Delta x 即为步长,如图 1(a)所示。
第四章有限差分方法4.1引言有限差分法:数值求解常微分方程或偏微分方程的方法。
物理学和其他学科领域的许多问题在被分析研究之后, 往往可以归结为常微分方程或偏微分方程的求解问题。
一般说来,处理一个特定的物理问题,除了需要知道它满足的数学方程外,还应当同时知道这个问题的定解条件,然后才能设计出行之有效的计算方法来求解。
有限差分法以变量离散取值后对应的函数值来近似微分方程中独立变量的连续取值。
在有限差分方法中,我们放弃了微分方程中独立变量可以取连续值的特征,而关注独立变量离散取值后对应的函数值。
但是从原则上说,这种方法仍然可以达到任意满意的计算精度。
因为方程的连续数值解可以通过减小独立变量离散取值的间格,或者通过离散点上的函数值插值计算来近似得到。
这种方法是随着计算机的诞生和应用而发展起来的。
其计算格式和程序的设计都比较直观和简单,因而,它的实际应用已经构成了计算数学和计算物理的重要组成部分。
有限差分法的具体操作分为两个部分:(1)用差分代替微分方程中的微分,将连续变化的变量离散化,从而得到差分方程组的数学形式; (2)求解差分方程组。
在第一步中,我们通过所谓的网络分割法,将函数定义域分成大量相邻而不重合的子区域。
通常采用的是规则的分割方式。
这样可以便于计算机自动实现和减少计算的复杂性。
网络线划分的交点称为节点。
若与某个节点P 相邻的节点都是定义在场域内的节点,则P 点称为正则节点;反之,若节点P 有处在定义域外的相邻节点,则P 点称为非正则节点。
在第二步中,数值求解的关键就是要应用适当的计算方法,求得特定问题在所有这些节点上的离散近似值。
有限差分法的差分格式:一个函数在x 点上的一阶和二阶微商,可以近似地用它所临近的两点上的函数值的差分来表示。
如对一个单变量函数f(x),x 为定义在区间[a,b]的连续变量。
以步长h=Δx 将[a,b]区间离散化,我们得到一系列节点x = a , x = x + h , x = x + h = a + 212132Δx , ..., x = x + h = b , 然后求出 f(x)在这些点上的近似值。
有 限 差 分 法流体运动的控制方程多为偏微分方程,在复杂的情况下不存在解析解。
但是对于一些简单的情况存在解析解,偏微分方程的解析解可用精确的数学表达式表示,该表达式给出了因变量在整个定义域中的连续变化状况。
有限差分法(Finite Difference Method ,FDM )是数值计算中比较经典的方法,由于其计算格式直观且计算简便,因此被广泛地应用在计算流体力学中。
有限差分法首先将求解区域划分为差分网格,变量信息存储在网格节点上,然后将偏微分方程的导数用差商代替,代入微分方程的边界条件,推导出关于网格节点变量的代数方程组,通过求解代数方程组,获得偏微分方程的近似解。
偏微分方程被包含离散点未知量的代数方程所替代,这个代数方程能求出离散节点处的变量,这种离散方法叫做有限差分法。
2.1有 限 差 分 逼 近2.1.1 有限差分网格 由于有限差分法求解的是网格节点上的未知量值,因此首先介绍有限差分网格。
图2.1 – 1是x-y 平面上的矩形差分网格示意图。
在x 轴方向的网格间距为△x ,在y 轴方向的网格间距为△y ,网格的交点称为节点,计算变量定义在网格节点上。
称△x 和△y 为空间步长,△x 一般不等于△y ,且△x 和△y 也可以不为常数。
取各方向等距离的网格,可以大大简化数学模型推导过程,并且经常会取得更加精确的数值解。
本章作为计算流体力学入门知识,假设沿坐标轴的各个方向网格间距分别相等,但是并不要求各方向的网格间距一致。
例如假设△x 和△y 是定值,但是不要求△x 等于△y 。
在图2.1 - 1中,网格节点在x 方向用i 表示,在y 方向用j 表示。
因此,假如(i ,j )是点P 在图2.1 – 1中的坐标,那么,点P 右边的第一个点的就可以用(i+1,j )表示;在P 左边的第一个点的就可以用(i —1,j )表示;点P 上边的第一个点的就可以用(i ,j+1)表示;点P 下边的第一个点的就可以用(i ,j —1)表示。
2.1.2 几种差分近似将微分方程化为有限差分方程时,最普遍的形式是基于泰勒展开(Taylor expantion )的。
如图2.1 – 2 所示,假如,i j u 表示点(i ,j )的待求量,那么,点(i+1,j )的未知量1,i j u +就可以用基于点(i ,j )的Taylor 展开表示221,,,,2()()()2i j i j i j i j x u u u u x x x +∆∂∂=+∆+∂∂33,3()()6i j x u x ∆∂++⋅⋅⋅∂ (2.1 - 1) 式(2.1 - 1)是1,i j u +的数学精确表达式,假如数值是有限的而且系列是收敛的,并且△x 趋近于零。
通过下面的例子来进一步说明泰勒展开及其计算精度。
考虑关于自变量x 的连续方程f(x),其中所有的微分都针对x 。
如在点x 处的函数值f(x)已知,那么,f(x+△x)值可以通过Taylor 展开从x 处的信息知道,即222()()()()2!nn n x x f f f f x x f x x x x x n ∆∆∂∂∂+∆=+∆++⋅⋅⋅++⋅⋅⋅∂∂∂ (2.1 - 2) 式(2.1 - 2)的意义如图2.1 – 2所示。
假设知道f 在x (图2.1 – 2中的点1)处的值,想利用式(2.1 - 2)求解f 在x+△x(图2.1 – 2中的点2)处的值。
检查式(2.1 – 2)的右侧,可以看见第一项f(x)不能作为对f(x+△x)的良好近似,除非函数f(x)为常数。
一个重要的精度改进是利用点1处的曲线斜率,这就是式(2.1 - 2)的第二项f x x∂∆∂的作用。
为了取得f(x+△x)处的更好的近似,加入了第三项222()2x f x ∆∂∂,这是点1和点2之间的曲线曲率。
一般来说,为了取得更高的精度,必须加入更高的项。
实际上,当式(2.1 - 2)右端有无穷多项高阶项时,它就变成了f(x+△x)的精确表示。
1. 一阶前差分下面结合式(2.1 - 1)讨论有限差分的形式,解式(2.1 - 1)的,()i j u x∂∂,可以得到 2231,,,,,23()()()()26i j i j i j i j i j u u x x u u u x x x x +-∆∆∂∂∂=--+⋅⋅⋅∂∆∂∂ (2.1 - 3) 式中:等式左端的微分项是在点(i ,j )处取值;右端的第一项,即1,,i j i ju u x +-∆是微分项的有限差分形式;右端剩下的部分是截断误差。
所以式(2.1 - 3)可近似写为1,,,()i j i j i j u u u x x+-∂≈∂∆ (2.1 - 4) 将式(2.1 - 4)与式(2.1 - 3)对比,可以看出式(2.1 - 4)具有截断误差,并且截断误差的最低阶是△x 的一次方。
因此,称式(2.1 - 4)的有限差分形式为一阶精度。
可以将式(2.1 – 4)更加精确的表示为1,,,()()i j i j i j u u u O x x x+-∂=+∆∂∆ (2.1 - 5) 式(2.1 - 5)中,符号()O x ∆是表示截断误差,代表“△x 的阶”。
在式(2.1 - 5)中,截断误差的阶数被明确的表示出来。
从图2.1 – 1可以看出,式(2.1 - 5)中的有限差分格式使用到了点(i ,j )及其右边的信息,即用到了,i j u 和1,i j u +;没有用到点(i ,j )左边的信息,所以式(2.1 - 5)中的有限差分格式叫做前差分。
因此定义式(2.1 - 5)中,()i j u x∂∂的一阶有限差分形式为一阶前差分。
图2.1 – 3中将x 方向一阶前差分用到的节点称为差分模块,点周围标明加号或减号是与公式相对应的。
2.一阶后差分现在写出用,i j u 表示1,i j u - 的Taylor 展开形式:23231,,,,,23()()()()()26i ji j i j i j i j x x u u u u u x x x x -∆∆∂∂∂=-∆+-+⋅⋅⋅∂∂∂ (2.1 - 6) 对于,()i j u x∂∂,可以得到 ,1,,()()i j i j i j u u u O x x x--∂=+∆∂∆ (2.1 - 7) 组成式(2.1 - 7)的有限差分的信息来自于点(i ,j )的左边,也就是说,用到了,i j u 和1,i j u -,没有用到点(i ,j )右边的信息,所以等式(2.1 - 7)中的有限差分格式叫做后差分。
而且截断误差中△x 的最低阶数是一阶,所以,称式(2.1- 7)中的有限差分格式为一阶后差分。
相应的差分模块如图2.1 – 4所示。
3.二阶中心差分在计算流体力学应用中,差分格式仅仅为一阶精度是不够的。
为了建立二阶的有限差分格式,可以用式(2.1 - 1)减去式(2.1 - 6),得331,1,,,3()2()2()6i j i ji j i j x u u u u x x x +-∆∂∂-=∆++⋅⋅⋅∂∂ (2.1 - 8) 式(2.1 - 8)可以写为 1,1,2,()()2i j i j i j u u u O x x x+--∂=+∆∂∆ (2.1 - 9) 组成式(2.1 - 9)的有限差分的信息来自于点(i ,j )的左右两边,也就是说,用到了1,i j u +,,i j u 和1,i j u -,点(i ,j )在两个相邻的格点之间。
而且,式(2.1 - 8)中的截断误差中△x 的最低阶数是2()x ∆,即二阶。
因此,称式(2.1 - 9)的有限差分为二阶中心差分。
同理,y 方向差分的获得使用的是与上述相同的方法,结果也和上面x 方向的等式相似,即,1,,,1,,1,12()()()()2i j i j i j i j i j i j i j u u O y y u u u O y y y u u O y y +-+--⎧+∆⎪∆⎪⎪-∂⎪=+∆⎨∂∆⎪⎪-+∆⎪∆⎪⎩前差分 (2.1-10)后差分 (2.1-11)中心差分 (2.1-12)y 方向相应的差分模块如图2.1 – 6、图2.1 – 7和图2.1 – 8所示。
式(2.1 - 5)、式(2.1 - 7)以及式(2.1 - 9)~式(2.1 - 12)都是对一阶导数项的有限差分形式。
4.二阶导数的中心差分在流体力学方程中,扩散项或黏性项中存在关于变量的二阶导数。
采用下面的Taylor 展开方式可以获得二阶导数的差分形式。
将式(2.1 - 1)和式(2.1 - 6)相加,有42421,1,,,,24()2()()()12i j i j i j i j i j x u u u u u x x x +-∆∂∂+=+∆++⋅⋅⋅∂∂ 2,2()i j u x∂∂可以表示为 21,,1,2,222()()()i j i j i j i j u u u u O x x x +--+∂=+∆∂∆ (2.1 - 13) 在式(2.1 - 13)中,右边的第一项是点(i ,j )在x 方向二阶微分形式的中心差分,从剩下的项中可以看到中心差分是二阶精度的。
x 方向二阶导数的二阶中心差分模块,如图2.1 – 9所示,点周围的加号和减号表示这些点是被加还是被减,例如点(i ,j )旁边的(—2)表示在形成有限差分形式的时候,这个点被减了两次。
y 方向二阶微分形式可以类似的得出21,,1,2,222()()()i j i j i j i j u u u u O y y y +--+∂=+∆∂∆ (2.1 - 14)式(2.1 - 13)和式(2.1 - 14)是二阶导数的二阶中心差分的例子。
5. 二阶混合导数的差分对于混合微分形式,例如2/u x y∂∂∂,也可以得出适当的有限差分形式。
利用式中(2.1 - 1),可以得到232341,,,,,23()() ()()()()()26i j i j i j i j i jx xu u u u uxy y x y x y x y+∆∆∂∂∂∂∂=+∆+++⋅⋅⋅∂∂∂∂∂∂∂∂(2.1 - 15)利用式(2.1 - 6),可以得到232341,,,,,23()() ()()()()()26i j i j i j i j i jx xu u u u uxy y x y x y x y-∆∆∂∂∂∂∂=-∆+-+⋅⋅⋅∂∂∂∂∂∂∂∂(2.1 - 16)用式(2.1 - 15)减去式(2.1 - 16),得3241,1,,,3()()()2()()6i j i j i j i jxu u u uxy y x y x y+-∆∂∂∂∂-=∆++⋅⋅⋅∂∂∂∂∂∂将混合微分2,()i jux y∂∂∂用有限差分表示1,1,324,,3()()()()()212i j i ji j i ju uxu uy yx y x x y+-∂∂-∆∂∂∂∂=-+⋅⋅⋅∂∂∆∂∂(2.1 - 17)在式(2.1 - 17)中,右边的第一项含有uy∂∂,计算点为(i+1,j)和(i—1,j)。