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 库(不是使用它,只是查看)以获得此实现的示例。
我想用 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 库(不是使用它,只是查看)以获得此实现的示例。