具有次多项式的matlab曲线拟合

matlab curve fitting with sub-polynomial

我想知道如何拟合三个点 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 是什么。

如果您愿意为模型添加常量,您可以这样做:

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

那么您将 y 近似为 p(2)*x.^(0.88)+p(1)(最小化误差的平方和)

lsqnonlin呢?

你可以试试

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