技术文章和通讯

MATLAB的简史

由克里夫硅藻土,MathWorks


第一个MATLAB®不是一种编程语言;这是一个简单的交互式矩阵计算器。没有计划,没有工具箱,没有图形。和常微分方程或fft算法。

在克里夫的角落里,我将描述一些进化的里程碑MATLAB从这些简单的开端。

数学的起源

MATLAB的第一个版本的数学基础是一系列研究论文由j·h·威尔金森和18个同事,发表在1965年和1970年之间,后来收集手册进行自动计算,卷二,线性代数,威尔金森和c . Reinsch编辑。这些论文提出算法,在算法中实现,求解矩阵线性方程和特征值问题。

EISPACK和LINPACK

在1970年,一群阿贡国家实验室的研究人员提出了美国国家科学基金会(NSF)“探索方法,成本和资源要求生产,测试,和传播高质量的数学软件,测试,认证,传播,和支持包的数学软件在特定的问题领域。金宝app”该集团开发EISPACK(矩阵Eigensystem包)的翻译特征值问题的算法程序手册为Fortran和工作广泛测试和可移植性。EISPACK的第一个版本在1971年被释放,第二个1976年。

1975年,四个us-Jack Dongarra,皮特·斯图尔特,吉姆,和myself-proposed NSF的另一个研究项目,将调查方法的数学软件的发展。副产品是软件本身,称为LINPACK,线性方程包。这个项目也集中在阿贡。

LINPACK起源于Fortran;它不涉及翻译算法。包包含44子程序的四个数值精度。

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

历史性的MATLAB

在1970年代和1980年代早期,我教线性代数和数值分析在新墨西哥大学的,希望我的学生容易获得LINPACK, EISPACK没有编写Fortran程序。“便利”,我的意思是不会通过远程批处理和重复edit-compile-link-load-execute过程通常需要在校园中央主机电脑。

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

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

商业MATLAB

我花了1979 - 80学年在斯坦福大学,在那里我教研究生课程在数值分析和介绍了这类矩阵计算器。一些学生正在研究控制理论和信号处理等课程,我一无所知。矩阵是数学的核心在这些科目,虽然,MATLAB是立即有用的学生。

杰克小一直在斯坦福毕业的工程项目。他的一个朋友向他展示了MATLAB谁拿了我的课程,和他收养了它自己的工作。

1983年,小建议建立一个基于MATLAB的商业产品。IBM®电脑已经介绍了仅仅两年前。这是几乎没有强大到足以与MATLAB运行一个程序,但小预期其进化。他离开了他的工作,买了康柏®PC克隆在西尔斯,进入斯坦福背后的山,和在我的鼓励下,写了一个新的和扩展的版本MATLAB在c .朋友史蒂夫•Bangert新MATLAB在业余时间工作。

PC-MATLAB首次亮相于1984年12月在IEEE会议决定和控制在拉斯维加斯。Pro-MATLAB为Unix工作站,一年后。

小和Bangert许多重要修改和改进历史MATLAB时创造了新的和扩展版本。最重要的是函数、工具箱和图形。

现代MATLAB

同时保留其根源矩阵数学、MATLAB继续改进,以满足不断变化的需求的工程师和科学家。关键的发展时间线所示。在这里,我将详细说明其中的一些。

常微分方程

常微分方程的数值解是一个MATLAB商业开始以来的重要组成部分。常微分方程模型的核心金宝app®,MATLAB伴侣产品仿真和基于模型的设计。

范德堡尔振荡器是一个古典的颂歌的例子。

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

MATLAB代码表达了振荡器一双一阶方程。

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

范德堡尔振荡器的参数μ设置为5,是温和的僵硬的微分方程。在期待中,我使用了ode23s解算器;“年代”的名称表明它是僵硬的方程。在情节你可以看到一些聚类的步骤,迅速解决方案是不同的。该方法解算器会采取更多措施。一个僵硬的ode求解器使用隐式的方法要求一组线性方程组的解在每一步。标志性的MATLAB反斜杠符静静地在这里工作。

数据类型

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

单精度和整数

金宝app支持单精度运算始于2000年代初,在2004年完成了MATLAB 7。只需要32位的存储、单精度减少内存需求大数组的一半。MATLAB没有声明,所以单精度变量是通过可执行的转换函数。

MATLAB 7还介绍了三个无符号整数数据类型,uint8,uint16,uint32;三个带符号整数数据类型,int8,int16,int32;一个逻辑数据类型,逻辑

稀疏矩阵

介绍了稀疏矩阵与MATLAB 4在1992年。他们是一个节约内存的方式来表示非常大的数组,有几个非零值。只存储非零元素,随着行指数和指针的列开始。唯一改变的外观MATLAB函数是一对,稀疏的完整的。几乎所有的操作同样适用于完整的和稀疏矩阵。稀疏存储方案代表一个空间中的矩阵非零项的数量成正比,和大多数的操作时间计算的结果非零算术运算的数量成正比。

细胞数组

介绍了细胞阵列与MATLAB 5 1996年。单元阵列是一个索引,可能是异构的MATLAB对象的集合,包括其他细胞阵列。细胞阵列是由花括号,{}

细胞阵列可以被索引由花括号和光滑的括号。牙套,c {k}的内容吗kth细胞。用括号,c (k)是另一个包含指定的细胞单元阵列。把邮箱的集合。箱(k)kth邮箱。盒子{k}的邮件吗kth盒子。

结构

结构和相关的“点符号”在1996年被引入。这个脚本创建一个年级的书为一个小类显示结构和点符号。

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

点名,我们需要那名单。

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

改变查理的年级涉及结构和数组表示法。

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

对象

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

MATLAB图形系统是一个大型的、复杂的面向对象方法的MATLAB编程示例。

使MATLAB更容易:桌面和生活编辑器

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

桌面

介绍了MATLAB桌面在2000年。这是一个截图显示今天的样子。

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

任何面板可以关闭或出坞为一个独立的窗口。

住编辑器

现场编辑于2016年引入,仍在迅速发展。

描述性的文本和MATLAB输入、输出和图形结合在一个交互式文档可以被导出到HTML, PDF,或乳胶。

并行计算

介绍了并行计算工具箱™2004年在超级计算大会上。第二年,在SC05,比尔·盖茨为主题,利用MATLAB演示微软进入高性能计算。

工具箱支持粗粒度的分布式金宝app内存并行运行许多MATLAB工人在几个机器在集群或许多核心在一个机器上。MPI是用于底层消息传递。目前最受欢迎的工具箱的功能是平行的循环命令,parfor

工具箱还支持细粒度,共享内存连接图金宝app形处理单元(gpu)的并行性。在这里,gpuArray数组被事情开始。

工具箱

大部分现代MATLAB的力量来源于工具箱用于专用应用程序。发布2018年,有63人:

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

接下来是什么?

MATLAB已经走了很长的路从开始的简单的计算器。这是一个生活的生态系统支持技术计算的各个方面。金宝app我们将继续加强现有功能,当我们仔细添加新功能。我们的目标总是易用性,力量和速度。

2018年出版的

下载188bet金宝搏产品使用

查看相关文章的能力

MATLAB的时间表


1984年

PC-MATLAB
FFT
图形


1985年

Pro-MATLAB
控制系统工具箱™


1987年

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


1992年

稀疏矩阵
金宝app®


1993年

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


1996年

单精度
细胞数组
结构


1999年

对象


2000年

桌面
LAPACK


2004年

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


2008年

对象的改进


2010年

gpu


2014年

新的图形系统


2016年

住编辑器


2017年

高大的数组和分类数组