www.gusucode.com > 关于海航matlab和lingo的训练题 > 三次样条插值例题自己的方法!!!.m

    clc,clear
x0=[0 3 5 7 9 11 12 13 14 15];
y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6];
x=0:0.1:15;

y1=lagrange(x0,y0,x); %调用前面编写的Lagrange插值函数

y2=interp1(x0,y0,x);%分段线性插值

y3=interp1(x0,y0,x,'spline');%三次样条插值
y3=spline(x0,y0,x);

plot(x0,y0,'y');
hold on
plot(x,y1,'r');
figure(2)
plot(x0,y0,'y');
hold on
plot(x,y2,'g');
figure(3)
plot(x0,y0,'y');
hold on
plot(x,y3,'b');

%pp=csape(x0,y0,conds),y=ppval(pp,x)。
%要求插值点的函数值,必须调用函数ppval
%pp=csape(x0,y0):使用默认的边界条件,即Lagrange 边界条件。
%pp=csape(x0,y0,conds)中的conds 指定插值的边界条件

pp=csape(x0,y0);
y=ppval(pp,x)