服装适合可变参数

时间:2017-05-05 06:14:14

标签: matlab

我正在寻找一种从图表拟合中找到值的方法。我只是想知道在MATLAB中有可能吗?是否有用于此目的的代码行?

例如:

我有两个矩阵数据如下:

X=[1 2 3 4 5 6 7 8 9]

Y=[9 8 7 6 5 4 3 2 1]

我想用非线性方程(服装合身)拟合这些数据:

a*(w+1)*x^w*exp⁡(a*x^(w+1))  ;   a=gamma ((w+2)/(w+1))

但是这个等式有一个变量参数w。我想MATLAB给我w,对于这个参数,我可以最适合我的数据。

1 个答案:

答案 0 :(得分:0)

使用fit进行曲线拟合:

% define function as a string
f = 'gamma((w + 2)/(w + 1))*(w + 1)*(x.^w).*exp( gamma((w + 2)/(w + 1))*x.^(w + 1) )';
X = [1 2 3 4 5 6 7 8 9];
Y = [9 8 7 6 5 4 3 2 1];
% define fit parameters
fitType = fittype( f, 'Independent', 'x' ,'coefficients',{'w'});
% fit data
fitobject = fit(X(:),Y(:),fitType,'StartPoint', 0);
% coefficient value
w = coeffvalues(fitobject)
% plot
plot(X,Y,'.');
hold on
plot(fitobject);
title(['w = ' num2str(w)])

enter image description here