Shortcuts

pypose.optim.solver.PINV

class pypose.optim.solver.PINV(atol=None, rtol=None, hermitian=False)[source]

The batched linear solver with pseudo inversion.

\[\mathbf{A}_i \bm{x}_i = \mathbf{b}_i, \]

where \(\mathbf{A}_i \in \mathbb{C}^{M \times N}\) and \(\bm{b}_i \in \mathbb{C}^{M \times 1}\) are the \(i\)-th item of batched linear equations.

The solution is given by

\[\bm{x}_i = \mathrm{pinv}(\mathbf{A}_i) \mathbf{b}_i, \]

where \(\mathrm{pinv}()\) is the pseudo inversion function.

Parameters
  • atol (float, Tensor, optional) – the absolute tolerance value. When None it’s considered to be zero. Default: None.

  • rtol (float, Tensor, optional) – the relative tolerance value. Default: None.

  • hermitian (bool, optional) – indicates whether \(\mathbf{A}\) is Hermitian if complex or symmetric if real. Default: False.

More details go to torch.linalg.pinv.

Warning

It is always preferred to use LSTSQ(), which is faster and more numerically stable.

Examples

>>> import pypose.optim.solver as ppos
>>> A, b = torch.randn(2, 3, 3), torch.randn(2, 3, 1)
>>> solver = ppos.PINV()
>>> x = solver(A, b)
tensor([[[-0.2675],
         [-0.1897],
         [ 0.2708]],
        [[-0.3472],
         [ 1.1191],
         [ 0.3301]]])
forward(A, b)[source]
Parameters
  • A (Tensor) – the input batched tensor.

  • b (Tensor) – the batched tensor on the right hand side.

Returns

the solved batched tensor.

Return type

Tensor

Docs

Access documentation for PyPose

View Docs

Tutorials

Get started with tutorials and examples

View Tutorials

Get Started

Find resources and how to start using pypose

View Resources