Hessenberg factorization


To compute the frequency response of a linear system

\dot{x} = Ax + Bu
y = Cx

where A is a square matrix, one should compute G(s) = C(sI - A)\backslash B for several complex values s.

This can be done efficiently [1] with a Hessenberg factorization A = QHQ^*, since then
G(s) = CQ(sI - H)\backslash (Q^*B), where (sI - H) is Hessenberg.

There is the LinearAlgebra.Hessenberg object but I can’t find any method for an efficient \ with the Hessenberg matrix that it contains. I guess I’m missing something? Thanks

[1] Laub, Alan. “Efficient multivariable frequency response computations.” IEEE Transactions on Automatic Control 26.2 (1981)

It seems to be in GenericLinearAlgebra https://github.com/JuliaLinearAlgebra/GenericLinearAlgebra.jl/blob/dcb6b7512c66a5cfab472721e519bbdb70856f18/src/eigenGeneral.jl#L28


Update: more efficient solvers for shifted Hessenberg systems are coming: