JQR/JRQ/JQL/JLQ computes a J-orthogonal (or J-unitary, or hyperbolic) QR/RQ/QL/LQ factorization of the matrix A. For example, the JQR factorization decomposes the matrix A = Q*R for a given signature matrix J, where R is an upper triangular matrix with positive values on the diagonal, and Q is a J-orthogonal matrix with Q'*J*Q = J. The given signature matrix J must be a diagonal matrix with 1 or -1 on the main diagonal and zeros on all the subdiagonals.
A = randn(10);
J = blkdiag(-eye(5),eye(5));
[Q,R,Jp] = jqr(A,J);
norm(Jp - Q'*J*Q)
Ivo Houtzager (2023). JQR/JRQ/JQL/JLQ factorizations (https://github.com/iwoodsawyer/hyperbolic/releases/tag/v126.96.36.199), GitHub. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
See release notes for this release on GitHub: https://github.com/iwoodsawyer/hyperbolic/releases/tag/v188.8.131.52
See release notes for this release on GitHub: https://github.com/iwoodsawyer/hyperbolic/releases/tag/v1.4.01
See release notes for this release on GitHub: https://github.com/iwoodsawyer/hyperbolic/releases/tag/v184.108.40.206
Fixes to prevent overflow/underflow
Small code improvements
Made the diagonal values of the returned R matrix positive.
Changed default tolerance to be based on frobenius norm for speed