我正在尝试使用fit
命令行在 Matlab 中拟合曲线。输入数据为:
X =
1
2
4
5
8
9
10
13
Y =
1.0e-04 *
0.1994
0.0733
0.0255
0.0169
0.0077
0.0051
0.0042
0.0027
目标函数是
Y = 1/(kappa*X.^a)
我正在使用fittype
,fitoptions
和fit
如下:
model1 = fittype('1/(kappa*x.^pow)');
opt1 = fitoptions(model1);
opt1.StartPoint = [1e-5 -2];
[fit1,gof1] = fit(X,Y.^-1,model1,opt1)
我得到的结果rsquare
大约为 -450,与测量的方向大致相同。. 如何提高 Matlab 拟合技能?
编辑:
我删除了.^-1
fit 命令中的 。这改善了行为,但并不完全正确。如果我将 model1 设置为:
model1 = fittype('1/(kappa*x.^pow)');
合身不好。如果我将其设置为:
model1 = fittype('kappa*x.^pow');
合身性很好(kappa 是一个非常小的数字,pow 是负数)。
我也标准化Y
了,我得到了合理的结果