Julia中如何实现带列主元的QR(Pivoted QR)分解?
Julia中的带列主元QR分解方法
Julia的标准库LinearAlgebra模块提供了带列主元的QR分解实现,具体可以通过以下方式调用:
- 使用
ColumnPivoting()作为第二个参数:using LinearAlgebra A = rand(3, 4) F = qr(A, ColumnPivoting()) - 也可以使用简写符号
:col替代ColumnPivoting():F = qr(A, :col)
分解结果F是一个复合类型对象,可提取以下关键部分:
F.Q:正交矩阵QF.R:上三角矩阵RF.P:列置换矩阵,满足等式A * P = Q * R
可通过以下代码验证分解的正确性:
A * F.P ≈ F.Q * F.R # 结果应为true
另外,旧版本Julia支持qr(A, Val(true))的写法,但目前更推荐使用ColumnPivoting()或:col,可读性更强。
内容的提问来源于stack exchange,提问作者James Rider
相关产品推荐
相关产品推荐

