MATRIX
|
By Foxes Team |
MATRIX.XLA - History review
MATRIX.XLA - Ver. 2.3.2
- March 2007
Only minor changes and fixes.
routine
Block_Matrix_Reduction improved
MATRIX.XLA - Ver. 2.3.1
- Jan 2007
Only minor changes and fixes.
Function MNormalize added type
=4 (absolute values mean) and and type =5 (statistic normalization).
Bug 2.1.2007 Jacobi algorithm
returned #VALUE for diagonal or near-diagonal matrices (thanks
to David Schwartz)
MATRIX.XLA - Ver. 2.3 - Dic 2006
Function
MCond |
matrix condition
number |
Function
MpCond |
log10 of
matrix condition number (proposed by Robert de
Levie) |
The
Matrix function names have been totally revised. the multitude of matrix
specifiers
(M
as in MT, M_ as in M_Abs, Mat as in MatChar, or Mat_ as in Mat_Block, etc.)
have been replaced by their common denominator, the uniform prefix M (MT, MAbs,
MChar, MBlock, etc.). Backward compatibility is guaranteed.
Tutorial
and help-on-line revised
Bug
9.11.06 macro Mat_Block_transform broken link (thanks
to Robert de Levie)
MATRIX.XLA - Ver. 2.2.2
- Nov 2006
Bug 08.11.06: Macro
multiplication error for (1 x 1) matrix result
(thanks to Darrik V. Heyd)
Bug 24.10.06: SVD raises
#VALUE for (n x 2n) matrices (thanks to Bruce MacWilliams)
Error 20.9.06 Document correction for MatEigenvector_Pow (thanks to Hood,
Bill )
MATRIX.XLA - Ver. 2.2 - Ago 2006
Function
M_POW_C |
Complex
matrix power (proposed by Raj Sinha 14.4.2006) |
Function
REGRCIR |
Circular
regression |
Function
REGRL |
It can
also return the standard deviations |
Function
REGRP |
It can
also return the standard deviations |
Tutorial
and help-on-line revision (thanks to Robert de Levie
and David Forfar)
MATRIX.XLA - Ver. 2.1 - March 2006
Sparse
matrix operations |
Macro for
sparse linear systems |
Function
M_DETPAR |
Parameteric
determinant |
Function
SYSLIN_ITER_G |
Relaxation
parameter added |
|
|
Bug
05.02.06: Macro Gauss-Step-ByR did not return last matrix if it is singular
Bug
28.01.06: function SYSLIN3 determinant overflow for large matrices
MATRIX.XLA - Ver. 2.0 - Jan 2006
function
MAT_QH |
factorization
QH by Arnoldi-Lanczos algorithm |
Bug
13.07.05: Macro QR did not accept a rectangular matrix
Bug
02.11.05: HQR routine incorrect results for large unbalanced matrices
Poly_Root:
now it uses the Siliak + Ruffini algorithm
MATRIX.XLA - Ver. 1.9 - July 2005
Function
MatCplx |
converts 2
real matrices into a complex matrix |
Function
JoinCol |
Build a
matrix with separate columns |
Function
JoinRow |
Build a
matrix with separate rows |
Function
MatChar |
Characteristic
matrix A-xI |
Function
MatChar_C |
Complex Characteristic
matrix A-zI |
Function
M_ABS_C |
Complex
vector or matrix norm |
Function
M_ADD_C |
Complex matrix addition A+B |
Function
M_SUB_C |
Complex matrix subtraction A-B |
Function
M_PRODS_C |
Complex matrix-scalar
multiplication A*B |
Function
MTC |
Transpose
of complex matrix |
Function
MTH |
Transpose-conjugate
of complex matrix |
Function
M_INV |
Improved
accuracy for Tartaglia's integer matrices |
Function
Mat_Pseudoinv |
Moore-Penrose Pseudoinverse A^+ |
Function VectAngle |
Angle of two vectors |
Function
MatCharPoly_C |
Characteristic
polynomial of complex matrix |
Function
Poly_Roots_QRC |
Roots of
complex polynomial with QR method |
Function
MatNormalize_C |
Complex normalization |
Function Mat_Hilbert_inv |
Inverse of
Hilbert's matrix |
Function
MatEigenvalue_QRC |
Eigenvalues
of complex matrix (This function
uses a reduction of the EISPACK FORTRAN COMQR and CORTH subroutines (April
1983). COMQR is a translation of the ALGOL procedure math. 12, 369-376(1968)
by Martin and Wilkinson.). |
Function
MatEigenvector_C |
now works
also for complex matrix |
Function
MatEigenvectorInv_C |
Eigenvectors
of complex matrix (this
subroutine is a translation of the CINVIT of EISPAK library. CINVIT
is a translation of the ALGOL procedure math. 12, 369-376(1968) by
Martin and Wilkinson.). |
Function
MatEigenSort_Jacobi |
Sort the
eigenvectors in descending order (thanks to Carlos Aya) |
Bug
fix 06.06.05 - MatNromalize returned #Value for null vectors
Bug
fix 29.03.05 - pivot strategy in routine GJC
(thanks to
Bug
fix 10.01.05 - macro Gauss step-by step: too high coefficients for decimal
numbers
Fixed
installation problems (thanks to Vladimir Zakharov)
Subtituted
the static toolbar with a dynamic toolbar to avoid problems following to the
Excel crashes
MATRIX.XLA - Ver. 1.8.1
- July 2004
Macro Matrix Toeplitz generator |
Generates random matrix of toeplitz form |
Function SYSLIN_TPZ |
Solves Toeplitz Linear system |
Function M_MULT_TPZ |
Multiplies a Toeplitz matrix for a vector |
Function M_TPZ_ERR |
Check if a matrix is a Toeplitz form |
Bug fix 23.07.04 - MatEigenvalue_QR
and Mat_hessemberg return incorrect values
(thanks to Levent Kayili)
MATRIX.XLA - Ver. 1.6 - May 2004
Macro
Gauss_Step |
Didactic macro for reducing to the diagonal
or triangular form with the Gauss-Jordan algorithm |
Macro Shortest_Path
|
Generates the shortest path matrix (up to
255 x 255) from its distance matrix |
Macro
Graph drawing |
Draws a graph from its adjacent matrix |
Macro
Block reduction |
transforms a matrix into a block-partioned
form |
Macro Matrix
Operations |
Several common tasks: multiplication,
inversion, addition, etc. |
Macro
Matrix methods |
round-off clean-up and decimal rounding. |
Function
Mat_Block |
returns the block-partioned form of a given
matrix |
Function Mat_Block_Perm
|
returns the permutation matrix for the block
reduction |
Bug fix 1.02.04 - ProdScal_C
returns incorrect value
MATRIX.XLA - Ver. 1.5 - Jan 2004
Finally all the functions
will appear in the category "Matrix" of the function wizard,
thanks to the FunCustomize.dll of Laurent Longre (http://longre.free.fr)
The
following new functions are added:
Interpolate |
Pieces
polynomial interpolation |
Mat_Adm |
Admittance
matrix of a Linear Network Graph |
Mat_Leontief |
Leontief
matrix for IO-Analysis |
M_DET_C |
Determinant
for complex matrix |
All complex functions now
accept the parameter "CFormat" to set one of the following formats:
- splitted matrix format, -
interlaced matrix format, - string matrix format
The
following functions are modified:
M_MULT_C |
Complex
matrices multiplication with CFormat |
M_INV_C |
Complex
matrix inversion with CFormat |
SYSLIN_C |
Complex
linear system with CFormat |
ProdScal_C |
Complex
vectors scalar product with CFormat |
REGRP |
Polynomila
regression. Parameter "Degree" added |
MatNormalize |
The
normalize number has changed. New parameter Tiny has added |
The
following bugs are fixed:
Bug
25.11.03 |
Varimax
gives the wrong sign (thanks to Steve Futch) |
Bug
20.12.03 |
MatEigenvector_inv.
Iteration limit could fail under certain condition |
Bug
09.11.03 |
Switch
off/on the determinat computing in the GJ() Gauss-Jordan routine. This avoid the
determinant overflow error during the matrix inverse computing |
Now also this addin has a
little menu bar "Matrix Tool" performing useful matrix
operations:
select, copy piece of matrix, and run macros. And of course for calling Matrix
help.
The
following new macros are added:
Matrix
Selector |
Selects
special matrix format: triangular, diagonal, tridiagonal |
Matrix
Scarp Paster |
Pastes
matrix pieces in the worksheet |
Matrix
Generator |
Generates several
kind of matrices: random, tartaglia, hilbert, etc. |
MATRIX.XLA - Ver. 1.4 - Sept 2003
The following new functions
are added:
MatEigenvalue_QL |
Real eigenvalues for tridiagonal matrices with QL
algorithm |
MatEigenvalue_TridUni |
Eigenvalues of tridiagonal uniform matrices |
Mat_Hessemberg |
Returns the Hessemberg form of a matrix |
Poly_Roots_QR |
Polynomial rootfinder with QR method |
MatEigenvector3 |
Eigenvalues
of tridiagonal matrices |
Mat_QR_iter |
Performs the diagonalization with the QR iterative
method |
The following functions are modified:
MatEigenvalue_QR |
Now returns real and complex eigenvalues of any real
matrix This routine is a VB translation of HQR
Subroutine from the EISPACK FORTRAN Library (1970, by Martin, Peters, and
Wilkinson). |
SYSLIN3 |
Partial pivot strategy for tridiagonal matrices
reduction |
The following bugs are fixed:
Mat_QR |
return #VALUE
for rectangular matrices. |
SYSLIN3 |
incorrect
return "?" if b1=0 |
MATRIX.XLA - Ver. 1.3 - May 2003
The following new functions
are added:
REGRP |
polynomial regression |
M_T |
new function name for transpose matrix (the old was
too verbose) |
M_DET3 |
determinant for tridiagonal matrix |
M_MULT3 |
multiply tridiagonal matrix |
SYSLIN3 |
solves tridiagonal linear system |
SYSLIN_T |
solves triangular linear system with back/forward
algorithms |
RRMS |
residuals root mean squares |
MatPerm |
permutation matrix |
M_TRIA_ERR |
return the average error for a triangular matrix |
MatNorm |
norm of a matrix/vectors (norm 0, 1, 2, 3) |
Matrix Icon added
The following function are
modified:
REGRL |
bug fixed:
#VALUE returned for one column parameter x |
REGRL |
accuracy improved. |
MAT_LU |
was modified.
Now return also the permutation matrix P, being A = PLU |
MatNormalize |
bug fixed:
uncorrected value returned |
M_DET |
accuracy improved for integer matrices |
M_INV |
accuracy improved for integer matrices |
SYSLIN |
accuracy improved for integer matrices |
M_EXP |
efficiency improved with the Padč approximation (thanks to
Gregory Klein) |
MATRIX.XLA - Ver. 1.2 - January 2003
The following new functions
are added:
MatNormalize |
Returns
the matrix normalized |
MatEigenvector_pow |
Calculate all
eigenvectors with power's iterative method |
MatEigenvalue_pow |
Calculate
all eigenvalues with power's iterative method |
MatEigenvector_max |
Returns
the eigenvector associate to the dominant eigenvalue |
MatEigenvalue_max |
Returns
the dominant eigenvalue with power's iterative method |
MatEigenvector_C |
Returns
the complex eigenvector for complex eigenvalue |
M_MULT_C |
Complex
matricides multiplication |
SYSLIN_C |
Complex
linear system |
M_INV_C |
Complex
matrix inversion |
ProdScal_C |
Complex
scalar product |
Poly_Roots |
Polynomial
roots finder with Lin-Bairstow algorithm |
Simplex |
Linear
optimization with Simplex method |
the following functions are
changed
set default MaxLoops=100 instead
of 1 for the following functions:
MatEigenvalue_Jacobi iterative Jacobi method
MatEigenvector_Jacobi iterative Jacobi method
MatEigenvalue_QR iterative QR method
MatCharPoly
Characteristic polynomial (ex Newton_Girard)
The version fix the following
bug:
SYSLINSING: improving detection of singular solution by mopup |
|
MatEigenvector: add MaxErr parameter for approximate eigenvalue
computing |
|
MatRndEigSym: worked only for matrices up to 3x3 |
|
MATRIX.XLA - Ver. 1.1 - July
2002
Let's begin with the bugs
<:-)
This version fixes the
following bugs:
-
functions SYSLIN, SYSLINSING return #VALUE for matrix larger than 8x8 this is
due to an overflow of GaussJordan routine |
(Thanks to Sebastián Sombra) |
Help
button of the starting pop-up does not work (Thanks
to Robert Pigeon) |
|
The followin new functions
are added:
M_DIAG |
Returns a diagonal matrix from
a vector |
|
M_DIAG_ERR |
Diagonalization error; it
measures the distance from the diagonal form |
|
M_RANK |
Matrix Rank (Thanks to Bernard
Wagner routine) |
|
Path_Floyd |
All-pairs-path of Graph with
Floyd's algorithm |
|
Path_Min |
Returns the shortest path of a
Graph with Floyd's algorithm |
|
MatDiagExtr |
Diagonal extractor (Thanks to |
|
M_EXP |
Matrix Exponential series
expansion |
|
M_EXP_ERR |
Error of matrix exponential
series expansion |
|
MatRndEigSym |
Random symmetric matrix with
given eigenvalues |
|
MatMopUp |
Matrix mop-up: useful for
eliminating values too small |
|
SVD routine |
Singular Value Decomposition
A=U*D*V^t |
|
SVD_U |
returns the 1° orthogonal
matrix of SVD |
|
SVD_D |
returns the 2° Diagonal matrix
of SVD |
|
SVD_V |
returns the 3° orthonormal
matrix of SVD |
|
MatMopUp |
Matrix mop-up of round-off
errors |
|
REGRL |
Linear regression with SVD |
|
MatCovar |
Covariance matrix |
|
MatCorr |
Correlation matrix |
|
MatCmpn |
Companion matrix |
|
MatRot |
Returns the orthogonal planar
rotation matrix |
|
VarimaxRot |
Computes the orthogonal
rotation with Varimax Kaiser's method |
|
VarimaxIndex |
Returns the Varimax index of a
given Factors matrix |
|
The following
macros are modified-
Gauss_Jordan_Step |
stopped when recognizes det=0;
now continues as you like; added input parameter for integer/decimal
elaboration. |
|
- MatExtract |
ectracts a matrix can have the
same rows / columns than the original one |
|
- SYSLINSING |
added optional MaxErr param. to
correct responce with nearly-singular matrix |
|
- Gauss_Jordan |
added optional dTiny param. to
correct responce with nearly-singular matrix |
|
- M_PROD |
Modified for matrix productory
M_PROD(A;B;C;...)=[A]*[B]*[C]*... |
|
- ProdScal |
Now can accept any other vector
function argument |
(Thanks to Robert Pigeon) |
- ProdVect |
Now can be nested with any
other vector function |
|
- Mat_QR - |
Now can accept rectangular matrix |
(Thanks to Ola Mĺrtensson ) |
MATRIX.XLA - Ver. 1.0 - February 2002
First release. The following functions are create:
M_ABS |
Euclidean Norm of vector or
matrix |
M_ADD |
Matrices addition |
M_BAB |
Similarity transform |
M_DET |
Determinant |
M_INV |
Matrix inverse |
M_POW |
Power of matrix |
M_PROD |
Matrices product |
M_SUB |
Matrices subtraction |
M_TRAC |
Trace |
M_TRANSP |
Matrix transpose |
M_ID |
Matrix Identity (I) |
ProdScal |
Scalar Product (inner) |
ProdVect |
Vector Product |
MatEigenvalue_Jacobi |
Eigenvalues of symmetric matrix
with Jacobi algorithm |
MatEigenvalue_QR |
Eigenvalues with QR algorithm |
MatEigenvector |
Eigenvectors |
MatEigenvector_Jacobi |
Eigenvectors of symmetric
matrix with Jacobi algorithm |
Newton_Girard |
Eingen Characteristic
polynomial coefficients |
MatRnd |
Generation Random matrix |
MatRndEig |
Random matrix with given
eigenvalues |
MatRndRank |
Random matrix with given rank
or det |
MatRndSim |
Random symmetric matrix with
given rank or det |
MatRndUni |
Random symmetric matrix with
given rank or det |
Mat_Hilbert |
Returns Hilbert's matrix |
Mat_Householder |
Returns Houseolder matrix |
Mat_Tartaglia |
Returns Tartaglia's matrix |
Mat_Vandermonde |
Returns Vandermonde's matrix |
Gauss_Jordan_step |
Gauss Jordan algorithm step by
step |
SYSLIN |
Solve Linear System |
SYSLIN_ITER_G |
Solve Linear System with
Gauss-Seidel algorithm |
SYSLIN_ITER_J |
Solve Linear System with Jacobi
algorithm |
SYSLINSING |
Solve Singular Linear System |
TRASFLIN |
Linear Transform |
Gram_Schmidt |
Gram-Schmidt's
Orthonormalization |
Mat_Cholesky |
Cholesky decomposition |
Mat_LU |
LU decomposition |
Mat_QR |
QR decomposition |
MatExtract |
Extract sub-matrix |
MatOrtNorm |
Orthonormalization |
MatRotation_Jacobi |
Jacobi's rotation matrix |
|
|
This software is free.
I will appreciate every your suggestions and bug reports.
:-)
In the meantime, have fun!
Bye
Leonardo Volpi
Foxes Team
E-mail: