数据拟合文献综述
一、前言部分
本文首先指明了数据拟合的研究背景和意义,以及关于数据拟合问题所做的相关工作和当前的研究现状。二次拟合曲线由于有着良好的几何特性、较低的次数及灵活的控制参数,成为基本的体素模型之一,在计算机图形学和计算机辅助几何设计等领域中起着重要的作用。
解决数据拟合问题的基本思想是最小二乘法,本文中给出了最小二乘法的基本思想。分析解决数据拟合问题所采用的算法,并对典型性的算法进行了较为详细的求解。
关键词数据拟合;最小二乘法;多项式拟合;
二、主题部分
2.1 国内外研究动态,背景及意义
数学分有很多学科,而它主要的学科大致产生于商业计算的需要、了解数字间的关系、测量土地及预测天文事件。而在科技飞速发展的今天数学也早已成为众多研究的基础学科。尤其是在这个信息量巨大的时代,实际问题中国得到的中离散数据的处理也成为数学研究和应用领域中的重要的课题。
比如科学实验中,我们经常要从一组试验数据(,)
i i
x y,i = 0,1,...,n中来寻找自变量x和因变量y之间的函数关系,通常可以用一个近似函数y = f (x)表示。而函数y = f (x)的产生方法会因为观测数据和具体要求不同而不同,通常我们可以采用数据拟合和函数插值两种方法来实现。
数据拟合主要考虑到了观测数据会受到随机观测误差的影响,需要寻求整体误差最小、能够较好的反映出观测数据的近似函数y = f (x),这时并不要求得
到的近似函数y = f (x)必须满足y
i = ()
i
f x,i = 0,1,…,n。
函数插值则要求近似函数y = f (x)在每一个观测点
i
x处一定要满足y i=
()
i
f x,i = 0,1,…,n。在这种情况下,通常要求观测数据相对比较准确,即不考虑观测误差的影响。
所以,可以通过比如采样、实验等方法而得到若干的离散的数据,根据这些离散的数据,我们往往希望能得到一个连续函数(也就是曲线)或者更加密集的离散方程与已知数据相吻合。这个过程叫做拟合。也就是说,如果数据不能满足某一个特定的函数的时候,而要求我们所要求的逼近函数“最优的” 靠近那些数据点,按照误差最小的原则为最优标准来构造出函数。我们称这个函数为拟合函数。
2.1.1 国内外研究现状
在通过对国内外有关的学术刊物、国际国内有关学术会议和网站的论文进行参阅。数据拟合的研究和应用主要是面对各种工程问题,有着系统的研究和很大的发展。通过研究发展使得数据拟合有着一定的理论研究基础。尤其是关于数据
拟合基本的方法最小二乘法的研究有着各种研究成果。
但是,由于现实问题的复杂性,数据拟合还拥有很好的研究空间,还有很多能够优化和创新的问题需要去研究和探索。各种算法的改进和应用以及如何得到合适的模型一直是一个比较热门的研究领域。
例如,国内外文献里提出了很多基于形状的描述方法,比如傅氏描述子法、多边形法、累积角法等, 其中以二次曲线和超二次曲线来拟合物体的边界形状并进行物体的描述已获得广泛应用。现在,我们应用高次隐式多项式曲线来作为物体的几何模型受到广泛的重视。
2.1.2 研究的意义
归纳总结数据拟合理论在实际中的应用,发掘各个数据拟合算法的在实际应用中的应用范围适用性。通过对本项目的研究和分析,使得实际中的工程问题根据不同的需求使用最合适的拟合算法,从而提高拟合的精确度。
研究和发展数据拟合理论,发掘各种数据拟合的优化方案。
根据离散的数据,我们想要得到连续的函数或更加密集的离散方程与已知数据相吻合。如何选择数学模型,如何减小误差,如何使得逼近函数图像最靠近那些数据点,使得优化拟合算法变得十分重要。
2.2 研究主要成果
最小二乘法为数据拟合的最基本也是应用最广泛的方法,最小二乘法有了很大的发展。在实际应用和实验中,我们经常采用实验的方法寻找变量间的相互关系。但是,当观测到的数据较多时,一般情况下使用插值多项式来求近似函数是不现实的。根据多元函数线性回归理论,使用曲线拟合最小二乘法来寻求变量之间的函数关系能够很好的解决这个问题。而且我们对它在实际应用中产生各方面的需求有着各种研究。例如:基于于均差最小二乘拟合方程形式的研究、数据拟合函数的最小二乘积分法、非线性最小二乘法等各种方法已经在工程中得到了应用。
所谓数据拟合的最小二乘法是一种数学优化的技术,它通过最小化误差的平方和寻找数据的最佳函数匹配,并使得这些求得的数据与实际数据之间误差(残差)的平方和为最小。为了使问题的提法更具有一般性,通常把最小二乘法中的误差(残差)平方和都考虑为加权平方和。最后为了使误差的加权平方和最小,会转化为求多元函数的极小点的问题。其有关概念与方法可以推广到多元函数拟合之中。
最小二乘法在运筹学、统计学、逼近论和控制论中,是很重要的求解方法。例如,它在统计学之中是估计回归参数最基本的方法。
在实际问题中,如何由测量的离散数据设计和确定最优的拟合曲线?其关键
在于选择适当类型的拟合曲线,一些时候根据专业的知识和我们的经验就可以确定拟合曲线类型;但是当我们在对拟合曲线一无所知的情况下,可以先绘制离散数据的粗略图形,也许能够从中观测出拟合曲线的类型;或者对数据进行多种可能较好的曲线类型的拟合,并且计算出它们的均方误差,利用数学实验的方法找出最小二乘法意义下误差最小的拟合函数。
在离散数据的最小二乘法中,最简单、最常用的数学模型是多项式拟合。 另外,近年来对高次隐式多项式曲线来作为物体的几何模型也受到广泛的重视,用隐式多项式曲线来描述数据点集合的轮廓也有了初步的比较系统的研究。
随着数据拟合的广泛应用出现了许多可以进行拟合的应用软件。OriginPro ,Matlab ,SAS ,SPSS ,DataFit ,GraphPad ,TableCurve2D ,TableCurve3D ,Mathematica 等其功能都十分优秀。他们还具有自动选择数学模型的功能。
2.3 最小二乘曲线拟合
对于已知的m +1的离散数据m i i i y x 0},{=和权数m
i i 0}{=ω,记
i m
i i m
i x b x a ≤≤≤≤==00max ,min
在连续函数空间C [a ,b ]中选定n +1个线性无关的基函数m k k x 0)}({=?,并记由它们生成的子空间)}(),(),({10x x x span n ??? =Φ。如果存在
*
**
0()()n
k
k x a x ??==∈Φ∑ (2-1)
使得
*
2
2
()0
[()]min
[()]
n
n
i
i
i
i
x i i y x y x ?ω?
ωφ∈Φ
==-=-∑∑ (2-2)
则称)(*x ?为离散数据m i i i y x 0},{=在子空间Φ中带权m
i i 0}{=ω的最小二乘拟合。
函数)(x ?在离散点处的值为
()(),0,1,
,n
i j j j x a x i m ??===∑ (2-3)
因此,(2-2)右边的和式是参数n a a a ,,10的函数,记作
20
10])([),,(∑∑==-=m i n
j i j j i i n x a y a a a I ?ω (2-4)
这样,求极小值问题(2-2)的解)(*x ?,就是求多元二次函数),,,(*
*1*0
n a a a 的极小点),,(10n a a a I 使得
01**
*
0101,,(,,
)min
(,,)n n n a a a R
I a a a I a a a ∈=
(2-5)
由求多元函数极值的必要条件
00
2[()]()0,0,1,,m n
i i j j i k i i j k I
y a x x k n a ω??==?=--==?∑∑ (2-6)
若记
0(,)()()()m
j k i j i k i i x x x ??ω??==∑ (2-7)
n k d x x f x f k i k i m
i i k ,,1,0,)()()(),(0
=≡=∑=?ω? (2-8)
上式可改写为
),...,1,0(;),(n k d a k j n
o
j j k
==∑=??
(2-9)
这个方程称为法方程,可写成矩阵形式
d Ga = (2-10)
其中
0101(,,...,),(,,...,)T T n n a a a a d d d d == (2-11)
????
??
??????=),(),(),()(),(),(),(),(),(10
1110
101000n n n n n n G ?????????????????? (2-12) 由于)(),(),(10x x x n ??? 线性无关,故|G |≠0,方程(2-9)存在唯一的解
*
,0,1,
,k k a a k n == (2-13)
从而得到函数f (x )的最小二乘解为
*
*0()()n
k k k S x a x ?==∈Φ∑ (2-14) 可以证明,这样得到的*()S x ,对于任何)(x S ,都有
()()()()*
2
2*
[()][()]n
n
i i i
i
i i i i f
x f x x S x x S x ωω==-≤-∑∑ (2-15)
故)(*x S 是所求的最小二乘解。记)(*x y ?δ-=,显然,平方误差2
2δ或均方误差2δ越小,拟合的效果越好。
2.3.1 多项式拟合
前面讨论了子空间Φ中的最小二乘拟合。这是一种线性的拟合模型。在离散数据最小二乘拟合中,最简单、最常用的数学模型是多项式。
为了确定数据拟合问题,我们选用2{1,,,}n x x x 作为函数类,有
2012()n n x a a x a x a x ?=++++ (1)n m +< (2-16) 这就是多项式拟合函数。
为了确定拟合函数2012()n n x a a x a x a x ?=++++的系数,需要求解正规方
程组
01111
21
011111
12011
111m m m
n
k k n k
k k k m m m m
n k k k n k k
k k k k m m m m
n n n n k k k n k k
k k k k ma x a x a y x a x a x a x y x a x a x a x y ===+====+====?+++=??
?+++=????
?+++=??∑∑∑∑∑∑∑∑∑∑∑ (2-17) 也可以用矩阵形式表示为 1
1
102111
111121
111m
m
m n
k k
k k k k m m
m m
n k k
k k k k k k k n m m
m
m n
n n n k k
k k k k k k k m
x x y a x x x x y a a x x x x y ===+====+====?
???
? ?
? ??? ? ? ? ? ? ?= ? ?
? ? ? ? ? ??? ? ? ? ?
????
∑∑∑∑∑∑∑∑∑∑∑ (2-18)
解得01,,
,n a a a 即可,将其代入(2-16)即可得到拟合多项式。
2.3.2正交多项式作最小二乘拟合的原理
用一般的最小二乘法拟合时其法方程的系数矩阵G 是病态的,但如果用正交
多项式拟合可以不通过求法方程来确定*
.(0,1,2)k a k =,显然拟合的效果较好。
即如果)(),(),(10x x x n ??? 是关于点集
{}()
m i x i ,,1,0 =的带权
()()m i x i ,,1,0 =ω正交的函数族,有
00,(,)()()(),m
j k i j i k i k
i j k
x x x j k A ??ω??=≠?==?=?∑ (2-19)
则方程组(2-9)的解为
()*
20
()()()
(,),k 0,1,...,n (,)
()()
m
i
i
i
k
k i k
m
k k i
i k
i f x x x f a x x ω????ω?
=====∑∑ (2-20)
且平方误差为
22
2
*2
2
()n
k k k f
a A δ
==-∑ (2-21) 根据已知的节点01,,
m x x x 及权函数0)(>x ω先构造带权)(x ω正交的多项式
{()},n p x n m ≤。用递推的公式表示()k p x :
01101
11()1
()()()
()()()(),(1,2,
1)
k k k k k p x p x x p x p x x p x p x k n ααβ++-=??
=-??=--=-? (2-22)
这里()k p x 是首项系数为1的k 次多项式。根据()k p x 的正交性得:
20120
2021110()()((),())(,)
((),())(,)()()()()(,),(1,2,1)(,)()()m
i i k i i k k k k k m
k k
k k i k i
i m
i k i i k k k m
k k i k i i x x p x xp x p x xp p p x p x p p x p x x p x p p k n p p x p x ωαωωβω=+==---=?
??===??????===-????
∑∑∑∑ (2-23) 用正交多项式{()}k p x 的线性组合作最小二次拟合,只要在逐步求()k p x 的同时,相应计算出系数
20
()()()
(,)
,(0,1,2)(,)
()()
m
i
i
k
i
k i k m
k k i
k
i i x f x p x f p a k n p p x p
x ωω====
=∑∑ (2-24)
并逐步把*
()k
k a p x 累加到()F x 中去,最后即可得所求拟合曲线 **
*
0011()()()()n n y F x a p x a p x a p x ==++
+ (2-25)
这里的n 可以是事先给定的或根据误差确定。
使用这种方法编程序不用解方程组,只用递推公式,并且当逼近次数增加一次时,只要把程序中循环数加1,其余不用改变。这是目前用多项式做曲线拟合的最好计算方法,有通用的语言程序供用户使用。
2.3.3 非线性最小二乘拟合
在最小二乘法曲线拟合时,通常会遇到很多的非线性函数,这些非线性函数大多数可以通过数学变换进行线性化。例如用指数函数bx y ae =来拟合,首先两边取自然对数,得ln ln y a bx =+,可以令**ln ,ln ,y a y a ==得到**y a bx =+。先做出ln y 的一次线性拟合,然后再计算出原始模型的参数。
下面给出常见函数的线性化方法和函数图形:
幂函数:b y ax =
令lg ,lg Y y X x ==,则lg Y a bX =+ 指数函数:bx y ae =
可令ln ,Y y X x ==,则ln Y a bX =+ 对数函数:lg y a b x =+
令,lg Y y X x ==,则Y a bX =+ 负指数函数:b x
y ae =
令1
ln ,Y y X x
==
,则ln Y a bX =+