кодесурса
«NumPy

NumPy: вычислить QR-разложение данной матрицы

script1adsense2code
script1adsense3code

NumPy: линейная алгебра Упражнение-13 с решением

Напишите программу NumPy для расчета QR-разложения данной матрицы.

Из Википедии: В линейной алгебре QR-разложение (также называемое QR-факторизацией) матрицы - это разложение матрицы A на произведение A = QR ортогональной матрицы Q и верхней треугольной матрицы R. Часто используется QR-разложение. для решения линейной задачи наименьших квадратов и является основой для конкретного алгоритма собственных значений, алгоритма QR.

Квадратная матрица
Любая вещественная квадратная матрица A может быть разложена как

«NumPy:
где Q - ортогональная матрица (ее столбцы - ортогональные единичные векторы, означающие {/ displaystyle Q ^ {/екстf {T}} Q = QQ ^ {/ textf {T}} = I} {/ displaystyle Q ^ {/ textf {T }} Q = QQ ^ {/ textf {T}} = I}), а R - верхняя треугольная матрица (также называемая прямоугольной прямоугольной матрицей). Если A обратимо, то факторизация уникальна, если мы требуем, чтобы диагональные элементы R были положительными.
Если вместо этого A является сложной квадратной матрицей, то существует декомпозиция A = QR, где Q - унитарная матрица (поэтому {/ displaystyle Q ^ {*} Q = QQ ^ {*} = I} {/ displaystyle Q ^ {* } Q = QQ ^ {*} = I}).
Если A имеет n линейно независимых столбцов, то первые n столбцов Q образуют ортонормированный базис для пространства столбцов A. В более общем случае, первые k столбцов Q образуют ортонормированный базис для диапазона первых k столбцов A для любой 1 ≤ k ≤ n. [1] Тот факт, что любой столбец k из A зависит только от первых k столбцов из Q, отвечает за треугольную форму R. [1]

Пример решения :

Код Python:

import numpy as np
m = np.array([[1,2],[3,4]])
print("Original matrix:")
print(m)
result =  np.linalg.qr(m)
print("Decomposition of the said matrix:")
print(result)

Пример вывода:

 Исходная матрица:
[[1 2]
 [3 4]]
Разложение указанной матрицы:
(массив ([[- 0.31622777, -0,9486833],
       [-0,9486833, 0,31622777]]), массив ([[- 3,16227766, -4,42718872],
       [0., -0.63245553]]))

Редактор кода Python:


Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.

Предыдущий: Напишите программу NumPy, рассчитывающую обратную матрицу.
Далее: Написать программу NumPy для вычисления номера условия данной матрицы.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code