首页 MATLAB实用教程PPT

MATLAB实用教程PPT

举报
开通vip

MATLAB实用教程PPTnull第一章 概述 第一章 概述 null MATLAB将计算、可视化和编程等功能集于一个易于使用的环境,并遇有如下特点: 功能强大; 简单易学; 编程效率高。目录目录1.1 MATLAB简介及安装 1.2 MATLAB的目录结构 1.3 MATLAB的工作环境 1.4 MATLAB的通用命令 1.5 MATLAB的帮助系统 1.6 MATLAB示例 习 题1.1 MATLAB简介及安装1.1 MATLAB简介及安装 1.MATL...

MATLAB实用教程PPT
null第一章 概述 第一章 概述 null MATLAB将计算、可视化和编程等功能集于一个易于使用的环境,并遇有如下特点: 功能强大; 简单易学; 编程效率高。 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 目录1.1 MATLAB简介及安装 1.2 MATLAB的目录结构 1.3 MATLAB的工作环境 1.4 MATLAB的通用命令 1.5 MATLAB的帮助系统 1.6 MATLAB示例 习 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 1.1 MATLAB简介及安装1.1 MATLAB简介及安装 1.MATLAB的发展历程 2.MATLAB的特点 3.MATLAB的安装 1.MATLAB的发展历程1.MATLAB的发展历程 1980年,美国新墨西哥大学计算机科学 系主任Cleve 着手编写供学生使用的子程 序接口程序,取名为MATLAB; 1984年,推出了MATLAB第一个商业版 本; 1992年,推出MATLAB 4.0版; null 1997年,推出MATLAB 5.0版; 2000年,推出MATLAB 6.0版; 2004年,推出MATLAB 7.0版; 2008年,推出MATLAB 7.6版;2.MATLAB的特点2.MATLAB的特点 开发环境 编程 数值处理 图形化 图形用户界面 文件I/O和外部应用程序接口3.MATLAB的安装3.MATLAB的安装MATLAB对PC系统的要求 1.2 MATLAB的目录结构1.2 MATLAB的目录结构 安装MATLAB后,在安装目录下将包含如下文件夹。 安装MATLAB后,在安装目录下将包含如下文件夹。null 续表1.3 MATLAB的工作环境1.3 MATLAB的工作环境1.菜单和工具栏 2.命令窗口 3.历史命令窗口 4.当前工作目录窗口 5.工作空间窗口 null 本节介绍MATLAB的工作界面和基本的操作方法。 MATLAB的工作界面主要包括: 菜单; 工具栏; 命令窗口; 历史命令窗口; 当前工作目录窗口; 工作空间窗口。 MATLAB工作环境 MATLAB工作环境 1.菜单和工具栏1.菜单和工具栏 这里只简单介绍默认情况下的菜单和工具栏。 【File】菜单主要用于对文件的处理。 【Edit】菜单主要用于复制、粘贴等操 作,与一般Windows程序的类似,在此 不作详细介绍。 null 【Debug】菜单用于调试程序。 【Desktop】菜单用于设置主窗口中需要 打开的窗口。 【Window】菜单列出当前所有打开的窗 口。 【Help】菜单用于选择打开不同的帮助系 统。 null 当用户单击“Current Directory”窗口时,使得该窗口成为活动窗口,同时增加一个如下图所示的菜单【View】,用于设置如何显示当前目录下的文件。 null 当用户单击“Workspace”窗口时,使得该窗口成为活动窗口,同时增加如下图所示的菜单【View】和【Graphics】。2.命令窗口2.命令窗口 命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。 MATLAB命令窗口中的“>>”为运算提示 符,表MATLAB处于准备状态。 null 当在提示符后输入一段程序或一段运算式 后【Enter】键,MATLAB会给出计算结 果,并再次进入准备状态(所得结果将被 保存在工作空间窗口中)。 单击命令窗口右上角的“ ”按钮,可以使 命令窗口脱离主窗口而成为一个独立的窗 口。 3.历史命令窗口3.历史命令窗口 主要用于记录所有执行过的命令; 保留自安装后所有使用过命令的历史记 录,并标明使用时间; 可以通过用鼠标双击某一历史命令来重新 执行该命令; 可以成为一个独立的窗口。null 通过上下文菜单,可删除或粘贴历史记录; 可为选中的表达式或命令创建一个M文件; 可为表达式或命令创建快捷按钮。 4.当前工作目录窗口4.当前工作目录窗口 当前工作目录是指MATLAB运行文件时的目录。只有在当前工作目录或搜索路径下的文件、函数可以被运行或调用。如下图所示。5.工作空间窗口5.工作空间窗口 工作空间窗口将显示目前内存中所有的MATLAB变量的变量名、数据结构、字节数以及类型等信息,如下图所示。1.4 MATLAB的通用命令1.4 MATLAB的通用命令 1.常用命令 2.输入内容的编辑 3.标点 4.搜索路径与扩展 null 通用命令是MATLAB中经常使用的一组命令,这些命令可以用来管理目录、函数、变量、工作空间、文件和窗口等。下面对这些命令进行介绍。1.常用命令1.常用命令 常用命令的功能2.输入内容的编辑2.输入内容的编辑 在命令窗口中,MATLAB提供了控制光标位置和进行简单编辑的键盘按键,部分常用的键盘按键及其功能如下表所示。3.标点3.标点 在MATLAB中,一些标点符号被赋予了特殊的功能,如下表所示。4.搜索路径与扩展4.搜索路径与扩展 用户自己书写的函数有可能并没有保存在搜索路径下。要解决这个问题,只需把程序所在的目录扩展成MATLAB的搜索路径即可。 null(1)查看MATLAB的搜索路径 选择MATLAB主窗口中的【File】|【Set Path】菜单,进入【设置搜索路径】对话框。通过该对话框可为MATLAB添加或删除搜索路径。 null 在命令窗口中输入path或genpath可得到MATLAB的所有搜索路径,具体代码如下:null(2)设置MATLAB的搜索路径 方法一:在MATLAB命令窗口中输入 editpath或pathtool命令或通过【File】 |【Set Path】菜单,进入 “设置搜索路 径”对话框,通过该对话框编辑搜索路 径。null 方法二:在命令窗口执行“path(path, ‘D:\Study ’)”,然后通过 “设置搜索路 径”对话框查看“D:\Study”是否在搜索路 径中。 方法三:在命令窗口执行“addpath D:\Study- end”,将新的目录加到整个 搜索路径的末尾。如果将end改为 begin,可以将新的目录加到整个搜索路 径的开始。 1.5 MATLAB的帮助系统1.5 MATLAB的帮助系统 1.命令窗口查询帮助系统 2.联机帮助系统 3.联机演示系统 null MATLAB为用户提供了非常完善的帮助系统。下面分别介绍MATLAB的三类帮助系统。 1.命令窗口查询帮助系统1.命令窗口查询帮助系统常见的帮助命令nullnull2.联机帮助系统2.联机帮助系统 用户可以通过下述方法进入MATLAB的联机帮助系统。 直接单击MATLAB主窗口中的“ ”按钮; 选中Help菜单的前4项中的任意一项; 在命令窗口中执行helpwin、helpdesk 或doc。3.联机演示系统3.联机演示系统 可以通过以下方式打开联机演示统。 选择MATLAB主窗口菜单的【Help】| 【Demos】选项; 在命令窗口输入demos; 直接在帮助页面上选择Demos页。nullnullnull1.6 MATLAB示例1.6 MATLAB示例 下面以一个简单的例子展示如何使用MATLAB进行简单的数值计算。 null null习 题习 题1.简述MATLAB的主要功能。 2.在命令窗口输入“w=3+2”,然后依次使用clear和clc命 令,分别观察命令窗口、工作空间窗口和历史命令窗口 的变化。 3.将硬盘上一已有目录,加入到搜索路径,并将其设置为 当前工作目录。 4.通过命令窗口,查询函数sin()的用法。 5.通过联机帮助系统,查询函数inv()的用法。null6.通过联机演示系统,查询并运行“Control Systems Toolboxes”下的“Case Studies”中的“Yaw Damper for a 747 Aircraft”演示程序。 7.在命令窗口依次执行“w=5;”、“p=2*w”和“q=p+w”。 8.在命令窗口同时执行下述代码: w=5; p=2*w q=p+w第二章 基础知识第二章 基础知识null 本章着重介绍的MATLAB基础知识包括: 数据类型; 基本矩阵操作; 运算符; 字符串处理函数。目录目录 2.1 数 据 类 型 2.2 基本矩阵操作 2.3 运算符和特殊符号 2.4 字符串处理函数 习 题2.1 数 据 类 型2.1 数 据 类 型 1.数值类型 2.逻辑类型 3.字符和字符串类型 4.结构体类型 null MATLAB中定义了很多种数据类型。本节讨论MATLAB中主要的数据类型及其使用方法。 在MATLAB中有15种基本数据类型,每种基本数据类型均以数组/矩阵的形式出现。 1.数值类型1.数值类型 数值类型包含 整数; 浮点数; 复数; Inf; NaN(1)整数类型(1)整数类型 MATLAB支持1、2、4和8字节的有符号整数和无符号整数。数据类型的名称、表示范围和转换函数如下表所示。(2)浮点数类型(2)浮点数类型 MATLAB有单精度和双精度两种浮点数。其名称、存储空间、表示范围和转换函数如下表所示。 (3)复数类型(3)复数类型 复数包含实部和虚部。在MATLAB中可以用i或者j来表示虚部。(4)Inf和NaN(4)Inf和NaN Inf和-Inf分别表示正无穷大和负无穷 大。除法运算中除数为0或者运算结果溢 出都会导致inf或-inf的运行结果。 在MATLAB中用NaN(Not a Number) 来表示一个既不是实数也不是复数的数 值。2.逻辑类型2.逻辑类型 在MATLAB中逻辑类型包含true和false,分别由1和0表示。在MATLAB中用函数logical()将任何非零的数值转换为true(即1),将数值0转换为false(即0)。3.字符和字符串类型3.字符和字符串类型 在MATLAB中,数据类型(char)表示一个字符。一个char类型的1n数组称为字符串string。 4.结构体类型4.结构体类型 结构体类型是一种由若干属性(field)组成的MATLAB数组,其中的每个属性可以是任意数据类型。null 下图表示了一个结构体(Personel),它包括3个属性(Name、Score和Salary),其中Name是一个字符串,Score是一个数值,Salary是一个15的向量。 (1)结构体数组的构造 (1)结构体数组的构造 构造一个结构体(数组)有两种方法。 利用赋值语句 通过赋值语句为结构体中的每个指定属性赋值,从而构造结构体。 null 利用函数struct() 在MATLAB中,函数struct()的具体用法如下: 其中,strArray、'field'和val分别表示结构体名、属性名和相应的属性值。 (2)结构体数组的访问(2)结构体数组的访问 通过结构体数组的下标引用,可以访问任意元素的所有属性,同时可以对属性进行赋值。 2.2 基本矩阵操作2.2 基本矩阵操作 2.2.1 矩阵的构造 2.2.2 矩阵大小的改变 2.2.3 矩阵下标引用 2.2.4 矩阵信息的获取 2.2.5 矩阵结构的改变 2.2.6 稀疏矩阵 null 在MATLAB中,所有的数据均以二维、三维或高维矩阵的形式存储,每个矩阵的单元可以是数值类型、逻辑类型、字符类型或者其他任何数据类型。 对于标量,可以用11矩阵来表示; 对于一组n个数据,可以用1n矩阵来表 示; 对于多维数组,可以用多维矩阵来表示。 在MATLAB中,用命令whos来显示数据的类型、存储空间等信息。 2.2.1 矩阵的构造2.2.1 矩阵的构造 1.简单矩阵构造 2.特殊矩阵构造 3.向量构造 1.简单矩阵构造1.简单矩阵构造 最简单的方法是采用矩阵构造符“[]”。构造1n矩阵(行向量)时,可以将各元素依次放入矩阵构造符[]内,并且以空格或者逗号分隔;构造mn矩阵时,每行如上处理,并且行与行之间用分号分隔。 null2.特殊矩阵构造2.特殊矩阵构造 在MATLAB中还提供一些函数用来构造特殊矩阵,这些函数如下表所示。 null续表null3.向量构造3.向量构造 最简单的方法是采用向量构造符“:”,其常用的用法如下。 (1)a:b 返回以a为起点,以1为步长,且所有取值在a与b之间的向量。 null(2)a:s:b 返回以a为起点,以s为步长,且所有取值在a与b之间的向量。 2.2.2 矩阵大小的改变2.2.2 矩阵大小的改变 1.矩阵的合并 2.矩阵行列的删除 1.矩阵的合并1.矩阵的合并 矩阵的合并就是把两个或者两个以上的矩阵连接成一个新矩阵。矩阵构造符[] 可用于构造矩阵,并可以作为一个矩阵合并操作符。 表达式C=[A B]在水平方向合并矩阵A和B; 表达式C=[A;B]在竖直方向合并矩阵A和B。null 具有相同行数的两个矩阵,合并为一个新矩阵 不具有相同行数的两个矩阵,不允许合并为一个新矩阵 null 除了矩阵合并符“[]”外,还可以使用矩阵合并函数。矩阵合并函数的描述和基本调用格式如下表所示。 null2.矩阵行列的删除2.矩阵行列的删除 要删除矩阵的某一行或者是某一列,只需将该行或者该列赋予一个空矩阵[]即可。 2.2.3 矩阵下标引用2.2.3 矩阵下标引用1.访问单个元素 2.线性引用元素 3.访问多个元素 null 本小节将介绍通过矩阵下标来存取元素值的方法,包括访问单个元素、线性引用元素和访问多个元素等。 1.访问单个元素1.访问单个元素null2.线性引用元素2.线性引用元素 对于矩阵A,线性引用元素的格式为 A(k)。通常这样的引用用于行向量或列 向量,但也可用于二维矩阵。 MATLAB按列优先排列的一个长列向量格 式(线性引用元素)来存储矩阵元素。null3.访问多个元素3.访问多个元素 操作符“:”可以用来表示矩阵的多个元素。若A是二维矩阵,其主要用法如下: A(:,:) 返回矩阵A的所有元素。 A(i,:) 返回矩阵A第i行的所有元素。null A(i,k1:k2) 返回矩阵A第i行的自k1到k2 列的所有元素。 A(:,j) 返回矩阵A第j列的所有元素。 A(k1:k2,j) 返回矩阵A第j列的自k1到k2 行的 所有元素。 若A是多维矩阵,也可以通过类似的方法实现对其访问。 nullnull2.2.4 矩阵信息的获取2.2.4 矩阵信息的获取 1.矩阵尺寸信息 2.元素的数据类型 3.矩阵的数据结构 null 本小节介绍如何获取矩阵的信息,包括矩阵的尺寸、元素的数据类型和矩阵的数据结构等。 1.矩阵尺寸信息1.矩阵尺寸信息 矩阵尺寸函数可以得到矩阵的形状和大小信息,这些函数如下表所示。 null2.元素的数据类型2.元素的数据类型 查询元素数据类型信息的部分函数如下表所示。null3.矩阵的数据结构3.矩阵的数据结构 判断矩阵是否为某种指定数据结构的函数如下表所示。2.2.5 矩阵结构的改变2.2.5 矩阵结构的改变改变矩阵结构的函数表 nullnull2.2.6 稀疏矩阵2.2.6 稀疏矩阵 1.稀疏矩阵的创建 2.查看稀疏矩阵 3.稀疏矩阵的运算规则 null 在MATLAB中,可以用满矩阵存储方 式和稀疏矩阵存储方式来存储矩阵。 若一个矩阵只有少数的元素非零,称为稀 疏矩阵。稀疏矩阵非零元素及其对应的下 标来表示。 用户可以创建双精度、复数和逻辑等类型 的稀疏矩阵。 1.稀疏矩阵的创建1.稀疏矩阵的创建 在MATLAB中,用函数sparse()实现满矩阵到稀疏矩阵的转换。null 在MATLAB中用函数full()实现稀疏矩阵 到满矩阵的转换。 在MATLAB中,还可以用函数sparse() 直接创建稀疏矩阵,其具体用法如下。 S = sparse(i,j,s,m,n),其中,i和j分别是稀疏矩阵非零元素的行和列下标,s为相应的非零元素的值,m和n分别是矩阵的行数和列数。 null MATLAB还提供一些函数用于创建特殊稀疏矩阵,这些函数如下表所示。 2.查看稀疏矩阵2.查看稀疏矩阵 MATLAB提供一些函数用于查看稀疏矩阵的信息,如下表所示。 null 下面的例子都是基于MATLAB自带的稀疏矩阵west0479。 nullnull3.稀疏矩阵的运算规则3.稀疏矩阵的运算规则 在MATLAB中的各种命令和函数都可以用于稀疏矩阵的运算,并且遵循如下的一些约定。 (1)把矩阵变为标量或者定长向量的函数总 是给出满矩阵; (2)对于标量或者定长向量变换到矩阵的函 数,如函数zeros()、ones()、 eye()、rand()等总是给出满矩阵;null(3)从矩阵到矩阵的变换函数将以原矩阵的 形式出现; (4)在参与矩阵扩展的子矩阵(如[ A B;C D])中,只要有一个是稀疏矩阵,那 么所得的结果也是稀疏矩阵; (5)在矩阵引用中,将仍以原矩阵形式给出 结果。 2.3 运算符和特殊符号2.3 运算符和特殊符号2.3.1 算数运算符 2.3.2 关系运算符 2.3.3 逻辑运算符 2.3.4 运算优先级null 在MATLAB中提供了丰富的运算符,包括算数、关系和逻辑等3种运算符。 2.3.1 算数运算符2.3.1 算数运算符 在MATLAB中,算数运算符的用法和功能如下表所示。 null续表null补充说明A^B的用法如下: 当A和B都为矩阵时,此运算无定义; 当A和B都是标量时,表示标量A的B次 幂; 当A是标量且B为矩阵时,表示标量A的 B中各元素次幂; 当A为方阵且B为正整数时,表示矩阵A 的B次乘积;null 当A为方阵且B为负整数时,表示矩阵A逆 的负B次乘积; 当A为可对角化的方阵且B为非整数时,有 如下表达式: nullnull2.3.2 关系运算符2.3.2 关系运算符 MATLAB中关系运算符的用法和功能如下表所示。 null 值得注意的是,关系运算符只针对两个相同长度的矩阵,或其中之一是标量的情况进行运算。 对于前者,是指两个矩阵的对应元素进行比 较,返回具有相同长度的矩阵; 对于后者,是指这个标量与另一个矩阵的每元 素进行运算。 关系运算C=f(A,B)的运算结果只有0和1两种情况,其中,函数f()表示关系运算符,0表示不满足条件,1表示满足条件。 null2.3.3 逻辑运算符2.3.3 逻辑运算符 MATLAB提供元素方式和比特方式等逻辑运算符。元素方式逻辑运算符的用法和功能如下表所示,其中例子采用如下矩阵: null 元素方式逻辑运算符& '、 ' | '和 ' ~ '与函数and()、or()和not()是等价的。 比特方式逻辑运算符只接受逻辑和非负整数类型的输入变量,它是针对输入变量的二进制进行逻辑运算。null 比特方式逻辑运算符的用法和功能如下表所示,表中例子采用A = 28和B = 200,其对应的二进制分别为11100和11001000。2.3.4 运算优先级2.3.4 运算优先级 运算符的优先级决定表达式求值顺序; 具有相同优先级的运算符从左到右依次进 行运算; 不同优先级的运算符采用先进行优先高的 运算。 运算符的优先等级表 运算符的优先等级表 由表中可以看到,括号的优先级别最高,因此可以用括号来改变默认的优先等级。 null2.4 字符串处理函数2.4 字符串处理函数 2.4.1 字符串的构造 2.4.2 字符串的比较 2.4.3 字符串的查找和替换 2.4.4 字符串与数值间的转换 null MATLAB提供了丰富的字符串操作,包括字符串的创建、合并、比较、查找以及与数值之间的转换。2.4.1 字符串的构造2.4.1 字符串的构造 在MATLAB中,可以用一对单引号来表示字符串。 nullnullnullnull2.4.2 字符串的比较2.4.2 字符串的比较 1.字符串比较函数 2.用关系运算符比较字符串 null 在MATLAB中提供了对字符串、字符串数组和字符子串的比较功能。 1.字符串比较函数1.字符串比较函数 在MATLAB中,字符串比较函数如下表所示。 null2.用关系运算符比较字符串2.用关系运算符比较字符串 在MATLAB中,可以对字符串运用关系运算符,但要求两个字符串具有相同的长度,或者其中一个是标量。 null2.4.3 字符串的查找和替换2.4.3 字符串的查找和替换 MATLAB提供的一些字符串查找和替换函数如下表所示。 null2.4.4 字符串与数值间的转换2.4.4 字符串与数值间的转换 MATLAB提供的一些数值转换为字符串函数如下表所示。 null续表null MATLAB提供的一些字符串转换为数值函数如下表所示。 null习 题习 题1.计算复数3+4i与5−6i的乘积。 2.构建结构体Students,属性包含Name、Age 和Email,数据包括{'Zhang',18, [‘zhang@163.com’, ‘zhang@263.com’]}、 {‘Wang’,21, []}和{‘Li’,[], []},构建后读取 所有Name属性值,并且修改‘Zhang’的Age属 性值为19。 null3.用满矩阵和稀疏矩阵存储方式分别构造下述矩 阵:4.采用向量构造符得到向量[1,5,9,…,41]。 5.按水平和竖直方向分别合并下述两个矩阵: null6. 分别删除第5题两个结果的第2行。 7. 分别将第5题两个结果的第2行最后3列的数值 改为[11 12 13]。 8. 分别查看第5题两个结果的各方向长度。 9. 分别判断pi是否为字符串和浮点数。 10.分别将第5题两个结果均转换为29的矩阵。 11.计算第5题矩阵A的转秩。 12.分别计算第5题矩阵A和B的A+B、A.* B和 A\B。 13.判断第5题矩阵A和B中哪些元素值不小于4。 null14.分别用函数strcat()和矩阵合并符合并如下字 符串:' The picture is '和' very good '。 15.创建字符串数组,其中元素分别为‘Picture ’和 'Pitch '。 16.在第14题结果中查找字符串'e'。 17.在第15题结果中匹配字符串'Pi'。 18.将字符串'very good'转换为等值的整数。 19.将十进制的50转换为二进制的字符串。 20.将十六进制的字符串‘50’转换为三进制的整 数。 第三章 数学运算 第三章 数学运算 null 本章将着重介绍MATLAB中与数学运算有关的函数和概念。 在MATLAB中一切数据均能以矩阵的形式表示: 针对矩阵整体的数学运算,称之为矩阵运 算; 针对矩阵元素的数学运算,称之为矩阵元 素运算。 目录目录 3.1 矩 阵 运 算 3.2 矩阵元素运算 习 题 3.1 矩 阵 运 算3.1 矩 阵 运 算 3.1.1 矩阵分析 3.1.2 线性方程组 3.1.3 矩阵分解 3.1.4 矩阵的特征值和特征向量 3.1.5 矩阵相似变换 3.1.6 非线性运算 null 矩阵运算是线性代数中极其重要的部分,MATLAB具有强大的矩阵运算能力。 3.1.1 矩阵分析3.1.1 矩阵分析 1.向量间的距离 2.矩阵的秩 3.矩阵的行列式 4.矩阵的迹 5.矩阵的化零矩阵 6.矩阵的正交空间 7.矩阵的简化梯形形式 8.矩阵空间之间的角度 null MATLAB提供的部分矩阵分析函数如下表所示。 1.向量间的距离1.向量间的距离null2.矩阵的秩2.矩阵的秩 矩阵A中线性无关的列向量个数称为列秩,线性无关的行向量个数称为行秩。可以证明列秩与行秩是相等的。null3.矩阵的行列式3.矩阵的行列式null4.矩阵的迹4.矩阵的迹 矩阵的迹定义为矩阵对角元素之和。在MATLAB中用函数trace()来计算矩阵的迹。 5.矩阵的化零矩阵5.矩阵的化零矩阵 对于非满秩矩阵A,若存在矩阵Z使得AZ = 0且ZTZ = I,则称矩阵Z为矩阵A的化零矩阵。在MATLAB中用函数null()来计算矩阵的化零矩阵。 6.矩阵的正交空间6.矩阵的正交空间 矩阵A的正交空间Q满足QTQ = I,且矩阵Q与A具有相同的列基底。null7.矩阵的简化梯形形式7.矩阵的简化梯形形式 矩阵A的简化梯形形式为 ,其中Ir为r阶单位矩阵。null8.矩阵空间之间的角度8.矩阵空间之间的角度 矩阵空间之间的角度代表具有相同行数的两个矩阵线性相关程度,夹角越小代表线性相关度越高。 null3.1.2 线性方程组3.1.2 线性方程组 线性方程组求解问题,可以表述为给定两个矩阵A和B,求解X使得AX=B或XA=B。XA=B可以表示为A’Y=B’,且X=Y’。下面仅讨论AX=B的情况。 nullnull3.1.3 矩阵分解3.1.3 矩阵分解 1.Cholesky分解 2.LU分解 3.QR分解 4.奇异值分解 5.Schur分解null 矩阵分解是把一个矩阵分解成比较简单或者对它性质比较熟悉的若干矩阵的乘积的形式。 本小节将介绍几种矩阵分解的方法。 null矩阵分解函数表1.Cholesky分解1.Cholesky分解 Cholesky分解是把对称正定矩阵A表示为上三角矩阵R的转置与其本身的乘积,即A = RTR。 nullnull 对于稀疏矩阵,MATLAB中用函数cholinc()计算不完全Cholesky分解,具体用法如下: R = full(cholinc(sparse (X),DROPTOL)),其中DROPTOL为不 完全Cholesky分解的丢失容限; R = full(cholinc(sparse (X),‘0’)),完 全Cholesky分解。 2.LU分解2.LU分解 高斯消去法又称LU分解, 将任意一个方阵A分解为一个交换下三角 矩阵L和一个上三角矩阵U的乘积,即 A=LU。 交换下三角矩阵为下三角矩阵经行变换的 结果。null LU分解在MATLAB中用函数lu()来实现,具体用法如下: [L,U] = lu(X),X为一个方阵,L为交换 下三角矩阵,U为上三角矩阵,满足关系 X=L*U; [L,U,P] = lu(X),X为一个方阵,L为下 三角矩阵,U为上三角矩阵,P为置换矩 阵,满足关系P*X = L*U或X =P-1 *L*U。 null 考虑线性方程组AX=B和矩阵A的LU分解,线性方程组可改写成L*U*X=B,由于左除算符'\'可以快速处理三角矩阵,因此: X=U\(L\B) 矩阵的行列式和逆也可以利用LU分解来计算,如 det(A)=det(L)*det(U) inv(A)=inv(U)*inv(L)nullnull 对于稀疏矩阵,在MATLAB中提供了函数luinc()来做不完全LU分解,其具体用法如下: [L U]= luinc(X,DROPTOL),其中X、L和U 的含义与函数lu()中的变量相同,DROPTOL为 不完全LU分解的丢失容限。当DROPTOL设为0 时,退化为完全LU分解。 [L,U] = luinc(X,‘0’),0级不完全LU分解。 [L,U,P] = luinc(X,'0'),0级不完全LU分解。3.QR分解3.QR分解 QR分解就是将m×n的矩阵A分解为m×n的矩阵Q和n×n的上三角矩阵R的乘积,且Q‘*Q=I,即A=Q*R。 null 在MATLAB中QR分解是由函数qr()来实现,其具体用法如下: [Q,R] = qr(A) 满足A=Q*R。 R = qr(A), 返回上三角矩阵R。 null4.奇异值分解4.奇异值分解 奇异值分解就是将mn的矩阵A分解为A=U*S*V’,其中U为mm的酉矩阵,V为nn的酉矩阵,S为mn的矩阵,并可如下表示: ,其中 , , null 在MATLAB中奇异值分解是由函数svd()来实现,其具体用法如下: null5.Schur分解5.Schur分解 Schur分解就是将复方阵A分解为A=U*L*U’,其中U为酉矩阵,L为上(下)三角矩阵,其对角线元素为A的特征值。 null 在MATLAB中Schur分解是由函数schur()来实现,其具体用法如下: [U,L] = schur(A),满足A=U*L*U’, 其中L为上三角矩阵。 L = schur(A),返回上三角矩阵L。 null3.1.4 矩阵的特征值和特征向量3.1.4 矩阵的特征值和特征向量 方阵A的特征值λ和其对应的特征向量ν满足下式: A*ν=λ*ν null 在MATLAB中用函数eig()来计算特征值和其对应的特征向量,其具体用法如下: d = eig(A),返回矩阵A的所有特征值。 [V,D] = eig(A),返回矩阵A的特征值和 特征向量。 nullnull3.1.5 矩阵相似变换3.1.5 矩阵相似变换 1.对角阵变换 2.Jordan变换 null 矩阵相似变换是指,对于方阵A和非奇异矩阵B可得到相似矩阵X=B-1*A*B。1.对角阵变换1.对角阵变换 对于方阵A,若[V D]=eig(A)得到的矩阵V非奇异,则A可经过相似变换得到对角阵,即D=V-1*A*V,也称矩阵A可对角化。 null2.Jordan变换2.Jordan变换 对于方阵A,若[V D]=eig(A)得到的矩阵V奇异,则A经过相似变换将不能得到对角阵,只能得到其对应的Jordan标准型。nullnull 在MATLAB中用函数jordan()来实现Jordan变换,其具体用法如下: [V,D] = jordan(A),满足 D=V-1*A*V。 D = jordan(A),返回矩阵A对应的 Jordan标准型。 null3.1.6 非线性运算3.1.6 非线性运算 1.矩阵指数运算 2.矩阵对数运算 3.矩阵开平方运算 4.通用矩阵运算 null MATLAB提供一些矩阵的非线性运算函数,其功能如下表所示。 1.矩阵指数运算1.矩阵指数运算null2.矩阵对数运算2.矩阵对数运算 矩阵对数运算是矩阵指数运算的逆运算,在MATLAB中用函数logm()来计算矩阵对数,其具体用法如下: L = logm(A),返回矩阵A的对数。 null3.矩阵开平方运算3.矩阵开平方运算 对于方阵A,可以计算它的开平方得到矩阵X,即满足X*X=A。如果矩阵A是奇异的,它有可能不存在平方根X。 在MATLAB中,有两种计算矩阵A平方根的方法,即A^0.5和sqrtm(A)。函数sqrtm()比A^0.5的运算精度更高,其具体用法如下: X = sqrtm(A),返回矩阵A的平方根X。 null4.通用矩阵运算4.通用矩阵运算 MATLAB提供通用矩阵运算的函数funm(),其具体用法如下: F = funm(A,fun),将指定函数fun作用 在方阵A上。 null 可以使用的指定函数fun如下表所示。 null3.2 矩阵元素运算3.2 矩阵元素运算 3.2.1 三角函数 3.2.2 指数和对数函数 3.2.3 复数函数 3.2.4 截断和求余函数 3.2.5 特殊函数 null 本节将介绍矩阵元素的数学函数: 包括三角函数; 指数/对数函数; 复数函数; 截断/求余函数; 特殊函数。 3.2.1 三角函数3.2.1 三角函数 MATLAB提供一些三角函数,其功能如下表所示。null续表3.2.2 指数和对数函数3.2.2 指数和对数函数 MATLAB提供一些指数和对数函数。 null指数和对数函数表 null3.2.3 复数函数3.2.3 复数函数 MATLAB提供一些复数函数,其功能如下表所示。 3.2.4 截断和求余函数3.2.4 截断和求余函数 MATLAB提供一些截断和求余函数,其功能如下表所示。 nullnull3.2.5 特殊函数3.2.5 特殊函数 1.工程函数 2.数论函数 3.坐标变换函数 null 本小节介绍一些用途比较特殊的数学函数,包括应用于工程上的函数(工程函数)、数论函数和坐标变换函数。 1.工程函数1.工程函数 工程函数经常在数学、物理和工程等问题中出现,在MATLAB中提供一些工程函数。 null表工程函数 nullnull2.数论函数2.数论函数 MATLAB提供一些数论函数,其功能如下表所示。 null3.坐标变换函数3.坐标变换函数 在MATLAB中提供一些坐标变换函数,其功能如下表所示。 null习 题习 题1.计算矩阵A的范数、行列式、秩、化零空间和正 交空间。 2.求解线性方程组AX=B,其中A如第1题所示, B=[1 1 1 1 1]T。 3.对矩阵A进行LU分解和Schur分解,其中A如第 1题。 null4.对矩阵A的前4行进行QR分解和奇异值分解,其 中A如第1题。 5.计算矩阵A的特征根及对应的特征向量,判断矩 阵A是否可对角化,其中A如第1题。 6.计算矩阵A的指数、开平方和余弦值,其中A如 第1题。 7.计算矩阵A每个元素的指数、开平方和余弦值 (元素单位为度),其中A如第1题。 null8. 计算复数矩阵C每个元素的模、相角和共轭。 9. 分别使用函数fix()、floor()、ceil()和 round(),计算第8题中的相角结果。 10.将2-i的模结果近似为有理数,并以数值形式 显示。 11.计算,其中m = 4!和n是42与35的最大公因 数。 12.将球坐标系中的点(1,1,1)分别转换到笛卡尔 坐标系和极坐标系。 第四章 基本编程 第四章 基本编程 null MATLAB提供丰富的函数库,并可以进行程序设计,编写扩展名为.m的M文件,实现各种程序设计功能。 MATLAB提供大量的函数,包括内建函数和自带函数。用户也可以利用M文件来创建函数、函数库和脚本。 目录目录4.1 M文件基础 4.2 变量和语句 4.3 程 序 调 试 4.4 函数设计和实现 习 题 nullnull 当需要创建一个M文件时,可以通过【File】|【New】|【M-File】菜单进入文本编辑器界面。 当需要打开一个M文件时,可以通过【File】|【Open】菜单进入文件选择的目录界面。 本章将着重介绍M文件编程的规则和注意事项。 4.1 M文件基础4.1 M文件基础 4.1.1 函数 4.1.2 脚本 4.1.3 子函数与私有函数 4.1.4 伪代码 null M文件有函数(Functions)和脚本(Scripts)两种格式。 M文件可以在任意的文本编辑器中进行创建和编辑,但推荐和默认使用MATLAB自带的文本编辑器和Notebook。 4.1.1 函数4.1.1 函数 MATLAB中许多常用的函数都是函数式M文件。 函数被调用时,通过获取外部参数进行运算,并向外部返回运算结果。 函数内部的变量都是隐含的,存放在函数本身的工作空间内。nullnullnullnullnullnull4.1.2 脚本4.1.2 脚本 脚本也是扩展名为.m的文件,可包含MATLAB的各种命令。在命令窗口中直接键入此文件的文件名,MATLAB可逐一执行文件内的所有命令。 null 将脚本所在目录设置为当前工作目录,并在文本编辑器中打开脚本后,可通过如下方法运行脚本: 单击【Debug】菜单下的【Run】; 单击快捷键F5;单击工具条上的图标 。 脚本运行过程所产生的变量都是全局变量,都驻留在MATLAB工作空间内。 nullnullnull 结合上例,对函数和脚本进行总结如下。 (1)函数名必须与文件名相同。 (2)脚本没有输入参数和返回值。 (3)函数可以包括零个或多个输入参数和返 回值,如函数nargin和nargout包含输 入参数和返回值的个数。null(4)函数被调用时,MATLAB会为它开辟一 函数工作空间(Function workspace),用来存放中间变量, 当执行完函数文件的最后一条命令或 者遇到return命令时就结束该函数的 运行,返回函数的输出,同时将临时 工作空间清空。null(5)在M文件中,从开头到第一个非注释行 之间的第一个注释行组(之间无空行) 是帮助文本。 (6)函数中的变量(除特殊声明外)都是局部变 量,而脚本中的变量都是全局变量,关于变量 的有关内容详见第4.2节。 (7)在函数中调用脚本文件,等价于在函数中将 脚本文件的内容粘贴在调用的位置。4.1.3 子函数与私有函数4.1.3 子函数与私有函数 一个M文件可以包含多个函数,其中,一个是主函数,其他是子函数。 主函数必须出现在最上方,其后可有若干子函数,子函数的次序可随意调整。主函数和各子函数的工作空间都是彼此独立的。 私有函数是主函数的一种,它只能够在一个特定的限定函数群中可见。null 当M文件中需要调用某一个函数时,MATLAB是按照以下顺序来搜寻的: 检查此函数是否是子函数; 检查此函数是否为私有目录的函数; 从所设定的搜寻路径搜索此函数。 搜索过程中,只要找到与第一个文件名相符的函数就会立即取用而停止搜索。 4.1.4 伪代码4.1.4 伪代码 一个M文件首次被调用时,MATLAB将对该M文件进行语法分析,并把生成的相应伪代码(P码)存放在内存中。此后当再次调用该M文件时,将直接运行该文件在内存中的伪代码。伪代码文件和原码文件具有相同的文件名,但其扩展名为.p。 伪代码文件不是只有当M文件被调用时才产生,也可使用pcode命令预先生成。 4.2 变量和语句 4.2 变量和语句 4.2.1 变量类型 4.2.2 程序控制结构 null MATLAB的主要功能虽然是数值运算,但是它也是一个完整的程序语言,包括各种语句格式和语法规则。但与C语言不同的是,MATLAB中的变量是不需要事先定义的,如前3章的例子。 4.2.1 变量类型4.2.1 变量类型 在MATLAB中,变量名必须以字母开头,之后可以是任意字母、数字或下划线,但之间不能有空格;区分大小写;第63个字符之后的部分将被忽略。null 除了上述命名规则外,MATLAB还提供一些特殊的变量,如下表所示。 null 除命名规则外,变量命名时还需要注意以下两个方面: (1)变量名不能与已有函数名相同,否则在 内存中有该变量时将不能调用同名函 数; (2)变量名不能与MATLAB预留的关键字和 特殊变量名相同,否则系统会显示错误 信息。 null 变量按照作用范围分为局部变量和全局变量。在MATLAB中使用命令global声明全局变量,如下所示: 需要使用指定全局变量的M文件,都必须在各自的代码中声明此全局变量。只要存在声明某全局变量的M文件,则全局变量存在。 null 在使用全局变量中需要注意以下几个方面。 在使用之前必须首先定义,建议将定义放在函 数体的首行位置。 虽然对全局变量的名称并没有特别的限制,但 是为了提高程序的可读性,建议采用大写字符 命名全局变量。 全局变量会损坏函数的独立性,使程序的书写 和维护变得困难,尤其是在大型程序中,不利 于模块化,不推荐使用。 null4.2.2 程序控制结构4.2.2 程序控制结构 1.顺序结构 2.循环结构 3.选择结构 4.其他控制结构 null 对于实现任何功能的程序,均可由顺序、循环和选择3种基本结构组合实现。为了更方便地设计程序,还需要一些特殊的控制结构,如跳出循环结构。下面将分别进行介绍。 1.顺序结构1.顺序结构 顺序结构就是由前至后依次执行程序的各条代码,直至最后一条代码。脚本文件就是典型的顺序结构。null2.循环结构2.循环结构 循环结构是按照给定的条件,重复执行指定的代码。该结构一般用于有规律的重复运算。在MATLAB中包括for循环和while循环。 (1)for循环(1)for循环nullnull(2)while循环(2)while循环null3.选择结构3.选择结构 选择结构是根据给定的条件来执行不同的代码。在MATLAB中有if-else-end和switch-case-otherwise两种结构。 (1)if-else-end结构(1)if-else-end结构nullnull(2)switch-case-otherwise结构(2)switch-case-otherwise结构null4.其他控制结构4.其他控制结构 在程序设计中经常遇到提前终止循环、跳出子程序、显示出错信息等情况,
本文档为【MATLAB实用教程PPT】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_676185
暂无简介~
格式:ppt
大小:10MB
软件:PowerPoint
页数:0
分类:
上传时间:2014-01-19
浏览量:19