欢迎来到天天文库
浏览记录
ID:9375490
大小:151.52 KB
页数:11页
时间:2018-04-29
《精通matlab—综合辅导与指南chap12 三次条样》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第12章三次样条众所周知,使用高阶多项式的插值常常产生病态的结果。目前,有多种消除病态的方法。在这些方法中,三次样条是最常用的一种。在MATLAB中,实现基本的三次样条插值的函数有spline,,,ppval,,,mkpp和unmkpp。在这些函数中,仅spline在《MATLAB参考指南》中有说明。下面几节,将展示在M文件函数中实现三次样条的基本特征。12.1基本特征在三次样条中,要寻找三次多项式,以逼近每对数据点间的曲线。在样条术语中,这些数据点称之为断点。因为,两点只能决定一条直线,而在两点间的曲线可用无限多的三次多项式近似。因此,为使结果具有
2、唯一性。在三次样条中,增加了三次多项式的约束条件。通过限定每个三次多项式的一阶和二阶导数,使其在断点处相等,就可以较好地确定所有内部三次多项式。此外,近似多项式通过这些断点的斜率和曲率是连续的。然而,第一个和最后一个三次多项式在第一个和最后一个断点以外,没有伴随多项式。因此必须通过其它方法确定其余的约束。最常用的方法,也是函数spline所采用的方法,就是采用非扭结(not-a-knot)条件。这个条件强迫第一个和第二个三次多项式的三阶导数相等。对最后一个和倒数第二个三次多项式也做同样地处理。基于上述描述,人们可能猜想到,寻找三次样条多项式需要求解大
3、量的线性方程。实际上,给定N个断点,就要寻找N-1个三次多项式,每个多项式有4个未知系数。这样,所求解的方程组包含有4*(N-1)个未知数。把每个三次多项式列成特殊形式,并且运用各种约束,通过求解N个具有N个未知系数的方程组,就能确定三次多项式。这样,如果有50个断点,就有50个具有50个未知系数的方程组。幸好,用稀疏矩阵,这些方程式能够简明地列出并求解,这就是函数spline所使用的计算未知系数的方法。12.2分段多项式在最简单的用法中,spline获取数据x和y以及期望值xi,寻找拟合x和y的三次样条内插多项式,然后,计算这些多项式,对每个xi的
4、值,寻找相应的yi。例如:>>x=0:12;>>y=tan(pi*x/25);>>xi=linspace(0,12);>>yi=spline(x,y,xi)>>plot(x,y,‘o‘,xi,yi),title(‘Splinefit‘)(见图12.1样条拟合)这种方法适合于只需要一组内插值的情况。不过,如果需要从相同数据集里获取另一组内插值,再次计算三次样条系数是没有意义的。在这种情况下,可以调用仅带前两个参量的spline:图12.1样条拟合>>pp=spline(x,y)pp=Columns1through710.00001.000012.000
5、001.00002.00003.0000Columns8through144.00005.00006.00007.00008.00009.000010.0000Columns15through2111.000012.00004.00000.00070.00070.00100.0012Columns22through280.00240.00190.0116-0.00830.1068-0.19821.4948Columns29through351.4948-0.00010.00200.00420.00720.01090.0181Columns36thro
6、ugh420.02370.05860.03360.3542-0.24064.24390.1257Columns43through490.12760.13390.14540.16350.19250.23440.3167Columns50through560.40890.79670.91024.913600.12630.2568Columns57through630.39590.54980.72650.93911.20881.57572.1251Columns64through653.07775.2422当采用这种方式调用时,spline返回一个称之为三
7、次样条的pp形式或分段多项式形式分段多项式形式的数组。这个数组包含了对于任意一组所期望的内插值和计算三次样条所必须的全部信息。给定pp形式,函数ppval计算该三次样条。例如,>>yi=ppval(pp,xi);计算先前计算过的同样的yi。类似地,>>xi2=linspace(10,12);>>yi2=ppval(pp,xi2);运用pp形式,在限定的更细区间[10,12]内,再次计算该三次样条。>>xi3=10:15>>yi3=ppval(pp,xi3)yi3=3.07775.242215.894544.003898.5389188.4689它表明
8、,可在计算三次多项式所覆盖的区间外,计算三次样条。当数据出现在最后一个断点之后或第一个断点之前时,则分别运用
此文档下载收益归作者所有