科学计算和科研绘图概述

本节回顾和总结近几十年科学计算的发展,介绍目前科学计算和科研绘图常用的编程语言和应用软件。[大谦MATLAB,dqmatlab点com]

科学计算

从计算器到计算机,人类的计算能力实现了一个大的跨越。通过利用计算机语言进行编程,人们可以实现更复杂和更大规模的计算。在工程上的表现之一就是可以进行有限元、有限差分等各种复杂的数值模拟,实现大型矩阵方程的求解和海量数据的可视化。与此相对应的,大量非数学非计算机专业的研究生和科研人员需要在数学和计算机编程上投入大量的时间和精力。

对于科学计算而言,上世纪末70年代到90年代是一段非常重要的时期。因为在这段时间内诞生了一大批与科学计算有关的计算机编程语言和应用软件,包括MATLAB,Python,R,Mathematica,SAS,SPSS等等。它们在国内开始被广泛应用则是从上世纪90年代末开始的。

上面讲到的这些软件有个共同特点,就是将科学计算和绘图的很多功能都封装好了,直接使用就可以解决问题。对于科研人员来讲,可以部分从数学和计算机编程上解放出来,并将主要精力放在自己的专业上。对于数学建模来讲,可以将重点放在建模能力的训练上,模型的求解则可以交给计算机。

当然,软件的快速发展是建立在硬件快速发展基础之上的。以人工智能为例,实际上上世纪末它就火过一次,但后来偃旗息鼓了。直到最近几年,因为有了硬件支撑,人工智能才披着机器学习、深度学习、强化学习甚至语言大模型等华丽的外衣强势归来。

科研绘图

如你所知,数据可视化早已是数据分析和科学计算的一部分,一图胜千言!常用的进行数据可视化和科研绘图的编程语言和应用软件有Python,MATLAB,R,Origin和GraphPad Prism等。

按照重要性,可将科研绘图分为锦上添花型和必不可少型两种。

大部分图表属于锦上添花型,用不同形状、颜色、线型、大小等的图形元素表示数据,更直观更形象地表现数据,如常见的线形图、柱状图、面积图、饼图、散点图等。

必不可少型图表的作用则不仅仅是使数据更直观更好看,它们往往具有特殊的功能。前一个小节讲到了有限元数值模拟,模拟过程中求解矩阵方程得到的解数据规模很大,仅从数据本身很难发现有用信息。此时必须将大规模解数据进行可视化,用等值线图、向量图等图表来进行表示。为此还诞生了一门新的学科,叫科学计算可视化。

选择MATLAB还是Python?

前面两个小节罗列了很多跟科学计算和科研绘图有关的编程语言和应用软件。其中MATLAB和Python是用得最多的两门编程语言。

MATLAB和Python都具有第4代计算机编程语言的特点。它们首先是一门语言,然后这门语言带有很多封装好的工具箱或包。每个工具箱或包封装了解决某类问题的各种功能函数。另外,它们都是开放的,用户可以创建自己的工具箱或包,即第三方工具箱或包。比如MATLAB有各种第三方工具箱3万多个。

经常有初学者问:“做科学计算,学MATLAB还是学Python?”。我们给出的答案是两个都要学。

为什么两个都要学?因为两种语言在功能上互有短长。MATLAB在Simulink仿真、工具箱的专业性等方面有明显优势,而Python在AI、数据分析和大数据分析等方面应用广泛,并且作为通用语言,在Web编程、文本处理和脚本编程等方面有明显优势。两个都学,可以实现优势互补。