在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)