Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
LinearAlgebra[Modular][Inverse] - compute the Inverse of a square mod m Matrix
LinearAlgebra[Modular][Adjoint] - compute the Adjoint of a square mod m Matrix
Calling Sequence
Inverse(m, A, det, B, meth)
Adjoint(m, A, det, B, meth)
Parameters
m
-
modulus
A
mod m Matrix
det
(optional) name to use for output determinant
B
(optional) Matrix to use for output Inverse or Adjoint
meth
(optional) method to use for computing Inverse or Adjoint
Description
The Inverse and Adjoint functions compute the inverse and adjoint, respectively, of a square mod m Matrix.
If det is specified, it is assigned the value of the determinant on successful completion.
If B is specified, it must have dimensions and datatype identical to A, and will contain the inverse or adjoint on successful completion. In this case the command will return NULL.
The default method for the inverse is LU, while the default method for the adjoint is RET, and these can be changed by specification of meth.
Allowable options are:
LU
Obtain inverse or adjoint via LU decomposition.
inplaceLU
Obtain inverse or adjoint via LU decomposition destroying the
data in A in the process.
RREF
Obtain inverse or adjoint through application of row reduction
to an identity augmented mod m Matrix.
RET
Obtain inverse or adjoint through application of a row echelon
transform to A.
inplaceRET
transform to A, replacing A with the inverse or adjoint.
The LU and inplaceLU methods are the most efficient for small to moderate sized problems. The RET and inplaceRET methods are the most efficient for very large problems. The RREF method is the most flexible for nonsingular matrices.
For the inplaceRET method, B should never be specified, as the output replaces A. For this method, the commands always return NULL.
With the LU-based and RET-based methods, it is generally required that m be a prime, as mod m inverses are needed, but in some cases it is possible to obtain an LU decomposition or a Row-Echelon Transform for m composite.
For the cases where LU Decomposition or Row-Echelon Transform cannot be obtained for m composite, the function returns an error indicating that the algorithm failed because m is composite.
Note: There are cases with composite m for which the inverse and adjoint exist, but no LU decomposition or Row-Echelon Transform is possible.
If it exists, the RREF method always finds the mod m inverse. The RREF method also finds the adjoint if the Matrix is nonsingular.
The RET method is the only method capable of computing the adjoint if the matrix is singular. The inplaceRET method cannot be used to compute the adjoint of a singular matrix, as this operation cannot be performed in-place.
These commands are part of the LinearAlgebra[Modular] package, so they can be used in the form Inverse(..) and Adjoint(..) only after executing the command with(LinearAlgebra[Modular]). However, they can always be used in the form LinearAlgebra[Modular][Inverse](..) and LinearAlgebra[Modular][Adjoint](..).
Examples
Basic 3x3 Matrix.
An example that fails with the LU and RET methods, but succeeds with RREF.
Error, (in LinearAlgebra:-Modular:-LUDecomposition) no LU decomposition exists: modulus is composite
Error, (in LinearAlgebra:-Modular:-Inverse) modulus is composite
An example where no inverse exists, but the adjoint does exist.
Error, (in LinearAlgebra:-Modular:-RowReduce) no inverse exists: modulus is composite
An example where only the RET method succeeds at computing the adjoint.
Error, (in LinearAlgebra:-Modular:-RowReduce) matrix is singular
Error, (in LinearAlgebra:-Modular:-LUDecomposition) matrix is singular
See Also
LinearAlgebra/Details, LinearAlgebra[Modular], LinearAlgebra[Modular][LUDecomposition], LinearAlgebra[Modular][Mod], LinearAlgebra[Modular][Multiply], LinearAlgebra[Modular][RowEchelonTransform], LinearAlgebra[Modular][RowReduce]
Download Help Document