Я использую odeint для решения системы из четырех связанных уравнений, которые имитируют вибрацию транспортного средства во время его движения. Я надеялся, что мои результаты будут похожи на то, что я получаю в MATLAB, но, к сожалению, этого не происходит. Я проверил свои уравнения несколько раз, и там нет ошибки, поэтому проблема должна происходить во время интеграции.C++ - решение odeint системы значительно варьируется
Я закодировал решение в MATLAB, чтобы проверить, что я получаю от сценария C++. Используя те же условия, что это решение, которое я получаю от odeint:
Я не ожидал, что микро-колебаний видели в MATLAB, чтобы показать в результаты odeint, но большая часть значений даже не близка к правильной. Я использую неправильный inegrator, или odeint просто не работает для этого приложения?
Файл C++ можно найти на Github, here. Класс с именем "coupledODE" - это система уравнений, относящихся к моей системе, а odeint - в основной функции.
Ссылка github не работает. И можете ли вы построить решение Matlab с более высоким разрешением? Может быть, даже построить оба графика на одной диаграмме? – headmyshoulder
@headmyshoulder исправлено, извиняюсь. – cl40
Не могли бы вы также попытаться интегрировать решение с интеграцией_const (make_dense_output (1E-6, 1E-10, rk5()), ...); Просто чтобы убедиться, что это не зависит от точности. – headmyshoulder