预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

用蒙特卡罗方法和区域分解算法求解一类对流扩散方程 刘播刘芳芳刘春光 吉林大学数学研究所,130012,长春 liubom钊lu.edu.en,liufang8265@126.com 摘要对对流扩散方程的求解域作矩形剖分,对时间层分层求解,每 一层用区域分解方法分割成若干个子域,子域内边界点用蒙特卡罗方法求解, 并给出了误差估计.这样每个子域的求解是独立的,可以进行并行计算.对一 维方程做了数值实验. 关键词蒙特卡罗方法区域分解并行计算对流扩散方程 '1弓1言 蒙特卡罗(MonteCarlo)方法,简称:SIC法,又称随机抽样方法,是一 种与一般数值计算方法有着本质区别的计算方法,它利用随机数进行统计试 验,以求得的统计特征值(如均值等)作为待解间题的数值解。 流体力学问题的微分方程,用隐式格式求解是绝对稳定的,但是直接用传 统的方法(如Gauss消去法,超松弛迭代法等)求相应差分方程组的解,运算 量很大,计算时间很长,对于高维情况,问题更显得突出.本文介绍了一种可 以用多处理机对差分方程进行并行计算的方法.先用区域分解算法建立并行 的差分算法,再利用NIC法计算各子域内边界点的函数值,这样各个子域的求 解是独立的,可以并行计算. '2区域分解算法 区域分解算法包括不重叠区域分解法和重叠区域分解法,我们这里采用 不重叠区域分解法.它的基本思想是:将计算区域G分解为若干个子域,G= U7=7=11G=,子域G;的形状尽可能规则.这样,可将原间题的求解转化为在各个 子域上求解.只要知道各子域边界上的函数值,就可用迭代法求解区域内各网 格点函数值.子域边界上的函数值可用mC法求解. 对于一维情形,我们只需用MC法求解p个单点值,就可以将求解区域 分成P十1个子区域,在每个子域上分别用迭代法求解,其差分方程组系数矩 阵的维数不超过NP-t-l,其中N为空间域上的网点数,这样并行度大为提高· 考虑对流扩散方程 了处 .户 .U毛川 .优 . 夕·会+h(x't)dx+"(x,‘,,0<x<‘,0<‘<T, 1t冬0) 二沪(二),(1) t) U几二 、/'l(t),u(l,t)二u2(t) 取空间步长h=IIN,和时间步长二=T/L,其中N,L都是自然数,用两族平 行直线x=x.f二jh(j二0,1.⋯,N)和t二tk=k,r(k=0,1,2,⋯、L)将矩形域 G={0<x<1,0<£<T}分割成矩形网格,网格点分为两类,一类是内部网 格点集,记为Gi,,它的四个相邻网格点均位于区域内部和边界上;另一类是边 界网格点,我们把二=0,二二l上的网格点集记为r大,t=0上的网格点集记为 r;, j+1 图(1) 与方程(1)相应的隐式差分方程组为 “十畏uk十‘+2(uk.7十,一,tliT_1)、十i 一(u.ki++ll-2uhjk}+1+uak+_1l)+b3k9一十马 .l二1.2,二,N一1,k二0.1,⋯。L一1. 心 姑=};(xi), =P1(tk),u矢=P2(tk)- 假设对每一层已求出ni,n2,...,np这P个点的值,即可将求解域分成!xp,XnJ. [Xni,Xni+1I,(y.二1,2,⋯,P一1),[xnp,XNJ这;+1个子域,可在这些子域上求解 阶数小得多的差分方程. 下面我们用蒙特卡罗方法求解(f2)在第k+1层上内边界点。‘处的值. '3蒙特卡罗方法 介十粤_了 ,k+备Cj一丁沪(x,t)一护一 sj=raj一,qj二d(二,t)=—。r a(x,t)·(一‘)一ab(x,,tt)'F(一‘)-a(x,t)‘ 代入上节的差分方程中,有 uki+l一下s)}二(ki+1l十。ki-+1l)十1n..(vjk、(一、)v'j-l、97v'i+l+TF}+2).(3) 上了‘,’J-一孟丫Zaj 该差分方程组的系数矩阵是严格对角占优的,一解 +1,记 令(3)式中讨+(一、)咋,+。哈1+T才 了 了、 .二, !拜‘, 1‘‘. 1、声 f‘名、 gX,夕x二x0, 蔽了一、 、护 ‘、 ‘吞! tPq‘‘ ‘、 户x=XN 则相应的差分方程变为 Ujk+l}1-9}-81.S_)(21ujk++ll十71ujk+-1l)+丁LS'可}1fjk+l 弓 二试xj),(4) 讨 =9(xi,tk),j=0或j=N. 我们逐层来求解这个差分方程组,即求解每一层的时候下一层的值已知.构造 随机游动模型如下(我们用记号P(j,k+1)表示网格点(j,k+1)): 设想有一质点自尸(j,k十1)点出发,以等概率1/2向与P(j,k+1)邻接的 二个节点P(j+1,k+1),P(j一1,k+1)处随机游动一步,然后再按同样的方式 自新的位置向与之邻接的二个节点处随机游动一步,如此继续