c++ - 如何修复此特征矩阵求逆溢出错误?
问题描述
#include "Eigen/Core"
#include <iostream>
using namespace std;
using namespace Eigen;
int main() {
Matrix <float, 2, 2 > J;
J << 0.0f, -1.0f, 1.0f, 0.0f;
Matrix <float, 2, 2 > I;
I << 1.0f, 0.0f, 0.0f, 1.0f;
Matrix <float, 2, 2 > A;
A = 20.0f * I + 30.0f * J;
Matrix <float, 2, 2 > B;
B = 10.0f * I + 25.0f * J;
Matrix <float, 2, 2 > C;
C = B;
cout << C.inverse() << endl;
return 0;
}
它给出了一个我无法修复的错误。我不知道这里的“未解决的外部问题”是什么意思,如果是溢出错误如何解决?
解决方案
如果您查看文档,MatrixBase::inverse
您会发现它要求您包含Eigen/LU
. Godbolt 演示:https ://godbolt.org/z/ydfALn
如果只包含Eigen/Core
,则只会得到 的前向声明inverse
,编译器将假定它将在其他地方实现,并且链接器将失败,因为它找不到符号。
包括Eigen/Dense
也可以,因为它包括 iaEigen/LU
标头。
推荐阅读
- javascript - TypeError:date.getTime 不是函数
- node.js - 如何修改 AWS Lambda Node.js 代码以过滤来自 AWS Cloudwatch 的日志
- java - TinkerPop Gremlin How to serealize Predicate 传入直到步骤
- json - 将此 JSON 转换为 Dart 类所需的 Dart 代码是什么
- python-3.x - 使用 MechanicalSoup 保持登录状态
- xamarin - 具有 xaml 视图和动态内容的 Xamarin Forms Scrollview
- sql - 我的 dlookup 功能使我的 MS 访问数据库变慢
- javascript - 通过 AJAX 提交多个同名 HTML 表单
- javascript - 如何读取/理解 json 对象中的嵌套三元值
- swift - Swift DateFormatter 不会根据预设的 Dateformat 转换日期