在 Python 中使用厄米特多项式生成伪范德蒙德矩阵,并使用复数数组表示点坐标
要生成厄米特多项式的伪范德蒙德矩阵,可以使用 Python Numpy 中的 `hermite.hermvander2d()` 函数。该方法返回伪范德蒙德矩阵。参数 `x` 和 `y` 是点坐标数组,它们具有相同的形状。数据类型将根据元素是否为复数转换为 `float64` 或 `complex128`。标量将转换为一维数组。参数 `deg` 是最大次数的列表,格式为 `[x_deg, y_deg]`。
步骤
首先,导入所需的库:
import numpy as np from numpy.polynomial import hermite as H
使用 `numpy.array()` 方法创建具有相同形状的点坐标数组:
x = np.array([-2.+2.j, -1.+2.j]) y = np.array([1.+2.j, 2.+2.j])
显示数组:
print("Array1...\n",x) print("\nArray2...\n",y)
显示数据类型:
print("\nArray1 datatype...\n",x.dtype) print("\nArray2 datatype...\n",y.dtype)
检查两个数组的维度:
print("\nDimensions of Array1...\n",x.ndim) print("\nDimensions of Array2...\n",y.ndim)
检查两个数组的形状:
print("\nShape of Array1...\n",x.shape) print("\nShape of Array2...\n",y.shape)
要生成厄米特多项式的伪范德蒙德矩阵,可以使用 Python Numpy 中的 `hermite.hermvander2d()` 函数。该方法返回伪范德蒙德矩阵:
x_deg, y_deg = 2, 3 print("\nResult...\n",H.hermvander2d(x,y, [x_deg, y_deg]))
示例
import numpy as np from numpy.polynomial import hermite as H # Create arrays of point coordinates, all of the same shape using the numpy.array() method x = np.array([-2.+2.j, -1.+2.j]) y = np.array([1.+2.j, 2.+2.j]) # Display the arrays print("Array1...\n",x) print("\nArray2...\n",y) # Display the datatype print("\nArray1 datatype...\n",x.dtype) print("\nArray2 datatype...\n",y.dtype) # Check the Dimensions of both the array print("\nDimensions of Array1...\n",x.ndim) print("\nDimensions of Array2...\n",y.ndim) # Check the Shape of both the array print("\nShape of Array1...\n",x.shape) print("\nShape of Array2...\n",y.shape) # To generate a pseudo Vandermonde matrix of the Hermite polynomial, use the hermite.hermvander2d() in Python Numpy # The method returns the pseudo-Vandermonde matrix. x_deg, y_deg = 2, 3 print("\nResult...\n",H.hermvander2d(x,y, [x_deg, y_deg]))
输出
Array1... [-2.+2.j -1.+2.j] Array2... [1.+2.j 2.+2.j] Array1 datatype... complex128 Array2 datatype... complex128 Dimensions of Array1... 1 Dimensions of Array2... 1 Shape of Array1... (2,) Shape of Array2... (2,) Result... [[ 1.000e+00 +0.j 2.000e+00 +4.j -1.400e+01 +16.j -1.000e+02 -40.j -4.000e+00 +4.j -2.400e+01 -8.j -8.000e+00 -120.j 5.600e+02 -240.j -2.000e+00 -32.j 1.240e+02 -72.j 5.400e+02 +416.j -1.080e+03 +3280.j] [ 1.000e+00 +0.j 4.000e+00 +4.j -2.000e+00 +32.j -1.520e+02 +104.j -2.000e+00 +4.j -2.400e+01 +8.j -1.240e+02 -72.j -1.120e+02 -816.j -1.400e+01 -16.j 8.000e+00 -120.j 5.400e+02 -416.j 3.792e+03 +976.j]]
广告