apply PLU Decomposition to a mod m Matrix or Vector - Maple Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Linear Algebra : LinearAlgebra Package : Modular Subpackage : LinearAlgebra/Modular/LUApply

LinearAlgebra[Modular][LUApply] - apply PLU Decomposition to a mod m Matrix or Vector

Calling Sequence

LUApply(m, A, pvec, B)

Parameters

m

-

modulus

A

-

mod m Matrix (from LUDecomposition)

pvec

-

permutation vector (from LUDecomposition)

B

-

mod m Matrix or Vector representing right-hand side of problem

Description

• 

The LUApply function applies the permutation pvec and the forward and backward substitutions encoded in A directly to the right-hand side mod m Matrix or Vector B, where pvec and A are the output of the LUDecomposition function.

  

B must have the same number of rows as columns in A.

• 

The function works directly on B, returning the solution in B on successful completion. If the function fails, B can be altered.

• 

LUApply is simply the application of Permute, ForwardSubstitute, and then BackwardSubstitute.

• 

This command is part of the LinearAlgebra[Modular] package, so it can be used in the form LUApply(..) only after executing the command with(LinearAlgebra[Modular]).  However, it can always be used in the form LinearAlgebra[Modular][LUApply](..).

Examples

Compute LU decomposition of a random 5 x 5 Matrix, and use LUApply to obtain a solution.

withLinearAlgebra[Modular]:

p:=97

p:=97

(1)

A:=Modp,Matrix5,5,i,j→rand,integer[]:

A

779610865836802244396039431255224714529214873357

(2)

A2:=Copyp,A:

pv:=Vector4:

LUDecompositionp,A2,pv,0:

A2,pv

77961086583720406327946017964295663778625440105,1234

(3)

B:=Modp,Matrix5,2,i,j→rand,integer[]

B:=65169396714470582529

(4)

X:=Copyp,B:

LUApplyp,A2,pv,X:

X

1137122057118368111

(5)

Check the solution.

Multiplyp,A,XB

0000000000

(6)

Use float[8] with a nontrivial permutation.

p:=13:

A:=Mod13,0,0,12,12,0,3,1,1,1,float8

A:=0.0.12.12.0.3.1.1.1.

(7)

A2:=Copyp,A:

pv:=Vector2:

LUDecompositionp,A2,pv,0:

A2,pv

12.0.3.12.1.4.0.0.12.,23

(8)

Now apply to a random vector and check it.

B:=Modp,Vector3,i→rand,float8

B:=5.3.5.

(9)

X:=Copyp,B:

LUApplyp,A2,pv,X:

X

8.2.8.

(10)

Multiplyp,A,XB

0.0.0.

(11)

See Also

LinearAlgebra/Details, LinearAlgebra[Modular], LinearAlgebra[Modular][BackwardSubstitute], LinearAlgebra[Modular][Copy], LinearAlgebra[Modular][ForwardSubstitute], LinearAlgebra[Modular][LUDecomposition], LinearAlgebra[Modular][Mod], LinearAlgebra[Modular][Multiply], LinearAlgebra[Modular][Permute]


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam