numpy.ma.vander¶
-
numpy.ma.
vander
(x, n=None)[source]¶ 生成Vandermonde矩阵。
输出矩阵的列是输入向量的幂。幂的阶数由增加的布尔参数决定。具体地,当增加为False时,i输出列是按
N - i - 1
。这样的在每行中具有几何级数的矩阵被命名为Alexandre-Theophile Vandermonde。参数: x:array_like
1-D输入数组。
N:int,可选
输出中的列数。如果未指定N,则返回正方形数组(
N = len(x) / t1>)。
增加:bool,可选
列的权力的顺序。如果为True,则功率从左到右增加,如果为False(默认值),则它们相反。
版本1.9.0中的新功能。
返回: out:ndarray
Vandermonde矩阵。如果增加是假,则第一列是
x^(N-1)
,第二个x^(N-2)
如果增加为真,则列为x ^ 0, x ^ 1, ..., t4 > x ^(N-1)
。也可以看看
polynomial.polynomial.polyvander
笔记
输入数组中的掩码值导致零行。
例子
>>> 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]])
正方形Vandermonde矩阵的行列式是输入向量的值之间的差的乘积:
>>> np.linalg.det(np.vander(x)) 48.000000000000043 >>> (5-3)*(5-2)*(5-1)*(3-2)*(3-1)*(2-1) 48