有限差分法
- 格式:doc
- 大小:247.50 KB
- 文档页数:10
有限差分法finite difference method用差分代替微分,是有限差分法的基本出发点。
是一种微分方程和积分微分方程数值解的方法。
把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。
然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解。
如何根据问题的特点将定解区域作网格剖分;如何把原微分方程离散化为差分方程组以及如何解此代数方程组。
此外为了保证计算过程的可行和计算结果的正确,还需从理论上分析差分方程组的性态,包括解的唯一性、存在性和差分格式的相容性、收敛性和稳定性。
对于一个微分方程建立的各种差分格式,为了有实用意义,一个基本要求是它们能够任意逼近微分方程,这就是相容性要求。
另外,一个差分格式是否有用,最终要看差分方程的精确解能否任意逼近微分方程的解,这就是收敛性的概念。
此外,还有一个重要的概念必须考虑,即差分格式的稳定性。
因为差分格式的计算过程是逐层推进的,在计算第n+1层的近似值时要用到第n层的近似值,直到与初始值有关。
前面各层若有舍入误差,必然影响到后面各层的值,如果误差的影响越来越大,以致差分格式的精确解的面貌完全被掩盖,这种格式是不稳定的,相反如果误差的传播是可以控制的,就认为格式是稳定的。
只有在这种情形,差分格式在实际计算中的近似解才可能任意逼近差分方程的精确解。
最常用的方法是数值微分法,比如用差商代替微商等。
另一方法叫积分插值法,因为在实际问题中得出的微分方程常常反映物理上的某种守恒原理,一般可以通过积分形式来表示。
此外还可以用待定系数法构造一些精度较高的差分格式。
龙格库塔龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。
有限差分法有限差分法(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个联立方程组即可以求出期权价格,但对美式看跌期权时我们必须考虑其提前执行的情况。
有限差分公式
有限差分是微分方程解的近似值的一种表示方法,通常用数学表达式
f(x+b)-f(x+a)来表示。
如果将有限差分除以b-a,则可以得到差商。
在微分方程数值解的有限差分方法中,特别是处理边界值问题时,有限差分导数的逼近起着关键的作用。
有限差分通常考虑三种形式:正向差分、反向差分和中心差分。
正向差分是f(x+h)-f(x),反向差分是f(x)-f(x-h),中心差分是f(x+h)-f(x-h)。
当h取为1时,正向差分除以h近似于导数。
在数值方法中,有限差分法是一种常用的数值解法,它用差商代替微分方程中的偏导数,从而得到相应的差分方程。
通过解这个差分方程,可以得到微分方程解的近似值。
以上内容仅供参考,如需更多信息,建议查阅数学类书籍或咨询数学专业人士。
第四章有限差分方法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)在这些点上的近似值。
对所学有限差分法的总结和其一些应用07410301班邓齐波20032471一:有限差分方法的总结有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用。
该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。
有限差分法以Taylor级数展开等方法,把控制方程中的导数用网各界点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。
该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。
分类对于有限差分格式,从格式的精度来划分,有一阶格式、二阶格式和高阶格式。
从差分的空间形式来考虑,可分为中心格式和逆风格式。
考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。
目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。
差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。
构造差分的方法构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。
其基本的差分表达式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等,其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。
通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。
在所学课程‘力学计算’中《偏微分方程数值解》,我们主要学习了一维抛物型方程、二维和三维抛物型方程、一维双曲型方程以及二维线形二阶椭圆型方程。
流体力学有限差分法与结构力学有限元法区别对于有限差分格式,从格式的精度来划分,有一阶格式、二阶格式和高阶格式。
从差分的空间形式来考虑,可分为中心格式和逆风格式。
考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。
目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。
差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。
有 限 差 分 法流体运动的控制方程多为偏微分方程,在复杂的情况下不存在解析解。
但是对于一些简单的情况存在解析解,偏微分方程的解析解可用精确的数学表达式表示,该表达式给出了因变量在整个定义域中的连续变化状况。
有限差分法(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章 有限差分法2.1 引言所有的守恒方程都具有相似的结构,而且都可以看作是输运方程的特殊形式。
本章以一般输运方程在Cartesian 坐标系下的表达式为例来讲述有限差分法。
()φφφρq xx x u j jjj +⎪⎪⎭⎫⎝⎛∂∂Γ∂∂=∂∂ (2.1)在上述方程中,除外都认为是已知函数。
2.2 基本概念FD 方法的第一步是离散几何的求解域,也就是说定义数值网格。
在FD 中,网格是局部结构化的,每个网格节点都可以看作是局部坐标系的原点,网格线则是局部坐标系的坐标线。
同族的网格线两两互不相交。
每一个网格节点都可用一组指标唯一的标定。
差分形式的标量守恒方程(2.1)是FD 法的原始方程。
并被近似为以网格节点上的守恒量为未知数的代数方程系统。
代数方程组的解近似为原微分方程的解。
每一个带有未知数的节点都必须有一个代数方程,在节点以及相邻节点上的未知数之间建立联系。
这个代数方程用在接点处用有限差分近似代替偏导数的形式获得。
对于Dirichlet 边界条件,边界上不需要代数方程,,对于其他边界条件,则必须将边界条件离散以得到所需的代数方程。
有限差分的概念是从导数的定义中得到的:x x x x x i i x x i∆-∆+=⎪⎭⎫⎝⎛∂∂→∆)()(lim 0φφφ (2.2)几种常用的差分格式:向前差分(forward difference )ii ii x x x --≈∂∂++11φφφ (2.3)向后差分(backward difference )11----≈∂∂i i i i x x x φφφ (2.4)中心差分(central difference )1111-+-+--≈∂∂i i i i x x x φφφ (2.5)2.3 一阶导数的近似(2.1) 式中的对流项()xu ∂∂φρ需要对一阶导数进行离散。
2.3.1 Taylor 级数展开法任意的连续函数(x)可在x i 的领域内展开成Taylor 级数()()()()()H x n x x x x x x x x x x x x x in nni ii i i ii i +⎪⎪⎭⎫ ⎝⎛∂∂-++⎪⎪⎭⎫ ⎝⎛∂∂-+⎪⎪⎭⎫⎝⎛∂∂-+⎪⎭⎫ ⎝⎛∂∂-+=φφφφφφ!...!32)(333222(2.6)H 为高阶项,用x i -1,x i +1代替x 这些点处的函数值在x i 附近的展开式。
利用这些展开式可得一阶和高阶导数在x i 的近似表达式。
例如()()H x x x x x x x x x i i i i ii i i i +⎪⎪⎭⎫⎝⎛∂∂--⎪⎪⎭⎫ ⎝⎛∂∂----=⎪⎭⎫ ⎝⎛∂∂++++333122211162φφφφφ (2.7)或者是:()()H x x x x x x x x x i i i i i i i i i +⎪⎪⎭⎫ ⎝⎛∂∂--⎪⎪⎭⎫ ⎝⎛∂∂----=⎪⎭⎫ ⎝⎛∂∂----333122211162φφφφφ (2.8)()()()()()()H x x x x x x x x x x x x x x x x x i i i i i i i i i i i i i i i i i +⎪⎪⎭⎫ ⎝⎛∂∂--+--⎪⎪⎭⎫⎝⎛∂∂-------=⎪⎭⎫ ⎝⎛∂∂-+-+-+-+-+-+3311313122112121111162φφφφφ (2.9)当网格间距较小时,高阶项很小,在各级数中截取第一项,得:i-2 i-1 i i+1 i+2中心差分 CDS向前差分 FDS向后差分 BDS精确解i i i i i x x x --≈⎪⎭⎫ ⎝⎛∂∂++11φφφ (2.10)11----≈⎪⎭⎫⎝⎛∂∂i i i ii x x x φφφ (2.11)1111-+-+--≈⎪⎭⎫⎝⎛∂∂i i i i i x x x φφφ (2.12)上面三个公式依次是FDS (forward difference scheme ),BDS (backward difference scheme ),CDS (central difference scheme )被截去的项称为截断误差。
FDS 和BDS 为一阶精度差分格式,当网格均匀时,CDS 具有二阶精度。
2.3.2 多项式拟合法在构造差分格式时,也可以用多项式曲线(或样条曲线)来拟合函数,然后用拟合曲线的导数来近似原函数的导数。
例如采用抛物线拟合x i-1,x i ,x i+1三点,可得:()()()()[])(1122121121++++-+∆+∆∆∆∆-∆+∆+∆=⎪⎭⎫ ⎝⎛∂∂i i i i i i i i i i i i x x x x x x x x x φφφφ (2.13)采用不同的插值曲线可获得不同的差分格式,如()()32116632x O x x i i i i i∆+∆+-+=⎪⎭⎫ ⎝⎛∂∂--+φφφφφ (2.14)()()32116632x O x x i i i i i∆+∆-+--=⎪⎭⎫ ⎝⎛∂∂+++φφφφφ (2.15)()()421121288x O x x i i i i i∆+∆+-+-=⎪⎭⎫ ⎝⎛∂∂--++φφφφφ (2.16)(2.14)~(2.16)依次为三阶精度的BDS ,FDS 和4阶精度的CDS2.3.3 迎风格式对于发展方程:()⎪⎪⎩⎪⎪⎨⎧≥=≥=>≤≤=∂∂+∂∂0)(),0(0)()0,(0,100t t t u x x f x u a x x u a t uψ(2.17)方程的解为:()()⎪⎩⎪⎨⎧≤--≥--=0)(0,at x a xt at x at x f t x u ψ(2.17)当x-at=常数时,u 为常数,利用这一特性可得A n ju u =+1 (2.18)利用线性插值:()n j n j j j j A nj A u ux x x x uu 1111-------+=(2.19)由此可得差分格式:()n j nj j j j A nj n j u ux x x x u u 11111----+---+=(2.20)由于t a x x A j ∆=-,1--=∆j j x x x()()n j n j nj n j n j n j n j u u xt a u u u x t a x u u 1111---+-∆∆-=-∆∆-∆+=(2.21)整理得:()011=∆-+∆--+xu ua tu u n j n j n jn j (2.22)当a<0时,同理可得:()011=∆-+∆-++xu u at u u n jnj n jn j (2.23)结合(2.22)和(2.23)可得:()()022111=∆--+∆-++∆-+-+xu ua a xu u a a tu u n jnj nj n j njn j (2.24)j-1 j j+1n+1nA(j,n+1)(2.24)式中,a 相当于流体力学动量方程中的速度u ,差分格式(2.24)反映了上游对下游影响较大这一事实,这种差分格式称为迎风格式(upwind scheme)2.4 二阶导数的近似方程(2.1)中的扩散项⎪⎭⎫⎝⎛∂∂Γ∂∂x x φ为二阶导数项,二阶导数可以用一阶导数的差分得到,也可以用Taylor 级数法得到二阶导数的差分。
采用Taylor 级数法可得二阶导数的差分()()()()()()()()H x x x x x x x x x x x x x x x x x x ii i i i i i i i i i i i i i i i i i i i+⎪⎪⎭⎫⎝⎛∂∂----------+-=⎪⎪⎭⎫ ⎝⎛∂∂-+-+-+-++--+33111111*********2/φφφφφ (2.25)也可以用一阶偏导数的差分得到:2/)(2/)(11112/1112/1112/12/1-+---+++-+-+---Γ---Γ≈-⎪⎭⎫ ⎝⎛∂∂Γ-⎪⎭⎫ ⎝⎛∂∂Γ≈⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛∂∂Γ∂∂i i i i i ii i i i i i i i i i ix x x x x x x x x x x x φφφφφφφ(2.26)2.5 混合导数的近似混合偏导数的差分可以用一阶导数的差分得到⎪⎪⎭⎫⎝⎛∂∂∂∂=∂∂∂y x y x φφ2 (2.27)2.6 边界条件在网格的内点,用差分格式来离散PDE ,为了得到唯一的解,还需要在边界点上给出边界信息。
对于Dirichlet 边界条件,边界上的值直接给出,无需用新的方程。
对于Neumann 边界条件和混合边界条件,则需在边界上对边界条件进行离散。
对于邻近边界的内点,当采用高阶精度格式时,其差分格式也应作特殊处理。
()()4123452603310186x O x x ∆+∆-+++-=⎪⎭⎫ ⎝⎛∂∂φφφφφφ (2.28)()()31234522260147240189621x O x x ∆+∆+-++-=⎪⎪⎭⎫ ⎝⎛∂∂φφφφφφ (2.29)在边界上0012121=--⇒=⎪⎭⎫⎝⎛∂∂x x x φφφ (2.30)采用高阶差分格式()()()()[]()()()2313122122131213221231x x x x x x x x x x x x x x x --------+--≈⎪⎭⎫⎝⎛∂∂φφφφ (2.31)如果网格是均匀的,(2.31)简化为:x x ∆-+-≈⎪⎭⎫⎝⎛∂∂2341231φφφφ (2.32)2.7 有限差分法的应用实例例1.一维扩散方程()()()()()⎪⎪⎩⎪⎪⎨⎧===≥≤≤Γ=t B t l t A t x f x t l x xxt ,,0)0,(0,0φφφφφ(2.33)采用均匀网格,将直线段均匀划分为N 份,网格节点l Ni x i 1-=,1,....,2,1,0+=N i ,网格间距N l x /=∆,时间步长为t ∆。
空间扩散项采用中心差分格式:()2112x i i i xx ∆+-Γ=Γ+-φφφφ (2.32)对于时间项则分别采用三种不同格式:A :FTCS 格式(时间向前差分,空间中心差分)()21112x t t ni n i n i n i n i ni∆+-Γ=∆-≈⎪⎭⎫ ⎝⎛∂∂+-+φφφφφφ (2.33)上式中物理量的上标表示时间步。
令()2x t∆Γ∆=σ()n i n i n i n i 11121+-++-+=σφφσσφφ(2.34)边界条件:()()111111;+++++==n n N n n t B t A φφ(2.35)由于采用时间推进算法,在计算n +1时间层时,n 时间层已求解完毕,(2.34)式可以根据上一时间层的结果直接获得当前时间层的物理量而无需求解代数方程组,这样的差分格式称为显格式。