Revision history [back]

Is matrix calculus possible within sagemath?

For example, is it possible to compute the following partial derivative in Sagemath:

$$A_{ij} = \frac{\partial e_{ij}(x)}{\partial x_i} = \begin{pmatrix} -R_{ij}^T R_i^T & R_{ij}^T \frac{\partial R_i^T}{\partial \theta_i} (t_j - t_i) \\ 0^T & -1 \end{pmatrix}$$

for

$$e_{ij}(x) = \begin{pmatrix} R_{ij}^T (R_i^T (t_j - t_i) - t_{ij}) \\ \theta_j - \theta_i - \theta_{ij} \end{pmatrix}$$

and

$$x_i^T = (t_i^T, \theta_i)$$ $$z_{ij}^T = (t_{ij}^T, \theta_{ij})$$

The background shouldn't be important, but just for completeness: this example is an excerpt from Robotics, especially the problem of Pose Graph Simultaneous Mapping and Localization. $x_i$ defines a pose in $\mathbb{R}^2$ with translation $t_i$ and rotation angle $\theta_i$, $z_{ij}$ defines a transform between two poses and $e_{ij}(x)$ defines the error between two poses, i.e. a transform between them.