繁体   English   中英

如何使用Matlab进行非线性最小二乘Michaelis–Menten参数估计

[英]How to use Matlab for non linear least squares Michaelis–Menten parameters estimation

我有一组测量值,然后开始进行线性近似(如该图所示 )。 从Matlab中的以下代码对参数V_{max}K_{m}线性最小二乘估计:

data=[2.0000 0.0615
2.0000 0.0527
0.6670 0.0334
0.6670 0.0334
0.4000 0.0138
0.4000 0.0258
0.2860 0.0129
0.2860 0.0183
0.2220 0.0083
0.2200 0.0169
0.2000 0.0129
0.2000 0.0087 ];
x = 1./data(:,1);
y = 1./data(:,2);
J = [x,ones(length(x),1)];
k = J\y;
vmax = 1/k(2);
km = k(1)*vmax;
lse = (vmax.*data(:,1))./(km+data(:,1));
plot(data(:,1),data(:,2),'o','color','red','linewidth',1)
line(data(:,1),lse,'linewidth',2)

这样产生的拟合看起来不错。 接下来,我想用非线性最小二乘法做同样的事情。 但是,拟合总是看起来不对,这是该尝试的代码:

options =  optimset('MaxIter',10000,'MaxFunEvals',50000,'FunValCheck',...
    'on','Algorithm',{'levenberg-marquardt',.00001});
p=lsqnonlin(@myfun,[0.1424,2.5444]);
lse = (p(1).*data(:,1))./(p(2)+data(:,1));
plot(data(:,1),data(:,2),'o','color','red','linewidth',1)
line(data(:,1),lse,'linewidth',2)

在M文件中需要此功能:

function F = myfun(x)
    F = data(:,2)-(x(1).*data(:,1))./x(2)+data(:,1);

如果运行代码,您将看到我的问题。 但希望与我不同,您会发现我做错了。

我认为您在非线性函数中忘记了一些括号(有些是多余的)。 使用匿名函数:

myfun = @(x)data(:,2)-x(1).*data(:,1)./(x(2)+data(:,1)); % Parentheses were missing
options = optimset('MaxIter',10000,'MaxFunEvals',50000,'FunValCheck','on',...
                   'Algorithm',{'levenberg-marquardt',.00001});
p = lsqnonlin(myfun,[0.1424,2.5444],[],[],options);
lse = p(1).*data(:,1)./(p(2)+data(:,1));
plot(data(:,1),data(:,2),'o','color','red','linewidth',1)
line(data(:,1),lse,'linewidth',2)

您实际上也没有应用任何选项。

您可能会考虑改用lsqcurvefit因为它是为解决数据拟合问题而设计的:

myfun = @(x,dat)x(1).*dat./(x(2)+dat);
options = optimset('MaxIter',10000,'MaxFunEvals',50000,'FunValCheck','on',...
                   'Algorithm',{'levenberg-marquardt',.00001});
p = lsqcurvefit(myfun,[0.1424,2.5444],data(:,1),data(:,2),[],[],options);
lse = myfun(p,data(:,1));
plot(data(:,1),data(:,2),'o','color','red','linewidth',1)
line(data(:,1),lse,'linewidth',2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM