8 R. c5 s# f+ C% Z! Z题意解析: ( W7 v9 y; g, S9 Y" G2 ]8 q( S2 Q# x m1 g [
(a) 因气体 A 与液体 B 不发生反应,故其扩散现象的质量平衡方程如下:& ~" ?, Q0 s) J# q0 A, ?+ s& }
- F9 |, H W. | ; q8 Y" N/ x, l' J5 ^& x. X* z% M5 ^' m: K2 n
(b) 在气体 A 与液体 B 会发生一次反应的情况下,其质量平衡方程需改写为 $ E; b" F+ j M0 H( K 2 u5 W+ X- Q6 W; M6 j1 B( S. w. h, x `6 t. V0 a3 l
4 @) B& M) Q( ~! K$ O- t
而起始及边界条件同上。) M! @2 Z* g5 @+ J% {& x$ z
) v1 o( \& d9 A) v t在获得浓度分布后,即可以 Fick’s law ) W3 C/ K. k0 k; X7 W T) w3 L8 U/ n. v* @ 1 z! y* r4 D8 b& e: U) n, d$ A J2 p0 h! h! c% G
计算流通量。! F+ o: A4 v5 h9 w; A) h- F
( e+ Q6 R' `4 L8 R7 ?
MATLAB 程序设计: 此问题依旧可以利用 pdepe 迅速求解。现就各状况的处理过程简述如下 9 x& D' z& W' g% T7 }: ^2 Z- z- j$ B0 H! u9 M! o! ] 5 ] r$ g. O/ p" b' [" _( m0 ]: F' Q! _7 K+ h1 N
利用以上的处理结果,可编写 MATLAB 参考程序如下: 8 T2 W4 M/ g g/ u" g * s0 \6 z( Z' L* qfunction ex20_3_2 7 \2 w/ R# l* }8 A; [9 s. ]%***************************** , j- |; L2 ~; s, L$ m% 扩散系统之浓度分布) R$ R- I- _ J5 j4 ~, A
%***************************** ]7 [- \0 Y& N" X% N
clear 1 h7 {& i- B3 t0 W$ gclc, G; j% U* b" T
global DAB k CA0 4 V6 ^) b* a* i) c/ K% }%****************************** - ^1 F6 A4 x- T6 }- f4 {% 给定数据0 b2 V. V6 x- |2 V$ n: F" {+ h
%****************************** ' n. H3 N1 V' j! Z( LCA0=0.01; 7 C- s0 ^+ ]8 [2 U5 KL=0.1;; n5 b' ^( r5 ~4 X
DAB=2e-9;, w: m2 ^! o6 _' z
k=2e-7;' N3 E/ ?0 V7 `: Q4 r0 n6 Q+ P1 p
h=10*24*3600; 3 r, P0 O- Z4 V u%*******************************2 A, m; ^& H1 }+ w( K4 S' Q
% 取点 ! Z) t- V& [( q. h% l( R%*******************************+ h) A2 C9 a. L" s% ?
t=linspace(0,h,100); ; l8 o2 e) J% J; i, A9 n: n0 ]z=linspace(0,L,10); 7 L. u1 G5 W8 q& C/ ]%******************************* 4 ^! c H/ L4 c6 A/ u a; z7 G% case (a) 7 {) J% B* h9 n%*******************************5 u: n& X* u# z4 L8 u
m=0; 3 w6 @3 r6 f; R/ n, r; ]% Rsol=pdepe(m,@ex20_3_2pdefuna,@ex20_3_2ic,@ex20_3_2bc,z,t); ! z; x5 u$ T6 ^/ {3 @4 Y) j6 { m) V! OCA=sol(:,:,1);+ O0 \+ }( @" q
for i=1:length(t) 0 I$ z) x: r2 M5 l/ o( I [CA_i,dCAdz_i]=pdeval(m,z,CA(i,,0); ! D1 |6 f9 z' o U Q NAz(i)=-dCAdz_i*DAB; ( B: ?5 e; A/ ~: u! iend8 b# j5 H8 [1 j$ H2 S
figure(1) 1 V( F3 w/ _ q3 {# Z* Wsubplot(211) 2 V" Q5 |6 S, U% T) m& jsurf(z,t/(24*3600),CA) * U5 M0 _, c! C, k) I* G) Ptitle('case (a)') $ L2 ~, J8 I6 I+ ?: [, ~$ B
xlabel('length (m)') # R0 G6 Q: B9 i0 Z, yylabel('time (day)')% l, ?# y: B* @
zlabel('conc. (mol/m^3)') % c8 n1 n N5 z9 D vsubplot(212) $ S: G- e2 m @' aplot(t/(24*3600),NAz'*24*3600)1 t5 X1 c. t t$ h( x2 u, ^
xlabel('time (day)')7 E0 \5 P8 K" o7 k0 H) R% K
ylabel('flux (mol/m^2.day)')( ]" h7 J. q* D$ e& y: W
%************************************ % f; T( e: M; Z# n3 `) p9 ~7 ^% case (b) - n& M' {2 g) n, n! t# F( e. `9 n%************************************* E" D, r* n: G* ~" u7 n% S
m=0;8 Q, }5 Q5 p; S0 Z
sol=pdepe(m,@ex20_3_2pdefunb,@ex20_3_2ic,@ex20_3_2bc,z,t); 8 o/ S; ?7 ?% }% r4 O# @CA=sol(:,:,1); 1 e4 s% x' d0 Q+ ]7 {for i=1:length(t) & }, B' k3 ]/ A! Z9 B+ f1 X2 S7 J [CA_i,dCAdz_i]=pdeval(m,z,CA(i,,0);- k" H$ p5 b3 i, I; g
NAz(i)=-dCAdz_i*DAB;& V5 o" |# S& O+ _" t
end 2 R: m+ }# G( E* P( i%' C( K. D k+ p) u7 G6 ]
figure(2) # v% V6 J& P# X/ Rsubplot(211) ; d5 ?9 R* H! M( ]surf(z,t/(24*3600),CA)5 h) l" u' Z& x* y* H, S8 N
title('case (b)') " g1 a- Z1 d m/ W5 d, h# A2 P8 \xlabel('length (m)') - l; [! l8 _2 y/ Z3 F Bylabel('time (day)') 0 F4 J* }: ?* T1 czlabel('conc. (mol/m^3)'); d# T x1 ]6 K* u# c; @
subplot(212)5 M8 v. O+ b& w& x
plot(t/(24*3600),NAz'*24*3600)5 H4 ^1 v0 N9 `/ U) d: [( i% L' t
xlabel('time (day)')8 l0 u }6 c4 f) T& K3 V) T4 n
ylabel('flux (mol/m^2.day)')' {* r" N" {, x: q
%********************************************) q r% l. K9 [6 a
% PDE 函数! V _( P- n0 w* w" m# l: |: m+ e
%******************************************** 3 E7 l" u- m$ H; K+ ^5 K! O4 A% C# [+ Z% case (a)! K9 A& o+ ^9 h" {
%********************************************/ b3 T7 d0 E. G: E3 t+ |; Y) u& j8 R
function [c,f,s]=ex20_3_2pdefuna(z,t,CA,dCAdz)" i+ ?9 F: k2 i: a& u! _9 _
global DAB k CA0. k- g# o$ q% [& c- J
c=1; % ~. `8 K/ ^) M0 ?: J0 Of=DAB*dCAdz;5 O" y8 ~# [- Q% M" }8 _+ E/ S% S
s=0; 6 ~# T, K+ r+ T, {# ^% j; Q%********************************************* # h/ h( O4 o7 J. ~- M1 ?% case (a) 5 _* v/ D4 k1 @" I$ e; A2 T0 N%********************************************* 2 T9 f8 F4 V0 l y4 cfunction [c,f,s]=ex20_3_2pdefunb(z,t,CA,dCAdz) & ^8 l D3 ` u, Nglobal DAB k CA0 4 R. r) ]2 l! S7 w' e# A# Gc=1; * g6 l+ b1 E8 Q: [1 R) Yf=DAB*dCAdz;! J! O: N9 n! `3 J' e) w* M! u
s=k*CA;$ x7 h Q o. R" B) b& M# I* Z5 |
%********************************************** ! _( p, K) ]+ Z" k E8 m* Y# P0 W% 初始条件函数! e! w4 {2 k! Q R
%**********************************************; n9 K) P% ^- {! w& |
function CA_i=ex20_3_2ic(z)$ I6 `4 Z0 ~# V
CA_i=0; . C! z g- |" |6 y; s%************************************************ " K# R) e+ {6 c
% 边界条件函数 ! ] {* ]$ y: _4 a3 ?+ _%************************************************ ) a" C, b/ x+ f, L! h* R! {function [pl,ql,pr,qr]=ex20_3_2bc(zl,CAl,zr,CAr,t) 0 m: l* S( ?% P' `5 Vglobal DAB k CA0 3 j& b$ Q3 j6 w# J! l$ ^. Fpl=CAl-CA0;1 u% m! r" w9 @4 {0 X" T, F
ql=0;( E: l% t5 J8 G3 q7 X
pr=0;8 ~) @; p/ Q( I; x! t
qr=1/DAB; 5 v- S1 {& T1 I a4 [# H7 B) ^# N! X8 E* h
/ m4 Q# ?- _4 w* n
————————————————" i; d9 i) d; e3 o+ p# S
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 , C+ J4 T8 t1 T* |/ M- F# u原文链接:https://blog.csdn.net/qq_29831163/article/details/89711694 - M$ Z* Y6 n5 C, w/ D' s2 v1 L1 s, X + V, P: Y* u4 W# x6 W9 M5 C. [ 0 p* z" A6 D' e8 a* s