HOME

TheInfoList



OR:

MLAB (Modeling LABoratory) is a
multi-paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with implications for the execution model of the language, suc ...
numerical computing environment and
fourth-generation programming language A fourth-generation programming language (4GL) is any computer programming language that belongs to a class of languages envisioned as an advancement upon third-generation programming languages (3GL). Each of the programming language generations a ...
was originally developed at the
National Institutes of Health The National Institutes of Health, commonly referred to as NIH (with each letter pronounced individually), is the primary agency of the United States government responsible for biomedical and public health research. It was founded in the lat ...
. A
proprietary programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
developed by Civilized Software, Inc., MLAB allows
matrix Matrix most commonly refers to: * ''The Matrix'' (franchise), an American media franchise ** '' The Matrix'', a 1999 science-fiction action film ** "The Matrix", a fictional setting, a virtual reality environment, within ''The Matrix'' (franchi ...
manipulations, plotting of functions and data, and implementation of
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
s, and provides support for curve-fitting, differential equations, statistics and graphics. MLAB is intended for numerical computing, with special facilities for
ordinary differential equation In mathematics, an ordinary differential equation (ODE) is a differential equation whose unknown(s) consists of one (or more) function(s) of one variable and involves the derivatives of those functions. The term ''ordinary'' is used in contrast ...
-solving (ODE-solving) and
curve-fitting Curve fitting is the process of constructing a curve, or mathematical function, that has the best fit to a series of data points, possibly subject to constraints. Curve fitting can involve either interpolation, where an exact fit to the data is ...
(non-linear regression.) It provides more than thirty command types and more than 450 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 In linear algebra, the singular value decomposition (SVD) is a factorization of a real or complex matrix. It generalizes the eigendecomposition of a square normal matrix with an orthonormal eigenbasis to any \ m \times n\ matrix. It is re ...
, discrete Fourier transforms, solution of differential equation systems, non-parametric modeling 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, as well as robust graph creation features, supporting graphing of exceptionally complex functions. Many software packages can integrate ordinary differential equations numerically, but MLAB is one of the very few that also can adjust parameters and initial conditions. MLAB is equally facile at handling curve fitting, where the adjustments are linear or, as is the case with most differential equation models, nonlinear. MLAB is widely used in academic and research institutions as well as industrial enterprises.


History

MLAB was originally developed at the
National Institute of Health The National Institutes of Health, commonly referred to as NIH (with each letter pronounced individually), is the primary agency of the United States government responsible for biomedical and public health research. It was founded in the late ...
in the late 1970s using
Stanford Stanford University, officially Leland Stanford Junior University, is a Private university, private research university in Stanford, California. The campus occupies , among the largest in the United States, and enrolls over 17,000 students. S ...
's
SAIL A sail is a tensile structure—which is made from fabric or other membrane materials—that uses wind power to propel sailing craft, including sailing ships, sailboats, windsurfers, ice boats, and even sail-powered land vehicles. Sails ma ...
running on
Digital Equipment Corporation Digital Equipment Corporation (DEC ), using the trademark Digital, was a major American company in the computer industry from the 1960s to the 1990s. The company was co-founded by Ken Olsen and Harlan Anderson in 1957. Olsen was president un ...
(DEC)
PDP-10 Digital Equipment Corporation (DEC)'s PDP-10, later marketed as the DECsystem-10, is a mainframe computer family manufactured beginning in 1966 and discontinued in 1983. 1970s models and beyond were marketed under the DECsystem-10 name, espec ...
computers. The creators of MLAB founded Civilized Software, Inc. in 1985 and expanded MLAB in the late 1980s and early 1990s through the application of Small Business Innovation Research grants. MLAB was first adopted by researchers and practitioners in biochemistry, but quickly spread to many other domains. It is now also used in education, in particular the teaching of
linear algebra Linear algebra is the branch of mathematics concerning linear equations such as: :a_1x_1+\cdots +a_nx_n=b, linear maps such as: :(x_1, \ldots, x_n) \mapsto a_1x_1+\cdots +a_nx_n, and their representations in vector spaces and through matrice ...
,
numerical analysis Numerical analysis is the study of algorithms that use numerical approximation (as opposed to symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics). It is the study of numerical methods ...
, and is popular amongst scientists involved in
chemical kinetics Chemical kinetics, also known as reaction kinetics, is the branch of physical chemistry that is concerned with understanding the rates of chemical reactions. It is to be contrasted with chemical thermodynamics, which deals with the direction in ...
analysis and modeling and compartmental modeling in pharmacological (including
pharmacokinetics Pharmacokinetics (from Ancient Greek ''pharmakon'' "drug" and ''kinetikos'' "moving, putting in motion"; see chemical kinetics), sometimes abbreviated as PK, is a branch of pharmacology dedicated to determining the fate of substances administered ...
) and physiological research.


Syntax

The MLAB application is built around the MLAB scripting language. Common usage of the MLAB application involves using the Command Window as an interactive mathematical or executing text (script) files containing MLAB code. There are dozens of MLAB commands and hundreds of MLAB functions. In essence, MLAB is an interpreter for a high-level mathematical language with the ability to process re-runnable script files called do-files.


Example

In MLAB one can define a function and graph it as follows.
 function f(x) = a*cos(b*x)*exp(-k*x)
 a = 1; b=4; k =.5
 v=1:10!100
 m= points(f,v)
 draw m
 view
The result is a simple plot: Note that ''1:10!100'' = 1:10:0.0909090909, which means that we are dealing with a column vector of values from 1 to 10 in steps of size 0.0909090909 Also, note that ''points(f,v)'' = ''v&'(f on v)'', and that ''v$'(f on v)'' means the column-wise concatenation of the matrix ''v'' with the same-sized column vector consisting of the values of ''f'' computed on the values in ''v''. One can read-in 110 data values from a file into a 2-column matrix as follows (the result is a 55 row by 2 column matrix.)
 d = read("filename",55,2)
Taking the rows of the matrix ''d'' as (x,y) data-points - with error in the y-values - where these data points are "modeled" by the function ''f'', defined above, one can estimate the unknown parameters ''a'',''b'',''k'' as follows.
 fit(a,b,k), f to d
One can use estimated weights for the various data points in ''d'' based on a moving-variance estimation function ''ewt'' as follows.
 fit(a,b,k), f to d with wt ewt(d)
One can graph the data and the "fit" as follows.
 delete w  /* to discard any previous picture */
 draw d linetype none, pointtype circle
 draw points(f,d col 1) color green
 view
One can look at the symbolic derivative of ''f'' and graph it as follows.
 type f'x
 draw points(f'x, d col 1) color red
 view
Note that MLAB can use symbolic-derivatives when derivative values are needed during curve-fitting, or solving ODEs. Also, note that one can fit (or just solve) differential-equation-defined models in MLAB, so that chemical kinetics and physiological and compartmental models can be handled.


See also

* Comparison of numerical-analysis software *
List of numerical-analysis software Listed here are notable end-user computer applications intended for use with numerical or data analysis: Numerical-software packages General-purpose computer algebra systems Interface-oriented Language-oriented Historically signific ...


References


External links

* {{Official website, http://www.civilized.com Programming languages created in 1985