LinearAlgebra[Generic]
StronglyConnectedBlocks
compute the strongly connected blocks of a Matrix
Calling Sequence
Parameters
Description
Examples
StronglyConnectedBlocks[R](A)
R
-
the domain of computation
A
a square Matrix of values in R
Viewing A as the adjacency matrix of a weighted directed graph G, first compute the strongly connected components of G: V1, V2, V3, ..., Vk, where Vi = {vi_1, vi_2, vi_3, ..., vi_ni}, the vertices in strongly connected component i. The command then returns the submatrices of A, denoted Ai, where the rows and columns of Ai are rows Vi and columns Vi of A.
The Ai corresponds to the diagonal blocks of some row and column permutations of A.
Zero blocks are not returned in the blocks Ai, instead a count m of the zero blocks is returned such that m = dim(A)-dim(A1)-...-dim(Ak).
If m=0, the returned Ai satisfy:
Determinant(A) = product(Determinant(Ai),i=1..k)
CharacteristicPolynomial(A,x) = product(CharacteristicPolynomial(Ai,x),i=1..k)
If m<>0, the returned Ai satisfy:
Determinant(A) = 0
CharacteristicPolynomial(A,x) = x^m*product(CharacteristicPolynomial(Ai,x),i=1..k)
The (indexed) parameter R, which specifies the domain of computation (the only requirement is that 0 is uniquely defined), must be a Maple table/module which has the following values/exports:
R[`0`] : a constant for the zero of the domain R
R[`=`] : a boolean procedure for testing if two elements of R are equal
with⁡LinearAlgebraGeneric:
R`0`,R`=`≔0,`=`:
A≔Matrix⁡a,b,c,d,e,f,g,h,0,0,k,l,0,0,0,0
A≔abcdefgh00kl0000
StronglyConnectedBlocksR⁡A
1,k,abef
A≔Matrix⁡0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,0
A≔0001100111010000
4,
See Also
LinearAlgebra[StronglyConnectedBlocks]
Download Help Document