Генерировать диаграмму бифуркации для 2D-системы

StackOverflow https://stackoverflow.com//questions/10693525

  •  12-12-2019
  •  | 
  •  

Вопрос

Диаграмма бифуркации чертежей для 1D-системы ясна, но если у меня есть 2D-система в следующей форме dx/dt=f(x,y,r), dy/dt=g(x,y,r)

И я хочу создать диаграмму бифуркации в MatLab для x против r. Какова основная идея сделать это или какие-либо намеки, которые могут мне помочь?

Это было полезно?

Решение

Вы сначала должны сделать математику:

Настройка каждого из функций до нуля дает вам две функции y (x) (называемые NullClines), которые вы можете построить в фазовой диаграмме. Где два строки пересекаются, являются фиксированными точками (равновесиями) вашей системы.

Теперь вы должны взять Jacobian из вашей системы и подключите каждый из этих фиксированных точек, что даст вам линейный анализ устойчивости системы.

Расположение фиксированных точек и устойчивость каждой точки теперь можно вычислить как вам варьируемый r (параметр бифуркации).

<Сильные> Для программирования:

- Используйте метод Newton ( fsolve в matlab), чтобы найти, где уравнения нуля - EIG поможет вам найти собственные значения системы.

Однако

Это зависит от вашей системы.

Если вы должны искать ограничительные циклы или хаос или что-то, вам придется использовать одну из решателей ODE, а затем анализ становится более сложным. Я полагаю, вы можете разработать алгоритм Poickare-Bendixson, но это будет вовлечено, и детали будут зависеть от вашей системы.

Другие советы

Я не думаю, что MatLab есть что-нибудь встроенное, что даст вам бифуркационную диаграмму.Есть это стороннее решение:

http://www.mathworks.com/matlabcentral/fileeeexchange/8382 / P >.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top