Lagrange插值法的MATLAB代码

文章介绍了Lagrange插值公式在数值分析中的应用,提供了一个使用MATLAB编写的函数,该函数接受一组横纵坐标数据,计算并返回给定插值点的拉格朗日插值多项式值。通过循环和乘积运算,函数构建并求解了插值多项式。
摘要由CSDN通过智能技术生成

Lagrange插值法MATLAB代码

数值分析学习(二)

(拉格朗日插值公式)(Lagrange interpolation formula)指的是在节点上给出节点[基函数],然后做基函数的[线性组合],组合系数为节点函数值的一种插值多项式。

插值,就是设法利用已给数据表求出给定点x的函数值y。

任给定点x1,x2,…,xn点的函数值,其中x1,x2,…xn互不相同;如下表:

x1x2……xn
y1y2……yn

则存在唯一的次数不超过n的多项式pn(x),满足pn(xi)=yi(i=1,2,…,n+1),这里:
P n ( x ) = ∑ n = 1 n y i ( ∏ j ≠ n 1 ≤ j ≤ n ( x − x i ) ( x i − x j ) ) P_n(x)=\sum_{n=1}^{n}{y_i}(\prod_{j\neq n}^{1\leq j\leq n}{\frac{(x-x_i)}{(x_i-x_j)}}) Pn(x)=n=1nyi(j=n1jn(xixj)(xxi))
MATLAB语言:

function y=lagrange(x0,y0,x)
%输入      -x0 是一个包含横坐标列表的向量
%           -y0 是一个包含纵坐标列表的向量
%           -x  是包含插值点列表的向量
%输出     -y  是一个向量,包含x处拉格朗日插值多项式的值
n=length(x0);
m=length(x);
for i=1:m
    z=x(i);
    s=0.0;
    for k=1:n
        p=1.0;
        for j=1:n
            if j~=k
                p=p*(z-x0(j))/(x0(k)-x0(j));
            end
        end
        s=p*y0(k)+s;
    end
    y(i)=s;
end
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值