物理分析课程设计---一维扩散方程求解

物理分析课程设计---一维扩散方程求解
物理分析课程设计---一维扩散方程求解

课程设计报告

课程名称:核反应堆物理分析题目:一维扩散方程求解院系:核科学与工程学院班级:

学号:

姓名:

指导教师:

成绩:

教师签名:

日期:2011 年6月日

目录

摘要 (1)

课程设计的目的与要求 (1)

设计正文 (1)

课程设计总结或结论 (3)

参考文献 (4)

摘要和关键词

摘要

这个设计用微分方程的差分数值求解方法,运用MATLAB编程计算出一维扩散方程中子通量密度的离散解。

关键词:一维扩散方程

一.课程设计的目的与要求

学习使用微分方程的数值解法(差分方法)来近似求解一维扩散方程,掌握差分方法的核心思想,熟练使用matlab数据处理,origin绘图软件。通过给定的微分方程及边界条件,计算平板型,圆柱形,球形反应堆中子通量密度分布。

二.设计正文

通过查找有关资料,根据二阶线性微分方程

○1

转换为差分方程的一般公式

其中

○2

h为给定步长,

我们把原方程化简为○3

对比方程○1和○3得出

○4

把○4代入○2

等式右端向量

差分方程其实就是一个线性方程组,此线性方程组的系数矩阵为:

则有

这是一个三对角阵,故可用追赶法解式○3。

下面通过matlab程序来计算变换后的差分方程的解。

所编程序如下:

clear;

N=input('请输入参数:');

alpha=input('请输入alpha值:');

if alpha==0

rmax=input('请输入平板的厚度:');

f0=input('请输入平板中心的中子通量密度:');

elseif alpha==1

rmax=input('请输入堆芯半径:');

f0=input('请输入圆柱中心的中子通量密度:');

elseif alpha==2

rmax=input('请输入堆芯半径:');

f0=input('请输入球形中心的中子通量密度:');

end

h=rmax/N;

D=0.8*10^(-2)

for i=1:1:N-1

a(1,i)=2*D*(i-1/2)^alpha*h^(alpha-1);

c(1,i)=2*D*(i+1/2)^alpha*h^(alpha-1);

b(1,i)=a(1,i)+c(1,i)+2*h*8.5*10^(-28)*(i*h)^2;

g(1,i)=2*i^2*h^3*10^14*cos(pi*i*h/2);

end

newa=a(:,2:N-1);

newc=c(:,1:N-2);

Hb=diag(b);

Hc=diag(newc,1);

Ha=diag(newa,-1);

H=-Ha+Hb-Hc;

G=g;

G(1,1)=g(1,1)+a(1,1)*f0;

p(1,1)=b(1,1);

for k=1:1:N-2

q(1,k)=c(1,k)/p(1,k);

p(1,k+1)=b(1,k+1)-a(1,k+1)*q(1,k);

end

for k=1:1:N-2

y(1,1)=G(1,1)/p(1,1);

y(1,k+1)=(G(1,k+1)-a(1,k+1)*y(1,k))/p(1,k+1);

end

for k=N-2:-1:1

u(1,N)=y(1,N-1);

u(1,k+1)=y(1,k)-q(1,k)*u(1,k+2);

end

u(1,1)=f0;

u(1,N+1)=0;

X=0:h:rmax;

P=polyfit(X,u,5)

U=polyval(P,X);

plot(X,U)

三.课程设计总结或结论

本次课程设计加深了我对中子扩散理论的认识,充分的将理论和实践结合起来。基本了解源迭代,中子通量密度迭代的方法,充分认识到有限差分法在扩散临界计算中的重要性。

四.参考文献

微分方程数值方法(第二版)胡建伟汤怀民编MATLAB程序设计与应用(第二版)刘卫国主编

核反应堆物理分析谢仲生等编

附录(设计流程图、程序、表格、数据等)

真实的离散数据

5次多项式拟合所得图形

微分方程在网点

第三章 一维扩散方程

第三章 一维扩散方程 本章讨论一维扩散方程。首先,从随机过程中的一维扩散方程的讨论可直接得到扩散方程的解。然后对非齐次和各类边值问题相应的扩散方程作了讨论。讨论的方程类型 (1)直线上的齐次和非齐次扩散方程: 2,,0 (,0)() t xx u c u x t u x x ??=-∞<<∞>? =?;(利用随机过程的理论得到结论,再直接验证) (,),,0 (,0)() t xx u ku f x t x t u x x ?-=-∞<<∞>?? =?;(算子方法,与常微分方程类比) (2)半直线上的扩散方程0,0,0(,0)(),(0,)0t xx u ku x t u x x u t ?-=<<∞>?? =??=? ;(其它非齐次边界等) 对扩散方程理论方面的探讨:最大(最小)值原理。由此证明方程解的唯一性和稳定性。 §3.1全直线上的扩散方程 首先讨论随机过程中的扩散过程。设想粒子在一维直线上作连续随机游动(Brown 运动),满足性质:在t ?时间内位移转移概率为均值为0,方差为2 t σ?的正态分布。在时刻t 处于x 的概率密度记为(,)Pr(())u x t dx X t x dx ==。则 2 ()2(,)(,)x y t u x t t u y t dy σ-∞ -?-∞+?=?, 或 2 2 (,)(,)y u x t t u x y t dy ∞ -+?= +? 2222 1 [(,)(,)(,)()]2 y x xx u x t u x t y u x t ty o t dy σ∞ - = ++?+?? 21 (,)(,)()2 xx u x t u x t t o t σ=+?+? 因此, 2 2 t xx u u σ= 。 可见:一维Brown 运动的状态概率密度满足扩散方程。 从随机过程的角度,可直接写出状态概率密度: 22()2(,)(,0)y x t u x t e u y dy σ-∞ - = ?。 所以,有如下定理。 定理 扩散方程2,,0 (,0)() t xx u c u x t u x x ??=-∞<<∞>?=?的解为

扩散方程的差分解法

扩散方程的差分解法 在研究热传导过程、扩散过程、边界层现象时,我们常常遇到抛物型方程,这类方程中最典型、最简单的就是热传导方程。热传导方程中的自变量中包括时间t ,它是描述一种随时间变化的物理过程,即所谓不定常现象。这类问题的基本定解问题应是初值问题,即在初始时刻(t=0)时给定定解条件,求解t>0时的解。 本文主要运用有限差分法对一维扩散方程进行求解,并对差分解的适定性、相容性、收敛性及稳定性进行分析,同时与解析解进行对比。 1.扩散方程 一维扩散方程为: 22u u t x α??=?? (1) 式中,u 为因知量,α为扩散系数,x 为坐标,t 为时间。 其定解条件如下: 初始条件: (,0)() 0x u x f x L =≤≤ (2) 边界条件: 12(0,)() , (,)()u t f t u L t f t == (3) 一般假定函数()f x ,1()f t ,2()f t 满足连接条件,即1(0)(0) f f =,2()(0) f L f =。 2.有限差分法 有限差分法是数值计算解微分方程古老的方法之一,也是系统化地、数值地求解数学物理方法的方程。其控制方程中的导数用离散点上函数值的差商代替。 差分格式可以分为显格式和隐格式。所谓显格式是指在任一结点上因变量在新是时间层上的值可以通过之前的时间层上相邻结点变量的值显式解出来。由于这些层的变量值是已知的,当时间向前推进时,空间点上的新的变量值就只需逐点计算就行了,因此显格式计算起来比较省事。隐格式则是指任一结点上变量在新的时间层的值,不能通过之前的时间层上相邻结点的值显式解出来,它不仅与之前的时间层上的已知值有关,而且也与新时间层的相邻结点的变量值有关。因而一个差分方程常常包括几个相邻结点上的未知数,未知数的个数取决于格式的构成形式。为了解出这些未知数需要联立新的方程,而每引进一个新的方程往往又同时引进了新的未知数。因此,隐格式总是伴随着求解巨大的代数方程组。隐格式的主要缺点是计算工作量大,因而不如显格式计算得快,但这只是就时间步长一样的情况而言的。隐格式的主要优点是时间步长可以比显格式能够采用的最大步长大很多。显格式的时间步长受到稳定性条件的限制,而隐格式则几乎不受限制。 3.方程的离散 3.1 显格式 采用时间前差及第n 时间层的空间中心差,得一维扩散方程的显格式解: 111 2 2()n n n n n j j j j j u u u u u t x α ++---+=?? (4) 即 111(2) n n n n n j j j j j u u r u u u ++-=+-+ (5)

一维扩散方程的差分法matlab

一维扩散方程的差分法 m a t l a b Company number【1089WT-1898YT-1W8CB-9UUT-92108】

一维扩散方程的有限差分法 ——计算物理实验作业七 陈万 题目: 编程求解一维扩散方程的解 取1.0,1.0,1.0,10,0.1,0,1,1,0,1,1max 0222111======-=====τh D t a c b a c b a 。输出t=1,2,...,10时刻的x 和u(x),并与解析解u=exp(x+0.1t)作比较。 主程序: % 一维扩散方程的有限差分法 clear,clc; %定义初始常量 a1 = 1; b1 = 1; c1 = 0; a2 = 1;b2 = -1; c2 = 0; a0 = 1.0; t_max = 10; D = 0.1; h = 0.1; tao = 0.1; %调用扩散方程子函数求解 u = diffuse_equation(a0,t_max,h,tao,D,a1,b1,c1,a2,b2,c2); 子程序1: function output = diffuse_equation(a0,t_max,h,tao,D,a1,b1,c1,a2,b2,c2) % 一维扩散方程的有限差分法,采用隐式六点差分格式(Crank-Nicolson) % a0: x 的最大值 % t:_max: t 的最大值

% h: 空间步长 % tao: 时间步长 % D:扩散系数 % a1,b1,c1是(x=0)边界条件的系数;a2,b2,c2是(x=a0)边界条件的系数 x = 0:h:a0; n = length(x); t = 0:tao:t_max; k = length(t); P = tao * D/h^2; P1 = 1/P + 1; P2 = 1/P - 1; u = zeros(k,n); %初始条件 u(1,:) = exp(x); %求A矩阵的对角元素d d = zeros(1,n); d(1,1) = b1*P1+h*a1; d(2:(n-1),1) = 2*P1; d(n,1) = b2*P1+h*a2; %求A矩阵的对角元素下面一行元素e e = -ones(1,n-1);

基于Peclet数判别法的一维对流扩散方程分类研究

基于Peclet 数判别法的一维对流扩散方程分类研究 摘要:采用Peclet 数的绝对值大小来判别一维对流扩散方程为对流占优型或是扩散占优型方程,运用三种隐式差分格式—中心隐式格式、对流C-N 型格式和扩散C-N 格式,对不同Peclet 数的算例进行离散和求解。然后,将计算区域中所有节点的解析解与数值解表示成矩阵形式,并求解出它们的矩阵2范数之后作比较,两者越接近则代表差分格式精度越高。通过比较得出了当方程Peclet 数的绝对值小于等于0.5时,方程为扩散占优型方程。在离散方法选取方面,针对扩散项的离散可以采用更高精度的差分格式,如扩散C-N 格式;当Peclet 数的绝对值大于等于20时,方程为对流占优型方程。此时,针对对流项可以采用更高精度的差分格式,如对流C-N 格式;当Peclet 数的绝对值介于0.5与20之间时,无法用Peclet 数判断方程类型,不过可以选择折衷的离散格式减小误差,如中心隐式格式。 关键字:一维对流扩散方程 Peclet 数判别法 有限差分方法 数值模拟 MR(2010)主题分类号:39A14;65M06 中图分类号:O242.2 文献标识码: A 1.引言 一维对流扩散方程是描述流体流动和传热问题的一类线性化模型方程。土壤、大气等多孔介质中水、盐分、温度以及污染物质的对流扩散问题都会遇到此类方程。在一维对流扩散方程的求解过程中,反映流体对流和扩散两种物理作用的分别是对流项和扩散项。所以,根据方程中对流项还是扩散项占主导作用,通常可将方程分为对流占优型和扩散占优型两类方程。然而,要想得到精确度较高的数值结果,这两种类型方程的离散方法不能采用相同的离散格式。因此,需要有一种判别方法来判断方程的类型,关于对流占优型和扩散占优型方程的判别方法一直是近年来研究的热点问题。这对研究不同类型的方程使用合适的差分格式进行离散具有实际的意义。由于Peclet 数的绝对值表示了对流作用相对扩散作用的大小,即绝 大,扩散所起的作用就可以忽略。反之,当Peclet 数为零时,方程就为纯扩散方程。本文选用一维定解非稳态对流扩散方程为例,通过考察Peclet 数的绝对值大小来对方程进行分类,方程一般形式如下: 2(,),,0 122(1)(,0)()(,)(),(,)()12(,) u u u a f x t x x x t t x x u x g x u x t t u x t t u u x t υ?φ???? ?? ?? ????+=+≤≤≥???==== 其中a 和υ分别代表对流项系数和扩散项系数。假定求解区间长度为s , Peclet 数的绝对值

一维对流扩散方程的稳定性条件推导

一维稳态对流扩散方程稳定性条件的推导 姓名: 班级:硕5015 学号: 2015/12/15

证明: 一维稳态对流扩散方程: 22u x x φφρ??=Γ?? 采用控制容积积分法,对上图P 控制的容积作积分,取分段线性型线,对均分网格可得下列离散方程: ()()()()()()()()11112222e w e w P E W e w e w w w e e u u u u x x x x φρρφρφρδδδδ??????ΓΓΓΓ+-+=-++????????????????记:()()()()1122e w P e w w e a u u x x ρρδδΓΓ=+-+ ()()12 e E e e a u x ρδΓ=- ()()12w W w w a u x ρδΓ= + 定义通过界面的流量u ρ记为F ,界面上单位面积扩散阻力的倒数x δΓ记为D ,则原式简化为: P P E E W W a a a φφφ=+ 12 E e e a D F =- 12 W w w a D F =+ ()P E W e w a a a F F =++- 令 u x F Pe D ρδ==Γ 则 1111222 E W P Pe Pe φφφ????-++ ? ?????=

当Pe 大于2以后,数值解出现了异常;P φ小于其左右邻点之值,在无源项情 况下是不可能的。因为当2Pe >时系数12 E e e a D F =-小于零,即右边点的通过对流及扩散作用对中间点所产生的影响是负的,这会导致物理上产生不真实的解,所以2u x Pe ρδ=≤Γ 证毕。

一维扩散方程的差分法matlab

一维扩散方程的有限差分法 ——计算物理实验作业七 陈万 题目: 编程求解一维扩散方程的解 取1.0,1.0,1.0,10,0.1,0,1,1,0,1,1max 0222111======-=====τh D t a c b a c b a 。输出t=1,2,...,10时刻的x 和u(x),并与解析解u=exp(x+0.1t)作比较。 主程序: % 一维扩散方程的有限差分法 clear,clc; %定义初始常量 a1 = 1; b1 = 1; c1 = 0; a2 = 1;b2 = -1; c2 = 0; a0 = 1.0; t_max = 10; D = 0.1; h = 0.1; tao = 0.1; %调用扩散方程子函数求解 u = diffuse_equation(a0,t_max,h,tao,D,a1,b1,c1,a2,b2,c2); 子程序1:

function output = diffuse_equation(a0,t_max,h,tao,D,a1,b1,c1,a2,b2,c2) % 一维扩散方程的有限差分法,采用隐式六点差分格式 (Crank-Nicolson) % a0: x的最大值 % t:_max: t的最大值 % h: 空间步长 % tao: 时间步长 % D:扩散系数 % a1,b1,c1是(x=0)边界条件的系数;a2,b2,c2是(x=a0)边界条件的系数 x = 0:h:a0; n = length(x); t = 0:tao:t_max; k = length(t); P = tao * D/h^2; P1 = 1/P + 1; P2 = 1/P - 1;

一维对流扩散方程的数值解法

一维对流扩散方程的数值解法 对流-扩散方程是守恒定律控制方程的一种模型方程,它既是能量方程的表示形式,同时也可以认为是把压力梯度项隐含到了源项中去的动量方程的代表。因此,以对流-扩散方程为例,来研究数值求解偏微分方程的相容性、收敛性和稳定性具有代表性的意义。 1 数学模型 本作业从最简单的模型方程,即一维、稳态、无源项的对流扩散方程出发,方程如下: 22, 02f f f U D x t x x ???+=≤≤??? (1) 初始条件 (),0sin(2)f x t A kx π== (2) 解析解 ()()()224,sin 2Dk t f x t e A k x Ut ππ-=- (3) 式中,1,0.05,0.5,1U D A k ==== 函数(3)描述的是一个衰减波的图像,如图1所示 t=0 t=0.5 t=1 图1 函数()()()224,sin 2Dk t f x t e k x Ut ππ-=- 的图像(U=1,D=0.05,k=1) 2 数值解法 2.1 数值误差分析 在网格点(),i n 上差分方程的数值解n i f 偏离该点上相应的偏微分方程的精确解 (),f i n 的值,称为网格节点上的数值误差。 当取定网格节点数21N =时,观察差分方程的解与微分方程的解在不同时间步长下的趋近程度,其中时间步长分别取值0.05,0.025,0.0125,0.0005t ?=。

(a )21,0.05N t =?= (b )21,0.025N t =?= (c )21,0.0125N t =?= (d )201,0.0005N t =?= 图2 数值误差随步长的变化情况 从图2的(a)~(d)可以定性的看出,数值误差与步长的大小有关。在满足稳定性条件的前提下,数值误差随着时间步长的减小而减小,同时,图(d )表示增大网格的分辨率也有助于减小网格误差。 为了对数值误差有一个定量的认识,接下来取定时间步长为0.0005t ?=,分别算出 11,21,41,61,81,101,121,161N =时,指标E =1所示。 表1 不同网格节点数下指标E 的值

物理分析课程设计---一维扩散方程求解

课程设计报告 课程名称:核反应堆物理分析题目:一维扩散方程求解院系:核科学与工程学院班级: 学号: 姓名: 指导教师: 成绩: 教师签名: 日期:2011 年6月日

目录 摘要 (1) 课程设计的目的与要求 (1) 设计正文 (1) 课程设计总结或结论 (3) 参考文献 (4)

摘要和关键词 摘要 这个设计用微分方程的差分数值求解方法,运用MATLAB编程计算出一维扩散方程中子通量密度的离散解。 关键词:一维扩散方程 一.课程设计的目的与要求 学习使用微分方程的数值解法(差分方法)来近似求解一维扩散方程,掌握差分方法的核心思想,熟练使用matlab数据处理,origin绘图软件。通过给定的微分方程及边界条件,计算平板型,圆柱形,球形反应堆中子通量密度分布。 二.设计正文 通过查找有关资料,根据二阶线性微分方程 ○1 转换为差分方程的一般公式 其中 ○2 h为给定步长, 我们把原方程化简为○3

对比方程○1和○3得出 ○4 把○4代入○2 等式右端向量 差分方程其实就是一个线性方程组,此线性方程组的系数矩阵为: 则有 这是一个三对角阵,故可用追赶法解式○3。 下面通过matlab程序来计算变换后的差分方程的解。 所编程序如下: clear; N=input('请输入参数:'); alpha=input('请输入alpha值:'); if alpha==0 rmax=input('请输入平板的厚度:'); f0=input('请输入平板中心的中子通量密度:'); elseif alpha==1 rmax=input('请输入堆芯半径:'); f0=input('请输入圆柱中心的中子通量密度:'); elseif alpha==2 rmax=input('请输入堆芯半径:'); f0=input('请输入球形中心的中子通量密度:'); end

一维抛物线方程混合边界问题matlab求解(一维扩散方程)

在差分方法中分为前差、后差、中心差以及显式、隐式、中心式。这些概念分别对应着对空间和时间的离散。 针对以上抛物线方程的求解方法,分别采用向前、向后、对称六点和三行式进行计算。 一维抛物线的一般方程为 此题为混合边界问题 1、前差的一般格式为 将τ 成为网比,记做r,则差分格式可以写成 ?2

将上标为k+1的放在一边,k的放在一边,这样就可以写成矩阵形式。 根据已知条件便可以求解。(下面是前差的matlab代码) r=10; x=0:0.1:1; t=0:0.1:1; U=[]; U(:,1)=0; U(:,11)=0; U(1,:)=sin(pi.*x); for i=2:11 %%行 for j=2:10 %% 列 U(i,j)=r*U(i-1,j-1)+(1-2*r)*U(i-1,j)+r*U(i-1,j+1); end end figure; surf(x,t,U); 例题中并没有给出t的具体值,这里取了1,如同正方形laplace方程一样,纯粹为了好求。上面两个for循环代替了矩阵的作用。如果想改成矩阵,很简单,自行解决。

2、后差的一般格式为 这里请注意前差后差的不同点在于右式中上标的变化。 附上matlab代码: h=0.1; k=0.1; N=1/h; M=1/0.1; r=k/h^2; for i=1:N-1 B(i)=sin(i/N*pi); end U(:,1)=B; A=diag(ones(1,N-1)*(1+2*r))-diag(ones(1,N-2)*r,1)-diag(ones(1,N-2)*r, -1); for i=2:M+1 U(:,i)=A\U(:,i-1); end Z=[zeros(11,1),U',zeros(11,1)]; [X,Y]=meshgrid(linspace(1,0,11),linspace(1,0,11)); surf(X,Y,Z);

相关文档
最新文档