c++ - Eigen:计算稀疏 A 的 (A^T * A) 的快速方法
问题描述
我想解决稀疏 (crs/ccs) 矩阵的一系列最小二乘问题(基本上是高斯牛顿求解器)A
。最耗时的操作之一是H = A^T * A
产品。A
具有不同的数值,但具有相同的稀疏度,因此H
在计算过程中稀疏度是恒定的。假设A
行多于列。
我的主要问题是:真正快速执行该产品的正确方法是什么?我知道无矩阵求解器,但目前我想探索分析解决方案。
我还有几个小问题
1)仅计算三角形部分优化(Eigen lib 中的稀疏稀疏乘积 A^T*A optim)在存在矢量化的情况下是否有意义?
2)我如何告诉特征稀疏性H
是恒定的?所以 eigen 应该使用已经预先分配的缓冲区并且不应该检查结果模式。
3) 和 的哪个顺序对A
,行专业或列专业H
更有利?H = A^T * A
谢谢你的回答,对不起我的英语
解决方案
推荐阅读
- flutter - 颤动冻结:由于类型原因,无法为“数据”生成“toJson”代码
- redisson - redisson使用的连接数是subscriptionConnectionPoolSize和connectionPoolSize之和吗?
- javascript - 拒绝加载脚本“https://www.gstatic.com/firebasejs/9.4.1/firebase-app.js”,因为它违反了以下内容安全政策
- ios - 如何使轻按手势在视图外稍微拦截轻按
- php - Codeception:使用 ->expectError() 和 trigger_error() 的问题
- caching - 我应该在 Redis 中设置“常量”结果缓存的过期时间吗?
- bash - 使用 grep 保留重复的行
- python - Python BeautifulSoup 网页抓取 Tripadvisor 查看评论
- docker - VS Code 远程容器无法获取本地颁发者证书
- reactjs - 更改上下文时如何立即更新错误值