有限差分方法基础
- 格式:ppt
- 大小:1.76 MB
- 文档页数:87
有限差分法finite difference method用差分代替微分,是有限差分法的基本出发点。
是一种微分方程和积分微分方程数值解的方法。
把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。
然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解。
如何根据问题的特点将定解区域作网格剖分;如何把原微分方程离散化为差分方程组以及如何解此代数方程组。
此外为了保证计算过程的可行和计算结果的正确,还需从理论上分析差分方程组的性态,包括解的唯一性、存在性和差分格式的相容性、收敛性和稳定性。
对于一个微分方程建立的各种差分格式,为了有实用意义,一个基本要求是它们能够任意逼近微分方程,这就是相容性要求。
另外,一个差分格式是否有用,最终要看差分方程的精确解能否任意逼近微分方程的解,这就是收敛性的概念。
此外,还有一个重要的概念必须考虑,即差分格式的稳定性。
因为差分格式的计算过程是逐层推进的,在计算第n+1层的近似值时要用到第n层的近似值,直到与初始值有关。
前面各层若有舍入误差,必然影响到后面各层的值,如果误差的影响越来越大,以致差分格式的精确解的面貌完全被掩盖,这种格式是不稳定的,相反如果误差的传播是可以控制的,就认为格式是稳定的。
只有在这种情形,差分格式在实际计算中的近似解才可能任意逼近差分方程的精确解。
最常用的方法是数值微分法,比如用差商代替微商等。
另一方法叫积分插值法,因为在实际问题中得出的微分方程常常反映物理上的某种守恒原理,一般可以通过积分形式来表示。
此外还可以用待定系数法构造一些精度较高的差分格式。
龙格库塔龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。
有限差分法的原理与计算步骤有限差分法(Finite Difference Method)是一种常用的数值计算方法,用于求解偏微分方程的数值解。
其基本原理是将连续的偏微分方程转化为差分方程,通过逼近导数,使用离散的点代替连续的点,从而将问题转化为代数问题。
下面将详细介绍有限差分法的原理和计算步骤:一、基本原理:有限差分法基于Taylor级数展开,通过利用函数在其中一点附近的导数信息来逼近函数在该点处的值。
该方法将连续的偏微分方程转化为差分方程,使用离散的点代替连续的点,从而将问题转化为代数问题。
在有限差分法中,常用的差分逼近方式有前向差分、后向差分和中心差分。
二、计算步骤:1.网格划分:将求解区域划分为有限个离散点,并定义网格上的节点和网格尺寸。
通常使用等距离网格,即每个网格点之间的间距相等。
2.离散化:将偏微分方程中的各个导数项进行逼近,利用差分近似来替代和求解。
一般采用中心差分逼近方式,即通过函数值在两侧点的差来逼近导数。
3.代数方程系统:利用离散化的差分方程,将偏微分方程转化为代数方程系统。
根据问题的边界条件和初值条件,构建代数方程系统的系数矩阵和常数向量。
4. 求解代数方程:利用求解线性方程组的方法求解代数方程系统,常用的方法有直接法(如高斯消元法、LU分解法)和迭代法(如Jacobi迭代法、Gauss-Seidel迭代法)。
求解得到各个离散点的解。
5.后处理:根据求解结果进行后处理,包括结果的插值和可视化。
将离散点的解通过插值方法进行平滑处理,并进行可视化展示,以得到连续的函数解。
三、优缺点:1.直观:有限差分法基于网格划分,易于理解和实现。
2.精度可控:可通过调整网格大小和差分逼近方式来控制计算的精度。
3.广泛适用性:可用于求解各种偏微分方程,适用于不同的边界条件和初值条件。
然而,有限差分法也存在一些缺点:1.精度依赖网格:计算结果的精度受到网格划分的影响,因此需要谨慎选择网格大小。
2.限制条件:有限差分法适用于边界对应点处导数有定义的问题,不适用于奇异点和非线性问题。
3第二章有限差分方法基础解读有限差分方法是数值计算中常用的一种方法,用于求解偏微分方程的数值解。
它的基本思想是将连续的空间或时间域离散化为有限的点,然后用差分近似代替导数,将偏微分方程转化为差分方程,从而得到问题的数值解。
有限差分方法的基础概念有三个:差分节点、差分近似和差分方程。
差分节点是指将连续的自变量区域划分为离散的点,这些点被称为节点。
差分近似是指用函数在差分节点上的函数值来近似代替它们的导数值。
差分方程是指在差分节点上建立的方程,用来表示问题的数值解。
在有限差分方法中,常用的几种差分格式有:向前差分、向后差分和中心差分。
其中,向前差分是将函数在节点$x_i$处的导数近似为$f'(x_i)≈\frac{f(x_i+h)-f(x_i)}{h}$,向后差分是将函数在节点$x_i$处的导数近似为$f'(x_i)≈\frac{f(x_i)-f(x_i-h)}{h}$,中心差分是将函数在节点$x_i$处的导数近似为$f'(x_i)≈\frac{f(x_i+h)-f(x_i-h)}{2h}$。
这些差分格式的选择要根据问题的具体情况和求解的精度要求来确定。
有限差分方法中,差分方程的建立是非常重要的一步。
一般来说,差分方程的建立需要利用边界条件和初始条件。
对于初始条件,通常是指给定问题在初始时刻或初始位置上的条件;而边界条件是指给定问题在边界上的条件。
缺乏良好的边界条件和初始条件会导致差分方程无法建立或无法得到合理的数值解。
因此,在使用有限差分方法求解偏微分方程时,需要仔细考虑问题的边界条件和初始条件,并将其合理地纳入差分方程中。
有限差分方法还包括时间步长和空间步长的选择。
时间步长是指时间域上的离散间隔,空间步长是指空间域上的离散间隔。
时间步长和空间步长的选取要兼顾问题的稳定性和精度要求。
一般来说,时间步长和空间步长越小,计算的精度越高,但计算量也会增加。
因此,在具体应用中,需要根据问题的特点和计算资源的限制来选择合适的步长。
有限差分法有限差分法(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个联立方程组即可以求出期权价格,但对美式看跌期权时我们必须考虑其提前执行的情况。
matlab有限差分法一、前言Matlab是一种广泛应用于科学计算和工程领域的计算机软件,它具有简单易学、功能强大、易于编程等优点。
有限差分法(Finite Difference Method)是一种常用的数值解法,它将微分方程转化为差分方程,通过对差分方程进行离散化求解,得到微分方程的数值解。
本文将介绍如何使用Matlab实现有限差分法。
二、有限差分法基础1. 有限差分法原理有限差分法是一种通过将微分方程转化为离散形式来求解微分方程的数值方法。
其基本思想是将求解区域进行网格划分,然后在每个网格点上进行逼近。
假设要求解一个二阶常微分方程:$$y''(x)=f(x,y(x),y'(x))$$则可以将其转化为离散形式:$$\frac{y_{i+1}-2y_i+y_{i-1}}{h^2}=f(x_i,y_i,y'_i)$$其中$h$为网格步长,$y_i$表示在$x_i$处的函数值。
2. 一维情况下的有限差分法对于一维情况下的常微分方程:$$\frac{d^2 y}{dx^2}=f(x,y,y')$$可以使用中心差分法进行离散化:$$\frac{y_{i+1}-2y_i+y_{i-1}}{h^2}=f(x_i,y_i,y'_i)$$这个方程可以写成矩阵形式:$$A\vec{y}=\vec{b}$$其中$A$为系数矩阵,$\vec{y}$为函数值向量,$\vec{b}$为右端项向量。
三、Matlab实现有限差分法1. 一维情况下的有限差分法假设要求解的方程为:$$\frac{d^2 y}{dx^2}=-\sin(x)$$首先需要确定求解区域和网格步长。
在本例中,我们将求解区域设为$[0,2\pi]$,网格步长$h=0.01$。
则可以通过以下代码生成网格:```matlabx = 0:0.01:2*pi;```接下来需要构造系数矩阵和右端项向量。
根据上面的公式,系数矩阵应该是一个三对角矩阵,可以通过以下代码生成:```matlabn = length(x)-2;A = spdiags([-ones(n,1), 2*ones(n,1), -ones(n,1)], [-1 0 1], n, n); ```其中`spdiags`函数用于生成一个稀疏矩阵。
第⼆章有限差分基础第2章有限差分基础(finite difference method ,FDM )1.1 偏微分⽅程的⼀般形式()()φφφρρφq x x x u t j j j j +Γ=+ ( 2-1 ) 2.1 ⽹格划分⼀般有限差分采⽤结构化⽹格划分。
即节点对应于当地坐标系统的原点。
它的轴同⽹格线⼀致。
即两个同⼀族的⽹格线不相交,且没对⽹格线对应不同的族。
每⼀个节点可⽤唯⼀的⼀个坐标表⽰,如(ξ1, ξ2)。
⽹格线能⽤ξ1=const, ξ2=const 表⽰。
1D 2D有限差分法就是要将节点上的偏微分⽅程⽤相邻点上的值表⽰,变成线性代数⽅程式。
i-1ii+1N1 N jj+1 j-1j 11i-1 i i+1为流体⼒学的微分⽅程的数值求解⽅法之代表。
必要条件:连续领域内的分配有限的⽹格领域内的函数分布可⽤⽹格点上的值代表1. 计算分⼦(computational molecule )5点计算分⼦ 15点计算分⼦ 7点计算分⼦这些节点⼜称为计算分⼦。
⽅程的个数应与未知数相同,即每个节点有⼀个⽅程式。
EWNET N2. T aylor 展开例如:⼀维时间变量φ的理论解为φ(t,x),它在离散点上的值为投影(projection )的近似值为:()x i t n ?Λ,φ,n: 时间的step 数i:空间的step 数为了求得此近似解,需对微分⽅程进⾏差分近似。
利⽤T aylor 展开可得到⼏个差分表⽰形式,仅考虑空间依存问题:在?x 很⼩时,位置j ?x 内的物理量φ⽤φj 来表⽰,则位置(j+1)?x 上的值φj+1表⽰为:()+++=+ii i i x x x x 222121φφφφ( 2-2 )(j-1)?x 上的值φj+1表⽰为:()++-=-ii i i x x x x 222121φφφφ( 2-3 ) 2.2 基本差分格式1. ⼀阶导数(first derivative )的近似()xu orxφρφ( 2-4 ) i. 向前差分(forward difference ,FDS)利⽤( 1 ) 式,可得到1阶微分的向前差分形式:)(1x O xx j j j ?+?-=??+φφφ( 2-5 ) ii. 向后差分(backward difference ,BDS)利⽤( 1 ) 式,可得到1阶微分的向后差分形式)(1x O xx j j j ?+?-=??-φφφ( 2-6 ) iii. 中⼼差分(central difference ,CDS )(1)-(2) 得1阶微分的2 次精度中⼼差分法:)(2211x O xx j j j ?+?-=??-+φφφ( 2-7 ) iv. 上风法、迎风法(upwind difference, UDS )与速度有关的微分()<-->--≈??++--;0if,;0if ,1111u x x u u x x u x u ii i i i i i i φφρφφρφρ( 2-8 )2. ⼆阶导数的近似i. 中⼼差分(central difference ,CDS )利⽤(j ±1/2)?x 的T ayor 展开,可得过且1阶微分的2次精度的向前向后差分形式:11112121---+++--=??--=??i i i i i ii ii i x x x x x x φφφφφφ( 2-9 )将上⼆式相减,得2阶微分的差分⽅程式中⼼差分:(?x 相当))(2221122x O xx i i i i ?+?+-=??-+φφφφ( 2-10 )其它还有各种形式。
有限差分法基本原理有限差分法(Finite Difference Method)是一种常用的数值计算方法,用于求解偏微分方程的近似解。
其基本原理是将连续的偏微分方程转化为网格上的差分方程,通过对差分方程进行数值求解,得到问题的数值解。
首先,有限差分法将求解区域划分为一个个小网格。
通常使用矩形网格(二维)或立方体网格(三维),这些小网格称为离散点。
每个离散点上的函数值表示在该点处的近似解。
然后,将偏微分方程中的导数用差商来代替。
对于一阶导数,可以使用中心差商、前向差商或后向差商等。
中心差商是最常用的一种,它使用左右两个离散点的函数值来逼近导数的值。
例如,对于一维情况下的导数,中心差商定义为:f'(x)≈(f(x+h)-f(x-h))/(2h)其中,h表示网格的步长。
通过调整步长h的大小,可以控制逼近的精度。
对于高阶导数,可以使用更复杂的差分公式。
例如,对于二阶导数,可以使用中心差商的差商来逼近。
具体公式为:f''(x)≈(f(x+h)-2f(x)+f(x-h))/h^2通过将导数用差商代替,将偏微分方程转化为差分方程。
例如,对于二维泊松方程:∇²u(x,y)=f(x,y)其中,∇²表示拉普拉斯算子。
u(i,j)=1/4[u(i+1,j)+u(i-1,j)+u(i,j+1)+u(i,j-1)]-h²/4*f(i,j)其中,u(i,j)表示离散点(i,j)处的近似解,f(i,j)表示离散点(i,j)处的右端项。
最后,通过求解差分方程,得到问题的数值解。
可以使用迭代方法,例如Jacobi迭代法、Gauss-Seidel迭代法或SOR迭代法等,来求解差分方程。
迭代过程通过更新离散点上的函数值,直到满足收敛条件或达到指定的迭代次数。
总结来说,有限差分法通过将连续的偏微分方程转化为网格上的差分方程,然后通过数值求解差分方程,得到问题的近似解。
它是一种简单且高效的数值计算方法,广泛应用于科学计算、工程计算和物理仿真等领域。
3第二章_有限差分方法基础有限差分方法是一种数值计算方法,用于求解偏微分方程的数值近似解。
它的基本思想是将求解域离散化,将连续的偏微分方程转化为离散的差分方程,然后通过迭代求解差分方程的解来逼近原方程的解。
有限差分方法的基础是差分近似。
差分近似是将连续函数在一组离散点上进行近似表示的方法。
差分近似的基本思想是用函数的差商来近似函数的导数。
例如,对于函数f(x),在点x上的导数可以用差商表示为f'(x)≈(f(x+h)-f(x))/h,其中h是一个小的正数。
有限差分方法的核心是离散化。
离散化是将求解域划分为有限个网格点,然后在这些网格点上进行近似计算。
通常使用均匀网格,即将求解域等分为相同大小的网格。
在每个网格点上,用差分近似来代替偏微分方程中的导数项,将偏微分方程转化为离散的差分方程。
在离散的差分方程中,未知函数在每个网格点上的值可以通过迭代求解得到。
迭代的过程是通过将差分方程中的未知函数值代入到方程中,然后求解得到新的未知函数值。
不断迭代直到满足一定的收敛准则,得到近似解。
有限差分方法有很多的变形和扩展。
其中最基础的是一维情况下的有限差分方法,它适用于求解一维偏微分方程。
在一维情况下,求解域只有一个自变量x,因此只需要在x方向上进行离散化。
除了一维情况,有限差分方法还可以扩展到更高维的情况,例如二维和三维情况。
在二维情况下,求解域有两个自变量x和y,需要在x和y 方向上都进行离散化。
在三维情况下,求解域有三个自变量x、y和z,需要在x、y和z方向上都进行离散化。
有限差分方法的优点是简单易懂,计算效率高。
它可以应用于各种偏微分方程的求解,包括椭圆方程、双曲方程和抛物方程等。
然而,有限差分方法也有一些局限性,例如对于复杂的几何形状和边界条件的处理比较困难。
总之,有限差分方法是一种常用的数值计算方法,用于求解偏微分方程的数值近似解。
它通过将求解域离散化,将连续的偏微分方程转化为离散的差分方程,然后通过迭代求解差分方程的解来逼近原方程的解。