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

Mathematica limited

  1. Apr 3, 2005 #1
    I am trying to slove systems of equations by Mathematica5.0
    i need to Know how many equations & variables in ones systems can Mathematica5.0 solve??
    i mean what is limit Mahematica??

    is my question clear?? forgive my poor language :blushing:
     
  2. jcsd
  3. Apr 3, 2005 #2
    I would suspect that there is no real limit other than memory and that like on your computer -- atleast if we are talking about linear equations.
     
  4. Apr 3, 2005 #3

    PerennialII

    User Avatar
    Science Advisor
    Gold Member

    Yeah, you can get Mathematica on 64 bit Unix platforms which are pretty capable of doing some heavy duty equation solving work.
     
  5. Apr 3, 2005 #4
    It depends on the type of system you're trying to solve. Is it sparse, is it dense, is it structured? There are two limiting factors: how much memory you have to store the system, and how many operations are required to perform the solve.

    For a sparse symmetric system, plain old Gaussian elimination or LU decomposition can solve the system in O(n) complexity, for just sparse I think you can get as low as O(n^1.2), and for a dense system they have complexity O(n^3) and require memory storage of O(n^2), where n is the size of the system.

    There are much better iterative methods that can solve sparse symmetric in O(kn), sparse in O(k^2 n), and dense systems in O(k n^2) complexity and O(k n^2) memory required straight out of the box. Here k is the number of iterations. If you precondition the system properly k << n and the k is negligable, and in the worst case scenario k = n.

    However, there are ways to cheat and get down to O(nlogn) for complexitiy and memory.

    You should be able to solve a system of a few hundred equations almost instantaneously. As long as you have enough memory to store the procedure, it will just start to take longer and longer as the system grows. For a dense system of size 100,000 you better use an iterative method with a good preconditioner. And once you get to size one million, which is too large to store in memory, there are other tricks to get around that if your system comes from some structured layout and doesn't need to be stored all at once.

    I don't know about mathematica, but in matlab I think the default method is GE. If you specify a sparse matrix, it may use the sparse methods. Beyond that I think you need to use your own program for the other methods.
     
    Last edited: Apr 3, 2005
  6. Apr 3, 2005 #5

    saltydog

    User Avatar
    Science Advisor
    Homework Helper

    I believe I heard it was a million equations (linear) in a million unknowns.
     
  7. Apr 5, 2005 #6
    Thaks very much
    Also i want to ask
    if i have these linear equations:
    ax+by=c
    dx+fy=e
    in Mathematica,are there commands to gernerate equations??as matrix or random command...
     
    Last edited: Apr 5, 2005
  8. Apr 5, 2005 #7

    saltydog

    User Avatar
    Science Advisor
    Homework Helper

    Sorry but that's confusing to at least me anyway. Can you be more specific? The most complicated thing I've done with Mathematica involving simultaneous equations is about 1000 in 1000 unknowns in regards to finite-difference approximations to "simple" PDEs in a nice square grid. Got more than a 1000?
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?