lilybunny 发表于 2019-1-2 20:06

MATLAB基础知识II:MATLAB的里程碑

初版 MATLAB 并不是编程语言,只是一个简单的交互式矩阵计算器,没有程序、工具箱、图形化,当然也没有 ODE 或 FFT。在 MATLAB 发展过程中,我们应该铭记下面这些里程碑。

1. 数学
第一版 MATLAB 的数学基础源自 J. H. Wilkinson 及他的 18 个同事于 1965 到 1970 年间发表的一系列研究论文,后被收集到 Wilkinson 和 C. Reinsch 编辑的《自动化计算手册(第二卷)》,线性代数(Handbook for Automatic Computation, Volume II, Linear Algebra)中。它们阐述了解决矩阵线性方程和特征值问题的算法,用 Algol 60 实现。
2. EISPACK 和 LINPACK
1970年,阿贡国家实验室的一组研究人员建议美国国家科学基金会 (NSF) “调研满足研发、测试和推广高质量数学软件所需要的方法、成本和资源,并进行测试、认证、分发和支持在特定问题领域的数学软件包”。该科研组将手册中解决特征值问题的 Algol 转换为 Fortran,并在测试和可移植性方面做了大量研究,最终开发出 EISPACK(矩阵特征系统软件包)。EISPACK 的首个版本于 1971 年发布,1976 年推出了第二版。
1975 年,Cleve Moler 和 Jack Dongarra、Pete Stewart、Jim Bunch 四个人提交了一个研究项目到 NSF —— 调研数学软件的开发方法。副产品将是软件本身,叫 LINPACK 的线性方程软件包。此项目的研究中心也设在阿尔贡。
LINPACK 源于 Fortran,不涉及 Algol。该软件包在每个数字精度(共四个)中包含 44 个子程序。
在某种意义上,LINPACK 和 EISPACK 项目是失败的。向 NSF 提交的研究项目,其目的是“调研满足研发、测试和推广高质量数学软件所需要的方法、成本和资源”。然而Cleve Moler他们从未针对这些课题撰写报告或论文。他们只研发了软件。


3.初版 MATLAB
在 70 年代和 80 年代初期,Cleve Moler在新墨西哥大学教授线性代数和数值分析。他希望学生能够方便地使用 LINPACK 和 EISPACK,而不必编写 Fortran 程序。这里Cleve Moler所说的“方便地使用”是指无需执行远程批处理和重复的编辑-编译-链接-加载-执行过程,而校园中央主机计算机一般需要执行这个过程。
因此,Cleve Moler研读了 Niklaus Wirth 的著作《Algorithms + Data Structures = Programs》,学习如何解析编程语言。用 Fortran 编写了初版 MATLAB —— 矩阵实验室(Matrix Laboratory)的缩写,其数据类型只有矩阵。这个项目对Cleve Moler来说是兴趣爱好,也是Cleve Moler希望了解的编程新领域,并且可以给学生学习使用。当时Cleve Moler并没有获得任何正式的外部支持。
初版 MATLAB 只是一个交互式矩阵计算器。下面这个启动屏幕展示了所有保留的文字和函数,只有 71 个。要添加其他函数,用户必须从我这里获取源代码、编写 Fortran 子程序、在解析表里添加自己的函数名称,然后重新编译 MATLAB。


4. MATLAB 商业化
1979-80 学年Cleve Moler在斯坦福任教,在那里教授数值分析的研究生课程,并在课程中引入了这一矩阵计算器。一些学生也在学习控制理论和信号处理等课程,这些课程涉及的数学以矩阵运算为核心,因此 MATLAB 迅速得到了学生的追捧。
Jack Little 当时正在斯坦福攻读研究生工程学位。他的一个朋友是Cleve Moler的学生,向他展示了 MATLAB,随后他便在工作中用到了它。
1983 年,Little 提议开发基于 MATLAB 的商用产品。彼时,IBM® 台式机才推出两年,很难支持 MATLAB 这样的程序的运行,但是 Little 希望对它进行改进。他辞掉了工作,在 Sears 购买了 Compaq® 电脑克隆机,并搬到了斯坦福的后山上。在Cleve Moler的鼓励下,他用 C 语言编写了 MATLAB 新的扩展版本。 Steve Bangert 也在业余时间研究新版 MATLAB。终于,PC-MATLAB 于 1984 年在拉斯维加斯举行的 IEEE 决策与控制会议(IEEE Conference on Decision and Control)上首次发布。次年,发布了针对 Unix 工作站的Pro-MATLAB。
在扩展版本中,Little 和 Bangert 对初版 MATLAB 做了许多重要的修改和提高。其中最重要的是函数、工具箱和图形化。

薛成勇 发表于 2019-2-1 16:32

好文章,顶一下。

nanfeng 发表于 2019-4-23 10:59

上面的摘要,很有启发
页: [1]
查看完整版本: MATLAB基础知识II:MATLAB的里程碑