Eigen::SparseMatrix<double> Tsp(n - 2, n - 2); Tsp.reserve(Eigen::VectorXi::Constant( n - 2, 3)); for (size_t i = 1; i < n - 3; ++i) { Tsp.insert(i, i - 1) = Dx[i + 1]; Tsp.insert(i, i) = 2 * (Dx[i] + Dx[i + 1]); Tsp.insert(i, i + 1) = Dx[i]; r(i) = 3 * (Dx[i + 1] * yp[i] + Dx[i] * yp[i + 1]); }
时间: 2024-04-27 17:23:02 浏览: 156
eigen-git-mirror:已弃用此镜像-新网址:https:gitlab.comlibeigeneigen
这段代码是使用Eigen库创建一个n-2阶的稀疏矩阵Tsp,同时设置其预留的非零元素数量为每行3个。然后,使用循环遍历矩阵Tsp的第二行到倒数第二行(共计n-4行),并分别在列i-1、列i、列i+1这3个位置插入对应的系数值。其中,系数值Dx[i+1]被插入到(i, i-1)位置,2*(Dx[i]+Dx[i+1])被插入到(i, i)位置,Dx[i]被插入到(i, i+1)位置。另外,还有一个向量r,在该循环中,将其第i个元素设置为3 * (Dx[i + 1] * yp[i] + Dx[i] * yp[i + 1])。
阅读全文