Matlab题目求解 100
试确定其中的耗氧速度常数Kd和得氧速度常数Ka。得编个程序,要建立什么目标函数什么的,感觉有点难度谁能帮帮我?分大大的有!...
试确定其中的耗氧速度常数Kd和得氧速度常数Ka。
得编个程序,要建立什么目标函数什么的,感觉有点难度谁能帮帮我?分大大的有! 展开
得编个程序,要建立什么目标函数什么的,感觉有点难度谁能帮帮我?分大大的有! 展开
3个回答
展开全部
请说明C0、C是什么意思,C0=?、C=?
追问
C是溶解氧;C0是10
追答
x=[0 8 28 36 56];
y=[10 8.5 7.0 6.1 7.2]; %C
%L0=20; %mg/l
%Cs=10; %mg/l
%Ux=4; %km/h
%模型公式为C=Cs+kd*L0/(ka-kd)*(exp(-kd*x/Ux)-exp(-ka*x/Ux))
%a(1)=kd,a(2)=ka
fun=inline('10+a(1)*20/(a(2)-a(1)).*(exp(-a(1).*x/4)-exp(-a(2).*x/4))','a','x');
a=lsqcurvefit(fun,[0,10],x,y)
a =
-0.0406 0.3427
kd=a(1)=
-0.0406
ka=a(2)=
0.3427
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方程图片看不太清楚,最好换张清楚点的。
还有两个需要核实的问题:
1、C0是什么?
2、方程左端的C是否就是表中的第二行DO?
还有两个需要核实的问题:
1、C0是什么?
2、方程左端的C是否就是表中的第二行DO?
追问
C是溶解氧;C0是10
追答
C0如果是10,方程等号右边的第二项就没有了吧?你上面说Cs=0的。
另,方程左端的C是否就是表中的第二行DO?你没有回答。
方程图片也看不清楚,暂按照现在的理解编程如下:
function zd502568193
x=[0 8 28 36 56];
y=[10.5 8.5 7.0 6.1 7.2];
% 使用最小二乘拟合:
% opt指定拟合选项(注意查看命令窗口提示的优化终止条件,如对结果不满意考虑适当修改)
% b0为初值(要慎重选择,不同初值得到的结果可能不同)
opt = optimset('MaxFunEvals', 50000, 'MaxIter', 10000, 'TolFun', 1E-10);
% b0 = [0 -10 1 1];
% b0 = [0.6 -60 15 0.7];
k0 = [-0.04 0.34];
k = lsqcurvefit(@fun, k0, x, y, [], [], opt);
kd = k(1)
ka = k(2)
% 把拟合结果与原始数据对照
plot(y, '-o');
hold on
plot(fun(k, x), 'r:x');
function y = fun(x, xdata)
kd = x(1);
ka = x(2);
x = xdata;
Cs = 10;
C0 = 10;
L0 = 20;
Ux = 4;
y = Cs -(Cs-C0)*exp(-ka*x/Ux) + kd*L0/(ka-kd) * ( exp(-kd*x/Ux) - exp(-ka*x/Ux) );
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
太专业了,很多概念不清楚,SORRY.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询