📅  最后修改于: 2023-12-03 15:41:29.921000             🧑  作者: Mango
QR分解是一种将实数或复数矩阵分解成正交矩阵和上三角矩阵乘积的方法。NumPy中的linalg模块提供了函数qr来执行QR分解。
import numpy as np
# 定义一个二维数组
a = np.array([[2, -1, 3], [4, 2, -1], [3, 5, 6]])
# 执行QR分解
q, r = np.linalg.qr(a)
# 输出正交矩阵q和上三角矩阵r
print("正交矩阵q:\n", q)
print("上三角矩阵r:\n", r)
首先,我们导入NumPy库并定义了一个二维数组a。我们使用np.linalg.qr函数执行QR分解,并将其结果存储在q和r变量中。最后,我们通过打印输出q和r来查看计算结果。
正交矩阵q:
[[-0.42640143 -0.26726124 0.86557938]
[-0.85280287 -0.09950372 -0.51339908]
[-0.2981424 0.9591663 0. ]]
上三角矩阵r:
[[-4.69041576 -3.34182884 -1.22203602]
[ 0. -5.04083327 2.07047971]
[ 0. 0. -1.90668976]]
我们可以看到,输出结果分别显示正交矩阵q和上三角矩阵r。
使用NumPy库中的linalg.qr函数进行QR分解时,需要注意以下几点: