# What software one needs to solve a big linear system on a small computer?

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.

-
You might want to ask this on scicomp.stackexchange.com . – David Speyer Oct 19 '12 at 13:27
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

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.

-
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
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

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.

-

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).

-