This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.


Hessenberg matrix

MuPAD® notebooks are not recommended. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.


linalg::hessenberg(A, <All>)


linalg::hessenberg(A) returns an (upper) Hessenberg matrix H.

linalg::hessenberg uses Gaussian elimination without pivoting. There is no special implementation for matrices with floating-point components.

The component ring of A must be a field, i.e., a domain of category Cat::Field.


Example 1

Consider the matrix:

A := Dom::Matrix(Dom::Rational)(
  [[0, 1, 0, -1], [-4/3, 2/3, 5/3, -1/3],
   [-1, 2, 0, 0], [-5/3, 4/3, 1/3, 1/3]]

The following Hessenberg matrix is similar to A:

H := linalg::hessenberg(A)

If the corresponding transformation matrix is needed as well, call linalg::hessenberg with option All:

[H, P] := linalg::hessenberg(A, All)

Then P is a nonsingular matrix such that the product PAP- 1 is equal to H:

P * A * P^(-1)



A square matrix of a domain of category Cat::Matrix



Returns the list [H, P] with a Hessenberg matrix H similar to A and the corresponding nonsingular transformation matrix P such that H = PAP- 1.

Return Values

Matrix of the same domain type as A, or the list [H, P] when the option All is given.


An n×n matrix A = (ai, j)1 ≤ in, 1 ≤ jn is called an (upper) Hessenberg matrix, if the following holds: ai, j = 0 for all i, j ∈ {1, …, n} with i > j.

For each square matrix A over a field there exists a Hessenberg matrix similar to A. In general, the upper Hessenberg matrix is not unique.


Reference: K.-H. Kiyek, F. Schwarz: Lineare Algebra. Teubner Studienbücher Mathematik, B.G. Teubner Stuttgart, Leipzig, 1999.

See Also

MuPAD Functions

Was this topic helpful?