Может ли один и тот же решатель matlab-ode дать разные результаты для задачи, которая является сильно нелинейной, но не стохастической? - PullRequest
0 голосов
/ 15 февраля 2019

Я использую решатели матлабод для решения системы из двух связанных, сильно нелинейных систем ОДУ.Ранее я использовал ode15s для решения проблемы и каждый раз получал разные результаты.Обратите внимание, что если я запускаю один и тот же код в течение часа или около того, он часто дает те же результаты (воспроизводимые).Но если был промежуток в несколько часов или я запускал код через день, я получал разные результаты даже с теми же параметрами.Проверял его несколько раз.

Проверяя файл справки ode15s, я обнаружил, что он имеет различную точность от низкой до высокой.Итак, я изменил солвер на ode45 и сжал его с допусками:

options = odeset ('AbsTol', 1e-15, 'RelTol', 1e-12);

[t, r] = ode45 ('ode_problem', time_range, initial_conditions, options);

Но даже сейчас проблема есть, хотя иногда даже после одного дня мне действительно удается получить те же результаты (иногда воспроизводимые)).Так что может пойти не так?Иногда конечные результаты варьируются более чем на два порядка.В моей задаче нет стохастического или случайного компонента.

Или, возможно, к нелинейной задаче прибыл стохастический компонент, прикрепленный к ней, но не видимый напрямую?

...