新書推薦:
《
爱琴海的光芒 : 千年古希腊文明
》
售價:NT$
908.0
《
不被他人左右:基于阿德勒心理学的无压力工作法
》
售價:NT$
301.0
《
SDGSAT-1卫星热红外影像图集
》
售價:NT$
2030.0
《
股市趋势技术分析(原书第11版)
》
售價:NT$
1010.0
《
汉匈战争全史
》
售價:NT$
454.0
《
恶的哲学研究(社会思想丛书)
》
售價:NT$
500.0
《
当你沉默时(悬疑推理 反PUA 反家暴 女性独立小说,揭秘情感PUA的真相,女性自我救赎的文学典范)
》
售價:NT$
255.0
《
不止江湖
》
售價:NT$
449.0
|
編輯推薦: |
本书是作者在一流本科课程“现代科学运算——MATLAB与应用”授课经验的基础上编写而成。全书系统阐述了MATLAB编程的知识,浓缩了科学运算的系统理论,并扩展了Simulink系统仿真的内容,更适合满足一般理工科专业的实际教学需求。全书配套教学资源如下:
? 微课视频 扫码观看便于自学。
? 习题解答 全书完整习题解答。
? 教学课件 交互式的教学课件。
? 程序代码 配书通用代码与模型
说明:关注“人工智能科学与技术”微信公众号,在“知识”→“资源下载”→“配书资源”菜单获取下载链接(或到清华大学出版社网站本书页面获取下载链接)。
|
內容簡介: |
本书系统地介绍科学研究与工程应用领域使用广泛的 MATLAB语言,全面介绍其基本编程方法,包 括数据结构、语句结构、流程控制、函数编写、图形绘制与面向对象编程技术等,并介绍 MATLAB语言在微 积分、线性代数、代数方程、微分方程、**化与数据处理领域的问题求解方法;本书还介绍基于 Simulink 的系统建模与仿真方法. 本书适合理工科各专业本科生、研究生以及工程技术人员学习 MATLAB语言,并利用 MATLAB 语 言解决科学运算、系统建模与仿真方法等问题.
|
關於作者: |
薛定宇 分别在沈阳工业大学、东北大学和英国Sussex大学获得学士(1985年)、硕士(1988年)和博士学位(1992年),1997年起任东北大学信息学院教授。深耕于计算机在数学与自动控制学科的应用,主持了国家精品课程建设,并于1996年在清华大学出版社出版《控制系统计算机辅助设计——MATLAB与应用》(该教材被评为精品教材,被认为是国内MATLAB应用领域具有深远影响的一部图书,为MATLAB在国内高校教学与科研中的普及起到了巨大的作用)。先后被评为辽宁省教学名师、辽宁省优秀教师,获得国家教学成果二等奖、中国自动化学会教育教学成果一等奖、辽宁省教学成果一等奖等奖励。主讲的“控制系统仿真与CAD”课程被评为精品课程、精品资源共享课程;主讲的“现代科学运算——MATLAB语言与应用”课程被评为首批一流本科课程,配套录制的全新慕课课程均上线于爱课程与中国大学MOOC(慕课)网站。
|
目錄:
|
目 录
第1 章MATLAB 语言简介1
1.1 科学运算与仿真问题演示1
1.1.1 科学运算问题求解1
1.1.2 常规计算机语言的局限性2
1.2 MATLAB 语言4
1.2.1 MATLAB 的出现与发展4
1.2.2 MATLAB 语言的特色 5
1.3 科学运算问题的三步求解方法 6
1.4 本书的结构7
1.5 习 题 8
第2 章MATLAB 的编程基础 10
2.1 MATLAB 的基本操作 10
2.1.1 MATLAB 主界面10
2.1.2 MATLAB 工作路径 11
2.1.3 MATLAB 联机帮助系统12
2.1.4 MATLAB 的显示格式 13
2.1.5 MATLAB 的工作空间与管理 14
2.1.6 MATLAB 的其他辅助工具 14
2.2 MATLAB 数据结构15
2.2.1 保留的常量 15
2.2.2 变量名与命名规则 16
2.2.3 双精度数据结构 16
2.2.4 符号型数据结构与符号函数 17
2.2.5 任意符号型矩阵的生成 19
2.2.6 其他数据结构 19
2.2.7 数据结构的识别 20
2.3 MATLAB 语句结构20
2.3.1 基本赋值语句 20
2.3.2 函数调用 21
2.3.3 冒号表达式 22
2.3.4 子矩阵的提取 22
2.3.5 MATLAB 的人机交互函数 23
2.4 MATLAB 基本运算23
2.4.1 代数运算 23
2.4.2 超越函数运算 25
2.4.3 逻辑运算 27
2.4.4 比较运算 27
2.4.5 字符串运算 27
2.4.6 符号表达式的处理 29
2.5 MATLAB 的文件操作 31
2.5.1 MATLAB 工作空间变量的存取31
2.5.2 文件读写函数 31
2.5.3 Microsoft Excel 文件的操作 32
2.6 习 题 33
第3 章MATLAB 的流程结构 35
3.1 循环结构35
3.1.1 for 循环结构 35
3.1.2 while 循环结构 37
3.1.3 循环语句的嵌套 38
3.1.4 向量化编程与循环结构 39
3.2 转移结构40
3.2.1 简单的条件转移结构 40
3.2.2 条件转移结构的一般形式 41
3.2.3 其他流程控制命令 41
3.2.4 分段函数的向量化计算 41
3.3 开关结构43
3.4 试探结构44
3.5 习 题 45
第4 章MATLAB 函数编程 48
4.1 MATLAB 脚本文件48
4.1.1 MATLAB 的程序编辑界面 49
4.1.2 MATLAB 实时编辑界面49
4.2 函数的基本结构51
4.2.1 为什么需要MATLAB 函数 51
4.2.2 函数的结构 51
4.2.3 函数名的命令规则 52
4.2.4 输入、输出变元的个数53
4.2.5 函数的递归调用 54
4.2.6 匿名函数 55
4.3 函数变量的传递56
4.3.1 输入、输出变元的传递与提取56
4.3.2 局部变量与全局变量 58
4.3.3 工作空间变量的存取 58
4.4 MATLAB 函数调试方法与处理 59
4.4.1 MATLAB 函数的跟踪调试 59
4.4.2 伪代码技术 60
4.5 习 题 61
第5 章MATLAB 科学绘图 64
5.1 简单二维图形绘制 64
5.1.1 基于数据的绘图 64
5.1.2 基于函数表达式的绘图 68
5.1.3 参数方程曲线绘制 69
5.1.4 双y 轴曲线 70
5.1.5 图形修饰与编辑 70
5.1.6 图形数据的提取 72
5.2 特殊二维图形 72
5.2.1 极坐标 72
5.2.2 离散数据的图形表示 74
5.2.3 统计图形绘制 75
5.2.4 填充图 76
5.2.5 对数图绘制 77
5.2.6 动态轨迹绘制与动画制作 78
5.2.7 图形窗口的分割 79
5.3 MATLAB 三维绘图79
5.3.1 三维曲线绘制 80
5.3.2 三维参数方程的曲线绘制 80
5.3.3 三维曲面绘制 81
5.3.4 视角设置 82
5.3.5 二元参数方程的曲面绘制 83
5.3.6 三维动画的制作与播放 84
5.4 隐函数绘制84
5.4.1 二维隐函数曲线绘制 85
5.4.2 三维隐函数曲面绘制 86
5.5 习 题 87
第6 章MATLAB 的面向对象编程 90
6.1 面向对象程序的基本概念90
6.2 类与对象的设计91
6.2.1 类的数据结构 91
6.2.2 类的输入与显示 92
6.2.3 加减法运算重载函数 94
6.2.4 乘法运算重载函数 94
6.2.5 乘方运算重载函数 96
6.2.6 合并同类项重载函数 96
6.3 应用程序的界面设计 97
6.3.1 图形用户界面的对象97
6.3.2 简易对话框 98
6.3.3 标准对话框的编程与使用 98
6.3.4 用App Designer 设计应用程序 99
6.4 习 题 103
第7 章微积分与积分变换求解105
7.1 微积分问题的解析求解 105
7.1.1 单变量函数的极限 105
7.1.2 多元函数的极限 109
7.1.3 函数求导 111
7.1.4 函数的积分 116
7.2 函数的级数逼近与效果评价 119
7.2.1 Taylor 级数 119
7.2.2 Fourier 级数121
7.2.3 级数求和 123
7.2.4 序列乘积 125
7.2.5 无穷级数的收敛性判定 126
7.3 微积分问题的数值求解 127
7.3.1 数值微分 127
7.3.2 数值积分 128
7.4 积分变换入门 133
7.4.1 Laplace 变换134
7.4.2 数值Laplace 变换 135
7.4.3 Fourier 变换137
7.4.4 z 变换 138
7.5 习 题 138
第8 章线性代数与矩阵分析144
8.1 特殊矩阵的输入144
8.1.1 零矩阵、幺矩阵与单位矩阵144
8.1.2 随机数矩阵 146
8.1.3 对角矩阵 146
8.1.4 特殊矩阵的表现形式 147
8.2 矩阵分析147
8.2.1 矩阵的简单分析148
8.2.2 逆矩阵 151
8.2.3 Moore–Penrose 广义逆矩阵 153
8.2.4 矩阵的特征值 154
8.3 矩阵的变换与分解 155
8.3.1 矩阵的相似变换155
8.3.2 相伴矩阵变换 155
8.3.3 一般矩阵的对角变换与Jordan 变换156
8.3.4 矩阵的三角分解 157
8.3.5 对称矩阵的Cholesky 分解 158
8.3.6 奇异值分解 159
8.4 矩阵函数160
8.4.1 矩阵的指数函数 160
8.4.2 矩阵的三角函数 161
8.4.3 任意矩阵函数 161
8.5 习 题 162
第9 章代数方程求解165
9.1 线性代数方程组的求解 165
9.1.1 线性方程的一般形式 165
9.1.2 线性方程解的数值与解析解法 166
9.1.3 无穷解的构造 167
9.1.4 矛盾方程的小二乘解 168
9.1.5 XA = B方程求解169
9.2 特殊线性方程的方程求解 169
9.2.1 线性方程的Kronecker 变换 169
9.2.2 AXB = C 方程求解 170
9.2.3 Lyapunov 方程求解 171
9.2.4 Sylvester 方程求解 171
9.3 一般非线性方程求解 173
9.3.1 非线性方程的图解法 173
9.3.2 多项式类方程的准解析解方法 176
9.3.3 二次型方程的准解析解方法 177
9.3.4 非线性方程的数值解 178
9.3.5 方程求解的参数控制 179
9.4 多解非线性矩阵方程 180
9.4.1 多解方程求解的思路与代码实现 180
9.4.2 矩阵方程的求解 182
9.4.3 伪多项式方程的求解 183
9.5 习 题 183
第10 章常微分方程求解 187
10.1 常微分方程的解析解 187
10.1.1 高阶线性常系数微分方程 187
10.1.2 高阶微分方程组 189
10.1.3 时变微分方程 190
10.1.4 非线性微分方程 191
10.2 微分方程的初值问题 192
10.2.1 1 阶显式微分方程的标准型192
10.2.2 微分方程的直接求解 192
10.2.3 微分方程解的检验 194
10.2.4 微分方程的变换方法 195
10.2.5 刚性微分方程 199
10.3 特殊微分方程 200
10.3.1 微分代数方程 201
10.3.2 隐式微分方程 201
10.3.3 延迟微分方程 203
10.4 微分方程的边值问题 206
10.4.1 边值问题的数学形式 207
10.4.2 一般边值问题求解 207
10.4.3 含有参数的边值问题求解 208
10.5 习 题 210
第11 章化问题求解 215
11.1 无约束化 215
11.1.1 无约束化问题的数学形式 215
11.1.2 无约束化问题的求解 216
11.1.3 无约束化问题的求解精度控制 217
11.2 线性规划与二次型规划 217
11.2.1 线性规划 217
11.2.2 二次型规划219
11.2.3 基于问题的描述方法与求解 220
11.3 一般非线性规划222
11.3.1 非线性规划的数学形式 222
11.3.2 非线性规划的直接求解 222
11.3.3 局部解与全局解224
11.4 全局解的探讨 225
11.4.1 MATLAB 全局优化工具箱简介225
11.4.2 无约束全局解的程序实现227
11.4.3 有约束全局解的程序实现229
11.5 习 题 231
第12 章数据处理与数理统计235
12.1 数据插值235
12.1.1 一维数据插值 235
12.1.2 二维与多维插值 236
12.1.3 样条插值求解方法238
12.1.4 基于样条插值的数值微积分运算 239
12.2 由数据拟合函数模型 241
12.2.1 多项式拟合 241
12.2.2 小二乘拟合曲线拟合 242
12.2.3 基于神经网络的数据拟合243
12.3 数据的统计分析245
12.3.1 概率密度与分布函数 245
12.3.2 伪随机数生成 246
12.3.3 均值与方差 247
12.3.4 离群值检测 248
12.4 假设检验与方差分析 250
12.4.1 数据的假设检验 250
12.4.2 方差分析 252
12.5 习 题 254
第13 章Simulink 建模与仿真 257
13.1 Simulink 的界面257
13.1.1 Simulink 的模块库与空白模型窗口 258
13.1.2 Simulink 的工具栏 258
13.2 Simulink 的常用模块组 259
13.2.1 输入、输出模块 260
13.2.2 连续与离散系统 260
13.2.3 运算模块 262
13.2.4 Simulink 模型的建模与仿真举例 263
13.3 Simulink 参数设置 264
13.3.1 求解器参数设置 265
13.3.2 输入、输出参数设置265
13.3.3 模型参数预设置 266
13.4 基于Simulink 的微分方程建模与求解 266
13.4.1 Simulink 建模规则 267
13.4.2 底层建模方法 268
13.4.3 向量化建模方法 269
13.4.4 标准微分方程建模的统一框架 270
13.4.5 微分方程组建模 271
13.4.6 隐式微分方程建模272
13.4.7 延迟微分方程建模273
13.5 习 题 274
第14 章Simulink 建模与仿真进阶277
14.1 基于命令的仿真方法 277
14.1.1 仿真参数设置 277
14.1.2 用MATLAB 启动仿真过程 278
14.1.3 Simulink 仿真的输入与输出数据结构 279
14.1.4 并行仿真 280
14.2 精确仿真与快速仿真 280
14.2.1 过零点检测 280
14.2.2 代数环处理 281
14.2.3 仿真过程的快速重启 283
14.3 子系统与模块封装 285
14.3.1 子系统 285
14.3.2 封装模块的图标设计 286
14.3.3 模块封装 288
14.4 S-函数的编程与应用 290
14.4.1 系统的状态方程描述 290
14.4.2 S-函数的基本结构 290
14.4.3 S-函数的运行机制 291
14.4.4 S-函数的响应函数 292
14.4.5 S-函数举例 292
14.4.6 S-函数模块的封装 297
14.5 习 题 298
参考文献300
MATLAB 函数名索引 304
|
內容試閱:
|
前 言
MATLAB 语言是学术界与很多工程领域使用广的专业计算机语言。对理工科学生
而言,尽早学习、掌握这样的主流计算机语言将有机会提早在课程学习与课外活动中使用
MATLAB 语言,更好地解决学习、实践中遇到的问题。例如,在传统课程的学习中,至少可以
从一个新的视角审视学习的内容,探讨利用计算机解决实际问题的方法,甚至创造性地解决
前人没有解决的问题。
在总结多年实际教学经验的基础上,本书作者曾在首届MathWorks 亚洲研究与教育峰
会(2014 年11 月,东京)上提出了科学运算问题的“三步求解方法”,其步是用简单的语
言理解要求解数学问题的物理意义;第二步是用计算机能接受的方式将数学问题输入给计
算机;第三步是调用恰当的函数将数学问题的解求出来。有了这样的思路,普通研究者就可
以直接利用计算机工具在短时间内解决已经学习过甚至从未接触过的科学运算问题。本书
涉及大量科学运算问题的求解实例,基本采用的就是这样的“三步求解方法”。
作者1988 年在英国Sussex 大学读博时开始接触MATLAB 语言,并用MATLAB 语言
开发了用于反馈控制课程实验的Control Kit 软件,用于该校的实际教学实践,该软件后来
成为英国Rapid Data 公司的商品软件。1993 年作者回东北大学任教,将MATLAB 语言引
入实际教学,并在1996 年由清华大学出版社出版《控制系统计算机辅助设计——MATLAB
语言与应用》,该书被认为是国内早系统介绍MATLAB 语言的著作,后来被评为
精品教材,以其为基础的“控制系统仿真与CAD”课程被先后评为精品课程、首批国
家级精品资源共享课程。
随着MATLAB 功能的日益强大,各个专业的师生都普遍使用MATLAB 解决实际问
题,作者认为有必要开设一门专门的课程,不但介绍MATLAB 的基本使用方法,更应该广
泛介绍利用MATLAB 语言求解各门数学课程相关的问题,全面提升学生解决实际科学运
算问题的水平。2002 年,作者在东北大学开设了自动化专业本科生的必选课程“MATLAB
语言与科学运算”,并于次年将该课程扩展为面向全校研究生的选修课程。2004 年作者在清
华大学出版社出版《高等应用数学问题的MATLAB 求解》,以其为教材的课程“现代科学运
算——MATLAB 语言与应用”于2020 年入选首批一流本科课程。
又经过15 年教学与科研的积累,作者在清华大学出版社出版了《薛定宇教授大讲堂》(共
6 卷),专门介绍MATLAB、Simulink 的编程与建模基础,并针对若干个数学主题,深入研究
如何用MATLAB 直接求解数学问题。为了使得理工科各专业、经济金融专业本科生和研究
生能够更好地学习使用MATLAB 语言,解决实际科学研究问题,特将该系列著作的基础内
容浓缩成现在的《MATLAB/Simulink 实用教程——编程、计算与仿真》一书,在此特别感谢
I
II MATLAB/Simulink 实用教程——编程、计算与仿真
清华大学出版社计算机分社盛东亮主任的建议。
本书的写作经历了“从薄到厚,再从厚到薄”的演变过程。经过十几年的努力,从
初2004 年400 多页的教材扩展成1700 多页的系列著作,再浓缩成这部300 多页的教程。在
本书的写作中兼顾MATLAB 编程、科学运算和系统仿真三方面的内容。与早期教材相比,
大篇幅增加了介绍MATLAB 编程方面的内容,在充分介绍传统编程方法之外,还介绍了面
向对象的编程技术。弱化了科学运算问题求解的内容,但保留了传统的科学运算问题的主
线,保留了很多作者原创的内容,更有效地求解各个数学分支的科学运算问题。本书增加了
Simulink 建模与仿真的内容,为读者开展系统仿真研究奠定必要的基础。
在本书的基础上,作者专门录制了全新的MOOC 课程“MATLAB 科学运算与仿真”,
并准备了全套的PPT 教学材料和其他教学资源,在书中给出了相应视频与教学材料的二维
码,适合读者自学。此外,作者录制的一流本科课程“现代科学运算——MATLAB 语
言与应用”的教学视频同样适合于本教材的线上学习。
本书即将出版之时,特别感谢我的导师任兴权教授和Derek Atherton 教授,是他们将
作者引入系统仿真与MATLAB 编程的乐园,开始了饶有兴趣且富有挑战的学术、教学生涯。
感谢前辈同事徐心和教授的提携、关照与具体指导,并为我后来的自主发展提供了宽松的条
件,使我能够将大量时间用于教学探讨与教材建设。
特别感谢团队的同事潘峰博士对课程建设、教材建设与教学团队建设中的出色贡献和
所做的具体工作。感谢美国加利福尼亚大学Merced 分校的陈阳泉教授二十多年来的真诚合
作及诸多问题的有意义的探讨。作者几十年来与同事、学生、朋友、同行甚至网友的有益交
流,其中有些内容已经形成了本书的重要素材,在此一并感谢。本书的出版还得到了美国
MathWorks 公司图书计划的支持,在此表示谢意。
后但同样重要的,我衷心感谢相濡以沫的妻子杨军教授,她数十年如一日的无私关怀
是我坚持研究、教学与写作工作的巨大动力。感谢女儿薛杨在文稿写作、排版与视频转换中
给出的建议和具体帮助。
薛定宇
2021 年3 月11 日
|
|