C++和ode系统:如何处理?

C++ and ode system: how to handle it?

我想用 C++ 中的欧拉方法编写 class 来求解 系统 的 ODE(我是初学者)。如果方程是标量的,那没问题,因为我可以将解存储在 vector 中,或者我可以用 double* sol = new double[N_points]

动态分配一个数组

如果我必须处理矩阵,事情开始变得奇怪,所以我的问题是:**我应该使用一些库作为 Eigen 吗?还是我应该与指针作斗争?

我正在寻找一些好的 way/reference 来确定 correct/best 处理这种情况的方法。

如果您想使用矩阵,您可以使用数组数组来实现,或者使用带有一维数组(或向量)的简化抽象层来存储矩阵数据,例如:

std::vector<double> matrix(row * columns);

要访问项目,您可以使用简单的算术,例如:

int index = rowIndex * totalColumns + columnIndex;
double item = matrix[index];

您可以查看我的 DoubleMatrix 库(不是使用它,只是查看)以获得此实现的示例。