三次样条插值法与最小二值法的
及比较
数值计算方法期末论文
————同等要求下三次样条插值法与最小二值
法的分析及比较。
引 言
在实际中,常常要处理由实验或测量所得到的一批离散数据.插值与拟合方法就是要通过这些数据去确定某一类已知函数的参数或寻找某个近似函数,使所得到的近似函数与已知数据有较高的拟合程度.如果要求这个近似函数(曲线或曲面)经过已知的所有数据点,则称此类问
为插值问题。
当所给的数据较多时,用插值方法所得到的插值函数会很复杂,所以,通常插值方法用于数据较少的情况.但数据一般都是由观测或试验得到的,往往会带有一定的随机误差,因而,要求近似函数通过所有的数据点也是不必要的.如果不要求近似函数通过所有数据点,而是要求它能较好地反应数据的整体变化趋势,则解决这类问题的方法称为数据拟合.
插值和拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同的。而面对一个实际问题,究竟应该用插值还是拟合,有时容易确定,有时则并不明显。
本文由具体题目为基础,主要论述了在同等要求下三次样条插值法与最小二值法的分析及比较。
关键词:数值计算方法、三次样条插值法、最小二值法
, - -
目 录
引言--------------------------------------------------- 2
第一章 三次样条插值------------------------------------ 4
1.1三次样条插值函数--------------------------------- 4
1.2 分段线性插值------------------------------------ 5
1.3插值理论----------------------------------------- 6 第二章 最小二
--------------------------------------- 7
2.1 线性最小二乘拟合法------------------------------ 7
2.2 一般线性最小二乘拟合法--------------------------- 8
2.3非线性最小二乘拟合法------------------------------ 9
第三章 算法对比与实现------------------------------------ 10
3.1对比实例一---------------------------------------- 10
3.2对比实例二---------------------------------------- 11
3.3结果及分析---------------------------------------- 15
第四章 总结---------------------------------------------- 16
, - -
第一章 三次样条插值 1.1三次样条插值函数:
2xx,c若函数S(x)?[a,b],且在每个小区间[]上是三次多项式,其jj,1
,xxx,,xxx,,...,,b中…是给定节点,则称S(x)是节点上的a,n0101n
xy,,fxjn()(0,1,...,),三次样条函数。若在节点上给定函数值并成立jjj
sxyjn()(0,1,...,),,,则称S(x)为三次样条插值函数。 jj
三次样条插值的计算方法:
''Sx()Sx()? 因为在每个小区间上是三次多项式,所以在每个小ii
区间上是直线,可以写出它的
达式
xxxx,,''ii,1(), Sxmm,,iii,1
xxxx,,iiii,,11
mm,其中是待定参数。 ii,1
? 把它积分两次,得到
33()()xxxx,,ii,1Sxmmcxd(),,,,, iii,166hhii
hxx,,这里的c和d是积分常数,。 iii,1
Sxy(),Sxy(),利用和可以确定c,d,于是有 iiiiii,,11
33()()xxxx,,ii,1Sxmm(),,iii,166hhii 22mhxxmhxx,,iiiiii,,11,,,,()(),yyii,166hhii将其求导数得到
, - -
22()()xxxx,,ii,'1Sxmm(),,,iii,122hhii yymm,,iiii,,11,,h.ih6i
Sx()至此,我们把以及它的一、二阶导函数都用两个参数表示出来。 i
''SxSxin()(),0,1,...2,,,,?我们令得到一个关于iiii,,,111
mmm,,...,的线性方程组 01n
,,mmmdin,,,,,2,1,2,...,1, (1.1) iiiii,,11
yyyy,,iiii,,11,
hhh,,,,1,6.iii,,11其中, ,,,,diiii
hhhh,,iiii,,11
n,1n,1该方程有个未知数,个方程。针对不同的边界条件可以有相应
mm,,,,,.的附加方程,最常用到的是解出(1.1)及其附加方程得到0n
mSx()再代进的表达式,就得到了全部解。 ii
1.2分段线性插值:
所谓分段线性插值就是通过插值点用折线段连接起来逼近.设已知节f(x)
h,x,x,h,maxh,f,f,?,f,a,x,x,?,x,b点上的函数值记求kk,1kk01n01nk
I(x)一折线函数满足: h
01I(x) ,[a,b],h
0I(x),f2 (), k,0,1,?,nkkk
0I(x)x,x3在每个小区间[]上是线性函数。 hkk,1
I(x)则称为分段线性插值函数。 h
, - -
1.3插值理论:
设函数y=f(x)在区间[a,b]上连续,在[a,b]上有互异点x,x,…,x处取值01ny,y,…,y。如果函数φ(x)在点x上满足φ(x)=y (i=0,1,2,…,n),则称φ01n iii
(x)是函数y=f(x)的插值函数,x,x,…,x是插值节点。若此时φ(x)是代数多01n
项式P(x),则称P(x)为插值多项式。显然 f(x)?φ(x),x?[a,b]。
, - -
第二章 最小二乘法
在实际生活中,往往需要从一组实验数据(x,y)中寻找出变量x,y之间的ii
函数关系.由于观测数据不可避免出现误差,因此并不需要y=f(x)一定要经过所有的点,而只要求在给定点x上误差Δi=f(x)-y按某种
达到最小.通常用iii
2欧式范数?Δ?作为误差量度的标准.这就是所谓的最小二乘拟合法.最小二乘拟合法可以分为线性最小二乘拟合法和非线性最小二乘拟合法。
2.1 线性最小二乘拟合法
mm 设是一个线性无关的函数系,则称线性组合{()},x,,()()xax,,,0kkkk,0k
mm
为广义多项式.如三角多项式:. ,()cossinxakxbkx,,,,kk,,00kk
设由给定的一组测量数据和一组正数,求一个广义多(,)xywin(1,2,,),?iii
m
项式使得目标函数 ,,()()xax,,kk,0k
n2 (3.1) Swxy,,[()],,iii,1i
达到最小,则称函数为数据(,)(1,2,,)xyin,?关于权函数,()xii
awin(1,2,,),?的最小二乘拟合函数,由于关于待定系数是线性的,故此,()xii
问题又称为线性最小二乘问题.
要使最小二乘问题的目标函数(3.1)达到最小,则由多元函数取得极值的必
,S要条件得0(0,1,2,,) ,,km?,ak
nm
即 waxyxkm[()]()0(0,1,2,,),,,,,?,,ikkiiki,,10ik
mnn
[()()]()wxxawyx,,,,亦即 (0,1,2,,)km,?是未知量为,,,ijikijiiki,,,010jii
aaa,,,?的线性方程组,称之为正规方程组。 01m
, - -
m实际中可适当选择函数系,由正规方程组解出,于是可aaa,,,?{()},x01m,0kk
m
得最小二乘拟合函数。 ,,()()xax,,kk,0k
2.2 一般线性最小二乘拟合法 将上面一元函数的最小二乘拟合问题推广到多元函数,即为多维线性最小二
乘拟合问题.
假设已知多元函数的一组测量数据 (,,,)xxxy?yfxxx,(,,,)?12;iinii12n
N和一组线性无关的函数系,求函数 (1,2,,)im,?{(,,,)},xxx?120,knk
N
,,(,,,)(,,,)xxxaxxx??,,1212knkkn,0k对于一组正数,使得目标函数 www,,,?12m
m2 Swyxxx,,[(,,,)],?,12iiiini,1i
达到最小,其中待定系数由正规方程组 aaaa,,,?012N
N
(,)(,),,,ay, (0,1,2,,)kN,?,jkjk,0j
确定,此处
m
, (,)(,,,)(,,,),,,,,wxxxxxx??,1212jkijiinikiini,1i
m
(,)(,,,),,ywxxxy,?,12kikiinii,1i
a,上面的函数关于都是线性的,这就是线性最小二乘拟合问题,对于这类i
a,问题的正规方程组总是容易求解的.如果关于都是非线性的,则相应的问题i
称为非线性最小二乘拟合问题。
, - -
2.3非线性最小二乘拟合法
假设已知多元函数的一组测量数据yfxxx,(,,,)?12n
, (,,,)(1,2,,)xxxyim??,12;iinii
要求一个关于参数 是非线性的函数 a(0,1,2,,)jN,?j
, ,,,(,,,;,,,)xxxaaa??1201nN对于一组正数,使得目标函数 www,,,?12m
m2 Saaawyxxxaaa(,,,)[(,,,;,,,)]???,,,,011201NiiiiniN,1i
达到最小,则称之为非线性最小二乘问题。
, - -
第三章 算法对比与实现
3.1 对比实例一
对函数,在[-5,5]上对函数作插值计算。
?用三次样条插值选取10个基点计算插值
Matlab程序如下:
x0=linspace(-5,5,10);
y0=1./(1+20*x0.^2);
x=linspace(-5,5,100);
y=interp1(x0,y0,x,'spline');
x1=linspace(-5,5,100);
y1=1./(1+20*x1.^2);
plot(x1,y1,'k',x0,y0,'+',x,y,'r');
结果如下:
1
?用分段线性插值法求插值,并观察插值误差
,, - -
y,
2
120,x
在[-5,5]中平均选取11个点作插值
Matlab程序如下:
x=linspace(-5,5,100); y=1./(20*x.^2+1);
x1=linspace(-5,5,11); y1=1./(20*x1.^2+1);
plot(x,y,x1,y1,x1,y1,'o','LineWidth',1.5),
gtext('n=10')
结果如下:
3.2 对比实例二
给出函数:
分别用一次、二次、三次多项式来拟合这些数据点,并通过作图,找出哪一种拟
,, - -
合多项式对这些数据点的拟合效果最好。
用一次多项式来拟合这些数据点时,可在MATLAB命令空间键入以下命
令:
x=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]; y=[1.1,2.2,3.0,5.8,4.7,6.6,7.1,8.0,8.9,10.4,11.6,12.3,13.0,14.9,16.2];
p1=polyfit(x,y,1)
y1=polyval(p1,x)
plot(x,y,'x')
hold on
plot(x,y1)
得到图形
用二次多项式来拟合这些数据时,可在MATLAB命令空间键入以下命令: x=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]; y=[1.1,2.2,3.0,5.8,4.7,6.6,7.1,8.0,8.9,10.4,11.6,12.3,13.0,14.9,16.2];
p1=polyfit(x,y,1)
y1=polyval(p1,x)
hold on
p2=polyfit(x,y,2);
,, - -
y2=polyval(p2,x);
plot(x,y,'x')
hold on
plot(x,y2)
得到图形:
用三次多项式来拟合这些数据时,可在MATLAB命令空间键入以下命令:
x=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
y=[1.1,2.2,3.0,5.8,4.7,6.6,7.1,8.0,8.9,10.4,11.6,12.3,13.0,14.9,16.2];
y1=polyval(p1,x)
hold on
p2=polyfit(x,y,2);
y2=polyval(p2,x);
hold on
p3=polyfit(x,y,3);
y3=polyval(p3,x);
plot(x,y,'x')
hold on
plot(x,y3)
,, - -
得到图形:
3.3结果及分析
从题中可以看出,插值点的个数、精度、插值点的选择都会影响实验的结果;我们通常会选择与插值点最接近的节点,可以提高精度;在可以计算出结果的情况下,插值点越多,结果越精确。
由于曲线拟合的最小二乘法一般是经过描点,确定其近似多项式的形式,但由于给定的点有误差,所以拟合曲线的数学模型并不是一开始就能选的好的,往往要通过分析确定若干模型后,再经过实际计算,才能选到较好的模型。
,, - -
第四章 总结
计算方法中插值与拟合的区别与联系是:
插值和拟合都是函数逼近或者数值逼近的重要组成部分,他们的共同点都是通过已知一些离散点集M上的约束,求取一个定义在连续集合S(M包含于S)的未知连续函数,从而达到获取整体规律的目的。简单的讲,所谓拟合是指已知某函数的若干离散函数值{f1,f2,…,fn},通过调整该函数中若干待定系数f(λ1,
,λ3), 使得该函数与已知点集的差别(最小二乘意义)最小。如果待定函λ2,…
数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。表达式也可以是分段函数,这种情况下叫作样条拟合。 而插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。插值函数又叫作基函数,如果该基函数定义在整个定义域上,叫作全域基,否则叫作分域基。如果约束条件中只有函数值的约束,叫作Lagrange插值,否则叫作Hermite
,, - -
插值。从几何意义上将,拟合是给定了空间中的一些点,找到一个已知形式未知参数的连续曲面来最大限度地逼近这些点;而插值是找到一个(或几个分片光滑的)连续曲面来穿过这些点。
,, - -