Physics 版 (精华区)
发信人: zjliu (秋天的萝卜), 信区: Physics
标 题: 有关几个数学工具的个人看法(转载)
发信站: 哈工大紫丁香 (2003年11月30日16:50:05 星期天), 站内信件
【 以下文字转载自 Science 讨论区 】
【 原文由 zjliu 所发表 】
(转自ctex论坛)
我们现在常用的软件有:mathematia,maple,matlab, fortran,c,oringin等
对于从事基础性物理研究,mathematica比较好。因为这类工作往往不需要做很复杂的计
算,又不是很数学化(所以不需要maple),而且mathematica简单易学,功能也很强大
。适用理论物理,高能物理,等领域的基础研究。
对于从事应用物理学方向的,matlab比较好。一方面,matlab本身对于工程方面有很大
的支持,所以更容易连接过去,最主要的是matlab对于矩阵运算的处理功能是mathemati
ca所不及的。
掌握了这两个工具的一个已经够用了,当然,有很多的东西,mathematica和matlab并不
能计算的,这样就需要其他的数学工具,也就是象c,fortran等较低级的数学工具。不
过,一般性,我觉得fortran比较好,特别是对于做大型计算的,当然,c++也不错,
具体看个人的喜好。在我看来,搞物理的人喜欢用fortran,所以这样大家更容易交流。
物理类需要掌握的还有一个软件是origin,因为用mathematica,fortran和matlab画出
的图形不够精细,必须用origin这样的软件画图。
所以我推荐 mathematica+fortran+origin
matlab+fortran+origin
我主要从事非线性物理理论工作。工作上也要用到许多数学软件。现有的软件是很方便
。但说实在,很多时候在计算上商业软件是无能为力的。对复杂问题,软件显得太笨了
。许多计算还是要人为干扰,最后用软件整理出较简洁的形式。至于Mathematica和Mapl
e也不见得那个特别好,我发现总这两个软件中总有些对方不会算的情况。可以互补对方
不足。数值计算matlab的确不错。在不涉及循环的情况和大量矩阵运算的情况下,matla
b的效率是很高的。主要原因是这些操作(包括fft)可以用所谓的self-adaptive算法来提
高效率。我作过比对,大矩阵乘法在matlab上实现的效率比fotran和c/c++都要高。但数
值计算中的大部分算法都涉及迭代等循环过程,所以总体效率matlab还是不及其它语言
。所以掌握编程始终是很重要的。比较各种语言,在数值计算上无非是fotran, c/c++比
较流行。但根据检索到文献和其它渠道的资料显示,从编程模型的角度出发,C++极有可
能取代fortran在数值计算上的地位。主要原因是几种新的语言模型及其语义非常适合用
于数值计算。
其实fortran跟C++在数值计算熟优熟劣的问题争辨了很久。国内一般认为Fortran是最好
的。国外的文献检索可以看到反对和支持的声音参半。但近年来,由于几C++的面向对象
特性和两种新的编程概念(generic programming 和 metaprogramming)的提出,好像C++
行计算都直接支持跨unix/linux平台的c语言。虽然在高性能计算中还可以看到Fortran(
90)的踪影。然而,相比起来。语言在相对较大的计算问题上的优势已经不能单单体现在
本地机器上。只有在丛集网络上运行良好、接口较亲和的语言才适合于大规模运算。这
也是C++的优势之一。
--
╔═══════════════════╗
║★★★★★友谊第一 比赛第二★★★★★║
╚═══════════════════╝
※ 来源:.哈工大紫丁香 bbs.hit.edu.cn [FROM: 202.118.229.162]
--
※ 转载:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: 202.118.229.162]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:8.693毫秒