Я запускаю факторизацию qr
в numpy
, которая возвращает список ndarrays
. ] , а именно Q
и R
:
>>> [q,r] = np.linalg.qr(np.array([1,0,0,0,1,1,1,1,1]).reshape(3,3))
R
— это двумерный массив, имеющий сводные нулевые линии внизу (даже доказано для всех примеров в моем тесте установить):
>>> print r
[[ 1.41421356 0.70710678 0.70710678]
[ 0. 1.22474487 1.22474487]
[ 0. 0. 0. ]]
. Теперь я хочу разделить R
на две матрицы 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