functiontoUpperHessenberg
Transform a real square matrix A to upper Hessenberg form H by orthogonal similarity transformation: Q' * A * Q = H
Extends from Modelica.Icons.Function (Icon for functions).
Information
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.hessenbergInputs
| Type | Name | Default | Description |
|---|---|---|---|
| Real[:,size(A, 1)] | A | Square matrix A | |
| Integer | ilo | 1 | Lowest index where the original matrix is not in upper triangular form |
| Integer | ihi | size(A, 1) | Highest index where the original matrix is not in upper triangular form |
Outputs
| Type | Name | Default | Description |
|---|---|---|---|
| Real[size(A, 1),size(A, 2)] | H | Upper Hessenberg form | |
| Real[size(A, 1),size(A, 2)] | V | V=[v1,v2,..vn-1,0] with vi are vectors which define the elementary reflectors | |
| Real[max(0, size(A, 1) - 1)] | tau | Scalar factors of the elementary reflectors | |
| Integer | info | Information of successful function call |
Revisions
- 2010/04/30 by Marcus Baur, DLR-RM