Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 调用isApprox后,特征向量的范数发生变化_C++_Eigen_Side Effects - Fatal编程技术网

C++ 调用isApprox后,特征向量的范数发生变化

C++ 调用isApprox后,特征向量的范数发生变化,c++,eigen,side-effects,C++,Eigen,Side Effects,我试图求解一个线性方程组。我还显示了在求解上述方程时犯下的错误: const Eigen::MatrixXcd b = FEMSolver::to_vector( l ); const Eigen::VectorXcd lambdaCoefs = m_adjSolvers[iomega].solve(b); std::cout << double(sourceId) / double(m_sources.size()) << " "

我试图求解一个线性方程组。我还显示了在求解上述方程时犯下的错误:

const Eigen::MatrixXcd b = FEMSolver::to_vector( l );
const Eigen::VectorXcd lambdaCoefs = m_adjSolvers[iomega].solve(b);

std::cout << double(sourceId) / double(m_sources.size()) << " "
          << (m_Aadj[iomega]*lambdaCoefs - b).norm() << " < "
          << (1.0e-1)*std::min( (m_Aadj[iomega]*lambdaCoefs).norm(), b.norm() )
          << std::endl;

if (not b.isApprox( m_Aadj[iomega]*lambdaCoefs, 1.0e-1 )) {
    std::cout << "solving adjoint failed "
              << (m_Aadj[iomega]*lambdaCoefs - b).norm() << " / "
              << b.norm()
              << std::endl;
}

std::cout << double(sourceId) / double(m_sources.size()) << " "
          << (m_Aadj[iomega]*lambdaCoefs - b).norm()
          << " < (1.0e-1)*std::min( " << (m_Aadj[iomega]*lambdaCoefs).norm() << " , " << b.norm() << " ) "
          << std::endl;

if (not b.isApprox( m_Aadj[iomega]*lambdaCoefs, 1.0e-1 )) {
    std::cout << "solving adjoint failed "
              << (m_Aadj[iomega]*lambdaCoefs - b).norm() << " / "
              << b.norm()
              << std::endl;
    std::exit(0);
}
const-Eigen::MatrixXcd b=FEMSolver::to_向量(l);
const-Eigen::VectorXcd-lambdaCoefs=m_调整解算器[iomega]。求解(b);
std::你能提供一份详细的报告吗?你可能在别的地方有UB。
0.9923076923076923 1.713417202937616e-15 < 0.01309586242494802
0.9923076923076923 1.713417202937616e-15 < (1.0e-1)*std::min( 0.1309586242494803 , 0.1309586242494802 ) 
solving adjoint failed 2.371815161336617e-13/ 0.110570597670365