qr
语法
qr(obj, [mode=’full’], [pivoting=false])
参数
obj 是一个矩阵。
mode 是一个字符串,表示返回信息的类型。它的取值可以是”full”, “economic”, “raw”, 或”r”。默认值是”full”。
pivoting 是一个布尔值,表示是否返回置换矩阵的秩显,默认值为false。
详情
计算矩阵的QR(正交三角)分解,将矩阵分解成一个标准正交矩阵Q与上三角形矩阵R。若输入矩阵为A,结果满足A=Q*R。
假设A的行数为m,列数为n:
若mode=”full”,返回矩阵Q与R,形状分别为m*m和m*n。
若mode=”economic”,返回矩阵Q与R,形状分别为m*k和k*n,其中k=min(m,n)。
若mode=”r”,仅返回矩阵R,形状为m*n。
若pivoting=true,返回结果还包含一个与输入矩阵列数相同长度的向量P。P为置换矩阵的秩显,表示置换矩阵中1所在列的位置。
例子
$ A = matrix([2,5,7,5], [5,2,5,4], [8,2,6,4]);
$ Q,R = qr(A);
$ Q;
#0 |
#1 |
#2 |
#3 |
---|---|---|---|
-0.197066 |
0.903357 |
0.300275 |
0.234404 |
-0.492665 |
-0.418267 |
0.459245 |
0.609449 |
-0.68973 |
-0.02475 |
0.170745 |
-0.703211 |
-0.492665 |
0.091573 |
-0.818398 |
0.281284 |
$ R;
#0 |
#1 |
#2 |
---|---|---|
-10.148892 |
-7.38997 |
-8.670898 |
0 |
3.922799 |
6.608121 |
0 |
0 |
1.071571 |
0 |
0 |
0 |
$ Q,R=qr(A,mode='economic');
$ Q;
#0 |
#1 |
#2 |
---|---|---|
-0.197066 |
0.903357 |
0.300275 |
-0.492665 |
-0.418267 |
0.459245 |
-0.68973 |
-0.02475 |
0.170745 |
-0.492665 |
0.091573 |
-0.818398 |
$ R;
#0 |
#1 |
#2 |
---|---|---|
-10.148892 |
-7.38997 |
-8.670898 |
0 |
3.922799 |
6.608121 |
0 |
0 |
1.071571 |
$ Q,T,R=qr(A,mode='raw');
$ R;
#0 |
#1 |
#2 |
---|---|---|
-10.148892 |
-7.38997 |
-8.670898 |
0.41156 |
3.922799 |
6.608121 |
0.576184 |
0.3046 |
1.071571 |
0.41156 |
0.156539 |
0.900419 |
$ T;
[1.197066,1.790053,1.104512]
$ R
#0 |
#1 |
#2 |
---|---|---|
-10.148892 |
-7.38997 |
-8.670898 |
0 |
3.922799 |
6.608121 |
0 |
0 |
1.071571 |
$ Q,T,R,P = qr(A,mode='raw',pivoting=true);
$ Q;
#0 |
#1 |
#2 |
---|---|---|
-10.954451 |
-8.033264 |
-8.215838 |
0.105516 |
-6.20215 |
-1.45111 |
0.316548 |
0.37699 |
-0.627918 |
0.211032 |
0.284188 |
0.936372 |
$ T;
[1.730297,1.635478,1.065648]
$ R
#0 |
#1 |
#2 |
---|---|---|
-10.954451 |
-8.033264 |
-8.215838 |
0 |
-6.20215 |
-1.45111 |
0 |
0 |
-0.627918 |
$ P;
[2,0,1]