多項式曲線擬合

2022-05-01 04:45:09 字數 1046 閱讀 9570

給定資料點pi(xi,yi),其中i=1,2,…,m。求近似曲線y= φ(x)。並且使得近似曲線與y=f(x)的偏差最小。近似曲線在點pi處的偏差δi= φ(xi)-y,i=1,2,...,m。 

損失計算:

1.使偏差絕對值之和最小

2.使偏差絕對值最大的最小

3.使偏差平方和最小

推導:擬合多項式:

計算誤差:

求引數,求偏導:  

得到:

#include #include 

using

namespace

std;

bool polynomialcurvefit(vector& training, int n, cv::mat&a)}}

cv::mat y = cv::mat::zeros(n + 1, 1

, cv_64fc1);

for (int i = 0; i < n + 1; i++)

}a = cv::mat::zeros(n + 1, 1

, cv_64fc1);

cv::solve(x, y, a, cv::decomp_lu);

//solve 是opencv中專用於求解線性方程的函式。。 x左矩陣,y右矩陣,a係數矩陣, method 估算方法。。 引數少於點數,lu分解

return

true;}

intmain()

cv::polylines(image, points_fitted,

false, cv::scalar(0, 255, 255), 1, 8, 0

); cv::imshow(

"image

", image);

cv::waitkey(0);

return0;

}

擬合結果

多項式曲線擬合

給定資料點pi xi,yi 其中i 1,2,m。求近似曲線y x 並且使得近似曲線與y f x 的偏差最小。近似曲線在點pi處的偏差 i xi y,i 1,2,m。損失計算 1.使偏差絕對值之和最小 2.使偏差絕對值最大的最小 3.使偏差平方和最小 推導 擬合多項式 計算誤差 求引數,求偏導 得到 ...

多項式曲線擬合

問題描述 尋找一系列合適的引數 w,使得其對應的多項式與樣值點最接近。對於如何刻畫 最接近 可以定義目標函式最小化 如下圖 由下圖可見,當多項式的階數 m 增加時,紅色多項式曲線與樣本的誤差越小。當m為9時,多項式曲線通過每乙個樣本點。over fitting 問題 但是多項式階數為9時,其推廣能力...

C 實現多項式曲線擬合 polyfit

基本原理 冪函式可逼近任意函式。上式中,n表示多項式階數,實際應用中一般取3或5 假設n 5,則 共有6個未知數,僅需6個點即可求解 可表示為矩陣方程 y的維數為 r 1 u的維數 r 6 k的維數 6 1 r 6時,超定方程求解 下面是使用c 實現的多項式擬合的程式,程式中使用opencv進行矩陣...