Computational Engineering w/Maxima



On 04/18/2013 12:28 PM, Henry Baker wrote:

> The 18.085 videos don't rely on very much in Matlab, but I think that Strang's
> textbook may rely on Matlab a lot more -- perhaps the textbook exercises are
> based on Matlab.
...
> Perhaps the "R" language matches Matlab better?

If you're looking for compatibility with existing software or coursework 
based on Matlab, you definitely should consider Octave which has 
compatibility as a design goal. I use both Octave and Maxima and of 
course Octave is great for numerics while Maxima is amazing for symbolic 
computation---even though they both have cross-over capabilities 
(symbolic package in Octave and numerical capabilities of Maxima). The 
Unix philosophy of a best tool for the job, and all that.


> The main things that Strang seems to use are "eye()" for "ident()", and
> a complicated Matlab operator A\x, which has the effect of (A^^-1).x, but is
> (supposedly) far more efficient -- particularly for sparse matrices.
>
> Strang also uses Toeplitz(), which in Maxima is roughly the same as it is
> in Matlab.

Yup, Octave got all of those. People have been considering a unified 
mathematics environment (e.g. the Sage project)--but that's based on 
using multiple underlying systems rather than unifying them into one 
monolithic system. Note that Octave back end is essentially an interface 
to specialized linear algebra libraries (BLAS/ATLAS/DGEMM/etc) and it 
draws its speed from the careful data management of large binary 
floating point arrays. It wouldn't be impossible in a Lisp based system 
like Maxima but probably would be a lot of duplicate work.