如何计算复杂矩阵的指数?
How do I calculate the exponential of a complex matrix?
我在尝试使用 C++ Eigen 库计算复杂矩阵的指数时遇到问题。
下面是我尝试实现的示例代码。
#include <iostream>
#include "Dense"
#include <complex>
#include "unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h"
int main()
{
using namespace std::complex_literals;
Eigen::MatrixXcd test(2,2);
test(0,0)=1i+std::complex<double>(5);
test(1,0)=1i*2.;
test(0,1)=std::complex<double>(2);
test(1,1)=3.*1i+std::complex<double>(3);
std::cout << "The matrix exponential is:\n"
<< test.exp() << "\n\n";
}
当我 运行 这个程序时,我得到错误:
Implicit instantiation of undefined template 'Eigen::MatrixFunctionReturnValue<Eigen::Matrix<std::__1::complex<double>, -1, -1, 0, -1, -1> >'
我试图找到答案,但我还没有找到。
如有任何帮助,我们将不胜感激。
编辑:
Eigen 工作中的标准矩阵运算和 Eigen file/folder 位于我的项目文件夹中。唯一似乎不起作用的函数是复杂矩阵不受支持文件夹中的矩阵函数(它们确实适用于真实矩阵)。
您不得直接包含Eigen/src
或unsupported/Eigen/src
子目录中的headers。此外,不要使用 #include "Dense"
,而是使用 #include <Eigen/Dense>
(在许多情况下,<Eigen/Core>
实际上就足够了)。
在你的情况下,你实际上只需要这些包含,因为所有必要的依赖项都包含在 MatrixFunctions
:
#include <iostream>
#include <unsupported/Eigen/MatrixFunctions>
Godbolt-Demo: https://godbolt.org/z/PmJWP3 (编译偶尔会超时).
我在尝试使用 C++ Eigen 库计算复杂矩阵的指数时遇到问题。
下面是我尝试实现的示例代码。
#include <iostream>
#include "Dense"
#include <complex>
#include "unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h"
int main()
{
using namespace std::complex_literals;
Eigen::MatrixXcd test(2,2);
test(0,0)=1i+std::complex<double>(5);
test(1,0)=1i*2.;
test(0,1)=std::complex<double>(2);
test(1,1)=3.*1i+std::complex<double>(3);
std::cout << "The matrix exponential is:\n"
<< test.exp() << "\n\n";
}
当我 运行 这个程序时,我得到错误:
Implicit instantiation of undefined template 'Eigen::MatrixFunctionReturnValue<Eigen::Matrix<std::__1::complex<double>, -1, -1, 0, -1, -1> >'
我试图找到答案,但我还没有找到。
如有任何帮助,我们将不胜感激。
编辑:
Eigen 工作中的标准矩阵运算和 Eigen file/folder 位于我的项目文件夹中。唯一似乎不起作用的函数是复杂矩阵不受支持文件夹中的矩阵函数(它们确实适用于真实矩阵)。
您不得直接包含Eigen/src
或unsupported/Eigen/src
子目录中的headers。此外,不要使用 #include "Dense"
,而是使用 #include <Eigen/Dense>
(在许多情况下,<Eigen/Core>
实际上就足够了)。
在你的情况下,你实际上只需要这些包含,因为所有必要的依赖项都包含在 MatrixFunctions
:
#include <iostream>
#include <unsupported/Eigen/MatrixFunctions>
Godbolt-Demo: https://godbolt.org/z/PmJWP3 (编译偶尔会超时).