曲線擬合




曲線擬合(fit theory),俗稱拉曲線,是一種把現有數據透過數學方法來代入一條數式的表示方式。科学和工程问题可以通过诸如采样、实验等方法获得若干离散的数据,根据这些数据,我们往往希望得到一个连续的函数(也就是曲线)或者更加密集的离散方程与已知数据相吻合,这过程就叫做拟合 (fitting)


本條目講述如何透過拉曲線的方法來進行插值法運算及遞歸分析的基礎。



拟合直線或多項式曲線


方程y=ax+b{displaystyle y=ax+b;}在笛卡尔平面上是一條直線,而這條直線的斜率是a。因為任何兩點可以決定一條直線,因此總能找到次數不多於1的多項式來串起任何兩個x值相異的點。


如果把多次式的次數增加到2


y=ax2+bx+c{displaystyle y=ax^{2}+bx+c;}

那麼只要給定x值各異的3點,總會有次數不多於2的多項式可以把它們串起。


如果把多次式的次數再增加到3


y=ax3+bx2+cx+d{displaystyle y=ax^{3}+bx^{2}+cx+d;}

那麼只要給定x值各異的4點,總會有次數不多於3的多項式可以把它們串起。


對於這條多項式,更正確的描述是這條多項式附合任何4個限制。限制可以是一點(x,y)、角度或曲率(即半徑的倒數 1/R)。角度和曲率的限制通常在曲線的終端,因此稱為終端條件 。為了樣條(spline) 的交接平滑,通常會用到全等的終端條件。 也可以增加如曲率变化等高阶约束。例如,在高速公路立体交叉点苜蓿葉型的设计中,可以用来理解当汽车绕着交叉点运动时作用在汽车上的力,并依此设定合理的限定时速。


一次多项式也可以拟合一个单点和一个角度,三次多项式则可以拟合两点,一个角度约束以及一个曲率约束。许多其它类型的约束组合也同样可以用低阶或者高阶多项式来拟合。


如果有超过n+1个约束(n是多项式的阶次),仍然可以使用多项式拟合。通常一个满足所有约束的精确拟合不一定能够得到(但是有可能得到,例如,用一次多项式拟合共线的三点三点共线)。通常,我们需要使用一些方法来评价拟合的好坏。最小平方法就是用来评价差别的一种常用的方法。


不通过提高多项式的次数来更好的拟合曲线的原因有下:



  • 即使存在精确的拟合,也不意味着必须得到这样的拟合。根据使用的算法不同,我们可能遇到分歧,要么精确的拟合无法得到,要么需要太多的计算机时去得到精确的拟合。不管哪种情况,最终都会以得到近似拟合而结束。

  • 通常人們會希望得到一个近似的拟合,而不愿为了精确拟合数据而使拟合的曲线产生扭曲。

  • 高次多项式往往有高度波动的特性。如果我们通过两点“A”和“B”作一条曲线,我们希望这条曲线也能通过“A”和“B”的中点。但是对于高次多项式,情况就不是这样了,高次多项式曲线往往可能有很大或者很小的幅值。对于低次多项式,曲线将没有很大波动,而能通过中点(对于一次多项式,甚至能保证肯定通过中点)。



外部連結




  • Curve Expert (shareware) fits functions to data (limited to one dependant and one independent variable.)


  • Zunzun.com Online curve and surface fitting


  • TableCurve2D and TableCurve3D by Systat automates curve fitting

  • another choice

  • online curve-fitting textbook

  • Interactive curve fitting using Least Squares with Weights on savetman.com




Popular posts from this blog

GameSpot

connect to host localhost port 22: Connection refused

Getting a Wifi WPA2 wifi connection