Python矩阵分解之QR分解

文章目录

    • QR和RQ分解
    • 其他函数

QR和RQ分解

Python矩阵分解之QR分解为方阵,Python矩阵分解之QR分解分别为正交单位阵和上三角阵,则形如Python矩阵分解之QR分解的分解为QR分解;形如Python矩阵分解之QR分解的分解为RQ分解。

scipy.linalg中,为二者提供了相同的参数,除了待分解矩阵a之外,还有下列参数

  • overwrite_a 默认为False,为True时,将在矩阵分解时覆盖a的值
  • lwork 工作数组的尺寸
  • mode 默认'full',用于调整返回值,可选4个参数
    • 'full':返回Python矩阵分解之QR分解Python矩阵分解之QR分解
    • 'r':返回Python矩阵分解之QR分解
    • 'economic':返回Python矩阵分解之QR分解Python矩阵分解之QR分解,但是合并在一起
    • 'raw':返回Python矩阵分解之QR分解Python矩阵分解之QR分解矩阵
  • pivoting 默认False,当为True时,计算Python矩阵分解之QR分解,但要求选择合适的Python矩阵分解之QR分解,从而让Python矩阵分解之QR分解的对角线非递增
  • check_finite 默认为True,表示检查是否有限
import numpy as np
import scipy.linalg as sl
A = np.random.rand(3,3)
q1,r1 = sl.qr(A)
r2,qr = sl.rq(A)

结果得到Python矩阵分解之QR分解Python矩阵分解之QR分解分别为,可见二者并不相等。

Python矩阵分解之QR分解

但是Python矩阵分解之QR分解的确是等于Python矩阵分解之QR分解的。

>>> q1@r1
array([[0.81677429, 0.63368526, 0.84867074],
       [0.22394697, 0.10848293, 0.58357567],
       [0.90375906, 0.37051483, 0.06042968]])
>>> q2@r2
array([[-0.09631134, -0.22572231, -0.15900946],
       [ 0.01719633, -0.05246553, -0.90632485],
       [ 0.23552571, -0.94691613,  1.13446376]])
>>> r2@q2
array([[0.81677429, 0.63368526, 0.84867074],
       [0.22394697, 0.10848293, 0.58357567],
       [0.90375906, 0.37051483, 0.06042968]])

其他函数

除了qrrq这两个函数外,scipy.linalg还提供了其他与qr分解相关的函数。

qr_multiply(a,c),在对Python矩阵分解之QR分解进行Python矩阵分解之QR分解分解之后,返回Python矩阵分解之QR分解,其参数中,overwrite_a, overwrite_c, privotingqr函数中的作用相同,或可类比。此外,还有其他两个参数

  • mode 可选leftright,分别表示返回Python矩阵分解之QR分解Python矩阵分解之QR分解
  • conjugateTrue时,返回Q的复共轭

qr_update(Q, R, u, v),若Python矩阵分解之QR分解是QR分解,则返回Python矩阵分解之QR分解的QR分解。此函数也支持overwrite_qruv, check_finite参数。

qr_delete(Q,R,k,p)qr_insert(Q,R,u,k)分别用于矩阵的删减和增添,对于Python矩阵分解之QR分解而言,前者从第Python矩阵分解之QR分解行/列删掉Python矩阵分解之QR分解行/列;后者在第Python矩阵分解之QR分解行/列插入Python矩阵分解之QR分解

这两个函数均支持check_finite,覆写开关分别是overwrite_qroverwrite_qru,通过which来调整插入/删除的是行还是列,即which='row'时,针对行操作,为'cols'时,针对列操作。

版权声明:本文为博主作者:微小冷原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/m0_37816922/article/details/129717813

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2024年1月11日
下一篇 2024年1月11日

相关推荐