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. With the optional inputs ilo and ihi, also partial transformation is possible. The function calls LAPACK function 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 had been Hessenbergform

ihi

Default Value: size(A, 1)

Type: Integer

Description: Highest index where the original matrix had been Hessenbergform

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