抛物形扩散方程的有限差分法及数值实例
- 格式:doc
- 大小:451.50 KB
- 文档页数:14
二维抛物方程的有限差分法二维抛物方程的有限差分法摘要二维抛物方程是一类有广泛应用的偏微分方程,由于大部分抛物方程都难以求得解析解,故考虑采用数值方法求解。
有限差分法是最简单又极为重要的解微分方程的数值方法。
本文介绍了二维抛物方程的有限差分法。
首先,简单介绍了抛物方程的应用背景,解抛物方程的常见数值方法,有限差分法的产生背景和发展应用。
讨论了抛物方程的有限差分法建立的基础,并介绍了有限差分方法的收敛性和稳定性。
其次,介绍了几种常用的差分格式,有古典显式格式、古典隐式格式、Crank-Nicolson隐式格式、Douglas差分格式、加权六点隐式格式、交替方向隐式格式等,重点介绍了古典显式格式和交替方向隐式格式。
进行了格式的推导,分析了格式的收敛性、稳定性。
并以热传导方程为数值算例,运用差分方法求解。
通过数值算例,得出古典显式格式计算起来较简单,但稳定性条件较苛刻;而交替方向隐式格式无条件稳定。
关键词:二维抛物方程;有限差分法;古典显式格式;交替方向隐式格式FINITE DIFFERENCE METHOD FORTWO-DIMENSIONAL PARABOLICEQUATIONAbstractTwo-dimensional parabolic equation is a widely used class of partial differential equations. Because this kind of equation is so complex, we consider numerical methods instead of obtaining analytical solutions. finite difference method is the most simple and extremely important numerical methods for differential equations. The paper introduces the finite difference method for two-dimensional parabolic equation.Firstly, this paper introduces the background and common numerical methods for Parabolic Equation, Background and development of applications. Discusses the basement for the establishment of the finite difference method for parabolic equation And describes the convergence and stability for finite difference method.Secondly, Introduces some of the more common simple differential format,for example, the classical explicit scheme, the classical implicit scheme, Crank-Nicolson implicit scheme, Douglas difference scheme, weighted six implicit scheme and the alternating direction implicit format. The paper focuses on the classical explicit scheme and the alternating direction implicit format. The paper takes discusses the derivation convergence,and stability of the format . The paper takes And the heat conduction equation for the numerical example, using the differential method to solve. Through numerical examples, the classical explicit scheme is relatively simple for calculation, with more stringent stability conditions; and alternating direction implicit scheme is unconditionally stable.Keywords:Two-dimensional Parabolic Equation; Finite-Difference Method; Eclassical Explicit Scheme; Alternating Direction Implicit Scheme1绪论1.1课题背景抛物方程是一类特殊的偏微分方程,二维抛物方程的一般形式为u Lu t ∂=∂ (1-1)其中1212((,,))((,,))(,,)(,,)(,,)u u u u u u L a x y t a x y t b x y t b x y t C x y t x x y y x y∂∂∂∂∂∂=++++∂∂∂∂∂∂ 120,0,0a a C >>≥。
抛物型对流扩散方程
抛物型对流扩散方程是水力学中一个重要的基本方程,它描述了液体中湍流运
动的数学表达形式。
抛物型对流扩散方程公式可由下式得到:
∂u∂t+u⋅∇u=−g⋅∇h+(∇⋅Δ)u-k∇2η,其中u是几何位移,t是时间,g是重力
加速度,h是重力场,Δ是拉普拉斯算子,k是拉格朗日运动等弦水动力系数,η
是密度。
抛物型对流扩散方程的应用很广泛,它可以用来分析流体的动态特性,并有助
于求解海洋涡场、各种湍流模式、源汇问题等。
举例来说,该方程可用来研究气候变化中河流流动物理过程,也可用来研究表面温带对于对流层等层结构、平流变化等关键过程中的影响。
此外,它还能够提供关于机械装置的流动特性的精确模拟。
抛物型对流扩散方程的求解不是一件容易的事情,它要求求解方法具有较高的
计算效率和求解准确度,尤其是人工网格的定义。
现阶段,多流变技术和网格技术均在快速发展,为使抛物型对流扩散方程能够尽可能反映实际环境中湍流流动特性,给求解方法提供更多可能。
总之,抛物型对流扩散方程是一个非常重要的基础性方程,它可以帮助我们深
入探究水力过程的机制,为水力学的研究和设计提供更为丰富的软件工具,从而满足现代水力学研究题目的需要。
抛物方程的向前向后差分格式例题抛物方程是描述物体受重力影响下的运动的数学模型,它在物理学和工程学中有着广泛的应用。
而求解抛物方程的数值方法中,向前差分和向后差分是最常用的两种格式之一。
向前差分格式是一种一阶时间导数的数值逼近方法,它将时间上的变化分为离散的小步长,并根据当前时刻的值和之前时刻的值来逼近下一个时刻的值。
其数值逼近公式可以表示为:u_i^{n+1} = u_i^n + alpha(u_{i+1}^n - 2u_i^n + u_{i-1}^n)其中,u_i^{n+1}表示网格点(i,n+1)处的解值,u_i^n表示网格点(i,n)处的解值,u_{i+1}^n和u_{i-1}^n分别表示网格点(i+1,n)和(i-1,n)处的解值,alpha是时间步长与空间步长的比值。
向后差分格式则是一种一阶时间导数的数值逼近方法,它与向前差分格式相比,将当前时刻的值和之后时刻的值来逼近下一个时刻的值。
其数值逼近公式可以表示为:u_i^{n+1} = u_i^n + alpha(u_{i+1}^{n+1} - 2u_i^{n+1} +u_{i-1}^{n+1})其中,u_{i+1}^{n+1}和u_{i-1}^{n+1}分别表示网格点(i+1,n+1)和(i-1,n+1)处的未知解值,而u_i^{n+1}表示网格点(i,n+1)处的解值。
为了更好地理解这两种差分格式的应用,下面举一个例题:考虑一个一维热传导问题,其抛物方程可以表示为:frac{partial u}{partial t} = kfrac{partial^2 u}{partialx^2}其中,u是温度分布关于时间和空间的函数,k是热导率。
假设我们要求解在0≤x≤1的区域上的温度分布,且边界条件为u(0,t)=u(1,t)=0。
初始条件为u(x,0)=f(x),其中f(x)是已知的初始温度分布。
我们可以使用向前差分或者向后差分格式来求解该问题。
二维抛物方程的有限差分法二维抛物方程的有限差分法摘要二维抛物方程是一类有广泛应用的偏微分方程,由于大部分抛物方程都难以求得解析解,故考虑采用数值方法求解。
有限差分法是最简单又极为重要的解微分方程的数值方法。
本文介绍了二维抛物方程的有限差分法。
首先,简单介绍了抛物方程的应用背景,解抛物方程的常见数值方法,有限差分法的产生背景和发展应用。
讨论了抛物方程的有限差分法建立的基础,并介绍了有限差分方法的收敛性和稳定性。
其次,介绍了几种常用的差分格式,有古典显式格式、古典隐式格式、Crank-Nicolson隐式格式、Douglas差分格式、加权六点隐式格式、交替方向隐式格式等,重点介绍了古典显式格式和交替方向隐式格式。
进行了格式的推导,分析了格式的收敛性、稳定性。
并以热传导方程为数值算例,运用差分方法求解。
通过数值算例,得出古典显式格式计算起来较简单,但稳定性条件较苛刻;而交替方向隐式格式无条件稳定。
关键词:二维抛物方程;有限差分法;古典显式格式;交替方向隐式格式FINITE DIFFERENCE METHOD FORTWO-DIMENSIONAL PARABOLICEQUATIONAbstractTwo-dimensional parabolic equation is a widely used class of partial differential equations. Because this kind of equation is so complex, we consider numerical methods instead of obtaining analytical solutions. finite difference method is the most simple and extremely important numerical methods for differential equations. The paper introduces the finite difference method fortwo-dimensional parabolic equation.Firstly, this paper introduces the background and common numerical methods for Parabolic Equation, Background and development of applications. Discusses the basement for the establishment of the finite difference method for parabolic equation And describes the convergence and stability for finite difference method.Secondly, Introduces some of the more common simple differential format,for example, the classical explicit scheme, the classical implicit scheme, Crank-Nicolson implicit scheme, Douglas difference scheme, weighted six implicit scheme and the alternating direction implicit format. The paper focuses on the classical explicit scheme and the alternating direction implicit format. The paper takes discusses the derivation convergence,and stability of the format . The paper takes And the heat conduction equation for the numerical example, using the differential method to solve. Through numerical examples, the classical explicit scheme is relatively simple for calculation, with more stringent stability conditions; and alternating direction implicit scheme is unconditionally stable.Keywords:Two-dimensional Parabolic Equation; Finite-Difference Method; Eclassical Explicit Scheme; Alternating Direction Implicit Scheme目录摘要........................................................................................................................... .. (I)Abstract .............................................................................................................. ............................ II 1绪论. (1)1.1课题背景 (1)1.2发展概况 (1)1.2.1抛物型方程的常见数值解法 (1) 1.2.2有限差分方法的发展 (2)1.3差分格式建立的基础 (3)1.3.1区域剖分 (3)1.3.2差商代替微商 (3)1.3.3差商代替微商格式的误差分析 (4) 1.4本文主要研究容 (5)2显式差分格式 (7)2.1常系数热传导方程的古典显式格式 (7) 2.1.1古典显式格式格式的推导 (7)2.1.3古典显式格式的算法步骤 (8)3隐式差分格式 (10)3.1古典隐式格式 (10)3.2 Crank-Nicolson隐式格式 (12)3.3 Douglas差分格式 (13)3.4加权六点隐式格式 (14)3.5交替方向隐式格式 (15)3.5.1 Peaceman-Rachford格式 (15) 3.5.2 Rachford-Mitchell格式 (15)3.5.3 Mitchell-Fairweather格式 (15) 3.5.4交替方向隐式格式的算法步骤 (16) 4实例分析与结果分析 (17)4.1算例 (17)4.1.1已知有精确解的热传导问题 (17) 4.1.2未知精确解的热传导问题 (19)4.2结果分析 (20)5稳定性探究与分析 (21)5.1稳定性问题的提出 (21)5.2 几种分析稳定性的方法 (21)5.3 r变化对稳定性的探究 (23)5.3.1 古典显式格式的稳定性 (23)5.3.2 P-R格式格式的稳定性 (24)结语 (26)参考文献 (27)附录P-R格式的C++实现代码 (28)致谢 (30)1绪论1.1课题背景抛物方程是一类特殊的偏微分方程,二维抛物方程的一般形式为u Lu t=? (1-1) 其中1212((,,))((,,))(,,)(,,)(,,)u u u u u u L a x y t a x y t b x y t b x y t C x y t x x y y x y=++++ 120,0,0a a C >>≥。
抛物型偏微分方程抛物型偏微分方程(Parabolic Partial Differential Equation)是数学分析中重要的一个分支,研究对象主要是关于时间和空间变量的二阶偏微分方程。
在物理、工程和经济等领域中,抛物型偏微分方程有着广泛的应用,比如热传导方程、扩散方程和波动方程等。
1. 定义和形式抛物型偏微分方程是指对于函数 u(x, t) 存在连续二阶偏导数,并满足形式如下的方程:∂u/∂t = a∇²u + bu + f(x, t)其中,a 是常数,∇²u 是 u 关于空间变量 x 的拉普拉斯算子,b 是各项异性系数,f(x, t) 是给定的源项函数。
该方程描述了函数 u 关于时间t 的演化过程,与空间变量 x 的变化有关,反映了物理现象在时间和空间上的动态发展。
2. 物理意义和应用抛物型偏微分方程在物理学领域中有着重要的应用。
其中,热传导方程是抛物型偏微分方程的典型例子,描述了物质内部温度分布随时间变化的规律。
热传导方程在热力学、材料科学和地球物理学等领域中具有广泛的应用,例如预测地球内部热流、分析塑料注塑过程中温度分布等。
此外,扩散方程也是抛物型偏微分方程的重要应用之一。
扩散过程描述了物质在空间中传播的方式,常用于研究化学反应、人口扩散和金融市场中的价格传播等问题。
波动方程则描述了波在空间中传播的规律,例如声波、电磁波和水波等。
3. 解法和数值模拟抛物型偏微分方程的解法可以通过变量分离、变换等方法获得解析解。
然而,在实际问题中,解析解往往难以求得,需要借助数值方法进行近似计算。
常用的数值方法包括有限差分法、有限元法和谱方法等。
有限差分法将方程离散化为差分格式,通过迭代求解差分方程组得到数值解。
有限元法则将求解区域划分为有限单元,通过构建矩阵方程来求解问题的数值解。
此外,谱方法基于傅里叶级数展开,通过选择适当的基函数将方程转化为代数方程组求解。
谱方法在高精度计算和边界层问题的处理上有一定优势。
抛物型偏微分方程有限差分 python在使用有限差分方法求解抛物型偏微分方程之前,我们首先需要对抛物型偏微分方程有一个基本的了解。
抛物型偏微分方程的一般形式可以表示为:∂u/∂t = ∂²u/∂x²其中,u是未知函数,t是时间变量,x是空间变量。
这个方程描述了未知函数u在时间和空间上的变化关系。
我们需要找到u在给定初始条件和边界条件下的解。
有限差分方法的基本思想是将连续的变量离散化为有限个网格点上的变量,并使用差分近似来代替微分运算。
对于抛物型偏微分方程,我们可以将时间和空间分别离散化为有限个时间步长和空间步长。
然后,我们可以使用中心差分近似来代替偏导数的计算。
下面以一个具体的例子来说明有限差分方法在求解抛物型偏微分方程中的应用。
考虑一个简单的热传导问题,即热方程:∂u/∂t = α∂²u/∂x²其中,α是热扩散系数。
我们假设在一根杆上的温度分布随时间的变化。
初始时刻,整根杆的温度分布为一个高斯分布。
我们需要求解杆上各个位置的温度随时间的变化。
我们将时间和空间离散化。
假设时间步长为Δt,空间步长为Δx。
我们将时间离散化为t0, t1, t2, ...,将空间离散化为x0, x1, x2, ...。
然后,我们可以使用中心差分近似来代替偏导数的计算。
对于时间导数,我们可以使用向前差分或向后差分来近似。
假设使用向前差分,我们有:(∂u/∂t)i = (u(i+1) - u(i))/Δt对于空间导数,我们可以使用中心差分来近似。
我们有:(∂²u/∂x²)i = (u(i+1) - 2u(i) + u(i-1))/Δx²将上述近似代入原方程,我们可以得到离散化的差分方程:(u(i+1) - u(i))/Δt = α(u(i+1) - 2u(i) + u(i-1))/Δx²我们可以整理上述方程,得到关于未知函数u的递推关系式:u(i+1) = u(i) + αΔt/Δx²(u(i+1) - 2u(i) + u(i-1))根据上述递推关系式,我们可以通过迭代计算得到u在每个时间步长和空间位置上的数值解。
数学与计算科学学院实验报告实验项目名称抛物型微分方程数值解所属课程名称微分方程数值解实验类型验证性实验日期2015-4-23班级信计12-2班学号201253100212姓名黄全林成绩一、实验概述:【实验目的】掌握抛物型方程的有限差分法,并学会应用有限差分法求解抛物型方程数值解的MATLAB 实现。
本文利用向前差分法求解抛物型方程的数值解。
【实验原理】抛物型方程的先前差分法求解:方程离散:Nn J j t h u u u u u n n j n j n j n jn j ,,1,1,,1,sin 22111⋅⋅⋅=-⋅⋅⋅=++-=--++τ边值条件:0=j ,1001011122sin ,,n n n n n n n n u u u u u t u u h τ+----+=+=,J j =1111122sin ,.n n n n n n n J J J J J n J J u u u u u t u u hτ++-+---+=+=初值条件:().,,1,0,cos 0,J j x x u j j ⋅⋅⋅==π【实验环境】1.硬件环境2.2.软件环境MATLAB7.0二、实验内容:【实验过程】(实验步骤)实验任务求解一维抛物方程的初边值问题:()()()()()222sin ,01,t 0,0,t 1,0,t 0,x,0cos ,0 1.cos 1cos .x x t u u t x x xu u t u x x u e x t πππ-∂∂=+<<>∂∂==>=<<=+-精确解:利用向前差分法求解利用MATLAB 进行求解,编辑函数文件hql_xiangqianchafen.m。
源程序见附录。
编辑调用函数hql_xiangqianchafen(h,m,n,kmax,ep )的脚本文件,并作出相应的求解曲面、精确解曲面和误差曲面图形。
hql_paowufangcheng.m 源程序见附录。
偏微分方程数值解 所在学院: 数学与统计学院 课题名称:抛物形扩散方程的有限差分法及数值实例 学生姓名: 向聘
抛物形扩散方程的有限差分法及数值实例 抛物型扩散方程
抛物型偏微分方程是一类重要的偏微分方程。考虑一维热传导方程: 22(),0uuafxtTtx (1.1.1)
其中a是常数,()fx是给定的连续函数。按照初边值条件的不同给法,可将(1.1.1)的定解分为两类: 第一,初值问题(Cauchy 问题):求足够光滑的函数txu,,满足方程(1.1.1)和初始条件: xxu0,, x (1.1.2) 第二,初边值问题(也称混合问题):求足够光滑的函数txu,,满足方程(1.1.1)和初始条件: xxu0,, 0xl (1.1.3) 及边值条件 0,,0tlutu, Tt0 (1.1.4) 假定xf和x在相应的区域光滑,并且于0,0,0,l两点满足相容条件,则上述问题有唯一的充分光滑的解。
抛物线扩散方程的求解 下面考虑如下热传导方程 22()(0.)(,)0(,0)()uuafxtxutuLtuxx
(1.2.1)
其中,0xl,Tt0,a(常数)是扩散系数。 取Nlh为空间步长,MT为时间步长,其中N,M是自然数,用两族平行直线jhxxj, Nj,,1,0和kttk, Mk,,1,0将矩形域GTtlx0;0分割成矩形网格。其中 ,jkxt表示网格节点;hG表示
网格内点(位于开矩形G中的网格节点)的集合;hG表示位于闭矩形G中的网格节点的集合;h表示hG-hG网格边界点的集合。 kju表示定义在网点,jkxt处的待求近似解,Nj0,Mk0。
现在对方程进行差分近似: (一) 向前差分格式
kjkjuu11122(())kkkjjjjjjuuuafffxh (1.2.2)
jjjxu0, ku0=kNu=0 (1.2.3)
计算后得: 111(12)kkkkjjjjjurururuf (1.2.4)
其中,2arh,1,,1,0Nj,1,,1,0Mk。 显然,这是一个四点显示格式,每一层各个节点上的值是通过一个方程组求解到的。方程组如下: 100012101100023212100034323
10001121(12)(12)(12)(12)NNNNNurururufurururufurururufurururuf
(1.2.5)
若记 TkNkkkuuu121,,,u,TNxxx121,,,,TNxfxfxf121,,,f
则显格式(1.2.4)可写成向量形式 10,0,1,,1kkkM
uAuf
u (1.2.6)
其中
rrrrrrrrrr21002100210021
A
而对于向前差分格式,当网比12r时稳定,当12r时不稳定。这就意味着给定空间步长h以后,时间步长必须足够小,才能保证稳定。
抛物型热传导方程数值算例 对于(1.2.1)所描述的扩散方程,取1a已知方程的精确解为2sintuex :
22(,0)sin()(0,)(1,)001,00.5uutxuxxututxt
(1.3.1)
设空间步长1/hM,时间步长为0.5/N,网格比2/rgh。 向前格式: 11122,1,...,1,1,...,kkkkkjjjjjuuuuujMkNh
边值条件: 110010111220,,kkkkkkkuuuuujuuh
, 11111122,,kkkkkkkMMMMMMMuuuuujMuuh
.
初值条件: (,0)sin,0,1,...,jjuxxjM 对时间和空间进行分割,令M=40,N=1600,通过Matlab计算得到该方程的解析解,数值解以及相对误差如下:
图(1)解析解的图像 图(2)数值解的图像
图(3)M=40,N=1000的相对误差的图像 我们取部分精确解和数值解进行比较,结果如表(1) x t
数值解 精确解 相对误差
41.170010
41.658010
41.275210
57.445610
55.375510
41.067410
41.741010
57.589710
51.740710
表(1)数值解与精确解的比较 由表(1)我们可以看出,精确解和数值解的绝对误差在410以内,因此可以得出,在分割M=40,N=1600下,该有限差分方法对方程(1.3.1)是收敛和稳定的。 下面,我们比较在不同的分割下对有限差分算法精度的影响。 在扩散系数1a不变的情况下,讲时间和空间进行更加细密的分割,取50,10000MN,其中,M表示空间上的分割,N表示时间上的分割。观察数值解与精确解在节点,jkxt处的绝对误差值,如下图所示: 图(4)M=50,N=10000的相对误差的图像 由图(3)和图(4),两者在节点处的误差收敛分别是在410和510以内,因此,可以得出的结论是:在收敛范围内,随着时间和空间的分割越细,节点数越多,精确解和解析解之间的绝对误差也越小,有限差分法的算法精度也越高。 最后,我们比较网比1/2r以及1r时扩散方程的收敛情况。 当网比1r时,此时我们取M=10,N=50,这时,方程的数值解与解析解还有相对误差图如下: 图(5)M=10,N=50的解析解的图像
图(6)M=10,N=50的数值解的图像 图(7)M=10,N=50的绝对误差的图像 此时,我们观察绝对误差发现,扩散方程(1.3.1)时不收敛不稳定的。而前面我们已经知道,到网格比为12r时,方程是收敛稳定的。所以,我们可以验证,当网比12r时稳定,当12r时不稳定。 [参考文献] [1]李荣华,刘播.微分方程数值解法[M].北京.高等教育出版社.. [2]王曰朋.偏微分方程数值解[OL]. 未知.偏微分方程的Matlab解法[OL]. 周品,何正风.MATLAB数值分析.[M].北京.机械工业出版社..
附录: L=1; M=40; N=1600; alfa=1; lambda=;%网格比 %**********************************************% h=L/M;%空间步长 x=0:h:L; x=x'; tao=lambda*h^2/alfa;%时间步长 tm=N*tao;%热传导的总时间tm %tm=; t=0:tao:tm; t=t'; %计算初值和边值 U=zeros(M+1,N+1); U(:,1)=sin(pi*x); U(1,:)=0; U(M+1,:)=0; %*************用差分法求出温度U,与杆长L,时间T的关系****************% for k=1:N j=2; while j<=M U(j,k+1)=lambda*U(j+1,k)+(1-2*lambda)*U(j,k)+lambda*U(j-1,k); j=j+1; end end length(U); %***************设置立体网格****************% for i=1:N+1 X(:,i)=x; end
for j=1:M+1 Y(j,:)=t; end mesh(X,Y,U); legend('数值解'); xlabel('X'); ylabel('T'); zlabel('U'); z=zeros(M+1,N+1); for j=1:M+1 for k=1:N+1 z(j,k)=exp(-pi*pi*t(k))*sin(pi*x(j)); end end %mesh(x,t,z') legend('解析解'); xlabel('X'); ylabel('T'); zlabel('Z'); for j=1:M+1 for k=1:N+1