2021-01-07 matlab数值分析  插值法 拉格朗日插值法 牛顿插值法

这篇博客介绍了如何在Matlab中使用拉格朗日和牛顿插值法进行数值分析。通过提供的两个函数,lagrange和newtonPol,实现了对给定数据点的插值计算。示例中,对于x=[11,12,13]和y=[2.3979,2.4849,2.5649]的数据,计算了11.75处的插值结果。这两种插值方法在数值计算和数据拟合中有广泛应用。
摘要由CSDN通过智能技术生成

matlab数值分析  插值法

 

1 拉格朗日插值法

function yh=lagrange(x,y,xh)
n=length(x);
m=length(xh);
yh=zeros(1,m);
for j=1:m;
    for i=1:n
        xp=x([1:i-1 i+1:n]);
        yh(j)=yh(j)+y(i)*prod((xh(j)-xp)./(x(i)-xp));   %注意区分yh和y
    end
end

调用程序


x=[11,12,13];
y=[2.3979,2.4849,2.5649];
xh=11.75;
yh=lagrange(x,y,xh)

2 牛顿插值法

 

function yh=newtonPol(x,y,xh)
n=length(x);
p(:,1)=x;
p(:,2)=y;
for j=3:n+1
    p(1:n+2-j,j)=diff(p(1:n+3-j,j-1))./(x(j-1:n)-x(1:n+2-j))';  %求差商表  (注意这里有一个 ’ 符号,与差商表不一样的地方)
end
q=p(1,2:n+1)';  %求牛顿法的系数--取第一行
yh=0;
m=1;
yh=q(1);
for i=2:n
    m=q(i);
    for j=2:i
        m=m*(xh-x(j-1));  %求牛顿法中各多项式值(xh-x0)…(xh-xn-1)
    end
    yh=yh+m;%求和
end

调用程序 


x=[11,12,13];
y=[2.3979,2.4849,2.5649];
xh=11.75;
yh= newtonPol(x,y,xh)

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值