Characteristic polynomials

Module name: thewalrus.charpoly

This module implements La Budde’s algorithm to calculate the characteristic polynomials of matrices.

Summary

get_reflection_vector(matrix, k)

Compute reflection vector for householder transformation on general complex matrices.

apply_householder(A, v, k)

Apply householder transformation on a matrix A.

reduce_matrix_to_hessenberg(matrix)

Reduce the matrix to upper hessenberg form without Lapack.

charpoly(H)

Calculates the characteristic polynomial of the matrix H.

powertrace(H, n)

Calculates the powertraces of the matrix H up to power n-1.

Code details

apply_householder(A, v, k)[source]

Apply householder transformation on a matrix A. See Matrix Computations by Golub and Van Loan (4th Edition) Sections 5.1.4 and 7.4.2.

Parameters
  • A (array) – A matrix to apply householder on

  • v (array) – reflection vector

  • size_A (int) – size of matrix A

  • k (int) – offset for submatrix

charpoly(H)[source]

Calculates the characteristic polynomial of the matrix H.

Parameters

H (array) – square matrix

Returns

(array): list of power traces from 0 to n-1

get_reflection_vector(matrix, k)[source]

Compute reflection vector for householder transformation on general complex matrices. See Introduction to Numerical Analysis-Springer New York (2002) (3rd Edition) by J. Stoer and R. Bulirsch Section 6.5.1.

Parameters
  • matrix (array) – the matrix in the householder transformation

  • k (int) – offset for submatrix

Returns

reflection vector

Return type

array

powertrace(H, n)[source]

Calculates the powertraces of the matrix H up to power n-1.

Parameters
  • H (array) – square matrix

  • n (int) – required order

Returns

list of power traces from 0 to n-1

Return type

(array)

reduce_matrix_to_hessenberg(matrix)[source]

Reduce the matrix to upper hessenberg form without Lapack. This function only accepts Row-Order matrices.

Parameters

matrix (array) – the matrix to be reduced

Returns

matrix in hessenberg form

Return type

array