使用 NumPy 在 Python 中生成具有浮点数数组点的 Legendre Polynomial 的 Vandermonde 矩阵

2024 年 8 月 29 日 | 4 分钟阅读

让我们了解一下使用 NumPy 在 Python 中生成勒让德多项式范德蒙德矩阵(浮点数点阵)的一个好方法。

示例

结果

[[ 1.00000e+00      -1.670000e+00     3.6833500e+00]
 [ 1.00000e+00       0.81000e+00     0.48415000e+00]
 [ 1.00000e+00      -3.57000e+00    18.61735000e+00]
 [ 1.00000e+00       1.6000e+00      3.34000e+00]
 [ 1.00000e+00       2.8000e+00     11.26000e+00]]

NumPy

NumPy 是一个非常有价值的数组处理库。它提供了世界一流的复杂数组对象和处理这些数组的工具,是 Python 进行科学计算的关键库。除了其固有的数学用途外,NumPy 还可以作为通用数据的有效复杂容器。

NumPy 中的数组是相同类型的元素的(通常是数字)的表格,由一组正整数索引。在 NumPy 中,数组的维度数量称为数组的秩。一组给出沿每个维度数组大小的数字称为数组的形状。NumPy 中的数组类称为 ndarray。NumPy 数组中的元素使用方括号进行访问,并可以使用嵌套的 Python 列表进行初始化。

NumPy.legvander()

假设我们想借助点的浮点数数组生成勒让德多项式的伪范德蒙德矩阵。在这种情况下,用户必须从 Python 库 NumPy 中调用 NumPy.legvander() 方法到我们的程序中。调用该方法后,我们将获得结果,或者它将返回伪范德蒙德矩阵,其形状为 a.shape + (deg + 1),其中矩阵的最后一个索引是相应勒让德多项式的次数。

语法

调用该方法的语法是

参数

  • a: [ array_like ] 点的数组。数据类型根据是否有复数元素转换为 float64 或 complex128。如果 a 是标量,则将其转换为一维数组。
  • deg: [int] degree 指的是结果矩阵的次数。

结果

问题结果将是一个大小为数组大小加上次数加一的矩阵,即 a.size + (degree + 1)。

示例

在下面的示例中,我们使用 NumPy.legvender() 方法创建了一个包含五个元素(浮点数和其他数据类型)的数组。使用数组数据,我们将在 Python 中生成一个次数为 2 的勒让德多项式范德蒙德矩阵。

输出

The input Array is:
[-1.67  0.81 -3.57  1.6   2.8]
The Dimensions of the array are:
1
The result of the Vandermonde matrix is: 
[[ 1.00000e+00      -1.670000e+00     3.6833500e+00]
 [ 1.00000e+00       0.81000e+00     0.48415000e+00]
 [ 1.00000e+00      -3.57000e+00    18.61735000e+00]
 [ 1.00000e+00       1.6000e+00      3.34000e+00]
 [ 1.00000e+00       2.8000e+00     11.26000e+00]]

示例 2

在下面的示例中,我们使用 NumPy.legvender() 方法创建了一个包含十个元素(浮点数和其他数据类型)的数组。使用数组数据,我们将在 Python 中生成一个次数为 5 的勒让德多项式范德蒙德矩阵。

输出

The input Array is:
[-1.67  0.81 -3.57  1.6   2.8  -7.97  6.45  -0.76  6.45  -0.76  -3.47  2.43]
The Dimensions of the array are:
1
The Result of the Vandermonde matrix is: 
[[ 1.23000000e+00 -1.62000000e+00  3.51735000e+00 -7.50973250e+00
   1.45129525e+01 -3.42010179e+01]
 [ 1.23000000e+00  5.80000000e-01  4.60000000e-03 -3.82220000e-01
  -3.91403300e-01 -1.52849045e-01]
 [ 1.23000000e+00 -3.57000000e+00  1.86173500e+01 -1.08393232e+02
   6.63223708e+02 -5.17516096e+03]
 [ 1.23000000e+00  1.44000000e+00  2.61040000e+00  5.30496000e+00
   1.14106992e+01  3.53325643e+01]
 [ 1.23000000e+00  2.75000000e+00  1.08437500e+01  4.78671875e+01
   2.22228027e+02  2.06173499e+03]
 [ 1.23000000e+00 -8.97000000e+00  1.20191350e+02 -1.79088068e+03
   2.80222060e+04 -3.51013834e+05]
 [ 1.23000000e+00  7.45000000e+00  8.27537500e+01  1.02255906e+03
   1.32695485e+04  2.77126598e+05]
 [ 1.23000000e+00 -5.60000000e-01 -2.96000000e-02  4.00960000e-01
  -3.70740800e-01  4.29387264e-02]
 [ 1.23000000e+00 -4.74000000e+00  3.32014000e+01 -2.59131060e+02
   2.12459109e+03 -1.56197064e+04]
 [ 1.23000000e+00  3.33000000e+00  1.61333500e+01  8.73200925e+01
   4.96757827e+02  2.56771034e+03]]

下一个主题Haar Cascade 算法