複製鏈接
請複製以下鏈接發送給好友

數據擬合

鎖定
數據擬合又稱曲線擬合,俗稱拉曲線,是一種把現有數據透過數學方法來代入一條數式的表示方式。科學工程問題可以通過諸如採樣實驗等方法獲得若干離散的數據,根據這些數據,我們往往希望得到一個連續的函數(也就是曲線)或者更加密集的離散方程與已知數據相吻合,這過程就叫做擬合(fitting)
中文名
數據擬合
外文名
Curve fitting
別    名
曲線擬合
性    質
擬合
屬    性
數據
函數擬合
a=polyfit(xdata,ydata,n)
學    科
數理科學

數據擬合定義

曲線擬合,俗稱拉曲線,是一種把現有數據透過數學方法來代入一條數式的表示方式。
MATLAB的NAG Foundation Toolbox中也有一些曲面擬合函數,如e02daf是最小二乘平方曲面擬合函數,e02def可求出曲面擬合的函數值
MATLAB軟件提供了基本的曲線擬合函數的命令 [1] 

數據擬合擬合直線或多項式曲線

方程
在笛卡爾平面上是一條直線,而這條直線的斜率a。因為任何兩點可以決定一條直線,因此總能找到次數不多於1的多項式來串起任何兩個x值相異的點。
如果把多次式的次數增加到2
那麼只要給定x值各異的3點,總會有次數不多於2的多項式可以把它們串起。
如果把多次式的次數再增加到3
那麼只要給定x值各異的4點,總會有次數不多於3的多項式可以把它們串起。
對於這條多項式,更正確的描述是這條多項式附合任何4個限制。限制可以是一點(x,y)、角度曲率(即半徑的倒數 1/R)。角度和曲率的限制通常在曲線的終端,因此稱為終端條件。為了樣條(spline) 的交接平滑,通常會用到全等的終端條件。 也可以增加如曲率變化等高階約束。例如,在高速公路立體交叉點cloverleaf的設計中,可以用來理解當汽車繞着交叉點運動時作用在汽車上的力,並依此設定合理的限定時速。
一次多項式也可以擬合一個單點和一個角度,三次多項式則可以擬合兩點,一個角度約束以及一個曲率約束。許多其它類型的約束組合也同樣可以用低階或者高階多項式來擬合。
如果有超過n+1個約束(n是多項式的階次),仍然可以使用多項式擬合。通常一個滿足所有約束的精確擬合不一定能夠得到(但是有可能得到,例如,用一次多項式擬合共線的三點三點共線)。通常,我們需要使用一些方法來評價擬合的好壞。最小平方法就是用來評價差別的一種常用的方法 [2] 

數據擬合Matlab實現方法

數據擬合多項式函數擬合

a=polyfit(xdata,ydata,n)
其中n表示多項式的最高階數,xdata,ydata為將要擬合的數據,它是用數組的方式輸入.輸出參數a為擬合多項式 的係數 ,相對應的次數為由高到低。
多項式在x處的值y可用下面程序計算。
y=polyval(a,x)
有了x和y就可以把擬合的圖形畫出來,並且同時與原圖對比
plot(xdata,ydata,x,y)

數據擬合一般的曲線擬合

p=curvefit(‘Fun’,p0,xdata,ydata)
其中Fun表示函數Fun(p,data)的M函數文件,p0表示函數的初值.curvefit()命令的求解問題形式是
若要求解點x處的函數值可用程序f=Fun(p,x)計算。
例如已知函數形式 ,並且已知數據點 要確定四個未知參數a,b,c,d.
使用curvefit命令,數據輸入 ;初值輸 ;並且建立函數 的M文件(Fun.m).若定義 ,則輸出

數據擬合曲線擬合實驗圖

利用COMSOL Multiphysics 擬合實驗,見圖1 [3] 
圖1 曲線擬合樣圖 圖1 曲線擬合樣圖
參考資料
  • 1.    TableCurve2D and TableCurve3D by Systat automates curve fitting
  • 2.    Zunzun.com Online curve and surface fitting
  • 3.    Curve Expert (shareware) fits functions to data (limited to one dependant and one independent variable.)