Take the 2-minute tour ×
MathOverflow is a question and answer site for professional mathematicians. It's 100% free, no registration required.

A time ago I was intrigued by the following remark: "... one ends up with a (non-sparse) system of equations in about 10000 real variables. One important practical point is that solving such systems is now well within the capabilities of a standard desctop PC;...". The above is a quote from Notices of AMS 55 no. 9 (October 2008), page 1093 (left). Occasionally, I have to solve a system or two which are not the size of an undergraduate excercise in linear algebra. In my experience, Maple become pretty useless for the purpose as soon as the number of variables approaches 1000.

QUESTION: What kind of software I need to solve such a big system on a "standard desctop PC"?

P.S. It's a pity that in the quoted article ("Uncovering a New L-function" by A.R.Booker) there is no single word about this.

share|improve this question
5  
You might want to ask this on scicomp.stackexchange.com . –  David Speyer Oct 19 '12 at 13:27
1  
You're a little imprecise about what kind of computation you want to do. Are your coefficients complex, integer, rational, perhaps something else? To what extent are you tolerant of errors? –  Ryan Budney Oct 19 '12 at 17:55

3 Answers 3

up vote 6 down vote accepted

Linear systems of 10,000 equations in 10,000 unknowns can easily be solved in a few seconds using double precision floating point arithmetic on typical consumer grade PC's and even laptop computers.

If you're writing your main program in a compiled language like C or Fortran, you consider using the LAPACK and BLAS libraries to do this kind of work.

If you're looking for a higher level language to do this, then consider MATLAB (or its open source work-alike, Octave.) Actually, Maple can do this kind of computation too, but it can be quite hard to force Maple into using floating point arithmetic rather than its normal symbolic computation mode.

share|improve this answer
    
Thank you. I don't have MATLAB at hand; probably I will try Octave for the first. –  Alex Gavrilov Oct 19 '12 at 15:00
1  
I also recommend octave. 10000 x 10000 is doable, although the matrix needs 800MB (if not sparse). On my laptop it takes about a minute to solve a system like this. –  Dirk Oct 19 '12 at 15:47

They certainly talk about approximate solving, i.e. an iterative method, using a floating point machine precision. Maple does not do this. Certainly, if your system is very badly conditioned, this might still be quite impossible task (on any computer)...

(I started to write this, and then Brian posted his answer, and he covers the numerics side quite well).

share|improve this answer

Mathematica will do this with no problems (actually, you can use your GPU to do it REALLY fast). Unlike Maple (apparently) there is no problem getting mathematica to use floating point computation, but much larger systems than what you are describing are problematic since there is a lot of memory overhead.

If ALL you are doing is numerical linear algebra, there is no reason to not use, e.g., MATLAB, however if the numerical algebra is only a part of your "workflow", then a general purpose system may be more useful.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.