torch.linalg.vander — PyTorch 2.7 documentation (original) (raw)
torch.linalg.vander(x, N=None) → Tensor¶
Generates a Vandermonde matrix.
Returns the Vandermonde matrix VV
V=(1x1x12…x1N−11x2x22…x2N−11x3x32…x3N−1⋮⋮⋮⋱⋮1xnxn2…xnN−1).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}.
for N > 1. If N
= None, then N = 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 if x
is a batch of vectors then the output has the same batch dimensions.
Differences with numpy.vander:
- Unlike numpy.vander, this function returns the powers of
x
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 dimensions consisting 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]])