Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Very confusing problem in Mathematica

  1. Oct 28, 2009 #1
    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.


  2. jcsd
  3. Oct 28, 2009 #2


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    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.
  4. Oct 28, 2009 #3
    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 [Broken]) from Intel are used.

    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: May 4, 2017
  5. Oct 28, 2009 #4


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    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.
  6. Oct 28, 2009 #5
    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.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook