I have not used matlab a lot, and not for some time, but I have colleagues in numerical optimization who use it heavily. I think there is essentially no chance that such people would move from matlab to sage. The only complaints I have heard are occasional mutterings about licensing. Matlab has very close connections with academics working in various forms of numerical analysis, and this is one of its strengths. The user interface is functional and pleasant to use. (Sage's syntax is very wordy and tab completion is at best poor compensation. I recognize this will not be easily fixed.)
One big advantage of sage is that one can do numerical calculations along with computations in algebra or number theory or graph theory... For my own work I find myself wanting to do numerical computations on adjacency matrices of graphs. For this matlab is not very useful because it is awkward to generate the graphs or read them in from a unix pipe. And if I wanted to compute an automorphism group, I am entirely lost. So I have been using sage for numerical computations. The good news is that it works. The bad news is that it is a very frustrating experience. To illustrate with an example, I wanted to compute spectral decompositions of symmetric real matrices. This means I need the eigenvalues and an orthogonal basis for each eigenspace. I must use scipy/numpy, because sage does not recognise that eigenvalues of symmetric matrices are real. Now the fun starts. The sort of incantations needed to load stuff from numpy and scipy are difficult to sort out. Basically you make some semi-random trials until the output seems plausible, and then hope everything is working. The fact that the syntax for scipy and numpy differs from that of sage is just one more nuisance. For documentation, sage punts to the documentation for scipy and numpy, which is poor (and does not seem to be written by people who understand numerical computation). A more general issue is that, once I decide I want to work in floating point, I want to stay in floating point. I do not really want to deal with stuff like: > sage: sin(2.0*pi) > sin(2.00000000000000*pi) And I'd love to see an engineer's face when s/he enters A.kernel() and gets back a message about free modules. I agree strongly with comments of Pedro and Simon that editor+shell is superior to the notebook for this sort of work. To finish, a few key points: 1. When I am doing numerical linear algebra, I'd like code to return scalars, vectors, matrices. So A.kernel() should just return either a basis or a matrix, for example. The default routines should call LAPACK or an equivalent, and we should have access to as many of these as possible. (All actual code should have been written by a professional numerical analyst.) 2. Any computation which contains a floating point number or variable should return a floating point variable. 3. The syntax and behaviour should be consistent, whether I am doing numerical linear algebra, linear programming, semidefinite optimization, numerical integration,... On Aug 15, 3:58 pm, William Stein <wst...@gmail.com> wrote: > Hi, > > If somebody walked up to *you* and asked: "Is Sage now a viable > alternative to MATLAB?" what would you say? > I'm especially interested in what people who do numerical/applied > computation think. > > My answer: "It's very difficult for *me* to answer this question > myself, because MATLAB is useless for most of my own > teaching/research/work, but I realize it is very widely used in > applied mathematics. Based on going to Scipy and the resources I've > seen online, it appears that the Numpy/Scipy stack is extremely useful > to actual people doing numerical computation. Maybe I'll try > asking on sage-devel." > > [NOTE: I am interested in people's answers, rather than somebody > hijacking this thread to try to define "viable alternative" or say > this isn't a scientific survey or something. Please try not to hijack > this thread. Thanks!] > > -- William > > -- > William Stein > Professor of Mathematics > University of Washingtonhttp://wstein.org -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org