有限差分法求解偏微分方程
有限差分法解偏微分方程式

有限差分法解偏微分方程式第一節偏微分方程已知二階偏微分方程0,,,,22222=⎪⎭⎫ ⎝⎛∂∂∂∂+∂∂+∂∂∂+∂∂t u x u u t x f t u C t x u B x u A 若042=-AC B ,則稱上式為拋物線型偏微分方程。
若042>-AC B ,則稱上式為雙曲線型偏微分方程。
若042<-AC B ,則稱上式為橢圓型偏微分方程。
第二節Heat conduction 偏微分方程之數值解Heat Conduction Equation :t u x u ∂∂=∂∂2221α,L x <<0,0>t 邊界條件與初始條件必須給定。
將x 分成n 段n L h x ==∆,並取t 方向增量tk ∆=【方法一】顯性近似法:考慮節點()j i ,處之差分公式:grid points:()j i t x ,,()ji ij t x u u ,=二階偏微分為中央差分近似2,1,,12,1,,12222h u u u x u u u x u j i j i j i j i j i j i +-+-+-≈∆+-≈∂∂一階偏微分為前向差分近似ku u t u u t u j i j i j i j i ,1,,1,-≈∆-≈∂∂++代入熱傳方程t u x u ∂∂=∂∂2221α,得k u u h u u u j i j i j i j i j i ,1,22,1,,112-=+-++-α移項整理得()j i j i j i j i j i u u u u u hk ,1,,1,,1222-=+-++-α令22*hk αα=代入,得節點()j i ,之有限差分近似公式()j i j i j i j i j i u u u u u ,1,,1,1,2*+-++-+=α,n i ,,2,1,0 =, ,2,1,0=j 其中0=j 為初始條件,0,i u 為給定。
移項得PDE finite difference formula for the heat equation:()ji j i j i j i u u u u ,1,,11,**21*+-++-+=ααα0=i 及n i =為邊界條件,j u ,0,j n u ,為給定。
有限差分法的原理与计算步骤

有限差分法的原理与计算步骤有限差分法(Finite Difference Method)是一种常用的数值计算方法,用于求解偏微分方程的数值解。
其基本原理是将连续的偏微分方程转化为差分方程,通过逼近导数,使用离散的点代替连续的点,从而将问题转化为代数问题。
下面将详细介绍有限差分法的原理和计算步骤:一、基本原理:有限差分法基于Taylor级数展开,通过利用函数在其中一点附近的导数信息来逼近函数在该点处的值。
该方法将连续的偏微分方程转化为差分方程,使用离散的点代替连续的点,从而将问题转化为代数问题。
在有限差分法中,常用的差分逼近方式有前向差分、后向差分和中心差分。
二、计算步骤:1.网格划分:将求解区域划分为有限个离散点,并定义网格上的节点和网格尺寸。
通常使用等距离网格,即每个网格点之间的间距相等。
2.离散化:将偏微分方程中的各个导数项进行逼近,利用差分近似来替代和求解。
一般采用中心差分逼近方式,即通过函数值在两侧点的差来逼近导数。
3.代数方程系统:利用离散化的差分方程,将偏微分方程转化为代数方程系统。
根据问题的边界条件和初值条件,构建代数方程系统的系数矩阵和常数向量。
4. 求解代数方程:利用求解线性方程组的方法求解代数方程系统,常用的方法有直接法(如高斯消元法、LU分解法)和迭代法(如Jacobi迭代法、Gauss-Seidel迭代法)。
求解得到各个离散点的解。
5.后处理:根据求解结果进行后处理,包括结果的插值和可视化。
将离散点的解通过插值方法进行平滑处理,并进行可视化展示,以得到连续的函数解。
三、优缺点:1.直观:有限差分法基于网格划分,易于理解和实现。
2.精度可控:可通过调整网格大小和差分逼近方式来控制计算的精度。
3.广泛适用性:可用于求解各种偏微分方程,适用于不同的边界条件和初值条件。
然而,有限差分法也存在一些缺点:1.精度依赖网格:计算结果的精度受到网格划分的影响,因此需要谨慎选择网格大小。
2.限制条件:有限差分法适用于边界对应点处导数有定义的问题,不适用于奇异点和非线性问题。
偏微分方程的数值方法

偏微分方程的数值方法偏微分方程(Partial Differential Equations,简称PDEs)是数学中研究的重要分支,广泛应用于物理学、工程学等领域中。
由于一些复杂的PDEs难以找到解析解,因此需要借助数值方法进行求解。
本文将介绍偏微分方程的数值解法,包括有限差分法、有限元法和谱方法等。
一、有限差分法(Finite Difference Method)有限差分法是解偏微分方程最常用的数值方法之一。
它将偏微分方程中的导数用差商来近似,将空间离散成若干个小区间和时间离散成若干个小时间步长。
通过求解离散化后的代数方程,可以得到原偏微分方程的数值解。
以二维的泊松方程为例,偏微分方程可以表示为:∂²u/∂x² + ∂²u/∂y² = f(x, y)其中,u(x, y)为未知函数,f(x, y)为已知函数。
我们可以将空间离散成Nx × Ny个小区间,时间离散成Nt个小时间步长。
利用中心差分法可以近似表示导数,我们可以得到离散化的代数方程组。
二、有限元法(Finite Element Method)有限元法是一种重要的数值解PDEs的方法。
它将求解区域离散化成一系列的单元,再通过插值函数将每个单元上的未知函数近似表达。
然后,利用加权残差方法,将PDEs转化成代数方程组。
在有限元法中,采用形函数来近似未知函数。
将偏微分方程转化为弱形式,通过选取适当的形函数和权函数,可以得到离散化后的代数方程组。
有限元法适用于求解各种各样的偏微分方程,包括静态和动态、线性和非线性、自由边界和固定边界等问题。
三、谱方法(Spectral Method)谱方法是一种基于特殊函数(如正交多项式)的数值方法,用于解PDEs。
谱方法在求解偏微分方程时,利用高阶连续函数拟合初始条件和边界条件,通过调整特殊函数的系数来近似求解解析解。
谱方法具有高精度和快速收敛的特点,适用于各种偏微分方程求解。
偏微分方程数值求解方法

偏微分方程数值求解方法偏微分方程数值求解方法是使用计算机算法来近似求解偏微分方程的过程。
偏微分方程是描述物理现象和自然现象的主要工具,但大多数偏微分方程不能通过解析方式求解,因此需要使用数值方法进行近似求解。
常用的偏微分方程数值求解方法包括有限差分法、有限元法、谱方法、边界元法和逆时空方法等。
1. 有限差分法有限差分法是一种最简单的数值求解方法,它将偏微分方程中的导数离散化为差分的形式,然后通过有限差分公式求解。
在有限差分法中,将求解区域离散化为网格,然后在每个节点上求解方程,通过节点之间的连通关系建立系数矩阵,最终利用线性代数方法求解线性方程组。
2. 有限元法有限元法是一种广泛运用的数值求解方法,它将求解区域离散化为有限个子域,然后在每个子域内近似求解方程。
有限元法是一种基于变分原理的方法,通过将偏微分方程转化为变分问题,然后在有限维的函数空间中建立逼近函数,最终利用变分方法求解方程。
3. 谱方法谱方法是一种基于傅里叶变换的数值求解方法,它将求解域上的函数表示为傅里叶级数的形式,然后通过求解系数来近似求解方程。
谱方法具有高精度、高效率的优点,但对于非周期边界和奇异性问题可能不适用。
4. 边界元法边界元法是一种基于积分方程的数值求解方法,它将偏微分方程转化为边界积分方程,然后在求解区域表面上求解方程。
边界元法不需要离散化求解区域,仅需在求解区域表面上采集节点,并通过节点之间的关系建立系数矩阵。
5. 逆时空方法逆时空方法是一种利用观测数据反演偏微分方程的数值求解方法,它通过最优化算法将观测数据反演为偏微分方程的参数。
逆时空方法对模型假设和观测数据的噪声较为敏感,但可以应用于各种偏微分方程的求解。
偏微分方程的有限差分法

偏微分方程的有限差分法
有限差分法:是一种数学计算概念,是指在计算过程中,以差分的形势来代替微分,从而使整个计算过程具有有限差分法的出发点,以此达到微分议程和积分微分方式数值解的一种计算过程。
微分方程和积分微分方程数值解的方法。
基本思想是把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。
然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解。
在采用数值计算方法求解偏微分方程时,若将每一处导数由有限差分近似公式替代,从而把求解偏微分方程的问题转换成求解代数方程的问题,即所谓的有限差分法。
有限差分法求解偏微分方程的步骤如下:
1、区域离散化,即把所给偏微分方程的求解区域细分成由有限个格点组成的网格;
2、近似替代,即采用有限差分公式替代每一个格点的导数;
3、逼近求解。
换而言之,这一过程可以看作是用一个插值多项式及其微分来代替偏微分方程的解的过程(Leon,Lapidus,GeorgeF。
Pinder,1985)。
偏微分方程的数值求解方法

偏微分方程的数值求解方法偏微分方程是描述自然现象的重要工具,例如描述热传导、电磁波传播、流体运动等。
然而大多数情况下,这些方程很难通过解析方式求解,因此需要数值求解方法。
本文将介绍偏微分方程的数值求解方法及其应用。
一、有限差分法有限差分法是一种常见的偏微分方程数值求解方法。
它将原本连续的区域离散化,将偏微分方程转化为差分方程。
例如对于一维热传导方程:$$\frac{\partial u}{\partial t} = \alpha\frac{\partial^2 u}{\partial x^2} $$其中 $u(x, t)$ 是温度,$\alpha$ 是热扩散系数。
我们可以选择将空间分成 $N$ 个网格,时间分成 $M$ 个步骤。
则有:$$u_i^{m+1} = u_i^m + \frac{\alpha\Delta t}{\Deltax^2}(u_{i+1}^m - 2u_i^m + u_{i-1}^m)$$其中 $u_i^m$ 表示在位置 $i\Delta x$,时间 $m\Delta t$ 时的温度值。
这是一个显式求解方程,可以直接按照时间步骤迭代计算。
不过由于它的误差可能会增长,因此需要小心选择时间步长和空间步长,以保证误差不会过大。
二、有限元法有限元法是一种更加通用的偏微分方程数值求解方法。
它将连续区域离散化成一些小段,称为单元。
然后针对每个单元,将其上的偏微分方程转化为局部插值函数的方程求解。
例如对于一维波动方程:$$\frac{\partial^2 u}{\partial t^2} = c^2 \frac{\partial^2 u}{\partialx^2}$$我们可以选择将空间分成 $N$ 个网格,用有限元方法将每个网格分成若干个单元。
则对于每个单元 $i$,我们可以得到一个局部插值函数 $u^i(x, t)$ 来近似解该单元上的偏微分方程。
这里不再赘述该函数的形式。
另外,我们还需要满足界面上的连续性和斜率匹配条件,以保证整体解是连续的。
科学计算中的偏微分方程有限差分法
科学计算中的偏微分方程有限差分法
偏微分方程是描述自然界中许多现象的重要工具,例如流体力学、电磁学和量子力学等。
然而,解析解通常只能得到一些简单的特例,因此需要使用数值方法来求解偏微分方程。
有限差分法是求解偏微分方程的一种常用数值方法。
它的主要思想是将偏微分方程中的连续空间变量离散化为有限个离散点,然后使用差分近似求解。
这样得到的数值解与真实解的误差随着离散化的细度逐渐减小,可以得到足够精确的近似解。
有限差分法的基本步骤包括网格生成、差分近似、边界条件处理和迭代求解。
其中,网格生成是将空间变量离散化的过程,差分近似是将偏微分方程中的微分算子用有限差分算子替代的过程,边界条件处理是将问题的边界情况考虑进来的过程,迭代求解是使用差分方程求解数值解的过程。
有限差分法在科学计算中有着广泛的应用,例如在流体力学中求解Navier-Stokes方程、在地球物理学中求解地震波方程、在量子力学中求解薛定谔方程等。
通过有限差分法,科学家可以得到更加精确的数值解,进一步深入理解自然界的规律。
- 1 -。
fdm有限差分法不能求解的方程
有限差分法(Finite Difference Method, FDM)是一种常见的数值方法,用于求解偏微分方程。
然而,并非所有的方程都可以通过有限差分法来求解。
本文将讨论有限差分法不能求解的方程,并探讨其原因。
一、有限差分法求解的方程类型有限差分法主要用于求解偏微分方程,尤其是常见的热传导方程、扩散方程和波动方程等。
这些方程通常可以通过有限差分法离散化空间和时间,从而转化为代数方程组,再通过迭代等方法求解。
二、有限差分法不能求解的方程类型然而,并非所有的偏微分方程都适合用有限差分法求解。
以下是一些有限差分法不能求解的方程类型:1. 非线性偏微分方程:有限差分法主要适用于线性偏微分方程,对于非线性偏微分方程,由于其复杂的性质和解的多样性,有限差分法往往难以适用。
2. 高阶偏微分方程:有限差分法通常只适用于一阶和二阶偏微分方程,对于高阶偏微分方程,需要进行更复杂的离散化处理,难以直接通过有限差分法求解。
3. 变系数偏微分方程:对于系数随空间或时间变化的偏微分方程,有限差分法往往难以准确描述其变化规律,因此难以求解。
4. 非线性边值问题:对于带有非线性边值条件的偏微分方程,有限差分法的稳定性和收敛性难以保证,因此难以求解。
三、原因分析有限差分法不能求解某些偏微分方程的原因主要包括以下几点:1. 离散化处理困难:一些复杂的方程很难通过简单的差分离散化处理转化为代数方程组,从而难以应用有限差分法求解。
2. 解的多样性:对于非线性偏微分方程和非线性边值条件,解的多样性导致有限差分法往往无法准确描述其解的特性。
3. 稳定性和收敛性难以保证:对于一些特殊的偏微分方程,由于有限差分法的稳定性和收敛性难以保证,因此难以求解。
四、解决方法针对有限差分法不能求解的方程,可以考虑以下解决方法:1. 使用其他数值方法:对于非线性偏微分方程和高阶偏微分方程,可以考虑使用有限元法、有限体积法等其他数值方法进行求解。
2. 手工推导精确解:对于一些特殊的偏微分方程,可以尝试手工推导其解析解,从而获得准确的解。
偏微分方程数值求解方法
偏微分方程数值求解方法引言偏微分方程是数学中研究复杂现象的重要工具之一,它在许多领域都有广泛的应用,例如物理学、工程学和生物学等。
通过求解偏微分方程,我们可以获得系统的解析解或数值解,从而揭示底层的物理规律或实现工程设计。
在本文中,我们将介绍偏微分方程数值求解的常见方法,包括有限差分法、有限元法和谱方法等。
我们将详细介绍这些方法的基本原理、数值算法和实际应用。
有限差分法基本原理有限差分法是偏微分方程数值求解中最常用的方法之一。
它将连续的偏微分方程离散化为差分方程,通过计算差分方程的解来近似原方程的解。
有限差分法的基本思想是将求解域划分为离散的网格,然后在网格点上近似表示原方程。
数值算法有限差分法的数值算法主要包括离散化、边界条件处理和迭代求解三个步骤。
首先,我们将连续的偏微分方程在空间和时间上进行离散化,将其转化为差分方程。
然后,我们需要确定边界条件,即在边界上如何近似表示原方程。
最后,通过迭代计算差分方程的解,直到满足收敛条件。
实际应用有限差分法在许多领域都有广泛的应用。
例如,在流体力学中,它可以用来模拟气体或液体的流动。
在热传导方程中,它可以用来求解物体的温度分布。
此外,有限差分法还可以用来模拟结构力学中的弹性变形和振动问题等。
有限元法基本原理有限元法是一种基于分片线性函数空间的数值方法,用于求解偏微分方程。
它将求解域划分为离散的小单元,然后在每个单元上构造局部基函数,通过组合这些基函数来近似表示原方程的解。
数值算法有限元法的数值算法主要包括离散化、单元刚度矩阵的计算和全局方程的组装三个步骤。
首先,我们将连续的偏微分方程在空间上进行离散化,将其转化为离散的代数方程。
然后,针对每个单元,我们需要计算其对应的刚度矩阵和载荷向量。
最后,通过组装所有单元的刚度矩阵和载荷向量,得到全局方程,并通过求解全局方程来计算原方程的近似解。
实际应用有限元法在结构力学、固体力学和流体力学等领域有广泛的应用。
例如,在结构力学中,它可以用来计算材料的应力和变形分布。
有限差分法解方程
有限差分法(Finite Difference Method)是一种数值方法,用于求解偏微分方程(PDEs)的近似解。
这种方法通过将连续的微分方程离散化,将其转化为一系列代数方程,从而在计算机上进行求解。
有限差分法特别适用于求解具有固定边界条件和初始条件的偏微分方程。
以下是有限差分法求解偏微分方程的基本步骤:1. 网格划分:首先,将问题的连续域划分为离散的网格点。
对于二维问题,这通常涉及到在空间和时间上进行网格划分,形成网格点的集合。
2. 离散化:使用差分公式将微分方程中的导数替换为差分。
例如,一阶导数可以用前向差分或后向差分近似,而二阶导数可以用中心差分近似。
3. 构建差分方程:在每个网格点上应用差分公式,将微分方程转化为代数方程。
对于边界条件,也需要进行相应的离散化处理。
4. 求解线性方程组:差分方程通常会导致一个线性方程组。
对于大型问题,这可能需要使用迭代方法或直接求解器来找到解。
5. 稳定性分析:在求解过程中,需要确保数值解的稳定性。
这涉及到对时间步长和空间步长的选择,以满足CFL(Courant-Friedrichs-Lewy)条件。
6. 迭代求解:对于时间依赖的问题,如热传导或波传播,可以通过时间步进方法(如显式或隐式方法)来迭代求解。
7. 结果分析:最后,分析数值解以验证其准确性,并与解析解(如果存在)进行比较。
有限差分法在处理规则区域和简单边界条件的问题时非常有效。
然而,对于具有复杂几何形状或边界条件的问题,可能需要更高级的数值方法,如有限元方法(FEM)或边界元方法(BEM)。
在实际应用中,有限差分法通常与计算机软件结合使用,如MATLAB、Python的SciPy库等,以便于高效地处理大规模问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有限差分法求解偏微分方程摘要:本文主要使用有限差分法求解计算力学中的系统数学模型,推导了有限差分法的理论基础,并在此基础上给出了部分有限差分法求解偏微分方程的算例验证了推导的正确性及操作可行性。
关键词:计算力学,偏微分方程,有限差分法Abstract:This dissertation mainly focuses on solving the mathematic model of computation mechanics with finite-difference method. The theoretical basis of finite-difference is derived in the second part of the dissertation, and then I use MATLAB to program the algorithms to solve some partial differential equations to confirm the correctness of the derivation and the feasibility of the method.Key words:Computation Mechanics, Partial Differential Equations, Finite-Difference Method1 引言机械系统设计常常需要从力学观点进行结构设计以及结构分析,而这些分析的前提就是建立工程问题的数学模型。
通过对机械系统应用自然的基本定律和原理得到带有相关边界条件和初始条件的微分积分方程,这些微分积分方程构成了系统的数学模型。
求解这些数学模型的方法大致分为解析法和数值法两种,而解析法的局限性众所周知,当系统的边界条件和受载情况复杂一点,往往求不出问题的解析解或近似解。
另一方面,计算机技术的发展使得计算更精确、更迅速。
因此,对于绝大多数工程问题,研究其数值解法更具有实用价值。
对于微分方程而言,主要分为差分法和积分法两种,本论文主要讨论差分法。
2 有限差分法理论基础2.1 有限差分法的基本思想当系统的数学模型建立后,我们面对的主要问题就是微分积分方程的求解。
基本思想是用离散的只含有限个未知量的差分方程组去近似地代替连续变量的微分方程和定解条件,并把差分方程组的解作为微分方程定解问题的近似解。
将原方程及边界条件中的微分用差分来近似,对于方程中的积分用求和或及机械求积公式来近似代替,从而把原微分积分方程和边界条件转化成差分方程组。
有限差分法求解偏微分方程的步骤主要有以下几步:⏹区域离散,即把所给偏微分方程的求解区域细分成由有限个格点组成的网格,这些离散点称作网格的节点;⏹近似替代,即采用有限差分公式替代每一个格点的导数;⏹逼近求解,换而言之,这一过程可以看作是用一个插值多项式及其微分来代替偏微分方程的解的过程。
从原则上说,这种方法仍然可以达到任意满意的计算精度。
因为方程的连续数值解可以通过减小独立变量离散取值的间格,或者通过离散点上的函数值进行插值计算来近似得到。
理论上,当网格步长趋近于零时,差分方程组的解应该收敛于精确解,但由于机器字节的限制,网格步长不可能也没有必要取得无限小,那么差分法的收敛性或者说算法的稳定性就显得至关重要。
因此,在运用有限差分法时,除了要保证精度外,还必须要保证其收敛性。
2.2 系统微分方程的一般形式由于大多数工程问题都是二维问题,所以得到的微分方程一般都是偏微分方程,对于一维问题得到的是常微分方程,解法与偏微分方程类似,故为了不是一般性,这里只讨论偏微分方程。
由于工程中高阶偏微分较少出现,所以本文仅仅给出二阶偏微分方程的一般形式,对于高阶的偏微分,可进行类似地推广。
二阶偏微分方程的一般形式如下:Aϕxx+Bϕxy+Cϕyy=f(x,y,ϕ,ϕx,ϕy)(1)其中,ϕ为弹性体上的某一特征物理量(连续函数)。
当A、B、C都是常数时,(1)式称为准线性,有三种准线性方程形式:⏹如果Δ=B2−4AC<0,则称为椭圆型方程;⏹如果Δ=B2−4AC=0,则称为抛物型方程;⏹如果Δ=B2−4AC>0,则称为双曲型方程。
椭圆型方程主要用来处理稳态或静态问题,如热传导等问题;抛物线方程主要用来处理瞬态问题,如渗透、扩散等问题;双曲型方程主要用来处理振动问题,如玄震动、薄膜震动等问题。
除了上述微分方程外,必须给出定解条件,通常有如下三类:⏹第一类边界条件(Dirichlet条件):ϕ|Γ=φ(x,y);|Γ=φ1(x,y);⏹第二类边界条件(Neumann条件):∂ϕ∂n+λ(x,y)ϕ]|Γ=ψ(x,y);⏹第三类边界条件(Robin条件):[∂ϕ∂n其中,Γ为求解域Ω的边界,n⃗为Γ的单位外法矢,λ(x,y)|Γ≢0。
第二类和第三类边界条件统称为导数边界条件。
2.3 有限差分方程的数学基础2.3.1 一元函数导数的差分公式一个函数在x点上的导数,可以近似地用它所临近的两点上的函数值的差分来表示。
函数f(x)在x=x0处的泰勒展式如下:f(x)=∑1n!f(n)(x0)∞n=0(x−x0)n=f(x0)+f′(x)(x−x0)+12!f′′(x)(x−x0)2+13!f(3)(x)(x−x0)3+⋯对一个单变量函数f(x),以步长∆x=ℎ将[a,b]区间等距划分,我们得到一系列节点:x0=a,x1=x0+∆x=a+ℎ,x2=x1+∆x=a+2ℎ,⋯,x i= x i−1+∆x=a+iℎ,⋯,x n=b(n=b−aℎ),然后求出f(x)在这些节点上的近似值。
与节点x i相邻的节点有x i−ℎ和x i+ℎ,因此在点x i处可以构造如下形式的展开式:f(x i−ℎ)=f(x i)−f′(x i)ℎ+12!f′′(x i)ℎ2+R2(x)f(x i+ℎ)=f(x i)+f′(x i)ℎ+12!f′′(x i)ℎ2+R2(x)由式(3)和式(4)可得到:⏹一阶向前差分:f′(x i)=f(x i+ℎ)−f(x i)ℎ⏹一阶向后差分:f′(x i)=f(x i)−f(x i−ℎ)ℎ⏹一阶中心差分:f′(x i)=f(x i+ℎ)−f(x i−ℎ)2ℎ不妨,记f i=f(x i),则式(5)、(6)、(7)分别简写为:⏹一阶向前差分:f i′=f i+1−f iℎ⏹一阶向后差分:f i′=f i−f i−1ℎ⏹一阶中心差分:f i′=f i+1−f i−12ℎ(2)(3)(4)(5)(6)(7)(8)(9)(10)根据式(8)、式(9)和式(10),可得二阶差分:⏹ 二阶向前差分:f i ′′=f i+1′−f i ′ℎ=f i+2−2f i+1+f i ℎ2 ⏹ 二阶向后差分:f i ′′=f i ′−f i−1′ℎ=f i −2f i−1+f i−2ℎ2 ⏹ 二阶中心差分:f i ′′=f i+1′−f i−1′2ℎ=f i+2−2f i +f i−24ℎ2差分公式(13)是以相隔2h 的两结点处的函数值来表示中间结点处的一阶导数值,可称为中点导数公式。
式(11)和式(12)是以相邻三结点处的函数值来表示一个端点处的一阶导数值,可称为端点导数公式。
应当指出:中点导数公式与端点导数公式相比,精度较高。
因为前者反映了结点两边的函数变化,而后者却只反映了结点一边的函数变化。
因此,我们总是尽可能应用前者,而只有在无法应用前者时才不得不应用后者。
但是,由于式(11)中的各阶导数均使用的是向前差分,导致用到的节点不相邻,同时为了均衡误差,将节点i 处用到的一阶差分换成向后差分,则式(11)修正为:f i ′′=f i+1′−f i ′ℎ=f i+1−f i ℎ−f i −f i−1ℎℎ=f i+1−2f i +f i−1ℎ2 同理,根据上述推导过程,可得到任意阶的差分公式:⏹ n 阶向前差分:f i(n)=f i+1(n−1)−f i (n−1)ℎ ⏹ n 阶向后差分:f i (n)=f i (n−1)−f i−1(n−1)ℎ ⏹ n 阶中心差分:f i (n)=f i+1(n−1)−f i−1(n−1)2ℎ说明,上述公式中各节点处前一阶导数的代入可能存在不一致,可能是向前差分、向后差分或者中心差分,从而使最终的公式在系数上存在差别。
当然,也(11)(12)(13) (15) (16) (17) (14)可以对各相邻节点进行需要阶数的泰勒展开,从而建立方程组直接求各阶导数。
2.3.2 微分方程转化为线性方程由于三种类型的微分方程解法类似,故这里仅以椭圆型微分方程为例,将微分方程转化为代数方程,对于双曲型和抛物型方程依次类推即可。
不妨记:∇2u= u xx+u yy(∇2称为拉普拉斯算子),f(x,y)和g(x,y)是求解域上的连续函数。
假设求解区域为:R={(x,y):0≤x≤a,0≤y≤b,ba=m/n},将求解区域划分成(n−1)×(m−1)个网格,其中:a=nℎ,b=mℎ,如图1所示。
记f i,j=f(x i,y j),则根据式(14)可得到:∇2u=u xx+u yy=u i+1,j−2u i,j+u i−1,jℎ2+=u i+1,j+u i−1,j+u i,j+1+u i,j−1−4uℎ2x1 x i−1x i x i+1x n图1 五点差分公式式(18)也称为五点差分公式,同理根据式(12)和式(13)可分别得到向前差分公式(19)和向后差分公式(20),如图(2所示)。
向前差分∇2u=u xx+u yy=u i+2,j−2u i+1,j+u i,jℎ2+=u i+2,j+u i,j+2+2u i,j−2u i+1,j−2uℎ2y my j+1 y j y j−1y1⏹ 向后差分∇2u =u xx +u yy =u i,j −2u i−1,j +u i−2,j ℎ2+=u i−2,j +u i,j−2+2u i,j −2u i−1,j −2u ℎ2图2 向前差分(左)和向后差分(右)图3 中心差分、向前差分和向后差分的拉普拉斯算子表示 利用中心差分公式(18),由于式(18)在点(x,y )=(x i ,y i )处具有二阶精度(O (ℎ2)),所以式(18)可近似改写成下式:∇2u i,j ≈u i+1,j +u i−1,j +u i,j+1+u i,j−1−4u i,j ℎ2根据椭圆方程的具体形式可以将其分为以下三种形式: ⏹ 拉普拉斯(Laplace )方程:∇2u =0⏹ 泊松(Poison )方程:∇2u =g(x,y)⏹ 赫耳墨次(Helmholtz )方程:∇2u +f (x,y )u =g(x,y)根据式(21),可建立三种不同形式椭圆方程的代数方程如下:⏹ 拉普拉斯方程:∇2u =00=∇2u i,j ≈u i+1,j +u i−1,j +u i,j+1+u i,j−1−4u i,j ℎ2化简后得到拉普拉斯方程的计算公式: y my 1 y jy j+1y j+2y m y j y j−2 y j−1 y 1 x 1 x n x 1 x i x n x i+1 x i+2x i−1 x i x i−2 u i−1,j −4u i,j u i+1,j u i,j+1u i,j−1 −2u i,j+1 u i,j+2 −2u i+1,j u i+2,j2u i,j 2u i,j u i,j−2 u i−2,j −2u i,j−1−2u i−1,j (21)u i+1,j +u i−1,j +u i,j+1+u i,j−1−4u i,j =0⏹ 泊松方程:∇2u =g (x,y ) u i+1,j +u i−1,j +u i,j+1+u i,j−1−4u i,j −ℎ2∙g i,j =0 ⏹ 赫耳墨次方程:∇2u +f (x,y )u =g(x,y)u i+1,j +u i−1,j +u i,j+1+u i,j−1+(ℎ2∙f i,j −4)u i,j −ℎ2∙g i,j =0 2.3.3 建立有限差分方程组根据式(22)~(24)建立方程组,但是需要知道对应的边界条件才能使方程组存在定解,根据2.2中可知,边界条件一般分为狄利克雷边界条件和导数边界条件两种,下面分别给出这两种边界条件的有限差分方程组的建立过程: ⏹ 狄利克雷边界条件:ϕ|Γ=φ(x,y)对于狄氏条件而言,给出了边界上各节点出的函数计算公式,直接代入节点值(x i ,y i )计算即可,如下所示为矩形区域的边界点计算:u(x 1,y j )=u 1,j =φ(x 1,y j )(1≤j ≤m)(左边界)u(x n ,y j )=u n,j =φ(x n ,y j )(1≤j ≤m)(右边界)u(x j ,y 1)=u j,1=φ(x j ,y 1)(1≤j ≤n)(下边界)u(x j ,y n )=u j,n =φ(x j ,y n )(1≤j ≤n)(上边界)⏹ 导数边界条件:ðu(x,y)ðN =0以右边界点为例,对于右边界点x =x n ,根据Neumann 条件可得下式:ðu(x,y)ðN =ðu(x n ,y j )ðx =u x (x n ,y j )=0 对于拉普拉斯方程,根据计算公式(22),对于边界上的点(x n ,y j )可得:u n+1,j +u n−1,j +u n,j+1+u n,j−1−4u n,j =0 显然,上式中的u n+1,j 在求解域外,是未知量。