matlab 第二章学习内容.ppt_第1页
matlab 第二章学习内容.ppt_第2页
matlab 第二章学习内容.ppt_第3页
matlab 第二章学习内容.ppt_第4页
matlab 第二章学习内容.ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB SDU 1 第二章MATLAB数值计算基础 MATLAB SDU 2 outline MATLAB距阵计算初步MATLAB数值计算 MATLAB SDU 3 引导 数组 是指由一组实数或复数排成的长方阵列 Array 数组运算 是指无论在数组上施加什么运算 或函数 总认为那种运算对被运算数组中的每个元素 Element 平等地实施同样的操作 MATLAB精心设计数组和数组运算的目的在于 使计算程序简单 易读 使程序指令更接近于教科书上的数学计算公式 提高程序的向量化程度 提高计算效率 节省计算机开销 例 MATLAB SDU 4 数组 矩阵的基本运算 MATLAB语言最基本的特点在于矩阵运算 绝大多数的变量和数据都可看成为矩阵变量和矩阵数据 应用MATLAB语言编程时 尤其要注意矩阵的阶数和向量的维数问题 标量可看作1 1阶的矩阵 MATLAB SDU 5 第一节数组与矩阵的创建 一维数组的创建二维数组的创建多 高 维数组的创建 MATLAB SDU 6 一维数组的创建 1 逐个元素输入法x 2pi 2sqrt 3 3 5i 2 冒号生成法通过 步长 设定 生成一维 行 数组的方法 通用格式 x a inc b 3 定数线性采样法在设定的 总点数 下 均匀采样生成一维 行 数组 通用格式 x linspace a b n 说明 该指令生成 1 n 数组 其作用与x a b a n 1 b同 MATLAB SDU 7 一维数组的子数组寻访和赋值 例1 子数组的寻访 Address 例2 子数组的赋值 Assign MATLAB SDU 8 二维数组的创建 二维数组 是由实数或复数排列成矩形而构成的 从数据结构上看 矩阵和二维数组没有什么区别 当二维数组带有线性变换时 该二维数组就是矩阵 直接输入法利用M文件创建和保存数组 MATLAB SDU 9 直接输入法 对于较小数组 从键盘上直接输入最方便 二维数组必须有以下三个要素 整个输入数组必须以方括号 为其首尾 数组的行与行之间必须用分号 或回车键 Enter 隔离 数组元素必须由逗号 或空格分隔 实例 MATLAB SDU 10 利用M文件创建和保存数组 对于今后经常需要调用的数组 尤其是比较大而复杂的数组 为它专门建立一个M文件是值得的 M文件的创建过程 MATLAB SDU 11 二维数组元素的标识 编号 全下标 标识 单下标 标识 逻辑1 标识 MATLAB SDU 12 全下标 标识 全下标 标识法 即指出是 第几行 第几列 的元素 优点 几何概念清楚 引述简单 对于二维数组来说 全下标 标识由两个下标组成 行下标 列下标 例 矩阵A 123456789101112131415 则A 2 3 8 A 3 2 12A 3 5 15 A 1 5 5 MATLAB SDU 13 单下标 标识 单下标 LinearIndex 标识 就是 只用一个下标来指明元素在数组中的位置 一维编号 先设想把二维数组的所有列 按先左后右的次序 首尾相接排成 一维长列 然后 自上往下对元素位置进行编号 例 矩阵A 123456789101112131415 则A 2 6 A 5 7 A 8 8 A 12 14 MATLAB SDU 14 单下标 与 全下标 的转换关系 以 m n 的二维数组A为例 若 全下标 元素位置是 第r行 第c列 那么相应的 单下标 为l c 1 m r MATLAB有两个指令可实现以上表示方法间的转换 Sub2ind据全下标换算出单下标 Ind2sub据单下标换算出全下标 MATLAB SDU 15 逻辑1 标识 所谓 逻辑1 标识法是 通过与A同样大小的逻辑数组L中 逻辑值1 所在的位置 指出A中元素的位置 L的元素或是0或是1 它是 逻辑数组 LogicalArray 是一种特殊的数据类型 例 MATLAB SDU 16 二维数组的子数组寻访和赋值 子数组寻访和赋值格式汇总表不同赋值方式示例 MATLAB SDU 17 子数组寻访和赋值格式汇总表 MATLAB SDU 18 子数组与下标寻址举例 4 10 1 6 2 8 1 2 9 4 25 7 2 5 7 1 11 0 0 5 4 5 56 23 83 13 0 10 12345 12345 16111621271217223813182349141924510152025 A A 3 1 A 3 A 1 5 5 A 5 A 21 25 A 4 5 2 3 A 914 1015 MATLAB SDU 19 End运算符号 End来表示某一维的末尾元素下标例如A end MATLAB SDU 20 多 高 维数组的定义 数组的第一维称为 行 Row 第二维称为 列 Column 第三维称为 页 Page 第四维称为 箱 Box MATLAB SDU 21 多 高 维数组的创建 创建多维数组最常用的四种方法 直接通过全下标元素赋值方式创建多维数组 由若干同样大小的低维数组组合成多维数组 由函数ones zeros rand randn直接创建标准多维数组 借助cat repmat reshape等函数构作多维数组 例 MATLAB SDU 22 多维数组的标识 数组的维数 Dimension 和ndims指令指令ndims A 可直接给出数组A的维数 数组的大小 Size 和size指令不管A数组的维数是多少 size A 可给出A各维的大小 而指令length A 可给出所有维中的最大长度 即length A 等价于max size A MATLAB SDU 23 第二节数组运算 点运算 数组运算 是指无论在数组上施加什么运算 或函数 总认为那种运算对被运算数组中的每个元素 Element 平等地实施同样的操作 当两个数组具有相同阶数时 进行加 减 乘 除的点运算 其运算是按元素对元素方式进行的 例 MATLAB SDU 24 2 数组乘除 a b a b两数组必须有相同的行和列两数组相应元素相乘 a 123 456 789 b 246 135 7910 a bans 281841530497290 MATLAB SDU 25 a 123 456 789 b 246 135 7910 a bans 253746558510985133172 MATLAB SDU 26 a b b aa b b aa b b a 都是a的元素被b的对应元素除a b b a 都是b的元素被a的对应元素除例 a 123 b 456 c1 a b c2 b ac1 4 00002 50002 0000c2 4 00002 50002 0000 给出a b对应元素间的商 MATLAB SDU 27 第三节矩阵运算 矩阵加减乘除等运算矩阵的操作变换矩阵函数 MATLAB SDU 28 矩阵运算1 基本算术运算MATLAB的基本算术运算有 加 减 乘 右除 左除 乘方 注意 运算是在矩阵意义下进行的 单个数据的算术运算只是一种特例 MATLAB SDU 29 矩阵加减运算假定有两个矩阵A和B 则可以由A B和A B实现矩阵的加减运算 运算规则是 若A和B矩阵的维数相同 则可以执行矩阵的加减运算 A和B矩阵的相应元素相加减 如果A与B的维数不相同 则MATLAB将给出错误信息 提示用户两个矩阵的维数不匹配 MATLAB SDU 30 2 矩阵乘法假定有两个矩阵A和B 若A为m n矩阵 B为n p矩阵 则C A B为m p矩阵 MATLAB SDU 31 矩阵乘 运算规则 A矩阵的列数必须等于B矩阵的行数标量可与任何矩阵相乘 a 123 456 780 b 1 2 3 c a bc 143223 MATLAB SDU 32 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 MATLAB SDU 33 a p a自乘p次幂 方阵 1的整数 3 矩阵乘方 a n a p p a 对于p的其它值 计算将涉及特征值和特征向量 如果p是矩阵 a是标量a p使用特征值和特征向量自乘到p次幂 如a p都是矩阵 a p则无意义 MATLAB SDU 34 a 1 2 3 4 5 6 7 8 9 a 2ans 303642668196102126150 当一个方阵有复数特征值或负实特征值时 非整数幂是复数阵 MATLAB SDU 35 a 0 5ans 0 4498 0 7623i0 5526 0 2068i0 6555 0 3487i1 0185 0 0842i1 2515 0 0228i1 4844 0 0385i1 5873 0 5940i1 9503 0 1611i2 3134 0 2717i MATLAB SDU 36 inv 矩阵求逆det 行列式的值eig 矩阵的特征值diag 对角矩阵 矩阵转置 矩阵的函数以及其它操作变换 MATLAB SDU 37 矩阵的逆与伪逆 矩阵的逆对于一个方阵A 如果存在一个与其同阶的方阵B 使得 A B B A I I为单位矩阵 则称B为A的逆矩阵 当然 A也是B的逆矩阵 求一个矩阵的逆是一件非常烦琐的工作 容易出错 但在MATLAB中 求一个矩阵的逆非常容易 求方阵A的逆矩阵可调用函数inv A 例用求逆矩阵的方法解线性方程组 Ax b其解为 x A 1b MATLAB SDU 38 2 矩阵的伪逆如果矩阵A不是一个方阵 或者A是一个非满秩的方阵时 矩阵A没有逆矩阵 但可以找到一个与A的转置矩阵A 同型的矩阵B 使得 A B A AB A B B此时称矩阵B为矩阵A的伪逆 也称为广义逆矩阵 在MATLAB中 求一个矩阵伪逆的函数是pinv A MATLAB SDU 39 方阵的行列式 把一个方阵看作一个行列式 并对其按行列式的规则求值 这个值就称为矩阵所对应的行列式的值 在MATLAB中 求方阵A所对应的行列式的值的函数是det A MATLAB SDU 40 矩阵的特征值与特征向量 在MATLAB中 计算矩阵A的特征值和特征向量的函数是eig A 常用的调用格式有3种 1 E eig A 求矩阵A的全部特征值 构成向量E 2 V D eig A 求矩阵A的全部特征值 构成对角阵D 并求A的特征向量构成V的列向量 MATLAB SDU 41 3 V D eig A nobalance 与第2种格式类似 但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量 而格式3直接求矩阵A的特征值和特征向量 MATLAB SDU 42 矩阵的超越函数 1 矩阵平方根sqrtmsqrtm A 计算矩阵A的平方根 2 矩阵对数logmlogm A 计算矩阵A的自然对数 此函数输入参数的条件与输出结果间的关系和函数sqrtm A 完全一样3 矩阵指数expm expm1 expm2 expm3expm A expm1 A expm2 A expm3 A 的功能都求矩阵指数eA MATLAB SDU 43 普通矩阵函数funmfunm A fun 用来计算直接作用于矩阵A的由 fun 指定的超越函数值 例 当fun取sqrt时 funm A sqrt 可以计算矩阵A的平方根 与sqrtm A 的计算结果一样 MATLAB SDU 44 5 矩阵的一些特殊操作 矩阵的变维a 1 12 b reshape a 3 4 c zeros 3 4 c a 矩阵的变向rot90 旋转 fliplr 上翻 flipud 下翻矩阵的抽取diag 抽取主对角线 tril 抽取主下三角 triu 抽取主上三角矩阵的扩展 MATLAB SDU 45 数组运算和矩阵运算的区别 从外观形状和数据结构上看 二维数组和 数学中的 矩阵没有区别 但是 矩阵作为一种变换或映射算子的体现 矩阵运算有着明确而严格的数学规则 数组运算是MATLAB软件所定义的规则 其目的是为了数据管理方便 操作简单 指令形式自然和执行计算的有效 虽然数组运算尚缺乏严谨的数学推理 数组运算本身仍在完善和成熟中 但它的作用和影响正随着MATLAB的发展而扩大 MATLAB SDU 46 数组运算和矩阵运算指令对照汇总 一 MATLAB SDU 47 数组运算和矩阵运算指令对照汇总 二 MATLAB SDU 48 复数矩阵 复数矩阵中的元素的虚数部分用i和j方式来输入 显示时只用i方式表示 复数矩阵可以有两种方式表示 A 12 34 i 56 78 A 1 5 i2 6 I 3 7 i4 8 i 其显示结果是一样的 MATLAB SDU 49 特殊矩阵 非数NaN 空 数组 空阵 全0阵单位阵全1阵随机阵其他特殊矩阵 MATLAB SDU 50 非数NaN 按IEEE规定 0 0 0 等运算都会产生非数 NotaNumber 该非数在MATLAB中用NaN或nan记述 根据IEEE数学规范 NaN具有以下性质 NaN参与运算所得的结果也是NaN 即具有传递性 非数没有大小概念 因此不能比较两个非数的大小 非数的功用 真实记述0 0 0 运算的后果 避免可能因0 0 0 运算而造成程序执行的中断 在数据可视化中 用来裁剪图形 MATLAB SDU 51 空 数组 空阵 空 数组是MATLAB为操作和表述需要而专门设计的一种数组 某维长度为0或若干维长度均为0的数组都是 空 数组 空 数组的功用 在没有 空 数组参与的运算时 计算结果中的 空 可以合理地解释 所得结果的含义 运用 空 数组对其他非空数组赋值 可以改变数组的大小 但不能改变数组的维数 MATLAB SDU 52 第四节关系操作和逻辑操作 在程序流控制和逻辑 模糊逻辑推理中 都需要对一类是非问题作出 是真 是假 的回答 为此MATLAB设计了关系操作 逻辑操作和一些相关函数 MATLAB的约定 在所有关系表达式和逻辑表达式中 作为输入的任何非0数都被看作是 逻辑真 而只有0才被认为是 逻辑假 所有关系表达式和逻辑表达式的计算结果 即输出 是一个由0和1组成的 逻辑数组 LogicalArray 在此数组中的1表示 真 0表示 假 逻辑数组是一种特殊的数值数组 MATLAB SDU 53 关系操作和逻辑操作 关系操作逻辑操作关系 逻辑函数 MATLAB SDU 54 关系操作 算例 MATLAB SDU 55 逻辑操作 MATLAB SDU 56 关系 逻辑函数 MATLAB中能给出 逻辑数组 类型计算结果的函数有很多 包括 关系逻辑函数 工作状态判断函数 特殊数据判断函数 数据类型判断函数等 关系逻辑函数特殊数据判断指令数据类型判断指令 MATLAB SDU 57 关系逻辑函数 MATLAB SDU 58 特殊数据判

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论