Matlab在求解扩散系统之浓度分布中的应用

合集下载

MATLAB在大气扩散模拟中的应用研究

MATLAB在大气扩散模拟中的应用研究

利用通用数据在各种条件下对大气污染扩散模 式工具箱进行了测试 ,取得了较好的结果 。 ( 1) 模式全面 开发的大气污染扩散函数工具箱 里包括了现今大多的扩散模型 ,这使的该工具箱有很 强的实用性 。 ( 2) 模式新颖 由于这套系统是在 MAT LAB 环境 下开发的 ,充分利用了 MAT LAB 工具的优点 。目前在 国内外还没有相关产品出现 , 模式新颖 , 具有很强的 开发潜力 。 ( 3) 计算速度快 , 精度高 由于 MAT LAB 软件本 身的特点 ,决定了计算过程速度快 ,计算结果精度高 , 使得对于浓度计算能保证在繁琐数据的处理上实现 实时计算 ,不但提高了大气污染环境评价的效率而且 也提高了其精确性 。 ( 4) 污染源确定及计算点位的灵活选择性 , 及大 批量处理数据的功能 ,更适于现场污染源强的计算 。 ( 5) 界面友好 由于是在 MAT LAB 环境下编写程 序 ,因而界面友好 。同时 ,其语言表述形式极其简洁 , 几乎与通常的数学表达形式相同 ,不需要像传统的算 法语言那样进行复杂的编程 。而且 ,MAT LAB 简单的 编程语言又可把它的不同的计算程序连接起来完成 复杂的数值计算过程 ,易学易用 ,方便快捷 。
大气污染扩散函数工具箱里有各种大气扩散模 式的调用函数 ,其中如 sigmay ( 横向扩散参数 ) ,sigmaz
( 垂直 扩 散 参 数 ) , sunhighangle ( 太 阳 高 度 角 函 数 ) , Flinesource ( 有限长线源扩散函数 ) ,Linesource ( 无限长
[1~3 ]
引入大气扩散模拟
之中 ,将常用大气扩散模式编制成大气扩散函数 , 组 成大气扩散专业工具箱 ,及通用条件下的大气扩散模 式 DEMOS 图形 ,以实现大气浓度计算的便捷化 、 通用 化及计算机图形的可视化 。

浓度场数值模拟matlab

浓度场数值模拟matlab

浓度场数值模拟matlab1. 介绍浓度场数值模拟是一种通过数值方法来计算和预测物质浓度分布的技术。

这种模拟方法通常基于流体力学和传质过程的基本方程,通过数值求解这些方程来得到浓度场的分布。

在很多领域中,如环境科学、化学工程、材料科学等,浓度场数值模拟都是一种重要的工具。

在本文中,我们将介绍如何使用MATLAB进行浓度场数值模拟。

我们将首先介绍数值模拟的基本原理和方法,然后详细讨论如何在MATLAB中实现这些方法,并给出一些实际应用的示例。

2. 数值模拟方法数值模拟浓度场的方法有很多种,其中常用的方法包括有限差分法(finite difference method)、有限元法(finite element method)和有限体积法(finite volume method)等。

这些方法都是将浓度场分割成网格,然后通过求解离散化的方程来得到各个网格点上的浓度值。

在MATLAB中,我们可以使用这些方法的内置函数或者自己编写代码来实现浓度场的数值模拟。

下面我们将以有限差分法为例,介绍如何在MATLAB中实现浓度场的数值模拟。

有限差分法是一种将微分方程离散化的方法,它将连续的空间域划分为离散的网格点,并在每个网格点上计算浓度的近似值。

有限差分法的基本思想是使用差分近似来代替微分运算,从而将微分方程转化为代数方程。

在浓度场数值模拟中,有限差分法通常用于求解扩散方程。

3. 在MATLAB中实现数值模拟在MATLAB中,我们可以使用内置函数pdepe来求解偏微分方程。

这个函数可以用于求解一维、二维和三维的偏微分方程,并支持不同的边界条件和初值条件。

下面是一个使用pdepe函数求解一维扩散方程的示例:function [c,f,s] = diffusion_eqn(x,t,u,DuDx)c = 1;f = DuDx;s = 0;function diffusion_simulation()x = linspace(0,1,100);t = linspace(0,1,100);m = 0;sol = pdepe(m,@diffusion_eqn,@diffusion_ic,@diffusion_bc,x,t);u = sol(:,:,1);surf(x,t,u)在这个示例中,我们定义了一个名为diffusion_eqn的函数来描述扩散方程。

Matlab在危险气体扩散模拟分析中的应用

Matlab在危险气体扩散模拟分析中的应用
现计算某点 x = 75m , y = 8. 05 m 处的质量浓度 ,输入各 参数 ,运行程序结果为图 2 。
图 1 气体扩散影响区域划分
一般情况下 ,气体扩散后影响区域可划分为 :致死区域 、 重伤区 、致伤区 、吸入反应区和安全区域 。由于致死区和重 伤区都极易导致人口的伤亡 ,因此在分析中将这 2 个分区统 一合并为致死区[7] 。
[ x ,y ] = meshgrid (50 : d :1000 , - 100 : d :100) ; %设置解的 范围
c = (Q. / 3. 14. / u. / by. / bz) . 3 tempy2. 3 tempz2 ; %计算 浓度
·26 ·
cs = input (’cs = ’) ; %设置等高线浓度值 contour (x ,y ,c ,cs) ; a = contour (x ,y ,c ,cs) ; %作等高线 clabel (a) ; shading interp ; colorbar ; grid ; xlabel (’下风向距离’) ; ylabel (’横风向距离’) ; title (’危险气体扩散浓度分布图’) ; 运行程序 ,得出的结果见图 3 、图 4 。
当 H = 0 时 ,得到地面连续点源扩散模式为 :
c ( x , y , z ,0)
=πuσQσy z exp (
-
y2 2σ2x
)
·exp
(
-
z2 2σ2y
)
(2)
由式 (1) 和式 (2) 可以看出 , 气体扩散浓度和源强 、风速
及 x , y , z 轴上的扩散参数都有着一定关系 。在后文研究中
速 ,可以按照气象部门的统计资料来确定 ,也可以按照实际 如表 1 。

均方位移与扩散系数 matlab

均方位移与扩散系数 matlab

均方位移与扩散系数 matlab
均方位移和扩散系数是在物理学和化学领域中用来描述微粒子在流体中扩散行为的重要参数。

在Matlab中,你可以通过计算微粒子的轨迹来计算均方位移和扩散系数。

首先,我们需要生成微粒子的轨迹数据。

假设我们有微粒子在二维空间中的坐标数据存储在一个矩阵中,可以使用Matlab的随机数生成函数来模拟微粒子的运动轨迹。

然后,我们可以使用这些数据来计算均方位移和扩散系数。

计算均方位移可以通过以下步骤实现:
1. 首先计算微粒子在每个时间步长上的位移向量。

2. 将位移向量的平方求和,并除以微粒子数得到均方位移。

计算扩散系数可以通过以下步骤实现:
1. 根据均方位移和时间计算扩散系数,扩散系数等于均方位移除以时间的两倍。

在Matlab中,你可以使用内置的函数和工具箱来进行这些计算。

例如,可以使用`mean`函数来计算均方位移,使用`polyfit`函数来
拟合位移数据以计算扩散系数。

除了计算,你还可以使用Matlab来可视化微粒子的轨迹数据以
及计算结果。

可以使用`plot`函数来绘制微粒子的轨迹图,使用
`scatter`函数来展示微粒子的分布,以及使用`histogram`函数来
展示微粒子的位移分布情况。

总之,Matlab提供了丰富的函数和工具箱来进行均方位移和扩
散系数的计算和可视化,通过合理的数据处理和分析,可以更好地
理解微粒子在流体中的扩散行为。

希望这些信息能够帮助你更好地
理解和应用均方位移和扩散系数的计算方法。

二维扩散方程的matlab程序

二维扩散方程的matlab程序

二维扩散方程是描述在二维空间中物质或能量传播的数学模型。

在科学和工程领域中,二维扩散方程被广泛应用于描述热传导、物质扩散等现象。

Matlab作为一种强大的科学计算软件,在求解和可视化二维扩散方程方面具有很大的优势。

本文将介绍如何使用Matlab编写二维扩散方程的求解程序,并通过实例演示其应用。

一、二维扩散方程模型二维扩散方程可以用以下偏微分方程表示:∂u/∂t = D(∂^2u/∂x^2 + ∂^2u/∂y^2)其中,u(x, y, t)是描述扩散物质浓度或能量分布的函数,D是扩散系数,x和y分别是空间坐标,t是时间。

上式描述了u随时间和空间坐标的变化规律,求解这个偏微分方程即可得到扩散过程中u的分布情况。

二、二维扩散方程的差分格式为了在计算机上求解二维扩散方程,我们需要将其离散化。

常用的方法是采用有限差分法,即将空间和时间分割成若干个小区间,然后在每个小区间上使用近似的差分格式来表示偏微分方程。

对于二维扩散方程,我们可以使用以下的差分格式:u(i, j, t+Δt) = u(i, j, t) + DΔt/Δx^2 * (u(i+1, j, t) - 2u(i, j, t) + u(i-1, j, t)) + DΔt/Δy^2 * (u(i, j+1, t) - 2u(i, j, t) + u(i, j-1, t))这个差分格式将时间t+Δt的u(i, j)用t时刻的值和邻近点的值表示出来,通过迭代求解,即可得到u随时间和空间的变化。

三、 Matlab程序设计在Matlab中,我们可以很方便地编写二维扩散方程的求解程序。

我们需要定义计算区域的空间网格和时间步长:```matlabLx = 1; 区域长度Ly = 1; 区域宽度Nx = 100; 空间网格数Ny = 100;dx = Lx/Nx; 空间步长dy = Ly/Ny;D = 0.1; 扩散系数dt = 0.01; 时间步长T = 1; 总的模拟时间```接下来,我们初始化u在空间上的分布,并使用差分格式进行迭代计算:```matlabu_init = zeros(Nx, Ny); 初始化uu_init(Nx/2, Ny/2) = 1; 在中心点加入扩散物质u = u_init;for t = 0 : dt : Tu_new = u;for i = 2 : Nx-1for j = 2 : Ny-1u_new(i, j) = u(i, j) + D * dt/dx^2 * (u(i+1, j) - 2*u(i, j) + u(i-1, j)) + D * dt/dy^2 * (u(i, j+1) - 2*u(i, j) + u(i, j-1));endendu = u_new;end```我们可以使用Matlab的绘图功能将扩散物质的分布进行可视化:```matlab[X, Y] = meshgrid(1:Nx, 1:Ny);surf(X, Y, u);xlabel('x');ylabel('y');zlabel('u');```四、实例演示接下来,我们通过一个具体的例子来演示上述程序的应用。

实验4数值微积分应用实训 - 浅谈MATLAB在溶质运移的对流-扩散中的应用

实验4数值微积分应用实训 - 浅谈MATLAB在溶质运移的对流-扩散中的应用

Dd*
ᄊ2C ᄊx2
-
vx
ᄊC ᄊx
=
ᄊC ᄊt
(7)
式(7)左端第一项描述了质量扩散运移,第二项描述了质量的对流运移。也可以对对流-扩
散方程应用无量纲分析,定义无量纲浓度 C + = C Ce ,这里 Ce 为特征浓度,上标“+”表示
无量纲数,因此对流-扩散方程的无量纲形式可写为
�+2C +
-
vL Dd*
-divJ
=
ᄊ(Cn) ᄊt
(1)
对于对流-扩散水流系统,其质量通量可以表示为
Jx
=
-nDd*
ᄊC ᄊx
+ vxCn
Jy
=
-nDd*ᄊC ᄊy+ vyCn式中, viCn -对流项通量。
如果介质为各项同性,则
Jz
=
-nDd*
ᄊC ᄊz
+
vzCn
J = -nDd* gradC + vCn
式中, v -线性地下水流速,其分量分别为 vx 、 vy 、 vz 。
透速度稳定后,在土柱顶部瞬时加入浓度 0.1mol / L 的 NaCl 溶液,记时间为 t = 0 此时
阀门 4 可适当控制供水量,使水位保持稳定同时开始记录传感器上的浓度变化,待进水到
两分钟的时候,再将进水装置中的 NaCl 溶液迅速更换为蒸馏水此时土壤盐分在土柱中的
弥散过程就可以根据对流弥散方程利用 MATLAB 进行编程而解出。
在n+1维空间 u, x1, x2,xn 中是一曲面,称它为方程的积分曲面。
2 齐次线性偏微分方程与非齐次线性偏微分方程
对于未知函数和它的各阶偏导数都是线性的方程称为线性偏微分方程。如

基于MATLAB的放射性气体扩散模拟及应用

基于MATLAB的放射性气体扩散模拟及应用

基于MATLAB的放射性气体扩散模拟及应用摘要:随着核电在世界范围内广泛应用,越来越多的核电站建立起来,但是,运用核能的同时我们也要防范于未然。

因此,模拟核事故放射性气体扩散有着非常重要的意义。

本文运用概率动力学的相关知识,结合高斯扩散模型,建立放射性气体扩散模型,模拟了福岛核电站放射性气体扩散对我国东海岸的影响。

关键词:核事故放射性气体扩散;高斯扩散模型;matlab放射性气体扩散模型1.前言北京时间2011年3月11日,日本福岛县的福岛第一核电站发生了一起重大核事故,大量的放射性污染气体从事故的核电站泄露进入大气,对大气环境产生了非常严重的污染,短时间内事故等级从四级跃升到最高等级——七级核事故,引起了国际社会的广泛关注。

3月15日,专家组分析相关数据得出较低浓度的放射性气体正从核电站向福岛以东地区扩散,并可能在将来几天内到达北美地区,最终到达欧洲地区。

同时事故核电站10km范围内的所有居民被日本政府要求紧急撤离。

核电站周围的各个监测站检测到碘,氩,钚等多种放射性同位素从核电站泄出,23日,在核电站厂区内检测出中子辐射。

随着核电在世界范围内广泛应用,越来越多的核电站建立起来,但是,运用核能的同时我们也要防范于未然。

因此,模拟核事故放射性气体扩散有着非常重要的意义。

本文运用概率动力学的相关知识,结合高斯扩散模型,建立放射性气体扩散模型,模拟了福岛核电站放射性气体扩散对我国东海岸的影响。

首先,我们考虑到风向和风速对放射性气体浓度分布有一定影响,由于当时日本发生了大地震和大海啸,这使得当地的气象环境十分复杂。

本文我们结合高斯烟羽模型,并考虑烟气抬升,地面反射,干湿沉积,放射性气体的衰变等多种因素对模型进行反复修正,得到最终的模型。

之后,对于上风向和下风向L公里处的放射性气体浓度,只需在上述的基础上,令x=L或-L,同时,将风速k用(k+s)和(k-s)来代替,y=0,z=0。

建立完这个基础模型后,我们就可以以此为基础研究在风速一定的情况下,位处上下风L公里处,放射性气体浓度的估计模型,并用matlab软件运行模型,模拟出在下风向时的浓度分布图。

基于MATLAB的煤气泄漏扩散高斯模型影响范围的研究

基于MATLAB的煤气泄漏扩散高斯模型影响范围的研究

最新资料整理推荐工业煤气基于MATLAB仿真的泄漏扩散影响研究摘要:木文的研究目的是研究企业范围空间煤气泄漏的扩散规律和影响范围。

采用mat lab模拟煤气泄漏后CO的浓度分布和扩散距离规律。

通过建立煤气泄漏扩散数学模型,对其影响煤气扩散的主要因素进行了分析、探讨了煤气毒性范围的划分,然后在对煤气泄漏造成的危害和泄漏原因的基础上,运用扩散模型,计算煤气泄露扩散影响范围,然后用MATLAB对此进行模拟,得出不同的距离下煤气的浓度,并对其进行分析。

因为大气稳定度、风速对煤气泄漏扩散的浓度影响起着非常重要的作用。

大气稳定度和风速会显著改变有害气体的扩散状态。

在风速和泄漏增大时,煤气在开放空间扩散距离大,影响范围广,应合理布置煤气监控点,预防煤气中毒。

木文还鉴于煤气泄漏的危害之大,根据CO的特性,对于煤气柜这种重大危险源的管理和控制可以得出一些经验,为采取措施预防其危害提供一定的依据。

关键词:煤气泄漏;MATLAB;数值模拟;扩散一、前言煤气泄漏的研究的背景及意义我国当代工业以煤炭为主要能源的结构特点,决定了我国大多数工业企业的生产性气源以焦炉煤气和高炉煤气等为主,而煤气具有易燃易爆性!易散发性!剧毒性的特点,随着煤气在石油!化工!冶金等行业的广泛应用,也随之增加了煤气在工业场所发生泄漏!扩散并且导致人员中毒!火灾甚至爆炸发生的危险性和可能性〃例如,2002年12月4日,天津西青开发区某厂房发生一起一氧化碳泄漏事故,造成3人中毒死亡;2005年2月22日,湖北大冶市一公司发生煤气中毒事故,当班的4名工人因中毒相继坠入料仓死亡;2005年4月21日,内蒙古自治区乌海市同力冶炼有限责任公司发生高炉煤气泄漏事故,造成2人中毒死亡;2005年n月5日,包头市大安钢铁公司发生煤气泄漏事故,当场造成5人中毒死亡,1人受伤;2005年最新资料整理推荐的10月26日,首钢动力厂发生一起煤气中毒事故,共有9人丧生;而时隔8个月,即2006年6月10日首钢动力厂再次煤气泄漏事故,至少有7人中毒,其中2人经抢救无效死亡〃此类事故举不胜举〃近几年来市场对煤气及其相关产品的需求增大,企业不断扩大生产能力,同时煤气事故的次数也居高不下,鉴于以上事实,我们发现: 工业场所煤气一旦发生事故性泄漏,往往会酿成人员中毒伤亡的严重后果,另外,若遇火源还可能导致火灾或爆炸等事故造成重大损失〃因此,为减少因煤气事故泄漏事故带来的人员及财产损失,对工业场所煤气的泄漏!扩散进行数值模拟分析,加强对其微观规律的研究,为制定相应的煤气中毒预防及事故减灾策略有重要的理论意义〃近年来我国工业煤气事故性泄漏屡有发生,尤其严重的是2005年和2006年首钢动力厂连续两次发生煤气泄漏事故,并造成重大人员伤亡,此事件发人深省〃其重要原因之一就是人们对工业场所煤气泄漏扩散的规律不甚了解,尤其是煤气泄漏扩散后中毒伤害范围的变化,安全警戒撤离距离的确定等信息不能及时获得,从而延误了中毒区域内人员的救援时机,造成重大人员和财产损失"工业场所煤气泄漏扩散是一个综合而又复杂的过程,泄漏物质,泄源高度及而积!泄漏速度!泄漏时间!大气稳定度!地形等参数对扩散都有着重要的影响〃因此,如何对工业场所煤气泄漏扩散的过程进行有效的模拟,以及时!准确!有效地获得各种参数,为煤气泄漏事故的应急救援提供科学依据就显得十分迫切国内外的研究现状〃国外在这方而的研究相对成熟,直到现在该领域的研究还比较活跃〃国外学者提出了不少扩散的计算模型,同时也进行了许多大规模试验〃主要的数值扩散模型有高斯(Gaussianplume/Puffmodel), BM(BritterandMeQuaid)模型Sutton 模型DEM(3 一DFiniteElementModel)等等"高斯模型适用于点源的扩散,早在五六十年代就己经被应用〃它从统计方法入手,考察扩散介质的浓度分布,适用于中等密度气团(非重气)扩散的模拟〃烟羽模型(Plumemode 1)适用于连续源的扩散,烟团模型(Puffmodel)适用于短时间泄漏的扩散(即泄放时间相对于扩散时间比较短的情形,如突发性泄漏等)〃高斯模型具有简单,易于理解,运算量小的特点,且由于提出的时间比较早,实验数据多,因而较为成熟〃高斯(Gauss)模型属于非重气扩散模型,只适用于与空气密度相差不多的气体扩散〃但是,大多数危险性物质一旦泄漏到大气环境中就会由于较重的分子质量(如C12)低温和化学变化(如HF)等原因形成比周围环境气体重的重气云,重气云的扩散机理与非重气云完全不同〃因此,重气云扩散机理的研究是国外众多学者竞相研究的热点课题〃国际上曾多次召开有关重气云扩散研究及其预防控制方而的系列学术会议,促进了重气云扩散的研究〃到目前为止,己提出大约200个重气云扩散模型〃重气云扩散模型可分为经验模型、箱模型、浅层模型以及三维流体力学模等等〃随着计算机的普及和计算能力的不断提高,加上近似计算方法, 例如,有概述限差分法、有限元法、有限体积法等的发展,基于数值计算的计算流体力学(ComputationalFluidDOamics, CFD)方法形成并得到了迅速的发展〃正是England等(1978年)触发了采用CFD方法模拟重气扩散的三维非定常态湍流流动过程〃这种数值方法是通过建立各种条件下的基本守恒方程(包扌舌质量、动量、能量及组分等),结合一些初始和边界条件,加上数值计算理论和方法,从而实现预报真实过程各种场的分布,例如,流场、温度场、浓度场等,以达到对扩散过程的详细描述〃用这种方法就克服了箱及相似模型中辨识和模拟重气的下沉、空气的卷吸、气云的受热等各种物理效应时所遇到的许多问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

读书报告
Matlab在求解扩散系统之浓度分布
中的应用
池雨
一、问题的提出
管中储放静止液体 B ,高度为L=10 ㎝,放置于充满A 气体的环境中。

假设与B 液体接触面之浓度为C A0=0.01mol/m 3,且此浓度不随时间改变而改变,即在操作时间内(h=10天)维持定值。

气体A 在液体B 中之扩散系数为D AB =2×10−9m 2/s 。

试决定A 与B 不发生反应;情况下,气体A 溶于液体B 中之流通量(flux)。

参考如图所示的装置。

二、知识背景
Fick 第一定律:实验表明,在稳态扩散的条件下,单位时间内通过垂直于扩散方向的单位截面面积的扩散物质的通量与浓度梯度成
正比。

数学表达式为: Fick 第二定律:根据质量平衡关系即在微小体积中积存的物质
(留入的物质量)J 1—(留出的物质量)J 2得出 因此Fick 第二定律的数学表达为:
三、问题求解
根据题意不同时间t 和距界面厚度不同处x 的浓度C=f(z,t); 因气体A 与液体 B 不发生反应,故其扩散现象的质量平衡方程根据Fick
dx
dc
D
J -=dx J J dt dc 2
1-=2
2
x
c
D t c ∂∂=∂∂
第二定律。

依题意,其初始及边界条件为: I.C. C A0(Z,0)=0, Z>0 B.C. C A (0,t)=C A0, t ≥0 ;
在获得浓度分布后即可应用Fick 第一定律求得流通量即 四、matlab 程序设计
偏微分方程(Partial Differential Equation ,简称PDE )就是涉及到两个自变量以上的微分方程。

在化学工程领域,为了更好的进行过程设计、优化和控制,经常需要了解化工设备(如反应器)中的温度、浓度和速度在不同空间上的分布以及随时间的动态变化规律,因此涉及到许多偏微分方程的问题。

Matlab 函数pdepe
()可用于求解偏微分方程,模型为:
用以解含上述初始值及边界值条件的偏微分方程MATLAB 命令 pdepe 的用法如下:
若要获得特定位置及时间下的解,可配合以 pdeval 命令。

使用格式如下:
,0≥=∂∂=t t
C L
Z A 0
)(z
=∂∂-=z A AB
t AZ C D N
第一步:Fick 化为标准形式后即
第二步:编写偏微分方程的系数向量函数: function [c,f,s]=ex20_3_2pdefun(z,t,CA,dCAdt) c=1/D AB ; f=dCAdt; s=0;
第三步:编写起始条件:function CA_i=ex20_3_2ic(z) CA_i=0;
第四步:编写边界条件:
function [pl,ql,pr,qr]=ex20_3_2bc(zl,CAl,zr,CAr,t) global DAB k CA0 pl=CAl-CA0; ql=0; pr=0; qr=1/DAB;
第五步:取点。

例如 t=linspace(0,h,100); z=linspace(0,L,10);
第六步 利用 pdepe 求解。

m=0;
sol=pdepe(m,@ex20_3_2pdefuna,@ex20_3_2ic,@ex20_3_2bc,z,t);
),,,(z ),,,(1
),
,,(c ==∂∂∂∂=
∂∂=∂∂m z
c c t z s c z c c t z f D z c c t z A
A A
A A AB
A A
Sol(j,k,i)第一维代表时间t,第二维代表空间位置z,第三维代表解向量u的第i个元素,即ui=sol(:,:,i)
第七步显示结果。

u=sol(:,:,1);
surf(x,t,u)
title('标题')
xlabel('位置')
ylabel(''conc. (mol/m^3)'' )
zlabel('u')
若要获得特定位置及时间下的解,可配合以pdeval 命令。

使用格式如下
本题的程序编写为:
for i=1:length(t)
[CA_i,dCAdz_i]=pdeval(m,z,CA(i,:),0);
NAz(i)=-dCAdz_i*DAB;
End
附录(matlab程序):
function ex20_3_2
% 扩散系统之浓度分布
clear
clc
global DAB k CA0
% 给定数据
a=input('请输入要求通量处厚度a= ')
CA0=0.01;
L=0.1;
DAB=2e-9;
h=10*24*3600;
% 取点
t=linspace(0,h,100);
z=linspace(0,L,10);
m=0;
sol=pdepe(m,@ex20_3_2pdefuna,@ex20_3_2ic,@ex20_3_2bc,z,t); CA=sol(:,:,1);
for i=1:length(t)
[CA_i,dCAdz_i]=pdeval(m,z,CA(i,:),a);
NAz(i)=-dCAdz_i*DAB;
end
subplot(211)
surf(z,t/(24*3600),CA)
title('case (a)')
xlabel('length (m)')
ylabel('time (day)')
zlabel('conc. (mol/m^3)')
subplot(212)
plot(t/(24*3600),NAz'*24*3600)
xlabel('time (day)')
ylabel('flux (mol/m^2.day)')
%************************************************ % PDE 函数
%************************************************ function [c,f,s]=ex20_3_2pdefuna(z,t,CA,dCAdz)
global DAB k CA0
c=1/DAB;
f=dCAdz;
s=0;
%************************************************ % 初始条件函数
%************************************************ function CA_i=ex20_3_2ic(z)
CA_i=0;
%************************************************ % 边界条件函数
%************************************************ function [pl,ql,pr,qr]=ex20_3_2bc(zl,CAl,zr,CAr,t)
global DAB k CA0
pl=CAl-CA0;
ql=0;
pr=0;
qr=1/DAB;。

相关文档
最新文档