QR decomposition with constrained diagonal phases (Lapack interface)
Matlab provides QR decomposition routines based on Lapack subroutines ZGEQRF/ZGEQPF and ZUNGQR. Such routines make the diagonal entries be real.
For general diagonal conditions, this code 'qr_lapack' supports that any given diagonal complex phases are allowed in QR decomposition such as all non-negative, the same as in the original matrix A, or any others. For example,
DIAG_VEC = diag(A);
[Q, R] = qr_lapack (A, ECON, DIAG_VEC);
This code accesses Lapack routines directly, not using matlab command qr. After QR decomposion based on Lapack, Q and R are recomputed to have specific phases of the diagonal entries of R.
There are other sample codes for specific tests:
* qr_diag_pos.m: QR making diagonal positive real.
* qr_diag_phase.m: QR making the same diagonal phases as in A.
* qr_diag_arg.m: another implementation using argment measure.
Note that qr_lapack.m uses the code in qr_diag_phase.m for control the diagonal phases.
qrd.m file provides options to select user subroutines among qr_lapack, qr_diag_pos, qr or others. Now we can use:
[Q, R] = qrd (A, ECON, DIAG_VEC);
test_qrd.m is for usage examples.
For fat matrices, it computes the LQ decomposition of A = L*Q, where A' = Q'*L' and [L,Q] = qr_lapack (A).
Cite As
Sung-Eun Jo (2024). QR decomposition with constrained diagonal phases (Lapack interface) (https://www.mathworks.com/matlabcentral/fileexchange/47875-qr-decomposition-with-constrained-diagonal-phases-lapack-interface), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Acknowledgements
Inspired by: lapack, Bidiagonalization of a matrix based on Lapack interface
Inspired: Trigonometric function errors at pi or pi/2 such as sin(pi) or cos(pi/2)
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.3.0.0 | revised qr_diag_arg.m by using sind and cosd functions. |
||
1.2.0.0 | updated comments. |
||
1.1.0.0 | added LQ decomposition for fat matrices.
|
||
1.0.0.0 |