toUpperHessenberg

Transform a real square matrix A to upper Hessenberg form H by orthogonal similarity transformation: Q' * A * Q = H

Information

This information is part of the Modelica Standard Library maintained by the Modelica Association.

Syntax

                H = Matrices.Utilities.toUpperHessenberg(A);
(H, V, tau, info) = Matrices.Utilities.toUpperHessenberg(A,ilo, ihi);

Description

Function toUpperHessenberg computes a upper Hessenberg form H of a matrix A by orthogonal similarity transformation: Q' * A * Q = H. The optional inputs ilo and ihi improve efficiency if the matrix is already partially converted to Hessenberg form; it is assumed that matrix A is already upper Hessenberg for rows and columns 1:(ilo-1) and (ihi+1):size(A, 1). The function calls LAPACK.dgehrd. See Matrices.LAPACK.dgehrd for more information about the additional outputs V, tau, info and inputs ilo, ihi.

Example

A  = [1, 2, 3;
      6, 5, 4;
      1, 0, 0];

H = toUpperHessenberg(A);

results in:

H = [1.0,  -2.466,  2.630;
    -6.083, 5.514, -3.081;
     0.0,   0.919, -0.514]

See also

Matrices.hessenberg

Syntax

(H, V, tau, info) = toUpperHessenberg(A, ilo, ihi)

Inputs (3)

A

Type: Real[:,size(A, 1)]

Description: Square matrix A

ilo

Default Value: 1

Type: Integer

Description: Lowest index where the original matrix is not in upper triangular form

ihi

Default Value: size(A, 1)

Type: Integer

Description: Highest index where the original matrix is not in upper triangular form

Outputs (4)

H

Type: Real[size(A, 1),size(A, 2)]

Description: Upper Hessenberg form

V

Type: Real[size(A, 1),size(A, 2)]

Description: V=[v1,v2,..vn-1,0] with vi are vectors which define the elementary reflectors

tau

Type: Real[max(0, size(A, 1) - 1)]

Description: Scalar factors of the elementary reflectors

info

Type: Integer

Description: Information of successful function call