曲线拟合 技术专题简介

简介

用迭代过程、非对称峰值模型来拟合有噪声的曲线(高斯牛顿法(英语:Gauss–Newton algorithm),阻尼因数α)。上:原始数据和模型下:归一化误差平方和的演变曲线拟合(英语:curve fitting),简称拟合,俗称拉曲线,是一种构建一个函数曲线,使之最佳地吻合现有数据点(英语:data points)的过程,该过程可能附加若干条件限制。通俗地说,科学和工程问题通过诸如采样、实验等方法获得了若干离散的数据点。根据这些数据,我们往往希望得到一个连续的函数(也就是曲线)或者更加密集的离散方程与已知数据相吻合,该过程就叫做“拟合”,而得到的曲线方程就称为“拟合函数”。曲线拟合又译为:曲线配适、曲线贴合、曲线适插法,均有助理解其选择曲线方程(解析函数)来“模拟吻合”观测数据的过程。曲线拟合中可以使用插值(需要精确吻合某数据时)或平滑(构造一个平滑的函数曲线,近似符合数据点)。回归分析是与拟合密切相关的一个话题,它更关注的是统计推断,例如一条拟合到有随机误差的一组观测数据的曲线有多大的不确定性。拟合曲线可以用作数据视觉化的一种辅助手段,以表示数据缺失的函数区间的取值,也可概括两个或多个变量之间的关系。外推(extrapolation)指的是使用曲线来拟合观察数据取值范围以外的取值,往往因采取的构建函数的方式不同而有较大的不确定性

将函数拟合至数据点

最常见的是拟合成函数 .mw-parser-output .serif{font-family:Times,serif}y=f(x) 的形式。

用各种多项式来拟合数据点,黑色点为用正弦函数生成的“原始”数据。红线为一次多项式,绿线为二次,橙线为三次,蓝线为四次。

将直线或多项式曲线拟合至数据点

主条目:多项式回归更多信息:多项式插值

一次多项式方程 y = a x + b {displaystyle y=ax+b;} 在笛卡尔平面上是一条直线,而这条直线的斜率是

a。因为任何两点可以决定一条直线,因此总能找到次数不多于1的多项式来串起任何两个

x值相异的点。

如果把多次式的次数增加到2:

y = a x 2 + b x + c {displaystyle y=ax^{2}+bx+c;}

那么只要给定

x值各异的3点,总会有次数不多于2的多项式可以把它们串起。

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

y = a x 3 + b x 2 + c x + d {displaystyle y=ax^{3}+bx^{2}+cx+d;}

那么只要给定

x值各异的4点,总会有次数不多于3的多项式可以把它们串起。

更准确而言,这条多项式能够符合任何4个限制。限制可以是一点

(x, y)、角度或曲率(即密切圆(英语:osculating circle)半径的倒数

1/R)。角度和曲率的限制通常用在曲线的终端,此时称为终端条件 。两条不同多项式拟合曲线的变换处通常会用到相同的终端条件,以确保样条(spline)平滑交接。也可以增加如曲率变化率等高阶约束。例如,在高速公路立体交叉点苜蓿叶型的设计中,可以理解为汽车沿着苜蓿叶立交运动时作用在汽车上的力的变化率(加加速度),并依此设定合理的限速。

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

在有超过

n+1个约束(

n是多项式的阶次)的情况下,多项式拟合可能仍然能满足所有约束。满足所有约束的精确拟合不一定能够得到(但是有可能得到,例如一次多项式拟合中的三点共线)。通常,我们需要使用一些方法来评价拟合的好坏。最小二乘法就是用来评价偏离的一种常用的方法。

虽然提高多项式的次数可能可以获得精确拟合,但有时我们仍会采用近似拟合,其原因有下:

存在精确的拟合并也不意味着能很容易地得到这个拟合。根据使用的算法不同,可能遇到发散的情形,要么无法得到精确拟合,要么需要太长的计算时间才能获得精确拟合。不管哪种情况,最终都会以得到近似拟合而结束。

通常人们会希望得到一个近似的拟合以抹平数据点的随机波动,而不是为了“精确”拟合数据而扭曲拟合曲线。

龙格现象:高次多项式往往有高度波动的特性。如果通过两点A和B作一条曲线,可以期望该曲线也大概会通过AB中点附近的某处。但是对于高次多项式,情况就不是如此了,高次多项式曲线往往可能有绝对值很大的幅值。对于低次多项式,曲线波动不大,因此能通过中点附近(对于一次多项式,能保证肯定通过中点)。

将其他函数拟合至数据点

小麦产量和土壤盐度之间的关系

其他类型的曲线在特定条件下也可使用,诸如三角函数(如正弦或余弦函数)。

在光谱学中,数据可以使用高斯、柯西、福格特等相关函数来拟合。

在生物学、生态学、人口学、传染病学等学科中,生物个体数增长、传染病扩散等数据可以用逻辑斯谛函数(一种S型函数)来拟合。

在农业中,倒S型函数被用于描述作物产量和生长因子之间的关系。右方蓝色的图表是将农田中的测量数据进行S形回归得出的。可以看出作物产量在土壤盐度增加时先缓慢降低,之后降得更快,最终又趋于缓和。

代数拟合与几何拟合

在数据的代数分析中,“拟合”通常意味着试图找到使点的垂直(y轴)方向偏移最小的曲线(例如普通最小二乘法)。然而,对于图形和图像应用,几何拟合可以提供最佳的视觉拟合;它通常试图使到曲线的正交距离最少(例如整体最小二乘法(英语:total least squares)),或以其他方式将点和曲线之间两个轴的方向上的偏移都考虑在内。由于往往需要非线性和/或迭代运算,尽管几何拟合的结果有更美观和几何上更准确的优势,但实际上较少使用。

将平面曲线拟合至数据点

软件

很多统计软件包(英语:List of statistical packages),例如R语言,以及数值分析软件(英语:List of numerical-analysis software),例如gnuplot、GNU科学库、MLAB(英语:MLAB)、Maple、MATLAB、TK Solver 6.0、Scilab、Mathematica、GNU Octave和SciPy,都可以用命令行进行不同情景下的曲线拟合。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平