抛物型方程隐格式的程序实现
一种大时间步长求解抛物型方程的显—隐式格式的数值试验

一种大时间步长求解抛物型方程的显—隐式格式的数值试验向新华;史汉生
【期刊名称】《教学与研究(南京)》
【年(卷),期】2003(024)001
【摘要】并行计算中,在用显-隐式格式求解抛物型方程时,由于受显式格式的控制,网比比较小,导致时间步长也比较小,不能充分显示出隐式格式的优势,本文提出一种新的算法,并通过数值试验得出了很好的数值结果,从而使时间步长不再受显式的控制,实现了无条件稳定。
【总页数】5页(P80-84)
【作者】向新华;史汉生
【作者单位】解放军理工大学气象学院;解放军理工大学理学院,南京211101【正文语种】中文
【中图分类】O241.82
【相关文献】
1.求解一维抛物型方程的一类半隐格式及组显格式 [J], 姜蕴芝;蔡志权;葛永斌;
2.求解一维抛物型方程的一类半隐格式及组显格式 [J], 姜蕴芝;蔡志权;葛永斌
3.一种时间分数阶扩散方程初边值问题的隐式有限差分格式 [J], 陈春华;卢旋珠
4.求解运动方程的一种不等时间步长的显式数值积分方法 [J], 周正华;王宇欢;刘泉;尹晓涛;杨程
5.一种求解有交界面的椭圆型方程的隐式间断条件差分格式 [J], 徐建军;
因版权原因,仅展示原文概要,查看原文内容请购买。
用向后euler法求三维抛物型方程的adi差分格式

用向后Euler法求解三维抛物型方程的ADI差分格式在数学和科学工程中,三维抛物型方程是一类常见的偏微分方程。
为了求解这种类型的方程,可以使用ADI(Alternating Direction Implicit)差分格式,并结合向后Euler法进行数值计算。
本文将详细介绍如何使用向后Euler法求解三维抛物型方程,并给出相应的ADI差分格式。
1. 三维抛物型方程首先,我们来定义三维抛物型方程。
一个典型的三维抛物型方程可以表示为:∂u/∂t = ∇²u + f(x, y, z, t)其中,u(x, y, z, t)是未知函数,f(x, y, z, t)是已知函数,∇²是拉普拉斯算子。
2. 向后Euler法向后Euler法是一种常用的数值方法,用于求解偏微分方程的时间演化过程。
它基于离散化时间步长,并采用向后差分近似导数。
对于一个一阶时间导数∂u/∂t,向后Euler法将其近似为:(du/dt)_{n+1} ≈ (u_{n+1} - u_n) / Δt其中,u_n和u_{n+1}分别表示时间步n和n+1时刻的解,Δt是时间步长。
3. ADI差分格式ADI(Alternating Direction Implicit)差分格式是一种常用的数值方法,用于求解偏微分方程。
它将空间导数通过交替方向进行离散化,并使用隐式格式来处理。
对于三维抛物型方程,可以使用ADI差分格式来近似求解。
具体步骤如下:•将空间域划分为网格点(x_i, y_j, z_k),其中i = 0, 1, ..., M_x - 1,j = 0, 1, ..., M_y - 1,k = 0, 1, ..., M_z - 1。
•将时间域划分为时间步n和n+1。
•在每个时间步中,按照以下顺序进行计算:–在 x 方向上进行隐式差分:A_x u^{n+1/2}_{i,j,k} = B_x u^n_{i,j,k} + Δt f^{n+1/2}_{i,j,k}–在 y 方向上进行隐式差分:A_y u^{n+1}_{i,j,k} = B_y u^{n+1/2}_{i,j,k} + Δt f^{n+1}_{i,j,k}–在 z 方向上进行隐式差分:A_z u^{n+3/2}_{i,j,k} = B_z u^{n+1}_{i,j,k} + Δt f^{n+3/2}_{i,j,k}•重复以上步骤直到达到所需的时间步数。
抛物型方程的差分方法

抛物型方程的差分方法抛物型方程是描述物理现象中的薄膜振动、热传导、扩散等过程的方程,具有非常重要的应用价值。
差分方法是一种常用的数值计算方法,用于求解微分方程,对于抛物型方程的数值求解也是非常有效的方法之一、本文将介绍抛物型方程的差分方法,并具体讨论用差分方法求解抛物型方程的一些具体问题。
首先,我们来介绍一下抛物型方程的一般形式。
抛物型方程一般可以表示为:∂u/∂t=α(∂^2u/∂x^2+∂^2u/∂y^2)其中,u(x,y,t)是待求函数,t是时间,x和y是空间变量,α是常数。
这个方程描述的是物理过程中的扩散现象,如热传导过程、溶质的扩散过程等。
差分方法的基本思想是将求解区域离散化为一个个网格点,然后在每个网格点处用近似的方式来计算待求函数的值。
差分方法的求解步骤主要包括以下几个方面:1.选择适当的网格和步长。
在求解抛物型方程时,需要确定空间变量x和y所在的网格点以及步长,同时也需要确定时间变量t所在的网格点和步长。
通常,我们会选择均匀网格,步长选择合适的值。
2.建立差分格式。
差分格式是差分方法的核心部分,它包括对方程进行近似处理和离散化。
对于抛物型方程,常用的差分格式有显式差分格式和隐式差分格式等。
其中,显式差分格式的计算速度快,但是有一定的稳定性限制,而隐式差分格式的稳定性较好,但是计算量较大。
因此,在具体问题中需要根据实际情况选择适当的差分格式。
3.编写计算程序。
在建立差分格式后,需要编写计算代码来求解离散方程。
具体编写的过程包括定义初始条件、建立迭代计算过程、以及计算结果的输出等。
4.计算结果的验证与分析。
求解方程后,需要对计算结果进行验证和分析,主要包括对数值解和解析解的比较、对误差的估计和控制等。
在具体求解抛物型方程时,还会遇到一些问题,例如边界条件的处理、稳定性和收敛性的分析等。
下面将对其中一些问题进行详细讨论。
1.边界条件的处理。
边界条件对差分格式的求解结果有着重要的影响,常见的边界条件包括固定端(Dirichlet)边界条件和自由端(Neumann)边界条件等。
二维抛物型方程的交替方向隐格式

二维抛物型方程的交替方向隐格式二维抛物型方程的交替方向隐格式是一种数值解法,用于求解二维抛物型方程的数值解。
这种解法将二维问题分解为两个一维问题,并采用隐式差分方法来求解。
具体来说,二维抛物型方程可以表示为:u_t = a^2 u_{xx} + b^2 u_{yy} + f(x,y,u)其中,u是待求解的函数,t是时间,a和b是两个不同的参数,f是右侧的非线性函数。
为了求解这个问题,我们可以采用交替方向隐式差分方法,将问题分解为两个一维问题:1、在x方向上,从左到右扫描每一行数据,更新每个点的u值。
这个过程可以使用隐式差分方法来实现:u^[i,j]^(n+1) = u^[i,j]^(n) + dt a^2 (u^[i+1,j]^(n) - 2u^[i,j]^(n) + u^[i-1,j]^(n)) / h^2 + dt f^[i,j]^(n) 其中,u^[i,j]^(n)表示第n个时间步中,位置为(x[i],y[j])的点的u值,h是x方向上的步长,dt是时间步长,f^[i,j]^(n)表示第n个时间步中,位置为(x[i],y[j])的点上的非线性函数f的值。
2. 在y方向上,从上到下扫描每一列数据,更新每个点的u值。
这个过程也可以使用隐式差分方法来实现:u^[i,j]^(n+1) = u^[i,j]^(n) + dt b^2 (u^[i,j+1]^(n) - 2u^[i,j]^(n) + u^[i,j-1]^(n)) / h^2 + dt f^[i,j]^(n) 其中,u^[i,j]^(n)表示第n个时间步中,位置为(x[i],y[j])的点的u值,h是y方向上的步长,dt是时间步长,f^[i,j]^(n)表示第n个时间步中,位置为(x[i],y[j])的点上的非线性函数f的值。
通过交替更新每个点的u值,我们可以逐步逼近方程的数值解。
这种解法具有二阶精度和稳定性,可以应用于多种二维抛物型方程的问题。
四阶抛物方程一类新的并行交替分段隐格式

四阶抛物方程一类新的并行交替分段隐格式解决四阶抛物方程的并行交替分段隐格式是一种新的数值方法。
被广泛用于研究计算物理,热力学,传热热流等传热流动的复杂问题,是计算科学研究的必要基础。
一、四阶抛物方程的定义四阶抛物方程是一种特殊的常微分方程,它由具有四个平方型、三次项、二次项和定数项的多项式组成,用解析函数求解,有其特殊的几何意义,是研究抛物线在真实世界中几何变化规律的有力工具。
二、并行交替分段隐格式并行交替分段隐格式是一种并行求解抛物方程的方法,与传统的单池迭代法相比,充分利用了计算机的并行计算能力,从而提高了求解效率。
该算法按数值积分的原理,将抛物方程的空间区域划分成多段,每段隐格式均把抛物方程的复杂性分解,实现了对抛物方程的多段重叠解算。
同时,并行交替分段隐格式还使得数值解算过程更加简易,更加精确有效。
三、新颖性1、并行交替分段隐格式利用了技术上的突破,将一个抛物方程划分多段,通过分解求解,从而提高了求解的速度和准确度;2、并行交替分段隐格式在处理抛物方程的空间和时间变化时具有稳定性、快速性及准确性,是解决复杂问题及计算物理、热力学、传热、热流动等传热流动问题的新方法;3、并行交替分段隐格式将原有的抛物方程分为更多段,计算方向不再受求解衔接点的限制,有效解决了抛物方程在均匀网格下的求解困难;4、并行交替分段隐格式在并行计算中有着独特的吸引力,优化了计算的过程,使求解过程更加快捷高效;5、这一算法有时会被称为“交替循环”,它将包含有多个隐格式段的数值求解过程进行方向和分类的循环,从而大大简化了求解过程,提高了求解效率。
四、应用前景随着计算机技术的不断发展和技术成熟,并行交替分段隐格式在危机场景下应用越来越多。
它不仅可以解决抛物方程,还能高效解决求解多维空间与时间变化物理问题。
这种方法同样也能应用在计算风流场、流体动力学方面,也在气动学、建模领域有着广泛的应用。
未来,并行交替分段隐格式将在多学科领域发挥大的作用,促进各项科学研究,为我们创造更加美好的未来。
求解一维抛物型方程的一类半隐格式及组显格式

求解一维抛物型方程的一类半隐格式及组显格式一维抛物型方程是数学中比较常见的一类方程,用来描述各种函数的性质,形式如下:$$ y=ax^2+bx+c $$半隐格式与组显格式是求解一维抛物型方程的两种经典技术,都能应用于解决一维抛物型方程中实数根的问题。
下面就分别介绍这两种技术:1. 半隐格式:半隐格式也称半陈述格式,是一类快速求解一维抛物型方程根的数值求解方法,可以给出一维抛物型方程的根,不必经过复杂的运算。
把一维抛物型方程$ax^2+bx+c=0$改为如下半隐格式:$$ \frac{x^2+\frac{b}{a}x+\frac{c}{a}=0}{a} $$显然,上式的两个根都是$\frac{-b \pm \sqrt{b^2-4ac}}{2a}$,需要注意的是,对于无解的情况,半隐格式也能给出无解的结果。
2. 组显格式:组显格式也称组文格式,是一类快速求解一维抛物型方程实数根的数值求解方法,可以给出一维抛物型方程根,不必经过复杂的运算。
将一维抛物型方程$ax^2+bx+c=0$改为如下组显格式:$$\left\{\begin{aligned}x^2+\frac{b}{a}x+\frac{c}{a}=0 \\x+\frac{c}{a}=0\end{aligned}\right.$$组显格式的两个根分别是$\frac{-b}{2a}$和$\frac{-c}{a}$。
由组显格式可以发现,由于组显格式具有更加直观的单实根示意,因此可以更加快速精确地获得一维抛物型方程的实数根。
总结来说,半隐格式和组显格式都是求解一维抛物型方程的常用技术,它们具有计算迅速、简单直观等优点,半隐格式能求出所有一维抛物型方程的根,而组显格式能够更迅速精确地求出实数根。
它们也常常被应用于应用于微积分、几何学等图形函数的计算。
ADI(交替方向隐格式)求解二维抛物方程(含matlab程序)

ADI 法求解二维抛物方程学校:中国石油大学(华东) 学院:理学院 姓名:张道德 时间:2013.4.271、ADI 法介绍作为模型,考虑二维热传导方程的边值问题:(3.6.1),0,,0(,,0)(,)(0,,)(,,)(,0,)(,,)0t xx yy u u u x y l t u x y x y u y t u l y t u x t u x l t ϕ=+<<>⎧⎪=⎨⎪====⎩取空间步长1hM,时间步长0,作两族平行于坐标轴的网线:,,,0,1,,,j k x x jh y y kh j k M =====将区域0,x y l ≤≤分割成2M 个小矩形。
第一个ADI 算法(交替方向隐格式)是Peaceman 和Rachford (1955)提出的。
方法:由第n 层到第n+1层计算分为两步:(1) 第一步: 12,12n j k xx yy u +从n->n+,求u 对向后差分,u 向前差分,构造出差分格式为:1(3.6.1)11112222,,1,,1,,1,,1221222,,2-22=21()n n n n n n n n j kj kj kj k j kj k j k j k n n x j k y j k hhhτδδ+++++-+-+-+-+=+uu uuuu u u (+)u u(2) 第二步:12,12n j k xx yy u +从n+->n+1,求u 对向前差分,u 向后差分,构造出差分格式为:2(3.6.1)1111111222,,1,,1,,1,,12212212,,2-22=21()n n n n n n n n j kj kj kj k j kj k j k j k n n x j k y j k hh hτδδ++++++++-+-++-+-+=+uu uuuu u u (+)u u其中1211,1,,1,0,1,2,,()22n j k M n n n τ+=-=+=+上表表示在t=t 取值。
二维抛物型方程的交替方向隐格式

二维抛物型方程的交替方向隐格式在数学领域中,二维抛物型方程是一类重要的偏微分方程,它们在众多实际问题的数学建模中起着关键作用。
对于这类方程,交替方向隐格式是一种常用且有效的数值求解方法。
本文将详细介绍二维抛物型方程及其交替方向隐格式的原理和应用,希望能为读者提供一份生动、全面且有指导意义的参考材料。
首先,我们来了解什么是二维抛物型方程。
通常,二维抛物型方程可以表示为以下形式:∂u/∂t = α(∂²u/∂x² + ∂²u/∂y²) + βu + f(x, y, t)其中,u是未知函数,t是时间变量,x和y是空间变量,α和β是常数,f(x, y, t)是已知函数。
二维抛物型方程广泛应用于物理、工程、生物等领域的问题求解,比如热传导、扩散、扩散反应等。
为了求解这类方程,数学家们开发了各种求解方法,交替方向隐格式是其中一种。
交替方向隐格式是一种时间和空间交替迭代的求解方法,它通过将二维抛物型方程离散化为一组代数方程,然后通过迭代求解这些代数方程得到数值解。
具体来说,交替方向隐格式先将时间方向离散化,将时间变量t划分为一系列离散时间步长。
然后,对于每个时间步长,交替方向隐格式将二维抛物型方程中的时间导数∂u/∂t进行近似。
最常用的近似方法是向后差分格式,即用u(n+1) - u(n)来近似∂u/∂t,其中u(n)表示第n个时间步长的数值解,u(n+1)表示第n+1个时间步长的数值解。
这样,二维抛物型方程可以离散为一组代数方程。
接下来,交替方向隐格式将空间方向离散化,将空间变量x和y划分为一系列离散网格点。
然后,在空间离散化的基础上,通过引入交替方向(例如,先按x方向更新,再按y方向更新,或者反之)和隐格式(例如,使用向后差分格式近似二阶导数项),将二维抛物型方程中的空间导数进行近似。
通过交替迭代求解这组离散代数方程,我们可以得到二维抛物型方程的数值解。
当离散网格点的数量足够多时,数值解将趋近于方程的解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 实验内容:
用 -方法导出的隐式格式求如下初边值问题
u u 0 , 0 x 1, 0 t 1 2 t x u ( x , 0 ) sin x , 0 x 1 , u ( 0 , t ) 0 , u (1 , t ) 0 , 0 t 1 ,
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0001 -0.0053 0.3102
0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0009 -0.0706
U
n j 1
2U
n j 2
U
n j 1
( x)
j
( x j ), U
2
0, U
n J
0
以r 为
t /( x )
表示网比。由于本是实验中
( x ) sin x
, 所以上述差分格式简化
rU U
0 j
n 1 j 1
(1 2 r )U
运行结果如下: cita=0 M=10 J=10 x = 1.0e+010 * Columns 1 through 9 0 0.0099 Column 10 0 -2.4999 3.6685 -3.2575 2.0465 -0.9383 0.3102 -0.0706
u = 1.0e+010 * Columns 1 through 9
5
0.0000 0.0000 0 0.0000 0 0.0000 0 0.0000 0 0.0000 0 0.0000 0 -0.0000 0 0.0000 0 -0.0000 0 -0.0001 0 0.0099
0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0001 -0.0023 0.0754 -2.4999
淮
海
工
学
院
实 验 报 告 书
课程名称: 实验名称: 班 姓 日 级 名: 期:
微分方程数值解法 抛物型方程隐格式的程序实现 信息 101
学号: 地点 成绩:
数学实验室
指导教师:
数 理 科 学 系
1
1. 实验目的:
按照实验内容对 -方法导出的几种隐式差分格式编程实现求出数值解; 估计 数值解的误差界;大致比较几种不同格式的优劣;结合格式的相容性、稳定性和 收敛性条件简单分析计算结果。
间步长为 x 线:
x x
j
1/ J
和时间步长为 t
,其中 J ,M 为正整数,用两族平行直
j x , j 1 , 2 , ..., J
平行于 t 轴作竖直线和 平行于 x 轴作水平线,
t t n n t , n 1 , 2 , ..., M
将矩形区域 G 分割成矩形网格,得网格剖分图。 第二步: 差分法的目的是:求初边值问题(2)的解 u ( x , t ) 在节点 ( x j , t n ) 的近 似值 U
0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0012 -0.0505 2.0465
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0004 0.0200 -0.9383
Columns 10 through 11 0.0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
h = 1.0e+009 * 0.0000 0.0007 -0.7543 1.0667 -0.8874 0.5047 -0.2001 0.0534 -0.0087
0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0001 0.0031 -0.1067 3.6685
0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0001 -0.0024 0.0887 -3.2575
j
( u ) [(
1 2
) tu
xxt
1 8
1 12
( x) u
2
n xxxx
1 2
]
1 2
j
[
1 24
( t ) u ttt
2
( t) u
2
n xxtt
]
j
O (( t )
3
( x) )
4
利用 Fourier 方法判断差分格式的稳定性条件是: 当0
1 2
,当且仅当 r
1 2
(1 2 )
1
时稳定,当
1 2
1 ,对所有的 r
格式
均稳定。 利用最大值原理可以证明差分格式的收敛条件是: r
1 2 (1 )
1
。
第三步: 有限差分方程的解法。根据问题的规模和计算机的容量和速度,选 取适当的解法。这是数值计算的关键一步,有限差分法解方程的主要计算都集中 在这里。 由于本实验问题的有限差分方程为 -方法导出的隐式差分格式,可以用 Thomas 方法求解。对每个时间层 n 1 需要求解的方程为:
n 0
0, U
n J
0
。
第四步: 根据前面的分析,编制程序,上机计算,求出数值解,必要时画出 解的几何图形,分析观察解的性质。 为了方便比较可以用傅立叶级数方法求出定解问题的解析解为:
u ( x, t) e
t
2
sin x
。
另外,上述差分程组为三对角方程组,可用 Thomas 法(追赶法)求解。 若有三对角方程组:
n j
( j 1, 2 , , J 1; n 1, 2 ,..., M ) 。为此,需要构造逼近微分方程定解问
题的差分格式。采用 -方法,构造如下差分格式
U
n 1 j
U
n jt U0 j NhomakorabeaU
n 1 j 1
2U
n 1 j 2
U
n 1 j 1
( x)
n 0
(1 )
6
>>
cita=0.5 M=10 J=10 x= 1.0e-003 * Columns 1 through 9 0 -0.0037 Column 10 0 -0.9215 0.2009 0.2907 0.0655 -0.0568 -0.0596 -0.0252
7
u= Columns 1 through 9 0.3090 0.3090 0 0.1041 0 0.0305 0 0.0063 0 0.0017 0 0.0006 0 -0.0000 0 0.0001 0 -0.0000 0 0.0000 0 -0.0000 0.5878 0.1335 0.0163 0.0139 -0.0029 0.0037 -0.0023 0.0019 -0.0014 0.0011 -0.0009 0.8090 0.2338 0.0425 0.0174 0.0012 0.0017 -0.0002 0.0001 0.0001 -0.0002 0.0002 0.9511 0.2981 0.0664 0.0183 0.0046 0.0005 0.0009 -0.0005 0.0005 -0.0004 0.0003 1.0000 0.3250 0.0813 0.0185 0.0061 0.0004 0.0009 -0.0003 0.0002 -0.0001 0.0001 0.9511 0.3148 0.0846 0.0178 0.0059 0.0008 0.0005 0.0000 0.0000 0.0001 -0.0001 0.8090 0.2704 0.0760 0.0156 0.0049 0.0010 0.0002 0.0002 -0.0001 0.0001 -0.0001 0.5878 0.1975 0.0571 0.0117 0.0034 0.0009 0.0000 0.0002 -0.0001 0.0001 -0.0000
,
3
xn fn x i f i e i x i 1 , i n 1 , n 2 , ,1
其中 x 1 ,
x 2 , ..., x n
为所求三对角方程组的解。
四. 实验数据记录及分析(或程序及运行结果) :
程序如下:
clear cita=input('cita='); M=input('M='); J=input('J='); u=zeros(J+1,M+1); d=zeros(1,J); e=zeros(1,J-1); f=zeros(1,J); x=zeros(1,J); uu=zeros(1,J); for n=1:M u(n,1)=0; u(n,M)=0; end for j=1:J u(1,j)=sin(j*pi/J); end tt=1/M; xx=1/J; r=tt/(xx*xx); for n=1:M for j=2:J-1; d(1,j)=(1-cita)*r*u(n,j+1)+(1-2*(1-cita)*r)*u(n,j)+(1-cita)*r*u(n,j-1) ; a=cita*r; b=1+2*cita*r; c=cita*r; end e(1,2)=c/b; f(1,2)=d(1,2)/b; for i=3:J-2 e(1,i)=c/(b-e(1,i-1)*a); end for i=3:J-1