LinearAlgebra[Modular]
BackwardSubstitute
apply in-place backward substitution from an upper triangular mod m Matrix to a mod m Matrix or Vector
Calling Sequence
Parameters
Description
Examples
BackwardSubstitute(m, A, B)
m
-
modulus
A
mod m upper triangular Matrix
B
mod m Matrix or Vector to which to apply backward substitution
The BackwardSubstitute function applies the backward substitution described by the upper triangular part of the square mod m Matrix A to the mod m Matrix or Vector B.
Note: It is assumed that A is in upper triangular form, or that only the upper triangular part is relevant, as the lower triangular part of A is ignored.
The mod m Matrix or Vector B must have the same number of rows as there are columns of A.
Application of backward substitution requires that m is a prime, but in some cases it can be computed when m is composite. In cases where it cannot be computed for m composite, a descriptive error message is returned.
The BackwardSubstitute function is most often used in combination with LUDecomposition, and is used in LUApply.
This command is part of the LinearAlgebra[Modular] package, so it can be used in the form BackwardSubstitute(..) only after executing the command with(LinearAlgebra[Modular]). However, it can always be used in the form LinearAlgebra[Modular][BackwardSubstitute](..).
Construct and solve an upper triangular system.
with⁡LinearAlgebraModular:
p≔97
A≔Mod⁡p,Matrix⁡4,4,i,j↦ifi≤jthenrand⁡else0endif,integer:
B≔Mod⁡p,Matrix⁡4,2,i,j↦rand⁡,integer:
A,B
77961086058368000224400039,603943125522471
X≔Copy⁡p,B:
BackwardSubstitute⁡p,A,X:
X
944688125222364
Multiply⁡p,A,X−B
00000000
Upper triangular with floats.
A≔Mod⁡p,Matrix⁡4,4,i,j↦ifi≤jthenrand⁡else0endif,float8:
B≔Mod⁡p,Vectorcolumn⁡4,i↦rand⁡,float8:
45.29.21.48.0.7.33.57.0.0.65.16.0.0.0.93.,96.71.44.70.
78.67.2.31.
0.0.0.0.
See Also
LinearAlgebra/Details
LinearAlgebra[Modular][Copy]
LinearAlgebra[Modular][ForwardSubstitute]
LinearAlgebra[Modular][LUApply]
LinearAlgebra[Modular][LUDecomposition]
LinearAlgebra[Modular][Mod]
LinearAlgebra[Modular][Multiply]
Download Help Document