如何求解复杂的线性系统
How to solve complex linear systems?
我有一个复矩阵A和一个复向量b。我想求解线性系统 Ax=b。我尝试使用此页面上的示例,并使其适应我的复杂问题。http://eigen.tuxfamily.org/dox/group__TutorialLinearAlgebra.html
以下是我正在尝试执行的操作的简化示例:
我的对象是这样定义的:
typedef Eigen::Matrix<complexd, Eigen::Dynamic, Eigen::Dynamic> DoubleComplexMatrix;
typedef Eigen::Array<complexd, Eigen::Dynamic, 1> DoubleComplexArray;
在我的代码中,我想解决这个问题
DoubleComplexMatrix A(3,3);
DoubleComplexArray b(3);
DoubleComplexArray x(3);
A << 1,2,3, 4,5,6, 7,8,10;
b << 3, 3, 4;
cout << "Here is the matrix A:n" << A << endl;
cout << "Here is the vector b:n" << b << endl;
ColPivHouseholderQR<DoubleComplexMatrix> dec(A);
x = dec.solve(b);
cout << "The solution is:n" << x << endl;
错误出现在行:DoubleComplexArray x = dec.solve(b);
,因为当我评论它时,没有更多的错误。
我收到此错误:
TideSolve.cpp:98:38: error: no matching function for call to ‘Eigen::ColPivHouseholderQR<Eigen::Matrix<std::complex<double>, -1, -1> >::solve(DoubleComplexArray&)’
DoubleComplexArray x = dec.solve(b);
这是否意味着特征求解器不适用于复杂求解器?(我敢肯定他们会,我只是很糟糕!我是否需要另一个求解器而不是ColPivHouseholderQR
处理复杂问题?如果是,是哪一个?
我发现了一个老问题,有人使用了另一个求解器。
你应该使用Eigen::Matrix
而不是Eigen::Array
。后者适用于值的原始 2D 数组。前者用于线性代数矩阵和向量。请参阅相应的手册页。
相关文章:
- C++ 本征线性系统求解,数值问题?
- 使用特征 3 线性系统求解器的错误结果
- 使用特征/英特尔 MKL 求解稀疏线性系统
- 犰狳库中线性系统的近似解
- 用SimplicialCholesky Eigen求解大型稀疏线性系统
- 特征 3 断言在求解线性系统时失败 - 据我所知,这是由于特征中的无效索引
- 在C++-GPU中解决稀疏线性系统的最佳方法可能吗
- 如何使用Z_2中的系数求解稀疏线性系统
- 以线性最小二乘方式求解系统 Ax=b,具有复元素和下三角形平方 A 矩阵
- 用拉帕克dgeqrf_求解线性系统
- 定维(N=9)对称半正定稠密线性系统的快速解
- 当仅恒定项之一变化时,线性系统AX = B的有效解决方案
- C++ 用于求解复杂线性系统 Ax=b 的库
- 使用指针和数组求解线性系统
- 无法访问特征线性系统解的元素
- 如何求解复杂的线性系统
- 改进稀疏线性系统的解
- c++中有没有免费的迭代线性系统求解器,可以让我输入任意的初始猜测
- 如何求解非常大的系统的稀疏线性系统
- 在CUDA中求解稀疏定正线性系统