Mathematica Very confusing problem in Mathematica

AI Thread Summary
The discussion centers on a user encountering discrepancies in solving a linear system of equations using Mathematica and MathCad. The user finds that while both programs yield the same results when using LinearSolve or calculating the inverse, they produce different solutions when the order of multiplication is altered. It is noted that MathCad's LinearSolve may be structured to solve equations in the form xA = b, leading to potential confusion with vector orientations. The conversation highlights the importance of understanding how each software interprets matrix operations and emphasizes the need for clarity in documentation regarding these distinctions. The user remains uncertain about resolving the issue and seeks further clarification from the community.
LucianImago
Messages
6
Reaction score
0
Hi everybody,

Last time I was here I was asking about finding roots but many things have progressed. Anyway I have another problem now.

I have a linear system of equations which I'd like to solve: A.X==B

And I tried two things: get the inverse of A and multiply it with B and also use LinearSolve. Both gave me the same result so far so good.

The weird part happened when I did the same thing in MathCad. I used the same system of equations and the same everything. I tried the two methods and I got different solutions for X.

But the only way to get the two programs to agree (I did this as a fluke) is if in Mathematica I do: X=B.Inverse[A] and in MathCad i have X=Inverse[A].B.

I don't get it. What is this? What is it that I don't see?

I would very much appreciate if someone can clarify this for me.

Cheers,

Lucian
 
Physics news on Phys.org
Check the documentation on MathCad's version of LinearSolve -- I bet it's written to solve xA=b.

Many (all?) interactive computer algebra systems don't distinguish between row and column vectors -- it infers what you wanted from context.
 
This is what MathCad says about their lsolve:

lsolve(M, v) Returns the solution x for the linear system of equations M·x = v, using LU decomposition. The BLAS/LAPACK libraries (http://www.intel.com/software/products/mkl/features/lin_alg.htm ) from Intel are used.

Arguments:
M is a real or complex matrix. If the matrix is square, it must be non-singular.
v is a real or complex vector or matrix having the same number of rows as M.

And the same thing is said about LinearSolve in mathematica. No if what you are saying is true then how can I tell the program which is a row and which is a column or what am I suppose to do because I need to solve this system. If I have: B.Inverse[A] in mathematica I get the same as in Mathcad where I have Inverse[A].B, if I have B.Inverse[A] I get an answer in mathematica but not in MathCad where I get an error because this operation cannot be performed there.

So this is still confusing.
 
Last edited by a moderator:
Hrm. I still expect the answer is to be had in the documentation -- maybe something unexpected is going on with matrix multiply, or inverse, or maybe even how you enter the matrix.

Alas, the extent of my familiarity with your situation is that I find Mathematica awkward for linear algebra, so I can't be any further help. :frown:


Is A an orthogonal matrix? Try solving AT x = b and see what happens... since AT is the inverse of A in this case, that would make your initial observations misleading.
 
Yeah, I looked everywhere in the documentation. There is nothing about special cases or anything like that. If there is something going on then I don't know what to do. I hope someone on this forum knows.
 

Similar threads

Back
Top