在Python中生成Chebyshev多项式的Vandermonde矩阵

在Python中生成Chebyshev多项式的Vandermonde矩阵

在这篇文章中,我们将研究使用Numpy包的各种功能来生成Python中Chebyshev多项式的Vandermonde矩阵的方法。

NumPy.chebvander 方法

为了生成Chebyshev多项式的Vandermonde矩阵,用户需要调用Python Numpy中NumPy包的np.chebvander()。而进一步地,向该函数传递一个整数数组将返回Vandermonde矩阵。返回的矩阵的形状是x.shape + (deg + 1),其中最后一个索引是相应切比雪夫多项式的度数。

语法: np.chebvander(x, deg)

参数:

  • x:点的数组。
  • deg: 结果矩阵的度数。

返回:返回有大小的矩阵。

示例 1:

在这个例子中,我们创建了包含10个数据点的数组,从系列1到10,通过使用np.chebvander()函数,我们将传递程度为2。

import numpy as np
from numpy.polynomial import chebyshev
  
gfg = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
  
# Print array
print("Array - ", gfg)
  
# Print dimension of the array
print("Dimension of Array:-", gfg.ndim)
  
# Print Datatype array
print("Datatype of Array:-", gfg.dtype)
  
# Print shape array
print("Shape of Array:-", gfg.shape)
  
# Generate a Vandermonde matrix of the 
# Chebyshev polynomial of degree 2
gfg_matrix = chebyshev.chebvander(gfg, 2)
print('\n', gfg_matrix)
  
# Print shape martrix
print("\nShape of Martix:-\n", gfg_matrix.shape)

输出:

Array -  [ 1  2  3  4  5  6  7  8  9 10]
Dimension of Array:- 1
Datatype of Array:- int64
Shape of Array:- (10,)

 [[  1.   1.   1.]
 [  1.   2.   7.]
 [  1.   3.  17.]
 [  1.   4.  31.]
 [  1.   5.  49.]
 [  1.   6.  71.]
 [  1.   7.  97.]
 [  1.   8. 127.]
 [  1.   9. 161.]
 [  1.  10. 199.]]

Shape of Martix:-
 (10, 3)

示例 2:

在这个例子中,我们创建了包含5个数据点的数组,并使用np.chebvander()函数传递5度,最后,我们将在python中检查生成的矩阵的形状。

import numpy as np
from numpy.polynomial import chebyshev
  
gfg = np.array([59,89,45,71,56])
  
# Print array
print("Array - ", gfg)
  
# Print dimension of the array
print("Dimension of Array:-",gfg.ndim)
  
# Print Datatype array
print("Datatype of Array:-",gfg.dtype)
  
# Print shape array
print("Shape of Array:-",gfg.shape)
  
# Generate a Vandermonde matrix of the
# Chebyshev polynomial of degree 5
gfg_matrix=chebyshev.chebvander(gfg, 5)
print('\n',gfg_matrix)
  
# Print shape martrix
print("\nShape of Martix:-\n",gfg_matrix.shape)

输出:

Array – [59 89 45 71 56] 

Dimension of Array:- 1 

Datatype of Array:- int64 

Shape of Array:- (5,) 

[[1.00000000e+00 5.90000000e+01 6.96100000e+03 8.21339000e+05 

9.69110410e+07 1.14346815e+10] 

[1.00000000e+00 8.90000000e+01 1.58410000e+04 2.81960900e+06 

5.01874561e+08 8.93308522e+10] 

[1.00000000e+00 4.50000000e+01 4.04900000e+03 3.64365000e+05 

3.27888010e+07 2.95062772e+09] 

[1.00000000e+00 7.10000000e+01 1.00810000e+04 1.43143100e+06 

2.03253121e+08 2.88605118e+10] 

[1.00000000e+00 5.60000000e+01 6.27100000e+03 7.02296000e+05 

7.86508810e+07 8.80819638e+09]] 

Shape of Martix:- 

(5, 6) 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Numpy教程