已阅读5页,还剩204页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
常用数学软件选讲 2 第二章Matlab及其基本运算 Matlab简介数学类型数值计算符号计算绘图文件系统 MATLAB 巨人肩上的工具 3 Matlab是一个可视化的计算程序 被广泛地应用在科学运算领域里 它具有功能强大 使用简单等特点 内容包括 数值计算 符号计算 数据拟合 图形图像处理 系统模拟和仿真分析等功能 此外 用Matlab还可以进行动画设计 有限元分析等 本章节的目的是使同学们能够运用Matlab进行一般的工程计算 掌握Matlab的基本技术 基本计算 矩阵处理 符号运算和图形显示技术等 为将来从事工程技术方面的产品开发 科学研究 工程计算和管理打下一定的基础 章节的目的和任务 4 5 MATLAB的出现 70年代中期 CleveMoler和他的同事开发了LINPACK和EISPACK的Fortran子程序库70年代末期 CleveMoler在新墨西哥大学给学生开线性代数 为学生编写了接口程序 这程序取名为MATLAB 即MATrixLABoratory1983年春天 工程师JohnLittle与Moler SteveBangert一起开发了第二代专业版MATLAB1984年 MathWorks公司成立 MATLAB正是推向市场 6 1MATLAB的发展1984年 MATLAB第1版 DOS版 1992年 MATLAB4 0版simlink内嵌1994年 MATLAB4 2版1997年 MATLAB5 0版全面的面向对象1999年 MATLAB5 3版Release112000年 MATLAB6 0版Release122001年 MATLAB6 1版2002年 MATLAB6 5版购并了MATRIXx2004年 MATLAB7 0版 7 8 2MATLAB的主要功能1 数值计算和符号计算功能MATLAB以矩阵作为数据操作的基本单位 还提供了十分丰富的数值计算函数 MATLAB和著名的符号计算语言Maple相结合 使得MATLAB具有符号计算功能 9 2 绘图功能MATLAB提供了两个层次的绘图操作 一种是对图形句柄进行的低层绘图操作 另一种是建立在低层绘图操作之上的高层绘图操作 3 编程语言MATLAB具有程序结构控制 函数调用 数据结构 输入输出 面向对象等程序语言特征 而且简单易学 编程效率高 10 4 MATLAB工具箱MATLAB包含两部分内容 基本部分和各种可选的工具箱 MATLAB工具箱分为两大类 功能性工具箱和学科性工具箱 11 MATLAB特点 基于矩阵运算的工作平台 支持多种操作系统 windows unix dos Macintosh可扩充性 MATLAB的函数大多为ASCII文件 可以直接编辑 修改高度适应性 开放性 MATLAB的工具箱可以任意增减 任何人可以自己生成MATLAB工具箱各行业的高手 真正的大家 提供了许多工具箱 12 Matlab能做什么 基本的数据处理数据来源 Excel 数据库 A D等等优化和解方程动态过程仿真 实时的和非实时的嵌入式的控制 Pc 104和DSP神经元网络 小波分析 GA等等虚拟现实仿真 13 为什么选择 Matlab 不希望同学们在编程上化太多时间 课程目的不是学习编程社会化的运行带来的好处 合理利用可以节约大量的时间为什么相同的时间别人比自己做出了更多的事情 硕士论文调查结果面向对象的思想带来巨大的好处紧密结合科学的前沿FromBBS 博士论文 Matlab Word 14 Matlab产品家族 Matlab扩展支持在matlab中队系统的实施和开发 工具箱 专用的函数库 解决特定领域的问题 Simulink非线性系统仿真Blockset是专门为simulink建立的模块 15 Matlab是所有系统工具的基础 16 设计自动化工具 17 一般用途工具 18 信号和图像处理 19 控制系统设计和分析 20 USENET新闻组MATLAB的新闻组是comp soft sys MATLAB 浏览器指向网络上的工具箱 可以利用的网络资源 21 TheMathWorks公司官方网站产品与全套工具箱手册下载第三方工具箱下载产品在中国独家代理 北京九州恒润公司 22 MATLAB大观园http www matlab MATLAB与应用论坛博士家园论坛网站一些高校的bbs清华大学 哈工大 上海交大 西安交大等 23 3初识MATLAB例1 1绘制正弦曲线和余弦曲线 x 0 0 5 360 pi 180 plot x sin x x cos x 例1 2求方程3x4 7x3 9x2 23 0的全部根 p 3 7 9 0 23 建立多项式系数向量x roots p 求根 24 25 26 例1 3求积分quad x log 1 x 0 1 例1 4求解线性方程组 a 2 3 1 8 3 2 45 1 9 b 4 2 17 x inv a b 27 28 Mathematica的计算结果 比较 29 Mathematica的计算结果 2 30 Mathematica的计算结果 3 4 31 4MATLAB的运行环境与安装 4 1MATLAB的运行环境硬件环境 1 CPU 2 内存 3 硬盘 4 CD ROM驱动器和鼠标 软件环境 1 Windows98 NT 2000或WindowsXP 2 其他软件根据需要选用 32 2 2MATLAB的安装安装MATLAB6 5系统 需运行系统自带的安装程序setup exe 可以按照安装提示依次操作 33 3MATLAB集成环境 3 1启动与退出MATLAB集成环境1 MATLAB系统的启动与一般的Windows程序一样 启动MATLAB系统有3种常见方法 1 使用Windows 开始 菜单 2 运行MATLAB系统启动程序matlab exe 3 利用快捷方式 34 启动MATLAB后 将进入MATLAB6 5集成环境 MATLAB6 5集成环境包括MATLAB主窗口 命令窗口 CommandWindow 工作空间窗口 Workspace 命令历史窗口 CommandHistory 当前目录窗口 CurrentDirectory 和启动平台窗口 LaunchPad 35 当MATLAB安装完毕并首次启动时 展现在屏幕上的界面为MATLAB的默认界面 如右图所示 36 Matlab工作环境界面 包含一行标题栏 一行菜单栏 一行工具栏 五个工作窗口和一行注释栏 五个工作窗口分别为 发射台 LaunchPad 工作区 Workspace 命令历史 CommandHistory 当前路径 CurrentDirectory 和命令窗口 CommandWindows 37 Matlab工作环境界面 2 MATLAB工具栏 用MATLAB的M文件编辑器新建一个M文件 用MATLAB编辑器打开一个文件 将选中的内容剪切到剪贴板 将选中的内容复制到剪贴板 将剪贴板中的内容粘贴到光标指定的位置 撤消最近一次的操作 打开Simulink浏览器 打开MATLAB帮助窗口 当前工作路径 38 2 MATLAB系统的退出要退出MATLAB系统 也有3种常见方法 1 在MATLAB主窗口File菜单中选择ExitMATLAB命令 2 在MATLAB命令窗口输入Exit或Quit命令 3 单击MATLAB主窗口的 关闭 按钮 39 3 2主窗口MATLAB主窗口是MATLAB的主要工作界面 主窗口除了嵌入一些子窗口外 还主要包括菜单栏和工具栏 1 菜单栏在MATLAB6 5主窗口的菜单栏 共包含File Edit View Web Window和Help6个菜单项 40 1 File菜单项 File菜单项实现有关文件的操作 2 Edit菜单项 Edit菜单项用于命令窗口的编辑操作 3 View菜单项 View菜单项用于设置MATLAB集成环境的显示方式 其他菜单和窗口的介绍略去 41 其他菜单和窗口的介绍略去 MATLAB通用命令 42 4MATLAB帮助系统 2 Matlab的网上资源web菜单栏 43 4MATLAB帮助系统 4 1帮助窗口进入帮助窗口可以通过以下3种方法 1 单击MATLAB主窗口工具栏中的Help按钮 2 在命令窗口中输入helpwin helpdesk或doc 3 选择Help菜单中的 MATLABHelp 选项 44 45 46 4 2帮助命令 Matlab常用的窗口帮助命令 47 4 2帮助命令MATLAB帮助命令包括help lookfor以及模糊查询 1 help命令在MATLAB6命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目 即搜索路径中所有的目录名称 同样 可以通过help加函数名来显示该函数的帮助说明 48 2 lookfor命令help命令只搜索出那些关键字完全匹配的结果 lookfor命令对搜索范围内的M文件进行关键字搜索 条件比较宽松 lookfor命令只对M文件的第一行进行关键字搜索 若在lookfor命令加上 all选项 则可对M文件进行全文搜索 49 3 模糊查询MATLAB6 0以上的版本提供了一种类似模糊查询的命令查询方法 用户只需要输入命令的前几个字母 然后按Tab键 系统就会列出所有以这几个字母开头的命令 50 怎样获得详尽的帮助信息 总结 首先是MATLAB窗口中的help命令 它最常用 最快 往往也是最有效的 给出关键字就能找到相应的说明 Help命令简单易用 但是它要求准确给出关键字 如果记忆不准 就很难找到 这时就应该用第二种方案 HelpDesk 这是MATLAB的HTML格式的帮助文档 有着很好的组织 可以在命令行键入helpdesk 进入 MatlabHelpDesk HelpDesk的搜索可以使用不完全关键字 这样即使遇到记忆模糊的情况也可以很快查到 前面两种方法所得到的帮助信息常常是不够细致的 需要用第三种途径来补充 这就是电子版的使用手册 MATLAB里包含了大量关于MATLAB安装 使用 编程以及各种工具箱等的电子版手册 全部为PDF格式 具有搜索功能 因此也可以在指定的手册中搜索关键字 使用非常方便 51 4 3演示系统在帮助窗口中选择演示系统 Demos 选项卡 然后在其中选择相应的演示模块 或者在命令窗口输入Demos 或者选择主窗口Help菜单中的Demos子菜单 打开演示系统 基本矩阵演示窗口 MATLAB演示窗口 52 4 4远程帮助系统在MathWorks公司的主页 上可以找到很多有用的信息 国内的一些网站也有丰富的信息资源 53 MATLAB变量及数据操作 a 变量和常量变量 包括函数 的命名规则 由英文字母 数字和下划线混合组成 不得包含空格和标点 第一个字符必须是英文字母 最多包括31个字符 对字母的大小写敏感 局部变量和全局变量永久变量 常量 只能在某一函数体内使用 而不能从其他函数和Matlab工作空间访问的变量 就是局部变量 在几个函数及Matlab函数中都能使用的变量就是全局变量 全局变量名应尽可能大写 并由globe声明 54 Matlab永久变量 55 b 数字变量Matlab内部的每一个数据元素都是用双精度数 double 来表示和存储的 变量输出时用户可以用format命令设置或改变输出格式 短格式 Short 1 33330 0000短格式e方式 Shorte 1 3333e 001 2345e 06短格式g方式 Shortg 1 33330 0长格式 Long 1 333333333333330 00000123450000长格式e方式 Longe 1 33333333333333e 001 2345000000000e 06长格式g方式 Longg 1 333333333333330 0000012345银行格式 Bank 1 330 00十六进制格式 Hex 3ff5555555553eb46231abfd71 格式 有理数 Rational 1 32469 2000000000 56 c 字符串所有字符串都用单引号括起来 s matlab 字符中中的每个字符 包括空格 都是字符串变量 矩阵或向量 中的一个元素 字符串中的字符以ASCII码形式储存并区分大小 用函数abs可以看到字符的ASCII码 在Matlab中 字符串和字符矩阵基本上是等价的 s matlab 等价于 s matlab 57 字符串函数 58 59 双精度数值变量IEEE标准 64位 8字节 11指数位 53数值位和一个符号位double 函数的转换其他数据类型uint8 常用于图像表示和处理 8位int8 int16 int32 uint16 uint32 60 2 赋值语句 1 变量 表达式 2 表达式其中表达式是用运算符将有关运算量连接起来的式子 其结果是一个矩阵 61 例2 1计算表达式的值 并显示计算结果 在MATLAB命令窗口输入命令 x 1 2i y 3 sqrt 17 z cos abs x y sin 78 pi 180 x abs y 其中pi和i都是MATLAB预先定义的变量 分别代表代表圆周率 和虚数单位 输出结果是 z 0 3488 0 3286i 62 2 1 3内存变量的管理1 内存变量的删除与修改MATLAB工作空间窗口专门用于内存变量的管理 在工作空间窗口中可以显示所有内存变量的属性 当选中某些变量后 再单击Delete按钮 就能删除这些变量 当选中某些变量后 再单击Open按钮 将进入变量编辑器 通过变量编辑器可以直接观察变量中的具体元素 也可修改变量中的具体元素 63 clear命令用于删除MATLAB工作空间中的变量 who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单 who命令只显示出驻留变量的名称 whos在给出变量名的同时 还给出它们的大小 所占字节数及数据类型等信息 64 2 内存变量文件利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来 扩展名是 mat MAT文件的生成和装入由save和load命令来完成 常用格式为 save文件名 变量名表 append ascii load文件名 变量名表 ascii 65 2 1 4MATLAB常用数学函数MATLAB提供了许多数学函数 函数的自变量规定为矩阵变量 运算法则是将函数逐项作用于矩阵的元素上 因而运算的结果是一个与自变量同维数的矩阵 函数使用说明 1 三角函数以弧度为单位计算 2 abs函数可以求实数的绝对值 复数的模 字符串的ASCII码值 3 用于取整的函数有fix floor ceil round 要注意它们的区别 66 2 1 5数据的输出格式MATLAB用十进制数表示一个常数 具体可采用日常记数法和科学记数法两种表示方法 在一般情况下 MATLAB内部每一个数据元素都是用双精度数来表示和存储的 数据输出时用户可以用format命令设置或改变数据输出格式 format命令的格式为 format格式符其中格式符决定数据的输出格式 67 矩阵和数组运算要求内容 1 熟练掌握矩阵的创建 2 掌握矩阵运算和数组运算 3 学会如何使用矩阵运算函数和数组运算函数 4 注意区分矩阵和数组的差别 特别是运算符的差别 6 了解多项式的创建方法和基本运算 MATLAB矩阵及其计算 68 MATLAB以矩阵为基本的运算单元 向量和标量作为特殊的矩阵处理 向量看作只有一行或一列的矩阵 标量看作只有一个元素的矩阵 1 矩阵的构造a 直接输入b 利用内部函数产生矩阵c 利用M文件产生矩阵d 从外部数据文件调入矩阵 69 A 1 2 3 4 5 6 a 直接输入直接输入需遵循以下基本规则 整个矩阵应以 为首尾 即整个输入矩阵必须包含在方括号中 矩阵中 行与行之间必须用分号 或Enter键 按Enter键 符分隔 每行中的元素用逗号 或空格分隔 矩阵中的元素可以是数字或表达式 但表达式中不可包含未知的变量 MATLAB用表达式的值为该位置的矩阵元素赋值 当矩阵中没有任何元素时 该矩阵被称作 空阵 EmptyMatrix 70 A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A 12345678910111213141516利用表达式输入 B 1 sqrt 25 9 132 6 10 7 23 sin pi 7 11 154 abs 8 12 16 B 15913261014371115481216 71 由向量构成矩阵向量是组成矩阵的基本元素之一 向量元素需要用方括号括起来 元素之间用空格和逗号分隔生成行向量 用分号隔开生成列向量 可以把行向量看成1 n阶矩阵 把列向量看成n 1阶矩阵 向量的构造方法 直接输入向量利用冒号生成向量利用linspace logspace生成向量 a 1 2 3 4 x 0 0 5 2 x logspace a b n 生成有n个元素的行向量x 其元素起点x 1 10a 终点x n 10b b logspace 0 2 4 b 1 00004 641621 5443100 0000 72 xx 00 50001 00001 50002 0000 x linspace a b n 生成有n个元素的行向量x 其元素值在a b之间线性分布 y linspace 0 2 7 y 00 33330 66671 00001 33331 66672 0000 z 1x3 z 1 000000 50001 00001 50002 00003 0000 u y z u 00 33330 66671 00001 33331 66672 0000 1 000000 50001 00001 50002 00003 0000 73 b 利用内部函数产生矩阵 compan生成x向量的伴随矩阵 x 2 4 6 8 10 x 246810 compan x ans 2 3 4 5 610000010000010000010 eye生成单位阵 S eye 6 S 100000010000001000000100000010000001 ones生成全部元素为1的矩阵 ones 3 4 ans 111111111111 F 5 ones 3 F 555555555 zeros生成全部元素为0的矩阵 Z zeros 2 4 Z 00000000 rand生成均匀分布的随机矩阵 R rand 4 R 0 95010 89130 82140 92180 23110 76210 44470 73820 60680 45650 61540 17630 48600 01850 79190 4057 生成空阵 K K 74 c 利用M文件产生矩阵A 1 2 3 4 56 7 8 9 1011 12 13 14 1516 17 18 19 2021 22 23 24 25 75 d 从外部数据文件调入矩阵用load命令输入用Import菜单输入 76 矩阵元素的修改 A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A 12345678910111213141516 A 1 1 ans 1 A 2 3 ans 7 A 1 1 0 A 2 2 A 1 2 A 2 1 A 4 4 cos 0 AA 0234577891011121314151 77 2 2 2矩阵的拆分1 矩阵元素通过下标引用矩阵的元素 例如A 3 2 200采用矩阵元素的序号来引用矩阵元素 矩阵元素的序号就是相应元素在内存中的排列顺序 在MATLAB中 矩阵元素按列存储 先第一列 再第二列 依次类推 例如A 1 2 3 4 5 6 A 3 ans 2显然 序号 Index 与下标 Subscript 是一一对应的 以m n矩阵A为例 矩阵元素A i j 的序号为 j 1 m i 其相互转换关系也可利用sub2ind和ind2sub函数求得 78 2 矩阵拆分 1 利用冒号表达式获得子矩阵 A j 表示取A矩阵的第j列全部元素 A i 表示A矩阵第i行的全部元素 A i j 表示取A矩阵第i行 第j列的元素 A i i m 表示取A矩阵第i i m行的全部元素 A k k m 表示取A矩阵第k k m列的全部元素 A i i m k k m 表示取A矩阵第i i m行内 并在第k k m列中的所有元素 79 80 2 利用空矩阵删除矩阵的元素在MATLAB中 定义 为空矩阵 给变量X赋空矩阵的语句为X 注意 X 与clearX不同 clear是将X从工作空间中删除 而空矩阵则存在于工作空间中 只是维数为0 81 2 2 3特殊矩阵1 通用的特殊矩阵常用的产生通用特殊矩阵的函数有 zeros 产生全0矩阵 零矩阵 ones 产生全1矩阵 幺矩阵 eye 产生单位矩阵 rand 产生0 1间均匀分布的随机矩阵 randn 产生均值为0 方差为1的标准正态分布随机矩阵 82 例2 3分别建立3 3 3 2和与矩阵A同样大小的零矩阵 1 建立一个3 3零矩阵 zeros 3 2 建立一个3 2零矩阵 zeros 3 2 3 设A为2 3矩阵 则可以用zeros size A 建立一个与矩阵A同样大小零矩阵 A 123 456 产生一个2 3阶矩阵Azeros size A 产生一个与矩阵A同样大小的零矩阵 83 例2 4建立随机矩阵 1 在区间 20 50 内均匀分布的5阶随机矩阵 2 均值为0 6 方差为0 1的5阶正态分布随机矩阵 命令如下 x 20 50 20 rand 5 y 0 6 sqrt 0 1 randn 5 此外 常用的函数还有reshape A m n 它在矩阵总元素保持不变的前提下 将矩阵A重新排成m n的二维矩阵 84 2 用于专门学科的特殊矩阵 1 魔方矩阵魔方矩阵有一个有趣的性质 其每行 每列及两条对角线上的元素和都相等 对于n阶魔方阵 其元素由1 2 3 n2共n2个整数组成 MATLAB提供了求魔方矩阵的函数magic n 其功能是生成一个n阶魔方阵 85 2 范得蒙矩阵范得蒙 Vandermonde 矩阵最后一列全为1 倒数第二列为一个指定的向量 其他各列是其后列与倒数第二列的点乘积 可以用一个指定向量生成一个范得蒙矩阵 在MATLAB中 函数vander V 生成以向量V为基础向量的范得蒙矩阵 例如 A vander 1 2 3 5 即可得到上述范得蒙矩阵 86 3 伴随矩阵MATLAB生成伴随矩阵的函数是compan p 其中p是一个多项式的系数向量 高次幂系数排在前 低次幂排在后 例如 为了求多项式的x3 7x 6的伴随矩阵 可使用命令 p 1 0 7 6 compan p 87 4 帕斯卡矩阵 杨辉三角形 我们知道 二次项 x y n展开后的系数随n的增大组成一个三角形表 称为杨辉三角形 由杨辉三角形表组成的矩阵称为帕斯卡 Pascal 矩阵 函数pascal n 生成一个n阶帕斯卡矩阵 88 例2 2求 x y 5的展开式 在MATLAB命令窗口 输入命令 pascal 6 矩阵次对角线上的元素1 5 10 10 5 1即为展开式的系数 89 2 3MATLAB运算2 3 1算术运算1 基本算术运算MATLAB的基本算术运算有 加 减 乘 右除 左除 乘方 注意 运算是在矩阵意义下进行的 单个数据的算术运算只是一种特例 90 1 矩阵加减运算假定有两个矩阵A和B 则可以由A B和A B实现矩阵的加减运算 运算规则是 若A和B矩阵的维数相同 则可以执行矩阵的加减运算 A和B矩阵的相应元素相加减 如果A与B的维数不相同 则MATLAB将给出错误信息 提示用户两个矩阵的维数不匹配 2 矩阵乘法假定有两个矩阵A和B 若A为m n矩阵 B为n p矩阵 则C A B为m p矩阵 91 a 矩阵的加减运算 A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 B 1 sqrt 25 9 132 6 107 23 sin pi 7 11 154 abs 8 12 16 C A BC 27121771217221217222717222732 D A BD 0 3 6 930 3 6630 39630 E A 3E 45678910111213141516171819 92 3 矩阵除法在MATLAB中 有两种矩阵除法运算 和 分别表示左除和右除 如果A矩阵是非奇异方阵 则A B和B A运算可以实现 A B等效于A的逆左乘B矩阵 也就是inv A B 而B A等效于A矩阵的逆右乘B矩阵 也就是B inv A 对于含有标量的运算 两种除法运算的结果相同 如3 4和4 3有相同的值 都等于0 75 又如 设a 10 5 25 则a 5 5 a 2 10005 0000 对于矩阵来说 左除和右除表示两种不同的除数矩阵和被除数矩阵的关系 对于矩阵运算 一般A B B A 93 b 矩阵乘法 C A BC 307011015070174278382110278446614150382614846 D A 3D 36912151821242730333639424548c 矩阵除法左除A B inv A B A 8 1 6 3 5 7 4 9 2 A 816357492 B 1 1 1 1 2 3 1 3 6 B 111123136 A Bans 0 06670 05000 09720 06670 30000 63890 06670 0500 0 0694 C inv A C 0 1472 0 14440 0639 0 06110 02220 1056 0 01940 1889 0 1028 C Bans 0 06670 05000 09720 06670 30000 63890 06670 0500 0 0694 右除A B A inv B A Bans 27 3112120 1329 12 D inv B D 3 31 35 21 21 A Dans 27 3112120 1329 12 94 当对矩阵作除法运算时 有可能因为误差设置的差别导致不精确的结果 此时 MATLAB会自动给出警告信息 MATLAB采用IEEE 国际认可的 算法 即使A为奇异阵 即A的行列式值是0 运算也照样进行 但是此时MATLAB将给出警告信息 Warning Matrixissingulartoworkingprecision 求出的矩阵所有元素为无穷大 Inf 当矩阵A为病态阵 BadlyScaled 时 MATLAB使用的算法产生的误差可能很大 MATLAB系统也将给出警告信息 Warning Matrixisbadlyscaledtoworkingprecision Resultsmaybeinaccurate E 1 2 3 4 5 6 7 8 9 E 123456789 F 1 4 7 2 5 8 3 6 9 F 147258369 E FWarning Matrixisclosetosingularorbadlyscaled Resultsmaybeinaccurate RCOND 1 541976e 018 ans 0 3333 7 3333 14 33330 666711 666722 66670 4 0000 8 0000 95 4 矩阵的乘方一个矩阵的乘方运算可以表示成A x 要求A为方阵 x为标量 2 点运算在MATLAB中 有一种特殊的运算 因为其运算符是在有关算术运算符前面加点 所以叫点运算 点运算符有 和 两矩阵进行点运算是指它们的对应元素进行相关运算 要求两矩阵的维参数相同 96 2 3 2关系运算MATLAB提供了6种关系运算符 大于 大于或等于 等于 不等于 它们的含义不难理解 但要注意其书写方法与数学中的不等式符号不尽相同 97 关系运算符的运算法则为 1 当两个比较量是标量时 直接比较两数的大小 若关系成立 关系表达式结果为1 否则为0 2 当参与比较的量是两个维数相同的矩阵时 比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行 并给出元素比较结果 最终的关系运算的结果是一个维数与原矩阵相同的矩阵 它的元素由0或1组成 98 3 当参与比较的一个是标量 而另一个是矩阵时 则把标量与矩阵的每一个元素按标量关系运算规则逐个比较 并给出元素比较结果 最终的关系运算的结果是一个维数与原矩阵相同的矩阵 它的元素由0或1组成 99 例2 3产生5阶随机方阵A 其元素为 10 90 区间的随机整数 然后判断A的元素是否能被3整除 1 生成5阶随机方阵A A fix 90 10 1 rand 5 10 2 判断A的元素是否可以被3整除 P rem A 3 0其中 rem A 3 是矩阵A的每个元素除以3的余数矩阵 此时 0被扩展为与A同维数的零矩阵 P是进行等于 比较的结果矩阵 100 2 3 3逻辑运算MATLAB提供了3种逻辑运算符 与 或 和 非 逻辑运算的运算法则为 1 在逻辑运算中 确认非零元素为真 用1表示 零元素为假 用0表示 2 设参与逻辑运算的是两个标量a和b 那么 a ba b全为非零时 运算结果为1 否则为0 a ba b中只要有一个非零 运算结果为1 a当a是零时 运算结果为1 当a非零时 运算结果为0 101 3 若参与逻辑运算的是两个同维矩阵 那么运算将对矩阵相同位置上的元素按标量规则逐个进行 最终运算结果是一个与原矩阵同维的矩阵 其元素由1或0组成 4 若参与逻辑运算的一个是标量 一个是矩阵 那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行 最终运算结果是一个与矩阵同维的矩阵 其元素由1或0组成 102 5 逻辑非是单目运算符 也服从矩阵运算规则 6 在算术 关系 逻辑运算中 算术运算优先级最高 逻辑运算优先级最低 例2 4建立矩阵A 然后找出大于4的元素的位置 1 建立矩阵A A 4 65 54 0 6 56 0 67 45 0 2 找出大于4的元素的位置 find A 4 103 2 4矩阵分析2 4 1对角阵与三角阵1 对角阵只有对角线上有非0元素的矩阵称为对角矩阵 对角线上的元素相等的对角矩阵称为数量矩阵 对角线上的元素都为1的对角矩阵称为单位矩阵 104 1 提取矩阵的对角线元素设A为m n矩阵 diag A 函数用于提取矩阵A主对角线元素 产生一个具有min m n 个元素的列向量 diag A 函数还有一种形式diag A k 其功能是提取第k条对角线的元素 2 构造对角矩阵设V为具有m个元素的向量 diag V 将产生一个m m对角矩阵 其主对角线元素即为向量V的元素 diag V 函数也有另一种形式diag V k 其功能是产生一个n n n m 对角阵 其第k条对角线的元素即为向量V的元素 105 例2 5先建立5 5矩阵A 然后将A的第一行元素乘以1 第二行乘以2 第五行乘以5 A 17 0 1 0 15 23 5 7 14 16 4 0 13 0 22 10 12 19 21 3 11 18 25 2 19 D diag 1 5 D A 用D左乘A 对A的每行乘以一个指定常数 106 2 三角阵三角阵又进一步分为上三角阵和下三角阵 所谓上三角阵 即矩阵的对角线以下的元素全为0的一种矩阵 而下三角阵则是对角线以上的元素全为0的一种矩阵 107 上三角矩阵求矩阵A的上三角阵的MATLAB函数是triu A triu A 函数也有另一种形式triu A k 其功能是求矩阵A的第k条对角线以上的元素 例如 提取矩阵A的第2条对角线以上的元素 形成新的矩阵B 下三角矩阵在MATLAB中 提取矩阵A的下三角矩阵的函数是tril A 和tril A k 其用法与提取上三角矩阵的函数triu A 和triu A k 完全相同 108 2 4 2矩阵的转置与旋转1 矩阵的转置转置运算符是单撇号 2 矩阵的旋转利用函数rot90 A k 将矩阵A旋转90 的k倍 当k为1时可省略 109 3 矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换 第二列和倒数第二列调换 依次类推 MATLAB对矩阵A实施左右翻转的函数是fliplr A 4 矩阵的上下翻转MATLAB对矩阵A实施上下翻转的函数是flipud A 110 2 4 3矩阵的逆对于一个方阵A 如果存在一个与其同阶的方阵B 使得 A B B A I I为单位矩阵 则称B为A的逆矩阵 当然 A也是B的逆矩阵 求一个矩阵的逆是一件非常烦琐的工作 容易出错 但在MATLAB中 求一个矩阵的逆非常容易 求方阵A的逆矩阵可调用函数inv A 例2 11用求逆矩阵的方法解线性方程组 Ax b其解为 x A 1b 111 2 4 4方阵的行列式把一个方阵看作一个行列式 并对其按行列式的规则求值 这个值就称为矩阵所对应的行列式的值 在MATLAB中 求方阵A所对应的行列式的值的函数是det A 112 2 4 5矩阵的秩与迹1 矩阵的秩矩阵线性无关的行数与列数称为矩阵的秩 在MATLAB中 求矩阵秩的函数是rank A 2 矩阵的迹矩阵的迹等于矩阵的对角线元素之和 也等于矩阵的特征值之和 在MATLAB中 求矩阵的迹的函数是trace A 113 2 4 6向量和矩阵的范数矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度 范数有多种方法定义 其定义不同 范数值也就不同 114 1 向量的3种常用范数及其计算函数在MATLAB中 求向量范数的函数为 1 norm V 或norm V 2 计算向量V的2 范数 2 norm V 1 计算向量V的1 范数 3 norm V inf 计算向量V的 范数 115 2 矩阵的范数及其计算函数MATLAB提供了求3种矩阵范数的函数 其函数调用格式与求向量的范数的函数完全相同 2 4 7矩阵的条件数在MATLAB中 计算矩阵A的3种条件数的函数是 1 cond A 1 计算A的1 范数下的条件数 2 cond A 或cond A 2 计算A的2 范数数下的条件数 3 cond A inf 计算A的 范数下的条件数 116 2 4 8矩阵的特征值与特征向量在MATLAB中 计算矩阵A的特征值和特征向量的函数是eig A 常用的调用格式有3种 1 E eig A 求矩阵A的全部特征值 构成向量E 2 V D eig A 求矩阵A的全部特征值 构成对角阵D 并求A的特征向量构成V的列向量 117 3 V D eig A nobalance 与第2种格式类似 但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量 而格式3直接求矩阵A的特征值和特征向量 例2 12用求特征值的方法解方程 3x5 7x4 5x2 2x 18 0p 3 7 0 5 2 18 A compan p A的伴随矩阵x1 eig A 求A的特征值x2 roots p 直接求多项式p的零点 118 例2 6用求特征值的方法解方程 3x5 7x4 5x2 2x 18 0p 3 7 0 5 2 18 A compan p A的伴随矩阵x1 eig A 求A的特征值x2 roots p 直接求多项式p的零点 119 3 矩阵指数expm expm1 expm2 expm3expm A expm1 A expm2 A expm3 A 的功能都求矩阵指数eA 4 普通矩阵函数funmfunm A fun 用来计算直接作用于矩阵A的由 fun 指定的超越函数值 当fun取sqrt时 funm A sqrt 可以计算矩阵A的平方根 与sqrtm A 的计算结果一样 120 b 常用的矩阵运算函数 只有方阵才可计算行列式值 即det A 的计算只有在A为方阵时才有意义 logm A 和sqrtm A 计算矩阵的对数 平方根是指对整个矩阵A求对数 平方根 矩阵常用函数总结 121 c 矩阵的分解函数 122 X 3 1 2 1 2 1 2 1 4 输入矩阵XX 3 1212 1 214 L U lu X 对矩阵X进行LU分解L 1 0000000 33331 00000 0 66670 14291 0000U 3 0000 1 00002 000002 3333 1 6667005 5714 Q R qr X 对矩阵X进行QR分解Q 0 80180 15430 5774 0 2673 0 9567 0 11550 5345 0 24690 8083R 3 74170 80180 80180 2 31460 2777004 5033 123 2 8稀疏矩阵2 8 1矩阵存储方式MATLAB的矩阵有两种存储方式 完全存储方式和稀疏存储方式 1 完全存储方式完全存储方式是将矩阵的全部元素按列存储 以前讲到的矩阵的存储方式都是按这个方式存储的 此存储方式对稀疏矩阵也适用 124 2 稀疏存储方式稀疏存储方式仅存储矩阵所有的非零元素的值及其位置 即行号和列号 在MATLAB中 稀疏存储方式也是按列存储的 注意 在讲稀疏矩阵时 有两个不同的概念 一是指矩阵的0元素较多 该矩阵是一个具有稀疏特征的矩阵 二是指采用稀疏方式存储的矩阵 125 2 8 2稀疏存储方式的产生1 将完全存储方式转化为稀疏存储方式函数A sparse S 将矩阵S转化为稀疏存储方式的矩阵A 当矩阵S是稀疏存储方式时 则函数调用相当于A S sparse函数还有其他一些调用格式 sparse m n 生成一个m n的所有元素都是0的稀疏矩阵 sparse u v S u v S是3个等长的向量 S是要建立的稀疏矩阵的非0元素 u i v i 分别是S i 的行和列下标 该函数建立一个max u 行 max v 列并以S为稀疏元素的稀疏矩阵 此外 还有一些和稀疏矩阵操作有关的函数 例如 u v S find A 返回矩阵A中非0元素的下标和元素 这里产生的u v S可作为sparse u v S 的参数 full A 返回和稀疏存储矩阵A对应的完全存储方式矩阵 126 2 产生稀疏存储矩阵只把要建立的稀疏矩阵的非0元素及其所在行和列的位置表示出来后由MATLAB自己产生其稀疏存储 这需要使用spconvert函数 调用格式为 B spconvert A 其中A为一个m 3或m 4的矩阵 其每行表示一个非0元素 m是非0元素的个数 A每个元素的意义是 i 1 第i个非0元素所在的行 i 2 第i个非0元素所在的列 i 3 第i个非0元素值的实部 i 4 第i个非0元素值的虚部 若矩阵的全部元素都是实数 则无须第四列 该函数将A所描述的一个稀疏矩阵转化为一个稀疏存储矩阵 127 例2 7根据表示稀疏矩阵的矩阵A 产生一个稀疏存储方式矩阵B 命令如下 A 2 2 1 3 1 1 4 3 3 5 3 8 6 6 12 B spconvert A 128 5 数组运算Matlab是以矩阵为基本运算单元的 数组作为独立的计算单元实体是不存在的 数组运算是Matlab的一种运算形式 它从矩阵的单个元素出发 针对每个元素进行的运算 MATLAB对数组运算在符号上做了不同的约定 运算符形式为 矩阵运算和数组运算有着显著的不同 属于两种不同的运算 矩阵运算是从矩阵的整体出发 按照线性代数的运算规则进行 有着明确而严格的数学规则 而数组运算是从矩阵的单个元素出发 针对每个元素进行的运算 对于加法和减法而言 矩阵运算和数组运算相同 对于乘法和除法而言 矩阵和数组的运算有着显著的不同 129 矩阵的数组乘 除及乘方数组除的运算规则 当参与除运算的两个矩阵同维时 运算为矩阵的相应元素相除 计算结果是与参与运算的矩阵同维的矩阵 当参与运算的矩阵有一个是标量时 运算是标量和矩阵的每一个元素相除 计算结果是与参与运算的矩阵同维的矩阵 右除与左除的关系为A B B A 其中A是被除数 B是除数 130 E 1 2 3 4 5 6 7 8 9 E 123456789 F 1 4 7 2 5 8 3 6 9 F 147258369 E Fans 1 00002 00002 33330 50001 00001 33330 42860 75001 0000 4 Fans 0 25001 00001 75000 50001 25002 00000 75001 50002 2500 F Eans 1 00002 00002 33330 50001 00001 33330 42860 75001 0000 E Fans 143250327712250122194 E Fans 182182548214881 131 数组乘方的运算规则 矩阵的标量乘方A p 即A为矩阵 p为标量 运算为矩阵每个元素的p次方 计算结果是与矩阵A同维的矩阵 标量的矩阵乘方p A 表示以p为底 分别以A的元素为指数求幂值 计算结果是与矩阵A同维的矩阵 132 b 向量的数组运算 加 减法 x 1 2 3 y 4 5 6 c x y a 1 x乘 除法 b 2 x b 2 x z3 x 9 z4 x 9 z x y z1 x y z2 x y 乘方 z7 2 x z5 x 3 z6 x y点积 叉积 c1 dot a b c1 sum a b c2 cross a b 133 6 数组函数 常用的数学函数 134 常用三角函数和超越函数 135 A 3 3 5 2 4 6 7 8 9 A 335246789 log A ans 1 09861 09861 60940 69311 38631 79181 94592 07942 1972 sqrt A ans 1 73211 73212 23611 41422 00002 44952 64582 82843 0000 cos A ans 0 9900 0 99000 2837 0 4161 0 65360 96020 7539 0 1455 0 9111 pow2 A ans 883241664128256512 2 Aans 883241664128256512 136 所谓符号计算是指在运算时 无须事先对变量赋值 而将所得到结果以标准的符号形式来表示 MathWorks公司以Maple的内核作为符号计算引擎 Engine 依赖Maple已有的函数库 开发了实现符号计算的两个工具箱 基本符号工具箱和扩展符号工具箱 MATLAB的符号计算 137 一 定义符号变量参与符号运算的对象可以是符号变量 符号表达式或符号矩阵 符号变量要先定义 后引用 可以用sym函数 syms函数将运算量定义为符号型数据 引用符号运算函数时 用户可以指定函数执行过程中的变量参数 若用户没有指定变量参数 则使用findsym函数默认的变量作为函数的变量参数 一 符号计算基础 138 1 sym函数sym函数的主要功能是创建符号变量 以便进行符号运算 也可以用于创建符号表达式或符号矩阵 用sym函数创建符号变量的一般格式为 x sym x 其目的是将 x 创建为符号变量 以x作为输出变量名 每次调用该函数 可以定义一个符号变量 一 符号计算基础 一 定义符号变量 139 例1 作符号计算 a b x y均为符号运算量 在符号运算前 应先将a b x y定义为符号运算量 一 符号计算基础 一 定义符号变量 140 a sym a 定义 a 为符号运算量 输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年版企业破产重整合同
- 2024年度无息个人婚礼筹备借款协议书下载3篇
- 2025年日喀则货运资格证模拟考试
- 2024年停薪留职期间员工社会保险及福利协议合同3篇
- 2025购房合同的范本 购房合同样本
- 2025年柳州货运从业资格证考试卷
- 洛阳理工学院《内科护理学2》2023-2024学年第一学期期末试卷
- 2024年墓地环境优化协议3篇
- 汽车俱乐部喷泉建设合同
- 2024年度家电品牌全国巡回展销合同范本3篇
- 【MOOC】法理学-西南政法大学 中国大学慕课MOOC答案
- 辽宁省普通高中2024-2025学年高一上学期12月联合考试语文试题(含答案)
- 储能运维安全注意事项
- 2024蜀绣行业市场趋势分析报告
- 电力法律法规培训
- 北京交通大学《成本会计》2023-2024学年第一学期期末试卷
- 2024年世界职业院校技能大赛“智能网联汽车技术组”参考试题库(含答案)
- 【课件】校园安全系列之警惕“死亡游戏”主题班会课件
- 化工企业冬季安全生产检查表格
- 2024年工程劳务分包联合协议
- 蜜雪冰城员工合同模板
评论
0/150
提交评论