gpt4 book ai didi

c++ - 以最佳方式数值求解矩阵方程

转载 作者:太空狗 更新时间:2023-10-29 23:17:15 28 4
gpt4 key购买 nike

给定一个复数方阵 G 和一个方阵 M,我可以从 G 快速计算,我需要有效地计算矩阵 G' 由矩阵方程 G'M = < strong>G 在我的 C++ 程序中。之后可以丢弃原来的G

由于我在数值线性代数方面的经验有限,所以到目前为止我一直依赖 Armadillo库,它具有非常好的语法并且可以提供良好的性能。我在这里的方法是对等式两边进行转置并解决问题M ⋅ (G') = G 通过调用

using namespace arma;
G = trans(solve(M, trans(G));

但是如果我正确地理解了基于模板的大量代码,这将涉及围绕 LAPACK 例程实际执行转置和复制数据 cgesv .当然,与实际线性求解器的 O(N3) 相比,这些是 O(N2) 操作,但在这种情况下我仍然宁愿避免它们。

到目前为止,我从未直接使用过 LAPACK,但是是否有可能通过直接调用 LAPACK 例程而不必实际执行换位来提高性能?或者您会建议采用不同的方法吗?


最佳答案

我曾经提供过lapack的C++代码。查看我的回答,其中提供了有关如何使用原始 Fortran 库中的 lapack 的示例。

Understanding LAPACK calls in C++ with a simple example

关于c++ - 以最佳方式数值求解矩阵方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19012492/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com