來源:https://blog.csdn.net/zhaluo0051/article/details/77949170
:https://blog.csdn.net/g28_gwf/article/details/84450935
Matlab做線性最小二乘擬合
函數命令為:a=polyfit(x,y,m) % x,y為對應的自變量,m為需要擬合的最高次冪
y=polyval(a,x); %根據擬合的函數得出x對應的因變量的值
函數表達形式為:f(x)=a1*x^m+...+am*x+a_m+1。
當前有數據集
x = 0 : 1 : 21;
y = [3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 92 76.5 123.2 131.7 150.7 179.3 204 226.5 251.4 281.4];
若想找出一條多項式曲線去描述此數據集,則可使用polyfit()函數與polyval()。
使用polyfit()函數獲得通過當前數據集的擬合結果,最后一個參數為多項式的最高次數。
之后用polyval()函數獲得當前數據集對應的輸出結果。
a = polyfit(x, y, 2);
z = polyval(a, x);
作圖查看擬合結果:
scatter(x, y);
hold on; plot(x, z);
得到圖像: