linalg_eigh {torch}R Documentation

Computes the eigenvalue decomposition of a complex Hermitian or real symmetric matrix.

Description

Letting \mathbb{K} be \mathbb{R} or \mathbb{C}, the eigenvalue decomposition of a complex Hermitian or real symmetric matrix A \in \mathbb{K}^{n \times n} is defined as

Usage

linalg_eigh(A, UPLO = "L")

Arguments

A

(Tensor): tensor of shape ⁠(*, n, n)⁠ where * is zero or more batch dimensions consisting of symmetric or Hermitian matrices.

UPLO

('L', 'U', optional): controls whether to use the upper or lower triangular part of A in the computations. Default: 'L'.

Details

Math could not be displayed. Please visit the package website.

where Q^{H} is the conjugate transpose when Q is complex, and the transpose when Q is real-valued. Q is orthogonal in the real case and unitary in the complex case.

Supports input of float, double, cfloat and cdouble dtypes. Also supports batches of matrices, and if A is a batch of matrices then the output has the same batch dimensions.

A is assumed to be Hermitian (resp. symmetric), but this is not checked internally, instead:

Value

A list ⁠(eigenvalues, eigenvectors)⁠ which corresponds to \Lambda and Q above. eigenvalues will always be real-valued, even when A is complex.

It will also be ordered in ascending order. eigenvectors will have the same dtype as A and will contain the eigenvectors as its columns.

Warning

Note

The eigenvalues of real symmetric or complex Hermitian matrices are always real.

See Also

Other linalg: linalg_cholesky_ex(), linalg_cholesky(), linalg_det(), linalg_eigvalsh(), linalg_eigvals(), linalg_eig(), linalg_householder_product(), linalg_inv_ex(), linalg_inv(), linalg_lstsq(), linalg_matrix_norm(), linalg_matrix_power(), linalg_matrix_rank(), linalg_multi_dot(), linalg_norm(), linalg_pinv(), linalg_qr(), linalg_slogdet(), linalg_solve_triangular(), linalg_solve(), linalg_svdvals(), linalg_svd(), linalg_tensorinv(), linalg_tensorsolve(), linalg_vector_norm()

Examples

if (torch_is_installed()) {
a <- torch_randn(2, 2)
linalg_eigh(a)
}

[Package torch version 0.13.0 Index]