哪位大神能帮忙用MATLAB拟合一下X=0,8.65,19.83,30.35,39.72,47.66,56.58 40

Y=337.7,298.1,101.1,60.8,39.6,24.3,11.6,公式:Y=1/(1+A*exp(-B*X^C))... Y=337.7,298.1 ,101.1,60.8,39.6,24.3,11.6,公式:Y=1/(1+A*exp(-B*X^C)) 展开
 我来答
tianxiawulang
2016-07-19 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2675万
展开全部

参考代码:

X=[0, 8.65, 19.83, 30.35, 39.72, 47.66, 56.58];
Y=[337.7, 298.1 , 101.1, 60.8, 39.6, 24.3, 11.6];

% c(1)=A, c(2)=B, c(3)=C
f = @(c,x) 1./(1+c(1)*exp(-c(2)*x.^c(3)));
c0 = [-0.997 0.01 2];
c = lsqcurvefit(f,c0,X,Y);
fprintf('A = %.4g, B = %.4g, C = %.4g\n',c)
plot(X,Y,'ro',X,f(c,X))

需要注意拟合系数初值的选择(我是对拟合系数取不同值进行试探,得到大致可以接受的初值再进行拟合的)。程序输出为:

A = -0.9971, B = 1.885e-006, C = 2.669

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式