Matlab實現最小二乘法

2021-10-23 16:38:40 字數 1639 閱讀 6498

p=polyfit(x,y,n):最小二乘法計算擬合多項式係數。x,y為擬合資料向量,要求維度相同,n為擬合多項式次數。返回p向量儲存多項式係數,由最高次向最低次排列。y=polyval(p,x):計算多項式的函式值。返回在x處多項式的值,p為多項式係數,元素按多項式降冪排序。

擬合以下資料

x=[12

,9,23

,56,43.5,33

,41.3,76

,63,26

];y=[

-4,-

3.85,-

5.4,-5

,-3.5,

-1.75,-

1.4,

-0.5

,0.4,-

0.85

];

畫離散點

用一次函式擬合上述曲線

clear

clcx=[12

,9,23

,56,43.5,33

,41.3,76

,63,26

];y=[

-4,-

3.85,-

5.4,-5

,-3.5,

-1.75,-

1.4,

-0.5

,0.4,-

0.85];

coefficient=

polyfit

(x,y,1)

;%用一次函式擬合曲線,想用幾次函式擬合,就把n設成那個數

y1=polyval

(coefficient,x)

;plot

(x,y,

'o',x,y1,

'-')

結果:

coefficient=

[0.04603,-

4.34700

]

得到的一次函式為:

二次函式擬合該曲線,結果如下:

其他階數類推

向量x(其中元素作為自變數)中不重複的元素個數m,和擬合階數k需要滿足m>=k+1.簡單分析:k階擬合需要確定k+1個未知引數(如1階擬合y = ax + b需要確定a和b兩個引數),故而至少需要k+1個方程,故而需要至少k+1個不同的已知數對(x,y),由於函式中x只能對應乙個y,故而需要至少k+1個不同的x。

matlab偏最小二乘法

偏最小二乘是建立表到表的線性擬合關係,然後 的方法 處理高維資料 比如在光譜分析中,x是某物質的光譜樣本構成的訓練集,y是對應的成分資料,x是要 成分的光譜資料 function y5,s pls2 x,y,x y5,s pls2 x,y,x 參考自司守奎教材 偏最小而成回歸章節 x y 為模型生成...

Matlab實現最小二乘法準則擬合

資料擬合 問題的提法 已知曲線上n個點 xi,yi i 1,2,n xi互不相同,尋求乙個函式y f x 使y f x 在某種準則下與所有資料點最為接近,即曲線擬合得最好。基本思路是 設按此方法得到的函式 若它接近1,表示f x 能較好的擬合該資料集。若取 matlab中的多項式擬合函式 polyf...

最小二乘法

include stdafx.h include include const int n 2 const int m 5 int sgn double x void lss double g n 1 int xm,int xn,double x m double p,double w m lss函式...