- 1 - 24th March, 1990 About TSMATR in General ======================= This package may be used and distributed freely for NON-COMMERCIAL, NON-INSTITUTIONAL, PRIVATE purposes, provided it is not changed in any way. For ANY other usage contact the author. No part of this package may be distributed separately. Uploading to bulletin boards is encouraged. The programs are under development. Comments and contacts are welcome. If you have any comments, please do not hesitate to use electronic mail for communication. InterNet address: ts@chyde.uwasa.fi (preferred) Funet address: GADO::SALMI Bitnet address: SALMI@FINFUN FidoNet address: 2:515/1 (Micro Maniacs Opus, To: Timo Salmi) The author shall not be liable to the user for any direct, indirect or consequential loss arising from the use of, or inability to use, any program or file howsoever caused. No warranty is given that the programs will work under all circumstances. Timo Salmi Professor of Accounting and Business Finance School of Business Studies, University of Vaasa P.O. BOX 297, SF-65101 Vaasa, Finland SUMMARY: Searching Archive: TSMATR11.ARC - Matrix calculations by T.Salmi Filename Comment Date Time -------- -------------------------------- ---- ---- LINEQ.EXE Simultaneous linear equations 03-24-90 18:13:56 MATINV.EXE Inverse of a square matrix 03-24-90 18:21:18 MATMUL.EXE Multiplication of two matrixes 03-24-90 18:33:42 TSMATR.INF Document 03-24-90 18:51:18 TSMATR.NWS News concerning this package 03-24-90 19:44:56 TSPROG.INF List of PD programs from T.Salmi 03-06-90 23:48:04 VAASA.INF Info: Finland, Vaasa, U of Vaasa 02-02-90 11:52:54 ---- ------ ------ ----- 0007 134413 93230 31% - 2 - LINEQ (Ver 1.1) =============== Solves simultaneous equations. The maximum capacity of the program is 30 * 30. You give your problem directly as equations from file or keyboard. The program will ask for your choices of the options available. An example of acceptable input to LINEQ: !Exclamation marks can be used for comments X + 2Y + Z = 13 !The first equation Z = 5 -X + Y + Z = 8 END !To denote the end The program has a built-in help system, which can be invoked by ? at each interactive question. Use this help for more instructions. The method for solving the simultaneous linear equations is Gaussian elimination as presented in Turbo Pascal Version 4.0 Numerical Toolbox. I measure the reliability of the solution x of the simultaneous equations Ax = b is as follows. The elements of b-Ax are calculated, and the sum of their absolute values is reported as the 'inaccuracy of the solution'. MATINV (Ver 1.1) ================ Usage: MATINV [optional input file name] [optional output file name] or: MATINV ? This program calculates the inverse and the determinant of a square matrix. The input can be taken from a file or the keyboard. An example of the input: !Exclamation marks can be used for optional comments 100 20 !First row 80 10 !Second row A row can be continued by using an & or a * at the end. E.g. 100 & 20 !First row The dimension of the matrix is defined by the number of elements on the first row. When given from the keyboard, the input can be exited by entering END. The results are checked by multiplying the inverse with the original matrix and comparing the result to an unity matrix. (Many, even professional, programs lack this essential test.) The algorithm used for inverting the matrix, and calculating the determinant, are exactly the same as used in Turbo Pascal Version 4.0 Numerical Toolbox routines Inverse and Determinant. The former applies Gauss-Jordan elimination. The present MATINV program and the design of the user interface are, however, due to yours truly. As to the algorithm for calculating the inverse matrix, it is not satisfactory, which is somewhat surprising considering the source. Inverting matrixes with elements of a very different scale, the results are doubtful. Therefore, the deviation from unity measure, which I have deviced, is doubly important. The deviation measure is calculated as follows. Let A denote the original square matrix, B the inverse calculated by the program, I and identity matrix. First I calculate the matrix A*B-I, and then the sum of the absolute values of the elements of this matrix. This is what I call the deviation from unity. An example of a problematic case is given by 100000000.00 2.00 3.00 1.00 2.01 3.00 0.01 0.02 0.03 MATMUL (Ver 1.0) ================ Usage: MATMUL [optional input file name] [optional output file name] or: MATMUL ? This program multiplies two matrixes. The input can be taken from a file or the keyboard. An example of the input: !Exclamation marks can be used for optional comments 100 20 !First row of the first matrix 80 10 !Second row of the first matrix END 40 15 18 !First row of the second matrix 11 22 102 !Second row of the second matrix END A row can be continued by using an & or a * at the end. E.g. 100 & 20 !First row