Недавно я начал знакомиться с пакетом DiffEqPhysics и DifferentialEquations от Джулии. Мне интересно, есть ли способ (например, функции обратного вызова) завершить решатель с определенным условием сходимости вывода. Например, если результат, полученный на предыдущем шаге (или диапазоне предыдущих шагов), не отличается от решения на текущем шаге пороговым значением, то завершите процесс после текущего шага.
прекращение интеграции ode после некоторой проверки сходимости в DiffEqPhysics Julia
Ответы (1)
Да, для этого вы можете использовать обратные вызовы. В обратном вызове выполнение terminate!(integrator)
остановит интеграцию. В документах в этом примере показано использование обратные вызовы с terminate!
подробнее.
Но вместо создания собственного для завершения в устойчивом состоянии вы можете использовать TerminateSteadyState
из библиотеки обратного вызова. Библиотека обратных вызовов - это просто набор предварительно созданных обратных вызовов, и эта библиотека завершается, когда производная достаточно мала.
person
Chris Rackauckas
schedule
27.05.2018
Спасибо за ответ.
- person nero_bin; 27.05.2018