数学建模社区-数学中国

标题: 三次样条数据插值——spline [打印本页]

作者: 森之张卫东    时间: 2015-8-18 22:08
标题: 三次样条数据插值——spline

命令4  interpft

功能  用快速Fourier算法作一维插值

格式  y = interpft(x,n)   %返回包含周期函数x在重采样的n个等距的点的插值y。若length(x)=m,且x有采样间隔dx,则新的y的采样间隔dy=dx*m/n。注意的是必须nm。若x为一矩阵,则按x的列进行计算。返回的矩阵y有与x相同的列数,但有n行。

y = interpft(x,n,dim)     %沿着指定的方向dim进行计算

命令5  griddata

功能  数据格点

格式  ZI =griddata(x,y,z,XI,YI)   %用二元函数z=f(x,y)的曲面拟合有不规则的数据向量x,y,zgriddata将返回曲面z在点(XI,YI)处的插值。曲面总是经过这些数据点(x,y,z)的。输入参量(XI,YI)通常是规则的格点(像用命令meshgrid生成的一样)。XI可以是一行向量,这时XI指定一有常数列向量的矩阵。类似地,YI可以是一列向量,它指定一有常数行向量的矩阵。

[XI,YI,ZI] =griddata(x,y,z,xi,yi)   %返回的矩阵ZI含义同上,同时,返回的矩阵XI,YI是由行向量xi与列向量yi用命令meshgrid生成的。

[] = griddata(,method)         %用指定的算法method计算:

                  ‘linear’:基于三角形的线性插值(缺省算法);

                  ‘cubic’基于三角形的三次插值;

                  ‘nearest’:最邻近插值法;

                  ‘v4’MATLAB 4中的griddata算法。

命令6  spline

功能 三次样条数据插值

格式 yy =spline(x,y,xx)   %对于给定的离散的测量数据x,y(称为断点),要寻找一个三项多项式file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png,以逼近每对数据(x,y)点间的曲线。过两点file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image004.pngfile:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png只能确定一条直线,而通过一点的三次多项式曲线有无穷多条。为使通过中间断点的三次多项式曲线具有唯一性,要增加两个条件(因为三次多项式有4个系数):

1.三次多项式在点file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png处有: file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png

2.三次多项式在点file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png处有:file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png

3p(x)在点file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png处的斜率是连续的(为了使三次多项式具有良好的解析性,加上的条件);

4p(x)在点file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png处的曲率是连续的;

对于第一个和最后一个多项式,人为地规定如下条件:

                  ①.file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image015.png

                  ②.file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image017.png

                上述两个条件称为非结点(not-a-knot)条件。综合上述内容,可知对数据拟合的三次样条函数p(x)是一个分段的三次多项式:

                ,其中每段file:///C:/Users/lx/AppData/Local/Temp/msohtmlclip1/01/clip_image021.png都是三次多项式。

                该命令用三次样条插值计算出由向量xy确定的一元函数y=f(x)在点xx处的值。若参量y是一矩阵,则以y的每一列和x配对,再分别计算由它们确定的函数在点xx处的值。则yy是一阶数为length(xx)*size(y,2)的矩阵。

pp =spline(x,y)   %返回由向量xy确定的分段样条多项式的系数矩阵pp,它可用于命令ppvalunmkpp的计算。

2-36

对离散地分布在y=exp(x)sin(x)函数曲线上的数据点进行样条插值计算:

    >>x= [0 2 4 5 8 12 12.8 17.2 19.9 20];  y = exp(x).*sin(x);

    >>xx= 0:.25:20;

    >>yy= spline(x,y,xx);

    >>plot(x,y,'o',xx,yy)

插值图形结果为图2-19




截图2.PNG (11.13 KB, 下载次数: 127)

截图2.PNG

具体内容.PNG (37.89 KB, 下载次数: 117)

具体内容.PNG

截图.PNG (9.9 KB, 下载次数: 145)

截图.PNG






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5