PDA

View Full Version : Levenberg-Marquardt

Michael Liebschner
02-14-1995, 05:06 PM
Hello,

here is my trail to separate the problem I have with Marquardt:

Franted I have a vertebra with some defined points and an image of the ver-
tebra, e.g.CT. The corresponding points on the patient I measure with an opto-
electrical pointer.
So I have associated points in two different coordinate systems.

If we want to use the data, we have to fit one coordinate system into the other
with a transformation.

And there is the little difficulty, we have measurement errors and coefficient
with 3 independent variables (x,y,z). In a 2 dimensional plane, we have to
solve one polynomial function 2. order, but in the 3D room we have a 3x3 matrix
for the rotation and 3 translations.

With the analytical and numerical methods I know, I only can solve linear or
nonlinear equation systems I have built from the polynoms. The Levenberg-
Marquardt algorithm from Numerical Recipes in C does exactly this, but only
for a scalar not for pointvectors.

How can i use the LM algo when I have, instead of the polynom, a matrix, a
matrix like

| R t |
M = | |
| 0 1 |

| cosf*cosg -sinf*cosg sing |
R = | cosf*sing*sinh+sinf*cosh -sinf*sing*sinh+cosf*cosh -cosg*sinh |
| -cosf*sing*cosg+sinf*sinh sinf*sing*sinh+cosf*sinh cosg*cosh |

where the solution shoud be y=Mx and y,x are vectors for one point in each
3D system and M ist the transformation matrix ??

My further question is, has somebody written such an algorithm in C ore C++ ???

Thank you for your help.

------------------------------------------------------------
| Michael Liebschner | Tel: +41 31 632 8679 |
| M.E.M. Inst. for Biomechanics | Fax: +41 31 381 0259 |
| University of Bern | Internet mike@mem.unibe.ch |
| Murtenstr. 35, P.O.Box 30 | |
| CH-3010 Bern, Switzerland | |
------------------------------------------------------------