第二十章 偏微分方程的数值解
偏微分方程数值解
u
(
x
,
0
)
(
x ),
u (0, t )
g 1 (t ),
t 0, 0 x l
u (x)
t t0 u (l,t) g 2 (t)
0 xl 0tT
二、偏微分方程的差分方法 根本思想:先对求解区域作网格剖分,将自变量的连续变
化区域用有限离散点〔网格点〕集代替;将问题中出现的连续 变量的函数用定义在网格点上离散变量的函数代替;通过用网 格点上函数的差商代替导数,将含连续变量的偏微分方程定解 问题化成只含有限个未知数的代数方程组〔称为差分格式〕。 如果差分格式有解,且当网格无限变小时其解收敛于原微分方 程定解问题的解,那么差分格式的解就作为原问题的近似解。 因此,用差分方法求偏微分方程定解问题一般需要解决以下问 题: 〔i〕选取网格; 〔ii〕对微分方程及定解条件〔内点与边界点〕选择差分近似, 列出差分格式; 〔iii〕差分格式解的存在唯一性,求解差分格式; 〔iv〕讨论差分格式对于微分方程解的收敛性及误差估计。
3、求 u M使得 A(u, v)
F (v)
0,
v
C
1 0
{v(x,
y) C1(), v
1
0}
变分近似方法 1、Ritz方法 2、Galerk in方法
Matlab解法 Matlab中的偏微分方程(PDE)工具箱是用有限元法寻求典型偏微分方程 的数值近似解,该工具箱求解偏微分方程具体步骤与用有限元方法求解偏 微分方程的过程是一致的,包括几个步骤,即几何描述、边界条件描述、 偏微分方程类型选择、有限元划分计算网格、初始化条件输入,最后给出 偏微分方程的数值解(包括画图)。
uxx u yy f (x, y) u( x, y) ( x, y),在 1上
偏微分方程数值解法及其在机械工程中的应用
偏微分方程数值解法及其在机械工程中的应用偏微分方程是描述自然界许多现象的重要数学工具,广泛应用于物理学、工程学等领域。
现代科技的发展,需要对偏微分方程进行数值求解,以获得实用的有效解答。
本文将介绍一些常用的偏微分方程数值解法,并探讨这些方法在机械工程中的应用。
一、偏微分方程的基本概念偏微分方程(Partial Differential Equation,简称PDE)是描述函数的变化率与它的各个自变量之间关系的方程。
常见的偏微分方程包括波动方程、扩散方程和泊松方程等。
例如,波动方程可以写作:∂²u/∂t² = c²∇²u其中,u是波动的位移,t是时间,c是波速,∇²u是拉普拉斯算子,表示u各方向二阶偏导数的和。
二、偏微分方程数值求解方法由于偏微分方程通常难以解析求解,因此需要采用数值求解方法。
下面分别介绍有限差分法、有限元法和谱方法三种常用的数值解法。
1. 有限差分法有限差分法(Finite Difference Method,简称FDM)将偏微分方程中的微分算子用差分算子代替,将求解区域离散化为网格点,并在这些点上逐一求解。
基本思想是用中心差分公式近似求得函数在某点处的导数,然后用差分公式得到下一时刻的函数值。
有限差分法简单易行,计算效率高,但需要使用较大的网格才能保证精度。
2. 有限元法有限差分法只能适用于规则网格,而有限元法(Finite Element Method,简称FEM)即使在不规则网格上求解也很有优势。
有限元法将求解区域分成若干个小区域,每个小区域内的函数值近似为一些基函数在该区域内的系数之和。
给定问题的初始边界条件和偏微分方程,可以得到解方程所需的线性方程组,进而求出各个区域内的系数。
有限元法需要选择一组适当的基函数及其系数,计算量较大,但对不规则边界问题的求解有较好的适用性。
3. 谱方法谱方法(Spectral Method)是一种基于傅里叶变换思想的数值解法,将函数在某个特定的函数空间内展开为傅里叶级数,即用一些特定的基函数展开求和。
偏微分方程数值解
8.Solve菜单 Solve PDE 对当前的几何结构实体 CSC、三角形网格和图形解偏微分方 程。
Parameters…打开PDE对话框,输入解 PDE的参数。 Expeort Solution… 输出PDE方程的解 矢量u。如果可行,将计算特征值1输 出到主工作区间。
Parameters…打开对话框,可以输入解
在MATLAB的命令窗口中输入pdetool命令, 然后单击回车键,就将显示PDE图形界面,如图:
PDE Toolbox 菜单
1.File 菜单 New 更新或建立一个新的几何结果实体模型 Constructive Soild Geometry(CSG), 并取名为 Untitled。 Open … 从硬盘装载M文件。 Save 将在GUI内完成的成果储存到一个M文件 中。
PDE Specifficatiom…打开一个对话框,输入偏微分方程
类型和应用参数。参数的维数决定于偏微分方程的维数。
如果选择专业应用模式,那么特殊偏微分方程和参数将 代替标准偏微分方程系数。每一个参数c、a、f和d皆可 作为有效的MATLAB表达式,以作为计算三角形单元质 量中心的参数值。下面的变量是很有用的。
二阶线性偏微分方程的分类
自变量多于一个微分方程称为偏微分方程。 一般的二阶线性方程总可以写成如下的形状:
若二阶偏导数项的系数 满足: 则称方程在点
则称方程在点
则称方程在点
在区域G中某点
为双曲型的; 为抛物型的; 为椭圆型的。
二阶偏微分方程的解法的方法主要有两大类,其中 每一类又包含若干种方法。
第一类是解析法 分为分离变量法、保角变换法、镜像法和格林函 数法等。
前处理
网格剖分
取定沿x轴和y轴方向的步长 和 ,
偏微分方程的几种数值解法及其应用
1 常微分方程及其数值解法1.1 常微分方程概述在数学上,物质的运动和变化规律是通过函数关系来表示的,在一些复杂的现象中,我们要求的未知量就变成了满足特定条件的一个或一些未知函数。
有的时候,我们需要利用导数或者微分的关系,即这些未知函数的导数与自变量满足某种关系,这种方程我们称之为微分方程。
未知函数是一元函数的微分方程称之为常微分方程,未知函数是多元函数的微分方程我们称之为偏微分方程,我们这里只考虑常微分方程。
常微分方程的解,就是找出一个代入方程使之成为恒等式的函数。
若微分方程的解中含有任意常数的个数与方程阶数相同,且任意常数之间不能合并,则称此解为该方程的通解。
当通解中的各任意常数都取特定值时所得到的解,称为方程的特解。
在实际问题中,这些函数往往还需要满足一些特定条件,这称之为定解条件。
但在实际问题中,很多常微分方程的解析表达式过于复杂,甚至得不到通解的解析表达式。
而且,常微分方程的特解是否存在,存在几个特解,这涉及到微分方程解的存在性和唯一性定理。
因此,在实际应用中,我们通常利用数值的方法来求得方程的数值解,在误差允许的范围内,我们用数值解来替代解析解。
所以,研究常微分的数值解法是很有必要的。
2.2 常微分方程的数值解法常微分方程的数值解法是有常微分方程的定解条件提出的,首先我们考虑如下一阶常微分方程的初值问题。
()()00(,)dx t f x t dtx t x⎧=⎪⎨⎪=⎩(2.1) 2.2.1 欧拉法欧拉法(又称差分法)是常微分方程初值问题数值解法中最简单最古老的方法,它的基本思路是将(2.1)式中导数项用差分来逼近,从而将一个微分方程转化为一个代数方程,以便迭代求解。
根据用于逼近的差分方式来分,可以分为向前差分、向后差分、中心差分。
()()()()()()()()()111112l l l l l l l l l dx t x t x t dt tdx t x t x t dt tdx t x t x t dt t++++--=∆-=∆-=∆ (2.2) 上式中,分别为向前差分法、向后差分法、中心差分法。
偏微分方程数值解
02
常用的数值解法包括有限差分法、有限元法、 谱方法等。
03
数值解法的精度和稳定性是衡量其好坏的重要 指标。
非线性偏微分方程的有限差分法
有限差分法是一种将偏微分方程转化为差分方程的方法,通过在离散点上逼近偏导数,得到离散化的 数值解。
有限差分法的优点是简单直观,易于实现,适用于规则区域。
有限差分法的缺点是对不规则区域适应性较差,且精度较低。
波动问题
谱方法在求解波动问题中也有广泛应用,如 Helmholtz方程、Wave equation等。
固体力学问题
谱方法在求解固体力学问题中也有应用,如 Elasticity equations等。
05
非线性偏微分方程的数值解 法
非线性偏微分方程的解析解法难度
01
非线性偏微分方程的解析解法通常非常复杂,需要深
02
有限差分法的基本思想是将连 续的偏微分方程转化为离散的 差分方程,通过求解差分方程 得到偏微分方程的近似解。
03
有限差分法的精度取决于离散 点之间的间距,间距越小,精 度越高。
一阶偏微分方程的有限差分法
一阶偏微分方程的有限差分法有 多种形式,如向前差分法、向后 差分法和中心差分法等。
中心差分法是向前差分法和向后 差分法的平均值,具有二阶精度 。
通过将微分转化为差分,将原方程转化为离散的差分方程,然后求解差分方程得到近似解。
有限元法
将连续问题离散化,将微分方程转化为线性方程组,通过求解线性方程组得到近似解。
谱方法
利用函数的谱展开来求解偏微分方程,具有高精度和低数值弥散性的优点。
02
有限差分法
有限差分法的原理
01
有限差分法是一种将偏微分方 程转化为差分方程的方法,通 过在离散点上逼近偏微分方程 的解,得到数值解。
偏微分方程的解析与数值解法
偏微分方程的解析与数值解法偏微分方程(Partial Differential Equations,简称PDE)是数学中一类重要的方程类型,广泛应用于物理、工程、经济等领域的建模和问题求解中。
解析解和数值解是求解偏微分方程的两种常见方法,在本文中我们将探讨偏微分方程的解析解法和数值解法,并讨论它们的特点和应用。
一、解析解法解析解是指能够用数学公式、解析表达式或函数形式明确求解的方程解。
对于一些简单的偏微分方程,我们可以通过解特征方程、利用变量分离法、套用标准的解析解公式等方法求得其解析解。
以一维热传导方程为例,其数学表达式为:(1)∂u/∂t = α∂²u/∂x²,其中 u(x, t) 为温度分布函数,α为热传导系数。
通过应用分离变量法,我们可以将热传导方程转化为两个常微分方程,从而求得其解析解。
当然,对于更复杂的偏微分方程,可能需要运用更高级的数学方法和技巧来求得其解析解。
解析解法的优点是可以给出精确的解,有助于深入理解问题的本质和特性。
它还能提供闭合的数学描述,便于进行进一步分析和推导。
然而,解析解法的局限性在于,只有少部分简单的偏微分方程能够求得解析解,大多数情况下我们需要借助数值方法求解。
二、数值解法数值解法是通过离散化空间和时间,并利用计算机进行数值计算的方法,近似求解偏微分方程。
数值解法的核心思想是将偏微分方程转化为代数方程组,并通过迭代算法求解方程组获得数值解。
常见的数值解法包括有限差分法、有限元法和谱方法等。
以有限差分法为例,该方法将连续的空间和时间网格离散化为有限个点,然后利用差分格式逼近原偏微分方程,通过迭代求解差分方程组得到数值解。
对于上述的一维热传导方程,我们可以利用有限差分法进行求解。
将空间和时间划分为离散网格,利用差分近似替代导数项,然后利用迭代算法求解差分方程组。
通过不断减小网格的大小,我们可以提高数值解的精度,并逼近解析解。
数值解法的优点是能够处理复杂的偏微分方程,广泛适用于各种实际问题。
化工应用数学-偏微分方程数值解
;uxx
2u x 2
;uyy
2u y 2
;uxy
2u xy
F (x, y,u,ux ,uy ,uxx,uyy,uxy ) 0
2020/6/19
化工应用数学
10
F (x, y,u,ux ,uy ,uxx,uyy,uxy ) 0
Auxx 2Buxy Cu yy Du x Eu y Gu f 0
2020/6/19
化工应用数学
24
1 2
1 2
u2, j1
u3, j1
u2, j1 u1, j1
u3, j1
1 2
u
N
2,
j
1
uN 2, j1
1 2 uN 1, j1 uN 1, j1 uN , j1
可采用追赶法求解
2020/6/19
化工应用数学
u2, j
t h2
Du1, j1
t
2t
t
h2 Du2, j1 (1 h2 D)u3, j1 h2 Du4, j1 u3, j
t
2t
t
h2 Du3, j1 (1 h2 D)u4, j1 h2 Du5, j1 u4, j
t h2
DuN-2, j1
(1
2t h2
D)uN-1, j1
uN-1,
考察的区域: a<x<b,t>0,一条带状区域
t
求划分的网格的任一 节点处的u值
ua
ub
目标是求出:方程域 内任意(x,t)处的u值
x x=a u0 x=b
2020/6/19
化工应用数学
16
最简单的抛物方程是一维扩散方程
考察的区域: a<x<b,t>0,一条带状区域
偏微分方程的数值解法
偏微分方程的数值解法偏微分方程(Partial Differential Equation, PDE)是数学和物理学中的重要概念,广泛应用于工程、科学和其他领域。
在很多情况下,准确解析解并不容易获得,因此需要利用数值方法求解偏微分方程。
本文将介绍几种常用的数值解法。
1. 有限差分法(Finite Difference Method)有限差分法是最常见和经典的数值解法之一。
基本思想是将偏微分方程在求解域上进行离散化,然后用差分近似代替微分运算。
通过求解差分方程组得到数值解。
有限差分法适用于边界条件简单且求解域规则的问题。
2. 有限元法(Finite Element Method)有限元法是适用于不规则边界条件和求解域的数值解法。
将求解域划分为多个小区域,并在每个小区域内选择适当的形状函数。
通过将整个域看作这些小区域的组合来逼近原始方程,从而得到一个线性代数方程组。
有限元法具有较高的灵活性和适用性。
3. 有限体积法(Finite Volume Method)有限体积法是一种较新的数值解法,特别适用于物理量守恒问题。
它通过将求解域划分为多个控制体积,并在每个体积内计算守恒量的通量,来建立离散的方程。
通过求解这个方程组得到数值解。
有限体积法在处理守恒律方程和非结构化网格上有很大优势。
4. 局部网格法(Local Grid Method)局部网格法是一种多尺度分析方法,适用于具有高频振荡解的偏微分方程。
它将计算域划分为全局细网格和局部粗网格。
在全局细网格上进行计算,并在局部粗网格上进行局部评估。
通过对不同尺度的解进行耦合,得到更精确的数值解。
5. 谱方法(Spectral Method)谱方法是一种基于傅里叶级数展开的高精度数值解法。
通过选择适当的基函数来近似求解函数,将偏微分方程转化为代数方程。
谱方法在处理平滑解和周期性边界条件的问题上表现出色,但对于非平滑解和不连续解的情况可能会遇到困难。
6. 迭代法(Iterative Method)迭代法是一种通过多次迭代来逐步逼近精确解的求解方法。
偏微分方程数值解
第一章概述1.1 偏微分方程工具箱的功能偏微分方程工具箱(PDE Toolbox)提供了研究和求解空间二维偏微分方程问题的一个强大而又灵活实用的环境。
PDE Toolbox的功能包括:(1) 设置PDE (偏微分方程)定解问题,即设置二维定解区域、边界条件以及方程的形式和系数;(2) 用有限元法(FEM) 求解PDE数值解;(3) 解的可视化。
无论是高级研究人员还是初学者,在使用PDE Too1box时都会感到非常方便。
只要PDE定解问题的提法正确,那么,启动MATLAB 后,在MATLAB工作空间的命令行中键人pdetool,系统立即产生偏微分方程工具箱(PDE Toolbox)的图形用户界面(Graphical User Interface,简记为GUI),即PDE解的图形环境,这时就可以在它上面画出定解区域、设置方程和边界条件、作网格剖分、求解、作图等工作,详见1.4节中的例子。
我们将在第二章详细介绍GUI的使用,在第二章给出大量典型例子和应用实例。
除了用GUI求解PDE外,也可以用M文件的编程计算更为复杂的问题,详见第三章和第四章的内容。
1.2 PDE Toolbox求解的问题及其背景1.2.1 方程类型PDE Toolbox求解的基本方程有椭圆型方程、抛物型方程、双曲型方程、特征值方程、椭圆型方程组以及非线性椭圆型方程。
椭圆型方程: (), ,c u au f in -∇⋅∇+=Ω,椭圆型方程:(),,c u au f in -∇⋅∇+=Ω其中Ω是平面有界区域,c ,a ,f 以及未知数u 是定义在Ω上的实(或复)函数。
抛物型方程:(), .u d c u au f in t∂-∇⋅∇+=Ω∂ 双曲型方程:22(), u c u au f in t∂∂-∇⋅∇+=Ω∂. 特征值方程:(), ,c u au du in λ-∇∇+=Ω其中d 是定义在Ω上的复函数,λ是待求特征值。
在抛物型方程和双曲型方程中,系数c ,a ,f 和d 可以依赖于时间t 。
偏微分方程数值解的计算方法
偏微分方程数值解的计算方法偏微分方程是研究自然和社会现象的重要工具。
然而,大多数偏微分方程很难用解析方法求解,需要用数值方法求解。
本文将介绍偏微分方程数值解的计算方法,其中包括有限差分方法、有限体积法、谱方法和有限元方法。
一、有限差分方法有限差分法是偏微分方程数值解的常用方法,它将偏微分方程中的空间变量转换为网格点上的差分近似。
例如,对于一个二阶偏微分方程:$$\frac{\partial^{2}u}{\partialx^{2}}+\frac{\partial^{2}u}{\partial y^{2}}=f(x,y,u)$$可以使用中心差分方法进行近似:$$\frac{\partial^{2}u}{\partial x^{2}}\approx \frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{(\Delta x)^{2}}$$$$\frac{\partial^{2}u}{\partial y^{2}}\approx \frac{u_{i,j+1}-2u_{i,j}+u_{i,j-1}}{(\Delta y)^{2}}$$其中,$u_{i,j}$表示在第$i$行第$j$列的网格点上的函数值,$\Delta x$和$\Delta y$表示网格步长。
将差分近似代入原方程中,得到如下的差分方程:$$\frac{u_{i+1,j}-2u_{i,j}+u_{i-1,j}}{(\Deltax)^{2}}+\frac{u_{i,j+1}-2u_{i,j}+u_{i,j-1}}{(\Deltay)^{2}}=f_{i,j,u_{i,j}}$$该方程可以用迭代法求解。
有限差分方法的优点是易于实现,但在均匀网格下准确性不高。
二、有限体积法有限体积法是将偏微分方程中的积分形式转换为求解网格单元中心值的方法。
例如,对于如下的扩散方程:$$\frac{\partial u}{\partial t}=\frac{\partial}{\partialx}\left(D(u)\frac{\partial u}{\partial x}\right)$$可以使用有限体积法进行近似。
偏微分方程数值解
偏微分方程数值解一、偏微分方程(组)的解法介绍引导我们知道物理现象中很多问题可以用偏微分方程描述,例如振动、热传导、扩散等。
一些典型物理方程的构建及解析解法,有兴趣的用户可参考顾樵编著的《数学物理方法》。
涉及到多变量或多领域的偏微分方程就存在着变量的耦合,很难用数解析解法或无法用解析解法求得耦合偏微分方程解,此时就需要我们是用数值解法进行求解,本文的主题就放在耦合的偏微分方程组的数值解法介绍上。
上篇文章我们简单介绍了锂离子电池的P2D模型,即一个耦合的偏微分方程组。
具体可查看上篇文章。
要想求解如上篇文章形式的偏微分方程组我们通常可以选择有限差分法、正交配置法和有限元法。
由于有限差分法操作简单,本文的重点介绍有限差分法。
newman编写的电池模型程序就是基于有限差法。
二、有限差分法介绍有限差分法顾名思义可分为有限+差分。
有限——我们可以理解为连续(无限)的求解域,通过离散化变为由有限个网格节点构成的求解域。
下图形象的将r和y构成的连续域离散为由网格节点构成的有限域。
差分——由数学定义我们可以理解差分,具体如下图。
差分分为三种形式向前差分、向后差分和中心差分,对于边界点还有特定的处理。
有限差分法求解偏微分方程的基本过程是:1)划分网格。
将连续的求解域划分为有限的差分网格,将求解的变量存放在网格的各个节点上。
2)差分构建。
在每个点上将偏微分方程的微分项用合适的差商代替,从而将偏微分方程转换为代数形式的差分方程,每个节点的差分方程组合在一起就构成了一个代数方程组,我们利用初始值和边界条件,即可求解代数方程组的解,获取每个节点的变量值,即偏微分方程的数值解。
偏微分方程的解法
偏微分方程的解法偏微分方程(Partial Differential Equations, PDEs)是数学中的重要分支,在科学和工程领域具有广泛的应用。
解决偏微分方程的问题,可帮助我们理解自然界中的各种现象,如电磁场的传播、流体运动等。
本文将介绍几种常见的偏微分方程的解法。
一、分离变量法分离变量法是解偏微分方程最常见的方法之一。
我们以二阶线性偏微分方程为例,假设其形式为:A(x,y)u_{xx} + B(x,y)u_{xy} + C(x,y)u_{yy} + D(x,y,u,u_x,u_y) = 0其中u表示未知函数,A、B、C、D为已知函数。
为了使用分离变量法,我们假设解可以表示为两个函数的乘积形式:u(x,y) = X(x)Y(y)将上述形式代入方程,利用变量分离的性质,可将原方程化简为两个常微分方程。
解决这两个常微分方程,即可得到偏微分方程的解。
二、特征线法特征线法适用于一类特殊的偏微分方程,其中包含一阶偏导数和高阶偏导数的混合项。
我们以一维波动方程为例,其形式为:u_{tt} - c^2 u_{xx} = 0其中c表示波速。
特征线法的思想是引入新的变量,使得原方程可以转化为一组常微分方程。
对于波动方程,我们引入变量ξ和η,定义如下:ξ = x + ctη = x - ct通过做变量替换后,原方程可以转化为常微分方程:u_{ξη} = 0这样,我们可以通过求解常微分方程得到偏微分方程的解。
三、变换方法变换方法包括拉普拉斯变换、傅里叶变换等,通过引入新的变量,将原偏微分方程转化为代数方程,然后利用代数方程的解法解出未知函数。
变换方法的优势在于可以将一些常见的偏微分方程转化为代数方程,从而简化解法的步骤。
四、数值解法对于复杂的偏微分方程,解析解可能难以求得或不存在。
此时,数值解法就变得非常重要。
常用的数值解法包括差分法、有限元法、有限差分法等。
这些方法将连续的偏微分方程离散化,将其转化为差分方程或代数方程,然后使用计算机进行求解。
偏微分方程数值解
第一章 概 述大家采用下面的方法求解Terzaghi 一维固结方程。
1.1 偏微分方程工具箱的功能偏微分方程工具箱(PDE Toolbox)提供了研究和求解空间二维偏微分方程问题的一个强大而又灵活实用的环境。
PDE Toolbox 的功能包括:(1) 设置PDE (偏微分方程)定解问题,即设置二维定解区域、边界条件以及方程的形式和系数;(2) 用有限元法 (FEM) 求解PDE 数值解;(3) 解的可视化。
无论是高级研究人员还是初学者,在使用PDE Too1box 时都会感到非常方便。
只要PDE 定解问题的提法正确,那么,启动MATLAB 后,在MATLAB 工作空间的命令行中键人pdetool ,系统立即产生偏微分方程工具箱(PDE Toolbox)的图形用户界面(Graphical User Interface ,简记为GUI),即PDE 解的图形环境,这时就可以在它上面画出定解区域、设置方程和边界条件、作网格剖分、求解、作图等工作,详见1.4节中的例子。
我们将在第二章详细介绍GUI 的使用,在第二章给出大量典型例子和应用实例。
除了用GUI 求解PDE 外,也可以用M 文件的编程计算更为复杂的问题,详见第三章和第四章的内容。
1.2 PDE Toolbox 求解的问题及其背景1.2.1 方程类型PDE Toolbox 求解的基本方程有椭圆型方程、抛物型方程、双曲型方程、特征值方程、椭圆型方程组以及非线性椭圆型方程。
椭圆型方程: (), ,c u au f in -∇⋅∇+=Ω,椭圆型方程:(),,c u au f in -∇⋅∇+=Ω其中Ω是平面有界区域,c ,a ,f 以及未知数u 是定义在Ω上的实(或复)函数。
抛物型方程:(), .u d c u au f in t∂-∇⋅∇+=Ω∂ 双曲型方程:22(), u c u au f in t∂∂-∇⋅∇+=Ω∂. 特征值方程:(), ,c u au du in λ-∇∇+=Ω其中d 是定义在Ω上的复函数,λ是待求特征值。
偏微分方程数值解的有效条件数
偏微分方程数值解的有效条件数
有效条件数是指在偏微分方程计算中,为了确保解的有效性,所需要满足的具体要求和条件。
其实,在运用偏微分方程求解问题时,有效条件数是极其重要的。
下面,给大家介绍一些关于偏微分方程数值解的有效条件数:
一、精确条件数
1、有效误差控制:当求解过程中,误差达到某一精度要求时,解的可靠性就被保证了。
2、收敛性检验:在数值计算中,收敛性检验是保证数值解精度的重要等算法。
它需要比较当前次和上一次求解结果,并以此判断是否能够收敛到某个精度了。
3、限制系数:系数限制不仅能够有效控制一定的有效误差,而且能够保证解的可靠性。
计算时,引入系数进行限制,这是保证解的有效性的重要条件。
二、非精确条件数
1、初值条件:与微分方程所涉及到的变量是相关系数,未知量的起始
值也被认为是有效条件之一。
2、边界条件:解的实际范围有限,因此必须考虑围绕边界的一系列有
限变量来计算微分方程解。
如果未考虑到边界条件,很可能会影响解
的真实性和准确性。
3、结构条件:在解决微分方程的问题时,实际上,结构条件是指微分
方程的运动规律。
例如,假设斯文朗的两次微分方程的形式表示为:$ \frac{\partial ^2u}{\partial x^2}+a\frac{\partial u}{\partial x} +b u =f $ ,那么a和b就是结构条件,a表示一个把握外力系数精度的有效条件。
综上所述,偏微分方程数值解的有效条件数有:
1、精确条件数:有效误差控制、收敛性检验和系数限制。
2、非精确条件数:初值条件、边界条件和结构条件。
算法大全第20章偏微分方程的数值解
算法大全第20章偏微分方程的数值解偏微分方程(Partial Differential Equations,简称PDE)是描述自然界中各种物理现象的数学方程。
这些方程中的未知函数是多变量函数,而不是常微分方程中的单变量函数。
求解PDE是科学与工程中的重要问题,尤其在现代科学中,PDE的求解对于理解和预测自然现象具有重要的意义。
偏微分方程的数值解是指通过数值计算方法来求解PDE的近似解。
由于大多数情况下,PDE的解析解很难获得,因此数值解方法成为研究这些方程的重要工具之一、对于偏微分方程的数值解的研究主要集中在以下几个方面:1. 有限差分法(Finite Difference Method):这是求解PDE最常用的方法之一、该方法通过将微分方程在空间和时间上进行离散化,转化为差分方程或代数方程组,然后通过求解这些方程组来得到数值解。
有限差分法的基本思想是将空间和时间进行网格划分,将未知函数的值在网格点上进行逼近,并用差分格式代替微分运算。
2. 有限元法(Finite Element Method):该方法通过将求解域划分为若干个较小的单元,然后在每个单元中构建适当的数学模型,求解局部的代数问题,最终得到整个求解域的逼近解。
有限元法的优点是能够处理比较复杂的几何形状,适用于非结构网格,但需要更多的计算资源。
3. 边界元法(Boundary Element Method):该方法主要用于求解边界值问题,将求解域划分为边界和内部两个部分。
边界元法通过在边界上离散化未知函数,并构建适当的积分方程来求解问题。
边界元法常用于求解椭圆型PDE,计算效率较高。
4. 特征线法(Characteristics Method):该方法通过在方程中寻找适当的特征曲线,将PDE转化为一维常微分方程,然后求解这个常微分方程。
特征线法对于具有特殊类型边界条件的问题有很好的适用性,但在处理高维问题时存在困难。
以上只是偏微分方程数值解研究的一些常见方法,根据具体问题的特点和要求,还可以选择其他数值方法。
偏微分方程的数值解法
偏微分方程的数值解法1.peEllip5 用五点差分格式解拉普拉斯方程function u = peEllip5(nx,minx,maxx,ny,miny,maxy) format long;hx = (maxx-minx)/(nx-1);hy = (maxy-miny)/(ny-1);u0 = zeros(nx,ny);for j=1:nyu0(j,1) = EllIni2Uxl(minx,miny+(j-1)*hy);u0(j,nx) = EllIni2Uxr(maxx,miny+(j-1)*hy);endfor j=1:nxu0(1,j) = EllIni2Uyl(minx+(j-1)*hx,miny);u0(ny,j) = EllIni2Uyr(minx+(j-1)*hx,maxy);endA = -4*eye((nx-2)*(ny-2),(nx-2)*(ny-2));b = zeros((nx-2)*(ny-2),1);for i=1:(nx-2)*(ny-2)if mod(i,nx-2) == 1if i==1A(1,2) = 1;A(1,nx-1) = 1;b(1) = - u0(1,2) - u0(2,1);elseif i == (ny-3)*(nx-2)+1A(i,i+1) = 1;A(i,i-nx+2) = 1;b(i) = - u0(ny-1,1) - u0(ny,2);elseA(i,i+1) = 1;A(i,i-nx+2) = 1;A(i,i+nx-2) = 1;b(i) = - u0(floor(i/(nx-2))+2,1);endendelseif mod(i,nx-2) == 0if i == nx-2A(i,i-1) = 1;A(i,i+nx-2) = 1;b(i) = - u0(1,nx-1) - u0(2,nx);elseif i == (ny-2)*(nx-2)A(i,i-1) = 1;A(i,i-nx+2) = 1;b(i) = - u0(ny-1,nx) - u0(ny,nx-1);elseA(i,i-1) = 1;A(i,i-nx+2) = 1;A(i,i+nx-2) = 1;b(i) = - u0(floor(i/(nx-2))+1,nx);endendelseif i>1 && i< nx-2A(i,i-1) = 1;A(i,i+nx-2) = 1;A(i,i+1) = 1;b(i) = - u0(1,i+1);elseif i > (ny-3)*(nx-2) && i < (ny-2)*(nx-2)A(i,i-1) = 1;A(i,i-nx+2) = 1;A(i,i+1) = 1;b(i) = - u0(ny,mod(i,(nx-2))+1);elseA(i,i-1) = 1;A(i,i+1) = 1;A(i,i+nx-2) = 1;A(i,i-nx+2) = 1;endendendendendul = A\b;for i=1:(ny-2)for j=1:(nx-2)u(i,j) = ul((i-1)*(nx-2)+j);endendformat short;2.peEllip5m 用工字型差分格式解拉普拉斯方程function u = peEllip5m(nx,minx,maxx,ny,miny,maxy) format long;hx = (maxx-minx)/(nx-1);hy = (maxy-miny)/(ny-1);u0 = zeros(nx,ny);for j=1:nyu0(j,1) = EllIni2Uxl(minx,miny+(j-1)*hy);u0(j,nx) = EllIni2Uxr(maxx,miny+(j-1)*hy);endfor j=1:nxu0(1,j) = EllIni2Uyl(minx+(j-1)*hx,miny);u0(ny,j) = EllIni2Uyr(minx+(j-1)*hx,maxy);endA = -4*eye((nx-2)*(ny-2),(nx-2)*(ny-2));b = zeros((nx-2)*(ny-2),1);for i=1:(nx-2)*(ny-2)if mod(i,nx-2) == 1if i==1A(1,nx) = 1;b(1) = - u0(1,1) - u0(3,1) - u0(1,3);elseif i == (ny-3)*(nx-2)+1A(i,i-nx+1) = 1;b(i) = - u0(ny,1) - u0(ny,3) - u0(ny-2,1);elseA(i,i-nx+3) = 1;A(i,i+nx-1) = 1;b(i) = - u0(floor(i/(nx-2))+1,1) - u0(floor(i/(nx-2))+3,1);endendelseif mod(i,nx-2) == 0if i == nx-2A(i,i+nx-1) = 1;b(i) = - u0(1,nx-2) - u0(1,nx) - u0(3,nx);elseif i == (ny-2)*(nx-2)A(i,i-nx+1) = 1;b(i) = - u0(ny,nx) - u0(ny,nx-2) - u0(ny-2,nx);elseA(i,i-nx+1) = 1;A(i,i+nx-3) = 1;b(i) = - u0(floor(i/(nx-2)),nx) - u0(floor(i/(nx-2))+2,nx);endendelseif i>1 && i< nx-2A(i,i+nx-1) = 1;A(i,i+nx-3) = 1;b(i) = - u0(1,i) - u0(1,i+2);elseif i > (ny-3)*(nx-2) && i < (ny-2)*(nx-2)A(i,i-nx+3) = 1;A(i,i-nx+1) = 1;b(i) = - u0(ny,mod(i,(nx-2))) -u0(ny,mod(i,(nx-2))+2);elseA(i,i-nx+3) = 1;A(i,i+nx-1) = 1;A(i,i+nx-3) = 1;A(i,i-nx+1) = 1;endendendendendul = A\b;for i=1:(ny-2)for j=1:(nx-2)u(i,j) = ul((i-1)*(nx-2)+j);endendformat short;3.peHypbYF 用迎风格式解对流方程function u = peYF(a,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);if a>0for j=1:(n+M)u0(j) = IniU(minx+(j-M-1)*h);endelsefor j=1:(n+M)u0(j) = IniU(minx+(j-1)*h);endendu1 = u0;for k=1:Mif a>0for i=(k+1):n+Mu1(i) = -dt*a*(u0(i)-u0(i-1))/h+u0(i);endelsefor i=1:n+M-ku1(i) = -dt*a*(u0(i+1)-u0(i))/h+u0(i);endendu0 = u1;endif a>0u = u1((M+1):M+n);elseu = u1(1:n);endformat long;4.peHypbLax 用拉克斯-弗里德里希斯格式解对流方程function u = peHypbLax(a,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);for j=1:(n+2*M)u0(j) = IniU(minx+(j-M-1)*h);endu1 = u0;for k=1:Mfor i=k+1:n+2*M-ku1(i) = -dt*a*(u0(i+1)-u0(i-1))/h/2+(u0(i+1)+u0(i-1))/2;endu0 = u1;endu = u1((M+1):(M+n));format short;4.peHypbLaxW 用拉克斯-温德洛夫格式解对流方程function u = peLaxW(a,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);for j=1:(n+2*M)u0(j) = IniU(minx+(j-M-1)*h);endu1 = u0;for k=1:Mfor i=k+1:n+2*M-ku1(i) = dt*dt*a*a*(u0(i+1)-2*u0(i)+u0(i-1))/2/h/h - ...dt*a*(u0(i+1)-u0(i-1))/h/2+u0(i);endu0 = u1;endu = u1((M+1):(M+n));format short;6.peHypbBW 用比姆-沃明格式解对流方程function u = peBW(a,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);for j=1:(n+2*M)u0(j) = IniU(minx+(j-2*M-1)*h);endu1 = u0;for k=1:Mfor i=2*k+1:n+2*Mu1(i) = u0(i)-dt*a*(u0(i)-u0(i-1))/h-a*dt*(1-a*dt/h)* ...(u0(i)-2*u0(i-1)+u0(i-2))/2/h;endu0 = u1;endu = u1((2*M+1):(2*M+n));format short;7.peHypbRich 用Richtmyer多步格式解对流方程function u = peRich(a,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);for j=1:(n+4*M)u0(j) = IniU(minx+(j-2*M-1)*h);endfor k=1:Mfor i=2*k+1:n+4*M-2*ktmpU1 = -dt*a*(u0(i+2)-u0(i))/h/4+(u0(i+2)+u0(i))/2;tmpU2 = -dt*a*(u0(i)-u0(i-2))/h/4+(u0(i)+u0(i-2))/2;u1(i) = -dt*a*(tmpU1-tmpU2)/h/2+u0(i);endu0 = u1;endu = u1((2*M+1):(2*M+n));format short;8.peHypbMLW 用拉克斯-温德洛夫多步格式解对流方程function u = peMLW(a,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);for j=1:(n+2*M)u0(j) = IniU(minx+(j-M-1)*h);endu1 = u0;for k=1:Mfor i=k+1:n+2*M-ktmpU1 = -dt*a*(u0(i+1)-u0(i))/h/2+(u0(i+1)+u0(i))/2;tmpU2 = -dt*a*(u0(i)-u0(i-1))/h/2+(u0(i)+u0(i-1))/2;u1(i) = -dt*a*(tmpU1-tmpU2)/h+u0(i);endu0 = u1;endu = u1((M+1):(M+n));format short;9.peHypbMC 用MacCormack多步格式解对流方程function u = peMC(a,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);for j=1:(n+2*M)u0(j) = IniU(minx+(j-M-1)*h);endfor k=1:Mfor i=k+1:n+2*M-ktmpU1 = -dt*a*(u0(i+1)-u0(i))/h+u0(i);tmpU2 = -dt*a*(u0(i)-u0(i-1))/h+u0(i-1);u1(i) = -dt*a*(tmpU1-tmpU2)/h/2+(u0(i)+tmpU1)/2;endu0 = u1;endu = u1((M+1):(M+n));format short;10.peHypb2LF 用拉克斯-弗里德里希斯格式解二维对流方程的初值问题function u = pe2LF(a,b,dt,nx,minx,maxx,ny,miny,maxy,M)%啦-佛format long;hx = (maxx-minx)/(nx-1);hy = (maxy-miny)/(ny-1);for i=1:nx+2*Mfor j=1:(ny+2*M)u0(i,j) = Ini2U(minx+(i-M-1)*hx,miny+(j-M-1)*hy);endendu1 = u0;for k=1:Mfor i=k+1:nx+2*M-kfor j=k+1:ny+2*M-ku1(i,j) = (u0(i+1,j)+u0(i-1,j)+u0(i,j+1)+u0(i,j-1))/4 ...-a*dt*(u0(i+1,j)-u0(i-1,j))/2/hx ...-b*dt*(u0(i,j+1)-u0(i,j-1))/2/hy;endendu0 = u1;endu = u1((M+1):(M+nx),(M+1):(M+ny));format short;11.peHypb2FL 用拉克斯-弗里德里希斯格式解二维对流方程的初值问题function u = pe2FL(a,b,dt,nx,minx,maxx,ny,miny,maxy,M)format long;hx = (maxx-minx)/(nx-1);hy = (maxy-miny)/(ny-1);for i=1:nx+4*Mfor j=1:(ny+4*M)u0(i,j) = Ini2U(minx+(i-2*M-1)*hx,miny+(j-2*M-1)*hy);endendu1 = u0;for k=1:Mfor i=2*k+1:nx+4*M-2*kfor j=2*k-1:ny+4*M-2*k+2tmpU(i,j) = u0(i,j) - a*dt*(u0(i+1,j)-u0(i-1,j))/2/hx + ...(a*dt/hx)^2*(u0(i+1,j)-2*u0(i,j)+u0(i-1,j))/2;endendfor i=2*k+1:nx+4*M-2*kfor j=2*k+1:nx+4*M-2*ku1(i,j) = tmpU(i,j) - b*dt*(tmpU(i,j+1)-tmpU(i,j-1))/2/hy + ...(b*dt/hy)^2*(tmpU(i,j+1)-2*tmpU(i,j)+tmpU(i,j-1))/2;endendu0 = u1;endu = u1((2*M+1):(2*M+nx),(2*M+1):(2*M+ny));format short;12.peParabExp 用显式格式解扩散方程的初值问题function u = peParabExp(c,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);for j=1:(n+2*M)u0(j) = PrIniU(minx+(j-M-1)*h);endu1 = u0;for k=1:Mfor i=k+1:n+2*M-ku1(i) = dt*c*(u0(i+1)-2*u0(i)+u0(i-1))/h/h+u0(i);endendu = u1((M+1):(M+n));format short;13.peParabTD 用跳点格式解扩散方程的初值问题function u = peParabTD(c,dt,n,minx,maxx,M)%跳点format long;h = (maxx-minx)/(n-1);for j=1:(n+2*M)u0(j) = PrIniU(minx+(j-M-1)*h);endu1 = u0;for k=1:Mfor i=k+1:n+2*M-kif mod(n+i,2) == 0u1(i) = u0(i) + c*dt*(u0(i+1) - 2*u0(i) + u0(i-1))/h/h;if i > 2u1(i-1) =(u0(i-1) + c*dt*(u1(i) + u1(i-2))/h/h)/(1 + 2*c*dt/h/h);endendendu0 = u1;endu = u1((M+1):(M+n));format short;14.peParabImp 用隐式格式解扩散方程的初边值问题function u = peParabImp(c,dt,n,minx,maxx,lbu,rbu,M)format long;h = (maxx-minx)/(n-1);u0(1) = lbu;u0(n) = rbu;for j=2:n-1u0(j) = PrIniU(minx+(j-1)*h);endu1 = u0;for k=1:MA = zeros(n-2,n-2);cb = - transpose(u0(2:(n-1)));cb(1) = cb(1) - dt*c*lbu/h/h;cb(n-2) = cb(n-2) - dt*c*rbu/h/h;A(1,1) = -2*dt*c/h/h -1;A(1,2) = dt*c/h/h ;for i=2:n-3A(i,i-1) = dt*c/h/h ;A(i,i) = - 2*dt*c/h/h -1 ;A(i,i+1) = dt*c/h/h ;endA(n-2,n-2) = -2*dt*c/h/h -1;A(n-2,n-3) = dt*c/h/h;u1(2:(n-1)) = A\cb;u0 = u1;endu = u1;format short;15.peParabKN 用克拉克-尼科尔森格式解扩散方程的初边值问题function u = peParabKN(c,dt,n,minx,maxx,lbu,rbu,M)format long;h = (maxx-minx)/(n-1);u0(1) = lbu;u0(n) = rbu;for j=2:n-1u0(j) = PrIniU(minx+(j-1)*h);endu1 = u0;for k=1:MA = zeros(n-2,n-2);cb = zeros(n-2,1);cb(1) = -u0(2) -(u0(3)-2*u0(2)+u0(1))*dt*c*lbu/h/h/2 - dt*c*lbu/h/h/2;cb(n-2) = -u0(n-1) -(u0(n)-2*u0(n-1)+u0(n-2))*dt*c*lbu/h/h/2 - dt*c*rbu/h/h/2;for i=2:n-3cb(i) = -u0(i+1) -(u0(i+2)-2*u0(i+1)+u0(i))*dt*c*lbu/h/h/2;endA(1,1) = -dt*c/h/h -1;A(1,2) = dt*c/h/h/2 ;for i=2:n-3A(i,i-1) = dt*c/h/h/2 ;A(i,i) = - dt*c/h/h -1 ;A(i,i+1) = dt*c/h/h/2 ;endA(n-2,n-2) = -dt*c/h/h -1;A(n-2,n-3) = dt*c/h/h/2;u1(2:(n-1)) = A\cb;u0 = u1;endu = u1;format short;16.peParabWegImp 用加权隐式格式解扩散方程的初边值问题function u = peParabWegImp(c,sita,dt,n,minx,maxx,lbu,rbu,M)format long;h = (maxx-minx)/(n-1);u0(1) = lbu;u0(n) = rbu;for j=2:n-1u0(j) = PrIniU(minx+(j-1)*h);endu1 = u0;for k=1:MA = zeros(n-2,n-2);cb = zeros(n-2,1);cb(1) = -u0(2) -(1 - sita)*(u0(3)-2*u0(2)+u0(1))*dt*c*lbu/h/h/2 ...- sita*dt*c*lbu/h/h;cb(n-2) = -u0(n-1) -(1 - sita)*(u0(n)-2*u0(n-1)+u0(n-2))*dt*c*lbu/h/h/2 ...- sita*dt*c*rbu/h/h;for i=2:n-3cb(i) = -u0(i+1) -(1 - sita)*(u0(i+2)-2*u0(i+1)+u0(i))*dt*c*lbu/h/h;endA(1,1) = -2*sita*dt*c/h/h -1;A(1,2) = sita*dt*c/h/h ;for i=2:n-3A(i,i-1) = sita*dt*c/h/h ;A(i,i) = - 2*sita*dt*c/h/h -1 ;A(i,i+1) = sita*dt*c/h/h ;endA(n-2,n-2) = - 2*sita*dt*c/h/h -1;A(n-2,n-3) = sita*dt*c/h/h;u1(2:(n-1)) = A\cb;u0 = u1;endu = u1;format short;17.peDKExp 用指数型格式解对流扩散方程的初值问题function u = peDKExp(a,b,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);for j=1:(n+2*M)u0(j) = DKIniU(minx+(j-M-1)*h);endu1 = u0;coff = (exp(a*h/2/b)+exp(-a*h/2/b))/(exp(a*h/2/b)-exp(-a*h/2/b));coff = dt*coff*a*h/2;for k=1:Mfor i=k+1:n+2*M-ku1(i) = coff*(u0(i+1)-2*u0(i)+u0(i-1))+a*dt*(u0(i+1)-u0(i-1))/h/2+u0(i);endu0 = u1;endu = u1((M+1):(M+n));format short;18.peDKSam 用萨马尔斯基格式解对流扩散方程的初值问题function u = peDKSam(a,b,dt,n,minx,maxx,M)format long;h = (maxx-minx)/(n-1);for j=1:(n+2*M)u0(j) = DKIniU(minx+(j-M-1)*h);endu1 = u0;coff = dt*b/(1+a*h/b/2);for k=1:Mfor i=k+1:n+2*M-ku1(i) = coff*(u0(i+1)-2*u0(i)+u0(i-1))+a*dt*(u0(i)-u0(i-1))/h+u0(i);endu0 = u1;endu = u1((M+1):(M+n));format short;。
第二十章 偏微分方程的数值解
第二十章 偏微分方程的数值解自然科学与工程技术中种种运动发展过程与平衡现象各自遵守一定的规律。
这些规律的定量表述一般地呈现为关于含有未知函数及其导数的方程。
我们将只含有未知多元函数及其偏导数的方程,称之为偏微分方程。
方程中出现的未知函数偏导数的最高阶数称为偏微分方程的阶。
如果方程中对于未知函数和它的所有偏导数都是线性的,这样的方程称为线性偏微分方程,否则称它为非线性偏微分方程。
初始条件和边界条件称为定解条件,未附加定解条件的偏微分方程称为泛定方程。
对于一个具体的问题,定解条件与泛定方程总是同时提出。
定解条件与泛定方程作为一个整体,称为定解问题。
§1 偏微分方程的定解问题各种物理性质的定常(即不随时间变化)过程,都可用椭圆型方程来描述。
其最典型、最简单的形式是泊松(Poisson)方程),(2222y x f y ux u u =∂∂+∂∂=∆ (1) 特别地,当0),(≡y x f 时,即为拉普拉斯(Laplace)方程,又称为调和方程02222=∂∂+∂∂=∆yux u u (2)带有稳定热源或内部无热源的稳定温度场的温度分布,不可压缩流体的稳定无旋流动及静电场的电势等均满足这类方程。
Poisson 方程的第一边值问题为⎪⎩⎪⎨⎧Ω∂=Γ=Ω∈=∂∂+∂∂Γ∈),(|),(),(),(),(2222y x y x u y x y x f yux u y x ϕ (3)其中Ω为以Γ为边界的有界区域,Γ为分段光滑曲线,ΓΩ 称为定解区域,),(),,(y x y x f ϕ分别为ΓΩ,上的已知连续函数。
第二类和第三类边界条件可统一表示成),(),(y x u n u y x ϕα=⎪⎭⎫⎝⎛+∂∂Γ∈ (4) 其中n 为边界Γ的外法线方向。
当0=α时为第二类边界条件,0≠α时为第三类边界条件。
在研究热传导过程,气体扩散现象及电磁场的传播等随时间变化的非定常物理问题时,常常会遇到抛物型方程。
偏微分方程的几种数值解法及其应用
1 常微分方程及其数值解法1.1 常微分方程概述在数学上,物质的运动和变化规律是通过函数关系来表示的,在一些复杂的现象中,我们要求的未知量就变成了满足特定条件的一个或一些未知函数。
有的时候,我们需要利用导数或者微分的关系,即这些未知函数的导数与自变量满足某种关系,这种方程我们称之为微分方程。
未知函数是一元函数的微分方程称之为常微分方程,未知函数是多元函数的微分方程我们称之为偏微分方程,我们这里只考虑常微分方程。
常微分方程的解,就是找出一个代入方程使之成为恒等式的函数。
若微分方程的解中含有任意常数的个数与方程阶数相同,且任意常数之间不能合并,则称此解为该方程的通解。
当通解中的各任意常数都取特定值时所得到的解,称为方程的特解。
在实际问题中,这些函数往往还需要满足一些特定条件,这称之为定解条件。
但在实际问题中,很多常微分方程的解析表达式过于复杂,甚至得不到通解的解析表达式。
而且,常微分方程的特解是否存在,存在几个特解,这涉及到微分方程解的存在性和唯一性定理。
因此,在实际应用中,我们通常利用数值的方法来求得方程的数值解,在误差允许的范围内,我们用数值解来替代解析解。
所以,研究常微分的数值解法是很有必要的。
2.2 常微分方程的数值解法常微分方程的数值解法是有常微分方程的定解条件提出的,首先我们考虑如下一阶常微分方程的初值问题。
()()00(,)dx t f x t dtx t x⎧=⎪⎨⎪=⎩(2.1) 2.2.1 欧拉法欧拉法(又称差分法)是常微分方程初值问题数值解法中最简单最古老的方法,它的基本思路是将(2.1)式中导数项用差分来逼近,从而将一个微分方程转化为一个代数方程,以便迭代求解。
根据用于逼近的差分方式来分,可以分为向前差分、向后差分、中心差分。
()()()()()()()()()111112l l l l l l l l l dx t x t x t dt tdx t x t x t dt tdx t x t x t dt t++++--=∆-=∆-=∆ (2.2) 上式中,分别为向前差分法、向后差分法、中心差分法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二十章 偏微分方程的数值解自然科学与工程技术中种种运动发展过程与平衡现象各自遵守一定的规律。
这些规律的定量表述一般地呈现为关于含有未知函数及其导数的方程。
我们将只含有未知多元函数及其偏导数的方程,称之为偏微分方程。
方程中出现的未知函数偏导数的最高阶数称为偏微分方程的阶。
如果方程中对于未知函数和它的所有偏导数都是线性的,这样的方程称为线性偏微分方程,否则称它为非线性偏微分方程。
初始条件和边界条件称为定解条件,未附加定解条件的偏微分方程称为泛定方程。
对于一个具体的问题,定解条件与泛定方程总是同时提出。
定解条件与泛定方程作为一个整体,称为定解问题。
§1 偏微分方程的定解问题各种物理性质的定常(即不随时间变化)过程,都可用椭圆型方程来描述。
其最典型、最简单的形式是泊松(Poisson)方程),(2222y x f y ux u u =∂∂+∂∂=∆ (1)特别地,当0),(≡y x f 时,即为拉普拉斯(Laplace)方程,又称为调和方程02222=∂∂+∂∂=∆yux u u (2)带有稳定热源或内部无热源的稳定温度场的温度分布,不可压缩流体的稳定无旋流动及静电场的电势等均满足这类方程。
Poisson 方程的第一边值问题为⎪⎩⎪⎨⎧Ω∂=Γ=Ω∈=∂∂+∂∂Γ∈),(|),(),(),(),(2222y x y x u y x y x f y uxu y x ϕ (3)其中Ω为以Γ为边界的有界区域,Γ为分段光滑曲线,ΓΩ 称为定解区域,),(),,(y x y x f ϕ分别为ΓΩ,上的已知连续函数。
第二类和第三类边界条件可统一表示成),(),(y x u n u y x ϕα=⎪⎭⎫⎝⎛+∂∂Γ∈ (4)其中n 为边界Γ的外法线方向。
当0=α时为第二类边界条件,0≠α时为第三类边界条件。
在研究热传导过程,气体扩散现象及电磁场的传播等随时间变化的非定常物理问题时,常常会遇到抛物型方程。
其最简单的形式为一维热传导方程)0(022>=∂∂-∂∂a xu a t u (5)方程(5)可以有两种不同类型的定解问题:初值问题(也称为Cauchy 问题)⎪⎩⎪⎨⎧+∞<<∞-=+∞<<∞->=∂∂-∂∂x x x u x t x u a t u )()0,(,0022ϕ (6)初边值问题⎪⎪⎪⎩⎪⎪⎪⎨⎧≤≤===<<<<=∂∂-∂∂Tt t g t l u t g t u x x u l x T t x ua t u 0),(),(),(),0()()0,(0,002122ϕ (7) 其中)(),(),(21t g t g x ϕ为已知函数,且满足连接条件)0()(),0()0(21g l g ==ϕϕ问题(7)中的边界条件)(),(),(),0(21t g t l u t g t u ==称为第一类边界条件。
第二类和第三类边界条件为T t t g u t x u T t t g u t x u lx x ≤≤=⎥⎦⎤⎢⎣⎡+∂∂≤≤=⎥⎦⎤⎢⎣⎡-∂∂==0),()(0),()(22101λλ (8)其中0)(,0)(21≥≥t t λλ。
当0)()(21≡=t t λλ时,为第二类边界条件,否则称为第三类边界条件。
双曲型方程的最简单形式为一阶双曲型方程0=∂∂+∂∂xua t u (9) 物理中常见的一维振动与波动问题可用二阶波动方程22222xu a t u ∂∂=∂∂ (10) 描述,它是双曲型方程的典型形式。
方程(10)的初值问题为⎪⎪⎪⎩⎪⎪⎪⎨⎧+∞<<∞-=∂∂+∞<<∞-=+∞<<∞->∂∂=∂∂=x x t u x x x u x t x u a t u t )()()0,(,0022222φϕ (11)边界条件一般也有三类,最简单的初边值问题为⎪⎪⎪⎩⎪⎪⎪⎨⎧≤≤==≤≤=∂∂=<<>∂∂=∂∂=T t t g t l u t g t u l x x t u x x u l x t x u a t u t 0)(),(),(),0(0)(),()0,(0,021022222φϕ 如果偏微分方程定解问题的解存在,唯一且连续依赖于定解数据(即出现在方程和定解条件中的已知函数),则此定解问题是适定的。
可以证明,上面所举各种定解问题都是适定的。
§2 偏微分方程的差分解法差分方法又称为有限差分方法或网格法,是求偏微分方程定解问题的数值解中应用最广泛的方法之一。
它的基本思想是:先对求解区域作网格剖分,将自变量的连续变化区域用有限离散点(网格点)集代替;将问题中出现的连续变量的函数用定义在网格点上离散变量的函数代替;通过用网格点上函数的差商代替导数,将含连续变量的偏微分方程定解问题化成只含有限个未知数的代数方程组(称为差分格式)。
如果差分格式有解,且当网格无限变小时其解收敛于原微分方程定解问题的解,则差分格式的解就作为原问题的近似解(数值解)。
因此,用差分方法求偏微分方程定解问题一般需要解决以下问题:(i )选取网格;(ii )对微分方程及定解条件选择差分近似,列出差分格式; (iii )求解差分格式;(iv )讨论差分格式解对于微分方程解的收敛性及误差估计。
下面我们只对偏微分方程的差分解法作一简要的介绍。
2.1 椭圆型方程第一边值问题的差分解法以Poisson 方程(1)为基本模型讨论第一边值问题的差分方法。
考虑Poisson 方程的第一边值问题(3)⎪⎩⎪⎨⎧Ω∂=Γ=Ω∈=∂∂+∂∂Γ∈),(|),(),(),(),(2222y x y x u y x y x f y uxu y x ϕ取τ,h 分别为x 方向和y 方向的步长,以两族平行线τj y y kh x x j k ====,),2,1,0,( ±±=j k 将定解区域剖分成矩形网格。
节点的全体记为},,,|),{(为整数j i j y kh x y x R j k j k τ===。
定解区域内部的节点称为内点,记内点集Ω R 为τh Ω。
边界Γ与网格线的交点称为边界点,边界点全体记为τh Γ。
与节点),(j k y x 沿x 方向或y 方向只差一个步长的点),(1j k y x ±和),(1±j k y x 称为节点),(j k y x 的相邻节点。
如果一个内点的四个相邻节点均属于ΓΩ ,称为正则内点,正则内点的全体记为)1(Ω,至少有一个相邻节点不属于ΓΩ 的内点称为非正则内点,非正则内点的全体记为)2(Ω。
我们的问题是要求出问题(3)在全体内点上的数值解。
为简便记,记),(),,(),(),,(),(,j k j k j k j k y x f f y x u j k u y x j k ===。
对正则内点)1(),(Ω∈j k ,由二阶中心差商公式)(),1(),(2),1(22),(22h O hj k u j k u j k u x u j k +-+-+=∂∂ )()1,(),(2)1,(22),(22ττO j k u j k u j k u y u j k +-+-+=∂∂Poisson 方程(1)在点),(j k 处可表示为)()1,(),(2)1,(),1(),(2),1(22,22ττ++=-+-++-+-+h O f j k u j k u j k u h j k u j k u j k u j k (12)在式(12)中略去)(22τ+h O ,即得与方程(1)相近似的差分方程j k j k j k j k jk j k j k f u u u h u u u ,21,,1,2,1,,122=+-++--+-+τ (13)式(13)中方程的个数等于正则内点的个数,而未知数j k u ,则除了包含正则内点处解u 的近似值,还包含一些非正则内点处u 的近似值,因而方程个数少于未知数个数。
在非正则内点处Poisson 方程的差分近似不能按式(13)给出,需要利用边界条件得到。
边界条件的处理可以有各种方案,下面介绍较简单的两种。
(i) 直接转移 (ii) 线性插值由式(13)所给出的差分格式称为五点菱形格式,实际计算时经常取τ=h ,此时五点菱形格式可化为j k j k j k j k j k j k f u u u u u h,,1,1,,1,12)4(1=-+++-+-+ (14) 简记为j k j k f u h ,,21=◊ (15) 其中j k j k j k j k jk j k u u u u u u ,1,1,,1,1,4-+++=◊-+-+。
求解差分方程组最常用的方法是同步迭代法,同步迭代法是最简单的迭代方式。
除边界节点外,区域内节点的初始值是任意取定的。
例1 用五点菱形格式求解Laplace 方程第一边值问题⎪⎩⎪⎨⎧Ω∂=Γ++=Ω∈=∂∂+∂∂Γ∈])1lg[(|),(),(022),(2222y x y x u y x y uxu y x其中}1,0|),{(≤≤=Ωy x y x 。
取31==τh 。
当τ=h 时,利用点)1,1(),1,1(),,(+±-±j k j k j k 构造的差分格式j k j k j k j k j k j k f u u u u u h,,1,11,11,11,12)4(21=-+++--+--+++ (16)称为五点矩形格式,简记为 221h ٱj k j k f u ,,= (17) 其中ٱj k j k j k j k j k jk u u u u u u ,1,11,11,11,1,4-+++=--+--+++。
2.2 抛物型方程的差分解法 以一维热传导方程(5))0(022>=∂∂-∂∂a tu a t u为基本模型讨论适用于抛物型方程定解问题的几种差分格式。
首先对xt 平面进行网格剖分。
分别取τ,h 为x 方向与t 方向的步长,用两族平行直线),2,1,0( ±±===k kh x x k ,),2,1,0( ===j j t t j τ,将xt 平面剖分成矩形网格,节点为),2,1,0,,2,1,0)(,( =±±=j k t x j k 。
为简便起见,记),(),(j k y x j k =,),(),(j k y x u j k u =,)(k k x ϕϕ=,)(11j j t g g =,)(22j j t g g =,)(11j j t λλ=,)(22j j t λλ=。
2.2.1 微分方程的差分近似在网格内点),(j k 处,对t u ∂∂分别采用向前、向后及中心差商公式,对22xu∂∂采用二阶中心差商公式,一维热传导方程(5)可分别表示为)(),1(),(2),1(),()1,(22h O hj k u j k u j k u aj k u j k u +=-+-+--+ττ )(),1(),(2),1()1,(),(22h O hj k u j k u j k u a j k u j k u +=-+-+---ττ )(),1(),(2),1(2)1,()1,(22h O hj k u j k u j k u a j k u j k u +=-+-+---+ττ 由此得到一维热传导方程的不同的差分近似 022,1,,1,1,=+----++hu u u a u u j k j k j k jk j k τ(18)022,1,,11,,=+----+-h u u u au u jk j k jk j k j k τ(19)0222,1,,11,1,=+----+-+hu u u au u jk j k jk j k j k τ(20)2.2.2 初、边值条件的处理为用差分方程求解定解问题(6),(7)等,还需对定解条件进行离散化。