Mathcom Home
Services Customers Tech Info Contact Us
 

NA Software Packages on the Net

Packages generally include an NA library and an interpretive language for a front end. Also see Symbolic Algebra , for free symbolic algebra packages.
  • Octave
  • RLaB
  • Scilab
  • Tela
  • Euler
  • Yorick
  • PETSc
  • The Blitz++ Numerical Library Project
  • Ascend
  • Algae, formerly called Alki

    Octave

    Octave is considered the closest-to-Matlab of the Matlab clones.

    Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically.

    Octave can do arithmetic for real and complex scalars and matrices, solve sets of nonlinear algebraic equations, integrate functions over finite and infinite intervals, and integrate systems of ordinary differential and differential-algebraic equations.

    The Octave distribution includes a 200+ page Texinfo manual. Two and three dimensional plotting is fully supported using gnuplot.

    The underlying numerical solvers are currently standard Fortran ones like Lapack, Linpack, Odepack, the Blas, etc., packaged in a library of C++ classes.

    RLaB

    RLab is an interactive, interpreted scientific programming environment. Rlab is a very high level language intended to provide fast prototyping and program development, as well as easy data-visualization, and processing.

    Rlab is not a clone of languages such as those used by tools like Matlab or Matrix_X/Xmath. However, as Rlab focuses on creating a good experimental environment (or laboratory) in which to do matrix math, it can be called "MATLAB-like" since the programming language possesses similar operators and concepts.

    Scilab

    Scilab is another good Matlab clone.

    Scilab is a matrix-based scientific software package resembling Matlab-Simulink and Xmath-SystemBuild. Scilab contains hundreds of built-in mathematical functions, a rich set of data structures which includes polynomials, rationals, linear systems, lists, sparse matrices and comes with a number of specific toolboxes for control, signal processing, ...

    It features: Elaborate data structures (polynomial, rational and string matrices, lists, multivariable linear systems,...). Sophisticated interpreter and programming language with Matlab-like syntax. Hundreds of built-in math functions (new primitives can easily be added). Stunning graphics (2d, 3d, animation). Open structure (easy interfacing with Fortran and C via online dynamic link).

    Many built-in libraries:

  • Linear Algebra (including sparse matrices, Kronecker form, ordered Schur,...).
  • Control (Classical, LQG, H-infinity, ...).
  • Signal processing.
  • Simulation (various ode's, dassl,...).
  • Optimization (differentiable and non-differentiable, LQ solver).
  • Metanet (network analysis and optimization).
  • Symbolic capabilities through a Maple interface.

    Tela

    Tela is a general NA package with graphics, linear algebra, FFT, etc. Is this another Matlab clone?

    It is mainly targeted for prototyping large-scale numerical simulations and doing pre- and postprocessing for them, and it replaces a compiled language like C++ or Fortran in this respect. The feature set is therefore biased to operations needed in partial differential equation solvers.

    Euler

    Euler started as a MatLab clone. It is now a program, which can handle real, complex and interval numbers and matrices, has a 2D/3D graphics, a builtin modern programming language (extension of MatLab's), an exact scalar product, and the Windows 95 version can call functions in an external DLL. The OS/2 and Windows versions interact nicely with the GUI, and have a notebook style interface.

    The Unix version is free, the OS/2 version free for educational use, and the Windows version cheap shareware.

    These features make EULER an ideal tool for the tasks such as

  • Inspecting and discussing functions of one real or complex variable.
  • Viewing surfaces in parameter representation.
  • Linear algebra and eigenvalue computation.
  • Testing numerical algorithms.
  • Solving differential equations numerically.
  • Computing polynomials.

    Yorick

    Yorick is an interpreted language. It has:
  • A C-like language, but without declarative statements. Operations between arrays require no explicit loops, which accounts for Yorick's high speed. Scientific computing and numerical analysis are the goals of most Yorick sessions.
  • An X window system interactive graphics package.
  • A library of functions written in the Yorick language.

    Because Yorick can read either text or binary files, it can be used "out of the box" as a pre- and post-processor for most existing physics simulation programs.

    As a pre-processor, you can write a Yorick program that produces complicated input files for a simulation. These might be based on output from other programs, or might require evaluation of complicated functions or involve a lot of repetition.

    As a post-processor, Yorick allows you to compare the results of several simulations or to analyze results of a single simulation in ways you did not foresee when you ran it.

    PETSc

    The Portable, Extensible Toolkit for Scientific Computation (PETSc) provides many tools for the parallel (and uniprocessor), numerical solution of PDEs that require solving large-scale, sparse nonlinear systems of equations. PETSc includes nonlinear and linear equation solvers that employ a variety of Newton techniques and Krylov subspace methods. In addition, PETSc provides several parallel sparse matrix formats, including compressed row, block compressed row, and

    PETSc is a set of parallel software libraries for the implicit solution of PDEs and related problems. New features include:

  • a parallel, sparse, symmetric matrix storage format, this includes support for sequential Cholesky and ICC(k)
  • a complete framework for parallel linear multigrid on structured grids (for both linear and nonlinear problems)
  • Mandel's balancing Neumann-Neumann method for scalar PDEs
  • an interface to the Tufo-Fischer highly efficient parallel coarse grid direct solver library tfs
  • support for managing "composite" vectors consisting of subvectors that represent conceptually different quantities (for example, constraints or Lagrange multipliers)
  • more complete hypertext documentation, including links to hypertext versions of all the examples and source code

    The Blitz++ Numerical Library Project

    Blitz++ is a C++ template class library for scientific computing. It offers a high level of abstraction, but performance which appears to be rivalling that of Fortran. The current alpha version supports arrays and vectors. Matrices are only partially implemented and undocumented; use at your own peril.

    Ascend

    ASCEND IV is a free, large-scale, equation-based, environment featuring a strongly-typed, object-oriented model-description language. ASCEND is designed to reduce the time needed for creating, debugging, and solving mathematical models by orders of magnitude in comparison with C++-like and FORTRAN-like languages.

    ASCEND includes interactive support tools for modeling, debugging, and solving systems with tens of thousands of nonlinear algebraic or differential equations. Including:

  • a library of equilibrium-based unit operations for chemical engineering and an easily extensible physical properties library with thirty-four common species.
  • user-centered structured methodology for reaching correct problem specifications.
  • automatic analysis of degrees of freedom.
  • automatic checking of unit conversions on input data and equations.
  • automatic initialization of variables.
  • choice of automatic scaling methods for nonlinear equations.
  • an object-oriented modeling language.
  • GNU Licensed source code for all distributed system components.

    Algae, formerly called Alki

    Algae is a high-level interpreted language for numerical analysis. Algae borrows from languages like MATLAB and APL, but it was developed because we needed a free, efficient, and versatile language capable of handling large problems.

    Algae is fast. It's generally faster than MATLAB, RLaB, and Octave, often by a significant margin. Of course, words like "generally" and "often" (and benchmarks themselves, for that matter) don't mean much when it comes time to run your particular problem, and I'm sure that you can find cases where Algae gets beat. Still, Algae is fast.

    Algae's arrays may be stored in sparse form; only the non-zero elements and their locations are stored. This type of storage is required for practical analysis in many fields. In my own field (structural dynamics), a matrix with 20,000 rows and columns is not considered large.



    Copyright 1995-2010 Mathcom Solutions Inc                               Updated August 12, 2010