由于此地板涉嫌违规,因此它将折叠在系统中以隐藏此地板并显示此地板
用matlab表示逻辑曲线x=[ 3,5,10,12,17 ]; y=[123.1、134.5、145.2、185、187.3];
Logistic模型为f(x )=a/1b*exp(-c*x ),进行曲线拟合时首先需要估计a、b、c三个参数的值,想问如何估计才能收敛。 不拟合曲线误差很大,哪个大神给码! 我很着急。 谢谢你。
解答如下。 标准logistic模型为4参数,我根据4参数拟合如下:
f(x )=(a-d )/) 1b*exp ) c*x ) ) d在此a和d的含义显着,是x变为正负无限大时y的最大最小值。
1 )初始值在本例中初始值A=150; 将首尾和中间点(x,y )带入模型,求出参数b、c、d的初始值。 代码: [b,c,d]=solve(((150-d )/1b*exp(-c*3)-d=123.1 ),) 150-d )/1b*exp(-c*10 )-d=
%%! 这里括号有问题!
2 )创建并拟合m文件
%提供更详细的代码、更多的参数。 c :参数的最佳解,r :各点的拟合残差,j :雅可比矩阵的数值。
x=[ 3,5,10,12,17 ];
y=[123.1、134.5、145.2、185、187.3];
c0=[ 150,18.526857911648590940806413160078,- 0.0920671617378040858956309851236,25.66025 ];
fun=inline () (c )1-c )4)./(1c )2).*exp )3) (x ) ) c )、(c )、(c )、(x );
[c,r,j]=nlinfit(x,y,fun,c0 );
%其中x、y是原始数据,fun是m文件中定义的函数,c0是函数中参数的初始值;
% c是参数的最佳解,r是各点的拟合残差,j是雅可比矩阵的数值。
b %最佳参数
q=sum(r.^2) %误差平方和
sy=STD(y,1 ) ^2; %方差平方和
r=sqrt(1-q/ssy ) ) )。
t=-2.5:0.1:2.5;
plot(x,y,' r* ',t,fun ) b,t ) )
绘制%。 其中x、y表示一对点,后面的参数表示颜色和点的形状。
%然后,有一组点。
结论:该组数字太差,拟合失败。 ----------------这一组的拟合很好。 x=[ 197919801983198419851988198919911991 ] 2001200220032004200520062007200820092010 ]’; y=[0. 151.203.309.5019.0030.6140.1142.8460.0076.7899.13153.54187.28318.74349.9999 st_=[700 20 0.2]; ft_=fittype(a/) 1b*exp(-k* ) x-1979 ) )、…'dependent )、{'y ' )、' independent '、{'x'}和[cf_ legend off; % turnofflegendfromplotmethodcallset (h _ (1),' Color ',[1 0 0], LineStyle ','-',' LineWidth ',2, ' )
refer 1.http://www.miraibio.com/blog/2010/08/the-4-parameter-logistic-4pl-nonlinear-regression-model /