辽宁工程技术大学上机实验报告具体处理过程和相应实验结果:已知从测量酵母培养物增长的实验收集的数据如表:时刻/h 0 123 4 5 678 9 生物量/g 9.6 18.3 29.0 47.2 71.1 119.1 174.6 257.3 350.7 441.0 时刻/h 10 11 12 13 14 15 161718 生物量/g513.3559.7594.8629.4640.8651.1655.9 659.6661.8实验要求:1、作图分析酵母培养物的增长数据、增长率、与相对增长率.2、建立酵母培养物的增长模型.3、利用线性拟合估计模型参数,并进行模型检验,展示模型拟合与预测效果图.4、利用非线性拟合估计模型参数,并进行模型检验,展示模型拟合与预测效果图.5、请分析两个模型的区别,作出模型的评价. 实验内容:1、作图分析酵母培养物的增长数据、增长率、与相对增长率. (1)增长数据:绘制x 关于k 的散点图:x=[9.6,18.3,29.0,47.2,71.1,119.1,174.6,257.3,350.7,441.0,513.3,559.7,594.8,629.4,640.8,651.1,655.9,659.6,661.8]; k=0:1:18; plot(k,x,'k+')xlabel('时间k (小时)') ylabel('生物量x (克)') title('x 关于k 的散点图')时间k (小时)生物量x (克)x 关于k 的散点图即x 关于k 的散点沿s 型曲线分布,x 随着k 单调增加,x 可能趋于稳定值,极限可能存在。
(2)增长率:绘制x 差值关于k 的散点图以及绘制x 差值关于x 的散点图:xk=[8.7,10.7,18.2,23.9,48,55.5,82.7,93.4,90.3,72.3,46.4,35.1,34.6,11.4,10.3,4.8,3.7,2.2,0]; k=0:1:18; subplot(1,2,1); plot(k,xk,'k+')xlabel('时间k (小时)')ylabel('一阶差分xk (克)') title('xk 关于k 的散点图')xk=[8.7,10.7,18.2,23.9,48,55.5,82.7,93.4,90.3,72.3,46.4,35.1,34.6,11.4,10.3,4.8,3.7,2.2,0];x=[9.6,18.3,29.0,47.2,71.1,119.1,174.6,257.3,350.7,441.0,513.3,559.7,594.8,629.4,640.8,651.1,655.9,659.6,661.8]; subplot(1,2,2); plot(x,xk,'k+')xlabel('生物量xk (克)') ylabel('一阶差分xk (克)') title('xk 关于x 的散点图')时间k (小时)一阶差分x k (克)xk 关于k 的散点图生物量xk (克)一阶差分x k (克)xk 关于x 的散点图观察x 差值关于k 的散点图,难以发现二者的近似而简单的函数关系。
观察x 差值关于x 的散点图,发现二者近似二次函数关系 △ xk=-a1*xk^2+a2*xk;,实质就是离散阻滞增长模型。
(3)相对增长率:绘制rk 差值关于k 的散点图以及绘制rk 关于xk 的散点图:rk=[0.90625,0.5847,0.62759,0.50636,0.67511,0.46599,0.47365,0.363,0.25749,0.16395,0.090395,0.62712,0.058171,0.018112,0.016074,0.0073721,0.0056411,0.0033354,0]; k=0:1:18;subplot(1,2,1); plot(k,rk,'k+')xlabel('时间k (小时)') ylabel('增长率rk (%)') title('rk 关于k 的散点图')rk=[0.90625,0.5847,0.62759,0.50636,0.67511,0.46599,0.47365,0.363,0.25749,0.16395,0.090395,0.62712,0.058171,0.018112,0.016074,0.0073721,0.0056411,0.0033354,0];x=[9.6,18.3,29.0,47.2,71.1,119.1,174.6,257.3,350.7,441.0,513.3,559.7,594.8,629.4,640.8,651.1,655.9,659.6,661.8]; subplot(1,2,2); plot(x,rk,'k+')xlabel('生物量xk (克)') ylabel('增长率rk (%)') title('rk 关于x 的散点图')时间k (小时)增长率r k (%)rk 关于k 的散点图生物量xk (克)增长率r k (%)rk 关于x 的散点图观察rk 关于k 的散点图,难以发现二者的近似而简单的函数关系。
观察rk 关于xk 的散点图,发现二者近似线性递减关系rk=r*(1-xk/N);由rk=(x(k+1)-x(k))/x(k),代入上式,建立离散阻滞增长模型。
2、建立酵母培养物的增长模型.在营养有限的环境下,假设用前差公式计算的增长率rk 随着生物量xk 的增加而线性递减,即rk= rk=(x(k+1)-x(k))/x(k) =r*(1-x(k)/N),k=0,1,2….. 根据模型假设,即可建立离散阻滞增长模型 x(k+1)= x(k)+r* x(k)* (1-x(k)/N),k=0,1,2,…3、利用线性拟合估计模型参数,并进行模型检验,展示模型拟合与预测效果图.首先,根据rk和xk的数据拟合出r(k)=r*(1-x(k)/N)的参数r和N,拟合效果图如1.(3)-1图所示。
然后根据观测数据直接取x0=9.6,用循环语句按照x(k+1)= x(k)+r* x(k)* (1-x(k)/N),k=0,1,2,…进行迭代计算,算出第0~18小时酵母生物量的模拟值,,并计算误差平方和,绘制模拟效果图和模拟误差图。
用matlab编程如下:t=0:18;x=[9.6,18.3,29.0,47.2,71.1,119.1,174.6,257.3,350.7,441.0,513.3,559.7,594.8,629.4,640.8,651.1,6 55.9,659.6,661.8];r=(x(2:19)-x(1:18))./x(1:18);a1=polyfit(x(1:18),r,1);r1=a1(2),N1=-a1(2)/a1(1)x1=x(1);for k=1:18x1(k+1)=x1(k)+r1*x1(k)*(1-x1(k)/N1);endresd1=x-x1;sse1=sum(resd1.^2)subplot(2,1,1),plot(t,x,'k*',t,x1,'ks')axis([-1,19,0,670]),legend('观测值','模拟值',4)xlabel('时间k(小时)'),ylabel('生物量x_k(克)')title('(1)离散阻滞增长模型的模拟效果图,线性拟合')subplot(2,1,2),plot(t,resd1,'k.',[-1,19],[0,0],'k')axis([-1,19,-40,40]),legend('观测值','模拟值',4)xlabel('时间k(小时)'),ylabel('模拟误差')title('(2)离散阻滞增长模型的模拟误差,线性拟合')结果:r1 = 0.6693N1 = 635.7055sse1 = 6.2932e+03200400600时间k (小时)生物量x k(克)2040时间k (小时)模拟误差(2)离散阻滞增长模型的模拟误差,线性拟合4、利用非线性拟合估计模型参数,并进行模型检验,展示模型拟合与预测效果图. 用matlab 编程如下: 函数文件fun_3_4_2.m : function y = fun_3_4_2(b,x) y=zeros(size(x)); y(1)=b(3);for k=2:length(x)y(k)=y(k-1)+b(1).*y(k-1).*(1-y(k-1)./b(2)); end脚本: t=0:18;x=[9.6,18.3,29.0,47.2,71.1,119.1,174.6,257.3,350.7,441.0,513.3,559.7,594.8,629.4,640.8,651.1,655.9,659.6,661.8];[a2,resd2]=nlinfit(t,x,@ fun_3_4_2,[0.5,660,9.6]) sse=sum(resd2.^2) subplot(2,1,1)plot(t,x,'k*',t,fun_3_4_2(a2,t),'ks') axis([-1,19,0,670])legend('观测值','模拟值',4)xlabel('时间k (小时)'),ylabel('生物量x_k (克)')title('(1)离散阻滞增长模型的模拟效果图,非线性拟合') subplot(2,1,2)plot(t,resd2,'k.',[-1,19],[0,0],'k') axis([-1,19,-40,40])xlabel('时间k (小时)'),ylabel('模拟误差')title('(2)离散阻滞增长模型的模拟误差,非线性拟合')结果如下:a2 = 0.5604 652.4634 14.9997resd2 = -5.3997 -4.9118 -6.7562 -7.4948 -11.6748 -4.1746 -4.7021 5.1341 11.8406 10.8727 1.0384 -14.2442 -17.8488 -4.1982 -3.0640 2.4807 5.1393 7.8876 9.6673 sse = 1.3535e+03200400600时间k (小时)生物量x k(克)2040时间k (小时)模拟误差(2)离散阻滞增长模型的模拟误差,非线性拟合5、请分析两个模型的区别,作出模型的评价.方法一能够用离散阻滞增长模型模拟酵母培养生物量的变化趋势,前半段的误差很小,但后半段的误差很大,误差平方和很大。