有限差分法

合集下载

有限差分法

有限差分法

有限差分法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.限制条件:有限差分法适用于边界对应点处导数有定义的问题,不适用于奇异点和非线性问题。

有限差分法

有限差分法

两端都要给定边界条件(双程坐标) 。
9
(C) 双曲型方程:适当的边界条件和初始条件,与波动传 播的性质有关 如:一维对流方程
∂u ∂u +c =0 ∂t ∂x u (x ,0) = f (x )
解为 u (x , t ) = f (x − ct ) ,代表一个向右(c > 0 时)或向左 ( c < 0 时)传播的波形。必须在波形传来的一侧提供边界条 件(单程坐标) 。
10
不适定的例子:
utt + u xx = 0 u (x ,0) = u t (x ,0) = 0
拉普拉斯方程+非闭域边界条件,解为 u (x , t ) ≡ 0 。 然而,若定解条件为 u (x ,0) = 0, ut (x ,0) =
u (x , t ) = 1 sin nx ,解为 n
1 sinh nt sin nx n
(
)
n n um+1 = um −
cτ n n um +1 − um −1 2h
(
)
设计算到第 n 步时的累积误差
n ~n εn = 计算值um − 差分法精确解um m
反之
n ~n um = εn + um m
15
则第 n+1 步的计算值
~n ~ n cτ u n − u n ~ ~ um+1 = um − m +1 m −1 2h cτ n cτ n n n = um − um +1 − um −1 + εn − εm +1 − εn −1 m m 2h 2h n = um+1 + εn +1 m
uin +1 − uin −1 uin+1 − uin +1 − uin −1 − uin−1 −α =0 Lh u = τ h2 ατ 2 ⎛ ∂ 2u ⎞ τ 2 ⎛ ∂ 3u ⎞ Ti = Lh u − Lu (x i , t n ) = 2 ⎜ 2 ⎟ + ⎜ 3 ⎟ − L 截断误差 6 ⎜ ∂t ⎟i h ⎜ ∂t ⎟i ⎝ ⎠ ⎝ ⎠

有限差分法

有限差分法

有限差分法有限差分法是数学领域的一项最新成果,它在某些特定情况下能得到非常好的结果。

所谓有限差分方程就是利用积分和求差公式将差分方程化成为多个等价的偏微分方程组的组合形式,然后再应用最优化方法求解这种方程组,从而得出未知数的近似值。

当已知方程组的每个参数及其变量代入数据计算后的误差时,只要对其进行必要的调整或者修改后,就可获得满意的精度与效率的估计值。

此外,还可以通过有限差分方程的求解来了解其物理背景。

比如说在物体碰撞问题中,两个质点之间距离的测量往往涉及到很复杂的三维几何关系。

即使是一个小的距离误差也会引起很大的误差。

因此,对于碰撞问题中两个质点之间的相互位置误差测量,必须考虑它们之间的三维几何关系,并根据具体问题建立相应的坐标系统。

有限差分方程可以用来描述许多不同类型的实际问题,例如质量、压力、速度、温度、流动、热传导、声音和电磁场等。

但是由于数学模型本身的复杂性,使得有限差分方程在求解上遇到了困难。

因此,人们开始寻找一种更加直观的方法来解决问题。

有限差分法正是基于此原理提出的。

利用有限差分方程求解偏微分方程,我们首先要给出所求解的偏微分方程的数学表达式,这样才能够在有限差分方程的数学模型中寻找解析解。

有限差分方程的解析解,需要借助解析函数的理论来确定。

但是在自然科学和工程技术领域里,对于一般的实际问题,很少会存在着某种数学模型完全适合于所有的具体问题,那么对于任意一个偏微分方程,总是存在着一个解析解。

当把偏微分方程的解析解用适当的坐标表示出来后,有限差分方程的求解就转化为如何寻找与这个解相对应的函数值的问题。

通常,解析函数的形式是比较复杂的,因此需要运用数值方法进行拟合,从而得到符合实际的数学表达式。

然后通过对这个数学表达式的求解来确定所求偏微分方程的解析解。

这种数值求解方法称为数值积分法。

在研究有限元法和边界元法时都可以采用一些简单易行而且计算机可能很容易处理的函数作为边界条件,而这些函数本身又是很容易计算的。

有限差分法推导

有限差分法推导

有限差分法推导【最新版】目录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)所示。

有限差分法基本原理

有限差分法基本原理
该方法基于差分原理,即用离散点的 差商来代替微商,将微分方程转化为 差分方程,以便于通过代数方法求解。
有限差分法的应用领域
流体力学
用于模拟流体在固定或变形网格 上的流动,如计算流体动力学 (CFD)中的数值模拟。
热传导
用于求解热传导方程,模拟热 量在物体中的传播和分布。
波动传播
用于求解波动方程,如地震波 、声波和电磁波的传播。
有限差分法基本原理
CONTENTS 目录
• 引言 • 有限差分法的基本原理 • 有限差分法的实现 • 有限差分法的优缺点 • 有限差分法的改进方向
CHAPTER 01
引言
有限差分法的定义
有限差分法是一种数值计算方法,通 过将连续的物理量离散化为有限个离 散点上的数值,并建立代数方程来近 似描述物理量随时间和空间的变化规 律。
缺点
精度问题
由于有限差分法采用的是离散化的方法, 因此其精度受到网格大小的影响,网格越
小精度越高,但同时也会增加计算量。
数值耗散误差
在模拟非线性问题时,有限差分法可能会 产生数值耗散误差,导致能量的损失或者
非物理振荡。
数值色散误差
在模拟波动性问题时,有限差分法可能会 产生数值色散误差,导致波的传播速度发 生变化。
常用的离散化方法包括均匀网格、非均匀网格、有限元法等,
应根据实际问题选择合适的离散化方法。
差分近似
Hale Waihona Puke 01差分近似公式根据微分方程的性质,构造差分 近似公式,将微分方程转化为差 分方程。
精度分析
02
03
稳定性分析
分析差分近似公式的精度,确定 其与微分方程的误差大小和分布。
分析差分近似公式的数值稳定性, 确保计算过程中误差不会累积放 大。

有限差分法

有限差分法

第四章有限差分方法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)在这些点上的近似值。

有限差分方法

有限差分方法

有限差分方法有限差分法是一种用于数值解决常微分方程(ODE)、偏微分方程(PDE)的数学技术。

它将原本的微分方程式转化为差分方程,最终可以用数值计算解决。

作为一门数值分析技术,有限差分方法主要用于计算解决微分方程的参数和状态。

有限差分法的步骤一般分为三个:(1)数学模型的构建,(2)对物理场的离散化,(3)对差分方程进行求解。

首先,我们要建立准确的物理模型,这一步涉及到选取合适的假设和参数,以及采用适当的边界条件和初始条件。

其次,我们要对原方程进行离散处理,使其转化为有限差分方程,从而为求解此类方程打下基础。

最后,我们要设计出一个有效的求解方法,通过用数值计算解决有限差分方程,获得所求解的结果。

有限差分法的优点主要体现在精度和速度上。

首先,它的精度极高,它可以求解出精确的解,而且计算速度也很快,无需复杂的数学推理,就可以较快速度解决问题,大大降低了计算的难度。

其次,有限差分法可以拓展到更多的系统,不限于只能解决二维静止场,而能够解决一般感兴趣的场景。

此外,有限差分技术也可以解决有时限性的问题,例如分析物体的动态特性。

此外,有限差分方法也存在一些缺点,例如边界条件的处理和计算复杂性的增加。

由于差分的求解是基于某些边界条件的,一旦边界条件发生变化,原有的求解方案就会失效。

此外,在进行离散化处理时,随着问题规模的增大,计算复杂性也会随之增加,使得求解较大规模的问题极其困难。

有限差分法已经成为当今解决复杂问题数值计算的重要技术手段。

它在准确性、精度和计算速度方面均具有优势,深受工业界、医学界及数学领域的青睐。

有限差分法的实际应用也正在层出不穷,今后有望在更多的领域得到广泛的应用。

有限差分法推导

有限差分法推导

有限差分法推导摘要:一、有限差分法简介1.有限差分法的概念2.有限差分法在数值计算中的应用二、有限差分法的推导1.差分法的定义2.有限差分法的推导过程3.有限差分法的性质三、有限差分法的应用1.微分方程的数值解法2.有限差分法在数值积分中的应用四、有限差分法的优缺点1.优点2.缺点正文:一、有限差分法简介有限差分法是一种数值计算方法,通过将连续函数离散化,用差分代替微分,从而实现对微分方程或积分方程的求解。

有限差分法广泛应用于科学、工程和金融领域,例如,在天气预报、海洋学、生物学、经济学等方面都有重要作用。

二、有限差分法的推导1.差分法的定义差分法是一种将函数在某一点上的值与该点附近点的值相减的方法,用于近似计算函数在该点处的导数或变化率。

给定一个函数f(x),在x=a 处求导,可以得到差分算子Df(a,h),其中h 为差分步长。

2.有限差分法的推导过程有限差分法是将差分法应用于离散点集,通过有限个差分算子来近似表示函数在某一点的值。

设函数f(x) 在区间[x0, x1] 上可导,离散点集为{x0,x0+h, x0+2h, ..., x1},有限差分法的表达式为:Df(x0+k h) ≈ (h/(k+1)) * [f(x0+k h) - f(x0+(k-1) h)] (k=1,2,3,...,n-1)3.有限差分法的性质有限差分法具有以下性质:(1) 线性性质:Df(x) + Dg(x) = D(f(x) + g(x))(2) 移位性质:Df(x+h) = Df(x) + h * df(x)/dx(3) 微分性质:Df(x) * (x - x0) = f"(x) * (x - x0) + O(h^2)三、有限差分法的应用1.微分方程的数值解法有限差分法可以用于求解微分方程,例如,对于一阶线性微分方程:df(x)/dx + p(x) * f(x) = q(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)表示。

有限差分法

有限差分法
( x , y )∈Γ
u ( x, y )
= ϕ ( x, y )
Γ = ∂Ω
泊松方程的第一类边界条件 泊松方程的第一类边界条件 Dirichlet条件 条件) (Dirichlet条件)为:
其中 Ω 为以 Γ 为边界的有界区域, 为分 Γ Ω 段光滑曲线, U Γ 称为定解区 ϕ 域, f ( x, y ) , ( x, y ) 分别为 Ω ,Γ 上 的已知连续函数。
τ ah R( xk , t j ) = ut′′ ( xk , t j + θ2τ ) + u′′2 ( xk + θ1h, t j ) = O(τ + h) 2 2 2 x
差分方程的 截断误差
如果一个差分方程的截断误差为 R = O (τ + h ) ,则称差分方程 对 是 q 阶精度,对 x 是 p 阶精度的。显然,截断误差的阶 数越大,差分方程对微分方程的逼近越好。
有限差分法
有限差分法(finite difference method)是一种普遍认为 method)是一种普遍认为 有限差分法(finite 行之有效的处理函数微分的数值方法, 行之有效的处理函数微分的数值方法,科学与工程计算中 常见的偏微分方程和方程组大都可以采用有限差分方法求 本章首先讨论偏微分方程的定解问题, 解。本章首先讨论偏微分方程的定解问题,然后介绍有限 差分法的基本概念、方法和实现过程, 差分法的基本概念、方法和实现过程,重点介绍了求解椭 圆型偏微分方程定解问题的差分方法。 圆型偏微分方程定解问题的差分方法。
∂ 2u ∂ 2u = a2 ∂ t2 ∂ x2 u (x, 0) = ϕ (x) ∂u = ψ (x) ∂ t t=0
t > 0,

有限差分法

有限差分法

有限差分法有限差分法是基于差分原理的一种数值计算法。

其基本思想:将场域离散为许多小网格,应用差分原理,将求解连续函数ϕ的泊松方程的问题转换为求解网格节点上ϕ的差分方程组的问题。

1.1 二维泊松方程的差分格式图1-1 有限差分的网格分割二维静电场边值问题:F yx =-=∂∂+∂∂ερϕϕ2222 (1-1) )(s f L =ϕ (1-2)通常将场域分成足够小的正方形网格,网格线之间的距离为h ,节点4,3,2,1,0上的电位分别用3210,,,ϕϕϕϕ和4ϕ表示。

设函数ϕ在0x 处可微,则沿x 方向在0x 处的泰勒公式展开为()()()∑=-+-=nK n K K K 000)(!χχοχχϕϕχ (1-3)将1χχ=和3χ分别代入式(1-3),得⋅⋅⋅⋅⋅⋅+∂∂+∂∂+∂∂+=03330222001)(!31)(!21)(x h x h x h ϕϕϕϕϕ (1-4)⋅⋅⋅⋅⋅⋅+∂∂-∂∂+∂∂-=03330222003)(!31)(!21)(xh x h x h ϕϕϕϕϕ (1-5)由(1-4)-(1-5)得h2x 31x x 0ϕϕϕ-≈∂∂=)((1-6)(1-4)+(1-5)得2301x x 22h2x 0ϕϕϕϕ+-≈∂∂=)( (1-7) 同理hy y y 2)(310ϕϕϕ-≈∂∂= (1-8) 2301222)(0hy y y ϕϕϕϕ+-≈∂∂= (1-9) 将式(1-7)、(1-9)代入式(1-1),得到泊松方程的五点差分格式)(414243210204321Fh Fh -+++=⇒=-+++ϕϕϕϕϕϕϕϕϕϕ当场域中,0=ρ得到拉普拉斯方程的五点差分格式)(41044321004321ϕϕϕϕϕϕϕϕϕϕ+++=⇒=-+++1.2 边界条件的离散化处理图1-2 边界条件的离散化处理若场域离散为矩形网格(如图2-2示),差分格式为:F 2h 1h 1h 1h 10222142222121=+-+++ϕϕϕϕϕ)()()( (1-10) (1)第一类边界条件:给边界离散节点直接赋已知电位值 (2)对称边界条件:合理减小计算场域,差分格式为:)(F h 24124210-++=ϕϕϕϕ (1-11)图1-3 边界条件的离散化处理•12(3)第二类边界条件:边界线与网格线相重合的差分格式:h f f hn 2102010-ϕ=ϕ=ϕ-ϕ≈∂ϕ∂,)((1-12)(4)介质分界面衔接条件 的差分格式)1212(4143210ϕϕϕϕϕ+++++=KKK (1-13)其中b a K εε=1.3 差分方程组的求解方法(1) 高斯——赛德尔迭代法][)(,)(,)(,)(,)(,2k 1j i k j 1i 1k 1j i 1k j 1i 1k j i Fh 41-+++=+++-+-+ϕϕϕϕϕ (1-14)式中:⋅⋅⋅⋅⋅⋅=⋅⋅⋅⋅⋅⋅=,2,1,0,2,1,k j i ,• 迭代顺序可按先行后列,或先列后行进行。

有限差分法基本原理-较好

有限差分法基本原理-较好

如折射、反射、散射等现象。
电磁波控制
03
在电磁场模拟中,有限差分法还可以用于研究电磁波的调控技
术,如波导、滤波器等器件的设计和优化。
有限差分法在气候模拟中的应用
气候模型
气候模拟是有限差分法的另一个重要应用领域,用于研究地球气 候系统的演变和预测。
大气环流模型
通过有限差分法,可以建立大气环流模型,模拟大气中温度、湿 度、风速等变量的变化和传播。
有限差分法的稳定性分析
稳定性定义
有限差分法的稳定性是指当时间步长趋于无 穷小时,数值解的误差不会发散,而是趋于 零。
稳定性条件
为了确保有限差分法的稳定性,需要满足一定的条 件,例如CFL条件(Courant-Friedrichs-Lewy条件 )等。
不稳定性分析
对于某些初始条件和参数,有限差分法可能 会出现数值不稳定的情况,需要进行不稳定 性分析并采取相应的措施。
3
边界条件处理
在流体动力学应用中,有限差分法需要考虑复杂 的边界条件,如固壁、滑移边界等,以实现准确 的数值模拟。
有限差分法在电磁场模拟中的应用
麦克斯韦方程
01
有限差分法可以用于求解电磁场中的麦克斯韦方程,以模拟电
磁波的传播和散射等行为。
电磁波传播
02
通过有限差分法,可以模拟电磁波在复杂介质中的传播特性,
THANKS FOR WATCHING
感谢您的观看
未来研究方向与展望
研究方向 展望
针对有限差分法的局限性和不足,未来的研究可 以关注如何改进算法,提高计算精度和稳定性, 以及如何拓展该方法的应用范围。
随着计算机技术的不断发展和数值计算方法的进 步,有限差分法有望在未来得到更广泛的应用和 更深入的研究,为解决各种科学和工程问题提供 更加有效的数值计算方法。

有限差分法

有限差分法

有限差分法一、有限差分法的定义有限差分法(Finite Differential Method )是基于差分原理的一种数值计算法。

其基本思想:将场域离散为许多小网格,应用差分原理,将求解连续函数ϕ的泊松方程的问题转换为求解网格节点上ϕ的差分方程组的问题。

二、有限差分法的应用例3.7.1 有一个无限长直的金属槽,截面为正方形,两侧为正方形,两侧面及底板接地,上盖板与侧面绝缘,其上的电位为ϕ=100V, 试用有限差分法计算槽内电位。

(1)用Matlab 中的有限差分法计算槽内电位;(2)对比解析法和数值法的异同点;(3)选取一点,绘制收敛曲线;(4)总的三维电位图;1、根据有限差分公式计算出电位最终近似值为1,12,13,11,22,23,21,32,33,3=7.144=9.823=7.144=18.751=25.002=18.751=42.857=52.680=42.857ϕϕϕϕϕϕϕϕϕ,,,,,,用Matlab有限差分法计算出来结果:(见附录程序一)2、解析法和数值法的异同点解析法数值法定义在分析具体问题的基础上,抽取出一个数学模型,这个数学模型能用若干个解析表达式表示出来,解决了这些表达式,问题也就得以解决。

数值法是用高性能的计算机以数值的、程序的形式解决问题,主要是指有限元法和差分法相同点都是在具体问题的基础上取一个用解析表达式表示的数学模型来解决问题;数值法是在解析法的基础上在不同尺度上进行有限元离散,离散单元尺度不同,进行有限元计算时要满足的连续性条件不同,预测结果的精确度就不同不同点解析法可以计算出精确的数值结果;可以作为近似解和数值解的检验标准;解析法过程可以观察到问题的内在和各个参数对数值结果起的作用。

但是分析过程困难又复杂使其仅能解决很少量的问题。

数值法求解过程简单,普遍性强,用户拥有的弹性大;用户不必具备高度专业化的理论知识就可以用提供的程序解决问题。

但求解结果没有解析法精确。

岩石力学-有限差分法

岩石力学-有限差分法

平衡方程 (运动方程)
新的速度和 位移
应力-应变关系 (本构方程)
新的应力或 力
显式有限差分法计算流程图
显式算法的核心概念是计算“波速”总 是超前于实际波速。
用运动方程求解静力问题,还必须采取 机械衰减方法来获得非惯性静态或准静态解, 通常采用动力松弛分法是求解给定初值和(或)边值问题 的较早数值方法之一。
有限差分法和有限元法都产生一组待解方程组。 1、有限差分基本方程 2、平面问题有限差分方程 3、显式有限差分算法-时间递步法
可以保证在被模拟的物理系统本身是非稳定的 情况下,有限差分数值计算仍有稳定解。对于非线 性材料,物理不稳定的可能性总是存在的。

有限差分方法

有限差分方法
⎟ ≈ ⎜ ⎝ ∂t ⎠ i
n
Δt
(2-2)
空间导数用一阶中心差商近似代替,即
ζ in+1 − ζ in−1 ⎛ ∂ζ ⎞ ⎜ ⎟ ≈ 2Δx ⎝ ∂x ⎠ i
则在 ( xi , t n ) 点的对流方程就可近似地写作
(2-3)
ζ in +1 − ζ in
Δt

ζ in+1 − ζ in−1
2Δx
(1-11)
当然,在某些情况下也可取向前或向后的二阶差商。
9
第一节 差分原理及逼近误差/差分原理 以上是一元函数的差分与差商。多元函数f(x,y,…)的差分与 差商也可以类推。 如一阶向前差商为
Δf f ( x + Δx , y , Λ ) − f ( x , y , Λ ) = , Δx Δx
Δf f ( x, y + Δy , Λ ) − f ( x, y , Λ ) = , Δy Δy ΛΛ
(1-6)
6
第一节 差分原理及逼近误差/差分原理 函数的差分与自变量的差分之比,即为函数对自变量的 差商。 一阶向前差商为 一阶向后差商为
f ( x + Δx) − f ( x) Δy = Δx Δx
(1-7)
f ( x ) − f ( x − Δx ) Δy = Δx Δx
(1-8)
7
第一节 差分原理及逼近误差/差分原理 一阶中心差商为
15
第一节 差分原理及逼近误差/非均匀步长
图1-2 均匀和非均匀网格实例1
16
第一节 差分原理及逼近误差/非均匀步长
图1-3 均匀和非均匀网格实例2
17
第二节 差分方程 差分相应于微分,差商相应于导数。差分和差商是用有限形 式表示的,而微分和导数则是以极限形式表示的。如果将微 分方程中的导数用相应的差商近似代替,就可得到有限形式 的差分方程。现以对流方程为例,列出对应的差分方程。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

有限差分法一、单变量函数:用中心差分法(matlab程序见附录)计算结果如下:图1 中心差分法表1 数据对比二、一维热传导:在此取φ(x)=0,g1(t)= g2(t)=100-100*exp(-t)问题描述:已知厚度为l的无限大平板,初温0度,初始瞬间将其放于温度为100度的流体中,流体与板面间的表面传热系数为一常数。

试确定在非稳态过程中板内的温度分布。

(1)显式差分法:图3 显式差分法(2)隐式差分法:图4 隐式差分法小结:显式格式仅当时格式是稳定的。

(其中称为网格比)隐式格式从k层求k+1层时,需要求解一个阶方程组。

而且隐式格式的稳定性对网格比没有要求,即为绝对稳定的。

三、Possion方程:取f=1,R=1图5差分法图6 误差小结:观察误差曲面,其绝对误差数量级为附Matlab程序:第1题:%===========================Boundary Value Problem 1clear;clc;A=[-2.01 1 0 0 0 0 0 0 0;1 -2.01 1 0 0 0 0 0 0;0 1 -2.01 1 0 0 0 0 0;0 0 1 -2.01 1 0 0 0 0;0 0 0 1 -2.01 1 0 0 0;0 0 0 0 1 -2.01 1 0 0;0 0 0 0 0 1 -2.01 1 0;0 0 0 0 0 0 1 -2.01 1;0 0 0 0 0 0 0 1 -2.01;];c1=[0.1;0.2;0.3;0.4;0.5;0.6;0.7;0.8;0.9];C=0.01*c1-1*[0;0;0;0;0;0;0;0;1];y=A\C;x=0:0.1:1;yn=[0;y;1];ye=2*(exp(x)-exp(-x))/(exp(1)-exp(-1))-x;figure(1);plot(x,yn,'*',x,ye);legend('numerical solution','exact solution')xlabel('x','fontsize',20);ylabel('y','fontsize',20);set(gca,'fontsize',18);figure(2);err=abs(ye'-yn);plot(x,err);legend('error')xlabel('x','fontsize',20);ylabel('y','fontsize',20);set(gca,'fontsize',18);第2题:%========================Boundary Value Problem 1_Explicit %显式clear;clcl=20;%板厚h=1;%步长J=l/h;T=50;%时间tao=2.5;%步长N=T/tao;%下面组合A矩阵a=0.2;lamda=tao/(h^2);zhu=1-2*a*lamda;ce=a*lamda;a00=ones(1,J-1);a0=diag(a00);A0=zhu*a0;a01=ones(1,J-2);a1=diag(a01,1);A1=ce*a1;a2=diag(a01,-1);A2=ce*a2;A=A0+A1+A2;u(:,1)=0; %板的初始温度for i=2:N+1u(1,i)=100-100*exp(-(i-1)*tao); %边界条件u(J+1,i)=100-100*exp(-(i-1)*tao); %边界条件end% g01=u(:,1);% g02=u(:,J);for k=1:N% g01=ce*g1(1,k);% g02=ce*g2(1,k);oo=zeros(J-3,1);g(:,k)=[ce*u(1,k);oo;ce*u(J+1,k)];u(2:end-1,k+1)=A*u(2:end-1,k)+g(:,k);endt=0:h:l;x=0:tao:T;mesh(x,t,u)xlabel('t','fontsize',20);ylabel('x','fontsize',20);zlabel('T','fontsize',20);set(gca,'fontsize',18);%========================Boundary Value Problem 1_2Implicit %隐式clear;clcl=20;%板厚h=1;%步长J=l/h;T=50;%时间tao=2.5;%步长N=T/tao;%下面组合A矩阵a=0.2;lamda=tao/(h^2);zhu=1+2*a*lamda;ce=-a*lamda;a00=ones(1,J-1);a0=diag(a00);A0=zhu*a0;a01=ones(1,J-2);a1=diag(a01,1);A1=ce*a1;a2=diag(a01,-1);A2=ce*a2;A=A0+A1+A2;u(:,1)=0; %板的初始温度for i=2:N+1u(1,i)=100-100*exp(-(i-1)*tao); %边界条件u(J+1,i)=100-100*exp(-(i-1)*tao); %边界条件end% g01=u(:,1);% g02=u(:,J);for k=1:N% g01=ce*g1(1,k);% g02=ce*g2(1,k);oo=zeros(J-3,1);g(:,k)=[ce*u(1,k);oo;ce*u(J+1,k)];u(2:end-1,k+1)=inv(A)*u(2:end-1,k)-inv(A)*g(:,k);endt=0:h:l;x=0:tao:T;mesh(x,t,u)xlabel('t','fontsize',20);ylabel('x','fontsize',20);zlabel('T','fontsize',20);set(gca,'fontsize',18);第3题:%=============================used by centered difference clear;function pdemodel[pde_fig,ax]=pdeinit;pdetool('appl_cb',1);set(ax,'DataAspectRatio',[1 1 1]);set(ax,'PlotBoxAspectRatio',[1.5 1 1]);set(ax,'XLim',[-1.5 1.5]);set(ax,'YLim',[-1 1]);set(ax,'XTickMode','auto');set(ax,'YTickMode','auto');% Geometry description:pdecirc(0,0,1,'C1');set(findobj(get(pde_fig,'Children'),'Tag','PDEEval'),'String','C1')% Boundary conditions:pdetool('changemode',0)pdesetbd(4,...'dir',...1,...'1',...'0')pdesetbd(3,...'dir',...1,...'1',...'0')pdesetbd(2,...'dir',...1,...'1',...'0')pdesetbd(1,...'dir',...1,...'1',...'0')% Mesh generation:setappdata(pde_fig,'Hgrad',1.3);setappdata(pde_fig,'refinemethod','regular');pdetool('initmesh')pdetool('refine')% PDE coefficients:pdeseteq(1,...'1.0',...'0.0',...'1',...'1.0',...'0:10',...'0.0',...'0.0',...'[0 100]')setappdata(pde_fig,'currparam',...['1.0';...'0.0';...'1 ';...'1.0'])% Solve parameters:setappdata(pde_fig,'solveparam',...str2mat('0','1524','10','pdeadworst',...'0.5','longest','0','1E-4','','fixed','Inf'))% Plotflags and user data strings:setappdata(pde_fig,'plotflags',[1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 1]); setappdata(pde_fig,'colstring','');setappdata(pde_fig,'arrowstring','');setappdata(pde_fig,'deformstring','');setappdata(pde_fig,'heightstring','');% Solve PDE:pdetool('solve')。

相关文档
最新文档