微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

特征:修改行主稀疏矩阵的行

如何解决特征:修改行主稀疏矩阵的行

我使用 C++ 中的 Eigen 库来求解稀疏线性方程:Ax=b 其中,A 是稀疏方阵,b 是具有 ILU 预处理 BiCGSTAB 的稠密向量。我正在使用 setFromTriplets 函数初始化矩阵 A。线性系统是由偏微分方程在空间和时间上的离散化产生的。

我的应用程序在每个时间步都会略微改变矩阵。我想在每个时间步的开始修改矩阵中的少量行(大约 1% 的行)。我以行主格式存储矩阵,以便我可以直接访问该行。我不想从三元组重新组装整个矩阵,因为要修改的行数约为 1%。此外,修改使得行中非零的数量完全相同。我只想更改列索引和值。因此,我不需要为该行分配额外的内存。在浏览了 Eigen 文档和论坛后,我找到了 coeffRefinsert 函数。如果元素不存在,它们都会分配额外的内存。我想避免这种情况,因为非零的数量不会改变。

感谢任何帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。