观点想法, 生活

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

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

以下是具体讨论:

  • Fortran/C/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/C/C++进行编程计算。

2,604 次浏览

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

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

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

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

    2. MATLAB做符号计算记得也要声明变量啊。对于一些解析推导,它可以给出解,而Mathematica给出的是Root形式,这个确实不错,不过Mathematica的Root
      照样可以画图

      1. 嗯,Matlab符号计算需要,常用的数值计算不需要,直接赋值,例如a=1。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code