2015-02-10 65 views
0

我在想我該如何適合三點x = ([0.42 0.64 0.96])y = ([4.2 5.1 6.0]) y = k * x ^(0.88)?matlab與亞次多項式擬合的曲線

我試過[p,S,mu] = polyfit(x,y,0.88);但MATLAB表示只接受整數數字的功率。謝謝。

編輯:

的想法是,我知道這三點應遵循基於一定的理論曲線,所以我想繪製它說服自己。另外,我想做曲線擬合,因爲我不知道k是什麼。

回答

2

lsqnonlin怎麼樣?

你可以嘗試

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

如果你有加上一個常數到模型OK,你可以這樣做:

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

那麼你就必須通過y近似p(2)*x.^(0.88)+p(1)(最小化誤差的平方之和)