linear-algebra - 是否有用于将矩阵的上角/下角归零的 LAPACK 函数?
问题描述
一些 LAPACK 函数(如dgqrf
)返回一个函数,其中答案是上三角形,但在对角线下方存储了一些辅助信息。我想知道是否有一个函数可以将对角线条目下方的值归零。
解决方案
一般问题
不,标准 BLAS/LAPACK 中没有这样的功能。
如果您愿意放弃直接使用 BLAS/LAPACK 函数(存在所有潜在问题和副作用),您可能会发现线性代数包可以使此类操作更容易。比如说,Eigen会提供TriangularViews,而其他包会有他们这样做的方式。
如果您必须直接使用 BLAS/LAPACK,则必须自己将其归零。
QR分解
我假设您不需要 QR 分解中的 Q 并且只关心 R。这样,您希望将其存储在适当的位置并清理并避免将副本复制到另一个分配的存储中。
从技术上讲,您可以使用dormqr并将矩阵 C 设置为零矩阵来实现。但是,它效率不高,因为您实际上是在执行不需要的线性代数运算并存储另一个密集矩阵。如果确实需要这样做,您当然最好进行手动循环进行清理,或者将 R 复制到另一个地方(类似于此处的操作方式)。
推荐阅读
- android - RxAndroidBle - 我可以使用单个命令将可变数量的写入组合到特征吗?
- performance - 使用 Haskell 进行竞争性编程
- crystal-reports - 在 Crystal Reports 2013 中组织多个详细信息部分
- vue.js - 如何将“数据”或“方法”结果用于 VueRouter 道具
- javascript - d3js v5 调整分组条形图的大小
- gps - 转换 GPS 数据 Cello-CANiQ
- angular - 使用 Jasmine 对带有 rxjs 主题的 Angular 组件进行单元测试
- sql - 在“x”日期之后没有交易的用户列表
- jenkins - 获取 $BRANCH_NAME 并将其分配给 Jenkinsfile 中的环境变量
- javascript - 为什么什么都没有显示?