数学建模社区-数学中国

标题: 偏微分方程的数值解(四): 化工应用————扩散系统之浓度分布 [打印本页]

作者: 浅夏110    时间: 2020-6-10 10:29
标题: 偏微分方程的数值解(四): 化工应用————扩散系统之浓度分布

# Q* n( v; Q. R6 e1 N* p  J题意解析:
" t: b$ q( D+ \! Y# p. X& ?! \2 p4 O7 T! t7 Y
(a) 因气体 A 与液体 B 不发生反应,故其扩散现象的质量平衡方程如下:
8 |3 P! o, @" W: _5 O
! h( G6 C$ ?: v( A) t& b  A9 g% c- w9 s2 i1 I4 ]6 Z
6 A7 k. S5 G: E8 G8 U/ p
(b) 在气体 A 与液体 B 会发生一次反应的情况下,其质量平衡方程需改写为2 H8 _) Q1 {% Y. h2 O- h# A

$ d. P% O9 O- A2 t- d+ j  |, v
& F1 ^, J0 T7 Y3 Z4 X; w  J6 ?7 K' m2 B
而起始及边界条件同上。
) c: X" T  e6 y% r- X- H! V
$ r) V' O' t8 Q" g8 X6 T& A在获得浓度分布后,即可以 Fick’s law" W. u1 a4 ]) D! x
% Y0 o' p6 i1 Y( z+ S( P5 ?% m8 D
( l3 S' B* b  Q# {# R6 I' A$ V/ G0 D
9 d9 H* f: G  _$ C* P4 Y8 t6 @
计算流通量。
6 b2 A' ?) X! {% D1 N  M+ G' t, @) K; j8 G
MATLAB 程序设计: 此问题依旧可以利用 pdepe 迅速求解。现就各状况的处理过程简述如下$ u) f5 e5 N/ q2 D% p" R" k

9 Q  t% K  d1 \7 R( B# u9 A! O( t  N, b1 I
: \9 r# G8 h: i5 G' A' F5 C" C
利用以上的处理结果,可编写 MATLAB 参考程序如下:
( A' n. O: I. j7 y
7 K% }5 V! _* y. Afunction ex20_3_2) [4 R3 w% X" L  Y, n& ?3 u
%*****************************. b' a* g" t0 ^6 F* e; k
% 扩散系统之浓度分布0 _- _9 J. G, \, x
%*****************************
' B$ B5 ]% G8 V! v. r0 _clear
4 J4 {9 C( a; q% K  Nclc, Y. `: R* V" [  n1 }2 w. g2 A
global DAB k CA0% f  c. a' ?) c" U! w4 d
%******************************
: s7 d, X% Y& Y3 _4 h1 I& Z% 给定数据
/ s, A" {" W2 n, [%******************************) l, I! u5 y! w
CA0=0.01;% o% P  q( w# K9 L; b
L=0.1;
- V1 Q2 u" J7 t. XDAB=2e-9;* ~" `: T- [8 A) P# l" y! X
k=2e-7;) |% I( D5 ~3 j0 f: ^6 h
h=10*24*3600;
# M; ~2 x  d& j3 E) m%*******************************
5 g/ ^/ i2 k$ v8 G, I1 T3 J, C- R% 取点
1 A+ [& p! J6 z) \& h%*******************************" M- @, z% S. m2 U+ K! s7 `
t=linspace(0,h,100);5 e  I" q. Q$ Z3 a7 I
z=linspace(0,L,10);5 `2 G* [! q  }( }  N- ~
%*******************************
; D) B/ o# W/ `4 t% case (a)
1 ~% ?) g: f0 I$ C( g%*******************************3 a: h- O: i1 F
m=0;* P3 O$ ^; U6 E) N! J, z  Q2 C
sol=pdepe(m,@ex20_3_2pdefuna,@ex20_3_2ic,@ex20_3_2bc,z,t);
  `2 e, R. ~/ a" K0 ]5 n5 ^CA=sol(:,:,1);; C: L. k; H$ E  I
for i=1:length(t)$ j/ ~+ j" l2 y4 E+ A' @
[CA_i,dCAdz_i]=pdeval(m,z,CA(i,,0);
, u4 a5 j6 y$ T9 W NAz(i)=-dCAdz_i*DAB;) ?  u0 P' {4 m% h7 L( L
end
3 A/ {0 s& U3 Ffigure(1)4 e# h4 x4 Z, ~' I" c
subplot(211)6 a/ ~" B* _$ n0 S7 \
surf(z,t/(24*3600),CA)
' l) V& `) U% ktitle('case (a)')
: d9 t# Z2 X8 ?" B/ \xlabel('length (m)')
0 F) P# I: ]( W1 i- h, Y0 J* T, _ylabel('time (day)'). ^5 m; Z& Y9 [1 G+ ~! ]
zlabel('conc. (mol/m^3)')
" {- f4 s/ N3 g" Esubplot(212)- J9 u$ {7 p# X+ n9 P* U! H" Q
plot(t/(24*3600),NAz'*24*3600)+ M) @4 g5 |, r; h8 O) U  T
xlabel('time (day)')
! I3 z/ s6 @7 A. kylabel('flux (mol/m^2.day)')
3 @6 }4 J' o" N0 v) U: e8 R6 O%************************************
) T+ G6 e  U7 l' j8 m% o: @/ y* V% case (b). W, W% w6 u/ [+ m
%************************************
. [( L# O; C  K( Vm=0;3 W! F" O7 Q+ @% f' m" l9 i
sol=pdepe(m,@ex20_3_2pdefunb,@ex20_3_2ic,@ex20_3_2bc,z,t);  h4 f+ }; ]) ^. g6 q0 D1 \3 e
CA=sol(:,:,1);1 e* @  {3 R% q
for i=1:length(t)) A: X! k# m! y$ U. H* V0 M7 }% L
[CA_i,dCAdz_i]=pdeval(m,z,CA(i,,0);
; R) n+ x( f7 N6 O6 }2 n NAz(i)=-dCAdz_i*DAB;- C. j! E* c" K4 ?& E2 ?% w
end
) n8 X3 \3 {9 ]' @8 C3 n%: b% A4 Y% d! w8 `; |9 A2 k" T
figure(2)3 G' x8 Z$ M4 `! E% y3 }
subplot(211). c/ m" \$ t' e, C, q- |
surf(z,t/(24*3600),CA)' y- X0 @3 m! U. t: v* r
title('case (b)'). [3 ?8 S- @9 F0 o, @' K7 s
xlabel('length (m)')/ B. K  M# h0 W" [  J8 P
ylabel('time (day)')
: j* h1 i" ]4 O8 Hzlabel('conc. (mol/m^3)')5 J( g9 L: d  P+ ]( Y$ q/ C: N8 L
subplot(212)3 k+ O+ A; z) e3 h$ ^! x
plot(t/(24*3600),NAz'*24*3600)
3 Z) P! k, O* K3 h- `xlabel('time (day)')
* N3 S0 n" G% P* e  Bylabel('flux (mol/m^2.day)')
9 B( Z4 k! N7 T# h$ Z) P6 D%********************************************& A* t# w+ b8 @6 c$ k
% PDE 函数5 f) L& d  w( e5 ?
%********************************************
( Q, G! _6 D2 e1 c% case (a)( _7 x$ z# r5 j3 i+ u
%********************************************2 t4 O" V! Q5 P( Q' w  J3 B
function [c,f,s]=ex20_3_2pdefuna(z,t,CA,dCAdz)# x1 L9 A* b: A! B2 z  k5 D
global DAB k CA0
8 j- p3 b' _+ K8 h- X, c6 fc=1;
( [  X# R5 @: L1 @; Df=DAB*dCAdz;% G/ h9 p+ t# A; i2 V
s=0;( `# p/ D2 N$ G5 S1 E) o
%*********************************************- S" x5 g" h6 E  x, t' L
% case (a)
' L% h2 \+ r, j4 P/ b# C1 {+ l%*********************************************8 y4 Y' L9 _) [- g9 E
function [c,f,s]=ex20_3_2pdefunb(z,t,CA,dCAdz)
$ [- P1 M8 a+ U9 J7 ~global DAB k CA01 W- B! f2 W, D9 {
c=1;' s% L1 z% Q% j0 a3 O) \6 u, t
f=DAB*dCAdz;$ N* _8 ~% ~9 R! M6 }$ K
s=k*CA;
& [0 _! g% S& @; Q- [9 Z%**********************************************3 J7 ?8 l  H: Z3 {- f
% 初始条件函数1 B& f( r$ b0 J' I$ _5 T
%**********************************************
, H9 o/ M  I! \0 i) D" U9 ?% Ufunction CA_i=ex20_3_2ic(z)
1 Y! T, M, |+ O. [2 wCA_i=0;8 V4 o  l8 ~; |9 ?* d3 F9 @
%************************************************ ! l7 k- q5 b1 d/ f5 s* Z
% 边界条件函数
; N, ?5 l/ Q" ?. _/ ^  I%************************************************
0 N# x8 o* o  c( _/ k& {# [function [pl,ql,pr,qr]=ex20_3_2bc(zl,CAl,zr,CAr,t)
: Y7 u0 @. D( }5 C4 oglobal DAB k CA0
' _  k8 D7 z  n9 ~! N" [pl=CAl-CA0;$ `4 v% z; F, G, ~
ql=0;1 I5 ?5 G) h" c: P
pr=0;
' S0 d6 S6 y# S  X, g6 Zqr=1/DAB; 3 q% y# V4 S( ?2 ~! \1 b
& H! ^# C; Y2 b' q5 {5 X
————————————————7 I2 u- v; {4 N
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
8 S5 F5 [# ]/ k% q$ W/ R原文链接:https://blog.csdn.net/qq_29831163/article/details/89711694) j. q" }6 u. P3 j
& N  w- ?6 O4 d8 J

6 j* x+ e* y8 b) E3 l




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5