使用NumPy在Python中生成Legendre数列的Vandermonde矩阵

使用NumPy在Python中生成Legendre数列的Vandermonde矩阵

在这篇文章中,我们将着眼于使用NumPy在Python中生成Legendre系列的Vandermonde矩阵的方法。

示例:
Array:

 [-1  2 -3  4 -5]

结果:

 [[ 1.  -1.   1. ]
 [ 1.   2.   5.5]
 [ 1.  -3.  13. ]
 [ 1.   4.  23.5]
 [ 1.  -5.  37. ]]

NumPy.legvander()

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

语法 : np.legvander(x, deg)

参数:

  • x :[ array_like ] 点的阵列。根据是否有元素是复数,dtype被转换为float64或complex128。
  • 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,2,-3,4,-5])
 
# 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=legendre.legvander(gfg_data, 2)
print("\nResult:\n",gfg_data)

输出:

Array:
 [-1  2 -3  4 -5]

Dimensions:
 1

Result:
 [[ 1.  -1.   1. ]
 [ 1.   2.   5.5]
 [ 1.  -3.  13. ]
 [ 1.   4.  23.5]
 [ 1.  -5.  37. ]]

示例:

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

import numpy as np
from numpy.polynomial import legendre
 
gfg_data = np.array([-1, 2, -3, 4, -5, 6, -7, 8, -9, 10])
 
# 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 2 -3 4 -5 6 -7 8 -9 10] 

Dimensions: 

1 

Result: 

[[ 1.0000000e+00 -1.0000000e+00 1.0000000e+00 -1.0000000e+00 

1.0000000e+00 -1.0000000e+00] 

[ 1.0000000e+00 2.0000000e+00 5.5000000e+00 1.7000000e+01 

5.5375000e+01 1.8575000e+02] 

[ 1.0000000e+00 -3.0000000e+00 1.3000000e+01 -6.3000000e+01 

3.2100000e+02 -1.6830000e+03] 

[ 1.0000000e+00 4.0000000e+00 2.3500000e+01 1.5400000e+02 

1.0603750e+03 7.5115000e+03] 

[ 1.0000000e+00 -5.0000000e+00 3.7000000e+01 -3.0500000e+02 

2.6410000e+03 -2.3525000e+04] 

[ 1.0000000e+00 6.0000000e+00 5.3500000e+01 5.3100000e+02 

5.5353750e+03 5.9357250e+04] 

[ 1.0000000e+00 -7.0000000e+00 7.3000000e+01 -8.4700000e+02 

1.0321000e+04 -1.2936700e+05] 

[ 1.0000000e+00 8.0000000e+00 9.5500000e+01 1.2680000e+03 

1.7680375e+04 2.5358300e+05] 

[ 1.0000000e+00 -9.0000000e+00 1.2100000e+02 -1.8090000e+03 

2.8401000e+04 -4.5864900e+05] 

[ 1.0000000e+00 1.0000000e+01 1.4950000e+02 2.4850000e+03 

4.3375375e+04 7.7876875e+05]] 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Numpy 多项式