TomSym
Encyclopedia
The TomSym MATLAB
symbolic modeling engine is a platform for modeling applied optimization and optimal control problems.
in Matlab. It is a combined modeling
, compilation and interface to the TOMLAB
solvers. The matrix derivative
of a matrix function is a fourth rank tensor
- that is, a matrix each of whose entries is a matrix. Rather than using four-dimensional matrices to represent this, TomSym continues to work in two dimensions. This makes it possible to take advantage of the very efficient handling of sparse
matrices in Matlab, which is not available for higher-dimensional matrices.
TomSym has a variety of functions, among them:
and integer
) and any type of constraint as well as scalars and constant
parameters.
problem would look like this:
or numerical differentiation. In the following example a simple problem is solved using the two methods.
MATLAB
MATLAB is a numerical computing environment and fourth-generation programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages,...
symbolic modeling engine is a platform for modeling applied optimization and optimal control problems.
Description
TomSym is complete modeling environment in Matlab with support for most built-in mathematical operatorsOperation (mathematics)
The general operation as explained on this page should not be confused with the more specific operators on vector spaces. For a notion in elementary mathematics, see arithmetic operation....
in Matlab. It is a combined modeling
Mathematical model
A mathematical model is a description of a system using mathematical concepts and language. The process of developing a mathematical model is termed mathematical modeling. Mathematical models are used not only in the natural sciences and engineering disciplines A mathematical model is a...
, compilation and interface to the TOMLAB
TOMLAB
The TOMLAB Optimization Environment is a modeling platform for solving applied optimization problems in MATLAB.-Description:TOMLAB is a general purpose development and modeling environment in MATLAB for research, teaching and practical solution of optimization problems...
solvers. The matrix derivative
Matrix (mathematics)
In mathematics, a matrix is a rectangular array of numbers, symbols, or expressions. The individual items in a matrix are called its elements or entries. An example of a matrix with six elements isMatrices of the same size can be added or subtracted element by element...
of a matrix function is a fourth rank tensor
Tensor
Tensors are geometric objects that describe linear relations between vectors, scalars, and other tensors. Elementary examples include the dot product, the cross product, and linear maps. Vectors and scalars themselves are also tensors. A tensor can be represented as a multi-dimensional array of...
- that is, a matrix each of whose entries is a matrix. Rather than using four-dimensional matrices to represent this, TomSym continues to work in two dimensions. This makes it possible to take advantage of the very efficient handling of sparse
Sparse matrix
In the subfield of numerical analysis, a sparse matrix is a matrix populated primarily with zeros . The term itself was coined by Harry M. Markowitz....
matrices in Matlab, which is not available for higher-dimensional matrices.
TomSym has a variety of functions, among them:
- Ability to transform expressions and generate analytical first and second order derivativeDerivativeIn calculus, a branch of mathematics, the derivative is a measure of how a function changes as its input changes. Loosely speaking, a derivative can be thought of as how much one quantity is changing in response to changes in some other quantity; for example, the derivative of the position of a...
s, including sparsity patterns. - Interfaced and compatible with MADAutomatic differentiationIn mathematics and computer algebra, automatic differentiation , sometimes alternatively called algorithmic differentiation, is a set of techniques to numerically evaluate the derivative of a function specified by a computer program...
, i.e. MAD can be used when symbolic modeling is not suitable. - Numerical differentiation can be used to parts of the model.
- Functionality for plotting and computing a variety of information for the solution to the problem.
- Support for if, then, else statements.
- Ability to analyze p-codedP-Code machineIn computer programming, a p-code machine, or portable code machine is a virtual machine designed to execute p-code...
Matlab files. - Automated code simplification for generated models, for example.
- MultiplicationMultiplicationMultiplication is the mathematical operation of scaling one number by another. It is one of the four basic operations in elementary arithmetic ....
by 1 or the identity matrixIdentity matrixIn linear algebra, the identity matrix or unit matrix of size n is the n×n square matrix with ones on the main diagonal and zeros elsewhere. It is denoted by In, or simply by I if the size is immaterial or can be trivially determined by the context...
is eliminated: 1*A = A - AdditionAdditionAddition is a mathematical operation that represents combining collections of objects together into a larger collection. It is signified by the plus sign . For example, in the picture on the right, there are 3 + 2 apples—meaning three apples and two other apples—which is the same as five apples....
/subtractionSubtractionIn arithmetic, subtraction is one of the four basic binary operations; it is the inverse of addition, meaning that if we start with any number and add any number and then subtract the same number we added, we return to the number we started with...
of 0 is eliminated: 0+A = A - All-same matrices are reduced to scalarsScalar (mathematics)In linear algebra, real numbers are called scalars and relate to vectors in a vector space through the operation of scalar multiplication, in which a vector can be multiplied by a number to produce another vector....
: [3;3;3]+x = 3+x - Scalars are moved to the left in addition/subtraction: A-y = -y+A
- Inverse operations cancel: sqrt(x)^2 = x
- Multiplication
Modeling
The TomSym symbolic source transformation makes it possible to define any the set of decision variables (both continuousContinuous function
In mathematics, a continuous function is a function for which, intuitively, "small" changes in the input result in "small" changes in the output. Otherwise, a function is said to be "discontinuous". A continuous function with a continuous inverse function is called "bicontinuous".Continuity of...
and integer
Integer
The integers are formed by the natural numbers together with the negatives of the non-zero natural numbers .They are known as Positive and Negative Integers respectively...
) and any type of constraint as well as scalars and constant
Constant (mathematics)
In mathematics, a constant is a non-varying value, i.e. completely fixed or fixed in the context of use. The term usually occurs in opposition to variable In mathematics, a constant is a non-varying value, i.e. completely fixed or fixed in the context of use. The term usually occurs in opposition...
parameters.
Linear programming
An example linear programmingLinear programming
Linear programming is a mathematical method for determining a way to achieve the best outcome in a given mathematical model for some list of requirements represented as linear relationships...
problem would look like this:
Mixed-integer nonlinear programming
A MINLP problem is defined just like a linear programming problem. This example also shows how to convert the model into a general TOMLAB problem.Multi-index modeling
tomSym makes it possible to build models with two or more variable indices in MATLAB. The following example creates a variable 'flow' with four indices. The variable is then used to create a constraint over two of the indices and to sum the multiplication with a two-dimensional matrix.Automatic and numerical differentiation
For functions that cannot be interpreted by tomSym it is possible to use either automatic differentiationAutomatic differentiation
In mathematics and computer algebra, automatic differentiation , sometimes alternatively called algorithmic differentiation, is a set of techniques to numerically evaluate the derivative of a function specified by a computer program...
or numerical differentiation. In the following example a simple problem is solved using the two methods.