【发布时间】:2016-02-22 04:09:26
【问题描述】:
我在使用 Eigen 时遇到浮点精度问题。
我有两个Eigen::MatrixXd;第一个矩阵 A (nx1) 仅包含正整数,而第二个矩阵 B (nx1) 包含一个填充了相同实数的列(例如:-0.714312)。
我需要计算以下Eigen::MatrixXd:
const auto exponential = [](double x)
{ return std::exp(x); };
MatrixXd W = B.unaryExpr(exponential);
MatrixXd residuals = A - W;
问题是当我打印残差之和时:
cout << residuals.sum();
// output = 6.16951e-06
通过使用 R 和相同的输入矩阵执行相同的操作,我得到了不同的值。
通过使用 R 矩阵,我得到 -2.950208e-09。而A、B和W的元素之和在C++和R中都是一样的。
【问题讨论】:
标签: c++ r matrix precision eigen