Я работаю со многими различными моделями и симуляторами. Некоторые из старых моделей и симуляции написаны в FORTRAN. Некоторые из этих моделей были преобразованы в C++, но текущая тенденция заключается в создании этих моделей с использованием MATLAB/SIMULINK. С точки зрения компьютерной науки я всегда чувствовал, что MATLAB/SIMULINK не было хорошим решением. Какой язык вы используете для создания моделей и моделирования и почему?Моделирование и моделирование Язык программирования
ответ
Я также работаю с большим количеством устаревшего кода, большинство из них в Фортране. Я действительно не против использования Fortran - все современные компиляторы допускают имена переменных больше, чем старые и глупые ограничения на 6 символов. Кроме того, с Fortran 95 вы даже можете делать ООП, если вы чувствуете, что ваши изменения в существующей кодовой базе выиграют.
Также есть очень хорошие редакторы кода для Fortran, что не всегда относится к более специализированным языкам скриптов.
У C++ есть большой недостаток соображений памяти. Я программировал C/C++ в течение 20 лет, и я до сих пор забываю удалить объекты и правильно заполнить деструкторы.
В заключение, если вы используете Windows, есть компилятор Fortran.NET (я думаю, из Lahey-Fujitsu?), Если вы хотите переместить Fortran в управляемую среду.
Удачи вам!
Я бы всегда старался использовать язык, обеспечиваемый лучшим моделированием и симуляцией tool (или библиотека, если хотите), чтобы выполнить эту работу для меня.
На этот вопрос действительно может быть дан ответ только с учетом того, что видов моделей, которые вы хотите реализовать. Непрерывные (например, ODE), дискретные (например, StateCharts, Petri Nets) или комбинация (например, гибридная модель, которая может быть реализована с помощью Simulink + StateFlow)? Существуют различные инструменты для каждого типа модели.
Другим важным аспектом будет домен, в котором вы работаете. У Simulink есть довольно обширные библиотеки для электротехники, финансов или вычислительной биологии (большинство из них включены в дополнительные пакеты) - если вы работаете в одном из этих полей, может быть просто нет лучшей (то есть полной, достоверной) библиотеки компонентов , То же самое относится к другим коммерческим симуляционным пакетам, таким как AnyLogic, Arena и т. Д. В зависимости от вашей проблемы моделирования могут быть некоторые инструменты моделирования с открытым исходным кодом.
Наконец, вы можете предпочесть конкретный язык программирования над другим, и у вас могут быть дополнительные требования, например. поддержка
- Оптимизация (параметров модели)
- Validation
- анализа вывода (статистика, участки, статистические тесты)
- Поддержка параллельного и распределенного моделирования
- проверка
- модель .. .
Так что я сейчас работаю с Java с известные преимущества - достаточно быстрая, хорошая поддержка многопоточности, относительно простая в использовании и т. д.Но если «разумно быстрый» не достаточно быстрый, возможно, не будет никакого варианта, кроме как спуститься на один уровень абстракции :-)
Физика частиц движется к C++ и python. Это не универсально, и, вероятно, даже не было бы близко, если бы не вездесущность ROOT.
Использование Root в cint означает, что вам нужно беспокоиться об управлении памятью, когда вы окунаетесь с новой идеей, ее способность запускать скомпилированную версию позволяет вам иметь скорость, очень полезно сочетать режимы, а привязки для python и других языков RAD обеспечивают большую гибкость.
В очень реальном смысле это сводится к одобрению roland's point.
SIMULA конечно !! :-)
+1 Когда я прочитал вопрос, я обсуждал вопрос о том, отправлять ли ответ или, скорее, просто комментарий с указателем на [SIMULA] [1] [1]: http://en.wikipedia.org/wiki/Симула –
Что я получил от MATLAB - это способность позволить мне быстро прототипировать алгоритм. Я действительно могу получить хорошее представление о данных, построив его и используя встроенные функции статистики. Когда вы пытаетесь что-то новое, я могу сделать что-то быстро и грязно, чтобы получить начальные результаты, а затем вернуться и очистить вещи, чтобы улучшить мои результаты. С компилируемыми языками гораздо больше нужно сделать, чтобы запустить симуляцию. С MATLAB я трачу больше времени на размышления о реальной проблеме и меньше о компиляции, компоновке, управлении памятью и т. Д.
Однако есть много проблем, которые MATLAB просто не в состоянии решить. Для больших наборов данных почти наверняка необходим скомпилированный язык с определенными пользователем структурами данных.
вы можете использовать блок s-funcuin для связывания fortran (c, C++) с matlab.
- 1. Rails Моделирование данных: Моделирование кампании
- 2. моделирование случайности
- 3. Моделирование MessageBox.Show()
- 4. Серверы и моделирование резьбы
- 5. Моделирование пользователя и команды
- 6. моделирование и ответственность
- 7. Моделирование и практика MOSFET
- 8. Моделирование и структура Entity
- 9. F # и моделирование наследования
- 10. онтология Моделирование и опрос
- 11. моделирование фигуры и figcaption
- 12. Как шаг вперед моделирование моделирование программно
- 13. Моделирование наследования актеров в Elixir
- 14. Моделирование и альтернативы опциям + Индексы .htaccess
- 15. Моделирование VANET
- 16. Моделирование кэш
- 17. Моделирование Flexagon
- 18. Моделирование маятника
- 19. моделирование общей базы данных и специфическое моделирование django
- 20. Использование Zelig с ggplot2, моделирование и моделирование графиков
- 21. Моделирование автокатастрофы
- 22. Моделирование класса
- 23. Аппаратное моделирование
- 24. Бизнес-моделирование?
- 25. Моделирование вспышки
- 26. Моделирование Eclipse
- 27. Моделирование перетаскивания?
- 28. Моделирование OLAP
- 29. Моделирование очередей
- 30. Diffusion моделирование
Мне действительно интересно, почему вы чувствуете, что MATLAB/SIMULINK не являются хорошими решениями для моделирования. У вас есть конкретные причины, по которым вы им не нравитесь/не чувствуете, что они применимы к вашим моделям? – gnovice
Это могут быть только приложения, которые я видел, но все они выполняются очень медленно и не в полной мере используют доступные компьютерные ресурсы. – SchwartzE
См. Этот вопрос: [http://stackoverflow.com/questions/179904/what-is-matlab-good-for-why-is-it-so-used-by-universities-when-is-it-better -tha] (http://stackoverflow.com/questions/179904/what-is-matlab-good-for-why-is-it-so-used-by-universities-when-is-it-better-tha) – MatlabDoug