MATLAB生物化工计算与模拟
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第2章 线性与非线性方程(组)的应用

2.1 线性方程组

例2-1】求解三元一次方程组:932.png

在命令行窗口输入:

>>A=[2,1,-1;3,2,1;2,-1,2];  
B=[1,8,5]’; x=A\B

按Enter键,得到:

x =  
  0.9231
  1.4615  2.307

也可以是“B=[1;8;5];”。

2.1.1 细胞反应的元素衡算

【例2-2】以葡萄糖为基质进行面包酵母(S.cerevisiae)培养,培养的反应式可用下式表达:C6H12O6+3O2+aNH3bC6H10NO3(面包酵母)+cH2O+dCO2,求计量关系中的系数abcd

据平衡方程式可以得到4个线性方程式:

C: 6=6b+d

H: 12+3a=10b+2c

O: 6+2×3=3b+c+2d

N: a=b

写成矩阵式:Ax=B

即   940.png

当方程组有唯一解时应有x=A−1B

调用线性方程组命令,在命令行窗口输入:

>>A=[0 6 0 1;3 -10 -2 0;0 3 1 2;1 -1 0 0];  
B=[6;-12;6+2*3; 0]; x=A\B

按Enter键,并得到:

x =  
  0.4800
  0.4800
  4.3200  3.1200

则方程联立求解为a=b=0.48, c=4.32, d=3.12。上述反应计量关系式为C6H12O6+3O2+ 0.48NH3→0.48C6H10NO3(面包酵母)+4.32H2O+3.12CO2

2.1.2 细菌共存数的确定

【例2-3】某实验室有3种细菌,这些细菌需要3种食物饲养。每种细菌每天消耗不同食物情况见表2-1。若该实验室每天能提供5500单位的食物Ⅰ、4600单位的食物Ⅱ、6600单位的食物Ⅲ。试确定每天3种细菌共存数量分别为多少?

表2-1 每种细菌每天消耗不同食物情况

设每天3种细菌共存数量分别为x1x2x3。可以得到3个线性方程式:

写成矩阵式:Ax=B

即 994.png1002.png

当方程组有唯一解时应有x=A−1B

调用线性方程组命令,在命令行窗口输入:

>>A=[2 3 4;0 5 3;5 3 3];   
B=[5500;4600;6600]; x=A\B

按Enter键,运行结果:

x =  
  600.0000
  500.0000  700.0000

意味着每天可以饲养600个细菌A、500个细菌B以及700个细菌C。

2.1.3 多级逆流萃取理论级数的确定

多级逆流萃取流程如图2-1所示。原料液F从第n级进入,依次经过各级萃取,成为各级的萃余相,其溶质组成逐级降低;溶剂S从第1级进入系统,依次通过各级与萃余相逆向接触,进行萃取,使得萃取相中的溶质组成逐级提高,最终获得的萃取相溶质组成yn和萃余相溶质组成x1

图2-1 多级逆流萃取流程

【例2-4】以130kg/h的纯乙酸戊酯为溶剂,从280kg/h的发酵液中萃取青霉素。欲通过多级逆流萃取,使原料液中的青霉素由0.030降至0.005(均为质量分数),分配系数K为2.0,试求理论级数。

由题意可知,F=280kg/h,S=130kg/h,xF =0.030kg青霉素/kg发酵液,x1=0.005kg青霉素/kg发酵液,yS=0,K=2.0。

根据图2-1,对各级进行物料衡算:

第1级:1017.png,分配系数K=y/x,即1027.png

i级:1038.png,即1050.png

n级:1058.png,即1066.png

该问题是求解矩阵方程Ax=B。其中:

假设理论级数的初始值为3,进行计算,根据计算的x1值,试着增加或减少理论级数,再进行计算,直至期望值x1的实现。在命令行窗口输入:

>>%3级萃取  
  S=130;K=2;F=280;ys=0;xF=0.03;
  A=[-(S*K+F),F,0;
    S*K, -(S*K+F),F;
    0, S*K, -(S*K+F)];
  B=[-S*ys;0;-F*xF];   x=A\B

按Enter键,运行结果:

x =  
  0.0084
  0.0161  0.0233

可见,理论级数为3时,x1=0.0084(>0.005),没有满足要求。在命令行窗口输入:

>>% 6级逆流萃取  
A=[-(S*K+F),F,0,0,0,0;
 S*K, -(S*K+F),F,0,0,0;
 0, S*K, -(S*K+F),F,0,0;
 0,0, S*K, -(S*K+F),F,0;
 0,0,0, S*K, -(S*K+F),F;
 0,0,0,0, S*K, -(S*K+F)];
B=[-S*ys;0;0;0;0; -F*xF]; x=A\B

按Enter键,运行结果:

x =  
  0.0053
  0.0102
  0.0148
  0.0190
  0.0230   0.0266

可见,理论级数为6时,x1=0.0053(>0.005),仍没有满足要求。

在命令行窗口输入:

>> % 7级逆流萃取  
A=[-(S*K+F),F,0,0,0,0,0;
 S*K,-(S*K+F),F,0,0,0,0;
  0,S*K,-(S*K+F),F,0,0,0;
 0,0,S*K,-(S*K+F),F,0,0;
 0,0,0, S*K, -(S*K+F),F,0;
 0,0,0,0, S*K, -(S*K+F),F;
 0,0,0,0,0, S*K, -(S*K+F)];
B=[-S*ys;0;0;0;0;0; -F*xF]; x=A\B

按Enter键,运行结果:

x =  
  0.0048
  0.0092
  0.0134
  0.0172
  0.0208
  0.0241  0.0271

由此可见,理论级数为7时,x1=0.0048(<0.005),满足要求。