matlab工程应用基础讲义.ppt_第1页
matlab工程应用基础讲义.ppt_第2页
matlab工程应用基础讲义.ppt_第3页
matlab工程应用基础讲义.ppt_第4页
matlab工程应用基础讲义.ppt_第5页
免费预览已结束,剩余235页可下载查看

下载本文档

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

文档简介

Matlab工程应用基础ApplicationofMatlabinEngineering 学时 32 讲课16 上机16 学分 2适用对象 工程类专业本科生教学方法 授课 上机练习和自学相结合考核要求 平时成绩 以上机为主 30 最终考试70 授课教师 姜歌东 gdjiang 上课 星期1 4 7 8节 教学主楼 C106上机 星期2 5 7 8节 计算机教学实验中心 使用教材及参考书 1 苏晓生 掌握Matlab6 0及其工程应用 北京科学出版社2002 2 王沫然编 Matlab与科学计算 第2版 电子工业出版社 2003 3 Magrab EdwardB 著 高会生等译 Matlab原理与工程应用 北京电子工业出版社 2002 4 精锐创作组编著 Matlab6 0科学运算完整解决方案 人民邮电出版社 2001 课程的性质 目的和任务 Matlab是一个可视化的计算程序 被广泛地应用在科学运算领域里 它具有功能强大 使用简单等特点 内容包括 数值计算 符号计算 数据拟合 图形图像处理 系统模拟和仿真分析等功能 此外 用Matlab还可以进行动画设计 有限元分析等 本课程的目的是使学生能够运用Matlab进行一般的工程计算 掌握Matlab的基本技术 基本计算 矩阵处理 符号运算和图形显示技术等 为将来从事工程技术方面的产品开发 科学研究 工程计算和管理打下一定的基础 教学基本要求 1 了解Matlab语言特点 熟悉Matlab视窗环境 掌握Matlab帮助功能的基本使用方法 2 掌握Matlab中变量和函数的有关概念 以及矩阵和多项式的构造方法 掌握数组运算和矩阵运算 并能够使用常用的几种常用的函数进行简单问题的求解 3 搞清符号变量和符号表达式的定义 并能用符号运算解决一般的微积分和方程求解问题 掌握Matlab程序设计的几种基本控制转移语句 学会使用简单M文件的编程 4 掌握二维平面图形和三维立体图形的绘制方法 进行数据可视化处理 理解用户图形界面程序的构造 掌握编程方法 第1章Matlab概述 1 Matlab简介2 Matlab的工作环境3 Matlab帮助系统 Matlab简介 1 MATLAB的起源与发展MATLAB是 矩阵实验室 MATrixLABoratory 的缩写 最初版本是由CleveMoler博士用FORTRAN语言开发的矩阵分析软件 80年代初期 由CleveMoler和JohnLittle采用C语言改写了MATLAB的内核 成立了Mathworks软件开发公司 并于1984年将MATLAB正式推向市场 1992年初推出了应用于Windows操作系统的MATLAB4 x版本 1997年推出5 1版本 1998年推出5 2版本 1999年推出MATLAB5 3版本 MATLAB5 3对应于Release11 2000年又推出了更为简便易学的MATLAB6 0版本 MATLAB6 0对应于Release12 Matlab简介 2 MATLAB的主要特点MATLAB的基本单位为矩阵 MATLAB语言以解释方式工作 具有非常友好的人机界面 具有强大的作图和数据可视化功能 具有极强的可扩展性 3 MATLAB的基本组成MATLAB主程序 Simulink动态系统仿真和MATLAB工具箱 Toolbox 三大部分组成 主程序包括了MATLAB语言 工作环境 句柄图形 数学函数库和应用程序接口五部分 Matlab工作环境界面 1 MATLAB的启动桌面快捷方式启动开始菜单方式启动2 MATLAB和退出Matlab菜单命令 关闭按钮在Matlab命令窗口输入exit或quit Matlab工作环境界面 包含一行标题栏 一行菜单栏 一行工具栏 五个工作窗口和一行注释栏 五个工作窗口分别为 发射台 LaunchPad 工作区 Workspace 命令历史 CommandHistory 当前路径 CurrentDirectory 和命令窗口 CommandWindows 1 MATLAB菜单项File 文件 菜单Edit 编辑 菜单View 视图 菜单Window 窗口 菜单Web 连网信息 Help 帮助 菜单 Matlab工作环境界面 Matlab工作环境界面 2 MATLAB工具栏 用MATLAB的M文件编辑器新建一个M文件 用MATLAB编辑器打开一个文件 将选中的内容剪切到剪贴板 将选中的内容复制到剪贴板 将剪贴板中的内容粘贴到光标指定的位置 撤消最近一次的操作 打开Simulink浏览器 打开MATLAB帮助窗口 当前工作路径 例1 1绘制函数y 2sin 1 x 的图像 并计算当x 0 5时的函数值 Matlab工作环境界面 x 1 0 1 10 给出自变量x的定义域y 2 sin 1 x 写出函数形式plot x y 绘出函数图形y 2 sin 1 0 5 求当x 0 5时的y值 其后不加分号 直接在窗口中给出结果y 1 9950 输出y的计算结果 Matlab工作环境界面 例1 2绘制函数y 3x3 10 x2 5x 8的图像 fori 1 100 x i 0 1 i y i 3 x i 3 10 x i 2 5 x i 8 endplot x y Matlab工作环境界面 3 MATLAB通用命令 Matlab帮助系统 1 Matlab联机帮助 工具条中的 按钮 help菜单栏中前2项中的任何一项 在命令窗口中执行helpdesk或doc 2 Matlab的网上资源web菜单栏 Matlab帮助系统 3 Matlab常用的窗口帮助命令 Matlab帮助系统 help命令直接输入help MATLAB将列出所有的帮助主题 每个帮助主题对应于MATLAB搜索路径中的一个目录 help后加帮助主题 可获得指定帮助主题的帮助信息 help后加函数名 help后加命令名 将得到指定命令的用法 Matlab帮助系统 demo命令 基本矩阵演示窗口 MATLAB演示窗口 Matlab帮助系统 helpwin命令用于打开MATLAB的帮助文件窗 Matlab帮助系统 lookfor命令允许用户通过完整的或部分关键字来搜索要查找的内容who和whos的作用是列出在MATLAB工作内存中驻留的变量名exist命令用来查找或检查变量和函数的存在性 上机练习 1 1 以两种方式打开MATLAB工作窗口 进入MATLAB6 0的工作环境 并尝试用不同的方式退出 2 尝试 熟悉MATLAB6 0的各栏菜单以及各个工具栏的功能 3 重新启动MATLAB6 0 进入MATLAB工作窗口 用who命令查看当前工作空间内有无变量及其值 4 绘制函数y cos 5x 2 sin 3x 1 的图像 并求解当x 2时的函数值 5 此时再次用who命令查看工作空间内的变量名及其值 与 3 比较 同时用whos命令查看变量 比较与who命令的不同 6 熟练掌握MATLAB的通用命令 7 练习并熟练掌握MATLAB的帮助命令 学会利用MATLAB的帮助信息 8 用lookfor命令查找函数cos的信息 并与help命令查找的结果相比较 注意采用两种命令之间的差别 上课时间 周一 四 7 8节 地点 教学主楼 C106上机时间 周二 五 7 8节 地点 计算机教学实验中心教1南3层西头 网络中心隔壁 网上交作业时间 周五上机作业 截至当周周日晚12 00周二上机作业 截至当周周四晚12 00gdjiang 基本要求 1 了解Matlab的各种数据类型 2 掌握Matlab的运算符与操作符的含义和用法 3 掌握Matlab基本表达式并了解其常用函数分类 4 熟练掌握Matlab的程序结构 顺序结构 循环结构和分支结构 与流程控制语句 5 了解并初步掌握Matlab的数据文件的读写 6 学会Matlab的M文件的编写方法 包括命令文件和函数文件 了解M件的调试命令和调试方法 第2章Matlab语言程序设计 第2章Matlab语言程序设计 1 Matlab数据类型变量和常量数字变量的格式字符串单元型变量结构型变量矩阵 向量多项式 第2章Matlab语言程序设计 a 变量和常量变量 包括函数 的命名规则 由英文字母 数字和下划线混合组成 不得包含空格和标点 第一个字符必须是英文字母 最多包括31个字符 对字母的大小写敏感 局部变量和全局变量永久变量 常量 只能在某一函数体内使用 而不能从其他函数和Matlab工作空间访问的变量 就是局部变量 在几个函数及Matlab函数中都能使用的变量就是全局变量 全局变量名应尽可能大写 并由globe声明 第2章Matlab语言程序设计 Matlab永久变量 第2章Matlab语言程序设计 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 第2章Matlab语言程序设计 c 字符串所有字符串都用单引号括起来 s matlab 字符中中的每个字符 包括空格 都是字符串变量 矩阵或向量 中的一个元素 字符串中的字符以ASCII码形式储存并区分大小 用函数abs可以看到字符的ASCII码 在Matlab中 字符串和字符矩阵基本上是等价的 s matlab 等价于 s matlab 第2章Matlab语言程序设计字符串函数 第2章Matlab语言程序设计 字符串举例 A China 中国 输出带引号的汉字 B 我是好学生 c Iamfine s3 char s y m b o l i c 用函数char生成字符串 double s3 字符串转换为数值代码 abs s3 cellstr s3 字符矩阵转换为字符串 b num2str a 数字转换为字符串比较 b 2和str2num b 2 ab A B AB 中国 北京 第2章Matlab语言程序设计 d 单元型变量单元型变量是一种比较特殊的数据类型 本质上讲 单元型变量实际上是一种以任意形式的数据为元素的多维数组 单元型变量可以存放任何类型 任何大小的数据 其大小是不定的 A 1 2 3 4 A 1234 B 1 4 A abcd B 1x4double 2x2double abcd B为单元型变量 用花括号 cellplot B celldisp B 第2章Matlab语言程序设计 D a1 abcd D a2 1 D a3 1 2 3 4 DD a1 abcd a2 1a3 1234 D为结构型变量 e 结构型变量结构型变量是另一种可以将不同类型数据组合在一起的数据类型 与单元型变量的不同在于结构型变量是以指针方式来传递数据的 C struct c1 1 c2 B c3 abcd C 1x3structarraywithfields c1c2c3C为结构型变量 第2章Matlab语言程序设计 f 矩阵 向量Matlab是以矩阵为基本运算单元的 数组作为独立的计算单元实体是不存在的 它的建立 存储完全等同于矩阵 只是计算时在符号上做了不同的约定 向量是组成矩阵的基本元素之一 可以把行向量看成1 n阶矩阵 把列向量看成n 1阶矩阵 向量的基本运算采用数组运算法则 第2章Matlab语言程序设计 多项式多项式是以向量的形式表达的 可以是列向量也可以是行向量 p 1 2 3 poly2sym p ans x 2 2 x 3 m 3 4 5 poly2sym m ans 3 x 2 4 x 5 第2章Matlab语言程序设计 2 运算符与操作符 数学运算符 操作符 冒号 可以用来产生向量 用作矩阵的下标 部分地选择矩阵元素 进行行循环操作 续号 表示一行未完 而在下一行继续 分号 在方括号中 表示矩阵中行的结尾 用在每行的结尾 则不显示该行运算的结果 第2章Matlab语言程序设计 第2章Matlab语言程序设计 关于逻辑真假的规定 在所有的关系表达式和逻辑表达式中 输入的任何非0数都被看作是 逻辑真 而只有0才被认为是 逻辑假 所有关系表达式和逻辑表达式的计算结果是一个由0和1组成的 逻辑矩阵 LogicalArray 矩阵中的1表示 真 0表示 假 逻辑矩阵是一种特殊的数值矩阵 与 数值类 有关的操作和函数对它也适用 但它又不同于普通的 数值 它还表示对事物的判断结论 真 与 假 第2章Matlab语言程序设计 关系操作符 逻辑操作符 MATLAB的关系操作符运算法则 当两个变量是标量a和b时 若a b之间关系成立 则关系运算结果为1 若a b之间关系不成立 则关系运算结果为0 当两个维数相同的矩阵A和B比较时 矩阵A B比较的是相同位置的元素 按标量的运算规则逐个进行 关系运算的结果是一个和A维数相同的矩阵 它的元素由0和1组成 当一个矩阵A和一个标量b比较时 把标量b和矩阵A的每一个元素按标量关系运算规则逐个比较 关系运算的结果是一个和数组A维数相同的矩阵 它是由0和1组成 优先级由高到低为算术运算 关系运算和逻辑运算 第2章Matlab语言程序设计 第2章Matlab语言程序设计 A 3 4 8 9 0 2 5 3 7 A 348902537 B 4 4 1 7 8 4 5 1 7 B 441784517 E A B E 001100010 NE A B NE 101111010 A0 A 5 A0 001100001 B0 B 6 B0 111001110 关系运算举例 MATLAB中逻辑操作符的运算法则 如果两个标量a和b运算 则 a b a b全是非0时 运算结果是1 否则是0 a b a b中只要有一个非0 运算结果为1 a 当a是0时 运算结果是1 否则是0 如果两个维数相同的矩阵A和B参与运算 则 将矩阵A和B相同位置上的元素按标量的运算规则逐个进行运算 运算的结果是返回一个由0和1组成的与A具有同样维数的矩阵 如果标量b和矩阵A参与运算 则 将标量b和矩阵A中的每个元素进行逻辑运算 逻辑运算的结果是返回一个由0和1组成的与A具有同样维数的矩阵 逻辑 非 运算是一元运算符 服从数组运算规则 在逻辑 与 或 非 三者中 非 的优先级最高 与 与 或 具有相同的优先级 从左向右执行 通过 可以改变各操作符之间的优先级 第2章Matlab语言程序设计 第2章Matlab语言程序设计 A 3 4 8 9 0 2 5 3 7 A 348902537 B 4 4 1 7 8 4 5 1 7 B 441784517 AB A BAB 111101111 A B A BA B 111111111 C AC 000010000 cc A 3 B 6 cc 011000100 逻辑运算举例 第2章Matlab语言程序设计 3 表达式及函数 Matlab采用的是表达式语言 用户输入的语句由Matlab系统解释运行 用户可以在Matlab的命令窗口中键入命令 也可以在编辑器内编写应用程序 Matlab语句由表达式和变量组成 有两种最常见的语句形式 表达式变量 表达式 t 6t 6 sin 5 t 6 ans 0 9918 y sin 5 t 6 y 0 9918 表达式由变量名 运算符 数字和函数名组成 表达式将按常规的优先纽从左至右执行运算 优先级的规定是指数运算级别最高 乘除运算次之 括号可以改变运算顺序 书写表达式时 赋值符 和运算符两侧允许有空格 以增加可读性 但在复数或符号表达式中要尽量避免空格 以防出错 表达式的末尾加 时 Matlab系统只把数值赋给变量 不显示计算结果 不加 时 Matlab系统将会在该条语句的下面直接显示运算结果 第2章Matlab语言程序设计 第2章Matlab语言程序设计 Matlab有十分丰富的函数资源 总共分为24类 常用有一下几类 一般函数命令 GENERAL 操作符与操作 OPERATOR 数据类型和结构 DATETYPE 基本矩阵和矩阵操作 ELMAT 基本数学函数 ELFUN 二维图 PLOTXY 图形句柄 GENGRAPH 三维图 3DGRAPH 语言和程序设计 LANGUAGE 文件输入输出函数 IOFUN 符号工具箱 SYNBOLIC 1 创建一个表达式 并求当x 1 y 2时的z值 2 计算的值 其中 3 创建一个包含 她是我们班最好的学生 字符串 4 输入如下两个矩阵A和B 对矩阵A和B作关系运算 标识出两矩阵中元素相等的位置 元素值不等的位置 并标识出矩阵A中所有小于0的元素 5 对 4 中的矩阵A和B作逻辑 或 与 运算 并标识出矩阵B中所有大于2并小于5的元素位置 上机练习 2 第2章Matlab语言程序设计 4 程序结构与流程控制语句 a 顺序结构 b 条件结构 if else end语句 第2章Matlab语言程序设计 或 折扣问题 book 20 number 40 sums 0 0 ifnumber 30sums book number 0 7 end sumssums 560 绘出函数的图像 x 3 0 1 3 ifx 1y 2 x 2 1 plot x y elseif 1 x 1y 5 plot x y elsey x 3 plot x y end 第2章Matlab语言程序设计 switch语句 第2章Matlab语言程序设计 第2章Matlab语言程序设计 多项选择 No input Pleaseinputyourchoice Pleaseinputyourchoice 1 switchNocase0disp returntomainmenu case1disp Sheisagirl case2disp Heisaboy otherwisedisp Ican tdetermine endSheisagirl c 循环结构 while语句 for语句 for变量 初值 增量 结束值程序模块 end 第2章Matlab语言程序设计 sum 0 i 0 while i sumsum 14196774 举例 第2章Matlab语言程序设计 forI 1 10A I 1 I 1 end AA Columns1through70 50000 33330 25000 20000 16670 14290 1250Columns8through100 11110 10000 0909 break语句循环结构 continue语句循环结构 第2章Matlab语言程序设计 d 其它与流程控制有关的语句 if if pause指令使程序运行停止 等待用户按任意键继续 input指令提示用户从键盘输入数值 字符串或表达式 并接受输入 disp指令在屏幕上显示字符串 echoon指令显示其后所有执行文件的指令 echooff指令关闭其后所有执行文件的指令显示 第2章Matlab语言程序设计 5 数据文件的操作 第2章Matlab语言程序设计 数据文件一般存放在磁盘介质上 用文件名标识 Matlab系统对文件名没有特殊要求 数据文件的格式有两种形式 一是二进制格式文件 二是ASCII文本文件 a 数据文件的打开和关闭用fopen函数打开数据文件 Fid fopen filename permission Fid为文件句柄 filename为文件名 permission为文件打开格式 可以是 r w a r w a 用fclose函数关闭数据文件 Sta fclose Fid 数据文件的读写用fread读二进制数据文件 A COUNT fread Fid size precision 其中 A为数据矩阵 用于存放读取的数据 COUNT返所读取的数据元素个数 Fid为文件句柄 size为读取范围 是可选项 若不选用则读取整个文件内容 precision用于控制所读数据的精度格式 例 Fid fopen std dat r A fread Fid 100 long fclose Fid 第2章Matlab语言程序设计 第2章Matlab语言程序设计 用fwrite写二进制文件 COUNT fwrite Fid A precision 例 Fid fopen test dat w cnt fwrite Fid A float fclose Fid 用fscanf读取ASCII数据文件 A COUNT fscanf Fid format size format用以控制读取的数据格式 由 加上格式符组成 常见的格式符有 d i o u x e f s c 例 fscanf Fid s fscant Fid 6 2f fscanf Fid 5d 用fprint写ASCII文本数据到文件或屏幕上 COUNT fprintf Fid format A 例 x 0 0 1 1 y exp x Fid fopen exp txt w fprintf Fid 6 2f 12 8f n x y fclose Fid 第2章Matlab语言程序设计 c 从磁盘中直接读写内存变量load将数据文件中的数据直接为workspace中变量loadfilename asciiloadfilenamesave将workspace中变量直接写到数据文件中savefilenameA asciisavefilenameA 第2章Matlab语言程序设计 第2章Matlab语言程序设计 6 M文件编程a 命令式文件如果要输入较多的命令 而且要经常对这些命令重复输入 利用命令文件将显得比较简单方便 建立命令文件的方法根简单 就是将要输入的所有指令按顺序放到一个扩展名为 m 的文本文件中 每次运行时只要输入M文件的文件名即可 在命令文件运行过程中产生的所有变量均是全局变量 第2章Matlab语言程序设计 例 编一个画宝石项链的程序echoont 0 0 02 2 pi x sin t y cos t z cos 2 t plot3 x y z b x y z bd view 80 60 boxonlegend 链子 宝石 存入文件necklace m 函数式文件函数文件和命令文件的区别在于 命令文件的变量在文件执行完程序后仍然保留在内存中 而函数文件内定义的变量为内部变量 仅在函数文件内部起作用 函数M文件通常由以下五部分组成 函数定义行 函数帮助行 在线函数帮助文件 注释 函数体 第2章Matlab语言程序设计 第2章Matlab语言程序设计 例 计算第n个Fibonnaci斐波纳契数 一种整数数列 其中每数等于前面两数之和 functionf fibfun n 函数定义行n 函数输入 f 函数输出 fibfun 函数名 FIBFUNForcalculatingFibonaccinumbers 函数帮助行 Incidengtally thenamefibonaccicomesfrom FiliusBonassi or sonofBonassus 在线函数帮助文件 fibfun mifn 2f fibfun n 1 fibfun n 2 函数体elsef 1 end 注意 文件名必须与函数名相同执行 fibfun 17 helpfibfun lookforfibfun 第2章Matlab语言程序设计 7 M文件调试语法错误和运行错误对于语法错误 Matlab通常能在编译和运行时立即发现 给出相应的错误原因以及所在的行号 并终止其运行 对于运行错误 Matlab提供了M文件的调试 Debug 工具 对于命令文件 可以直接在文件编辑器中设置断点 用调试工具 菜单或工具栏 分步执行 并在工作空间中检查每个变量的值 以necklace m为例 对于函数文件 可以先在文件编辑器中设置断点 再到命令行状态执行函数 然后再回到文件编辑器中进行观察和调试 以fibfun m为例 1 利用for循环求1 2 3 20 的值 2 用while循环求1 200之间的整数之和 3 编写一个M文件 画出下列分段函数所表示的曲面 4 编写一个求圆的面积的函数文件 5 编写一个求圆的面积的命令文件 上机练习 3 第3章矩阵 数组和符号运算 一 矩阵和数组运算要求内容 1 熟练掌握矩阵的创建 2 掌握矩阵运算和数组运算 3 学会如何使用矩阵运算函数和数组运算函数 4 注意区分矩阵和数组的差别 特别是运算符的差别 6 了解多项式的创建方法和基本运算 MATLAB以矩阵为基本的运算单元 向量和标量作为特殊的矩阵处理 向量看作只有一行或一列的矩阵 标量看作只有一个元素的矩阵 1 矩阵的构造a 直接输入b 利用内部函数产生矩阵c 利用M文件产生矩阵d 从外部数据文件调入矩阵 第3章矩阵 数组和符号运算 第3章矩阵 数组和符号运算 a 直接输入直接输入需遵循以下基本规则 整个矩阵应以 为首尾 即整个输入矩阵必须包含在方括号中 矩阵中 行与行之间必须用分号 或Enter键 按Enter键 符分隔 每行中的元素用逗号 或空格分隔 矩阵中的元素可以是数字或表达式 但表达式中不可包含未知的变量 MATLAB用表达式的值为该位置的矩阵元素赋值 当矩阵中没有任何元素时 该矩阵被称作 空阵 EmptyMatrix 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 第3章矩阵 数组和符号运算 第3章矩阵 数组和符号运算 由向量构成矩阵向量是组成矩阵的基本元素之一 向量元素需要用方括号括起来 元素之间用空格和逗号分隔生成行向量 用分号隔开生成列向量 可以把行向量看成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 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 第3章矩阵 数组和符号运算 第3章矩阵 数组和符号运算 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 第3章矩阵 数组和符号运算 c 利用M文件产生矩阵A 1 2 3 4 56 7 8 9 1011 12 13 14 1516 17 18 19 2021 22 23 24 25 第3章矩阵 数组和符号运算 d 从外部数据文件调入矩阵用load命令输入用Import菜单输入 第3章矩阵 数组和符号运算 2 矩阵元素的修改 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 第3章矩阵 数组和符号运算 3 矩阵的运算矩阵运算按照线性代数中基本的运算法则进行 加减运算必须在具有相同行列的矩阵之间进行 只有当矩阵A的列数和矩阵B的行数相同时 才可进行矩阵A和B的乘法运算 乘方运算只有在矩阵为方阵时才有意义 当一个矩阵和一个标量 1 1的矩阵 进行运算时 其结果将是此标量和矩阵中的每一个元素 相加 相减 相乘 相除 在MATLAB中 矩阵左除和右除的含义不同 矩阵右除定义为 B A A B 第3章矩阵 数组和符号运算 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 第3章矩阵 数组和符号运算 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 第3章矩阵 数组和符号运算 当对矩阵作除法运算时 有可能因为误差设置的差别导致不精确的结果 此时 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 第3章矩阵 数组和符号运算 4 矩阵的函数a 矩阵的基本变换函数 A 3 3 5 2 4 6 7 8 9 创建方阵AA 335246789 inv A 矩阵的逆 A必须为非奇异方阵 ans 0 5000 0 54170 0833 1 00000 33330 33330 50000 1250 0 2500 A 矩阵的转置ans 327348569 b 常用的矩阵运算函数 只有方阵才可计算行列式值 即det A 的计算只有在A为方阵时才有意义 logm A 和sqrtm A 计算矩阵的对数 平方根是指对整个矩阵A求对数 平方根 第3章矩阵 数组和符号运算 第3章矩阵 数组和符号运算 det A 求方阵A的行列式值ans 24 eig A 求特征值ans 16 75030 8793 1 6295 logm A 求矩阵A的对数ans 0 5432 0 8066i0 7475 0 5526i0 6902 0 6914i0 8584 1 4131i0 7845 0 9681i0 6967 1 2112i0 7502 1 5947i1 1089 1 0926i1 8504 1 3668i sqrtm A 求矩阵A的平方根ans 1 2466 0 3278i0 5192 0 2246i1 0906 0 2809i0 2001 0 5742i1 4228 0 3934i1 3620 0 4921i1 6144 0 6480i1 7430 0 4439i2 3610 0 5554i c 矩阵的分解函数 第3章矩阵 数组和符号运算 第3章矩阵 数组和符号运算 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 第3章矩阵 数组和符号运算 5 数组运算Matlab是以矩阵为基本运算单元的 数组作为独立的计算单元实体是不存在的 数组运算是Matlab的一种运算形式 它从矩阵的单个元素出发 针对每个元素进行的运算 MATLAB对数组运算在符号上做了不同的约定 运算符形式为 矩阵运算和数组运算有着显著的不同 属于两种不同的运算 矩阵运算是从矩阵的整体出发 按照线性代数的运算规则进行 有着明确而严格的数学规则 而数组运算是从矩阵的单个元素出发 针对每个元素进行的运算 对于加法和减法而言 矩阵运算和数组运算相同 对于乘法和除法而言 矩阵和数组的运算有着显著的不同 第3章矩阵 数组和符号运算 矩阵的数组乘 除及乘方数组除的运算规则 当参与除运算的两个矩阵同维时 运算为矩阵的相应元素相除 计算结果是与参与运算的矩阵同维的矩阵 当参与运算的矩阵有一个是标量时 运算是标量和矩阵的每一个元素相除 计算结果是与参与运算的矩阵同维的矩阵 右除与左除的关系为A B B A 其中A是被除数 B是除数 第3章矩阵 数组和符号运算 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 数组乘方的运算规则 矩阵的标量乘方A p 即A为矩阵 p为标量 运算为矩阵每个元素的p次方 计算结果是与矩阵A同维的矩阵 标量的矩阵乘方p A 表示以p为底 分别以A的元素为指数求幂值 计算结果是与矩阵A同维的矩阵 第3章矩阵 数组和符号运算 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 第3章矩阵 数组和符号运算 乘方 z7 2 x z5 x 3 z6 x y点积 叉积 c1 dot a b c1 sum a b c2 cross a b 6 数组函数 常用的数学函数 第3章矩阵 数组和符号运算 常用三角函数和超越函数 第3章矩阵 数组和符号运算 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 第3章矩阵 数组和符号运算 7 多项式及其运算a 多项式的输入向量A a0 a1 an 1 an 则命令poly A 会生成 x a0 x a1 x an 1 x an 的多项式 aa 1234 PA poly a PA 1 1035 5024 poly2sym PA x ans x 4 10 x 3 35 x 2 50 x 24 p a poly2sym a p a x 3 2 x 2 3 x 4 第3章矩阵 数组和符号运算 b 多项式的运算 aa 1234 b 0 1 b 01加法 c a 00b c 1235乘法 d conv a b d 01234 除法 div rest deconv d a div 01rest 00000微分 polyder a ans 343求根 roots a ans 1 6506 0 1747 1 5469i 0 1747 1 5469i 第3章矩阵 数组和符号运算 求值 a 1 2 3 4 a 1234 b 1 1 1 1 b 1111 polyvalm a 4 x 4时多项式的值ans 112 与polyval a 4 结果相同 polyval a b 数组运算ans 10101010 polyvalm a b 矩阵运算ans 15111115 第3章矩阵 数组和符号运算 多项式拟合 x 0 pi 20 pi 2 y sin x p s polyfit x y 5 x1 0 pi 30 pi 2 y1 sin x1 y2 p 1 x1 5 p 2 x1 4 p 3 x1 3 p 4 x1 2 p 5 x1 p 6 plot x1 y1 b x1 y2 r legend Originalcurve Fittedcurve axis 0 7 1 2 4 1 在MATLAB6 0的工作空间中用直接输入法建立如下两个矩阵 然后在矩阵编辑器中将矩阵A改为3行3列的矩阵 并将其保存 2 分别对 1 产生的两个矩阵作加 减 乘和除 左除 右除 运算 同时运用数组运算法则进行运算 比较二者的计算结果有何异同 3 利用矩阵生成函数建立一个对角线元素全部为1的4阶单位矩阵 4 利用矩阵生成函数建立一个4 4的随机矩阵 上机习题 4 5 对题 4 所产生的矩阵求特征值和特征向量 并用lu和qr命令对该矩阵进行分解 6 对题 1 中的矩阵B求秩 行列式的值 条件数 平方根及对数 7 将如下矩阵A进行转置和求逆 8 在MATLAB环境下 用下面三条指令创建矩阵C 看输出怎样的结果 a 2 7358 b 33 79 C 1 2 a i b b sqrt a sin pi 4 a 5 b 3 5 i 上机练习 4 第3章矩阵 数组和符号运算 二 符号及运算掌握内容 1 了解MATLAB6 0的符号变量 掌握MATLAB符号表达式 符号矩阵的两种创建方法 2 掌握MATLAB符号数学函数的创建 3 掌握符号矩阵的基本运算及MATLAB关于不同精度的控制方法 4 掌握符号微积分内容 包括求函数的极限 对符号表达式求导数和微分 符号积分 符号求和 傅立叶变换及其逆变换等 5 掌握各种符号方程的求解方法和函数命令 6 了解MATLAB可视化的符号函数分析界面及使用 7 初步了解MAPLE的符号资源 第3章矩阵 数组和符号运算 抽象运算 公式推导 因式分解 求解代数方程或微分方程的精确解符号数学工具箱1 通过基本符号数学工具箱的专用函数 符号表达式和符号矩阵的操作 多项式的化简 展开和代入 线性代数 微积分 符号方程的求解 特殊的数学函数 2 通过maple m mpa m两个专门设计的M文件进行符号运算 3 通过MATLAB中的函数计算器 FunctionCaculator 第3章矩阵 数组和符号运算 1 符号变量的创建a sym函数S sym arg 从表达式arg创建一个sym对象Sx sym x x sym x real x sym x unreal 附加属性x sym x positive pi sym pi delta sym 1 10 S sym A flag 将数值或矩阵转化为符号形式其中flag选项有四项参数 f r e 和 d r 为缺省项 f 代表十六进制浮点形式 r 代表有理数形式 e 估计误差 d 表示十进制小数 第3章矩阵 数组和符号运算 A 2 5 4 0 78 sqrt 23 3 0 33 0 3333 log 4 输入数值矩阵AA 0 40005 12821 59860 33000 33331 3863 FA sym A 将数值矩阵A转化为符号矩阵FAFA 2 5 200 39 sqrt 23 9 33 100 3333 10000 6243314768165359 2 52 不管数值矩阵的元素是以分数或是浮点数表示 转换后的符号矩阵都将以最接近有理式的形式给出 b syms函数symsarg1arg2 symsabcxy 2 符号

温馨提示

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

评论

0/150

提交评论