我想知道我如何适应三点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
是什么。
答案 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);