Help solving an equation for 3d modeling

  • Context: Undergrad 
  • Thread starter Thread starter edward5elric
  • Start date Start date
  • Tags Tags
    3d Modeling
Click For Summary

Discussion Overview

The discussion revolves around solving a problem related to linear algebra in the context of 3D modeling. Participants are exploring the relationship between matrices and vectors, specifically how to derive a matrix X that transforms one vector into another through matrix multiplication.

Discussion Character

  • Technical explanation
  • Mathematical reasoning

Main Points Raised

  • One participant describes their approach to finding matrix X using the equation X = M2 * M1_inverse, but notes that this does not yield the expected results.
  • Another participant asserts that X = M2 * M1^-1 is correct, suggesting that the issue lies in the implementation rather than the mathematical formulation.
  • A different participant proposes checking the correctness of the matrix inverse and the order of multiplication in the programming routine as potential sources of error.
  • One participant cautions against "crossing out" terms in linear algebra, emphasizing the importance of using inverse operations instead.

Areas of Agreement / Disagreement

There is no consensus on the source of the problem, as participants suggest different troubleshooting steps and approaches. Some agree on the correctness of the mathematical formulation, while others highlight potential implementation errors.

Contextual Notes

Participants mention the importance of ensuring that M1 is invertible and verifying the order of operations in matrix multiplication, but these aspects remain unresolved within the discussion.

edward5elric
Messages
2
Reaction score
0
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.
 
Physics news on Phys.org
X = M2*M1^-1 is correct, so it would seem your implementation is wrong somehow?
 
Thanks. I probably made a programming error.
 
I take it the problem isn't anything so obvious as M1 being not always invertible?
 
edward5elric said:
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
 
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
 

Similar threads

  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 10 ·
Replies
10
Views
4K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 16 ·
Replies
16
Views
1K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K