Matlab的简史

由克莱尔,Mathworks

第一个matlab.®不是编程语言;这是一个简单的交互式矩阵计算器。没有程序,没有工具箱,没有图形。没有odes或ffts。

在这个克里尔斯的角落里,我将描述Matlab的演变中的一些里程碑,从那些简单的开始。

数学起源

第一个版本的Matlab的数学依据是J.H.Wilkinson和18位同事的一系列研究论文,于1965年至1970年间发布,后来收集自动计算手册,第II卷,线性代数,由Wilkinson和C. Reinsch编辑。这些论文存在于藻洛尔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年,US-Jack Dongarra,Pete Stewart,Jim Bunch和My-Sumplious为NSF另一项研究项目,可以调查数学软件的发展方法。副产品是软件本身,被称为线袋,用于线性方程包。该项目也以argonne为中心。

Linpack起源于Fortran;它没有涉及来自algol的翻译。该包在四个数字精度中的每一个中包含44个子程序。

在某种意义上,LINPACK和EISPACK项目失败。我们提出了NSF的研究项目来“探索生产,测试和传播高质量数学软件所需的方法,成本和资源。”我们从未写过一个报告或纸张解决这些目标。我们只生产软件。

历史悠久的matlab.

在20世纪70年代和20世纪80年代初,我在新墨西哥州大学教授线性代数和数值分析,并希望我的学生可以轻松访问Linpack和Eispack而不撰写Fortran程序。通过“轻松访问”,我意味着不经过远程批处理和校园中央大型计算机上通常需要的重复编辑编译 - 链接加载过程。

所以,我研究了Niklaus Wirth的书算法+数据结构=程序并学习了如何解析编程语言。我写了第一个MATLAB-IN FORTRAN的首字母缩略词,以矩阵为唯一的数据类型。该项目是一种爱好,为我学习的新方面,为我的学生使用的东西。从来没有任何形式的外部支持,肯定没有商业计划。万博1manbetx

第一个MATLAB只是一个交互式矩阵计算器。启动屏幕的此快照显示所有保留的单词和函数。只有71.要添加另一个函数,您必须从我这里获取源代码,写一个fortran子程序,将函数名添加到解析表,并重新编译matlab。

商业Matlab.

我在斯坦福大学的学年到了1979-80学年,在那里我教授了数值分析的研究生课程,并向这个矩阵计算器介绍了课程。一些学生正在研究控制理论和信号处理等主题,我对此一无所知。然而,矩阵是这些科目中数学的核心,而Matlab立即对学生有用。

杰克很少一直在斯坦福大学的研究生课程。他课程的一位朋友向他展示了Matlab,他为自己的工作采用了它。

1983年,很少建议创建基于Matlab的商业产品。IBM.®PC仅在两年前推出。它几乎没有足够的强大,可以像Matlab这样的程序,但很少预期它的演变。他离开了他的工作,买了一个康柏®西尔斯的PC克隆搬进了斯坦福州的山丘,随着我的鼓励,在C.在C.一个朋友Steve Bangert,在新的Matlab上写了一个新的和扩展版本的Matlab。

PC-MATLAB于1984年12月在拉斯维加斯决策与控制会议上首次亮相。pro-matlab,对于Unix工作站,后来稍后遵循。

在创建新的和扩展版本时,历史Matlab很少和邦尔特对历史性的Matlab作出了许多重要的修改和改进。最重要的是函数,工具箱和图形。

现代matlab.

在保留矩阵数学中的根源时,Matlab继续发展以满足工程师和科学家的不断变化的需求。关键开发显示在时间表中。在这里,我会详细阐述其中的一些人。

杂散

自商业开端以来,常微分方程的数值解是MATLAB的重要组成部分。ODES也是Simulink的核心万博1manbetx®,MATLAB伴侣产品用于仿真和基于模型的设计。

van der POL振荡器是经典颂歌示例。

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

MATLAB代码将振荡器表示为一对一阶方程。

mu = 5;VDP = @(t,y)[y(2);mu *(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'})xlabel('t')

Van der Pol振荡器,具有参数μ.设置为5,是一种温和的僵硬的微分方程。在预期,我使用了ode23s.求解器;名称中的“s”表示它是刚性方程。在图中,您可以看到解决方案快速变化的步骤的一些群集。非任命的求解器将采取更多步骤。硬颂求解器使用隐含需要在每个步骤中解决一组同时线性方程的方法。标志性的Matlab Backslash运营商在这里静静地在工作。

数据类型

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

单精度和整数

万博1manbetx支持2000年代初开始单精度算术,并于2004年由Matlab 7完成。只需要32位储存,单精度切割大号的内存要求。Matlab没有声明,因此单精度变量是通过可执行转换函数获得的。

Matlab 7还推出了三种未签名的整数数据类型,uint8.uint16, 和UINT32.;三种符号整数数据类型,INT8.int16, 和INT32.;和一个逻辑数据类型,逻辑

稀疏矩阵

1992年使用MATLAB 4引入了稀疏矩阵。它们是一种记忆有效的方法,代表很少的非零值的大阵列。仅存储非零元素,以及行索引和指向列的开始。Matlab外观的唯一变化是一对功能,满的。几乎所有操作都适用于完全和稀疏的矩阵。稀疏存储方案表示与非零条目数量成比例的空间中的矩阵,并且大多数操作计算与非系统上的算术运算数量成比例的稀疏结果。

细胞阵列

1996年用Matlab 5引入了细胞阵列。细胞阵列是索引的,可能的Matlab物体的异质集合,包括其他单元阵列。单元格阵列由卷曲括号,{}

电池阵列可以由卷曲括号和平滑括号索引。带牙套,c {k}是内容的内容K.-th细胞。括号,C(k)是包含指定单元格的另一个单元阵列。想想邮箱的集合。盒子(k)是个K.-th邮箱。盒子{k}是邮件吗?K.-th盒子。

结构

1996年推出了结构和相关的“DOT符号”。用于为小班创建成绩书的此脚本显示了工作中的结构和点表示法。

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

要调用卷,我们需要名称列表。

DISP(MATH101.NAME)“Alice Jones”“BOB SMITH”“Charlie Brown”

改变查理的成绩涉及结构和阵列表示法。

math101.grade(3)=“w”;DISP(MATH101.GRADE)“A”“B +”“W”

对象

2008年制作了对MATLAB面向对象的编程功能的主要增强。创建类可以简化涉及专用数据结构的编程任务或与特定类型的数据交互的大量功能。Matlab类支持函数和操作员万博1manbetx重载,控制访问属性和方法,参考和值语义,以及事件和侦听器。

Matlab图形系统是一个大型,复杂的Matlab编程方法的例子。

使MATLAB更可访问:桌面和实时编辑器

第一个版本的Matlab是简单的终端应用程序。随着时间的推移,我们为图形,编辑和其他工具添加了单独的窗口。这些逐渐使MATLAB更容易使用,特别是对于没有先前编程经验的用户。具有最大影响的两个特定功能是桌面和实时编辑器。

桌面

Matlab Desktop于2000年推出。这是一个屏幕截图,展示了它今天的样子。

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

任何面板都可以关闭或未被关闭到独立窗口中。

直播编辑

Live Editor于2016年推出,仍在迅速发展。

描述性文本和MATLAB输入,输出和图形组合在单个交互式文档中,该文件可以导出到HTML,PDF或LaTex。

并行计算

并行计算工具箱™在2004年超级计算会议上引入了。次年,在SC05,比尔盖茨使用Matlab展示了Microsoft进入高性能计算的主题演讲。

Toolbox通过在群集万博1manbetx中的几台机器上运行许多MATLAB工人或在单台机器中的许多核心上运行许多MATLAB工人来支持粗粒度,分布式内存并行性。MPI用于底层消息传递。到目前为止,工具箱最受欢迎的功能是并行的为了循环命令,议案

工具箱还支持附加图形处理单元(GP万博1manbetxU)中的细粒度,共享内存并行性。在这里,这是GPUArray.阵列开始了。

工具箱

现代MATLAB的大部分力量来自可用于专门应用的工具箱。截至2018A释放,其中63人:

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

下一步是什么?

自从简单的计算器启动它的简单计算器以来,Matlab已经走了很长的路。它是一个支持技术计算的各个方面的生态系统。万博1manbetx我们将继续加强现有功能,因为我们仔细添加新的功能。我们的目标总是易于使用,力量和速度。

发布2018年


s manbetx 845使用的产品

查看相关功能的文章

matlab时间轴


1984年

PC-MATLAB.
FFT.
图形


1985年

Pro-Matlab.
控制系统工具箱™


1987年

信号处理工具箱™
杂散


1992年

稀疏矩阵
万博1manbetx®


1993年

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


1996年

单精度
细胞阵列
结构


1999年

对象


2000年

桌面
Lapack.


2004年

整数数据类型
功能手柄
并行计算


2008年

物体改进


2010年

GPUS.


2014年

新图形系统


2016年

直播编辑


2017年

高阵列和分类阵列