Системная динамика в AnyLogic - последовательность Фибоначчи

У меня есть модель системной динамики в AnyLogic, в которой я пытаюсь смоделировать последовательность Фибоначчи. Но почему-то мои результаты отличаются от ожидаемых:

Вместо того

1,1,2,3,5,8,13...

я получил

1, 2.137954153, 4.021788196, 7.471205823, 13.86070806...

Я выполнил эти (испанские) инструкции, чтобы построить свою простую модель.

Я полагаю, что это не характерно для всего программного обеспечения, потому что в VenSim этот пример работает идеально ...

Может кто-нибудь объяснить мне, почему это происходит в моей программе AnyLogic?


person António Vieira    schedule 04.03.2018    source источник
comment
Может кто-нибудь объяснить мне, почему это происходит в моей программе AnyLogic? Может быть, но что такое ваша программа? В вашем вопросе нет кода ...   -  person zx485    schedule 05.03.2018


Ответы (1)


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

Причина, по которой вы получаете последовательность Фибоначчи в vensim, заключается в том, что вы используете метод Эйлера с временным шагом 1 (проверьте настройки модели)

Если вы измените тип интеграции на RK45 в Vensim или уменьшите временной шаг с помощью метода Эйлера, вы, вероятно, получите те же результаты, что и AnyLogic ... Метод Рунге-Кутта, даже если он начинается с фиксированного шага 1, он позже меняет шаг по времени в зависимости от требований динамики модели.

Теперь давайте поймем, что использование временного шага, равного 1, нелепо в любом практическом приложении ... Но ВОТ ПОЧЕМУ вы получаете точные значения в vensim ... потому что эти точные значения действительно крайне неточны для того, чем на самом деле является модель. Я бы даже сказал, что модель по вашей ссылке - плохая модель и никогда не должна публиковаться.

К счастью, AnyLogic не позволяет вам этого делать. Вы можете установить шаг по времени равный 1 в свойствах модели, но он сразу обнаружит неточности и изменит шаг по времени на гораздо меньшее (возможно, 0,01) ... Поскольку он позволяет использовать только Эйлер + Ньютон в смешанных уравнениях вариант, но не только Эйлер.

person Felipe    schedule 05.03.2018
comment
Спасибо за Ваш ответ. Теперь я понял :) - person António Vieira; 11.03.2018