R имеет a qr()
функция, которая выполняет разложение QR с помощью или LINPACK или LAPACK (по моему опыту, последний на 5% быстрее). Возвращенный основной объект является матрицей "qr", который содержит в верхней треугольной матрице R (т.е. R=qr[upper.tri(qr)]
).Пока все хорошо. Нижняя треугольная часть qr содержит Q "в компактной форме". Можно извлечь Q из qr разложения при помощи qr.Q()
. Я хотел бы найти инверсию qr.Q()
. В другом слове я действительно имею Q и R, и хотел бы поместить их в объект "qr". R тривиален, но Q не. Цель состоит в том, чтобы относиться к нему qr.solve()
, который намного быстрее, чем solve()
в больших системах.