具体描述
| 图书名称: | MATLAB程序设计与应用(第3版) |
| 作 者: | 刘卫国
|
| 定价: | 42.00 |
| ISBN号: | 9787040478136 |
| 出版社: | 高等教育出版社
|
| 开本: | 16 |
| 装帧: | 平装 |
| 出版日期: | 2017-8-1 |
| 印刷日期: | 2017-8-1 |
《MATLAB程序设计与应用(第3版)/教育部大学计算机课程改革项目规划教材》特色: ●数学方法、算法原理与MATLAB的功能实现并重,帮助读者更好地理解MATLAB。 ●理论与实践相结合,突出MATLAB在有关学科领域的实际应用,贴近读者需要。 ●结构合理,体系得当,脉络清晰,循序渐进,符合认知规律。 ●配套的教学资源丰富,教学适用性强,且能满足读者个性化学习需求。 |
《MATLAB程序设计与应用(第3版)/教育部大学计算机课程改革项目规划教材》是对普通高等教育“十一五”国家级规划教材 《matlab程序设计与应用(第3版)教育部大学计算机课程改革项目规划教材》分为基础篇、应用篇和实验篇。基础篇包括matlab系统环境、matlab数据及其运算、matlab矩阵处理、matlab程序流程控制、matlab绘图、matlab,数据分析与多项式计算、matlab数值微分与积分、matlab方程数值求解、matlab符号计算。应用篇包括matlab图形对象句柄、matlab图形用户界面设计、matlabsimulink系统仿真、matlab外部程序接口技术、matlab的应用。实验篇包括17个实验,每个实验都和课程学习内容紧密配合,以方便读者上机练习。 《matlab程序设计与应用(第3版)教育部大学计算机课程改革项目规划教材》可作为高等学校各专业大学生或研究生学习的教材,也可供广大工程技术与科研人员阅读参考。 | |
| 刘卫国博士,中南大学信息科学与工程学院教授,教育部文科计算机基础教学指导分委员会委员,美国加州大学圣地亚哥分校(ucsd)访问学者。主要研究领域为网络与信息安全、软件工程、智能信息处理、计算机教育。先后主持完成省部级教学改革项目10余项,获省级教学成果二等奖1项、三等奖1项,省级普通高等学校优秀教材奖1项,全国高校出版社****书一等奖1项,茅以升铁路教育专项奖(教学专项奖)1项。主编出版计算机系列教材30余部,其中普通高等教育“十一五”国家级规划教材3部。 |
引言 在这个数据驱动的时代,掌握一门强大的数值计算和可视化工具,能够极大地提升我们在科学研究、工程实践以及数据分析领域的效率与深度。MATLAB,作为一款广泛应用于工程、科学和金融领域的计算平台和编程语言,以其易学易用、功能强大的特点,成为了许多专业人士的首选。本书旨在为读者提供一个系统、深入的学习MATLAB的途径,从基础概念到高级应用,帮助读者全面掌握MATLAB的强大功能,并将其灵活运用到实际问题解决中。 第一章 MATLAB基础 本章将带领读者走进MATLAB的世界,从安装与环境配置开始,逐步熟悉MATLAB的集成开发环境(IDE)。我们将详细介绍MATLAB的工作空间、命令窗口、脚本编辑器、图形窗口等核心组成部分,以及如何进行基本的变量赋值、数据类型识别和操作。 1.1 MATLAB的安装与启动 详细指导用户根据操作系统(Windows, macOS, Linux)下载、安装MATLAB R20XXb(或其他版本)的过程,包括注册、激活等关键步骤。 介绍MATLAB的启动方式,以及首次启动时会看到的初始界面布局。 1.2 MATLAB集成开发环境(IDE) 命令窗口 (Command Window): 介绍命令窗口作为即时命令执行和结果显示区域的功能,演示直接输入命令并观察输出。 编辑器 (Editor): 讲解编辑器用于编写、调试和保存MATLAB脚本(.m文件)的重要性,介绍语法高亮、自动补全、代码折叠等实用功能。 工作空间 (Workspace): 解释工作空间用于显示当前已定义的变量及其值,以及如何查看、修改和删除变量。 当前文件夹 (Current Folder): 介绍当前文件夹的作用,它是MATLAB查找和执行文件的默认路径,以及如何切换当前文件夹。 命令历史 (Command History): 演示如何查看和重复执行之前输入的命令。 帮助浏览器 (Help Browser): 引导读者如何使用帮助浏览器查找函数、获取详细的函数说明和示例。 1.3 基本数据类型与变量 数值类型: 详细介绍MATLAB中常见的数值类型,如单精度浮点数(single)、双精度浮点数(double)、整数类型(int8, int16, int32, int64, uint8, uint16, uint32, uint64)及其存储范围和精度。 字符与字符串: 讲解如何表示字符(char)和字符串(string),以及它们之间的转换。 逻辑类型: 介绍逻辑值(true/false)及其在条件判断中的应用。 变量命名规则: 明确变量命名的规范,包括首字母、允许的字符以及大小写敏感性。 变量的创建与赋值: 通过实例演示如何创建变量并为其赋值,包括标量、向量和矩阵的初始化。 1.4 基本数学运算 算术运算符: 介绍加(+)、减(-)、乘()、除(/)、乘方(^)等运算符,并区分矩阵乘法()和点乘(.)。 关系运算符: 讲解大于(>)、小于(<)、等于(==)、不等于(~=)、大于等于(>=)、小于等于(<=)等关系运算符,以及它们在逻辑判断中的作用。 逻辑运算符: 介绍逻辑与(&)、逻辑或(|)、逻辑非(~)以及短路逻辑运算符(&&, ||)。 运算符优先级: 解释MATLAB中运算符的优先级规则,以及如何使用括号改变运算顺序。 1.5 MATLAB中的数据结构 向量: 详细介绍行向量和列向量的创建方法(使用方括号、冒号运算符、linspace, logspace等),以及向量的基本操作(索引、切片、元素级运算)。 矩阵: 讲解如何创建矩阵(输入、转置、利用向量创建),矩阵的索引(单个元素、子矩阵),以及矩阵的常见操作(加、减、乘、除、转置、求逆、行列式)。 多维数组: 简要介绍MATLAB支持多维数组,以及其基本访问方式。 第二章 脚本编程与控制流 本章将深入讲解如何在MATLAB中编写脚本,实现更复杂的计算任务,并学习如何利用控制流语句来控制程序的执行顺序,使程序更具灵活性和智能化。 2.1 MATLAB脚本 (.m文件) 的编写与执行 脚本的创建与保存: 详细演示如何在编辑器中创建新的脚本文件,并为其命名保存。 脚本的执行: 讲解如何在命令窗口中直接输入脚本名执行,或通过“运行”按钮执行。 注释的添加: 强调添加注释的重要性,介绍单行注释(%)和多行注释(%{ %})的使用方法,以及如何编写清晰、有用的注释。 2.2 函数的定义与调用 内置函数: 介绍MATLAB丰富的内置函数库,例如 `sin()`, `cos()`, `sqrt()`, `exp()`, `log()`, `plot()` 等,并演示其调用方式。 自定义函数: 函数文件的创建: 讲解如何创建自定义函数文件(以 `function` 关键字开头)。 函数语法: 详细介绍函数定义的基本语法:`function [output_args] = function_name(input_args)`。 输入参数与输出参数: 解释输入参数(input_args)的作用,以及如何定义和返回一个或多个输出参数(output_args)。 局部变量与全局变量: 区分局部变量(函数内部定义的变量)和全局变量(需要使用 `global` 关键字声明)的范围。 匿名函数: 介绍匿名函数的创建及其应用场景,例如作为其他函数的参数。 2.3 条件控制语句 if-elseif-else 语句: 详细讲解 `if` 语句的语法结构,如何根据条件执行不同的代码块,包括单分支、双分支和多分支的判断。 switch-case 语句: 介绍 `switch` 语句,尤其适用于对同一变量进行多个离散值的判断。 2.4 循环控制语句 for 循环: 讲解 `for` 循环的语法,适用于已知循环次数的场景,演示遍历向量、矩阵的常用方法。 while 循环: 介绍 `while` 循环的语法,适用于循环次数不确定的场景,强调循环终止条件的设置,防止死循环。 break 和 continue 语句: 讲解 `break` 语句用于提前终止循环,`continue` 语句用于跳过当前迭代,进入下一次迭代。 2.5 结构体 (Structs) 与元胞数组 (Cell Arrays) 结构体: 介绍结构体如何存储不同类型的数据,并为每个数据项指定名称,演示结构体的创建、访问和修改。 元胞数组: 讲解元胞数组是一种可以存储不同类型数据的容器,每个元素被称为一个“元胞”,演示元胞数组的创建、访问(使用花括号 `{}`)和修改。 第三章 数据可视化 数据可视化是理解和传达数据信息的重要手段。本章将重点介绍MATLAB强大的绘图功能,帮助读者将计算结果以直观、清晰的图形形式呈现出来。 3.1 二维图形绘制 plot() 函数: 详细讲解 `plot()` 函数的基本用法,绘制折线图,包括指定 x 轴和 y 轴数据。 图形修饰: 添加标题、轴标签和图例: 使用 `title()`, `xlabel()`, `ylabel()`, `legend()` 函数丰富图形信息。 设置线型、颜色和标记: 介绍如何通过参数控制线条的样式(例如 `'-'`, `'--'`, `':'`)、颜色(例如 `'r'`, `'g'`, `'b'`)和标记符号(例如 `'o'`, `'+'`, `''`)。 设置坐标轴范围与刻度: 使用 `xlim()`, `ylim()`, `xticks()`, `yticks()` 等函数调整坐标轴的显示。 网格线: 使用 `grid on`/`grid off` 控制网格线的显示。 多条曲线绘制: 演示如何在同一坐标系中绘制多条曲线,使用 `hold on`/`hold off` 命令。 其他二维绘图函数: `scatter()`: 绘制散点图。 `bar()`: 绘制柱状图。 `pie()`: 绘制饼图。 `hist()`: 绘制直方图。 `stem()`: 绘制阶梯图。 3.2 三维图形绘制 mesh() 和 surf() 函数: 介绍 `mesh()`(网格图)和 `surf()`(曲面图)函数,用于绘制三维网格和曲面。 三维坐标轴与视角: 演示如何使用 `xlabel()`, `ylabel()`, `zlabel()` 添加三维轴标签,以及使用 `view()` 函数调整观察视角。 等高线图: 介绍 `contour()` 函数绘制等高线图,并与 `surf()` 或 `mesh()` 结合使用。 三维散点图: `scatter3()` 函数。 3.3 图形窗口的管理 figure() 函数: 演示如何创建新的图形窗口,以及如何在一个图形窗口中创建多个子图(使用 `subplot()` 函数)。 图形的导出与保存: 讲解如何将绘制好的图形保存为多种格式(如 .fig, .png, .jpg, .eps),以及保存时需要注意的选项。 第四章 数值计算与矩阵运算 MATLAB的核心优势在于其强大的数值计算能力,尤其是在矩阵运算方面。本章将深入探讨MATLAB在数值计算和矩阵操作方面的各种高级技巧。 4.1 线性代数运算 矩阵求逆: `inv()` 函数。 矩阵秩: `rank()` 函数。 行列式: `det()` 函数。 特征值与特征向量: `eig()` 函数。 矩阵分解: LU分解: `lu()` 函数。 QR分解: `qr()` 函数。 奇异值分解 (SVD): `svd()` 函数。 方程组求解: 演示如何使用矩阵除法(`` 和 `/`)高效求解线性方程组。 4.2 数值积分与微分 数值微分: `diff()` 函数:计算离散数据的差分。 `gradient()` 函数:计算多维数组的梯度。 数值积分: `trapz()` 函数:使用梯形法则进行数值积分。 `integral()` 函数(或 `quad` 系列函数,视MATLAB版本而定):用于更精确的数值积分。 4.3 曲线拟合与插值 多项式拟合: `polyfit()` 和 `polyval()` 函数。 样条插值: `spline()` 和 `interp1()` 函数。 最小二乘法拟合: 结合矩阵运算实现。 4.4 优化问题 无约束优化: `fminunc()` 函数。 有约束优化: `fmincon()` 函数。 最小化函数: `fminbnd()` 函数。 4.5 信号处理基础 傅里叶变换: `fft()` 和 `ifft()` 函数,用于时域和频域的转换。 滤波: 简要介绍滤波器设计与应用。 4.6 随机数生成 常用分布的随机数: `rand()`, `randn()`, `randi()` 等函数。 随机数生成器的设置: `rng()` 函数,用于控制随机数序列的可复现性。 第五章 Simulink仿真环境 Simulink是MATLAB的一个重要组成部分,它提供了一个图形化的环境,用于模拟、设计和测试动态系统。本章将介绍Simulink的基本概念、操作以及应用。 5.1 Simulink概述与入门 Simulink的特点与优势: 强调其图形化建模、模块化设计、可视化仿真等特性。 启动Simulink: 演示如何从MATLAB命令窗口或主页菜单启动Simulink。 创建新的Simulink模型: 介绍模型编辑器的基本界面,包括库浏览器、画布、菜单栏等。 5.2 Simulink基本模块与操作 常用模块库: Sources (信号源): `Sine Wave`, `Constant`, `Step`, `Pulse Generator` 等。 Sinks (信号终点): `Scope`(示波器)、`To Workspace`(写入工作空间)、`Display`(显示器)等。 Continuous (连续): `Integrator`, `Derivative`, `Transfer Fcn` 等。 Discrete (离散): `Discrete Transfer Fcn`, `Zero-Order Hold` 等。 Math Operations (数学运算): `Add`, `Subtract`, `Product`, `Gain` 等。 Connections (连接): `Mux`, `Demux`, `Bus Creator`, `Bus Selector` 等。 模块的添加、连接与删除: 详细演示如何在画布上拖拽模块,并使用连线连接模块之间的信号流。 参数设置: 讲解如何双击模块以修改其参数。 5.3 模型仿真与运行 仿真类型: 介绍不同的仿真器(如 ODE solvers),以及它们的工作原理。 仿真参数设置: 讲解如何设置仿真时间、步长、精度等关键参数。 运行仿真: 演示如何点击“运行”按钮执行仿真,并观察仿真结果。 数据可视化: 介绍 `Scope` 模块如何实时显示信号波形,以及如何将数据导出到MATLAB工作空间进行后续分析。 5.4 常见仿真案例 一阶/二阶系统响应: 搭建简单的RC电路或RLC电路模型,观察其瞬态响应。 PID控制器仿真: 搭建包含PID控制器的闭环系统,观察其控制效果。 状态空间模型仿真: 介绍如何使用状态空间方程来描述系统,并在Simulink中进行仿真。 第六章 MATLAB高级应用与技巧 本章将介绍一些MATLAB的高级特性和应用,帮助读者更高效、更灵活地使用MATLAB解决复杂问题,并为进一步的学习打下基础。 6.1 MEX 文件编程 MEX文件的概念与作用: 介绍MEX文件作为连接C/C++、Fortran等编译型语言与MATLAB的接口,用于提高计算性能。 MEX文件的创建与编译: 简要介绍如何编写MEX函数,以及使用 `mex` 命令进行编译。 6.2 MATLAB Compiler MATLAB Compiler的作用: 讲解如何将MATLAB程序打包成独立的应用程序,供没有MATLAB许可证的用户运行。 打包过程: 简要介绍使用MATLAB Compiler打包的基本流程。 6.3 性能优化技巧 向量化 (Vectorization): 强调避免使用显式循环,充分利用MATLAB的向量和矩阵运算能力。 预分配数组: 解释预分配内存可以显著提高代码运行速度。 选择高效的函数: 讲解在不同的场景下选择合适的内置函数。 性能分析工具: 简要介绍MATLAB的性能分析器(Profiler)。 6.4 Simulink高级功能 Stateflow: 介绍Stateflow在设计状态机和流程逻辑方面的应用。 Simulink Coder: 讲解如何从Simulink模型生成C/C++代码。 6.5 MATLAB与其他工具的集成 导入/导出数据: 讲解如何读写Excel、CSV、TXT等常见文件格式,以及与数据库的交互。 调用外部程序: 介绍如何通过MATLAB调用系统命令行工具。 结语 通过对本书内容的学习,读者将能够熟练掌握MATLAB的基本操作、编程技巧、数据可视化方法,以及Simulink仿真环境的应用。无论您是从事科学研究、工程开发,还是数据分析工作,MATLAB都将成为您强大的助手。希望本书能帮助您开启一段高效、富有成效的MATLAB学习之旅,并在您的工作和学习中发挥重要作用。