📅  最后修改于: 2023-12-03 15:04:20.960000             🧑  作者: Mango
Numpy np.legvander3d() 方法用于计算 3-D Legendre 多项式。
Legendre 三维多项式 P(n, m, l)(x, y, z) 定义为:
$$ P(m,n,l)(x,y,z) = (-1)^{m+n+l} \frac{(2m+1)(2n+1)(2l+1)}{2^{m+n+l}m!n!l!}P_m(x)P_n(y)P_l(z) $$
其中 P_m(x),P_n(y) 和 P_l(z) 表示分别是 x,y 和 z 的 m,n 和 l 阶 Legendre 多项式。
numpy.legvander3d(x, y, z, deg)
参数说明:
np.legvander3d() 方法返回一个 numpy.ndarray 类型的多项式数组。
import numpy as np
x = np.array([1, 2, 3, 4])
y = np.array([-1, -2, -3])
z = np.array([0.1, 0.2])
poly = np.legvander3d(x, y, z, 2)
print(poly)
输出结果为:
[[[ 1.00000000e+00 -2.00000000e+00 3.00000000e-01]
[-3.00000000e+00 6.00000000e+00 -9.00000000e-01]
[ 1.50000000e+00 -3.00000000e+00 4.50000000e-01]]
[[ 4.00000000e+00 -8.00000000e+00 1.20000000e+00]
[-6.00000000e+00 1.20000000e+01 -1.80000000e+00]
[ 2.50000000e+00 -5.00000000e+00 7.50000000e-01]]
[[ 9.00000000e+00 -1.80000000e+01 2.70000000e+00]
[-9.00000000e+00 1.80000000e+01 -2.70000000e+00]
[ 1.12500000e+00 -2.25000000e+00 3.37500000e-01]]
[[ 1.60000000e+01 -3.20000000e+01 4.80000000e+00]
[-1.20000000e+01 2.40000000e+01 -3.60000000e+00]
[ 4.00000000e-01 -8.00000000e-01 1.20000000e-01]]]
这个例子中,x 数组的长度为 4,y 数组的长度为 3,z 数组的长度为 2,因此 poly 数组的维度是 (4, 3, 2, 3),其中最后一个维度的大小是 3,因为我们计算了 2 阶的多项式。