Я пытаюсь подогнать кривую в Matlab, используя fit
в командной строке. Входные данные:
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
в команде подгонки. Это улучшило поведение, но это не совсем правильно. Если я установлю model1 равным:
model1 = fittype('1/(kappa*x.^pow)');
Подходит плохо. Если я установлю это:
model1 = fittype('kappa*x.^pow');
Подгонка хорошая (каппа очень маленькое, а пау отрицательный).
я тоже нормализовал Y
и получаю разумные результаты