Из документа пакета DifferentialEquations переключение между наборами функций ODE может быть выполнено с использованием параметра как
function f(du,u,p,t)
if p==0
du[1] = 2u[1]
else
du[1] = - u[1]
end
du[2] = -u[2]
end
Возможно ли использовать зависимую переменную (переменную состояния) вместо параметра p в качестве переключателя, например
function f(du,u,p,t)
if (u[2]<=0 && du[2]>0)
du[1] = 2u[1]
else
du[1] = - u[1]
end
du[2] = -u[2]
end
Спасибо заранее за вашу помощь.
да. Это приводит к разрыву, поэтому это не лучший вариант, но адаптивность справится с этим. Иногда производительность можно улучшить, создав ContinuousCallback, который находит это значение в качестве условия, но ничего не делает для
affect!
. Но да, код с веткой в нем в порядке.Большой. Спасибо за Ваш быстрый ответ. — person Chris; 08.07.2020