用NumPy在Python中用浮点阵列生成Legendre多项式的Vandermonde矩阵

用NumPy在Python中用浮点阵列生成Legendre多项式的Vandermonde矩阵

在这篇文章中,我们将研究在Python中使用NumPy生成具有浮点数组的Legendre多项式的Vandermonde矩阵的方法。

示例:
Array:

 [-1.57  0.58 -3.57  1.44  2.75]

结果:

 [[ 1.000000e+00 -1.570000e+00  3.197350e+00]
 [ 1.000000e+00  5.800000e-01  4.600000e-03]
 [ 1.000000e+00 -3.570000e+00  1.861735e+01]
 [ 1.000000e+00  1.440000e+00  2.610400e+00]
 [ 1.000000e+00  2.750000e+00  1.084375e+01]]

NumPy.legvander()

为了生成具有浮点数组的Legendre多项式的伪Vandermonde矩阵,用户必须在Python Numpy中调用NumPy.legvander()方法。这将返回伪范德蒙矩阵,返回的矩阵的形状是x.shape + (deg + 1,),其中最后一个索引是相应的Legendre多项式的度数。

语法: np.legvander(x, deg)

参数:

  • x :[ array_like ] 点的阵列。根据是否有元素是复数,dtype被转换为float64或compound128。如果x是标量,它被转换为一个一维数组。
  • deg :[int] 结果矩阵的度数。

返回:返回矩阵的大小,即array.size+(degree+1)。

示例:

在这个例子中,我们首先创建了一个有5个浮点数据类型的数组,然后通过NumPy.legvander()方法,我们在python中生成了一个2度Legendre多项式的Vandermonde矩阵。

import numpy as np
from numpy.polynomial import legendre
 
gfg_data = np.array([-1.57,0.58, -3.57, 1.44, 2.75])
 
# Display Elements of Array
print("Array:\n",gfg_data)
 
# Display Dimensions of Array
print("\nDimensions:\n",gfg_data.ndim)
 
# To generate a pseudo Vandermonde matrix
# of the Legendre polynomial
gfg_data=legendre.legvander(gfg_data, 2)
print("\nResult:\n",gfg_data)

输出:

Array:
 [-1.57  0.58 -3.57  1.44  2.75]

Dimensions:
 1

Result:
 [[ 1.000000e+00 -1.570000e+00  3.197350e+00]
 [ 1.000000e+00  5.800000e-01  4.600000e-03]
 [ 1.000000e+00 -3.570000e+00  1.861735e+01]
 [ 1.000000e+00  1.440000e+00  2.610400e+00]
 [ 1.000000e+00  2.750000e+00  1.084375e+01]]

示例:

在这个例子中,我们首先创建了一个包含10个浮点数据类型的数组,然后通过NumPy.legvander()方法,我们在python中生成了一个5度Legendre多项式的Vandermonde矩阵。

import numpy as np
from numpy.polynomial import legendre
 
gfg_data = np.array([-1.57,0.58, -3.57, 1.44, 2.75,
                -8.97,7.45,-0.56,-4.74,3.33])
 
# Display Elements of Array
print("Array:\n",gfg_data)
 
# Display Dimensions of Array
print("\nDimensions:\n",gfg_data.ndim)
 
# To generate a pseudo Vandermonde
# matrix of the Legendre polynomial
gfg_data=legendre.legvander(gfg_data, 5)
print("\nResult:\n",gfg_data)

输出:

Array: 

[-1.57 0.58 -3.57 1.44 2.75 -8.97 7.45 -0.56 -4.74 3.33] 

Dimensions: 

1 

Result: 

[[ 1.00000000e+00 -1.57000000e+00 3.19735000e+00 -7.31973250e+00 

1.77129525e+01 -4.42010179e+01] 

[ 1.00000000e+00 5.80000000e-01 4.60000000e-03 -3.82220000e-01 

-3.91403300e-01 -1.02849045e-01] 

[ 1.00000000e+00 -3.57000000e+00 1.86173500e+01 -1.08393232e+02 

6.63223708e+02 -4.17516096e+03] 

[ 1.00000000e+00 1.44000000e+00 2.61040000e+00 5.30496000e+00 

1.14106992e+01 2.53325643e+01] 

[ 1.00000000e+00 2.75000000e+00 1.08437500e+01 4.78671875e+01 

2.22228027e+02 1.06173499e+03] 

[ 1.00000000e+00 -8.97000000e+00 1.20191350e+02 -1.79088068e+03 

2.80222060e+04 -4.51013834e+05] 

[ 1.00000000e+00 7.45000000e+00 8.27537500e+01 1.02255906e+03 

1.32695485e+04 1.77126598e+05] 

[ 1.00000000e+00 -5.60000000e-01 -2.96000000e-02 4.00960000e-01 

-3.70740800e-01 5.29387264e-02] 

[ 1.00000000e+00 -4.74000000e+00 3.32014000e+01 -2.59131060e+02 

2.12459109e+03 -1.79197064e+04] 

[ 1.00000000e+00 3.33000000e+00 1.61333500e+01 8.73200925e+01 

4.96757827e+02 2.90771034e+03]] 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Numpy 多项式