Civil 板


LINE

※ [本文轉錄自 PhD 看板] 作者: MHG (MPS model) 站內: PhD 標題: Re: [問題] 數值計算的軟體 時間: Sun Apr 12 18:00:03 2009 ※ 引述《ForHonor (I'm not afraid)》之銘言: : 大家好 : 就我所知常用來做研究的工具有 : C語言 Fortran Matlab Mathematica : 有沒有大大用過這其中的好幾個可以給個比較 : 假設以 : 人性化(方便性) 運算速度 繪圖能力 多變性 : 這幾個點為討論出發點 小弟專長是作數值運算的~以發展數值方法為主。 所以對於程式語言來說算是較為常用的! 根據原po所列的工具,小弟有使用過用於數值計算的問題,如下所列: Fortran, C, C++, Matlab, Mathematica, Maple 下列所述都是個人使用的經驗! 實際的速度還是得依照個人使用的語言習慣與計算環境較有關係! 如有錯誤的話煩請各位大大指證! 當然!小弟從學程式語言以來所學主要的開發工具是以Fortran為主~ 所以經常混搭Fortran與C或是Fortran與Matlab作為使用~ 以下的的討論其OS環境,小弟就簡單以WinXP與Linux為主~ 其他的BSD或是其他的Unix, 就不題了~基本上有些計算效率而言~Linux較快一點! 但相同的codes在其他的UNIX環境下都跟Linux差異不大~ 1. Fortran 一般而言~從名字上就可以知道Fortran它的功用了! 由於小弟不擅長繪圖功能的程式撰寫,所以在此以討論數值計算的速度為主。 而繪圖的部分,Fortran 90之後的功能提升很多也可以撰寫繪圖程式用於I/O了。 但是小弟實際上還是會用其他軟體輔助繪圖的部分, 以Tecplot為主,並以Grapher、Surfer為輔大致上2D 3D的圖大概都還可以表達~ 有時會搭用Matlab來作後端輸出的視覺化表達。 而其他軟體在搭配fortran上的表達也算還ok啦! (但Fortran 90以上基本也支援OpenGL~可以支援不少科學繪圖了!) 就計算而言,Fortran的Subroutine和Function可用性很高, 在計算上著名的書籍Numerical Recipes早期就以fortran 77出版了~ 而支援Fortran的語言函式或是副程式也非常多(C, C++, Matlab...etc.), 這個關係到使用fortran這個工具時~你也可以使用其他語言的工具, 進而降低研發程式的難度與時間。 在工作站上的計算小弟目前也有使用Fortran,使用的OS環境為Linux~ 由於先前小弟group並未購買IMSL用於工作站上,所以此時很多小問題得依賴 世界各地專家們所釋出的函式或是副程式來解決,只要小心根據定義使用 Fortran在銜接這些solutions的相容性非常高的! So, 人性化(方便性)、運算速度可謂極佳! 繪圖能力則屬尚可(我得強調!這是因為我太弱了XD) 多變性我個人評為佳! (雖然90以上的語法已經可以支指標、援物件導向...etc. 但與C++比起物件導向來看我想還有些距離吧!) 2. C語言 這是小弟接觸以來的經驗,一般來看,C可以算是早期泛用型語言了吧! 但是C與Fortran比起,Fortran可以作的C都可以作! 然而Fortran是以撰寫數值程式為專門取向的工具,這點是無庸置疑的~ 故小弟個人認為以C來寫數值程式比起Fortran先天上並無大的優勢! 以眾多前人所釋出的函式或是副程式寶藏來看... C的資源可謂是最豐富的吧! 而且,C與FORTRAN的subroutine或functions連結是非常容易且多樣的! 著名的劍橋數值菜單Numerical Recipes也有C的版本~XD 再者!許多著名的大型程式之撰寫(UMPACK, SuperLU, FFTW...etc.) 也是由C撰寫的!真是可為寶藏含量極為豐富的語言啊!XD 在工作站上C的使用,比起Fortran而言算是簡易很多了! 而速度上則會因為程式設計者的習慣而有差異! 基本綜觀以同方法解同問題但是用不同語言來比較的話!我想是差異不大的! So, 人性化(方便性)與運算速度可謂極佳,繪圖能力由於龐大寶藏之故也可謂極佳 多變性來看還是受限於語法本身,比Fortran90略微單調,但也算佳! 3. C++ C++的部分小弟使用不是很多!煩請大大幫忙簡述這項工具的威力程度了! C++是C的延伸(小弟個人觀感),他既可已接收前人發展C的龐大資源 又可以超越C做出物件導向, 但是C++在與Fortran上的連結卻變的困難許多! 不過小弟覺得無妨!因為C的資源對於一般程設者大概就夠用了~ 更何況到處都有得討論~XD 附帶一題的是Numerical Recipes也有出版C++版本~:p 在工作站上的使用上~C++似乎有著一些語法的優勢~ 在某些平行的計算環境上~似乎蠻多人使用C++作為開發的工具~ (Open MP之類的!平行計算的部份小弟並無實際經驗!煩請各位大大補充了!) So, 人性化(方便性)則因為可接收C的大寶藏(有些時候需要改寫)個人判斷為佳 計算速度因小弟個人使用之故無法做出最好的評斷! 繪圖能力由於龐大寶藏之故也可謂極佳! 而多變性來看是極佳! 4. Matlab 呵...基本上小弟不完全認為Matlab算是個"程式語言"... 但是它有許多好用的tool box!對於繪圖而言他可以算是天生的強項啊~ 但是它的計算速度卻相對於C或是Fortran卻慢很多!尤其是迴圈的部分! 針對它在與C或是Fortran的連結來觀察,相容性很高! 所以大致上可以將需要加速的部分丟給Fortran或是C來處理~ 而Matlab本身的資源也算是不錯!除了專業的Tool box以外~ 連接C與Fortran的資源也可算是可以接受的了~ (C++與Matlab連結的的狀況,小弟不明瞭煩請能人補充了!) 至於資源的部份來看~Matlab在網路上的資源也漸漸的流行起來! 可以想見未來的資源也會越來越多! 就使用上而言,他不太嚴謹,也因此方便了許多!XD 工作站上的計算則是需要for Linux的版本~使用方法差異不大~ Matlab作大量運算的效能來還是無法與C/C++或是Fortran比擬~ So, 人性化(方便性)可謂極佳!與運算速度則只能說尚可了! 繪圖能力由於Tool box之故也可謂極佳! 多變性來看還是屬於尚可的階段~ 5. Mathematica與Maple 嗯!他不是程式語言!執行速度也不太快! 畫圖的部粉也只能說是普普!(有許多軟體也能做到) 但是他的特殊功能卻是其他軟體無法比擬的! 例如:微分、積分、特殊函數...etc. 通常在數值分析前段我會使用它來協助數學上的驗算~ 另外~~在精度上的部份這類工具有著一些的優勢~ 例如超越雙精度的數值計算或是大數運算~ 雖然程式語言都還可以操作~但是沒有這類工具來的簡便~ 至於他們的資源只能說不算太多了!而跟其他程式的結合似乎還不多見!(請能人補充!) 用來作大量計算的話我想是頗為困難的吧!(若有誤請能人指證~) So, 人性化(方便性)可謂尚可!與運算速度可謂不佳! 繪圖能力可謂尚可!多變性來看算是不佳~ 綜觀1~5.....大概是台灣市面上極為常見的幾種數值工具了~ 但是基本上我還是得說明一下! 工具只是工具!它們會因使用者的不同用法而有著效率上的差異~ 個人認為,學熟其中的一種程式語言,搭配使用其他的資源,用來解決問題即可! 若真正講究計算效率,倒不如把演算法的細節先搞定, 再交給真正的程式設計人員去操刀~ 例如:我用有限體積法(FVM)去分析3D大規模不規則區域的黏性流場~ 目的是藉由數值方法分析這個計算區域的物理現象~ 看到這問題我個人第一個感想是:這是個物理問題!數值程式只是工具~ 就算我用數值菜單的CG解法去求解矩陣,還是沒辦法和商業軟體比快! 因為這個例子的目標並不是在研發新型快速的矩陣解法~而流場的物理現象才重點! 也許有人會講~那與其這樣為何不用LU分解就好? 是的!因為傳統LU分解的速度可能會讓我多好幾年才畢業! 工具只要夠用即可!要更好的效率要付出更多的的代價~只有自己能去衡量輕重~ 呵~以上是小弟的粗略看法! --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.102.102 ※ 編輯: kumoking 來自: 59.104.102.102 (04/13 01:47)
1F:推 GuessTH:MATLAB最方便的是有很多內建的函數 FFT之類的 04/13 01:56







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP