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,则第一列为 第二列为 则列为x ^ 0,x ^ 1,..., |
例子
>>> x = np.array([1, 2, 3, 5])>>> N = 3>>> np.vander(x, N)array([[ 1, 1, 1], [ 4, 2, 1], [ 9, 3, 1], [25, 5, 1]])
>>> np.column_stack([x**(N-1-i) for i in range(N)])array([[ 1, 1, 1], [ 4, 2, 1], [ 9, 3, 1], [25, 5, 1]])
>>> x = np.array([1, 2, 3, 5])>>> np.vander(x)array([[ 1, 1, 1, 1], [ 8, 4, 2, 1], [ 27, 9, 3, 1], [125, 25, 5, 1]])>>> np.vander(x, increasing=True)array([[ 1, 1, 1, 1], [ 1, 2, 4, 8], [ 1, 3, 9, 27], [ 1, 5, 25, 125]])
平方范德蒙矩阵的行列式是输入向量的值之间的差的乘积:
>>> np.linalg.det(np.vander(x))48.000000000000043 # may vary>>> (5-3)*(5-2)*(5-1)*(3-2)*(3-1)*(2-1)48