在Python中使用NumPy生成Hermite_e多项式的伪Vandermonde矩阵
在这篇文章中,我们将使用Python中的NumPy生成Hermite_e多项式的Pseudo Vandermonde矩阵。
示例 1:
使用hermite_e.hermevander()函数生成一个伪范德蒙德矩阵。
我们使用python的Numpy模块中的hermite_e.hermevander()函数来构造Hermite_e多项式的Vandermonde矩阵。伪范德蒙矩阵由该技术返回。返回的矩阵具有x.shape + (deg + 1)的结构,其中相关的Hermite e多项式的度数是最后的索引。同时,dtype将与转换后的x相似。
语法: polynomial.hermite_e.hermevander(Arr, deg)
参数:
- Arr = 它是一个点的阵列。
- deg = 它是输出矩阵的度数。
返回: 伪范德蒙矩阵。
# import numpy and hermite_e libraries
import numpy as np
from numpy.polynomial import hermite_e
# Create an one dimensional array 'Arr'
Arr = np.array([2, 5, -3, 4])
# To generate a Vandermonde matrix of the
# Hermite_e polynomial,
# use the hermite_e.hermevander() method
print(hermite_e.hermevander(Arr, 2))
输出 :
[[ 1. 2. 3.]
[ 1. 5. 24.]
[ 1. -3. 8.]
[ 1. 4. 15.]]
示例 2:
使用hermite_e.hermevander2d()函数生成一个伪范德蒙德矩阵。
我们使用python的NumPy模块中的hermite_e.hermevander2d()函数来构建Hermite_e多项式的伪范德蒙矩阵。伪范德蒙德矩阵由该技术返回。x和y参数是一组具有相同形式的点坐标。根据是否有任何元素是复数,dtypes将被改变为float64或compound128。另外这里的标量也被转换成一维数组。deg “参数是一个格式为[x deg, y deg]的最大度数的列表。
语法: numpy.polynomial.hermite_e.hermevander2d(x, y, deg)
参数:
x,y = 这些是同形的点坐标数组。
deg = 它是一个形式为[x_deg, y_deg]的最大度数的列表。
返回:一个二维数组。
# import numpy and hermite_e libraries
import numpy as np
from numpy.polynomial import hermite_e as H
# Now create arrays of point coordinates x and y
x = [5, 2]
y = [3, 4]
# Define the degrees of x and y
deg_of_x = 2
deg_of_y = 3
# To generate a pseudo Vandermonde matrix of
# the Hermite_e polynomial,
# use the hermite_e.hermevander2d() method
print(H.hermevander2d(x,y, [deg_of_x, deg_of_y]))
输出 :
[[ 1. 3. 8. 18. 5. 15. 40. 90. 24. 72. 192. 432.]
[ 1. 4. 15. 52. 2. 8. 30. 104. 3. 12. 45. 156.]]
示例 3:
使用hermite_e.hermevander3d()函数生成一个伪范德蒙德矩阵。
为了生成Hermite_e多项式在x、y、z点坐标上的范德蒙矩阵,我们使用python的NumPy模块中的hermite_e.hermevander3d()函数。x、y和z都是具有相同形状的点坐标数组,通过这个技术返回伪范德蒙矩阵。
# import numpy and hermite_e libraries
import numpy as np
from numpy.polynomial import hermite_e
# Now create arrays of point coordinates
# x, y and z
x = np.array([3, 1])
y = np.array([2, 3])
z = np.array([4, 7])
# assign the degree to x, y and z
deg_of_x = 3
deg_of_y = 2
deg_of_z = 1
# use the hermite.hermevander3d() function
# to generate a pseudo Vandermonde
# matrix of the Hermite_e polynomial
# and x, y, z as the sample points
print(hermite_e.hermevander3d(x, y, z, [deg_of_x, deg_of_y, deg_of_z]))
输出 :
[[ 1. 4. 2. 8. 3. 12. 3. 12. 6. 24. 9. 36.
8\. 32. 16. 64. 24. 96. 18. 72. 36. 144. 54. 216.]
[ 1. 7. 3. 21. 8. 56. 1. 7. 3. 21. 8. 56.
0\. 0. 0. 0. 0. 0. -2. -14. -6. -42. -16. -112.]]