西莫电机圈

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 825|回复: 0

[原创] MATLAB基础知识:MATLAB 的发展

[复制链接]

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

发表于 2019-1-3 18:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
基于矩阵数学运算的根基,MATLAB 一直在不断发展完善以满足工程师和科学家们日益更新的需求。 MATLAB 的主要发展历程如下:
1.ODE
自商业化以来,常微分方程的数值解一直是 MATLAB 的重要部分。ODE 也是 Simulink® ——用于仿真和基于模型的设计的孪生产品——核心所在。
范德堡尔振荡器是一个经典的 ODE 示例。参数 μ 是非线性阻尼项的强度。当 μ = 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);
plot(t,y,'.-')
legend({'y','dy/dt'})
xlabel('t')
1.jpg

当参数 μ 设置为 5,范德堡尔振荡器将会成为一个适度刚性微分方程。我预先使用了 ode23s 求解器;名称中的 “s” 表示它适用于刚性方程。在图中,您可以看到一系列仿真步,他们的解快速变化。在非刚性求解器中会出现更多仿真步。刚性 ode 求解器使用隐式方法,需要在每一步使用联立线性方程组。MATLAB 标志式的反斜杠运算符在这里很好地发挥了作用。

2.数据类型
多年来,MATLAB 只有一种数值数据类型:以 64 位格式存储的 IEEE 标准 754 双精度浮点。随着人们开始在更多应用和更大数据集中使用 MATLAB,MATLAB提供了更多的数据呈现方式。
* 单精度和整数

对于单精度算法的支持开始于本世纪初,在 2004 年发布的 MATLAB 7 中实现。由于仅需要 32 位存储,单精度将大型阵列的内存需求降低了一半。MATLAB 没有声明,因此单精度变量由可执行转换函数获取。
MATLAB 7 还引入三种无符号整数数据类型:uint8、uint16 和 uint32;三种带符号整数数据类型:int8、int16 和 int32;以及一种逻辑数据类型:logical。
* 稀疏矩阵

稀疏矩阵于 1992 年随 MATLAB 4 推出。这是一种能够显示超大数组(几乎不含非零值)又节省内存的方式。它们只会存储非零元素,以及行索引和指向列开头的指针。
MATLAB 增加了一对函数 sparse 和 full,这是 MATLAB 前端的唯一变化。所有运算几乎都能同等应用于全矩阵和稀疏矩阵。稀疏存储模式通过矩阵在以与非零项数量成比例的空间中呈现,而大多数运算则以与非零项上数学运算量的时间成比例计算稀疏结果。
* 单元阵列

单元阵列于 1996 年随 MATLAB 5 发布。单元阵列是一个包含索引的具有异构可能的 MATLAB 对象集合,包括其他单元阵列。单元阵列通过大括号 {} 创建。
单元阵列可通过大括号和圆括号进行索引。如果使用大括号,c{k} 表示第 k 个单元的内容。如果使用圆括号,c(k) 表示包含指定单元的另一个单元阵列。我们可以想象成邮箱集合。box(k) 表示第 k 个邮箱。box{k} 是第 k 个邮箱中的邮件。
结构
结构和“圆点表示法”于 1996 年发布。以下用于创建小班成绩簿的脚本显示了结构和圆点表示法的使用。
Math101.name = ["Alice Jones"; "Bob Smith"; "Charlie Brown"];
   Math101.grade = ["A"; "B+"; "C"];
   Math101.year = [4; 2; 3];

要调取名单,需要姓名列表。
   disp(Math101.name)
       "Alice Jones"
       "Bob Smith"
       "Charlie Brown"
更改 Charlie 的成绩则需要结构和数组表示。
   Math101.grade(3) = “W”;
   disp(Math101.grade)
       “A”
       “B+”
       “W”

对象
2008 年,我们对 MATLAB 面向对象编程功能进行了重要改进。创建类可简化涉及特定数据结构或与特殊数据交互的大量函数的编程任务。MATLAB 类支持函数和运算符重载、对属性和方法的控制访问、引用和值语义以及事件和侦听程序。
MATLAB 图形系统是一个 MATLAB 面向对象编程方法的大型复杂示例。
MATLAB 的可用性:桌面版和实时编辑器
初版 MATLAB 只是简单的终端应用程序。随着时间的推移,我们增加了图形化、编辑和其他工具的独立窗口。这些改进使 MATLAB 的使用变得更加简单,尤其是对那些没有编程经验的用户来说。两个最重要的功能是桌面版和实时编辑器 (Live Editor)。
* 桌面版


MATLAB 桌面版于 2000 年发布。以下截图显示的是桌面版目前的界面。
2.jpg

用户可看到四个面板:当前文件夹查看器(左)、工作区查看器(右)、编辑器/调试器(中上)和传统命令行窗口(下中)。文件查看器和命令行历史记录窗口还可以包含在自定义布局中。
任何面板都可以关闭或在取消停靠后在独立窗口中打开。


* 实时编辑器



实时编辑器于 2016 年推出,且仍在不断地快速更新。
描述性文本以及 MATLAB 输入、输出和图形被整合在一个交互式文档中,并可导出为 HTML、PDF 或 LaTeX 文件。
3.jpg

并行计算
Parallel Computing Toolbox™ 于 2004 年在超级计算大会上发布。2005 年,比尔盖茨在 SC05 的主题演讲中使用 MATLAB 演示了微软向高性能计算领域的迈进。
通过在一个集群中的多个机器上或者在一个机器上的多个内核中运行多个 MATLAB 工作进程,该工具箱支持粗粒度的分布式内存并行机制。MPI 用于底层消息传递。目前,该工具箱最受欢迎的功能是并行的 for 循环命令 —— parfor。
该工具箱还支持在所安装的图形处理器 (GPU) 中实现细粒度的共享内存并行机制。gpuArray 让一切变为现实。
工具箱
如今的 MATLAB 大多数功能来自供专业化应用的工具箱。最新版本的 MATLAB 产品系列共有 66 个工具箱(不包含 Simulink 产品系列和 Polyspace 产品系列),支持以下应用领域:
        * 应用程序发布
        * 代码生成
        * 计算生物
        * 计算金融
        * 控制系统
        * 数据库访问和报告
        * 图像处理和计算机视觉
        * 数学,统计与优化
        * 并行计算
        *信号处理和无线通信
        * 测试和测量





西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|西莫电机圈 ( 浙ICP备10025899号-3 浙公网安备:33028202000436号

GMT+8, 2024-3-28 16:46 , Processed in 0.075750 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表