《计算方法学习指导》实验(2)

第2章 插值法

2.1 实验目的

​ 用MATLAB编写线性插值、抛物插值、拉格朗日插值等算法程序。

​ 熟悉MATLAB中相关插值函数,并调用它们解决样条插值或分段插值等问题。

2.2 MATLAB命令
函数含义
interp1一维插值
spline样条插值
interp2二维插值

​ 一维插值函数格式为interp1(x0,y0,x,‘method’),x0和y0为节点值,x为需要计算的函数值点,'method’为差值方法的选取,有以下几种:

​ method=‘neraest’,将插值结果的值设置为最近的数据点的值。

​ method=‘linear’,线性插值,将两个数据点连成直线根据给定的插值点计算直线上的值作为插值结果。

​ method=‘spline’,三次样条差值,通过数据点拟合出三次样条曲线,根据给定数据计算出曲线上的值。

​ method=‘pchip’或’cubic’,通过分段三次埃米尔特差值方法计算插值结果。

2.3 实验2例题:多项式插值

例1:已知函数f(x)满足

x1.21.31.41.51.6
f(x)1.2441.4061.6041.8372.121

​ 编写拉格朗日插值法的MATLAB程序计算f(1.54)的近似值。

function y=lagr(x0,y0,x)
%拉格朗日插值程序
%x0和y0为给定的数据对
%输出y为差值多项式在x处的值
n=length(x0);m=length(x);
for i=1:m
    z=x(i);
    s=0;
    for k=1:n
        p=1;
        for j=1:n    
            if j~=k
                p=p*(z-x0(j))/(x0(k)-x0(j));
            end
        end
        s=p*y0(k)+s;
    end   
end
y(i)=s;
end

​ 结果:

%拉格朗日插值
>> x0=[1.2 1.3 1.4 1.5 1.6];
>> y0=[1.244 1.406 1.604 1.837 2.121];
>> y1=lagr(x0,y0,1.54)
y1 =
    1.9430
 
%只用相邻两点做线性插值来求f(1.54)
>> x0=[1.5 1.6];
>> y0=[1.837 2.121];
>> y1=lagr(x0,y0,1.54)
y1 =
    1.9506

例2:对以下函数在区间[-4,4]进行10等分,用MATLAB做拉格朗日插值、分段线性插值和三次样条插值,对比图形。
f ( x ) = 1 1 + x 2 f(x)=\frac{1}{1+x^2} f(x)=1+x21

x0=-4:0.8:4;
y0=1./(1+x0.^2);
x=-4:0.1:4;
y=1./(1+x.^2);
y1=lagr(x0,y0,x);       %计算拉格朗日插值
y2=interp1(x0,y0,x);    %计算分段线性插值
y3=spline(x0,y0,x);     %计算三次样条插值
for k=1:20              
    xx(k)=x(0+4*k);     %间隔0.4产生插值点
    yy(k)=y(0+4*k);     %间隔0.4计算原函数值
    yy1(k)=y1(0+4*k);   %间隔0.4计算拉格朗日插值多项式值
    yy2(k)=y2(0+4*k);   %间隔0.4计算分段限行插值多项式值
    yy3(k)=y3(0+4*k);   %间隔0.4计算三次样条插值多项式值
end
%plot(x,y,'k',x,y1,'r'); %绘图
plot(x,y,'k',x,y2,'r');
%plot(x,y,'k',x,y3,'r');

​ 结果:

​ 拉格朗日插值(结果有问题丞待解决):

在这里插入图片描述

​ 分段线性插值:

在这里插入图片描述

三次样条插值:

在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值