MATLAB中通過最小二乘法逼近函式

2021-10-24 01:45:00 字數 1140 閱讀 7098

基函式我們選用基本的 1,x

xx,x

2x^2

x2, x

3x^3

x3函式我們設為

y =2

x3+x

+2

y = 2x^3+x+2

y=2x3+

x+2並加上乙個擾動

我們主要使用的最小二乘的逼近公式為:

a t∗

w∗a=

c∗

ba^t*w*a=c*b

at∗w∗a

=c∗b

a為基函式節點處的值所構成的列向量

w為權重矩陣,此處為單位陣

c為我們要求的係數

b為函式在節點處基函式與被逼近函式值的乘積矩陣

%a

a0 = ones(21,1);

a1 = linspace(0,1,21)';

a2 = a1.^2;

a3 = a1.^3;

a = [a0,a1,a2,a3]

%w權重矩陣

w = a0;

w = diag(w);

%正負一交替的數列

signs = (-1).^(1:21)

%函式值

b = (2*a1'.^3 + a1' + 2 + signs*0.0001)'

%利用normal_matrix*coefficient = b 求解係數

b = [b'*a0;b'*a1;b'*a2;b'*a3]

normal_matrix = a'*w*a;

%係數coefficient = inv(normal_matrix)*b

%函式值

coefficient_ = [coefficient(4);coefficient(3);coefficient(2);coefficient(1)]

y_pred = a*coefficient_

%%繪製圖形

figure(1)

plot(a1,b,'r');

hold on

plot(a1,y_pred,'b')

axis([0 1 1 6])

%其中紅線為原始函式,藍色的線為逼近的三次函式。

matlab偏最小二乘法

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

Matlab實現最小二乘法

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

最小二乘法

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函式...