首页 > 编程知识 正文

matlab 线性拟合,四参数拟合曲线

时间:2023-05-06 06:53:41 阅读:40088 作者:386

由于此地板涉嫌违规,因此它将折叠在系统中以隐藏此地板并显示此地板

用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 /

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。