numpy.vander
numpy.vander(x, N=None, increasing=False) [source]
生成范德蒙矩阵。
输出矩阵的列是输入向量的幂。 幂的顺序由递增的布尔参数确定。 具体来说,当增加为False时,第i个输出列是逐元素提高到N-i-1
的幂的输入向量。 每行中具有几何级数的矩阵以Alexandre-Theophile Vandermonde的名字命名。
参数 : | x :array_like 一维输入数组。 N : 输出中的列数。 如果未指定N, 则返回一个正方形数组( increasing : 列的幂顺序。 如果为True,则幂从左到右增加, 如果为False(默认值),则它们的功率相反。 1.9.0版中的新功能。 |
返回值 : | out : 范德蒙矩阵。 如果递增为False,则第一列为 第二列为 则列为 |
例子
1)默认行为(按递减顺序排列幂次)
import numpy as np
# 输入数组
x = np.array([1, 2, 3, 5])
# 生成Vandermonde矩阵
vander_matrix = np.vander(x)
print("Vandermonde Matrix (default):")
print(vander_matrix)
2)指定列数N
import numpy as np
# 输入数组
x = np.array([1, 2, 3, 5])
# 生成列数为3的Vandermonde矩阵
vander_matrix = np.vander(x, N=3)
print("Vandermonde Matrix with N=3:")
print(vander_matrix)
3)按递增顺序排列幂次
import numpy as np
# 输入数组
x = np.array([1, 2, 3, 5])
# 生成按递增顺序排列幂次的Vandermonde矩阵
vander_matrix = np.vander(x, increasing=True)
print("Vandermonde Matrix (increasing=True):")
print(vander_matrix)
4)生成按递增顺序排列幂次的Vandermonde矩阵
import numpy as np
# 输入数组
x = np.array([1, 2, 3, 5])
# 生成按递增顺序排列幂次的Vandermonde矩阵
vander_matrix_increasing = np.vander(x, increasing=True)
print("Vandermonde Matrix with increasing=True:")
print(vander_matrix_increasing)
5)计算Vandermonde矩阵的行列式
import numpy as np
# 输入数组
x = np.array([1, 2, 3, 5])
# 生成Vandermonde矩阵
vander_matrix = np.vander(x)
# 计算行列式
det_vander = np.linalg.det(vander_matrix)
print("Determinant of the Vandermonde Matrix:")
print(det_vander)
# 验证计算
expected_det = (5-3)*(5-2)*(5-1)*(3-2)*(3-1)*(2-1)
print("Expected Determinant:")
print(expected_det)