# Help solving an equation for 3d modeling

1. May 24, 2010

### edward5elric

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.

2. May 24, 2010

### Lord Crc

X = M2*M1^-1 is correct, so it would seem your implementation is wrong somehow?

3. May 25, 2010

### edward5elric

Thanks. I probably made a programming error.

4. May 25, 2010

### Rasalhague

I take it the problem isn't anything so obvious as M1 being not always invertible?

5. May 25, 2010

### Lord Crc

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

6. May 29, 2010

### daviddoria

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