我使用許多不同的模型和模擬。一些較舊的模型和模擬是用FORTRAN編寫的。其中一些模型已被轉換爲C++,但目前的趨勢是使用MATLAB/SIMULINK創建這些模型。從計算機科學的角度來看,我一直覺得MATLAB/SIMULINK不是一個好的解決方案。你用什麼語言來創建模型和模擬,爲什麼?建模與仿真編程語言
回答
我也使用了很多遺留代碼,大部分遺留代碼都在Fortran中。我真的不介意使用Fortran - 所有現代編譯器都允許使用大於舊的和愚蠢的6個字符限制的變量名稱。另外,使用Fortran 95,如果您覺得您對現有代碼庫的修改會受益,則甚至可以執行OOP。
另外,Fortran有非常好的代碼編輯器,對於更專門化的腳本語言並不總是如此。
C++有內存考慮的巨大缺點。現在我已經編程C/C++ 20多年了,我仍然忘記刪除對象並正確填寫析構函數。
最後,如果您要使用Windows,那麼Fortran.NET編譯器(我認爲來自Lahey-Fujitsu?)如果您想將Fortran移動到託管環境。
祝你好運!
我總是嘗試使用最好的建模和模擬工具(或庫,如果你喜歡)提供的語言爲我完成這項工作。
而這個問題只能通過考慮你想要實現的模型的種來解答。連續(例如ODE),離散(例如StateCharts,Petri網)或組合(即可以用Simulink + StateFlow實現的混合模型)?每種模型都有各種工具。
另一個重要方面是您正在使用的域。 Simulink擁有相當廣泛的電子工程,金融或計算生物學庫(儘管其中大多數都包含在其他軟件包中) - 如果您在其中一個領域工作,那麼可能沒有更好的(即完整的,有效的)組件庫。其他商業模擬軟件包也是如此,例如AnyLogic,Arena等。也可能有一些開源模擬工具,這取決於您的建模問題。
最後,您可能更喜歡特定的編程語言而不是另一種語言,並且您可能還有其他要求,例如,對於
- 優化(模型參數)
- 驗證
- 產出分析(統計圖表,統計檢驗)
- 支持並行和分佈式仿真支持
- 模型檢測
- .. 。
所以我目前正在使用Java與衆所周知的優勢 - 相當快速,良好的多線程支持,相對簡單易用等等。但是,如果「相當快」速度不夠快,那麼可能就沒有其他選擇,只能進入一個抽象層次:-)
粒子物理學已經轉向C++和python。這不是普遍的,如果不是ROOT的無處不在,可能甚至不會接近。
Root對cint的使用意味着當你用一個新想法時,你需要爲內存管理而煩惱,它的運行編譯的容量允許你有速度,混合模式的能力是非常有用的,綁定對於Python和其他RAD語言而言,它具有很大的靈活性。
在一個非常真實的意義上,這歸結爲roland's point的認可。
SIMULA當然!! :-)
我從MATLAB中得到的是它能夠讓我快速對算法進行原型設計。通過繪製數據並使用內置的統計函數,我可以真正感受到數據。當嘗試新的東西時,我可以做一些快速和骯髒的事情來獲得一些初步結果,然後返回並清理一些事情來優化我的結果。使用編譯語言,爲了讓仿真運行,還需要做很多工作。使用MATLAB,我花了更多時間思考真正的問題,而不是編譯,鏈接,內存管理等。
但是,有很多問題,MATLAB只是沒有足夠的解決方案。對於大型數據集,使用用戶定義的數據結構的編譯語言幾乎是必要的。
您可以使用s-funcuin塊將fortran(c,C++)與matlab連接起來。
- 1. 語言GAMMA,一種模仿編程語言
- 2. 編碼仿真模型
- 3. 模仿周圍行爲使用編程語言
- 4. Wolfram語言是一種真正的編程語言嗎?
- 5. 創建編程語言
- 6. 添加阿拉伯語語言仿真器的語言設置的android 2.2
- 7. 編程語言
- 8. Java中的建模和仿真
- 9. 無法編譯T1架構和仿真建模工具
- 10. 內核編程的仿真環境
- 11. 低級別編程鍵盤仿真
- 12. C語言的Java建模語言?
- 13. 如何檢查不在仿真器中的語言?
- 14. 模仿Matlab/Simulink仿真繼電器behavoir
- 15. 編程語言如何與腳本語言交互?
- 16. 編程語言C
- 17. NesC編程語言
- 18. C編程語言
- 19. Siri編程語言
- 20. .NET編程語言
- 21. R語言編程
- 22. SIMD編程語言
- 23. Scheme編程語言
- 24. 編程語言樹
- 25. java編程語言
- 26. 模擬或仿真無源RFID標籤並編程它
- 27. 編程語言語法
- 28. 編程語言的原語
- 29. PHP腳本語言或編程語言?
- 30. Web開發的編程語言建議
我真的好奇你爲什麼覺得MATLAB/SIMULINK不是很好的建模解決方案。你有沒有具體的原因,你爲什麼不喜歡他們/不覺得他們適用於你的模型? – gnovice 2009-06-03 17:09:36
這可能只是我見過的應用程序,但它們運行速度非常慢,並沒有充分利用可用的計算機資源。 – SchwartzE 2009-06-03 17:11:45