Samuelson–Berkowitz algorithm

From testwiki
Jump to navigation Jump to search

Template:Short description Template:Expand German In mathematics, the Samuelson–Berkowitz algorithm efficiently computes the characteristic polynomial of an n×n matrix whose entries may be elements of any unital commutative ring. Unlike the Faddeev–LeVerrier algorithm, it performs no divisions, so may be applied to a wider range of algebraic structures.

Description of the algorithm

The Samuelson–Berkowitz algorithm applied to a matrix A produces a vector whose entries are the coefficient of the characteristic polynomial of A. It computes this coefficients vector recursively as the product of a Toeplitz matrix and the coefficients vector an (n−1)×(n−1) principal submatrix.

Let A0 be an n×n matrix partitioned so that

A0=[a1,1RCA1]

The first principal submatrix of A0 is the (n−1)×(n−1) matrix A1. Associate with A0 the (n+1)×n Toeplitz matrix T0 defined by

T0=[1−a1,1]

if A0 is 1×1,

T0=[10−a1,11−RC−a1,1]

if A0 is 2×2, and in general

T0=[1000⋯−a1,1100⋯−RC−a1,110⋯−RA1C−RC−a1,11⋯−RA12C−RA1C−RC−a1,1⋯⋮⋮⋮⋮⋱]

That is, all super diagonals of T0 consist of zeros, the main diagonal consists of ones, the first subdiagonal consists of −a1,1 and the kth subdiagonal consists of −RA1k−2C.

The algorithm is then applied recursively to A1, producing the Toeplitz matrix T1 times the characteristic polynomial of A2, etc. Finally, the characteristic polynomial of the 1×1 matrix An−1 is simply Tn−1. The Samuelson–Berkowitz algorithm then states that the vector v defined by

v=T0T1T2⋯Tn−1

contains the coefficients of the characteristic polynomial of A0.

Because each of the Ti may be computed independently, the algorithm is highly parallelizable.

References