linalg_inv {torch}R Documentation

Computes the inverse of a square matrix if it exists.

Description

Throws a runtime_error if the matrix is not invertible.

Usage

linalg_inv(A)

Arguments

A

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

Details

Letting \mathbb{K} be \mathbb{R} or \mathbb{C}, for a matrix A \in \mathbb{K}^{n \times n}, its inverse matrix A^{-1} \in \mathbb{K}^{n \times n} (if it exists) is defined as

Equation not displayed. Install 'katex' then re-install 'torch'.

where \mathrm{I}_n is the n-dimensional identity matrix.

The inverse matrix exists if and only if A is invertible. In this case, the inverse is unique. 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.

Consider using linalg_solve() if possible for multiplying a matrix on the left by the inverse, as linalg_solve(A, B) == A$inv() %*% B It is always prefered to use linalg_solve() when possible, as it is faster and more numerically stable than computing the inverse explicitly.

See Also

linalg_pinv() computes the pseudoinverse (Moore-Penrose inverse) of matrices of any shape. linalg_solve() computes A$inv() %*% B with a numerically stable algorithm.

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

Examples

if (torch_is_installed()) {
A <- torch_randn(4, 4)
linalg_inv(A)
}

[Package torch version 0.12.0 Index]