c++ - C++ 和 ode 系统:如何处理?
问题描述
我想编写一个类来使用 C++ 中的 Euler 方法解决ODE系统(我是初学者)。如果方程是标量,则没有问题,因为我可以将解存储在 a 中,vector
或者我可以动态分配一个数组double* sol = new double[N_points]
如果我必须处理矩阵,事情开始变得奇怪,所以我的问题是:**我应该使用一些库Eigen
吗?还是我应该与指针斗争?
我正在寻找一些好的方法/参考来确定哪种方法是处理这种情况的正确/最佳方法。
解决方案
如果您想使用矩阵,您可以使用数组数组来执行此操作,或者使用带有一维数组(或向量)的简化抽象层来存储矩阵数据,例如:
std::vector<double> matrix(row * columns);
要访问一个项目,您可以使用简单的算术,例如:
int index = rowIndex * totalColumns + columnIndex;
double item = matrix[index];
您可以查看我的DoubleMatrix库(不使用它,只需查看)以获取此实现的示例。
推荐阅读
- android - 如何在共享首选项中保存带有模型类的数组列表?
- c - 如何在 C 中的特定字符之后的字符串的其余部分
- jquery - 如何使用 Keyup 功能限制字母?
- oracle - Oracle-在函数中使用可选参数?
- android - 使用 Firebase 应用分发服务导致应用未安装错误
- java - 字符串出现按顺序
- c++ - 旧版 C++ 代码在 Windows 10 下不显示位图
- javascript - ES6解构获取嵌套对象属性
- angularjs - 在某些条件匹配后如何检查视图中的 ng-repeat 是否为空
- azure-devops - 如何使用 azure-devops 将应用程序部署到特定的 ubuntu 服务器?