多項式曲線擬合最小二乘法

2021-07-05 05:29:59 字數 2227 閱讀 8468

對給定的試驗資料點(xi,yi)(i=1,2,……,n),可以構造m次多項式

資料擬合的最簡單的做法就是使誤差p(xi)-yi的平方和最小

當前任務就是求乙個p(x)使得

從幾何意義上講就是尋求給與定點(xi,yi)距離的平方和最小的曲線y=p(x),函式p(x)稱為擬合函式或者是最小二乘解,求擬合函式p(x)的方法稱為曲線擬合的最小二乘法

由極值條件得到

即求得

通過簡單運算可以得出係數是下面線性方程組的解。

在matlab中程式設計實現多項式曲線擬合函式為:leastsquaredetail

功能:求已知資料點的多項式曲線擬合插值法多項式

呼叫格式:a=leastsquaredetail(x,y,m,x0)

其中:x為已知資料點的x座標向量

y為已知資料點的y座標向量

m為擬合多項式的次數

a為擬合多項式的係數向量

多項式曲線擬合的matlab實現

leastsquaredetail.m

function f = leastsquaredetail(x,f,m,x0)

%x代表輸入的x的值

%y代表輸入的x對應的y值

%m代表擬合的次數

%x0為待求的點的x座標

format long g

a=length(x);

b=length(f);

if(a~=b)

disp('xy的維數不相等!!');

end%求得矩陣a

a=zeros(m+1);

for i=1:m+1

for j=i:m+1

if(i==1&&j==1)

a(i,j)=a;

else

for k=1:a

a(i,j)=a(i,j)+x(k)^(i+j-2);

endend

a(j,i)=a(i,j);

endend%求得等式右邊的矩陣

b=zeros(1,m+1);

for i=1:m+1

if(i==1)

for k=1:a

b(i)=b(i)+f(k);

endelse

for k=1:a

b(i)=b(i)+x(k)^(i-1)*f(k);

endend

endb=b';

%求解係數

x=a\b;

%求得到的方程

最小二乘法多項式曲線擬合

最小二乘法多項式曲線擬合,根據給定的m個點,並不要求這條曲線精確地經過這些點,而是曲線y f x 的近似曲線y x 原理部分由個人根據網際網路上的資料進行總結,希望對大家能有用 給定資料點pi xi,yi 其中i 1,2,m。求近似曲線y x 並且使得近似曲線與y f x 的偏差最小。近似曲線在點p...

最小二乘法多項式曲線擬合原理與實現

最小二乘法多項式曲線擬合,根據給定的m個點,並不要求這條曲線精確地經過這些點,而是曲線y f x 的近似曲線y x 原理部分由個人根據網際網路上的資料進行總結,希望對大家能有用 給定資料點pi xi,yi 其中i 1,2,m。求近似曲線y x 並且使得近似曲線與y f x 的偏差最小。近似曲線在點p...

最小二乘法多項式曲線擬合原理與實現

最小二乘法多項式曲線擬合,根據給定的m個點,並不要求這條曲線精確地經過這些點,而是曲線y f x 的近似曲線y x 原理部分由個人根據網際網路上的資料進行總結,希望對大家能有用 給定資料點pi xi,yi 其中i 1,2,m。求近似曲線y x 並且使得近似曲線與y f x 的偏差最小。近似曲線在點p...