Как справиться со смещением времени в прошлом с помощью Odeint Boost?

0

У меня есть гармонический осциллятор с задержкой tau в связи.

dx/dt = -y(t - tau)
dy/dt = x(t - tau)

Как я могу кодировать это в odeint?

Должен ли я сохранять вычисленные состояния и интерполировать значение x и y в момент t-tau? Будет ли это работать? Должен ли я использовать специальный степпер для этого или использовать фиксированные шаги?

Теги:
boost

1 ответ

1
Лучший ответ

Ahh, это дифференциальное уравнение задержки (DDE). В последнее время был аналогичный вопрос SO [1]. Odeint не поддерживает DDE напрямую. Но вы можете использовать методы, которые вы описали до сих пор: сохранить состояние и/или интерполировать.

Альтернативой является включение полной дискретизированной истории в состояние.

[1] DDE с использованием boost odeint

Ещё вопросы

Сообщество Overcoder
Наверх
Меню