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毫秒