有机物新陈代谢模拟程序

版权声明:此篇博文为博主心血o(╥﹏╥)o,如要转载请注明来源,勿忘心安! https://blog.csdn.net/dyq1995/article/details/86591059

下面来介绍一下利用MATLAB来模拟自然湖泊中有机物的新陈代谢的过程,具体如下:

1、首先在MATLAB主界面的编辑器中写入下列代码:

%微分方程组求解主程序
clc;clear all;clf;close all;
%Windows时钟自动计时
T1=clock;%Clock函数返回的值是clock = [year month day hour minute seconds]
disp('计算机正在准备输出湖泊有机物新陈代谢结果,请耐心等待……');
[tt,y]=ode45('lbwfun',[0:10:2020],[95.9,0.83,0.003,0.0001,0.0,0.0]);
t=tt(191:end,:)
ys=y(191:end,1)
yp=y(191:end,2)
yh=y(191:end,3)
yr=y(191:end,4)
yo=y(191:end,5)
ye=y(191:end,6)
T2=clock;
API_elapsed_time=T2-T1;
if  API_elapsed_time(6)<0
        API_elapsed_time(6)=API_elapsed_time(6)+60;
        API_elapsed_time(5)=API_elapsed_time(5)-1;
end
if  API_elapsed_time(5)<0
        API_elapsed_time(5)=API_elapsed_time(5)+60;
        API_elapsed_time(4)=API_elapsed_time(4)-1;
end
if  API_elapsed_time(4)<0
        API_elapsed_time(4)=API_elapsed_time(4)+60;
        API_elapsed_time(3)=API_elapsed_time(4)-1;
end 
str=sprintf('湖泊新陈代谢模拟程序共运行 %d 小时 %d 分钟 %.4f 秒',...
        API_elapsed_time(4),API_elapsed_time(5),API_elapsed_time(6));
disp(str);
 

2、其中lbwfun是微分方程的子程序,代码如下:

%子函数:微分方程组odefile文件并命名为lbwfun.m
function ydot=lbwfun(t,y);
ydot=[121.793*pi*cos(2*pi*t);
          y(1)-4.03*y(2);
          0.48*y(2)-17.87*y(3);
          4.85*y(3)-4.65*y(4);
          2.55*y(2)+6.12*y(3)+1.95*y(4);
          1.10*y(2)+6.90*y(3)+2.70*y(4)];

3、两个程序代码命名保存至同一自定义路径下,点击运行,结果如下:

 

 

 

可以看出,湖泊新陈代谢模拟程序共运行1.180秒,处理速度相当快,从数据可以得到各项系数的具体值,对有机物的生长和繁殖提高的有价值的参考,请大家继续关注!!!

猜你喜欢

转载自blog.csdn.net/dyq1995/article/details/86591059