LinearAlgebra[Generic] - Maple Programming Help

Home : Support : Online Help : Mathematics : Linear Algebra : LinearAlgebra Package : Generic Subpackage : LinearAlgebra/Generic/StronglyConnectedBlocks

LinearAlgebra[Generic]

 StronglyConnectedBlocks
 compute the strongly connected blocks of a Matrix

 Calling Sequence StronglyConnectedBlocks[R](A)

Parameters

 R - the domain of computation A - a square Matrix of values in R

Description

 • 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

Examples

 > $\mathrm{with}\left(\mathrm{LinearAlgebra}[\mathrm{Generic}]\right):$
 > ${R}_{\mathrm{0}},{R}_{\mathrm{=}}≔0,\mathrm{=}:$
 > $A≔\mathrm{Matrix}\left(\left[\left[a,b,c,d\right],\left[e,f,g,h\right],\left[0,0,k,l\right],\left[0,0,0,0\right]\right]\right)$
 ${A}{:=}\left[\begin{array}{cccc}{a}& {b}& {c}& {d}\\ {e}& {f}& {g}& {h}\\ {0}& {0}& {k}& {l}\\ {0}& {0}& {0}& {0}\end{array}\right]$ (1)
 > $\mathrm{StronglyConnectedBlocks}[R]\left(A\right)$
 ${1}{,}\left[\left[\begin{array}{c}{k}\end{array}\right]{,}\left[\begin{array}{cc}{a}& {b}\\ {e}& {f}\end{array}\right]\right]$ (2)
 > $A≔\mathrm{Matrix}\left(\left[\left[0,0,0,1\right],\left[1,0,0,1\right],\left[1,1,0,1\right],\left[0,0,0,0\right]\right]\right)$
 ${A}{:=}\left[\begin{array}{rrrr}{0}& {0}& {0}& {1}\\ {1}& {0}& {0}& {1}\\ {1}& {1}& {0}& {1}\\ {0}& {0}& {0}& {0}\end{array}\right]$ (3)
 > $\mathrm{StronglyConnectedBlocks}[R]\left(A\right)$
 ${4}{,}\left[{}\right]$ (4)