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