“神器”亦是“毒苹果”,MATLAB是如何长成的?

发布者:悦耳旋律最新更新时间:2020-06-22 来源: 爱集微关键字:MATLAB 手机看文章 扫描二维码
随时随地手机看文章

MATLAB与Mathematica、Maple被业内并称为三大数学软件。它是美国MathWorks公司研发出品的高级技术计算语言和交互式环境集成软件,初版诞生于1984年,广泛用于算法开发、数据可视化、数据分析、仿真建模以及数值计算。

经过近40年的演变,如今MATLAB提供企业版、校园版和家庭版,世界上有180多个国家、数百万工程师与数学家都在使用MATLAB,可作为整个汽车、航空航天、通信、电子和工业自动化领域的基本研发工具,可支持设计和开发各种先进产品,包括汽车系统、航空飞行控制和航空电子、电信和其他电子设备、工业机械以及医疗设备,在工业制造、学术研究等领域具有近乎垄断的市场地位。

那么这款商业数学软件是如何一步步变成一款“神器”的?

故事开始之前,先来简单介绍几个涉及到的编程语言。

Algol

Algol是一种指令式编程语言,发展于1950年代中期,对许多其它编程语言产生了重大影响。可与差不多同时期的FORTRAN、LISP及COBOL并列为四大最有影响力的高阶语言。Algol被设计用来避免FORTRAN中一些已知的问题,最终引领了许多其它编程语言的兴起,包括PL/I、Simula、BCPL、B、Pascal及C。Algol引入了代码块,并用begin⋯end来分隔。它是第一个利用词法作用域实作巢状函式的语言,也是第一个注重形式语言定义的语言。

1960年1月,图灵奖获得者:艾伦·佩利在巴黎举行的有全世界一流软件专家参加的讨论会上,发表了"算法语言Algol 60报告",确定了程序设计语言Algol 60。Algol 60是程序设计语言发展史上的一个里程碑,它标志着程序设计语言成为一门独立的科学学科,并为后来软件自动化及软件可靠性的发展奠定了基础。

Fortran

Fortran是一种编程语言,1957年由IBM开发出,是为了满足数值计算的需求而发展出来的,是世界上第一个被正式采用并流传至今的高级编程语言。Fortran语言的最大特性是接近数学公式的自然描述,在计算机里具有很高的执行效率,可以直接对矩阵和复数进行运算,其矩阵元素在记忆空间存储顺序是采用列优先(Column major),这几个特点后来的MATLAB有继承。

1966年,美国标准化协会制定了Fortran(x3.9-1966,也就是Fortran 66)和Fortran(x3.10-1966)标准,1976年又重新对Fortran 66进行了评估,公布了新的Fortran标准,也就是Fortran 77。Fortran 77是具有结构化特性的编程语言,并在短时间内获取了巨大的成功,广泛地应用于科学和工程计算,几乎统治了数值计算领域,1980年被ISO接纳为国际标准。

EISPACK和LINPACK

Cleve Moler是MathWorks现任首席数学家,董事长兼联合创始人,曾在密歇根大学,斯坦福大学和新墨西哥大学担任数学和计算机科学教授近20年。

上世纪70年代和80年代初期,Cleve在新墨西哥大学教授线性代数和数值分析。1970年和1975年,他所在的团队向美国国家科学基金会(NSF)分别申请了两个项目,目标是“探索开发高质量数学软件的方法、成本和资源”。前一个项目中,他的团队将手册中解决特征值问题的Algol转换为Fortran,并在测试和可移植性方面做了大量研究,最终开发出EISPACK(矩阵特征系统软件包)。1975年,Cleve团队重新提交了一个研究项目,调研数学软件的开发方法,诞生了一个叫LINPACK的线性方程软件包的副产品。


Cleve认为这两个项目从某种意义上来说都失败了,因为项目未“撰写报告或论文,只研发了软件。”这两个软件谈不上多大的学术创新,但是非常有用,LINPACK更是世界超级计算机排行榜Tops500的基准测试程序,可以说是影响了世界超级计算机的发展。

初版MATLAB、商用及MathWorks创立

为了能让学生更好地掌握线性代数与数值分析,用心教学的Cleve希望自己的学生能够方便地使用LINPACK和EISPACK,而不必编写Fortran程序,也就是为了让学生把精力更多地投入到学习数学概念而不是编程语言上,于是用Fortran编写了初版MATLAB,通过这个“小工具”把LINPACK和EISPACK两个软件接口封装起来,从而方便使用。

最初的MATLAB只是一个交互式矩阵计算器,这个版本的MATLAB只能进行简单的矩阵运算,例如矩阵转置、计算行列式和本征值。它只是Cleve的兴趣爱好,当时并没有获得任何资助,也没有商业计划。


Cleve Moler

1979年Cleve来到斯坦福大学任教,教授数值分析的研究生课程,并在课程中引入了这一矩阵计算器。MATLAB引起了几个学生的兴趣,并主动提出用C语言重新写一遍并移植到IBM PC上。在他的回忆录中这样写道:

“Jack Little当时正在斯坦福攻读研究生工程学位。他的一个朋友是我的学生并向他展示了MATLAB,随后他便在工作中用到了它。

1983年,Little提议开发基于MATLAB的商用产品。彼时,IBM台式机才推出两年,很难支持MATLAB这样的程序的运行,但是Little希望对它进行改进。他辞掉了工作,在Sears购买了Compaq电脑克隆机,并搬到了斯坦福的后山上。在我的鼓励下,他用C语言编写了MATLAB新的扩展版本。我的一个朋友Steve Bangert也在业余时间研究新版MATLAB。”

Little和Bangert在Cleve的初代版本的基础上用C语言重新编写了MATLAB并增加了一些新功能,Little还开发了第一个系统控制工具箱,其中一些代码到现在仍然在使用。最终在1984年拉斯维加斯的IEEE决策与控制会议上,PC-MATLAB首次发布,同年,Cleve、Little和Bangert,在斯坦福后山Little居所租来的一个A型机舱中共同创立了MathWorks,正式将C语言版的面向MS-DOS系统的MATLAB 1.0推向市场。

1985年MathWorks发布了针对Unix工作站的Pro-MATLAB,即MATLAB 2.0,同时MATLAB 1.0第一份订单向MIT售出了10份副本,收入500美元。

MathWorks成立不久后,Little将公司搬到了他的家乡马萨诸塞州,Bangert仍住在加州,而Cleve去了俄勒冈英特尔的衍生业务工作,该公司开发了世界上第一台商业并行计算机之一。在1989年成为全职员工之前,他一直担任MathWorks的顾问。

1992年,学生版MATLAB推出;1993年,Microsoft Windows版MATLAB面世;1995年,Linux版推出。2007年,MathWorks进入中国市场。

MATLAB诞生的80年代,正赶上美国控制学界基于状态空间的控制理论蓬勃发展时期,在控制学界推动、大牛加持下,MATLAB得到极快的发展。

从MATLAB的诞生到繁荣不难看出,虽然MathWorks的产品已演变成工业界科学计算和基于模型设计的标准平台,但是可以说教育界才是其根基所在。

MATLAB的重要工具箱Simulink诞生

基于矩阵数学运算的根基,MATLAB在几十年里更新了十多个版本,并跟随时代发展不断引入新的理念,以满足工程师和科学家们日益更新的需求。

例如最开始的MATLAB只有一种数值数据类型:以64位格式存储的IEEE标准754双精度浮点。1992年随MATLAB 4推出了稀疏矩阵能够显示超大数组(几乎不含非零值)又节省内存;1996年发布的MATLAB 5增加了单元阵列,以及结构和“圆点表示法”;2004年发布的MATLAB 7中开始支持单精度算法,将大型阵列的内存需求降低了一半。

此外,在MATLAB的可用性和易用性方面MathWorks也在不断提升。首版MATLAB只是简单的终端应用程序,随着时间的推移逐渐增加了图形化、编辑和其他工具的独立窗口。这些改进使MATLAB的使用变得更加简单,尤其是对那些没有编程经验的用户来说。两个影响最大的功能是桌面版和实时编辑器,分别于2000年和2016年推出。2004年还推出了并行计算工具包,比尔盖茨就曾使用MATLAB演示了微软向高性能计算领域的迈进。

Simulink工具包的引入是MathWorks一个重要的飞跃。

1990年,MATLAB加入Simulink仿真模块,它用于动态系统和嵌入式系统的多领域模拟和基于模型的设计,Simulink提供一个交互式的图形化环境及可定制模块库,可对各种时变系统,例如通讯、控制、信号处理、影像处理和图像处理系统等进行设计、模拟、执行和测试,也可以进行基于模型的设计。Simulink与MATLAB紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。

MATLAB+Simulink,以及上百种工具包,使得基于模型的设计概念迅速推广,它可以使设计者无需手写代码和使用文档,而是创建系统模型。以工业机器人为例,模型由机械臂、电机和控制器设计组成,通过MATLAB+Simulink软件,可以随时进行模型仿真,即时查看系统行为,测试多种假设分析场景,同时无需承担风险和延迟,也无需依赖昂贵的硬件。

如果说,MATLAB还有Python、Octave、Julia等开源软件可以使用,那么Simulink才是真正难以替代的部分。例如如果没有Simulink,通信、控制、信号、车辆等专业的研究效率都会受到影响。哪怕不用Simulink,很多这方面的仿真软件也只提供MATLAB的接口,是MATLAB核心竞争力之一。

经过近四十年,到2019年MathWorks的营业额已经达到10亿美元规模,员工从最初的3个联合创始人,到如今超过3000名遍布全球的员工。

MATLAB从简单的计算器开始,成为一个富有生命力的生态系统。至此,MATLAB和Simulink已经不再是传统意义上的仿真软件,而是建立在MATLAB和Simulink基础框架之下的工业应用平台。业内人士评价:MATLAB基于状态机模型,在CMU的技术支援下,完成了符号计算引擎的研发,这就为EDA数字电路设计仿真、AI人工智能数据分析,SDR/SCA软件无线电应用提供了计算支持和基础。

同半导体EDA领域大家所熟知的Synopsys、Cadence和Mentor Graphics三巨头一样,相比英特尔、三星、台积电这类公司他们的营业额并不算大,但是这种不断积累,把一项技术做到极致,成为某个细分领域的隐形冠军是我们所应当学习的。

MATLAB是神器,还是毒苹果?

MATLAB语言的简易性是其迅速繁荣的主要原因。时至今日,当年的数学计算霸主Fortran已经几乎无人使用,而MATLAB一直都保持了相当的人气。这要得益于它充分降低了学习门槛,在计算速度和易写当中保持了一个很好的平衡。

与Fortran相比MATLAB是一种动态语言,可以逐步调试,而且可以直接运行,免去了编辑-编译-链接-加载-执行等静态语言繁琐的步骤。它把常用的功能都变成了关键字,避免了不懂编程的人去处理各种库的麻烦。

IEEE Spectrum 2019编程语言Top 10中MATLAB名列第八

最后,MATLAB简化了控制流,只保留了循环、判断、定义函数等最简单的几种语义。MATLAB的关键字如今多达近千个,但是必须掌握的控制流关键字就在10个左右。也就是说学会了这10个关键字的用法加上善于查询MATLAB的帮助手册,就可以进行数学计算、绘图和仿真了。

到现在,MATLAB已经发展成为科学、工程领域应用最广泛的科学计算软件,在控制领域,MATLAB已成为国际控制界的标准计算软件,在国内甚至已经形成了一家独大的现实局面。

基于MATLAB平台的开发的各种函数、模型,均无法脱离MATLAB环境单独使用,一旦更换软件,需要重构所有模型积累,平台装换成本过大,所以科研对团队对MATLAB软件的应用越深入、越持久,就越离不开MATLAB软件,只能持续购买授权,所以有专家评论MATLAB的生态是“毒”立生态。

因此专家认为,“易用”的另一面是学生对算法的细节不求甚解,失去了对算法的基础创新能力。而研究者们成了“调包族” — 只需调用现成的软件包,使得研究者们对基础算法的理解趋于表面化、肤浅化,知其然不知其所以然,不知道如何改进算法,使其更加适用于自己的问题。这也是许多年来这些领域在基础理论方面没有突破的一个重要原因。因此专家指出,如果研究生和教授们只会调用别人的算法来解决问题,那么他们就成为了“技工”,大学也就成了技工学校。

人工智能是目前最火热和最前沿的技术领域,对于涉及非线性关系和复杂大数据的机器学习人工智能算法,许多核心敏感参数的选取直接影响系统的最终性能。

国科大教授王立新在其博客中写到,只有深入理解算法的细节,才能理解并有效地选取这些敏感参数,使系统性能达到最优。理解算法细节最有效的方法是自己进行算法编程,在不断的试错中理解算法的核心奥秘、发现敏感参数的选取方法,而不是调用Matlab toolbox以及其它许多所谓的“开源软件包”。

因此,此次MATLAB被禁,正好鞭策科研工作者回归本学科科学研究的本质,给了我国人工智能研究者们一个难得的“歪打正着”的机会,让我们静下心来自己编程基础算法,深刻体会基础模型与算法的核心要素与优缺点,在现有成绩的基础之上“百尺竿头、更进一步”。

至于国内呼声工业应用软件的国产替代,行业专家指出,平台性、工具性的工业软件研发需要很长时间,并且有很大风险,企业很难有动力去做这个事情,需要政府支持高校和专业研究院所来做,不能讲效益。第一,要养成一支高素质的队伍,有足够的毅力和韧性精神,用时间去换经验;第二,国家要给“试验田”,只有这样队伍才能得到锻炼和成长,这些软件产品才能成熟;第三,工业软件在成长过程中难免会有一些缺陷和不足,国家要鼓励、支持市场能容错。


关键字:MATLAB 引用地址:“神器”亦是“毒苹果”,MATLAB是如何长成的?

上一篇:昀冢科技负债率达85%:SL件或被MIM件替代
下一篇:苹果攻折叠机 台厂供应链振奋或明年上市…

推荐阅读最新更新时间:2024-10-26 06:49

新的 MathWorks 支持从 MATLAB 和 Simulink 模型到高通 Hexagon 神经处理单元架构的自动化代码生成
新的 MathWorks 硬件支持包支持从 MATLAB 和 Simulink 模型到高通 Hexagon 神经处理单元架构的自动化代码生成 新的硬件支持包不仅无需耗时的手写代码优化和验证,还支持处理器在环测试 中国 北京,2024 年 9 月 12 日 —— 全球领先的数学计算软件开发商 MathWorks 今天宣布,推出针对 Qualcomm® Hexagon™ 神经处理单元(NPU)的硬件支持包。该处理单元嵌入在 Snapdragon® 系列处理器中。 MathWorks 硬件支持包,则专门针对 Qualcomm Technologies 的 Hexagon NPU 架构进行优化,实现 MATLAB® 和 Simul
[网络通信]
新的 MathWorks 支持从 <font color='red'>MATLAB</font> 和 Simulink 模型到高通 Hexagon 神经处理单元架构的自动化代码生成
MathWorks 宣布推出 MATLAB 和 Simulink 的 2024b 版本 加速信号处理应用开发的新 App 和功能
中国 北京,2024 年 9 月 12 日 —— 全球领先的数学计算软件开发商 MathWorks 今日发布 MATLAB® 和 Simulink® 产品系列版本 2024b(R2024b) 。R2024b 推出了几项重要更新,帮助从事无线通信系统、控制系统和数字信号处理应用的工程师和研究人员简化工作流。 图注:DSP HDL Toolbox™ 为开发信号处理应用提供硬件就绪的 Simulink 模块和子系统 除了 MathWorks 平台产品的改进之外,R2024b 还包括对常见 MATLAB 和 Simulink 工具的重要更新,包括: 5G Toolbox™ 的初衷是为新无线电(NR)和 5G-Advan
[网络通信]
MathWorks 宣布推出 <font color='red'>MATLAB</font> 和 Simulink 的 2024b 版本  加速信号处理应用开发的新 App 和功能
怎么去设计一种基于MATLAB的三电平PWM整流器?
Part.1 三电平PWM是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的。 整流器是把交流电转换成直流电的装置,可用于供电装置及侦测无线电信号等。 相反,一套把直流电转换成交流电的装置,则称为 逆变器 这种电路的另一优点是每个主开关器件关断时所承受的电压仅为直流侧电压的一半,因此,该电路特别适合于高电压大容量的应用场合。 Part.2 在simulink中建立仿真模型如下。 交流输入 设置三项输电系统电源模块: 设置电力simpower如逻辑信号桥梁的测量模块: 设置显示窗口: 三电平模块 设置三电平脉冲触发模块: PWM模块 设置PWM脉冲触发
[嵌入式]
怎么去设计一种基于<font color='red'>MATLAB</font>的三电平PWM整流器?
开发一种基于Matlab与LabVIEW的电机测试平台
本期带来基于Matlab与LabVIEW联合开发的电机测试平台,LabVIEW是一款图形化开环设计软件,可以实现VXI、串口、GPIBPXI等总线的通信,具有良好的通用性能,可以极大的缩短系统的研发时间,提高工作效率。本系统能实时采集电机在不同工况运行下的各种参数,对电机的电压、电流、功率等进行监测,实现对电机性能的检测。LabVIEW通过SIT工具包调用来实现Matlab对电机启动的电流等信号进行分析与处理。 1、系统构成 系统基于虚拟仪器为核心的测试平台,其数据采集卡选用的是美国NI公司产品,并配以外围电机驱动电路如直流电机的供电电源控制、起动大电路等部分,由程序来控制外围驱动电路以实现对电机的起动和制动控制。整个过程充分
[嵌入式]
开发一种基于<font color='red'>Matlab</font>与LabVIEW的电机测试平台
基于数学模型用Matlab-simulink进行建模仿真验证
近期对永磁同步电机(PMSM)的控制方法做了一些学习与总结,由于涉及的内容较多,打算分几篇笔记分享出来,主要是对SVPWM控制算法的理解和基于数学模型用Matlab-simulink进行建模仿真验证。 1、简介 目前国内外关于永磁同步电机的界定是根据定子电流波形对无刷直流电机(BLDCM)与永磁同步电机(PMSM)进行界定,将电流波形为梯形波或者方波的无刷电机定义为BLDCM,将电流波形为正弦波的无刷电机定义为 PMSM。 SVPWM(矢量脉宽调制)是目前对PMSM的一种控制策略,基本思想就是通过逆变桥的不同开关模式控制电机,使产生的电压/电流/磁链轨迹尽可能逼近理想圆,使得电机的运转具有比较理想的性能。 概念如图,当一个点在
[嵌入式]
基于数学模型用<font color='red'>Matlab</font>-simulink进行建模仿真验证
基于MATLAB的简谐振动合成图形的动态演示
0 引言 简谐振动的合成是力学的主要内容之一,在大学物理的学习中已经对多个同频率简谐振动的合成进行了较为详细的讨论,但研究仅局限于两、三个不同频率简谐振动在一、二维坐标中的合成情况,三维无法体现。利用MATLAB 绘出多不同频率简谐振动在一、二及三维坐标中合成的波形及轨迹, 并依据这些波形与轨迹, 探讨多个不同频率简谐振动的合成规律。 1 研究意义 利用MATLAB GUI 软件的制作,对一维、二维及三维简谐振动的授课方式及仿真实验提供了新的方法。在传统教学的过程当中,简谐振动的合成通过示波器来观察,其合成图像往往与理论值有较大偏差,其主要存在的问题有以下几个方面: 1.1 课堂时间紧迫,图像合成演示的直观显示多要在实验课当中
[嵌入式]
基于<font color='red'>MATLAB</font>的简谐振动合成图形的动态演示
Rivian使用MATLABMATLAB Parallel Server扩展整车仿真
整个汽车行业的工程师越来越依赖仿真来评估操控性能、加速性能、续航里程和其他关键性能指标。与物理测试相比,通过仿真来评估车辆性能速度更快,成本也更低。整车仿真还有助于设计工作在原型硬件可用之前在开发过程中尽早进行。然而,随着车辆仿真的成本和效率优势在组织内日趋明显,仿真需求的增加使得车辆仿真面临一系列挑战。 考虑到与商业仿真软件对接和运行整车仿真所带来的复杂性,需要拥有一支专门的仿真工程师团队,他们具备必要的专业知识。然而,该团队可能很快会因各利益相关者的要求而不堪重负,这些利益相关者包括属性工程师、性能工程师、动力学工程师、续航里程和效率工程师以及高级管理人员。简单地执行这些团队要求的多个仿真也可能成为瓶颈,特别是当这些仿真连
[嵌入式]
Rivian使用<font color='red'>MATLAB</font>和<font color='red'>MATLAB</font> Parallel Server扩展整车仿真
MATLAB EXPO 2024中国大会:助力中国数字化工程新篇章
2024年5月28日,正值MathWorks成立四十周年之际,MathWorks在北京召开了一年一度的MATLAB EXPO中国用户大会。 MathWorks中国区总经理曹新康表示,自诞生之日起,MathWorks就以推动研究工程创新和教育发展为使命,MATLAB EXPO大会则是MathWorks为各行各业爱好者提供交流的一次盛会。因此,每次用户大会的最大亮点都是来自用户的一线分享。相比于2023年8个用户分享,2024年的MATLAB EXPO直接将用户分享演讲翻倍增加至16个,从而让更多爱好者们有更充分的交流体验。 曹新康总结了目前全球科技的演进大趋势,包括软件无处不在、人工智能、自主系统、数字化转型以及万物电气化,
[嵌入式]
<font color='red'>MATLAB</font> EXPO 2024中国大会:助力中国数字化工程新篇章
小广播
最新手机便携文章
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved