拉格朗日插值法

拉格朗日插值法(Lagrange Interpolation)是一种用于通过给定数据点构造多项式的插值方法。其基本思想是通过线性组合一系列基函数(拉格朗日基函数)来构造插值多项式,使得该多项式在每个已知数据点处与数据点的函数值相等。

拉格朗日插值公式

给定 n+1 个数据点 (x0,y0),(x1,y1),…,(xn,yn),拉格朗日插值多项式 P(x)可以表示为:

在这里插入图片描述

其中,Li(x)是第 i 个拉格朗日基函数,定义为:

在这里插入图片描述

拉格朗日插值法的步骤

  • 输入数据点:(x0,y0),(x1,y1),…,(xn,yn)
  • 计算拉格朗日基函数:对于每个 i,计算 Li(x)
  • 构造插值多项式:使用拉格朗日插值公式计算 P(x)

例子

假设我们有以下三个数据点:

(1,2),(2,3),(3,5)

我们希望通过拉格朗日插值法构造一个多项式来插值这些数据点。

  • 计算拉格朗日基函数:
    在这里插入图片描述
  • 构造插值多项式:
    在这里插入图片描述
import numpy as np
import matplotlib.pyplot as plt

def lagrange_interpolation(x_points, y_points, x):
    n = len(x_points)
    P = 0.0
    for i in range(n):
        L_i = 1.0
        for j in range(n):
            if i != j:
                L_i *= (x - x_points[j]) / (x_points[i] - x_points[j])
        P += y_points[i] * L_i
    return P

# 示例数据点
x_points = np.array([1, 2, 3])
y_points = np.array([2, 3, 5])

# 插值点
x_values = np.linspace(0, 4, 100)
y_values = [lagrange_interpolation(x_points, y_points, x) for x in x_values]

# 绘制结果
plt.plot(x_points, y_points, 'ro', label='Data points')
plt.plot(x_values, y_values, label='Lagrange interpolation')
plt.legend()
plt.xlabel('x')
plt.ylabel('P(x)')
plt.title('Lagrange Interpolation')
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法小菜鸟moon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值