MATLAB的简史

Cleve Moler, MathWorks

第一MATLAB®是不是一种编程语言;这是一个简单的互动矩阵计算器。目前还没有计划,没有工具箱,没有图形。而且没有常微分方程和快速傅里叶变换。

在这篇专栏文章中,我将描述从这些简单的开始到MATLAB发展的一些里程碑。

数学的起源

对于MATLAB的第一个版本的数学基础是一系列由J. H.威尔金森研究论文和他的同事们的18,1965年和1970年,后来在收集间出版自动计算手册,第二卷,线性代数,由威尔金森和C.赖因施编辑。这些论文本算法,陵60实现,求解矩阵线性方程和本征值问题。

EISPACK和LINPACK

In 1970, a group of researchers at Argonne National Laboratory proposed to the U.S. National Science Foundation (NSF) to “explore the methodology, costs, and resources required to produce, test, and disseminate high-quality mathematical software and to test, certify, disseminate, and support packages of mathematical software in certain problem areas.” The group developed EISPACK (Matrix Eigensystem Package) by translating the Algol procedures for eigenvalue problems in the handbook into Fortran and working extensively on testing and portability. The first version of EISPACK was released in 1971 and the second in 1976.

1975年,美国的杰克四唐加拉,皮特·斯图尔特,吉姆一群人,自己提出的对美国国家科学基金会的另一个研究项目将探讨数学软件开发方法。一个副产品将是软件本身,被称为LINPACK,求解线性方程组包。该项目也集中在阿贡。

LINPACK起源于Fortran语言;它并没有从陵涉及翻译。该包装包含44个子程序中每个的四个数值精度。

从某种意义上说,LINPACK和EISPACK项目是失败的。我们向国家科学基金会提出了研究项目,以“探索生产、测试和传播高质量数学软件所需的方法、成本和资源”。“我们从未就这些目标写过一份报告或论文。我们只生产软件。

历史MATLAB

在20世纪70年代和80年代初,我在教学线性代数和数值分析在新墨西哥大学,并希望我的学生很容易获得LINPACK和EISPACK无需编写Fortran程序。通过“绿色通道”,我的意思是不打算通过远程批量处理,那就是通常所需要的校园中央主机计算机上的重复编辑 - 编译 - 链路负载执行过程。

所以,我研究的Niklaus Wirth的书算法+数据结构=程序并学会如何解析的编程语言。我写了矩阵实验室,用Fortran第一MATLAB-的首字母缩写,以矩阵作为唯一的数据类型。该项目是一种业余爱好,编程对我来说,学习和东西我的学生使用的一个新的方面。从来没有任何正式的外部支持,当然也没有商业计划。金宝app

第一个MATLAB只是一个交互式矩阵计算器。启动屏幕的这个快照显示了所有的保留字和函数。只有71个。要添加另一个函数,您必须从我这里获得源代码,编写Fortran子例程,将函数名添加到解析表中,然后重新编译MATLAB。

商业MATLAB

我在斯坦福度过了1979-80学年,在那里我教授了数值分析的研究生课程,并向全班介绍了这个矩阵计算器。有些学生在学习控制理论和信号处理等课程,而我对这些一无所知。然而,在这些学科中,矩阵是数学的核心,MATLAB对学生很有帮助。

杰克的小曾在斯坦福大学研究生工程计划。谁把我当然他的一个朋友给他MATLAB,他通过了对自己的工作。

1983年,小建议基于MATLAB的商业产品的创作。IBM的®个人电脑在两年前才推出。它的功能几乎不足以运行MATLAB这样的程序,但几乎没有人预料到它的发展。他辞掉了工作,买了一台康柏电脑®在我的鼓励下,我用c语言编写了一个新的、扩展版的MATLAB。我的一个朋友史蒂夫·班格特(Steve Bangert)利用业余时间开发了这个新的MATLAB。

PC-MATLAB在IEEE会议上首次亮相于1984年12月在决策与控制在拉斯维加斯。临MATLAB,用于Unix工作站,在一年后。

当他们创造了新的和扩展的版本少,班格特提出了许多重要的修改和改进的历史MATLAB。最显著为功能,工具箱和图形。

现代MATLAB

同时保持其在矩阵数学,根,MATLAB继续发展以满足工程师和科学家们不断变化的需求。关键的发展显示时间轴。在这里,我将阐述其中的一些。

常微分方程

常微分方程的数值解已自其商业开始MATLAB的重要组成部分。常微分方程也Simulink中的核心金宝app®,模拟和基于模型的设计MATLAB的配套产品。

范德堡尔振荡器是一个经典的ODE例子。

的参数μ是非线性阻尼项的强度。什么时候μ= 0,我们有基本的谐振子。

的MATLAB代码表达振荡器作为一对一阶方程。

μ= 5;vdp = @(t,y) [y(2);μ* (1 y (1) ^ 2) * y (2) - y (1)];tspan = [0 30];y0 = [0 0.01]';[t、y] = ode23s (vdp, tspan y0);情节(t y '。')传说({' y ', ' dy / dt '})包含(“t”)

范德波尔振荡器,具有参数μ设置为5,是轻度僵硬微分方程。在期待,我用了ode23s解算器;名称中的“s”表示它适用于刚性方程。在图中,您可以看到一些步骤的集群,其中解决方案变化很快。一个不僵硬的解决者会采取更多的步骤。僵硬的ode求解器使用含蓄方法需要一组联立线性方程的每个步骤中的溶液。标志性的MATLAB反斜杠运营商正在悄悄地在这里工作。

数据类型

多年来,MATLAB只有一种数字数据类型:IEEE标准754双精度浮点数,以64位格式存储。当人们开始将MATLAB用于更多的应用程序和更大的数据集时,我们提供了更多表示数据的方法。

单精度整数

金宝app对于单精度运算支持开始于21世纪初,于2004年完成由MATLAB 7需要只有32位存储的,对于一半大阵列单精度削减存储器需求。MATLAB没有声明,所以单精度变量由可执行转换函数获得。

MATLAB 7还引入了三个无符号整数数据类型,UINT8uint16,UINT32;3种符号整数数据类型,INT8int16,int32;和一个逻辑数据类型,合乎逻辑

稀疏矩阵

稀疏矩阵用MATLAB 4推出于1992年。他们是一个内存高效的方式来表示有少数非零值非常大的阵列。只有非零元素存储,具有行索引和指针到列的开始一起。到MATLAB的外观的唯一变化是一个双功能充分。几乎所有的操作同样适用于全和稀疏矩阵。稀疏存储方案表示空间正比于非零项的数量的矩阵,并且在时间正比于算术运算的上非零元素的数量大部分操作计算稀疏结果。

细胞数组

1996年,matlab5引入了细胞阵列。单元阵列是MATLAB对象(包括其他单元阵列)的索引的、可能是异构的集合。单元格数组由花括号创建,{}

单元阵列可由两个大括号和光滑括号来索引。与支架,c {k}是的内容ķ个细胞。随着括号,C(k)的是包含指定细胞另一个单元阵列。想想邮箱的集合。盒(K)ķ个邮箱。盒{K}邮件在吗ķth盒子。

结构

结构和相关的“点号”于1996年被引入该脚本为小班节目的结构和工作点符号创建成绩簿。

Math101.name = [ “爱丽丝琼斯”;“鲍勃史密斯”;“查理·布朗”];Math101.grade = [ “A”;“B +”;“C”];Math101.year = [4;2;3];

点名,我们需要的名称列表。

disp (Math101.name)爱丽丝·琼斯鲍勃·史密斯查理·布朗

更改查理的成绩既包括结构和数组符号。

Math101.grade(3)=“W”;DISP(Math101.grade)“A”,“B +”,“W”

对象

主要增强功能的MATLAB的面向对象的编程能力在2008年创建类作了简化,涉及专业数据结构或大量的函数编程任务,与特定类型的数据交互。MATLAB类支持功能和运算符金宝app重载,受控访问属性和方法,参考值和语义,以及事件和监听器。

MATLAB的图形系统是一个大的,面向对象的方法进行MATLAB编程的复杂的例子。

MATLAB制作更便于桌面和现场编辑器

MATLAB的第一个版本是简单的终端应用。随着时间的推移我们增加了单独的窗口图形,编辑和其他工具。这些逐步取得MATLAB更容易使用,尤其是对于用户无需编程经验。已经有最大影响的两项功能是桌面和实时编辑。

桌面

MATLAB的桌面是在2000年推出了这里是在今天它的外观的屏幕截图。

四个面板可见:当前文件夹浏览器(左),工作区查看器(右),编辑/调试器(顶部中心),与传统的命令行窗口(底部中心)。一个文件浏览器和命令历史记录窗口也可以包含在个性化的布局。

任何面板可以被关闭或解除对接成一个独立的窗口。

现场编辑器

Live编辑器于2016年推出,目前仍在快速发展中。

描述性文本和MATLAB的输入、输出和图形组合在一个可导出为HTML、PDF或LaTeX的交互式文档中。

并行计算

并行计算工具箱™是在超级计算大会于2004年推出了第二年,在SC05,比尔·盖茨给了主题演讲,用MATLAB来证明微软进军高性能计算。

该工具箱通过在集群中的多金宝app台机器或单机中的多核上运行许多MATLAB工作人员,从而支持粗粒度的分布式内存并行化。MPI用于底层消息传递。到目前为止,工具箱中最流行的特性是并行对于循环命令,PARFOR

该工具箱还支持在连接图形细粒,共享金宝app存储器的并行处理单元(GPU)。在这里,gpuArray阵列得到的东西开始。

工具箱

从许多可用于专业应用的工具箱现代MATLAB导出的力量。由于2018A发布的,还有他们的63:

  • 应用程序部署(3)
  • 代码生成(7)
  • 计算生物学(2)
  • 计算金融(8)
  • 控制系统(8)
  • 数据库访问和报告(2)
  • 图像处理和计算机视觉(6)
  • 数学,统计与优化(9)
  • 并行计算(2)
  • 信号处理和无线通信(11)
  • 测试和测量(5)

下一步是什么?

MATLAB已经走过了一段很长的路,从一个简单的计算器开始。它是一个支持技术计算各个方面的活的生态系统。金宝app我们将继续加强现有的功能,并小心地添加新的功能。我们的目标总是易于使用、强大和快速。

发布时间2018


下载188bet金宝搏使用的产品

查看相关功能的文章

MATLAB的时间表


1984年

PC-MATLAB
FFT
图形


1985年

临MATLAB
控制系统工具箱™


1987年

信号处理工具箱™
常微分方程


1992

稀疏矩阵
金宝app®


1993

图像处理工具箱™
符号数学工具箱™


1996

单精度
电池阵列
结构


1999

对象


2000

桌面
LAPACK


2004年

整数数据类型
函数处理
并行计算


2008年

改进的对象


2010

图形处理器


2014

新的图形系统


2016

现场编辑器


2017年

高数组和分类数组