我想编写一个类,用C ++中的Euler方法解决ODE的系统(我是初学者)。如果方程式是标量的,那没有问题,因为我可以将解存储在vector
中,也可以使用double* sol = new double[N_points]
如果我必须处理矩阵,事情开始变得怪异,所以我的问题是:**我是否应该将某些库用作Eigen
?还是我应该与指针斗争?
我正在寻找一些好的方法/参考,以确保哪种是处理这种情况的正确/最佳方法。
如果要使用矩阵,则可以使用数组数组来完成,或者使用具有一维数组(或向量)的简化抽象层来存储矩阵数据,例如:
std::vector<double> matrix(row * columns);
要访问项目,您可以使用简单的算术,例如:
int index = rowIndex * totalColumns + columnIndex;
double item = matrix[index];
您可以查看我的DoubleMatrix库(不使用它,只需检出),以获取此实现的示例。