QR factorization of a QD matrix
[Q, R] = qr(A)
matrix of QD real numbers, of size [m,n].
Orthogonal matrix of QD real numbers, of size [m,m].
upper Right triangular matrix of QD real numbers, of size [m,n] = size(A).
[Q,R]= qr(A)
computes the matrices Q
and
R
such that A = Q*R
,
with Q
orthogonal, and R
upper-Right triangular.
Square input matrix:
--> A = qdrand(3,3) A = [d1] 0.6744698 0.2367841 0.8287412 0.9152874 0.7015344 0.3161073 0.028486 0.1202527 0.5305191 [d2] 10^-17 * 1.640597 -0.2982776 1.8937044 4.7801543 -5.3886078 0.2948024 -0.0866402 -0.3056266 0.6539004 [d3] 10^-34 * 9.2600373 0.8368638 8.5577923 -8.6402125 -14.758006 -0.109292 -0.0023412 1.0305 0.2138737 [d4] 10^-51 * 25.767596 0.3439711 -35.969429 56.108312 -69.010269 0.4279924 -0.010919 3.5944152 1.3115704 --> [Q,R] = qr(A) R = [d1] -1.1373091 -0.7080176 -0.7591624 0. -0.247768 0.2248517 0. 0. -0.6643045 [d2] 10^-17 * -10.804238 1.2040685 -2.8589822 0. 1.2657967 -0.8216278 0. 0. -3.6599586 [d3] 10^-34 * -19.301747 2.4665605 -28.301214 0. -4.7654354 -3.8427116 0. 0. 4.9568623 [d4] 10^-51 * 63.015136 -6.9150735 22.641026 0. -31.756367 1.6983272 0. 0. 8.3776666 Q = [d1] -0.59304 0.738992 -0.3196786 -0.8047833 -0.5316812 0.2638918 -0.0250468 -0.4137704 -0.9100367 [d2] 10^-17 * 0.4723805 -4.8932887 -2.3383947 -0.1250943 1.2879175 0.387895 -0.1676178 -0.6446533 2.2015095 [d3] 10^-34 * -3.1201395 28.63755 14.857217 -0.4783138 0.228468 0.0035934 -0.3751341 3.6522336 7.8505864 [d4] 10^-51 * -18.082799 -74.785685 -18.170933 0.4497962 -0.1707274 -0.017484 1.6422523 7.858092 -80.851926 --> Q'*Q // Q orthogonal ans = [d1] 1. 0. 0. 0. 1. 0. 0. 0. 1. [d2] 10^-17 * 0. 0. 0. 0. 0. 0. 0. 0. 0. [d3] zeros(3,3) [d4] zeros(3,3) --> Q*R - A ans = [d1] 10^-64 * -0.6172119 0.4376863 -5.0326509 -0.0949557 0.284867 3.8108384 0.0093194 -0.0593473 -8.2477908 [d2] zeros(3,3) [d3] zeros(3,3) [d4] zeros(3,3)
Rectangular input matrix:
--> A = qdrand(3,4) A = [d1] 0.025871 0.2413538 0.2893728 0.3454984 0.5174468 0.5064435 0.0887932 0.7064868 0.3916873 0.4236102 0.6212882 0.5211472 [d2] 10^-17 * -0.0924012 0.5787125 2.0737583 0.7253082 -1.5854307 -5.4430809 0.3560689 -3.1813871 -2.2888826 0.9501206 -3.1495401 0.4583247 [d3] 10^-34 * -0.630647 -2.9446788 4.4190639 -0.7377624 -2.1015986 9.4105055 -3.629774 -5.6435068 -1.6176924 5.7156986 -14.931267 -1.5105702 [d4] 10^-51 * -5.1663189 -19.009761 -39.773168 3.9272681 4.0770955 -25.115063 -20.69295 -40.244413 -10.359079 -29.836918 49.48939 -8.2666715 --> [Q,R] = qr(A) R = [d1] -0.6494917 -0.6685603 -0.4569463 -0.8909036 0. 0.2172772 0.3336651 0.3052483 0. 0. -0.396847 0.0565813 [d2] 10^-17 * -0.9183674 4.0863942 0.5246183 1.3400133 0. -0.3118598 1.4280393 0.6187622 0. 0. -1.2854773 -0.3282915 [d3] 10^-34 * 7.1565659 9.9115492 2.756013 -7.3313577 0. 0.3002421 -11.93012 2.9081976 0. 0. 4.7812511 1.1232049 [d4] 10^-51 * 36.453962 -78.332762 -0.4709708 20.104321 0. -1.6776815 -26.866888 -4.9235185 0. 0. -29.109985 5.7078902 Q = [d1] -0.0398327 0.9882458 0.1475928 -0.796695 -0.1205612 0.5922348 -0.6030675 0.0939961 -0.7921328 0. 0. 0. [d2] 10^-17 * -0.0947659 -3.8210273 -0.4146059 -0.3772909 0.2168924 0.9494928 -0.2265137 -0.3053764 -0.4491638 0. 0. 0. [d3] 10^-34 * 0.1521926 -4.416197 0.5529143 0.1815863 -1.1499104 3.0882364 0.8058953 0.4462959 -0.1152056 0. 0. 0. [d4] 10^-51 * -0.4732434 -19.136316 0.9216502 0.5295538 -7.6458796 15.242305 -3.6577173 -2.288692 0.351394 0. 0. 0. --> Q'*Q // Q orthogonal ans = [d1] 1. 0. 0. 0. 1. 0. 0. 0. 1. [d2] 10^-17 * 0. 0. 0. 0. 0. 0. 0. 0. 0. [d3] zeros(3,3) [d4] zeros(3,3) --> (Q*R)(2), A(2) ans = 0.025871 0.2413538 0.2893728 0.3454984 0.5174468 0.5064435 0.0887932 0.7064868 0.3916873 0.4236102 0.6212882 0.5211472 0. 0. 0. 0. ans = 0.025871 0.2413538 0.2893728 0.3454984 0.5174468 0.5064435 0.0887932 0.7064868 0.3916873 0.4236102 0.6212882 0.5211472 --> (Q*R)(1:$-1,:) - A ans = [d1] 10^-64 * -0.0534126 0.593473 0.6646897 1.4836825 0.4035616 0.0474778 -0.3323449 -0.1899114 0.6172119 -0.1899114 1.2344238 0.2255197 [d2] zeros(3,4) [d3] zeros(3,4) [d4] zeros(3,4)