利用MATLAB進行數據闡發計較經常需要用到進行多項式求解,和進行曲線擬合一些特征方程曲線,常用方式有最小二乘法和統計回歸法。下面分享給大師利用MATLAB進行多項式求解和曲線擬合的方式、法式代碼和步調,但愿可以或許幫忙大師。
第一步:我們起首進修MATLAB多項式求解,有兩種求解方式,一種是操縱polyval 函數求解單個多項式,一種是操縱polyvalm 函數求解多個多項式。二者的求解代碼如下:
p = [3 2 0 -1 4];
polyval(p,4)
y = [2 3 0 -6 7];
x = [1 3 -3 2; 1 -3 2 1; 3 1 0 1; 5 -2 3 6];
polyvalm(y, x)
我們將其寫入到MATLAB法式中,如下圖所示。
第二步:我們運行上述MATLAB求解多項式法式代碼,得出的運行成果為:
ans =
896
ans =
1422 53 167 1766
894 112 94 1114
1362 91 187 1708
5394 313 625 6838
如下圖所示。
第一步:我們對多項式進行曲線擬合可以利用polyfit 函數,該函數可以或許很好地進行曲線擬合,用法MATLAB法式代碼為:
p = polyfit(x,y,n)
我們可以輸入到MATLAB中按F1查看該函數更多信息。
第二步:知道了曲線擬合polyfit 函數的用法后,我們編寫法式進行曲線擬合,若是不需要輸出圖形則利用如下法式代碼:
x = [1 2 3 4 5 6];
y = [5.5 43.1 128 290.7 498.4 978.67]; %data
p = polyfit(x,y,4) %get the polynomial
我們將其寫入到MATLAB法式中,如下圖所示。
第三步:我們再運行上面的擬合法式代碼,可以得出的擬合方程式的系數為:
p =
4.1056 -47.9607 222.2598 -362.7453 191.1250
如下圖所示。
第四步:若是我們需要直不雅的顯示曲線擬合結果,畫圖是少不了了,我們在上述代碼的后面加上如下代碼:
% Compute the values of the polyfit estimate over a finer range,
% and plot the estimate over the real data values for comparison:
x2 = 1:.1:6;
y2 = polyval(p,x2);
plot(x,y,'o',x2,y2)
grid on
如下圖所示。
第五步:我們再次運行法式,可以得出MATLAB多項式曲線擬合的圖形如下圖所示,我們可以看到該曲線擬合結果是很好的。
第六步:完整法式代碼如下:
x = [1 2 3 4 5 6]; y = [5.5 43.1 128 290.7 498.4 978.67]; %data
p = polyfit(x,y,4) %get the polynomial
% Compute the values of the polyfit estimate over a finer range,
% and plot the estimate over the real data values for comparison:
x2 = 1:.1:6;
y2 = polyval(p,x2);
plot(x,y,'o',x2,y2)
grid on
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!