matlab曲线拟合与子多项式

时间:2015-02-10 17:58:56

标签: matlab curve-fitting

我想知道我如何适应三点x = ([0.42 0.64 0.96])y = ([4.2 5.1 6.0]),y = k * x ^(0.88)?

我尝试了[p,S,mu] = polyfit(x,y,0.88);,但MATLAB表示只接受整数的幂。感谢。

修改

这个想法是我知道这三点应该遵循基于某些理论的曲线,所以我想用它来描绘自己。另外,我想做曲线拟合,因为我不知道k是什么。

2 个答案:

答案 0 :(得分:2)

如果您可以为模型添加常量,则可以执行以下操作:

[p,S,mu] = polyfit(x.^(0.88),y,1);

然后你会y近似p(2)*x.^(0.88)+p(1)(最小化错误的平方和)

答案 1 :(得分:2)

lsqnonlin怎么样?

你可以尝试

model = @(x,k) (k*x.^0.88);
resVec = @(k) (y(:) - model(x(:),k));
k_start = 1;
k_opt = lsqnonlin(resVec,k_start);