-
數據擬合
鎖定
- 中文名
- 數據擬合
- 外文名
- Curve fitting
- 別 名
- 曲線擬合
- 性 質
- 擬合
- 屬 性
- 數據
- 函數擬合
- a=polyfit(xdata,ydata,n)
- 學 科
- 數理科學
目錄
數據擬合定義
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).若定義 ,則輸出