MATLAB经典教程(全).ppt

上传人:tia****nde 文档编号:7751400 上传时间:2020-03-24 格式:PPT 页数:193 大小:4.26MB
返回 下载 相关 举报
MATLAB经典教程(全).ppt_第1页
第1页 / 共193页
MATLAB经典教程(全).ppt_第2页
第2页 / 共193页
MATLAB经典教程(全).ppt_第3页
第3页 / 共193页
点击查看更多>>
资源描述
MATLAB基础讲解 DEP MathphyofJUSTWangChengyi 2 MATLAB 1MATLAB简介 3 Matlab简介 在欧美各高等院校 Matlab已经成为线性代数 数值分析 数理统计 自动控制理论 数字信号处理 时间序列分析 动态系统仿真 图像处理等课程的基本教学工具 已成为大学生必须掌握的基本技能之一 Matlab功能强大 简单易学 编程效率高 深受广大科技工作者的欢迎 Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言 自1984年推向市场以来 历经二十多年的发展与竞争 现已成为国际公认的最优秀的工程应用开发环境 4 Matlab简介 Matlab MatrixLaboratory矩阵实验室 Matlab的发展 1980年 Moler教授用Fortran语言编写了集命令翻译 科学计算于一身的一套交互式软件系统 1984年 Moler等成立了TheMathWorks的公司 用C语言完全改写Matlab 并推出第一个商业版 增添图形图像处理 符号运算 以及与其他流行软件的接口功能 使得Matlab的功能越来越强大 到九十年代 在国际上30几个数学类科技应用软件中 Matlab在数值计算方面独占鳌头 5 目前 Matlab已成为世界顶尖的数学应用软件 以其强大的工程计算 算法研究 工程绘图 应用程序开发 数据分析和动态仿真等功能 在航空航天 机械制造和工程建筑等领域发挥着越来越重要的作用 就影响而言 至今仍然没有一个别的计算软件可与Matlab匹敌 Matlab的发行 1984年 Matlab1 0 DOS版 182K 20多个函数 1992年 Matlab4 0 93年推出Windows版 加入simulink 1994年 Matlab4 2 得到广泛重视和应用 1999年 Matlab5 3 真正实现32位运算 2002年 Matlab6 5 采用JIT加速器 2004年 Matlab7 0自2006年起 Matlab每年更新两次 Matlab简介 6 购买 下载 Matlab软件 Matlab的安装 插入光盘 自动运行 或点击安装程序setup exe 必须安装的部件MatlabSymbolicMathToolboxExtendedSymbolicMath 这里以Matlab7 0 4为例自R2008a开始增加了激活要求 7 Matlab的特点与功能 Matlab具有很强的数值计算功能 Matlab以矩阵作为数据操作的基本单位 但无需预先指定矩阵维数 动态定维 按照IEEE的数值计算标准进行计算 提供十分丰富的数值计算函数 方便计算 提高效率 Matlab命令与数学中的符号 公式非常接近 可读性强 容易掌握 Matlab是一个交互式软件系统 输入一条命令 立即就可以得出该命令的结果 8 Matlab的特点与功能 Matlab符号计算功能 Matlab和著名的符号计算语言Maple相结合 Matlab的编程功能 Matlab具有程序结构控制 函数调用 数据结构 输入输出 面向对象等程序语言特征 而且简单易学 编程效率高 通过Matlab进行编程完成特定的任务 Matlab的绘图功能 Matlab提供丰富的绘图命令 很方便实现数据的可视化 9 Matlab丰富的工具箱 toolbox Matlab的特点与功能 根据专门领域中的特殊需要而设计的各种可选工具箱 Matlab的Simulink动态仿真集成环境 提供建立系统模型 选择仿真参数和数值算法 启动仿真程序对该系统进行仿真 设置不同的输出方式来观察仿真结果等功能 10 Matlab的基本用法 Matlab系统的启动 使用Windows 开始 菜单运行Matlab系统启动程序matlab双击Matlab快捷图标 Matlab系统的退出 在Matlab主窗口File菜单中选择ExitMatlab在Matlab命令窗口输入exit或quit单击Matlab主窗口的 关闭 按钮 11 Matlab的工作界面 命令窗口 当前工作目录 当前工作空间 输入命令的历史记录 命令提示符 12 定义矩阵 直接输入法 矩阵用方括号 括起 例 A 123 456 789 矩阵同一行中的元素之间用空格或逗号分隔 矩阵行与行之间用分号分开 直接输入法中 分号可以用回车代替 例 矩阵 Matlab的操作对象是矩阵 命令提示符 不用输入回车 运行所输入的命令 13 矩阵元素可以是任何数值表达式 例 x 1 3 sqrt 3 1 2 3 4 5 矩阵元素赋值 矩阵元素的单独赋值 例 x 5 abs x 1 例 x 5 abs x 6 Matlab自动将向量x的长度扩展到5 并将未赋值部分置零 14 大矩阵可以把小矩阵作为其元素 矩阵元素赋值 例 A A 111213 在原矩阵的下方加一行 如何在原矩阵的右边添加一列 15 单个元素的引用 例 A 2 3 矩阵元素的引用 多个元素的引用 冒号的特殊用法 利用小括弧和元素所在的位置 下标 x i 向量x中的第i个元素A i j 矩阵A中的第i行 第j列元素 例 x 3 2 1 16 例 x 1 3 A 3 1 3 矩阵元素的引用 A i j m n 表示由矩阵A的第i到第j行和第m到第n列交叉线上的元素组成的子矩阵 可利用冒号提取矩阵的整行或整列 例 A 1 A 1 3 A 17 Matlab帮助系统 18 Matlab查找命令 lookfor按指定的关键词查询与之相关的命令 例 lookforinverse 19 变量命名原则 Matlab变量 20 分号和续行符的作用 Matlab变量 若不想在屏幕上输出结果 可以在语句最后加分号 如果语句很长 可用续行符 三个点 续行续行符的前面最好留一个空格 例 21 变量的查询 Matlab变量 who显示工作空间中的所有变量 whos查看工作空间中变量的详细属性 22 系统预定义变量 Matlab变量 pi 圆周率 其值为imag log 1 inf Inf 无穷大 nan NaN Not a Number 一个不定值 如0 0 eps 浮点运算相对精度 特殊变量ans i j 虚部单位 即 应尽量避免给系统预定义变量重新赋值 23 数与算术表达式 Matlab数值运算 浮点运算的相对误差为eps 浮点数表示范围为 10 308 10308 复数作为矩阵元素输入时 加号两边不能有空格 24 数学运算符 加法 Matlab数值运算 减法 乘法 和 除法 右除和左除 幂运算 命令分隔符 逗号和分号 25 输出格式 Matlab的输出 Matlab以双精度执行所有的运算 运算结果可以在屏幕上输出 同时赋给指定变量 若无指定变量 则系统会自动将结果赋给变量 ans Matlab中数的输出格式可以通过format命令指定 format只改变变量的输出格式 但不会影响变量的值 26 各种format格式 DrWangZhengsheng LectureNotes 27 变量的存储 存储当前工作空间中的变量 save将所有变量存入文件matlab mat savemydata将所有变量存入指定文件mydata mat 存储指定的变量 savemydata mat将所有变量存入文件mydata mat save文件名变量名列表 例 savemydataAxz 变量名列表中各变量之间用空格分隔 28 变量的读取 清除当前工作空间中的变量 clear清除当前工作空间中的所有变量 clearAx清除指定的变量 DrWangZhengsheng LectureNotes 29 几个小技巧 Matlab的命令记忆功能 上下箭头键 命令补全功能 Tab键 可以先输入命令的前几个字符 再按上下键缩小搜索范围 用Esc键删除命令行 DrWangZhengsheng LectureNotes 30 Lecture2MATLAB矩阵 数值 运算 DrWangZhengsheng LectureNotes 31 利用函数建立数值矩阵 MATLAB提供了许多生成和操作矩阵的函数 可以利用它们去建立矩阵 例如 reshape函数和diag函数等 reshape函数用于建立数值矩阵 diag函数用于产生对角阵 利用M文件建立矩阵 对于比较大且比较复杂的矩阵 可以为它专门建立一个M文件 其步骤为 第一步 使用编辑程序输入文件内容 第二步 把输入的内容以纯文本方式存盘 设文件名为mymatrix m 第三步 在MATLAB命令窗口中输入mymatrix 就会自动建立一个名为AM的矩阵 可供以后显示和调用 建立矩阵 DrWangZhengsheng LectureNotes 32 利用M文件建立矩阵 对于比较大且比较复杂的矩阵 可以为它专门建立一个M文件 其步骤为 第一步 使用编辑程序输入文件内容 第二步 把输入的内容以纯文本方式存盘 设文件名为mymatrix m 第三步 在MATLAB命令窗口中输入mymatrix 就会自动建立一个名为AM的矩阵 可供以后显示和调用 子矩阵操作 建立矩阵 DrWangZhengsheng LectureNotes 33 2 矩阵的基本运算 矩阵转置 矩阵加和减 矩阵乘法 矩阵除法A b inv A b 矩阵的乘方a 2 DrWangZhengsheng LectureNotes 34 3 矩阵的函数 helpmatfunMatrixfunctions numericallinearalgebra Matrixanalysis norm Matrixorvectornorm normest Estimatethematrix2 norm rank Matrixrank det Determinant trace Sumofdiagonalelements null Nullspace orth Orthogonalization rref Reducedrowechelonform subspace Anglebetweentwosubspaces DrWangZhengsheng LectureNotes 35 3 矩阵的函数Linearequations and Linearequationsolution use helpslash inv Matrixinverse rcond LAPACKreciprocalconditionestimatorcond Conditionnumberwithrespecttoinversion condest 1 normconditionnumberestimate normest1 1 normestimate chol Choleskyfactorization cholinc IncompleteCholeskyfactorization lu LUfactorization luinc IncompleteLUfactorization qr Orthogonal triangulardecomposition lsqnonneg Linearleastsquareswithnonnegativityconstraints pinv Pseudoinverse lscov Leastsquareswithknowncovariance 36 3 矩阵的函数Eigenvaluesandsingularvalues eig Eigenvaluesandeigenvectors svd Singularvaluedecomposition gsvd Generalizedsingularvaluedecomposition eigs Afeweigenvalues svds Afewsingularvalues poly Characteristicpolynomial polyeig Polynomialeigenvalueproblem condeig Conditionnumberwithrespecttoeigenvalues hess Hessenbergform qz QZfactorizationforgeneralizedeigenvalues schur Schurdecomposition 37 3 矩阵的函数Matrixfunctions expm Matrixexponential logm Matrixlogarithm sqrtm Matrixsquareroot funm Evaluategeneralmatrixfunction Factorizationutilitiesqrdelete DeleteacolumnorrowfromQRfactorization qrinsert InsertacolumnorrowintoQRfactorization rsf2csf Realblockdiagonalformtocomplexdiagonalform cdf2rdf Complexdiagonalformtorealblockdiagonalform balance Diagonalscalingtoimproveeigenvalueaccuracy planerot Givensplanerotation cholupdate rank1updatetoCholeskyfactorization qrupdate rank1updatetoQRfactorization DrWangZhengsheng LectureNotes 38 4 建立矩阵的函数常用函数有 eye size A 产生与A矩阵同阶的单位矩阵zeros m n 产生0矩阵ones m n 产生幺矩阵rand m n 产生随机元素的矩阵Size a 返回包含两个元素的向量 Length a 返回向量的长度 DrWangZhengsheng LectureNotes 39 常见矩阵生成函数 DrWangZhengsheng LectureNotes 40 5 数组运算 1 数组的加和减 2 数组的乘和除 3 数组的乘方 DrWangZhengsheng LectureNotes 41 6应用举例 1 行列式计算 2 求解线性方程组 3 解特征值问题 DrWangZhengsheng LectureNotes 42 Lecture3MATLAB图形与可视化 Graphic DrWangZhengsheng LectureNotes 43 Lecture3Matlab图形可视化 基本要求 1 掌握图形窗口的创建与控制 以及图形窗口的基本操作 2 熟练掌握二维和三维绘图基本的命令 线型控制 3 初步掌握用特殊的图形来表现特殊数据的性质 如面积图 直方图 饼图等 4 掌握坐标轴的控制和图形标注命令及其用法 DrWangZhengsheng LectureNotes 44 Lecture3Matlab图形可视化 A 二维平面图形与坐标系1 几个基本的绘图命令a 线性坐标曲线plot函数命令plot是MATLAB二维曲线绘图中最简单 最重要 使用最广泛的一个线性绘图函数 它可以生成线段 曲线和参数方程曲线的函数图形 命令格式 plot X Y plot x1 y1 x2 y2 综合调用方式 DrWangZhengsheng LectureNotes 45 Lecture3Matlab图形可视化 用命令plot x y 绘制函数y cos x 在两个周期内的图形 x 0 0 01 2 pi y cos x plot x y 在同一图形窗口中用命令plot x y 绘出正弦余弦函数的图形 x 0 0 01 2 pi y sin x cos x plot x y DrWangZhengsheng LectureNotes 46 Lecture3Matlab图形可视化 二维函数曲线专用命令fplot用plot绘图在确定自变量的取值间隔时 一般采用平均间隔 有时会因某处间距太大 而不能反映出函数的变化情况 fplot是绘制函数y f x 图形的专用命令 它的数据点是自适应产生的 对那些导数变化较大的函数 用fplot函数绘出的曲线比等分取点所画出的曲线更加接近真实 fplot函数命令的调用格式为 X Y fplot fun lims fun 函数名字符串 lims 定义x的取值区间 lims xmin xmax 二维函数曲线专用命令ezplot DrWangZhengsheng LectureNotes 47 Lecture3Matlab图形可视化 2 线型和颜色plot函数可以设置曲线的线段类型 定点标记和线段颜色 常用的线段 颜色与定点标记参数 DrWangZhengsheng LectureNotes 48 调用格式 plot x y s s为类型说明参数 是字符串 s字符串可以是三种类型的符号之一 也可以是线型与颜色和定点标记与颜色的组合 如果没有s参数 plot将使用缺省设置 实线 前七种颜色顺序着色 绘制曲线 在当前坐标系中绘图时 每调入一次绘图函数 MATLAB将擦掉坐标系中已有的图形对象 可以用holdon命令在一个坐标系中增加新的图形对象 注意MATLAB会根据新图形的大小 重新改变坐标系的比例 用不同的线型和标注来绘制两条曲线 t1 0 0 1 2 pi t2 0 0 1 6 y1 sin t1 y2 sqrt t2 plot t1 y1 hb t2 y2 g Lecture3Matlab图形可视化 DrWangZhengsheng LectureNotes 49 Lecture3Matlab图形可视化 3 图形窗口的分割有时需要在一个图形窗口中显示几幅图 以便对几个函数进行直观 便捷的比较 由于每个绘图命令在绘制数据图像时都会将已有图形覆盖掉 而用hold命令不能实现同时显示几个不同坐标尺寸下的图形 用figure命令再创窗口又很难同时比较由不同的数据绘得的图像 实现在同一个窗口中同时显示多个图像的命令subplot 使用格式为 subplot m n i 其含义为 把图形窗口分割为m行n列子窗口 然后选定第i个窗口为当前窗口 subplot命令不仅用于二维图形 对三维图形一样适用 其本质是将figure窗口分为几个区域 再在每个区域内分别绘图 DrWangZhengsheng LectureNotes 50 Lecture3Matlab图形可视化 用subplot函数把两种不同的图形综合在一个图形窗口中 subplot 2 2 1 t 0 1 0 1 2 pi y sin t semilogx t y gridonsubplot 2 2 2 t 0 0 1 4 pi y sin t plot t y subplot 2 2 3 x 1 0 01 5 y exp x plotyy x y x y semilogx plot subplot 2 2 4 x 1 0 1 10 y sqrt x plot x y rd DrWangZhengsheng LectureNotes 51 Lecture3Matlab图形可视化 4 坐标系的调整实现坐标系的调整的命令是axis函数 调用格式为 axis xmin xmax ymin ymax zmin zmax 坐标的最小值 xmin ymin zmin 必须小于相应的最大值 xmax ymax zmax 否则会出错 自动坐标系与用axis函数调整后的坐标系的比较 subplot 2 1 1 t 0 0 1 4 pi y sin t plot t y subplot 2 1 2 t 0 0 1 4 pi y sin t plot t y axis 0 max t min y max y DrWangZhengsheng LectureNotes 52 Lecture3Matlab图形可视化 B 三维绘图1 三维曲线绘图命令三维函数plot3主要用来表现单参数的三维曲线 与二维绘图函数plot相比 只多了第三维数据 其调用格式为 plot3 X1 Y1 Z1 s1 X2 Y2 Z2 s2 参数的含义如下 Xn Yn Zn 第一到三维数据 是尺寸相等的向量 矩阵 s s1 s2 是字符串 用来设置线型 颜色 数据点标记 DrWangZhengsheng LectureNotes 53 Lecture3Matlab图形可视化 x y z是向量时 plot3命令的使用t 0 0 1 8 pi plot3 sin t cos t t title 绘制螺旋线 用命令title对图形主题进行标注xlabel sin t FontWeight bold FontAngle italic ylabel cos t FontWeight bold FontAngle italic zlabel t FontWeight bold FontAngle italic 命令zlabel用来指定z轴的数据名称gridonx y z都是矩阵时 plot3命令的使用 X Y meshgrid pi 0 1 pi Z sin X cos Y plot3 X Y Z DrWangZhengsheng LectureNotes 54 Lecture3Matlab图形可视化 2 三维曲面绘图命令为了绘制定义在平面区域D x0 xm y0 yn 上的三维曲面z f x y 首先将 x0 xm 在x方向分成m份 将 y0 yn 在y方向分成n份 由各划点分别作平行于坐标轴的直线 将区域D分成m n个小矩形 对于每个小矩形 计算出网格点的函数值 决定出空间中四个顶点 xi yi f xi yi 连接四个顶点得到一个空间的四边形片 所有四边形片连在一起构成函数z f x y 定义在区域D上的空间网格曲面 因此 三维曲面绘图命令可分为平面网格点的生成 在平面网格基础上绘制三维网格及对三维表面进行处理三个步骤 DrWangZhengsheng LectureNotes 55 a 平面网格点的生成函数命令meshgrid用来生成x y平面上的网格点矩阵 调用形式为 X Y meshgrid x y X Y meshgrid x 等价于 X Y meshgrid x x 参数含义如下 x 是区间 x0 xm 上分划的向量 y 是区间 y0 yn 上分划的向量 X Y 输出变量矩阵 矩阵X的行向量都是向量x 矩阵Y的列向量都是向量y 函数meshgrid将由两个向量决定的区域转换为对应的网格点矩阵 Lecture3Matlab图形可视化 DrWangZhengsheng LectureNotes 56 Lecture3Matlab图形可视化 函数 定义区域为 2 2 2 2 生成网格并计算其网格点上的函数值 X Y meshgrid 2 2 2 2 2 2 X Y 将划分结果输出至矩阵ans 202 2 2 2 202000 202222Z X exp X 2 Y 2 计算网格点上的函数值赋予变量ZZ 0 000700 0007 0 036600 0366 0 000700 0007 DrWangZhengsheng LectureNotes 57 Lecture3Matlab图形可视化 b 三维网格命令mesh利用函数mesh生成网格曲面 调用格式为 mesh X Y Z C X Y Z C是同维数的矩阵 X Y Z对应空间上的网格点 网格线颜色由C决定 mesh X Y Z 相当于上面的C Z的情况 mesh x y Z C x和y是向量 Z和C是同维数的矩阵 网格曲面的网格顶点是 x j y i Z i j 网格线的颜色由矩阵C决定 mesh x y Z 相当于上面的C Z的情况 mesh Z C 等价于mesh x y Z C 此时向量x 1 n 向量y 1 m mesh Z 相当于上面的C Z的情况mesh PropertyName PropertyValue 给函mesh设置曲面属性 DrWangZhengsheng LectureNotes 58 Lecture3Matlab图形可视化 用mesh命令绘制上例中的网格曲面 X Y meshgrid 2 2 2 2 2 2 Z X exp X 2 Y 2 mesh Z 与mesh相关的另外两个函数是meshc和meshz 它们的调用形式与mesh相同 DrWangZhengsheng LectureNotes 59 Lecture3Matlab图形可视化 c 三维表面命令surf函数surf可实现对网格曲面片进行着色 将网格曲面转化为实曲面 surf命令的调用格式与mesh相同 利用三维网格表面命令surf绘制图形 z peaks 绘制山峰的图像 将函数值赋予变量zsurf z 对山峰的图像进行着色处理shadinginterp 函数shading改变着色方式 DrWangZhengsheng LectureNotes 60 Lecture3Matlab图形可视化 3 等高线图形的绘制4 三维视图可视效果的控制5 柱面和球面的三维表达 书 DrWangZhengsheng LectureNotes 61 Lecture3Matlab图形可视化 a 柱面的表达cylindercylinder命令中 柱面的轴线定义为z轴 只要给出母线的描述就可完成一个柱面 调用格式为 X Y Z cylinder R N X Y Z cylinder R 缺省值N 20 X Y Z cylinder 缺省值N 20 R 1 1 R 是一描述柱面母线的向量 N 是旋转柱面上的分割线条数 X Y Z 是返回的x y z坐标向量 绘制一个柱面 t pi 0 01 3 pi r sin t t cylinder r 30 shadinginterp DrWangZhengsheng LectureNotes 62 Lecture3Matlab图形可视化 b 球面的表达sphere调用格式为 X Y Z sphere N 产生一个 N 1 N 1 的矩阵 然后用函数surf命令绘制一个单位的球面 N为设置分割线的条数 X Y Z sphere 缺省值N 20 画一个球面 X Y Z sphere surf X Y Z DrWangZhengsheng LectureNotes 63 Lecture3Matlab图形可视化 四 特殊图形绘制为了将抽象的数据表达得更形象 除了绘制二维 三维图形外 还要用到直方图 面积图 饼图等特殊图形 特殊图形指令 DrWangZhengsheng LectureNotes 64 Lecture3Matlab图形可视化 1 面积图命令area表现各个不同部分对整体所作的贡献area X Y 与plot的命令的使用方法相似 将连线图到x轴的那部分填上了颜色 area Y 缺省值X 1 SIZE Y area X Y LEVEL 或area Y LEVEL 填色部分为由连线图到y level的水平线之间的部分 绘制一面积图X 2 2 Y 3 5 2 4 1 5 4 2 3 5 3 4 5 2 1 area X Y legend 因素1 因素2 因素3 gridon DrWangZhengsheng LectureNotes 65 Lecture3Matlab图形可视化 2 直方图命令bar直方图常用于统计数据的作图 有bar bar3 barh和bar3h几种函数 其调用格式类似 以函数bar为例 bar X Y X是横坐标向量 Y可以是向量或矩阵 Y是向量时 每一个元素对应一个竖条 Y是m行n列矩阵时 将画出m组竖条 每组包括n个竖条 bar Y 横坐标使用缺省值X 1 M bar X Y WIDTH 或bar Y WIDTH 用WIDTH指定竖条的宽度 如果WIDTH 1 条与条之间将重合 缺省宽度为0 8 bar grouped 产生缺省的组合直方图 bar stacked 产生累积的直方图 bar linespec 指定条的颜色 H bar 返回条形图对象的句柄 DrWangZhengsheng LectureNotes 66 Lecture3Matlab图形可视化 用绘制直方图的几种命令绘制直方图 X 2 2 Y 3 5 2 4 1 5 4 2 3 5 3 4 5 2 1 subplot 2 2 1 bar X Y r xlabel x ylabel y colormap cool subplot 2 2 2 barh X Y grouped xlabel y ylabel x colormap cool subplot 2 2 3 bar X Y stacked xlabel x ylabel Sigmay colormap summer subplot 2 2 4 barh X Y stacked xlabel y ylabel Sigmax colormap summer DrWangZhengsheng LectureNotes 67 Lecture3Matlab图形可视化 绘制三维直方图 X 2 2 Y 3 5 2 4 1 5 4 2 3 5 3 4 5 2 1 subplot 2 2 1 bar3 X Y r zlabel y ylabel x colormap cool subplot 2 2 2 bar3h X Y grouped ylabel x zlabel y colormap cool subplot 2 2 3 bar3 X Y stacked ylabel x zlabel Sigmay colormap summer subplot 2 2 4 bar3h X Y stacked zlabel x ylabel Sigmay colormap summer DrWangZhengsheng LectureNotes 68 Lecture3Matlab图形可视化 3 饼图命令pie饼图又叫扇形图 用于显示向量中元素所占向量元素总和的百分比 pie和pie3分别用于绘制二维和三维饼图 调用格式 pie X 向量X的饼图 把X的每一个元素在所有元素总和中占的比例表达出来 pie X EXPLODE 向量EXPLODE 和向量X长度相等 用于指定饼图中抽出一部分的块 非零值对应的块 pie LABELS LABELS是用于标注饼图的字符串数组 其长度必须和向量X相等 H pie 返回包括饼图和文本对象句柄 DrWangZhengsheng LectureNotes 69 用函数pie和pie3绘制饼图 x 200 360 120 400 320 subplot 2 2 1 pie x 00010 subplot 2 2 2 pie3 x 00010 subplot 2 2 3 pie x 2 5 subplot 2 2 4 x 0 1 0 12 0 21 0 34 0 11 pie3 x A B C D E Lecture3Matlab图形可视化 DrWangZhengsheng LectureNotes 70 Lecture3Matlab图形可视化 五 极坐标 柱坐标和球坐标系下绘制图形1 极坐标系下绘制图形ploar是直接在极坐标系下绘图的命令调用格式为 ploar THETA RHO S 其中S是字符串 用来控制图形的线型 绘制半径为2的渐开线 rhe 2 theta 0 pi 20 4 pi rho rhe theta rhe polar theta rho r DrWangZhengsheng LectureNotes 71 Lecture3Matlab图形可视化 六 坐标轴的调整和图形的标注1 坐标轴调整命令 DrWangZhengsheng LectureNotes 72 Lecture3Matlab图形可视化 2 图形标注坐标轴和图形标题标注标注坐标轴x y和z的命令函数为xlabel ylabel和zlabel 调用格式为 xlabel text xlabel text Property1 PropertyValue1 Property2 PropertyValue2 H xlabel 返回坐标轴标注的句柄 其中 text 是要添加的标注文本 Property 是文本的属性名 PropertyValue 是属性值 所用字体 大小 标注角度等 图形加标题的函数为title 其调用格式与坐标轴标注类似 DrWangZhengsheng LectureNotes 73 Lecture3Matlab图形可视化 b 图例的标注legend命令实现不同图例的说明 其调用格式为 legend string1 string2 string3 legend string1 string2 string3 Pos 按顺序把字符串添加到相应的曲线线型符号之后 Pos对图例的位置作出设置和调整 0 自动把图例置于最佳位置 和图中曲线重复最少 1 置于图形窗口的右上角 缺省值 2 置于图形窗口的左上角 3 置于图形窗口的左下角 4 置于图形窗口的右下角 1 置于图形窗口的右侧 外部 DrWangZhengsheng LectureNotes 74 3 控制分格线对二维和三维图形都适用 有三种用法 gridon 打开分格线控制开关 以后绘制的图形都带有分格线 gridoff 关闭分格线控制开关 以后绘制的图形都不带分格线 grid 用于实现分格线绘制切换 Lecture3Matlab图形可视化 DrWangZhengsheng LectureNotes 75 Lecture3Matlab图形可视化 绘制图形 并用函数xlabel title和legend命令进行标注 t 0 0 1 4 pi y sin t y1 cos t plot t y t y1 r xlabel x轴 0 4 pi fontsize 12 fontweight bold ylabel y轴 fontsize 12 fontweight bold title 绘制正弦波和余弦波Pos 1 fontsize 10 fontweight bold fontangle italic text pi 0 leftarrowsin pi 0 text pi 1 leftarrowcos pi 1 text pi 2 0 9 uparrowsin pi 2 num2str sin pi 2 text 0 0 6 绘图日期 date text 0 0 8 MATLAB版本 version legend 正弦波 余弦波 figure 2 plot t y t y1 r title 绘制正弦波和余弦波Pos 0 fontsize 10 fontweight bold fontangle italic legend 正弦波 余弦波 0 gridonfigure 3 plot t y t y1 r title 绘制正弦波和余弦波Pos 1 fontsize 10 fontweight bold fontangle italic DrWangZhengsheng LectureNotes 76 Lecture3Matlab图形可视化 text 7 pi 2 0 rightarrowcos pi 7 2 0 legend 正弦波 余弦波 1 gridoff DrWangZhengsheng LectureNotes 77 Lecture4MATLAB符号运算 Symbolic DrWangZhengsheng LectureNotes 78 MATLAB Matlab符号运算 DrWangZhengsheng LectureNotes 79 Matlab符号运算介绍 Matlab符号运算是通过符号数学工具箱 SymbolicMathToolbox 来实现的 Matlab符号数学工具箱是建立在功能强大的Maple软件的基础上的 当Matlab进行符号运算时 它就请求Maple软件去计算并将结果返回给Matlab Matlab的符号数学工具箱可以完成几乎所有得符号运算功能 主要包括 符号表达式的运算 符号表达式的复合 化简 符号矩阵的运算 符号微积分 符号作图 符号代数方程求解 符号微分方程求解等 此外 该工具箱还支持可变精度运算 即支持以指定的精度返回结果 DrWangZhengsheng LectureNotes 80 Matlab符号运算特点 计算以推理方式进行 因此不受计算误差累积所带来的困扰 符号计算指令的调用比较简单 与数学教科书上的公式相近 符号计算可以给出完全正确的封闭解 或任意精度的数值解 封闭解不存在时 符号计算所需的运行时间相对较长 DrWangZhengsheng LectureNotes 81 Matlab符号运算举例 求一元二次方程ax2 bx c 0的根 solve a x 2 b x c 0 求的根f x cosx 2的一次导数 x sym x diff cos x 2 计算f x x2在区间 a b 上的定积分 symsabx int x 2 a b DrWangZhengsheng LectureNotes 82 在进行符号运算时 必须先定义基本的符号对象 可以是符号常量 符号变量 符号表达式等 符号对象是一种数据结构 符号对象与符号表达式 含有符号对象的表达式称为符号表达式 Matlab在内部把符号表达式表示成字符串 以与数字变量或运算相区别 符号矩阵 数组 元素为符号表达式的矩阵 数组 DrWangZhengsheng LectureNotes 83 sym函数用来建立单个符号变量 一般调用格式为 符号对象的建立 sym和syms 符号对象的建立 b sym 1 3 C sym 1ab cd DrWangZhengsheng LectureNotes 84 符号对象的建立 sym和syms 符号对象的建立 syms命令用来建立多个符号变量 一般调用格式为 syms符号变量1符号变量2 符号变量n a sym a b sym b c sym c DrWangZhengsheng LectureNotes 85 符号表达式的建立 例 建立符号表达式通常有以下2种方法 1 用sym函数直接建立符号表达式 2 使用已经定义的符号变量组成符号表达式 y sym sin x cos x x sym x y sin x cos x 符号表达式的建立 symsx y sin x cos x DrWangZhengsheng LectureNotes 86 Matlab符号运算采用的运算符和基本函数 在形状 名称和使用上 都与数值计算中的运算符和基本函数完全相同 符号对象的基本运算 DrWangZhengsheng LectureNotes 87 符号对象的基本运算 三角函数与反三角函数 指数函数 对数函数等 基本函数 DrWangZhengsheng LectureNotes 88 查找符号表达式中的符号变量 若表达式中有两个符号变量与x的距离相等 则ASCII码大者优先 查找符号变量 findsym expr 按字母顺序列出符号表达式expr中的所有符号变量 findsym expr N 按顺序列出expr中离x最近的N个符号变量 常量pi i j不作为符号变量 DrWangZhengsheng LectureNotes 89 例 f sym 2 w 3 y z 2 5 a findsym f findsym f 3 findsym f 1 findsym举例 DrWangZhengsheng LectureNotes 90 符号表达式的替换 subs f x a 用a替换字符函数f中的字符变量xa是可以是数 数值变量 表达式或字符变量 表达式 若x是一个由多个字符变量组成的数组或矩阵 则a应该具有与x相同的形状的数组或矩阵 用给定的数据替换符号表达式中的指定的符号变量 DrWangZhengsheng LectureNotes 91 subs举例 f sym 2 u subs f u 2 f2 subs f u u 2 a 3 subs f2 u a 2 subs f2 u a 2 symsxy f3 subs f u x y subs f3 x y 1 2 ans 4 f2 2 u 2 ans 14 ans 2 a 2 2 f3 2 x 2 y ans 6 例 指出下面各条语句的输出结果 f 2 u DrWangZhengsheng LectureNotes 92 符号矩阵 A sym 1 x sin x 5 exp x 使用sym函数直接生成 将数值矩阵转化成符号矩阵 符号矩阵中元素的引用和修改 B 2 3 sqrt 2 5 2 log 3 C sym B A sym 1 x sin x 5 exp x A 1 2 引用 A 2 2 sym cos x 重新赋值 DrWangZhengsheng LectureNotes 93 六类常见符号运算 因式分解 展开 合并 简化及通分等 计算极限 计算导数 计算积分 符号求和 代数方程和微分方程求解 DrWangZhengsheng LectureNotes 94 因式分解 因式分解 factor f symsx f x 6 1 factor f factor也可用于正整数的分解 s factor 100 factor sym 12345678901234567890 大整数的分解要转化成符号常量 DrWangZhengsheng LectureNotes 95 函数展开 函数展开 expand f symsx f x 1 6 expand f 多项式展开 三角函数展开 symsxy f sin x y expand f DrWangZhengsheng LectureNotes 96 合并同类项 合并同类项 collect f v 按指定变量v进行合并collect f 按默认变量进行合并 symsxy f x 2 y y x x 2 2 x collect f collect f y DrWangZhengsheng LectureNotes 97 函数简化 函数简化 y simple f 对f尝试多种不同的算法进行简化 返回其中最简短的形式 How y simple f y为f的最简短形式 How中记录的为简化过程中使用的方法 DrWangZhengsheng LectureNotes 98 函数简化 函数简化 y simplify f 对f进行简化 symsx f sin x 2 cos x 2 simplify f symscalphabeta f exp c log sqrt alpha beta simplify f DrWangZhengsheng LectureNotes 99 函数简化举例 symsx f 1 x 3 6 x 2 12 x 8 1 3 y1 simplify f g1 simple f g2 simple g1 多次使用simple可以达到最简表达 例 简化 DrWangZhengsheng LectureNotes 100 分式通分 函数简化 N D numden f N为通分后的分子 D为通分后的分母 symsxy f x y y x N D numden f n d numden sym 112 1024 DrWangZhengsheng LectureNotes 101 horner多项式 horner多项式 嵌套形式的多项式 symsx f x 4 2 x 3 4 x 2 x 1 g horner f 例 DrWangZhengsheng LectureNotes 102 计算极限 limit f x a 计算limit f a 当默认变量趋向于a时的极限limit f 计算a 0时的极限limit f x a right 计算右极限limit f x a left 计算左极限 例 计算 symsxhn L limit log x h log x h h 0 M limit 1 x n n n inf DrWangZhengsheng LectureNotes 103 计算导数 g diff f v 求符号表达式f关于v的导数g diff f 求符号表达式f关于默认变量的导数g diff f v n 求f关于v的n阶导数 diff symsx f sin x 3 x 2 g diff f x DrWangZhengsheng LectureNotes 104 计算积分 int f v a b 计算定积分int f a b 计算关于默认变量的定积分int f v 计算不定积分int f 计算关于默认变量的不定积分 symsx f x 2 1 x 2 2 x 2 2 I int f x K int exp x 2 x 0 inf 例 计算和 DrWangZhengsheng LectureNotes 105 符号求和 symsn f 1 n 2 S symsum f n 1 inf S100 symsum f n 1 100 symsum f v a b 求和symsum f a b 关于默认变量求和 例 计算级数及其前100项的部分和 例 计算函数级数 symsnx f x n 2 S symsum f n 1 inf DrWangZhengsheng LectureNotes 106 代数方程求解 solve f v 求方程关于指定自变量的解 f可以是用字符串表示的方程 符号表达式或符号方程 solve也可解方程组 包含非线性 得不到解析解时 给出数值解 DrWangZhengsheng LectureNotes 107 微分方程求解 dsolve y dsolve eq1 eq2 cond1 cond2 v 其中y为输出的解 eq1 eq2 为微分方程 cond1 cond2 为初值条件 v为自变量 例1 求微分方程的通解 并验证 y dsolve Dy 2 x y x exp x 2 x symsx diff y 2 x y x exp x 2 DrWangZhengsheng LectureNotes 108 微分方程求解 几点说明 如果省略初值条件 则表示求通解 如果省略自变量 则默认自变量为t dsolve Dy 2 x x dy dx 2xdsolve Dy 2 x dy dt 2x 若找不到解析解 则返回其积分形式 微分方程中用D表示对自变量的导数 如 Dyy D2yy D3yy DrWangZhengsheng LectureNotes 109 微分方程求解 例2 求微分方程满足初值条件的特解 并画出解函数的图形 y dsolve x Dy y exp x 0 y 1 2 exp 1 x ezplot y DrWangZhengsheng LectureNotes 110 微分方程求解 例3 求微分方程组在初值条件下的特解 并画出解函数的图形 x y dsolve Dx 5 x y exp t Dy x 3 y 0 x 0 1 y 0 0 t ezplot x y 0 1 3 注 解微分方程组时 如果所给的输出个数与方程个数相同 则方程组的解按词典顺序输出 DrWangZhengsheng LectureNotes 111 其它运算 反函数 finverse f v 求f关于指定变量v的反函数finverse f 求f关于默认变量的反函数 symsxt f x 2 2 t g1 finverse f x g2 finverse f t 例 计算函数的反函数 DrWangZhengsheng LectureNotes 112 Lecture5MATLAB程序设计 DrWangZhengsheng LectureNotes 113 基本要求 1 学会Matlab的M文件的编写方法 包括命令文件和函数文件 了解M件的调试命令和调试方法 2 熟练掌握Matlab的程序结构 顺序结构 循环结构和分支结构 与
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!