прекращение интеграции ode после некоторой проверки сходимости в DiffEqPhysics Julia

Недавно я начал знакомиться с пакетом DiffEqPhysics и DifferentialEquations от Джулии. Мне интересно, есть ли способ (например, функции обратного вызова) завершить решатель с определенным условием сходимости вывода. Например, если результат, полученный на предыдущем шаге (или диапазоне предыдущих шагов), не отличается от решения на текущем шаге пороговым значением, то завершите процесс после текущего шага.


person nero_bin    schedule 27.05.2018    source источник


Ответы (1)


Да, для этого вы можете использовать обратные вызовы. В обратном вызове выполнение terminate!(integrator) остановит интеграцию. В документах в этом примере показано использование обратные вызовы с terminate! подробнее.

Но вместо создания собственного для завершения в устойчивом состоянии вы можете использовать TerminateSteadyState из библиотеки обратного вызова. Библиотека обратных вызовов - это просто набор предварительно созданных обратных вызовов, и эта библиотека завершается, когда производная достаточно мала.

person Chris Rackauckas    schedule 27.05.2018
comment
Спасибо за ответ. - person nero_bin; 27.05.2018