PDA

View Full Version : Help solving an equation for 3d modeling


edward5elric
May24-10, 11:06 PM
This is my first post and I'm pretty much lost when it comes to linear algebra. I am a programmer and I am currently working on converting a 3D model format for personal purposes. I am having trouble figuring out an equation. If you want the background of what I am doing I'll be happy to explain but it really isn't necessary to solve my problem.

Lets say that I have two matrices (4x4) M1 and M2. One vector4 v. I transform v by M1 to get v1 and v by M2 to get v2. So...

M1 * v = v1
M2 * v = v2

I am looking for some matrix X.

X * v1 = v2, solve for X.

What I came up with is X = (M2 * v) / (M1 * v), cross out v and get X = M2 / M1 or X = M2 * M1_inverse.

This does not produce the result I am looking for. Any suggestions? Thank you for any help.

Lord Crc
May24-10, 11:47 PM
X = M2*M1^-1 is correct, so it would seem your implementation is wrong somehow?

edward5elric
May25-10, 12:45 PM
Thanks. I probably made a programming error.

Rasalhague
May25-10, 01:13 PM
I take it the problem isn't anything so obvious as M1 being not always invertible?

Lord Crc
May25-10, 03:36 PM
Thanks. I probably made a programming error.

I'd start by checking that the inverse is actually the inverse, ie multiply by M1 and see you get (almost) the identity matrix. Next I'd check that I got the order of the multiplication right for the matrix multiplication routine I'm using (ie perhaps you should call it with (M1inv, M2) and not the "natural" way).

As a side note, a slightly less "hairy" way to get to the answer is this:

M1 * v = v1 ==> M1^-1 * M1 * v = M1^-1 * v1 ==> v = M1^-1 * v1

M2 * v = v2 ==> M2 * (M1^-1 * v1) = v2 ==> (M2 * M1^-1) * v1 = v2

daviddoria
May29-10, 06:38 AM
I agree with Lorc Crc - I wouldn't do any "crossing out" in linear algebra - or even division for that matter - always move things around with the inverse operation.

Dave