Features: Matrix and Data Operations
The following table summarizes which types of input are handled
automatically by each of Mathematica CalcCenter's principal
matrix and
data operations.
|
Function
|
Real Input
|
Complex Input
|
Symbolic Input
|
Automatic Unit Conversion
|
Full-Range Input
|
|
Min
|
|
|

|
|
|
|
Max
|
|
|

|
|
|
|
Total
|
|
|
|
|
|
|
BinCounts
|
|
|

|
|
|
|
Frequencies
|
|
|
|
|
|
|
MovingAverage
|
|
|
|
|
|
|
Fourier
|
|
|

|
|
|
|
InverseFourier
|
|
|

|
|
|
|
Eigenvalues
|
|
|
|
|
|
|
Eigenvectors
|
|
|
|
|
|
|
Det
|
|
|
|
|
|
|
Inverse
|
|
|
|
|
|
|
Vector product
|
|
|
|
|
|
|
Cross product
|
|
|
|
|
|
|
Linear regression
|
|
|
|
|
|
|
Nonlinear regression
|
|
|
|
|
|
|
Sort
|
|
|
|
|
|
The following table lists the principal algorithms used in matrix and
data operations in Mathematica CalcCenter.
| Case
|
Method
|
| Determinants and inverses
|
Gaussian elimination with partial pivoting for numbers and
for symbolic entries, direct cofactor expansion for small matrices, and
Gaussian elimination for larger ones are used.
|
|
Fourier
|
Fourier analysis available for real or complex data sets of
any length (not just 2n)
is achieved by an FFT algorithm with
decomposition of the length into prime factors. When the prime factors are
large, fast convolution methods are used to maintain O(nlog(n))
asymptotic complexity.
|
|
Random
|
The Marsaglia-Zaman subtract-with-borrow generator is used.
|
|
Fit
|
The product of the response vector with the
pseudoinverse of the design matrix is computed.
|
|
Interpolation
|
This uses divided differences to construct Lagrange or Hermite
interpolating polynomials.
|
| Eigenvalues, eigenvectors, scalar product, matrix
arithmetic, etc.
|
Algorithms similar to those of LINPACK, EISPACK, and LAPACK
are used when appropriate.
|
Notes
Real
Input: A function must accept positive and negative real numbers and
produce the appropriate result whether the result is real or
complex (e.g., Sin[-200] = 0.873297).
Complex
Input: A function must accept input that contains any combination of
real and imaginary numbers, producing appropriate real or complex output
(e.g., Sin[4 - 20 I] = -1.83587 x 108 + 1.58563 x
108 I).
Symbolic
Input: A function must accept any symbol or composite symbolic
expression, produce appropriate output (symbolic, real, or complex), and
be understood by symbolic operators such as Integrate and
Simplify (e.g., ).
Automatic
Unit Conversion: A function must take arguments containing any units
and automatically establish the resulting unit (e.g., 20 + 100
= 0.5091574
).
Full-Range
Input is defined to mean that input within the defined range
of a function, and in the range  I
but not within  I, the function will
give at least five significant figures of correct result if sufficient
significant figures of input are provided.
Note that for particular values near the singularities of asymptotic
functions, rounding errors may be more significant. It may also be
possible in some circumstances to achieve much higher performance. For
example, Sin[1234567890.12345] uses input that is much greater
than and still exceeds the required accuracy.
Full-range input functions must also accept
data sets with no limit to the number of data points in the set. Note
that there will always be practical limitations on memory or available
computational time required for operations on large data sets. There is no
limit to the size of data sets (1,000,000 integer data points require
approximately 8 MB of RAM, and sorting 1,000,000 points takes
approximately 0.36 seconds on a 3.6 GHz Pentium IV).
Symbolic arguments are
accepted, but no symbolic simplification is available for this
function.
|