You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Julia中如何实现薄QR分解 获取同维度Q矩阵与列空间正交基

Julia中获取薄QR分解对应维度Q矩阵的方法

LinearAlgebra是Julia做线性代数计算的官方标准库,其内置qr函数默认返回的分解结果中,Q字段为懒加载的正交算子,直接调用Matrix(Q)会生成行数与输入矩阵一致的完整方阵Q。要获取与输入矩阵维度匹配的薄版本Q(即原矩阵列空间的标准正交基),直接对Q字段按原矩阵列数切片即可,无需生成完整方阵。

实现示例

using LinearAlgebra

# 构造测试用3×2矩阵
A = randn(3, 2)
# 执行QR分解
fac = qr(A)

# 取薄版本Q:维度3×2,列是A列空间的标准正交基
Q_thin = fac.Q[:, 1:size(A, 2)]
# 取对应薄版本R:维度2×2
R_thin = fac.R[1:size(A, 2), :]

验证与说明

  • 维度校验:size(Q_thin)会返回(3, 2),和输入矩阵A维度一致
  • 正交性校验:Q_thin' * Q_thin ≈ I,满足标准正交基要求
  • 空间一致性校验:Q_thin * R_thin ≈ A,Q_thin的列空间完全覆盖A的列空间
  • 性能提示:不要使用Matrix(fac.Q)[:, 1:size(A,2)]的写法,该写法会先生成完整的3×3方阵Q再切片,浪费计算资源;直接对fac.Q懒算子切片时,底层只会计算需要的前2列正交基,效率更高。

内容的提问来源于stack exchange,提问作者James Rider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:30:44