第十三章 数据拟合与函数逼近数据拟合与函数逼近涉及到许多内容与方法,从不同角度出发,也有多种叫法。
这一章,我们主要通地线性拟合而引出最小乘法这一根本方法。
13.1 数据拟合概念与直线拟合插值法是一种用简单函数近似代替较复杂函数的方法,它的近似标准是在插值点处的误差为零。
但有时,我们不要求具体某些点的误差为零,而是要求考虑整体的误差限制。
对了达到这一目的,就需要引入拟合的方法,所以数据拟合与插值相比:数据拟合--不要求近似 函数过所有的数据点,而要求它反映原函数整体的变化趋势。
插值法--在节点处取函数值。
实际给出的数据,总有观测误差的,而所求的插值函数要通过所有的节点,这样就会保留全部观测误差的影响,如果不是要求近似函数过所有的数据点,而是要求它反映原函数整的变化趋势,那么就可以用数据拟合的方法得到更简单活用的近似函数。
13.1.1 直线拟合由给定的一组测定的离散数据(,)i i x y (1,2,,i N = ),求自变量x 和因变量y 的近似表达式()y x ϕ=的方法。
影响因变量y 只有一个自变量x 的数据拟合方法就是直线拟合。
直线拟合最常用的近似标准是最小二乘原理,它也是流行的数据处理方法之一。
直线拟合步骤如下:(1) 做出给定数据的散点图(近似一条直线)。
(2) 设拟合函数为:i bx a y +=*(13.1.1)然后,这里得到的*i y 和i y 可能不相同,记它们的差为:i i i i i bx a y y y --=-=*δ (13.1.2)称之为误差。
在原始数据给定以后,误差只依赖于b a ,的选取,因此,可以把误差的大小作为衡量b a ,的选取是否优良的主要标志。
最小二乘法便是确定“最佳” 参数的方法,也就是要误差的平方和达到最小。
(3) 写出误差和表达式:),()(1212b a bx a yQ Ni i iNi iϕδ=--==∑∑== (13.1.3)要选择b a ,而使得函数),(b a ϕ最小,可以用数学分析中求极值的方法,即先分别对b a ,求偏导,再使偏导等于零。
就可得到所谓的正规方程组。
(4) 正规方程组:∑==---=∂∂Ni i i bx a y a 10)(2ϕ(13.1.4)∑==---=∂∂Ni i i i x bx a y b1)(2ϕ (13.1.5)(5) 求解正规方程组,得b a ,。
(6) 确定i bx a y +=*的具体表达式。
13.2 最小二乘原理应用上面我们简单地提到最小二乘法的原理就是使误差的平方各达到最小。
下面由线性无关的定义来给出最小二乘法的一般叙述。
若在区间[,]a b 上,对于n 个函数011(),(),,()n x x x ϕϕϕ-001111()()()0n n c x c x c x ϕϕϕ--+++≡(13.2.1)成立的充要条件是0110n c c c -==== ,则称这n 个函数011(),(),,()n x x x ϕϕϕ- 在[,]a b 上线性无关。
否则,若存在不全为零的021,,,n c c c - 使该式成立,则称011(),(),,()n x x x ϕϕϕ- 在[,]a b 线性相关。
设011(),(),,()n x x x ϕϕϕ- 是定义在[,]a b 上的n 个线性无关的连续函数,函数()f x 是在[,]a b 上的n 个节点12n a x x x b =<<<= 上给定的离散函数。
最小二乘法实质是用011(),(),,()n x x x ϕϕϕ- 的线性组合:001111()()()()n n Q x c x c x c x ϕϕϕ--=+++ (13.2.2)逼近()f x ,使()f x 和()Q x 在各节点上的差的加权平方和2110()()ωϕ-==⎛⎫- ⎪⎝⎭∑∑mn i i k k i i k f x c x (13.2.3) 在由011(),(),,()n x x x ϕϕϕ- 的一切线性组合所组成的函数类中最小。
其中权数0i ω>的不同,是由于所测得的数据不一定等精度造成的。
下面的讨论设1i ω=(1i m ≤≤)。
13.2.1 多变量拟合影响变量y 的因素是多个,设为12,,,k x x x ,由给定的离散数据确定近似函数:*011k ky c c x c x =+++ (13.2.4)在1011()n n Q x c c x c x --=+++ 中,记i i x x =(1,2,,1i n =- ),则该式化为多变量拟合*01111n n y c c x c x --=+++(13.2.5)可见,多变量拟合是可以互相转化的。
最小二乘原理原理就要确定近似函数(13.2.4)中的系数,使得其误差平方和达到最小。
误差平方和为:201011221(,,,)()Kk i i i k ki i c c c y c c x c x c x ϕ==-----∑ (13.2.6)与直线拟合类似,上式两边分别对各系数求偏导,然后令其为零,便得到正规方程组:011221011221110112212()02()02()0K i i i k ki i Ki i i k ki i i Ki i i k ki ki i ky c c x c x c x c y c c x c x c x x c y c c x c x c x x cϕϕϕ===∂⎧=------=⎪∂⎪∂⎪=------=⎪∂⎨⎪⎪∂⎪=------=⎪∂⎩∑∑∑ (13.2.7)因K k >,且12,,,k x x x 线性无关,故方程组总有惟一解。
通过求解方程组(13.2.7)可以得到系数,然后将得的系数01,,,k c c c 代入(13.2.4), 即,*011k ky c c x c x =+++ ,便得到了多变量线性拟后函数。
13.2.2 非线性曲线拟合除了线性曲线外,我们也常常会遇非线性曲线,对于某些非线性问题,可以转化为线性问题,然后便可利用前面的方法来求解。
下面讨论常出现的两类非线性方程。
(1) 对于如下形式的指数方程:1c xo y c e= (13.2.8)上式两边取对数,得:01ln ln y c c x =+(13.2.9)令:ln z y =,0ln s c =,则上式实际上有线性形式:1z s c x =+ (13.2.10)其误差平方和为:2111(,)[()]Ki i i s c z s c x ϕ==-+∑ (13.2.11)求得正规方程组为:1111()0()0Ki i i Ki i ii z s c x z s c x x ==⎧--=⎪⎪⎨⎪--=⎪⎩∑∑ (13.2.12)由上述方程给,便可解出s ,1c ,再由0s c e =求出拟合函数:1*c x o y c e =。
(2) 对于如下形式的双曲线:0111c c yx =+ (13.2.13)令:1z y =,1t x=,得:01z c c t=+ (13.2.14)上式的误差平方和:201011(,)[()]K i i i c c z c c t ϕ==-+∑ (13.2.15) 求得正规方程组为:011011(()0(()0Ki i i Ki i ii z c c t z c c t t ==⎧-+=⎪⎪⎨⎪-+=⎪⎩∑∑ (13.2.16)解上述方程给,可解出0c ,1c ,得拟合函数*0111y c c x=+。
13.2.3 超定方程组的最小二乘解对于给定方程组:A X Y = (13.2.17)其中:111212122212n nm m m n a a a a a a A a a a ⎛⎫⎪ ⎪=⎪⎪ ⎪⎝⎭,12n x xX x ⎛⎫⎪ ⎪= ⎪ ⎪ ⎪⎝⎭,12ny yY y ⎛⎫ ⎪ ⎪= ⎪ ⎪ ⎪⎝⎭若m n >,其中m 为方程的个数,n 为未知数的个数,则方程组不一定有解,这时称方程组为超定方程组。
要寻求方程组(13.2.17)的解,即要寻求nXR∈,使得:21211(,,,)[()]mnn i ij j i j x x x y a x ϕ===-∑∑ (13.2.18)最小。
如果方程组(13.2.17)有解,则此解也是方程组的最小二乘解。
转化形式:TTA AX A Y = (13.2.19)求解方程组(13.2.17)。
13.2.4 用正交函数作最小二乘拟合在前面的讨论中,多项式拟合总是化为多变量拟合来计算。
现在介绍一种特殊的运用正交多项式的拟合数据的方法。
如果多项式族{}0()k k P x ∞=满足下面条件:121()()0,(())0,,0,1,,K i j i k i i K i j i i P x P x j k P x j k m ωω==⎧=≠∑⎪⎨⎪>=∑⎩ (13.2.20)则称其为对某组i x 值和与之对应的权数i ω值的正交多项式族。
设拟合函数为:*()mi i i y c P x ==∑ (13.2.21)如果{}0()k k P x ∞=为正交多项式族,则正规方程组:12(())()0Kmi i i i j i i y c P x P x ω==-=∑∑,(0,1,,j m = ) (13.2.22)有解:121()(())Ki j j i i j Ki j i i y P x c P x ωω==∑=∑,(0,1,,j m = )(13.2.23) 由此,就可写出拟合函数*y 的表达式。
如果一个多项式族{}0()k k P x ∞=满足:()()()0b i j ax P x P x dx ω=⎰,(, ,0,1,i i j ≠=) (13.2.24)则称{}0()k k P x ∞=为在区间[,]a b 上关于权函数()x ω的正交多项式系。
若{}0()k k P x ∞=还满足:2()()0b i ax P x dx ω=⎰,(0,1,i = ) (13.2.25)则称{}0()k k P x ∞=为在区间[,]a b 上关于权函数()x ω的规格化正交多项式系。
区间[,]a b 上关于非负权函数()x ω的正交多项式系总存在。
若给定区间是[0,1],对权函数()1x ω=的一种正交多项式为:0()(1)mkkkkm m k m i P x C C x+==-∑,(0,1,m = )(13.2.26) 若给定点区间是[0,]n ,且给定数据中的节点i x (0,1,,i n = )等距,其中00x =,n x n =,步长为1,令权函数()1i x ω=,则有正交多项式:,0(1)(1)(1)(1)()(1)mkkkm n m k mk x x x k n n n k P x C C +=--+--+=-∑ , (0,1,m = ) (13.2.27)其中m 表示,m n P 的次数,n 表示给定的节点个数。