のリストを返すを実行しqr factorization
ます。つまり、:numpy
ndarrays
Q
R
>>> [q,r] = np.linalg.qr(np.array([1,0,0,0,1,1,1,1,1]).reshape(3,3))
R
は2次元配列であり、下部にゼロラインがピボットされています(私のテストセットのすべての例で証明されています)。
>>> print r
[[ 1.41421356 0.70710678 0.70710678]
[ 0. 1.22474487 1.22474487]
[ 0. 0. 0. ]]
。R
今、私は2つの行列に分割したいと思いますR_~
:
[[ 1.41421356 0.70710678 0.70710678]
[ 0. 1.22474487 1.22474487]]
およびR_0
:
[[ 0. 0. 0. ]]
(すべてのゼロラインを抽出します)。この解決策に近いようです:numpy配列の行を削除します。
編集:
さらに興味深い:-行列をnp.linalg.qr()
返しますn x n
。そうではなく、私が期待していたこと:
A := n x m
Q := n x m
R := n x m