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 | |

------------------------------------------------------------

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 | |

------------------------------------------------------------