Re: [問題] 物理的數值模擬適合用C++嗎?
※ 引述《famayo (砝碼)》之銘言:
: 因為最近開始想學程式語言
: 但是苦不知該從哪種語言開始下手
: 於是就想到了最耳熟能想的C++
: 但是又聽到有些人說C++ 是比較舊的語言
: (我也不知有什麼是新的= =)
: 因此我想問問 C++能做的事情應該很多吧?
: 譬如說現在有哪些系統是用C++開發的呢
: 臉書 無名小站是嗎?
: 還有就是 假設我要做物理的數值模擬
: 用C++適當嗎? 因為覺得它應該比fortran matlab來得多用途
: 如果C++不是各位最推薦的語言
: 那麼哪總才最推薦呢 (數值模擬為主 搞不好還有其他需求)
: 感謝各位解惑
單純討論到"快"這件事情
1. 最快仍然是核心部分直接寫組合語言 (或是inline asm)
2. C/C++有機會寫出類似組合語言的效能,
但在一般情況下, 其實C/C++有很多效能上的陷阱
為了轉換物理或是數學上的式子, 菜鳥寫出來的程式碼, 通常效能很糟糕
編譯器難以最佳化 (應該說, 要寫的"快", 就不能照翻數學式, 這需要經驗)
而且C++老手有時太過於使用OO後, C++語言的特性反而會導致效能不佳
3. Fortran語言本身非常高階, 且適合將物理/數學式,
很直覺得就用fortran的語言表達出來, 再加上本身語法上直接支援向量運算
編譯器發展了非常久, 基本上如果是物理/數學式照翻, 就算是菜鳥寫的程式碼
經過編譯器最佳化後, 效率可能非常非常的高
如果是新手~ 用fortran寫可能是又快又方便
但如果是為了求快速開發... 或許matlab更是取得一個更佳的平衡點
(有太多函數可以直接呼叫, 呼叫後極有可能是直接對應到效率很高的程式庫
整體的執行效率也可以很高, 開發又輕鬆, 個人非常推薦使用matlab)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.108.22
→
04/21 01:00, , 1F
04/21 01:00, 1F
→
04/21 01:58, , 2F
04/21 01:58, 2F
推
04/21 03:15, , 3F
04/21 03:15, 3F
推
04/21 07:42, , 4F
04/21 07:42, 4F
推
04/21 10:42, , 5F
04/21 10:42, 5F
→
04/21 11:06, , 6F
04/21 11:06, 6F
→
04/21 11:06, , 7F
04/21 11:06, 7F
→
04/21 11:08, , 8F
04/21 11:08, 8F
→
04/21 11:08, , 9F
04/21 11:08, 9F
推
04/21 18:17, , 10F
04/21 18:17, 10F
→
04/21 18:18, , 11F
04/21 18:18, 11F
→
04/21 18:20, , 12F
04/21 18:20, 12F
→
04/22 00:22, , 13F
04/22 00:22, 13F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):