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)