新書推薦:
《
药食同源中药鉴别图典
》
售價:HK$
67.0
《
设计中的比例密码:建筑与室内设计
》
售價:HK$
87.4
《
冯友兰和青年谈心系列:看似平淡的坚持
》
售價:HK$
55.8
《
汉字理论与汉字阐释概要 《说解汉字一百五十讲》作者李守奎新作
》
售價:HK$
76.2
《
汗青堂丛书144·决战地中海
》
售價:HK$
168.0
《
逝去的武林(十周年纪念版 武学宗师 口述亲历 李仲轩亲历一九三零年代武人言行录)
》
售價:HK$
54.9
《
唐代冠服图志(百余幅手绘插画 图解唐代各类冠服 涵盖帝后 群臣 女官 士庶 军卫等 展现唐代社会风貌)
》
售價:HK$
87.4
《
知宋·宋代之科举
》
售價:HK$
99.7
|
編輯推薦: |
薛定宇教授大讲堂(卷Ⅰ):MATLAB程序设计
薛定宇教授大讲堂(卷Ⅱ):MATLAB微积分运算
薛定宇教授大讲堂(卷Ⅲ):MATLAB线性代数运算
薛定宇教授大讲堂(卷Ⅳ):MATLAB最优化计算
薛定宇教授大讲堂(卷Ⅴ):MATLAB微分方程求解
薛定宇教授大讲堂(卷Ⅵ):Simulink建模与仿真
|
內容簡介: |
MATLAB语言是进行科学计算的利器。本书系统地论述了MATLAB功能及使用MATLAB语言编程的方法。全书内容包括MATLAB语言的常用数据结构和语句结构、矩阵的代数运算、**函数的计算方法与数据处理的方法、MATLAB语言的流程控制结构与应用、MATLAB函数编写与调试,以及MATLAB的科学可视化方法。此外,本书还介绍了MATLAB语言的接口设计、面向对象的程序设计方法与图形用户界面设计方法等。 本书可作为一般读者学习和掌握MATLAB语言的工具图书,也可以作为高等学校理工科各类专业的本科生与研究生学习计算机数学语言(MATLAB)的教材。
|
關於作者: |
薛定宇 分别在沈阳工业大学、东北大学和英国Sussex大学获得学士(1985年)、硕士(1988年)和博士学位(1992年),1997年起任东北大学信息学院教授。深耕于计算机在数学与自动控制学科的应用,主持了国家精品课程建设,并于1996年在清华大学出版社出版《控制系统计算机辅助设计——MATLAB与应用》,该教材被评为国家级精品教材,被认为是国内MATLAB应用领域具有深远影响的一部图书,为MATLAB在国内高校教学与科研中的普及起到了巨大的作用。先后被评为辽宁省教学名师、辽宁省优秀教师,获得国家级教学成果二等奖、中国自动化学会教育教学成果一等奖、辽宁省教学成果一等奖等奖励。其主讲的“控制系统仿真与CAD”课程被评为国家级精品课程、国家级精品资源共享课程;主讲的“现代科学运算——MATLAB语言与应用”课程被评为首批国家级一流本科课程,配套录制的全新慕课课程均上线于爱课程与中国大学MOOC(慕课)网站。
|
目錄:
|
第1章 计算机数学语言概述
1.1 数学问题计算机求解概述1
1.1.1 为什么要学习计算机数学语言· 1
1.1.2 数学问题的解析解与数值解· 5
1.1.3 数学运算问题软件包发展概述· 6
1.1.4 常规计算机语言的局限性 7
1.2 计算机数学语言简介 9
1.2.1 计算机数学语言的出现 9
1.2.2 有代表性的计算机数学语言· 10
1.3 科学运算问题的三步求解方法 10
本章 习题 13
第2章 MATLAB语言程序设计基础 15
2.1 MATLAB命令窗口与操作· 17
2.1.1 MATLAB的命令窗口· 17
2.1.2 MATLAB的工作路径设置 18
2.1.3 注释语句· 19
2.1.4 MATLAB的工作空间与管理 20
2.1.5 MATLAB的其他辅助工具 20
2.1.6 联机帮助系统 21
2.2 MATLAB基本操作命令· 23
2.2.1 变量名命名规则 23
2.2.2 保留的常数· 23
2.2.3 显示格式的设置 25
2.2.4 底层操作系统命令 25
2.2.5 MATLAB的人机交互函数 26
2.3 常用数据结构· 26
2.3.1 数值型数据· 26
2.3.2 符号型数据· 28
2.3.3 符号型函数· 30
2.3.4 任意符号型矩阵的生成 30
2.3.5 任意矩阵函数生成 31
2.3.6 整型变量与逻辑变量 32
2.3.7 数据结构类型的识别 32
2.3.8 矩阵的维数与长度 32
2.3.9 属性验证函数 33
2.4 字符串数据结构· 34
2.4.1 一般字符串的表示 34
2.4.2 字符串的处理方法 35
2.4.3 字符串的转换与读写方法 36
2.4.4 字符串命令的执行 38
2.4.5 MuPAD 接口函数的编写· 38
2.4.6 字符串的双引号描述方法 39
2.5 其他常用数据结构 39
2.5.1 多维数组· 39
2.5.2 单元数组· 40
2.5.3 表格数据· 41
2.5.4 结构体· 43
2.5.5 其他数据结构 44
2.6 MATLAB 的基本语句结构· 44
2.6.1 直接赋值语句 45
2.6.2 函数调用语句 45
2.6.3 多样的函数调用机制 46
2.6.4 冒号表达式· 46
2.6.5 子矩阵的提取 47
2.6.6 等间距行向量的生成 47
2.7 数据文件的读取与存储 48
2.7.1 数据文件的读取与存储命令· 48
2.7.2 文件读写的底层方法 49
2.7.3 Excel文件的读取与存储· 50
本章 习题 52
第3章 基本数学运算· 54
3.1 矩阵的算术运算· 55
3.1.1 矩阵的转置、翻转与旋转· 55
3.1.2 矩阵的四则运算 56
3.1.3 复数矩阵及其变换 57
3.1.4 矩阵乘方与开方 58
3.1.5 矩阵的点运算 59
3.2 矩阵的逻辑运算与比较运算 60
3.2.1 矩阵的逻辑运算 60
3.2.2 矩阵的比较运算 61
3.2.3 矩阵元素的查询命令 61
3.2.4 属性判定语句 62
3.2.5 非零元素个数统计 63
3.3 超越函数的计算· 64
3.3.1 指数函数与对数函数的计算· 64
3.3.2 三角函数的计算 65
3.3.3 反三角函数的计算 66
3.3.4 矩阵的超越函数 67
3.4 符号表达式的化简与变换 69
3.4.1 多项式的运算 69
3.4.2 多项式矩阵的计算 70
3.4.3 三角函数的变换与化简 71
3.4.4 符号表达式的化简 72
3.4.5 符号表达式的变量替换 73
3.4.6 符号运算结果的转换 74
3.4.7 数学归纳法的实现 75
3.5 基本数据运算· 76
3.5.1 数据的取整与有理化运算 76
3.5.2 向量的排序、最大值与最小值 77
3.5.3 数据的均值、方差与标准差· 79
3.5.4 质因数与质因式 80
3.5.5 排列与组合· 81
3.5.6 网格数据的生成 83 本章 习题 84
第4章 MATLAB语言的流程结构 88
4.1 循环结构· 89
4.1.1 for 循环结构 89
4.1.2 while 循环结构 91
4.1.3 迭代方法的循环实现 92
4.1.4 递推方法与实现 93
4.1.5 循环结构的辅助语句 95
4.1.6 冗长符号表达式的完全显示· 97
4.2 条件转移结构· 98
4.2.1 简单的条件转移结构 98
4.2.2 条件转移结构的一般形式 98
4.2.3 流程控制的应用——方程的整数解· 100
4.3 向量化编程· 101
4.3.1 向量化编程实现 101
4.3.2 方程整数解的向量化方法 103
4.3.3 分段函数的向量化表示 104
4.4 开关结构· 107
4.5 试探结构· 109 本章 习题 111
第5章 函数编写与调试 114
5.1 MATLAB 的脚本程序· 115
5.2 MATLAB 语言函数的基本结构 116
5.2.1 函数的基本结构 116
5.2.2 函数名的命令规则 118
5.2.3 函数编写举例 118
5.2.4 变元的检测段落 122
5.3 函数编写的技巧· 124
5.3.1 递归调用· 124
5.3.2 可变输入输出个数的处理 126
5.3.3 输入变元的容错处理 128
5.3.4 全局变量· 129
5.3.5 存取MATLAB工作空间中的变量 130
5.3.6匿名函数与inline函数· 131
5.3.7 子函数与私有函数 133
5.3.8 驻留变量与锁定函数 134
5.4 MATLAB 程序的调试· 134
5.4.1 MATLAB 程序的跟踪调试 134
5.4.2 伪代码与代码保密处理 137
5.4.3 MATLAB 函数的排错· 138
5.5 MATLAB 实时编辑器· 138
5.5.1 实时文档编辑界面 139
5.5.2 建立一个简单的文档 139
5.5.3 嵌入代码的运行 140
5.5.4 在实时编辑器中嵌入对象 141
5.5.5 由LATEX描述数学公式· 143
5.5.6 实时编辑文档的输出 146 本章 习题 146
第6章 二维图形绘制· 149
6.1 二维曲线的绘制· 150
6.1.1 二元数据的曲线绘制 150
6.1.2 数学函数的曲线绘制 153
6.1.3 分段函数的曲线绘制 155
6.1.4 参数方程的曲线绘制 156
6.1.5 二维图形的标题处理 158
6.1.6 多纵轴曲线的绘制 159
6.2 图形修饰· 161
6.2.1 基于命令的修饰方法 161
6.2.2 利用界面的修饰方法 164
6.2.3LATEX支持的修饰命令· 165
6.2.4 数学公式叠印与宏包设计 165
6.3 其他二维图形绘制语句 166
6.3.1 极坐标曲线的绘制 166
6.3.2 离散信号的图形表示 169
6.3.3 直方图与饼图 170
6.3.4 填充图· 172
6.3.5 箱线图· 173
6.3.6 对数坐标图· 174
6.3.7 误差限图· 175
6.3.8 动态轨迹显示 175
6.3.9 二维动画的显示 176
6.4 图形窗口的操作与分割 177
6.4.1 图形窗口的操作 177
6.4.2 图形窗口的规范分割 178
6.4.3 图形窗口的任意分割 179
6.5 隐函数绘制及应用 180
6.5.1 二元隐函数的曲线绘制 181
6.5.2 曲线的光滑处理 183
6.5.3 二元联立方程的图解法 183
6.6 图像的显示与简单处理 185
6.6.1 图像的输入· 185
6.6.2 图像的编辑与显示 186
6.6.3 颜色空间转换 187
6.6.4 边缘检测· 187
6.6.5 直方图均衡化 187
6.7 MATLAB 图形的输出方法· 189
6.7.1 图形输出菜单与应用 189
6.7.2 打印预览对话框 190
6.7.3 图形输出命令 190
本章 习题 191
第7章 三维图形表示· 194
7.1 三维曲线绘制· 195
7.1.1 三维曲线绘制命令 195
7.1.2 已知数学函数的三维曲线绘制· 196
7.1.3 三维填充图· 197
7.1.4 三维直方图与饼图 198
7.1.5 条带图· 200
7.2 三维曲面绘制· 202
7.2.1 网格图与表面图 202
7.2.2 表面图的阴影与光照 206
7.2.3 其他表面图绘制 207
7.2.4 图像文件的三维表面图 209
7.2.5 已知函数的表面图 210
7.2.6 散点数据的表面图绘制 211
7.3 三维图形视角设置 212
7.3.1 视角的定义· 213
7.3.2 三视图的设置 214
7.3.3 任意视角的设置 214
7.4 其他三维绘图· 215
7.4.1 等高线· 215
7.4.2 曲面的交线· 216
7.4.3 矢量图· 219
7.4.4 三元隐函数的绘图 220
7.4.5 隐函数曲面的交线 221
7.4.6 参数方程的表面图 223
7.4.7 复变函数的三维表面图 224
7.4.8 球面与柱面· 225
7.4.9 Voronoi图与Delaunay剖分· 228
7.5 三维图形的特殊处理 230
7.5.1 三维曲面的旋转 230
7.5.2 坐标轴变换的三维曲面 232
7.5.3 三维图形的剪切 232
7.5.4 三维表面图贴面处理 233
7.6 四维图形绘制· 234
7.6.1 三维动画的制作与播放 234
7.6.2 切片图· 235
7.6.3 体视化界面· 236 本章 习题 238
第8章 MATLAB语言与其他语言的接口· 240
8.1 C语言环境下提供的MATLAB变量格式及函数概述· 241
8.1.1 编译程序的环境设置 241
8.1.2 Mex下的数据结构 242
8.1.3 Mex文件的结构 243
8.1.4 Mex文件的编写方法与步骤· 246
8.2 不同数据结构的Mex处理 248
8.2.1 不同类型输入输出变元的处理· 248
8.2.2 字符串变量的读写 249
8.2.3 多维数组的处理 250
8.2.4 单元数组的处理 251
8.2.5 MAT 文件的读写方法· 252
8.3 C程序中直接调用MATLAB函数 255
8.4 MATLAB 函数的独立程序转换 259
8.5 并行计算简介· 260 本章 习题 263
第9章 面向对象程序设计基础 264
9.1 面向对象编程的基本概念 265
9.1.1 类与对象的概念 265
9.1.2 类与对象数据结构 266
9.2 类的设计· 267
9.2.1 类的设计方法 268
9.2.2 类的定义与输入 268
9.2.3 类的显示· 270
9.3 重载函数的编写· 271
9.3.1 加法的重载函数编写 272
9.3.2 合并同类项的化简函数 273
9.3.3 减法重载函数 274
9.3.4 乘法重载函数 274
9.3.5 乘方运算重载函数 277
9.3.6 其他响应函数 278
9.3.7 域的赋值与提取 279
9.4 类的继承与扩展· 279
9.4.1 扩展类的定义与显示 280
9.4.2 ftf对象的连接重载函数 282
9.4.3 分数阶传递函数的频域分析· 285
本章 习题 287
第10章 图形用户界面设计技术· 289
10.1 MATLAB 语言图形界面编程基础· 290
10.1.1 MATLAB 图形界面中各对象的关系· 290
10.1.2 窗口对象及属性设置· 291
10.1.3 窗口的常用属性· 291
10.1.4 对象属性的读取与修改· 291
10.1.5 简易对话框 294
10.1.6 标准对话框及其调用· 296
10.2 MATLAB 图形界面设计基本组件
10.2.1 MATLAB 支持的基本组件· 300
10.2.2 组件的常用属性 · 301
10.2.3 组件句柄的获取 · 302
10.2.4 组件的另一种描述方法 303
10.3 App设计工具——AppDesigner303
10.3.1 App Designer 简介 303
10.3.2 界面设计方法简介· 305
10.3.3App的输入变元· 309
10.3.4多窗口App设计· 312
10.4 图形用户界面的高级技术· 314
10.4.1 选项卡组的使用· 314
10.4.2 菜单与工具栏的设计· 316
10.4.3 ActiveX 组件的嵌入与编程 317
10.5 程序打包与发布· 319
10.5.1 App转换为可执行文件· 319
10.5.2 工具箱的打包处理· 321
本章 习题 322
参考文献· 324
MATLAB 函数名索引· 326
术语索引· 333
|
內容試閱:
|
第2版前言
若干年以前,我看过科学巨匠钱学森先生在1985年论理工科数学课程改革的话,“数学课不是为了学生学会自己去求解,而是为了学生学会让电子计算机去求解,学会理解电子计算机给出的答案,知其所以然”。遗憾的是,几十年过去了,今天的理工科数学教材与课程并没有实现大师期望的改革,数学教材鲜有不同于以往的变化。我们在这方面的教学工作始于21世纪初,从某种意义上讲,
《薛定宇教授大讲堂》这套系列著作试图实现大师的理念,填补各门工科数学课程与计算机工具有机结合的空白。在写作这套系列著作时,我尽量沿用相应数学课程传统教材的知识点,将基于MATLAB的数值运算与解析运算有机地融入每个知识点,利用计算机工具直接求解数学问题。除了传统的数学知识点之外,还编写了大量的通用函数,直接求解在传统数学教材中被刻意回避的问题,并给出了传统数学教材无法求解问题的求解方法。
《薛定宇教授大讲堂》这部系列著作第1版出版已经几年的时间过去了,在这几年间,MATLAB编程与Simulink建模技术发生了很大的变化,而MATLAB求解科学运算问题的工具也越来越完备,有必要更新这部著作,融入新的内容,使其能发挥更大的作用。所以将陆续开始写作、出版这部系列著作的第2版。和第1版一样,本套系列著作的卷I侧重于MATLAB编程的系统介绍,卷VI侧重于Simulink建模与仿真的介绍,这两部著作将引入最新版本MATLAB、Simulink在程序设计与建模方面的最新进展。其余各卷对MATLAB版本的依赖程度没有那么是高,主要侧重于实现更多科学运算问题的求解方法介绍。
本书是系列著作的第I卷。在MATLAB使用的介绍中,本书增加了MATLAB命令窗口操作方法的介绍;在数据结构方面,增加了属性判定类语句的介绍等内容;在基本数学运算部分,增加了网格数据生成和数学归纳法实现等内容;在编程方法上,本书引入了更严格的函数编写格式,并引入了更好的输入变元检测段落,强化了向量化编程方面的介绍;在图形绘制上,增加了曲线精度控制、三维曲面填充、隐
.ii.薛定宇教授大讲堂(卷I):MATLAB程序设计(第2版)
函数曲面交线的绘制方法等新内容;本书给出了并行计算的入门知识与实例;在类与对象设计部分,补足了类运算的数学基础,简化了类运算的语句结构;在图形用户界面(或App)设计中,引入了AppDesigner,将其作为主要工具,介绍App的开发方法,还增加了多窗口设计等新内容。
从第2版开始,系列著作的版式也做了相应的变化。第2版统一采用双色印刷的方式出版。每章开始给出本章的内容提要。定义和定理等采用更醒目的版式统一处理,使得全书的可读性更强。
特别感谢团队的同事潘峰博士在相关课程建设、教材建设与教学团队建设中的出色贡献和所做的具体工作。感谢美国加利福尼亚大学Merced分校的陈阳泉教授二十多年来的真诚合作及对诸多问题的有意义的探讨。我几十年来与同事、学生、同行甚至网友有益交流,其中有些内容已经形成了本套系列著作的重要素材,在此一并表示感谢。本书的出版还得到了美国MathWorks公司图书计划的支持,在此表示谢意。
最后但同样重要的,我衷心感谢相濡以沫的妻子杨军教授,她数十年如一日的无私关怀是我坚持研究、教学与写作的巨大动力。感谢女儿薛杨在文稿写作、排版与视频转换中给出的建议和具体帮助。
薛定宇2022年10月
第1版前言
科学运算问题是每个理工科学生和科技工作者在课程学习、科学研究与工程实践中常常会遇到的问题,不容回避。对于非纯数学专业的学生和研究者而言,从底层全面学习相关数学问题的求解方法并非一件简单的事情,也不易得出复杂问题的解。所以,利用当前最先进的计算机工具,高效、准确、创造性地求解科学运算问题是一种行之有效的方法,尤其能够满足理工科人士的需求。
作者曾试图在同一部著作中叙述各个数学分支典型问题的直接求解方法,通过清华大学出版社出版了《高等应用数学问题的MATLAB求解》。该书从2004年出版之后多次重印再版,并于2018年出版了第4版,还配套发布了全新的MOOC课程. ,一直受到广泛的关注与欢迎。首次MOOC开课的选课人数接近14000人,教材内容也被数万篇期刊文章和学位论文引用。
从作者首次使用MATLAB语言算起,已经有30年的时间了,通过相关领域的研究、思考与一线教学实践,积累了大量的实践经验资料。这些不可能在一部著作中全部介绍,所以与清华大学出版社策划与编写了这套“薛定宇教授大讲堂”系列著作,系统深入地介绍基于MATLAB语言与工具的科学运算问题的求解方法。
本系列著作不是原来版本的简单改版,通过数十年的经验和资料积累,全面贯穿“再认识”的思想写作此书,深度融合科学运算数学知识与基于MATLAB的直接求解方法与技巧,力图更好地诠释计算机工具在每个数学分支的作用,帮助读者以不同的思维与视角了解工程数学问题的求解方法,创造性地得出问题的解。
本系列著作卷I可以作为学习MATLAB入门知识的教材与参考书,也为读者深入学习与熟练掌握MATLAB语言编程技巧,深度理解科学运算领域MATLAB的应用奠定一个坚实的基础。后续每一本书试图对应一个数学专题或一门数学课程进行展开。整套系列著作的写作贯穿“计算思维”的思想,深度探讨该数学专题的问题求解方法。本系列著作既适合于学完相应的数学课程之后,深入学习利用计
.MOOC网址:https://www.icourse163.org/learn/NEU-1002660001。
.iv.薛定宇教授大讲堂(卷I):MATLAB程序设计(第2版)
算机工具进行科学运算问题求解的方法与技巧,也可作为相应数学课程同步学习的伴侣,在学习相应课程理论知识的同时,侧重学习基于计算机的数学问题求解方法,从另一个角度观察、审视数学课程所学的内容,扩大知识面,更好地学习、理解并实践相应的数学课程。
本书是系列著作的卷I。本书侧重于MATLAB语言编程方法的介绍,首先介绍MATLAB语言的常用数据结构和语句结构,然后介绍矩阵的代数运算、超越函数的计算方法与数据处理的方法,并系统地介绍MATLAB的流程控制结构与应用、MATLAB函数编写与调试等编程技巧、MATLAB的科学可视化方法。本书还介绍MATLAB语言的接口设计、面向对象的程序设计方法与图形用户界面设计方法等,旨在为读者继续学习科学运算或其他领域的知识奠定较好的基础。
值此系列著作付梓之际,衷心感谢相濡以沫的妻子杨军教授,她数十年如一日的无私关怀是我坚持研究、教学与写作的巨大动力。
薛定宇2019年5月
|
|