matlab数值计算功能.ppt_第1页
matlab数值计算功能.ppt_第2页
matlab数值计算功能.ppt_第3页
matlab数值计算功能.ppt_第4页
matlab数值计算功能.ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1 第二章MATLAB的数值计算功能 2 2 1变量及其赋值 2 1 1变量 3 MATLAB严格区分大小写字母 因此 A和a是不同的变量 变量由变量名表示 变量的命名应遵循如下规则 1 变量名必须以字母开头 由字母 数字和下划线混合组成 不允许使用空格 标点符号 2 变量名的字符长度不应超过31个 对于6 x版本 4 关键字 如if while等 不能作为变量名 Sin是变量名 而sin是正弦函数名 3 eps 容差变量 定义为1 0到最近浮点数的距离 在pc机上 2 52pi 圆周率 的近似值3 1415926inf或Inf 表示正无穷大 定义为1 0NaN 非数 它产生于0 0 0 等运算i j 虚数单位ans 对于未赋值运算结果 自动赋给ans 永久变量 如果用户给永久变量赋值 原始默认值丢失 直至清除变量或重启Matlab 4 2 1 2 MATLAB的语句 1 百分号 注释符 与其它程序语言一样 为了方便其他人及日后自己对程序的阅读 增加程序的可读性 需要在MATLAB文件中加入注释 注释行必须以 号开始 执行文件时 号后面的语句不予执行 2 逗号和分号 在赋值语句中 逗号 空格 用在同一行中各元素之间 分号用在行与行之间 多条语句放在一行 用逗号分开表示要求显示结果 由分号分开表示不要求显示结果 5 3 续行标志 当一条语句或矩阵太长 一行不能显示时 可用续行标志 另起一行继续完成该条语句的书写 4 中断键 在命令的执行过程中 可以随时按下CTRL C键中断MATLAB的运行 6 2 1 3矩阵及其元素的赋值 矩阵是MATLAB进行数据处理的基本单元 MATLAB的大部分运算都是在矩阵的意义上进行的 MATLAB中的变量或常量都代表矩阵 标量应看作是1 1阶的矩阵 矩阵运算也是MATLAB最重要的运算 矩阵的创建可以通过以下几种形式 1 直接列出元素 2 通过语句和函数产生 3 从外部文件装入 4 在M中文件建立 7 1 直接输入矩阵 例如输入语句a 123 456 789 a 123456789 创建矩阵的基本原则 1 矩阵的所有元素必须放在方括号 内 2 矩阵元素之间必须用逗号 或空格隔开 3 矩阵行与行之间用分号 或回车符隔开 4 矩阵元素可以是数字或表达式 8 eye n 单位矩阵 n n阶的方阵 zeros m n 元素全为零的m n阶矩阵 ones m n 元素全为1的m n矩阵 rand m n 元素为在 0 1 上均匀分布的m n随机矩阵 randn m n 元素为正态分布的m n随机矩阵 magic n 魔方矩阵 其特点是元素由1到n2的自然数组成 每行 每列及两对角线上的元素之和均等于 n3 n 2 几种特殊矩阵的产生 2 由函数创建矩阵 9 3 从外部数据文件调入矩阵 例如 目录C ProgramFiles MATLAB R2007b work matlab training下有生物医学信号的文本文件bio signal txt 在命令窗口输入 load load C ProgramFiles MATLAB R2007b work matlab training bio signal txt 从磁盘读入 mat文件 或读入排列成矩阵的 txt文件 10 importdata 例如 目录C ProgramFiles MATLAB R2006a work temp下有生物医学信号的文本文件bio signal txt 在命令窗口输入 importdata C ProgramFiles MATLAB R2006a work temp bio signal txt 其他方法 fopen fread textscan fscan fclose 从文件中读入数据 能自动分析文件的格式 应用广泛 11 数据存储save savefilenameabc把a b c三个变量保存在文件名为filename mat的文件中 savefilename把全部内存变量保存为filename mat文件 savefilenameabc append把a b c三个变量添加到文件名为myfile mat的文件中 12 clear 删除工作空间内的所有变量N 1000 x rand 1 N 产生一个随机向量y 5 saverand dataxy 把xy存入文件rand data mat中saverand data txt txtx asciiclear 删除工作空间内的所有变量load rand data mat 把文件rand data mat中的变量载入工作空间 示例 13 2 1 4向量的生成 数组可以看成是行向量 即只有一行或一列的矩阵 前面介绍的所有矩阵的建立和保存的方法 对向量同样适用 1 利用冒号 创建等差数列 t 初值 增量 终值 其中 增量 是可以省略的 省略时 默认的增量步长为1 增量也可以是负值 但此时 初值应该大于终值 例如 x 1 5 y 0 pi 4 2 pi z 6 1 0 14 2 利用函数linspace和logspace创建向量 linspace函数 创建指定长度的等距向量 例 k linspace pi pi 4 t linspace 初值d1 终值d2 点数n logspace函数 创建对数等距的向量 y logspace d1 d2 y logspace d1 d2 N 从10的d1次幂到d2次幂之间按等比级数等分为N个点 N缺省时 默认为50 在线性空间上 行矢量的值从d1到d2 数据个数n 缺省时n为100 15 2 1 5矩阵的下标 创建了矩阵之后 若要调用矩阵里的元素 就要了解单个元素标志和寻访的3种方式 1 全下标 标志 全下标 标志由行下标和列下标组成 例如 A 3 5 标志矩阵A的第3行第5列元素 2 单下标 标志 A 3 矩阵A的第三行 A 把矩阵A转换成列向量 按列计数 表示下标 A 0 95010 48600 45650 23110 89130 01850 60680 76210 8214 A 8 ans 0 0185 16 A 4 2 0 2 4 3 1 1 3 5 L abs A 3islogical L X A L 创建矩阵A 建立矩阵L 判断L中是否有逻辑1 指出A中绝对值大于3的元素 3 逻辑矩阵 L 1000100001 X 445 17 2 1 6复数表示 1 将其元素逐个赋予复数 2 将其实部和虚部矩阵分别赋值 如z 1 3 5 7 2 4 6 8 i 号不能省略 如z 1 2i 3 4i 5 6i 7 8i 若在前面程序中曾经给i或j赋过值 则i或j就不再是虚数单位 此时应把赋值的i或j清除再执行虚数赋值语句 18 clear命令 删除变量 删除内存变量 clear操作通常有两种方式 clear清除当前工作空间中的全部变量 clearabc清除当前工作空间中的变量a b c 被清除的变量之间只能用空格 不能用逗号或分号 因为在一条指令中 逗号和分号都表示该指令结束 不同的是逗号结束的指令要显示运算结果 而分号结束的指令不显示执行结果 19 a 1 b 2 c 3 cleara b cc 3 bb 2 a Undefinedfunctionorvariable a 例 用clear命令时 系统不会给出确认提示 一旦删除将不能恢复 20 1 请指出如下5个变量名中 哪些是合法的 abcd 2xyz 33chana变量ABCDefg 5 使用两种方法产生 0 3 pi 等间隔分布10个点的向量 2 指令clear clc各有什么用处 3 创建一个6阶的魔方矩阵A把第3行第4列的元素赋给B把第2行 第4行的所有元素赋给C 4 矩阵A 2459 463 7 找出A中大于3的元素赋值给B 练习 21 2 2 1who和whos命令 who whos 查看工作空间里所有的变量who whos ab查看工作空间里的变量a和b 被查看的变量之间只能用空格 不能用逗号或分号 当想个给某一个变量赋值时 为了避免与已存在的变量同名 就要用exist查询当前的工作空间内是否存在该变量 调用格式 x exist A 2 2常用管理命令 22 例 a 123 456 b 25 89 i c 23 5 whoYourvariablesare abc whosNameSizeBytesClassa2x348doublearrayb1x232doublearray complex c1x18doublearrayGrandtotalis9elementsusing88bytes 23 2 2 2format命令 数据格式 format用来控制数据显示格式 formatcompact数据显示紧凑格式 formatloose数据显示稀疏格式 系统默认 format命令只改变数字的显示格式 并不改变数字的大小 24 format命令只改变数字的显示格式 并不改变数字的大小 25 2 3matlab的常用数学函数 matlab提供了几乎所有的初等数学函数 包括三角函数 对数函数 指数函数和复合运算函数等 函数名 变量 函数的运算分别作用于变量的每一个元素 所有函数名都是小写字母 函数的一般调用格式为 26 27 28 对零方向取整数 29 2 4矩阵与数组运算 矩阵运算是按照线性代数的运算法则定义的 数组运算是按元素逐个执行的 矩阵加 减 运算 相加 减的两矩阵必须有相同的行和列两矩阵对应元素相加减 2 4 1矩阵与数组的算术运算 Matlab有两类运算指令 矩阵算术运算和数组算术运算 A B A B A B必须同维 30 2 乘 运算 A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘 矩阵乘 运算A B 数组乘 运算A B A B维数相同 相应元素相乘 A 123 456 789 B 246 135 7910 A B Am n Bn p c Bn p 31 3 乘方 运算 矩阵乘方 运算A p 矩阵A必须是方阵 A和p不能同时为矩阵 当p取整数时 该指令的运算结果可以做如下的理解 当p 0时 A p表示方阵A的直接自乘p次 当p 0时 A p表示方阵A的逆矩阵直接自乘p次 当p 0时 A p表示与方阵A同维的单位阵 当p取非整数时 该指令的运算结果可以做如下的理解 若A可以分解为A WDW 1 D为对角阵 那么可定义 A p WD pW 1 32 ans 303642668196102126150 当一个方阵有复数特征值或负实特征值时 非整数幂是复数阵 a 1 2 3 4 5 6 7 8 9 a 2 ans 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 a 0 5 例 33 数组乘方 运算A B 数组A与数组B对应元素的乘方运算 A和B必须为同维矩阵 B可以是标量 此时表示数组A中的每一个元素进行B次幂的运算 例 a 123 b 456 z a b z a 2 z 1 004 009 00 z 1 0032 00729 00 34 4 除 运算 矩阵的除运算在线性代数中没有 只有矩阵求逆的运算 在MATLAB中有两种矩阵除运算 规则 左除 A B A 1B A为方阵右除 A B AB 1 B为方阵 任何矩阵都可除以标量 矩阵除 运算 35 写成矩阵Ax b 求解线性方程组 3x1 x2 x3 3 6x1 2x2 4x3 2 1 x1 4x2 5x3 1 4 A 31 1 124 145 b 3 6 2 1 1 4 x A bx 1 4818 0 46060 3848 例 36 5 转置 运算 矩阵共轭转置 运算 a 1 2i3 2i a 1 0000 2 0000i3 0000 2 0000i a ans 1 0000 2 0000i3 0000 2 0000i 例 37 矩阵的转置 只是将排列形式进行转置 矩阵转置 运算 a 1 2i3 2i a 1 0000 2 0000i3 0000 2 0000i a ans 1 0000 2 0000i3 0000 2 0000i 例 对于实数矩阵用 符号或 求转置结果是一样的 38 1 矩阵大小 size命令 m n size A x 返回矩阵的行列数m与n 当x 1 则只返回行数m 当x 2 则只返回列数n length命令 n length A 当A为数组时 返回数组的元素个数 当A为矩阵时 返回矩阵行数或列数的最大值 length A max size A 2 4 2矩阵的块操作 39 3 A magic 4 找出A 5的位置 并将该位置置为20 相当于 A 2 B 3 习题1 A 3 B 4计算 A 2 B 3的结果 2 a 1 2 3 b 4 5 6 A a bB a bC a bD a b以上各计算是否可实现 A magic 4 x find A 5 A x 20 40 2 4 3矩阵函数 V D eig A 矩阵的特征相量与特征值 A为方阵 D是特征值组成的对角矩阵 V是对应的特征向量 d eig A 矩阵A的所有特征值 A 0 6 1 62 16 520 10 d eig A d 3 0710 2 4645 17 6008i 2 4645 17 6008i 41 det A 计算矩阵A的行列式的值 A必须为方阵 rank A 求矩阵A的秩 inv A 计算矩阵A的逆 A必须为方阵 trace A 求矩阵A的对角线元素的和 poly A 求矩阵A的特征多项式 roots poly A 求矩阵A的特征方程的特征根 42 矩阵A的特征值 矩阵特征多项式 手工计算特征值 43 矩阵对角元素之和 求A的行列式的值 44 求矩阵A的逆阵 45 sqrtm命令与sqrt不同 矩阵平方根 46 矩阵的对数 47 使用时应注意这些对命令之间的区别 矩阵求幂 48 2 4 4基本的数据分析 常用的数据处理命令 49 data 15449836715899817515510068861456375961456375961415565751555664851478987771479654100145607667 max data ansmin data ans 141495467 mean data ans 149 200073 000072 800082 4000 median data ans 147637581 50 MATLAB的基本数据处理功能是按列向量进行的 因此要求待处理的数据矩阵按列向量分类 而行向量则表示数据的不同样本 sum data ans 1492730728824 std data ans 5 750420 407010 042112 0757 51 2 5多项式运算 2 5 1多项式的表达与创建 多项式的系数按降幂次序排列而形成的行向量来表征一多项式 多项式 多项式的行向量 52 表示多项式的行向量元素的个数应该为多项式的最高幂次加一 53 用常规的形式表示多项式 命令格式 poly2str P x p 120 56 p 120 56 ps poly2str p x ps x 4 2x 3 5x 6 54 2 5 2多项式求根及其逆运算 多项式求根 roots指定根求系数 ploy 55 多项式的根按列向量存储 多项式的系数按行向量存储 56 2 5 3多项式的四则运算 1 加法与减法 多项式的加减法为多项式对应元素的加减法 多项式的阶数可以不同 但应当补充0元素使其行向量元素数目相等 否则不能相加减 57 加法 58 减法 59 2 乘法 两个多项式相乘由函数conv 来完成 其调用格式为 R conv A B 3 除法 d r deconv c a 命令完成多项式除运算 d 商的系数向量 r 余式的系数向量 也称为卷积 也称为解卷积 60 61 2 5 4多项式的微分与赋值运算 1 微分运算 多项式的微分由命令polyder完成 2 赋值运算 给出x的范围 命令polyval可计算多项式的值 Polynomialevaluation Polynomialdifferential 62 63 多项式乘法不要求阶数相同 64 65 2 5 5有理多项式 有理多项式由分子多项式和分母多项式表示的 可以用residue命令进行部分分式展开 该命令的形式为 r p k residue num den 根据给出的r p k的值 可以用residue命令求出有理多项式形式 命令格式为 num den residue r p k 2个参数 3个参数 66 2 6字符运算 自学 我们使用不多 67 2 7 元胞数组cell 元胞数组可以包含多种数据结构 C str char 这是 元胞数组创建算例1 R reshape 1 9 3 3 Cn 1 2i S sym sym sin 3 t exp t 1 直接创建法A 1 1 C str A 1 2 R A 2 1 Cn A 2 2 S sym AA 2x10char 3x3double 1 0000 2 0000i 1x1sym 68 元胞数组内容的调取 A 2x10char 3x3double 1 0000 2 0000i 1x1sym A 1 1 ans 2x10char A 1 1 ans 这是元胞数组创建算例1 访问cell 访问cell里的内容 A 1 1 1 表示什么 69 2 8结构体数组structarray 构建一个1 1的struct 描述温室数据 包括温室名 容积 温度 湿度等

温馨提示

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

评论

0/150

提交评论