2014-01-14 6 views
0

Я ищу программный пакет (бесплатно лучше), который можно использовать для моделирования стохастической динамической системы с минимальным кодированием. Например, он должен позволить мне моделировать систему, указав:программное обеспечение для моделирования нелинейной динамической системы

Xn = AXn−1 + Vn, 
Yn = BXn + α Wn 

где X это состояние, Y наблюдения, A,B матрицы и Vn и Wn являются источниками шума с различным PDF, такой как обычно, Т и т.д.

Я уже пробовал scilab и R. Хотя они кажутся очень мощными, они, похоже, не дают прямой поддержки для создания моделей, указав вышеприведенные уравнения.

+0

Система, которую вы описываете, выглядит линейной для меня. – bdecaf

+0

да, но в целом я могу быть нелинейным. – suspension

+0

Тогда я не понимаю вашего вопроса - любой язык программирования с пакетом линейной алгебры и генератором случайных чисел может создавать такие модели. Можете ли вы привести более конкретный пример? – bdecaf

ответ

0

«Open modellica» (https://www.openmodelica.org) может быть тем, что вы ищете.

+0

спасибо. Я обязательно посмотрю на это. – suspension

+0

примечание @suspension: для будущего вы можете получить больше ответов на свои вопросы, если у вас будет достаточно очков для ответа на вопрос, голосование важно, поэтому наиболее полезные ответы на них вертятся. – Schollii

1

Если шум гауссовский, то у вас есть stochastic differential equation (SDE), записанный как recurrence relation. Если вы ищете что-то с «прямой поддержкой» таких систем, вы должны указать, что они представляют физически - экономические модели, нейронные модели, фильтрацию Калмана и т. Д. - а не только абстрактные уравнения, потому что такие пакеты обычно записываются с применением в разум.

У Matlab есть Econometrics toolbox, который обычно не входит в комплект поставки, но может решить общие проблемы SDE за пределами финансов. Для бесплатного варианта вы также можете посмотреть на мой SDETools, который представляет собой набор инструментов Matlab для численного решения SDE, который работает очень точно так же, как и у собственных решателей ODE от Matlab, таких как ode45. Вам нужно будет преобразовать ваши рекуррентные отношения в дифференциальные уравнения. И, конечно, если вам нужен самый быстрый код (стохастическое моделирование может быть slow), то всегда будет лучше закодировать метод Euler-Maruyama для вашей конкретной проблемы.

Если вы ищете что-то, что сделает то, что вы хотите, не имея возможности многому научиться об основной математике, вам, скорее всего, не повезло. Кроме того, если ваш шум не является гауссовым, тогда правила разные, и вам может понадобиться узнать о jump processes и семействе alpha-stable distributions.

+0

Спасибо за информацию. Обычно даже шум может быть не гауссовым. Кроме того, он не должен ограничиваться конкретным доменом. Мое требование - протестировать последовательную реализацию monte carlo с различными моделями. Фактическая работа - это реализация последовательного monte carlo и написания большого количества кода для тестирования, к сожалению, это не вариант. – suspension

 Смежные вопросы

  • Нет связанных вопросов^_^