LinearAlgebra[Modular][LinearSolve] - solve linear system mod m
|
Calling Sequence
|
|
LinearSolve(m, M, naugment)
LinearSolve(m, M, naugment, inplace=val)
|
|
Parameters
|
|
m
|
-
|
modulus
|
M
|
-
|
Matrix for solve
|
naugment
|
-
|
number of augmented columns in Matrix
|
val
|
-
|
inplace option true/false
|
|
|
|
|
Description
|
|
•
|
The LinearSolve function solves the linear system described by the augmented Matrix M with naugment augmented columns.
|
•
|
The allowable datatypes are hardware integer (dtype=integer[4]/integer[8] or integer[]), hardware float (dtype=float[8]), or Maple integer (dtype=integer).
|
•
|
By default the inplace option is true, and the command returns a reduced row echelon form of the input system, throwing an error if it is inconsistent, or no reduced row echelon form exists (i.e. for some composite m).
|
|
If inplace is specified as false, the command returns the solution in forms of a sequence. The first element of the sequence is a Matrix (when naugment>1) or a Vector (when naugment=1) corresponding to a solution of the system, followed by the vectors in the nullspace. In the event of a unique solution (empty nullspace), only the one solution exists, so the return is just the first element. Note: even when inplace is set to false, the original input matrix is altered, so if this is not desired, the command should be called on a copy of the Matrix.
|
•
|
Note that this is just a high-level convenience function that uses RowReduce to do the actual work.
|
•
|
This command is part of the LinearAlgebra[Modular] package, so it can be used in the form LinearSolve(..) only after executing the command with(LinearAlgebra[Modular]). However, it can always be used in the form LinearAlgebra[Modular][LinearSolve](..).
|
|
|
Examples
|
|
>
|
|
Create a random Matrix with a duplicate row (copy 4rth row to 2nd)
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
>
|
|
| (3) |
Now solve a copy obtaining row reduced form:
>
|
|
>
|
|
>
|
|
| (4) |
Now solve another copy obtaining the solution in (solution vector, nullspace) form
>
|
|
>
|
|
| (5) |
Check the solution and nullspace
>
|
|
| (6) |
>
|
|
| (7) |
|
|
Download Help Document
Was this information helpful?