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灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP