本书为北京理工大学“十四五”规划教材、“新型工业化·科学计算与系统建模仿真系列”之一。本书简要介绍了科学计算语言的基本情况和发展历程,讲述了科学计算语言Julia的起源、特性和程序开发过程,重点讲解了Julia的基本数据类型及运算、数组与多维数组、函数、流程控制、模块及数据可视化,详细介绍了Syslab工具箱的组成和功能,演示了Syslab环境下初等数学、线性代数、数据插值、曲线拟合和数理统计等科学计算实例,*后介绍了MWORKS及其产品体系,分析了Syslab系统组成及功能,利用一阶倒立摆系统和四旋翼无人机的路径跟踪两个综合应用案例演示了Syslab和Sysplorer系统建模与协同仿真。本书共8章,内容包括Julia介绍及MWORKS简介、Syslab入门、Julia的基础语法、Julia进阶、科学计算数据可视化、Syslab工具箱应用、Syslab的科学计算实例和MWORKS综合应用案例。每章正文之前有内容提要和本章重点,每章正文之后有本章小结和习题,以满足教师教学和学生自学的需要。本书可作为高等学校机械电子、控制工程、航空宇航、光电通信、电子信息、计算机等专业本科生和研究生的教学用书,也可作为相关专业科研人员、工程技术人员的参考书。
许承东,北京理工大学宇航学院教授、博士生导师,长期从事飞行器总体设计、数字化设计与制造和系统建模仿真等领域的科研与教学工作,作为项目负责人承担国家科技攻关项目、国家高技术研究发展计划(863计划)重点项目、国家制造业高质量发展专项、国家自然科学基金面上项目和国防预研项目等十余项*家级科研项目,在飞行器设计和系统建模仿真技术领域积累了丰硕成果,培养博士研究生15人,硕士研究生50余人,获省部级科技进步奖2项,主编出版专著1部、教材4部,发表SCI/EI收录论文60余篇,获授权发明专利10余项,软件著作权4项。
*1章 Julia及MWORKS简介 1
1.1 Julia 2
1.1.1 科学计算语言概述 2
1.1.2 Julia简介 4
1.1.3 Julia的优势 5
1.1.4 Julia与其他科学计算语言的差异 5
1.2 Julia Hello World 8
1.2.1 直接安装并运行Julia 8
1.2.2 使用MWORKS运行Julia 10
1.3 MWORKS简介 10
1.3.1 MWORKS设计与验证 11
1.3.2 MWORKS产品体系 12
1.4 Syslab功能简介 14
1.4.1 交互式编程环境 14
1.4.2 科学计算函数库 14
1.4.3 计算数据可视化 15
1.4.4 库开发与管理 16
1.4.5 科学计算与系统建模的融合 16
1.4.6 中文帮助系统 17
本章小结 17
习题1 17
*2章 Syslab入门 18
2.1 Syslab安装及界面介绍 19
2.1.1 Syslab的下载与安装 19
2.1.2 Syslab的工作界面 21
2.2 Julia REPL环境的几种模式 26
2.2.1 Julia模式 26
2.2.2 Package模式 27
2.2.3 Help模式 27
2.2.4 Shell模式 28
2.3 Syslab与Sysplorer的软件集成 28
2.3.1 Syslab调用Sysplorer API 28
2.3.2 Sysplorer调用Syslab Function模块 30
本章小结 31
习题2 31
第3章 Julia的基础语法 32
3.1 基本数据类型 33
3.1.1 变量 33
3.1.2 整数与浮点数 35
3.1.3 复数与有理数 38
3.1.4 字符与字符串 39
3.2 数组 45
3.2.1 数组构造与类型 45
3.2.2 数组的基础函数 49
3.2.3 索引与链接 52
3.3 集 合容器 55
3.3.1 元组 55
3.3.2 字典 56
3.3.3 表 58
3.3.4 集 合属性与操作 61
3.4 数学运算与初等函数 63
3.4.1 算术运算函数 63
3.4.2 逻辑运算函数 68
3.4.3 其他数学函数 68
3.4.4 数学运算符 69
3.5 流程控制 73
3.5.1 复合表达式 73
3.5.2 条件表达式 74
3.5.3 循环表达式 75
3.5.4 短路求值 78
3.5.5 异常处理 78
本章小结 80
习题3 80
第4章 Julia进阶 82
4.1 模块 83
4.1.1 创建模块 83
4.1.2 加载模块 85
4.1.3 导出列表 86
4.1.4 调用模块的路径 87
4.1.5 预编译机制 88
4.2 类型系统 89
4.2.1 类型声明 90
4.2.2 抽象类型 91
4.2.3 原始类型 92
4.2.4 复合类型 93
4.2.5 参数类型 95
4.2.6 类型运算 98
4.2.7 多重分派 99
4.3 元编程 100
4.3.1 程序表示 100
4.3.2 表达式与求值 101
4.3.3 代码生成 103
4.3.4 宏 104
4.3.5 非标准字符串字面量 106
4.3.6 生成函数 106
4.3.7 运行时反射 107
4.4 外部语言调用 108
4.4.1 C/C++ 108
4.4.2 Python 112
本章小结 114
习题4 114
第5章 科学计算数据可视化 116
5.1 线图 117
5.1.1 简单线图 117
5.1.2 对数图 127
5.1.3 函数图 129
5.2 离散数据图与数据分布图 131
5.2.1 条形图 131
5.2.2 针状图 134
5.2.3 直方图 135
5.2.4 散点图 139
5.2.5 饼图与热图 142
5.3 曲面图、网格图与特殊曲线图 145
5.3.1 曲面图与网格图 145
5.3.2 多边形 148
5.3.3 等高线图 150
5.3.4 向量场 154
5.4 极坐标图 158
5.4.1 极坐标数据图 158
5.4.2 极坐标区设置 162
5.5 标签与注释 166
5.5.1 标签 166
5.5.2 注释 170
5.6 坐标区外观 176
5.6.1 坐标区范围横纵比 176
5.6.2 网格线、刻度值和标签 180
5.6.3 多图绘制 188
5.6.4 清除或创建坐标区 191
5.7 颜色图与三维场景控制 193
5.7.1 颜色图与颜色空间 193
5.7.2 三维场景控制 197
5.8 面向自定义图形的对象设置 199
5.8.1 图像对象属性 200
5.8.2 图像对象标识 201
5.8.3 图像对象清空与删除 202
本章小结 203
习题5 203
第6章 Syslab工具箱应用 205
6.1 Syslab工具箱简介 206
6.1.1 基础工具箱/数学工具箱/图形工具箱 206
6.1.2 图像工具箱 206
6.1.3 地理图工具箱 207
6.1.4 符号数学工具箱 207
6.1.5 拟合工具箱 208
6.1.6 信号处理工具箱 209
6.1.7 通信工具箱 211
6.1.8 DSP系统工具箱 213
6.1.9 控制系统工具箱 214
6.1.10 优化工具箱 216
6.1.11 全局优化工具箱 217
6.1.12 统计工具箱 217
6.2 Syslab工具箱实例分析 218
6.2.1 直流伺服电动机转速PID控制 219
6.2.2 语音信号处理 223
本章小结 234
习题6 235
第7章 Syslab的科学计算实例 236
7.1 方程组求解 237
7.1.1 线性方程组求数值解 237
7.1.2 非线性方程组求数值解 239
7.1.3 线性方程组求解析解 240
7.2 插值与拟合 242
7.2.1 插值问题 242
7.2.2 一维插值 247
7.2.3 多维插值 251
7.2.4 曲线拟合 255
7.3 概率统计分布计算 262
7.3.1 随机变量的数字特征 262
7.3.2 概率统计分布计算 267
7.3.3 假设检验 271
7.4 优化问题 273
7.4.1 线性规划 273
7.4.2 非线性规划 274
7.4.3 *大值*小化 277
7.4.4 全局优化 278
本章小结 281
习题7 282
第8章 MWORKS综合应用案例 283
8.1 一阶倒立摆系统 284
8.1.1 一阶倒立摆系统介绍 284
8.1.2 一阶倒立摆系统在Syslab中的控制律设计 285
8.1.3 一阶倒立摆系统在Sysplorer中的物理模型搭建 288
8.1.4 综合Syslab与Sysplorer的一阶倒立摆系统的模型仿真分析 290
8.2 四旋翼无人机的路径跟踪 293
8.2.1 四旋翼无人机的飞行原理 293
8.2.2 四旋翼无人机的数学模型 297
8.2.3 基于MWORKS的四旋翼无人机建模 303
8.2.4 基于MWORKS的路径跟踪仿真 309
本章小结 311
习题8 312
参考文献 313