📜  Python| Numpy np.poly2lag() 方法(1)

📅  最后修改于: 2023-12-03 15:04:21.074000             🧑  作者: Mango

Python Numpy np.poly2lag() 方法

简介

np.poly2lag() 方法用于将多项式系数转换成拉格朗日系数。

具体来说,np.poly2lag() 将多项式系数 $p_n, p_{n-1}, ..., p_1, p_0$ 转换成拉格朗日系数 $l_n, l_{n-1}, ..., l_1, l_0$。

语法

np.poly2lag(p)

参数说明:

  • p:多项式系数。

返回值:

  • 拉格朗日系数。
示例
import numpy as np

p = np.array([1, 2, 3])
l = np.poly2lag(p)
print(l)

输出结果如下:

[1 4 3]
解释

上述代码中,我们将多项式系数 $p=[1, 2, 3]$ 传递给 np.poly2lag() 方法,得到的拉格朗日系数 $l=[1, 4, 3]$。

现在让我们来看看如何手动计算拉格朗日系数。

对于多项式 $P(x)=p_n x^n + p_{n-1} x^{n-1} + ... + p_1 x + p_0$ 和插值点 $(x_1, y_1), (x_2, y_2), ..., (x_n, y_n)$,拉格朗日插值多项式为:

$$ L(x)=\sum_{i=1}^{n} y_i l_i(x) $$

其中,

$$ l_i(x)=\prod_{j=1,j\neq i}^{n} \frac{x-x_j}{x_i-x_j} $$

我们可以使用多项式系数来计算拉格朗日系数。具体来说,拉格朗日系数为:

$$ l_i = \frac{(-1)^{n-i}}{i(n-i)!} \prod_{j=1,j\neq i}^{n} \frac{1}{x_i-x_j} $$

在上述示例代码中,多项式系数为 $p=[1, 2, 3]$,即 $P(x)=x^2+2x+3$。假设插值点为 $(0, 3), (1, 6), (2, 11)$,则 $n=3$,$x_1=0, y_1=3, x_2=1, y_2=6, x_3=2, y_3=11$,因此:

$$ l_1 = \frac{(-1)^{3-1}}{1(3-1)!} \frac{1}{(0-1)(0-2)} = 1 $$

$$ l_2 = \frac{(-1)^{3-2}}{2(3-2)!} \frac{1}{(1-0)(1-2)} = 4 $$

$$ l_3 = \frac{(-1)^{3-3}}{3(3-3)!} \frac{1}{(2-0)(2-1)} = 3 $$

因此,我们得到的拉格朗日系数为 $l=[1, 4, 3]$,与 np.poly2lag() 方法得到的结果一致。