语言, 观点想法

科学计算中编程语言的选择

科学计算中常见的编程语言有:Fortran/C、Python、Matlab/Mathematica、Julia等。编程语言其实选择哪一种都可以,主要还是看算法和内容,计算结果跟编程语言无关。不同编程语言的书写效率和运行效率会有些差别。

以下是具体讨论:

  • Fortran和C的运行效率算是最高了,主要是可以用到(MKL)BLAS库和LAPACK库中的一些函数,很多遗留的科学计算代码都是基于Fortran语言。缺点是Fortran需要对每个变量进行声明,书写起来比较冗长。此外,各种功能函数散落在互联网中的各个角落,没有特别好的软件生态。学习参考:Fortran常用语句
  • Python加上numpy库,功能和Matlab差不多。Python的缺点是运行效率不高,尤其是多重循环的计算,但速度还是可以接近于Matlab。Python的优点是书写方便,不用定义变量。此外,Python软件生态比较好,安装方便,可以比较方便地调用各种库。Python也是人工智能/机器学习的热门语言。学习参考:常用的Python软件包
  • Matlab是矩阵实验室,优点是代码比较简短、分析矩阵比较方便。Mathematica比较擅长符号运算。Matlab和Mathematica都是商业软件,从长期来看,书写的代码容易受制于人,用起来并不是特别安心。此外,两个软件安装的占用空间也大。学习参考:Matlab常用语句
  • Julia是一个比较新的编程语言,处于发展阶段,语法接近于Matlab,兼顾了书写效率和运行效率,已经有一批科研工作者使用了Julia作为科学计算的语言。Julia的缺点是软件包的官方安装是基于Github,容易被屏蔽,使用起来体验不是特别好。此外,各种软件包也需要重新去学习和适应。学习参考:Julia常用命令和常用软件包

综上,目前个人是选择Python为主要的编程语言,当计算量比较大时再使用Fortran进行编程计算。此外,未来Julia语言也在考虑范围内,当前精力有限暂且不考虑和折腾。

311 次浏览

【说明:本站主要为个人笔记分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

评论说明:
(1)为了屏蔽广告,包含链接的评论会进入待审,不会立即显示,需要等待博主批准。
(2)在保留浏览器缓存的前提下,目前支持72小时自主修改或删除个人评论。如果自己无法修改或删除评论,可再次评论或联系我。
(3)评论支持Latex公式。把latexpage作为标签放在任何位置,评论中的公式可正常编译,示例:
$Latex formula$  [latexpage]

2 thoughts on “科学计算中编程语言的选择”

  1. matlab其实也不用提前定义变量。matlab的符号计算比mathematica更强大,能解mathematica解不出来的符号方程。

    1. 嗯,是的,Matlab也不用人为定义变量。Matlab的符号运算我接触的不多,应该也是不错的,感谢建议。我之所以现在不怎么用,主要还是因为Matlab和MMA都是商业软件。而使用开源的语言可以减少代码对商业的依赖性。

发表回复

您的电子邮箱地址不会被公开。