Civilized Software Inc.
12109 Heritage Park Circle
Silver Spring, MD 20906
(301)-962-3711
email: csi@civilized.com
MLAB: An Advanced System for Mathematical and Statistical Modeling
MLAB, (for Modeling LABoratory), is a program for interactive mathematical and statistical modeling. MLAB was originally developed at the National Institutes of Health. It includes curve-fitting, differential equations, statistics and graphics as some of its major capabilities.
MLAB provides more than thirty command types and more than four hundred built-in functions from the areas of elementary mathematics, transcendental functions, probability and statistics, linear algebra, optimization, cluster analysis, combinatorics, numeric input/output, and graphics. The usual low-level functions, e.g., sine, cosine, log, etc., are present, as well as functions performing more complex analyses, such as singular value decomposition, discrete Fourier transforms, solution of differential equation systems, and constrained non-linear optimization, among many others. A substantial collection of statistically-oriented functions, such as most common distribution functions and their inverses, are included.
MLAB is an ideal tool for solving simulation and modeling problems such as chemical kinetics, pharmacological compartmental models, multiple site ligand binding, neurophysiological modeling, and ultracentrifuge models, to name just a few.
Using the built-in functions in MLAB, the user may construct user-defined functions, which may be algebraic, differential equation-defined, implicit, recursive, and/or defined piecewise. Functions may be used in many ways: direct evaluation, symbolic derivatives may be constructed, and roots of nonlinear equations may be found.
- MLAB can solve systems of differential equations. These differential equations may be of any order, stiff or non-stiff, and may contain delays. MLAB uses an algorithm which automatically selects both method and stepsize to minimize both truncation error and computer time. However, control variables are provided to permit the user to specify the method of numerical integration, the error tolerance, and the method for dealing with singularities.
- A major capability of MLAB is constrained non-linear optimization. Data may be input which is to be fit by one or more model functions which contain one or more parameters. Any type of function, including differential equation-defined functions, may be used as a model. Once the parameters are initialized, The fit command will adjust the parameters so as to minimize the error between the data and the model. The parameters may appear nonlinearly in the model, and be subject to multiple linear equality and inequality constraints. Several control variables are provided to permit the user to fine-tune the algorithm, although the defaults are quite robust.
- MLAB provides powerful and flexible 2D and 3D graphics facilities. With a single simple command, a graph may be created with axes. A few more commands serve to insert titles and axis labels. The user has complete control of color, line-types and point-types, fonts and the position of every aspect of the plot. Many types of plots are available, including linear, logarithmic, and polar coordinates. Contour plots for functions of two variables are provided. Screen plots may be saved as files suitable for printing on HP or Postscript laser printers, at the full resolution of the output device.
- MLAB is also a programming language. It provides facilities for branching, looping, input/output, and interruption of execution. Users may write MLAB program files containing multiple commands, including interactive commands, and calls to other such files. Analyses may thus be programmed much more compactly than with conventional programming languages because of the very high level of the individual commands.
- MLAB is extraordinarily polished. Careful attention has been paid to significant details so that MLAB operates flawlessly, just as you think it should behave from a mathematical viewpoint.
For example, the MLAB matrix sorting operator, sort(m,j), returns a copy of the matrix m with its rows sorted in ascending order. The sort is stable, so that rows with duplicate values in column j appear in the output in the same relative order as they appeared in the input. If j is negative, the sorting is done so that column ¦j¦ appears in descending order. If j is not given, column 1 is assumed, so sort(m) has a natural meaning. Finally if j is 0, the output will be a copy of m with its rows stably sorted in lexicographic order.
Another very important example of attention to detail in MLAB is that, whenever possible, MLAB correctly handles floating point overflows and underflows, supplying whichever of MAXPOS, the largest computational value, or MAXNEG, the algebraically least computational value, is indicated as the result of an overflow (with an optional warning). It supplies 0 as the result of a hard underflow. Often-appropriate values are supplied for zero-divides as well. Since overflows may well arise during curve-fitting, this corrective behavior is valuable to allowing the curve-fit to continue successfully.
MLAB runs on IBM PC's and compatibles (DOS, Windows, and Windows95). UNIX versions for Sun Sparc workstations, Motorola-NeXT, Intel-NeXT, and HP-NeXT machines, RS6000's, DEC Alpha's, and SGI workstations are available. A Macintosh version (Motorola and PowerPC) are also available.
MLAB may be purchased from:
Civilized Software, Inc.
12109 Heritage Park Circle
Silver Spring, MD 20906
U.S.A.
1-301-962-3711
1-301-962-3712 fax
Email: csi@civilized.com
or garyknott@gmail.com
A fully-featured three month lifetime version is available for $99. For full pricing information click here.
Send comments to: csi@civilized.com