Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a closed set of 4 linear matrix (3x3) transforms. Let's name them (A,B,C,D). Closed set means that $D*C*B*A=E$, where $E=eye(3)$. Their numeric representation is known from experiment and, therefore, is subject to some error. Of course, knowing all 4 elements of the closed set is excessive, and the errors may lead to non self-consistency, when the above equation is not satisfied, so I would like to use this extra information to compensate for the errors.

For my purposes I need to calculate relative transforms from element #0 to all other elements, which are given by these transforms. Because of the errors this is ambiguos, for example:
for (0→0) transform I could use both $E$ and $D*C*B*A$;
for (0→1) transform: $A$ and $B^{-1}*C^{-1}*D^{-1}$;
for (0→2): $B*A$ and $C^{-1}*D^{-1}$, finally
for (0→3): $C*B*A$ and $D^{-1}$

I would like to use some optimization method or other algorithm to ensure that my transforms had possibly smaller error and were self-consistent, i.e. didn't depend on direction of traverse.

Thanks in advance

share|cite|improve this question
up vote 0 down vote accepted

I think, you should execute the steps below. Let's search for a little bit modified matrices $\tilde{A}, \tilde{B}, \tilde{C}$ and $\tilde{D}$, such that these matrices satisfy your closedness condition. At the same time we need to minimise the deviation of each matrix from the given one in terms of Frobenius norm. So it gives us an optimization procedure of the form
$\min\limits_{\tilde{D}\tilde{C}\tilde{B}\tilde{A}=E} \{\|A-\tilde{A}\|^2+\|B-\tilde{B}\|^2+\|C-\tilde{C}\|^2+\|D-\tilde{D}\|^2\}.$

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.