Rate this Page

torch.linalg.vander#

torch.linalg.vander(x,N=None)Tensor#

Generates a Vandermonde matrix.

Returns the Vandermonde matrixVV

V=(1x1x12x1N11x2x22x2N11x3x32x3N11xnxn2xnN1).V = \begin{pmatrix} 1 & x_1 & x_1^2 & \dots & x_1^{N-1}\\ 1 & x_2 & x_2^2 & \dots & x_2^{N-1}\\ 1 & x_3 & x_3^2 & \dots & x_3^{N-1}\\ \vdots & \vdots & \vdots & \ddots &\vdots \\ 1 & x_n & x_n^2 & \dots & x_n^{N-1} \end{pmatrix}.

forN > 1.IfN= None, thenN = x.size(-1) so that the output is a square matrix.

Supports inputs of float, double, cfloat, cdouble, and integral dtypes.Also supports batches of vectors, and ifx is a batch of vectors thenthe output has the same batch dimensions.

Differences withnumpy.vander:

  • Unlikenumpy.vander, this function returns the powers ofx in ascending order.To get them in the reverse order calllinalg.vander(x,N).flip(-1).

Parameters

x (Tensor) – tensor of shape(*, n) where* is zero or more batch dimensionsconsisting of vectors.

Keyword Arguments

N (int,optional) – Number of columns in the output. Default:x.size(-1)

Example:

>>>x=torch.tensor([1,2,3,5])>>>linalg.vander(x)tensor([[  1,   1,   1,   1],        [  1,   2,   4,   8],        [  1,   3,   9,  27],        [  1,   5,  25, 125]])>>>linalg.vander(x,N=3)tensor([[ 1,  1,  1],        [ 1,  2,  4],        [ 1,  3,  9],        [ 1,  5, 25]])