У меня следующая проблема:
Я должен использовать решатель оды, чтобы решить уравнение химической реакции.Константы скорости являются функциями времени и могут внезапно меняться (импульсы от электрического разряда).
Один из способов решить эту проблему - сохранить размер шага очень маленьким hmax < dt
.Это приводит к высокой комп.аффорт -> много времени.Мой вопрос: есть ли эффективный способ сделать эту работу?Я думал о def hmax(puls_ON)
с plus_ON=True
внутри пульса и plus_ON=False
между ними.Однако, так как dt увеличивается во времени, он может даже не распознавать импульсы, потому что временной интервал растет hmax = hmax (t).
Временная сетка была бы лучшим вариантом, я думаю, ноЯ не думаю, что это возможно с odeint?
Или можно каким-то образом заставить солвер интегрировать в определенный момент времени (например, t0 -> (hmax = False) -> tpuls_1_start -> (hmax = dt) -> tpuls_1_end -> (hmax= Неверно) -> puls_2_start .....)?
thx