Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#19 |
普通会员
注册日期: 2012-05-21
帖子: 37
声望力: 13 ![]() |
![]()
5.2.3 样条插值
在MATLAB中,三次样条插值可以采用函数spline(),该函数的调用格式如下。 yi=spline(x, y, xi):通过初始数据 产生插值函数 ,然后对数据xi进 行插值,返回值 。采用这种调用方式时,其相当于yi=interp1(x, y, xi, 'spline')。 pp=spline(x, y):该函数通过对初始数据x和y产生插值函数,并进行返回。然后利用函数ppval()对数据xi进行插值计算,其调用方式为yi=ppval(pp, xi),其中pp为插值函数。 【例5-15】 对正弦函数 进行三次样条插值,代码如下: clear all; x=0:10; %原始数据 y=sin(x); xi=0:.25:10; %插值数据 yi=spline(x,y,xi); %三次样条插值 pp=spline(x,y) %产生插值函数 y1=ppval(pp,xi); %结果相同y1=yi y2=interp1(x,y,xi,'spline'); %结果相同y2=yi figure; %画图显示 plot(x,y,'o',xi,yi); legend('原始数据','三次样条插值'); 运行程序后,得到的三次样条函数如下: pp = form: 'pp' breaks: [0 1 2 3 4 5 6 7 8 9 10] coefs: [10x4 double] pieces: 10 order: 4 dim: 1 原始数据和三次样条插值后的结果,如图5.9所示。在该程序中,分别采用3种方法进行三次样条插值,输出结果分别是yi、y1和y2,其输出结果都相等。 ![]() |
![]() |
![]() |