linalg_solve {torch} | R Documentation |
Computes the solution of a square system of linear equations with a unique solution.
Description
Letting be
or
,
this function computes the solution
of the linear system associated to
, which is defined as
Usage
linalg_solve(A, B)
Arguments
A |
(Tensor): tensor of shape |
B |
(Tensor): right-hand side tensor of shape |
Details
This system of linear equations has one solution if and only if is
invertible
_.
This function assumes that is invertible.
Supports inputs of float, double, cfloat and cdouble dtypes.
Also supports batches of matrices, and if the inputs are batches of matrices then
the output has the same batch dimensions.
Letting *
be zero or more batch dimensions,
If
A
has shape(*, n, n)
andB
has shape(*, n)
(a batch of vectors) or shape(*, n, k)
(a batch of matrices or "multiple right-hand sides"), this function returnsX
of shape(*, n)
or(*, n, k)
respectively.Otherwise, if
A
has shape(*, n, n)
andB
has shape(n,)
or(n, k)
,B
is broadcasted to have shape(*, n)
or(*, n, k)
respectively.
This function then returns the solution of the resulting batch of systems of linear equations.
Note
This function computes X = A$inverse() @ B
in a faster and
more numerically stable way than performing the computations separately.
See Also
Other linalg:
linalg_cholesky_ex()
,
linalg_cholesky()
,
linalg_det()
,
linalg_eigh()
,
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_svdvals()
,
linalg_svd()
,
linalg_tensorinv()
,
linalg_tensorsolve()
,
linalg_vector_norm()
Examples
if (torch_is_installed()) {
A <- torch_randn(3, 3)
b <- torch_randn(3)
x <- linalg_solve(A, b)
torch_allclose(torch_matmul(A, x), b)
}