把矩阵软件带到课堂
MATLAB的名字来自Matrix Laboratory,即“矩阵实验室”。1984年标志着其商业版本和可扩展编程环境的形成,早期计算器则出现于20世纪70年代末。克里夫·莫勒在新墨西哥大学教授线性代数和数值分析,希望学生直接使用成熟算法,而不必为每个问题编写、编译并运行Fortran程序。
其基础是LINPACK和EISPACK两个科学计算程序库,分别提供线性方程与相关矩阵计算、特征值问题的数值工具。莫勒参与这些软件的开发,将其中的子程序放在交互式入口之后,让学习者把注意力转向矩阵本身。这一设计首先回应教学工作,而非预先规划的通用软件公司。
参考:[2]
Fortran实现与交互方式
早期MATLAB用Fortran编写,核心数据类型是矩阵,标量、向量也由这个框架处理。用户在终端输入表达式,程序即时计算并显示结果;大学和国家实验室的大型机分时系统提供了使用场所。可移植性使它能安装到不同机器,不局限于某一间计算机房。
扩充能力仍有限。加入一个内置功能通常要修改Fortran源程序,再重新编译,尚没有后来供用户组织函数的M文件和成套工具箱。莫勒借鉴维尔特关于语法分析的教学方法编写解释器,而数值计算依靠既有子程序,语言入口与算法库因此形成分工。
参考:[2]
一条左除表达式怎样解方程
1981年用户指南已明确说明反斜杠表示矩阵左除。用该指南的旧式尖括号语法,可以构造示例:A = <3 1; 1 2>,b = <9; 8>,随后输入x = A\b。两行方程分别是3x₁+x₂=9和x₁+2x₂=8,解为列向量中的2与3;这是依据当时语法编写的说明例,并非指南原题。
这里的左除不是把对应元素相除,也无需先显式求逆矩阵。指南说明,方阵情形通过高斯消元分解求解,并对接近奇异的矩阵发出警告。简短表达式把标准算法包装成接近教材的记号,但舍入误差和问题条件仍须由使用者判断。
参考:[1]
工程用户推动重新设计
1979至1980学年,莫勒在斯坦福教授数值分析,控制理论和信号处理方向的学生发现矩阵计算器能直接帮助本专业工作。控制工程师杰克·利特尔经由这一圈子的交流接触MATLAB,看到个人计算机作为技术计算工具的潜力。
1983年,利特尔提出商业化,并开始用C语言重新实现、扩充系统,史蒂夫·班格特参与开发。用户函数、M文件、工具箱和更强的图形能力,使用户能在系统外编写可重复调用的工作流程。新的MATLAB由计算器转向编程环境,并为专业领域扩充保留入口。
参考:[2]
1984年的公司与公开亮相
莫勒、利特尔和班格特于1984年在加利福尼亚创办MathWorks。PC-MATLAB于当年12月在拉斯维加斯的IEEE决策与控制会议公开展示,面向IBM个人计算机及兼容机。选择控制领域会议,也延续了工程用户对软件发展的直接推动。
莫勒的口述史说明,早期开发主要靠创办者自己的时间和积蓄,没有外部投资;利特尔辞职投入开发,班格特起初仍在业余时间参与。公司成立、展会亮相与早期学术程序并非同一事件,不能把1984年当成所有MATLAB代码的共同诞生日期。
后续扩展与历史意义
商业化后,软件沿专业工具箱和计算能力两条路线扩展。控制系统工具箱于1985年出现,信号处理工具箱于1987年出现;1992年加入稀疏矩阵,1993年又出现图像处理和符号数学工具箱。这些都是后续阶段,不能倒放进最初的矩阵计算器。
MATLAB的重要变化,是把专业数值程序、交互式实验和用户可编写的函数连接起来。矩阵操作能够替代许多低层循环,使工程师快速试验模型;与此同时,方便的界面并未消除数值分析的限制。它的传播史显示,教学工具可以在跨学科用户的实际需求推动下,发展成持续扩充的技术计算平台。