曲線擬合(),簡稱擬合,俗稱拉曲線,是一種構建一個函数曲線,使之最佳地吻合現有的過程,該過程可能附加若干條件限制。通俗地說,科学和工程问题通过诸如采样、实验等方法获得了若干离散的数据点。根据这些数据,我们往往希望得到一个连续的函数(也就是曲线)或者更加密集的离散方程与已知数据相吻合,该过程就叫做“拟合”,而得到的曲线方程就称为“拟合函数”。曲线拟合又译为:曲線配適、曲線貼合、曲線適插法,均有助理解其选择曲线方程(解析函数)来“模拟吻合”观测数据的过程。
曲線擬合中可以使用插值(需要精確吻合某數據時)或平滑(構造一個平滑的函數曲線,近似符合數據點)。迴歸分析是與擬合密切相關的一個話題,它更關注的是統計推斷,例如一條擬合到有隨機誤差的一組觀測數據的曲線有多大的不確定性。擬合曲線可以用作數據視覺化的一種輔助手段,以表示數據缺失的函數區間的取值,也可概括兩個或多個變量之間的關係。外推()指的是使用曲線來擬合觀察數據取值範圍以外的取值,往往因採取的構建函數的方式不同而有較大的不确定性
將函數擬合至數據點
最常見的是擬合成函數 的形式。
將直線或多項式曲線擬合至數據點
一次多项式方程y = ax + b\;在笛卡尔平面上是一條直線,而這條直線的斜率是。因為任何兩點可以決定一條直線,因此總能找到次數不多於1的多項式來串起任何兩個值相異的點。
如果把多次式的次數增加到2:
:y = ax^2 + bx + c\;
那麼只要給定值各異的3點,總會有次數不多於2的多項式可以把它們串起。
如果把多次式的次數再增加到3:
:y = ax^3 + bx^2 + cx + d\;
那麼只要給定值各異的4點,總會有次數不多於3的多項式可以把它們串起。
更準確而言,這條多項式能夠符合任何4個限制。限制可以是一點、角度或曲率(即半徑的倒數)。角度和曲率的限制通常用在曲線的終端,此時稱為終端條件 。兩條不同多項式擬合曲線的轉換處通常會用到相同的終端條件,以確保樣條()平滑交接。也可以增加如曲率变化率等高阶约束。例如,在高速公路立体交叉点苜蓿葉型的设计中,可以理解为汽车沿着苜蓿葉立交运动时作用在汽车上的力的变化率(加加速度),并依此设定合理的限速。
一次多项式也可以拟合一个单点和一个角度的限制;三次多项式也可以拟合两点、一个角度约束以及一个曲率约束。许多其它类型的约束组合也同样可以用低阶或者高阶多项式来拟合。
在有超过个约束(是多项式的阶次)的情况下,多项式拟合可能仍然能满足所有约束。满足所有约束的精确拟合不一定能够得到(但是有可能得到,例如一次多项式拟合中的三点共线)。通常,我们需要使用一些方法来评价拟合的好坏。最小平方法就是用来评价偏离的一种常用的方法。
虽然提高多项式的次数可能可以获得精确拟合,但有时我们仍会采用近似拟合,其原因有下:
*存在精确的拟合并也不意味着能很容易地得到这个拟合。根据使用的算法不同,可能遇到发散的情形,要么无法得到精确拟合,要么需要太长的计算时间才能获得精确拟合。不管哪种情况,最终都会以得到近似拟合而结束。
*通常人們會希望得到一个近似的拟合以抹平数据点的随机波动,而不是为了“精确”拟合数据而扭曲拟合曲线。
*龙格现象:高次多项式往往有高度波动的特性。如果通过两点A和B作一条曲线,可以期望该曲线也大概会通过AB中点附近的某处。但是对于高次多项式,情况就不是如此了,高次多项式曲线往往可能有绝对值很大的幅值。对于低次多项式,曲线波动不大,因此能通过中点附近(对于一次多项式,能保证肯定通过中点)。
將其他函數擬合至數據點
其他類型的曲線在特定條件下也可使用,諸如三角函数(如正弦或餘弦函數)。
在光譜學中,數據可以使用高斯、柯西、福格特等相關函數來擬合。
在生物學、生態學、人口學、傳染病學等學科中,生物個體數增長、傳染病擴散等數據可以用逻辑斯谛函数(一种S型函數)來擬合。
在農業中,倒S型函數被用於描述作物產量和生長因子之間的關係。右方藍色的圖表是將農田中的測量數據進行S形回歸得出的。可以看出作物產量在土壤鹽度增加時先緩慢降低,之後降得更快,最終又趨於緩和。
代數擬合與幾何擬合
在数据的代数分析中,“拟合”通常意味着试图找到使点的垂直(y轴)方向偏移最小的曲线(例如普通最小二乘法)。然而,对于图形和图像应用,几何拟合可以提供最佳的视觉拟合;它通常试图使到曲线的正交距离最少(例如),或以其他方式将点和曲线之间两个轴的方向上的偏移都考虑在内。由于往往需要非线性和/或迭代运算,尽管几何拟合的结果有更美观和几何上更准确的优势,但实际上较少使用。
將平面曲線擬合至數據點
软件
很多,例如R语言,以及,例如gnuplot、GNU科学库、、Maple、MATLAB、TK Solver 6.0、Scilab、Mathematica、GNU Octave和SciPy,都可以用命令行进行不同情景下的曲线拟合。
参见
- 测量平差
*
- 估计理论
*
- 拟合优度
- 遗传编程
- 莱文伯格-马夸特方法
*
*
- 非线性回归
- 過適
- 平面曲线
*
*
- 平滑
- 样条函数(样条插值、)
- 時間序列
*
*
参考文献
外部連結
*[https://web.archive.org/web/20060507151227/http://www.ebicom.net/~dhyams/cftp.htm Curve Expert (shareware)] fits functions to data (limited to one dependant and one independent variable.)
*[https://web.archive.org/web/20190923083507/http://zunzun.com/ Zunzun.com] Online curve and surface fitting
*[http://www.systat.com TableCurve2D and TableCurve3D by Systat] automates curve fitting
*[http://www.softintegration.com/chhtml/lang/lib/libch/numeric/CGI_Curvefit.html another choice]
*[http://curvefit.com/ online curve-fitting textbook]
*[https://web.archive.org/web/20060325083538/http://www.savetman.com/curvefit/index.html Interactive curve fitting using Least Squares with Weights on savetman.com]
评论 (0)