哈工大和哈工程被禁止使用的MATLAB软件,到底是个什么软件?
简单地说,是工业软件。
近几十年来,电脑和软件的普及,对我们的日常生活意义重大,可是对于理科生来说,MATLAB软件的重要性,再怎么强调也不过分。
MTALAB到底是个啥?
MATLAB,从字面上来看,是MATrixLABoratory(矩阵实验室)的缩写,是美国TheMathWorks公司研发的一款商业数学软件,广泛应用于算法开发、数据可视化、数据分析和数值计算的科研应用环境。
年左右,美国新墨西哥大学教授克里夫·莫勒尔,为了让动手能力欠缺的学生“方便地使用”LINPACK和EISPACK,无需繁琐重复地执行远程批处理和“编辑-链接-加载和执行”的过程,师道尊严爆棚,义无反顾地用FORTRAN语言编写了第一版MATLAB,虽然这版软件只能进行简单的矩阵运算,比如矩阵转置、计算行列式和本征值,但是对于大学生来说显然够了。
毕竟莫勒尔教授为了提升教学质量,不惜自己开发一款软件,学生们还能说什么呢?
不管怎么说,第一版MATLAB因为实用、易用而且好用,被学术同仁和大学生热烈转发,下载量达到了两三百,莫勒尔教授的内心激动得无以言表,决定创业了。
但是,有两个狂热的MATLAB粉丝,也就是杰克·李特(学生)和斯蒂夫·班格尔(朋友),郑重其事地对莫勒尔教授说,“你编写软件的FORTRAN语言太老了,虽然做数值计算更好用,但是C语言是通用性语言。”
莫勒尔教授一想,还真是这个理儿,可是他挠挠头说,“可是我太忙了。”杰克·李特和斯蒂夫·班格尔马上齐声说,“我们来干!”
没想到一干就是一年半,这两位美国程序大牛,用C语言重新编写了MATLAB软件,并增加了新功能和系统控制工具箱,其中一些代码甚至直到今天还在使用。
为了参股董事会,这样的决心没谁了。
年,“三个火枪手”杰克·李特、克里夫·莫勒尔和斯蒂夫·班格尔特,合伙成立了MathWorks公司,将备受好评的MATLAB推向市场。
“从创业的第一天起,你每天要面对的是困难和失败,而不是成功。”这话说的一点没错,不但适用于中国大学生,也适用于美国教授。因为当C语言重写的MATLAB1.0版本在拉斯维加斯举行的“IEEE决策与控制会议”正式推出后,第一份订单只卖出了10份拷贝。
但他们用心血浇灌的软件,收获更多的是惊喜:根据MathWorks自己的数据,直到年4月,世界上有多个国家超过万工程师和科学家,在使用MATLAB和Simulink。鉴于C语言版MATLAB软件的大受好评,MathWorks公司于年推出价格优惠的学生版,于年推出Windows版PC-MATLAB,并于年推出Linux版Pro-MATLAB,基本完成了MATLAB软件的“套娃”衍生。
MTALAB到底有多重要?
从课堂教学工具到商业化软件,MATLAB软件承受的担子越来越重。
如今的MATLAB虽然增加了很多功能,比如编程语言的面向对象支持,toolbox的扩充增加,还有图形界面的丰富功能,但是其核心还是矩阵计算,所以大家很容易看到,矩阵计算是MATLAB最基本的数据类型。
矩阵,一听就很高科技,事实上也的确如此。
不管是应用广泛的CAE仿真,还是如火如荼的人工智能,都是建立在矩阵计算的基础上。可以说矩阵计算,就是数字化工业的核心,那么在这个时代,MATLAB到底能发挥什么作用呢?
首先,MATLAB是一种面向科学与工程计算的高级语言,允许以数学形式的语言编写程序,比BASIC、FORTRAN和C语言都要更加接近于我们书写数学计算公式的思维方式。甚至可以说,用MATLAB编写程序,就像是在草稿纸上排列公式和求解问题,因而对于理科生和科研人员来说,MATLAB编写简单,编程效率高,而且通俗易懂。
其次,MATLAB是对代码、文件和数据进行管理的开发环境;是按迭代的方式探查、设计及求解问题的交互式工具;可用于包括线性代数、统计、傅里叶分析、筛选、优化以及数值积分等的数学函数;用于可视化数据的二维和三维图形函数;用于构建自定义的图形用户界面的各种工具,还可用于基于MATLAB的算法与外部应用程序和语言集成的各种函数。
当然,MATLAB再厉害也不是万能的,尘世间总有些事情它做不到:
比如大规模并行矩阵计算、工业级软件产品开发,ARM与边缘计算设备。
这主要是因为MATLAB的短板就是大规模并行计算,而且工业级软件产品的研发中,我们基本看不到MATLAB的影子,反倒是开源语言Python后来居上,占据着工业级矩阵计算的半壁江山;此外MATLAB的通用性并不好,比如无法在ARM处理器上运行,而且体量巨大,无法部署在大量使用ARM的移动产品和边缘、工控和国产设备。
随着5G时代和工业互联网的普及,作为80后,MATLAB在中国市场负担沉重、步履蹒跚,早就已经力不从心了。
MATLAB真的不可替代吗?
提出这个问题确实很扎心,毕竟哈工大和哈工程的教授和学生,现在还有些烦躁。
但实事求是地说,Octave就是MATLAB的直接替代品,或者说“仿制品”。
这是两个几乎一模一样,只有细微差别的软件产品,相似率高达95%以上,在商业授权上如同Windows和Linux,也就是MATLAB付费,Octave开源。
GNUOctave是一种采用高级编程语言的主要用于数值分析的软件,有助于科研人员以数值方式解决线性和非线性问题,并使用和MATLAB兼容的语言进行数值实验,还可以作为面向批处理的语言使用。
令人欢欣鼓舞的是,Octave是GNU计划的一部分,是“GNU通用公共许可证”条款下的“自由软件”。
之所以说,Octave是MATLAB的主要替代软件,是因为:
Octave和MATLAB的软件操作界面相似;Octave和MATLAB的语法绘图功能相似;大量开源代码同时支持Octave和MATLAB。
而且,Octave可以直接运行大部分的MATLAB源程序;而MATLAB程序除非涉及到比较特殊的工具箱,基本上只需要简单改写即可在Octave中运行。
“既生瑜,何生亮。”
在世界工业软件市场,MATLAB和Octave就像是当年的windows和Linux:
禁止使用付费软件?那就用开源软件呗!开源软件不好用?那就定制维护一下接着用!
不香吗?