版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、科学计算与科学计算与MATLABMATLAB主讲:唐建国主讲:唐建国中南大学材料科学与工程学院中南大学材料科学与工程学院 2013.92013.9第二讲第二讲 基础知识基础知识(数值、符号计算)(数值、符号计算)内容提要内容提要n1 MATLAB1 MATLAB的启动与运行的启动与运行nMatlabMatlab的启动和退出的启动和退出nMatlabMatlab的工作窗口的工作窗口nMatlabMatlab的指令行的操作的指令行的操作nMatlabMatlab的帮助系统的帮助系统n2 MATLAB2 MATLAB的矩阵与数值计算的矩阵与数值计算nMatlabMatlab数据类型数据类型nMatl
2、abMatlab的变量及其命名的变量及其命名nMatlabMatlab矩阵及其运算矩阵及其运算nMatlabMatlab的数组关系的数组关系/ /逻辑运算逻辑运算nMatlabMatlab的多项式运算的多项式运算n3 MATLAB3 MATLAB的符号计算的符号计算n小结小结1 1、 MATLAB MATLAB的启动与运行的启动与运行1.1 Matlab的启动和退出的启动和退出 2 以菜单方式启动以菜单方式启动 (1)启动)启动 Windows (2)单击)单击开始开始 (3)依次选择)依次选择程序程序. MATLAB和和MATLAB7.0 1 以快捷方式启动以快捷方式启动 (1)启动)启动
3、Windows (2)双击)双击 MATLAB 图标图标退出退出1237 图形窗口图形窗口显示绘图结果,以及对图形的显示绘图结果,以及对图形的操作。操作。6 命令历史记录窗口命令历史记录窗口在默认设置下,历史记录窗口中会自动保在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令询。而且,通过双击命令可进行历史命令的再运行。的再运行。5工作空间窗口工作空间窗口工作空间是工作空间是MATLAB用于存储各种变量和用于存储各种变量和结果的内
4、存空间。在该窗口中显示工作空结果的内存空间。在该窗口中显示工作空间中所有变量的名称、大小、字节数和变间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、量类型说明,可对变量进行观察、编辑、保存和删除。保存和删除。1 菜单栏菜单栏在在MATLAB 7.0主窗口的菜单栏,共包含主窗口的菜单栏,共包含File、Edit、View、Web、Window和和Help 6个菜单项。个菜单项。2工具栏工具栏这些命令按钮均有对应的菜单命令,但比菜单命令使这些命令按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方便。用起来更快捷、方便。1.2 Matlab的工作窗口的工作窗口 3 当前目
5、录窗口当前目录窗口当前目录是指当前目录是指MATLAB运行文件时的工作目录,只运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被运行有在当前目录或搜索路径下的文件、函数可以被运行或调用。或调用。将用户目录设置成当前目录可使用将用户目录设置成当前目录可使用cd命令。命令。例如,例如,cd c:mydir用户可以用用户可以用path命令设置搜索路径。命令设置搜索路径。例如,例如,path(path,c:mydir)在在MATLAB的的File菜单中选菜单中选Set Path命令命令4 命令窗口命令窗口命令窗口是命令窗口是MATLAB的主要交互窗口,的主要交互窗口,用于输入命令并显示
6、除图形以外的所用于输入命令并显示除图形以外的所有执行结果。有执行结果。MATLAB命令窗口中的命令窗口中的“”为命令为命令提示符,表示提示符,表示MATLAB正在处于准备正在处于准备状态。在命令提示符后键入命令并按状态。在命令提示符后键入命令并按下回车键后,下回车键后,MATLAB就会解释执行就会解释执行所输入的命令,并在命令后面给出计所输入的命令,并在命令后面给出计算结果。算结果。一般来说,一个命令行输入一条命令,一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以可以输入若干条命令,各命令之间以逗号分隔,若前一命
7、令后带有分号逗号分隔,若前一命令后带有分号;则逗号可以省略。例如则逗号可以省略。例如p=15,m=35p=15;m=35如果一个命令行很长,可以使用续行如果一个命令行很长,可以使用续行符符1.3 Matlab的指令行的操作的指令行的操作 MATLAB是一种交互式语言,可以在命令窗口中直接是一种交互式语言,可以在命令窗口中直接输入指令。输入指令。指令名称指令名称指令功能指令功能Who或或whos显示在当前工作区中的所有变量名,前者显示变量名,后者还显显示在当前工作区中的所有变量名,前者显示变量名,后者还显示变量的大小、字节数和类型。示变量的大小、字节数和类型。disp(x)显示显示x的内容,它可
8、以是矩阵或字符串。的内容,它可以是矩阵或字符串。which test显示显示 M 文件文件 test.m 的目录的目录 type test在命令窗口下显示在命令窗口下显示 test.m 的内容的内容cd,chdir,pwd显示目前的工作目录显示目前的工作目录load(文件名)(文件名)调出调出mat文件中的数据。也可以调出文本文件,但是文本文件只文件中的数据。也可以调出文本文件,但是文本文件只能是由数字组成的矩阵形式。能是由数字组成的矩阵形式。diary建立一个文本文件,记录在建立一个文本文件,记录在MATLAB中输入的所有命令和它们中输入的所有命令和它们的输出,但是不能包括图形。如果想把你的
9、输入存入一个特定的的输出,但是不能包括图形。如果想把你的输入存入一个特定的文件中,可使用文件中,可使用 diary filename 建立文件。使用建立文件。使用diary off 命令命令可以停止记录。可以停止记录。 通用操作指令通用操作指令1.4 Matlab的指令行的操作的指令行的操作 通用操作指令通用操作指令 名称名称指令功能指令功能what返回目前目录下返回目前目录下M,MAT,MEX文件的列表文件的列表echo控制运行文字指令是否显示控制运行文字指令是否显示clc擦除擦除MATLAB工作区中所有显示的内容工作区中所有显示的内容clf擦除擦除MATLAB图形图形 工作区中的图形工作区
10、中的图形hold控制当前图形窗口对象是否被刷新控制当前图形窗口对象是否被刷新dir,ls列出指定目录下的文件和子目录清单列出指定目录下的文件和子目录清单path显示目前的搜索路径,可以用显示目前的搜索路径,可以用File菜单中的菜单中的 Set path 观察和修改路径。观察和修改路径。pack搜集内存碎块以扩大内存空间搜集内存碎块以扩大内存空间quit退出工作区可以用退出工作区可以用,也可选择也可选择File菜单中菜单中Exit命令。命令。 指令行的编辑指令行的编辑 键键 盘盘 操操 作作 功功 能能 C t r l + p 重重 调调 前前 一一 行行 ( 用用 于于 调调 出出 前前 面
11、面 的的 命命 令令 进进 行行 修修 改改 , 重重 新新 计计 算算 ) C t r l + n 重重 调调 下下 一一 行行 C t r l + b 向向 前前 移移 一一 个个 字字 符符 C t r l + f 向向 后后 移移 一一 个个 字字 符符 C t r l + C t r l + r 右右 移移 一一 个个 字字 C t r l + C t r l + l 左左 移移 一一 个个 字字 H o m e C t r l + a 移移 动动 到到 行行 首首 E n d C t r l + e 移移 动动 到到 行行 尾尾 E s c C t r l + u 清清 除除 一一
12、 行行 D e l C t r l + d 删删 除除 光光 标标 处处 字字 符符 B a c k s p a c e C t r l + h 删删 除除 光光 标标 前前 的的 一一 个个 字字 符符 C t r l + k 删删 除除 到到 行行 尾尾 1.5 Matlab的帮助系统的帮助系统MATLAB帮助命令包括帮助命令包括help、lookfor以及模糊查询以及模糊查询1、help命令命令 在命令窗口中输入在命令窗口中输入help命令将会显示当前帮助系统中所命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。也可包含的所有项目,即搜索路径中所有的目录名称。也可以
13、通过以通过help加函数名来显示该函数的帮助说明。加函数名来显示该函数的帮助说明。2、lookfor命令命令 对搜索范围内的对搜索范围内的M文件的第一行进行关键字搜文件的第一行进行关键字搜索,条件比较宽松。若对索,条件比较宽松。若对M文件进行全文搜索,加文件进行全文搜索,加上上-all选项。选项。3、模糊查询、模糊查询 MATLAB 6.0以上的版本提供了一种类似模糊查以上的版本提供了一种类似模糊查询的命令查询方法,只需要输入命令的前几个字母,询的命令查询方法,只需要输入命令的前几个字母,然后按然后按Tab键,系统就会列出所有以这几个字母开键,系统就会列出所有以这几个字母开头的命令。头的命令。
14、2 2、MATLABMATLAB的矩阵与数值计算的矩阵与数值计算n2.1 Matlab矩阵与数据类型矩阵与数据类型MATLAB中共有中共有15种基本数据类型和种基本数据类型和2种自定义类型。种自定义类型。Matlab数据逻辑类字符类数值类单元结构用户类Java类函数句柄int8,uint8int16,uint16int32,uint32int64,uint64singledouble MATLAB的基本数据单元是矩阵,在的基本数据单元是矩阵,在MATLAB 中不用描述矩阵的类型和维数,它们由输入的格式中不用描述矩阵的类型和维数,它们由输入的格式和内容决定。和内容决定。 常用的创建矩阵变量的方法
15、:常用的创建矩阵变量的方法:1. 在命令窗口中输入。在命令窗口中输入。2. 语句生成。语句生成。3. 函数生成。函数生成。4. 小矩阵生成大矩阵。小矩阵生成大矩阵。5. 利用矩阵编辑器生成。利用矩阵编辑器生成。1 在命令窗口中输入在命令窗口中输入原则:原则:矩阵的元素排列在方括号内矩阵的元素排列在方括号内按行输入,每行内的元素使用空格或逗号按行输入,每行内的元素使用空格或逗号(,)隔开隔开行与行之间用分号行与行之间用分号(;)或回车键隔开或回车键隔开矩阵生成不但可以使用纯数字(含复数),也可以矩阵生成不但可以使用纯数字(含复数),也可以使用变量和表达式使用变量和表达式2 语句生成语句生成 (1
16、)等差数列向量矩阵)等差数列向量矩阵 A=a:h:b 或或 A=a:h:b 其中其中a为起始值,为起始值,h为步长,为步长,b为终止值。当为终止值。当步长为步长为1时可省略时可省略h参数;另外参数;另外h也可以取负数。也可以取负数。(2)A=linspace(a,b,n)在线性空间上,行矢量的值从在线性空间上,行矢量的值从a到到b,数据个数为,数据个数为n,缺省,缺省n为为100。与。与 A=a:(b-a)/(n-1):b相同相同3、函数生成、函数生成常用创建矩阵函数常用创建矩阵函数函函 数数说说 明明ones(m,n)产生产生 mXn 全全 1 矩阵矩阵zeros(m,n) 产生产生 mXn
17、 全全 0 矩阵矩阵rand(m,n) 产生产生 mXn 随机矩阵随机矩阵length(X)计算向量计算向量X中元素个数中元素个数size(X)矩阵矩阵X的行数与列数的行数与列数4、小矩阵生成大矩阵、小矩阵生成大矩阵Matlab中,可以将小矩阵连接起来生成较大的矩阵。中,可以将小矩阵连接起来生成较大的矩阵。5 利用矩阵编辑器生成利用矩阵编辑器生成MATLAB的默认数据存储类型为双精度浮点类型(double),可以利用转化函数存储为其它类型,所有的数值类型数据均可作为数组的索引。数据类型取值范围类型转化函数有符号8位整数int8有符号16位整数int16有符号32位整数int32有符号64位整数
18、int64无符号8位整数uint8无符号16位整数uint16无符号32位整数uint32无符号64位整数uint64整数类型的取值范围和类型转化函数MATLAB的浮点数分为单精度(single)和双精度(double)。默认数据类型double需要64位存储空间,具体如下:636252510符号e: 指数部分且有1023的偏移量f: 小数部分Single需要32位存储空间,具体如下:313023220符号指数部分且有127的偏移量小数部分 eps=2-52=2.2204e-16, realmin=2-1022=2.2251e-308, realmax=(2-eps)*21023=1.7977
19、e308MATLAB中分别用Inf和Inf表示正无穷(超出realmax)和负无穷(小于realmin)。用NAN表示非数。MATLAB表示复数时,可用字母i或j表示虚部,创建复数可直接输入或利用函数complex(a,b)。a=2-3ia= 2.00003.0000ia=2,b=3, complex(a,b)a= 2b= 3ans= 2.00003.0000i利用函数real(z)和imag(z)可以获得复数z的实部和虚部。 MATLAB数值常量数值常量变变 量量说说 明明ans用于结果的缺省变量名用于结果的缺省变量名i j虚数单位,定义虚数单位,定义pi圆周率圆周率Inf无穷大无穷大 如如
20、1/0NaN不确定量不确定量 如如0/0realmin最小正实数最小正实数2.22507385850720110-308realmax最大正实数最大正实数1.79769313486231610+3081 如果结果为整数,则显示没有小数;如果结果不如果结果为整数,则显示没有小数;如果结果不是整数,则输出形式有:是整数,则输出形式有:format (short):短格式(:短格式(5位定点数)位定点数)99.1253format long:长格式(:长格式(15位定点数位定点数 ) 99.12345678900000format short e:短格式:短格式e方式方式 9.9123e+001fo
21、rmat long e:长格式:长格式e方式方式 9.912345678900000e+001format bank:2位十进制位十进制 99.12format hex:十六进制格式:十六进制格式逻辑类型的变量有两种取值,逻辑真和逻辑假,分别用逻辑类型的变量有两种取值,逻辑真和逻辑假,分别用“1”和和“0”表示。表示。通过输入“true”或”false”直接创建逻辑数组;通过对数组进行逻辑运算创建;通过MATLAB函数产生逻辑数组;函数操作true、false设值为真或假logical数值类型转化为逻辑类型&(and)、|(or)、(not)、xor、any、all逻辑运算&、
22、|与、或=、=、=关系运算is*、cellfun测试运算strcmp、strncmp、strcmpi、strncmpi字符串比较字符串型数据:用英文格式单引号加以界定的数字、字符、字符串型数据:用英文格式单引号加以界定的数字、字符、各种符号、表达式、方程式和汉字等。执行用各种符号、表达式、方程式和汉字等。执行用eval。如果要创建二维字符数组,则要求每行长度相同。如果长度不同,需要用空格来补充。m=Yanbian ; University补3个空格,使长度相等函数描述cellstr将字符数组转化为字符串单元数组char将字符串单元数组转化为字符数组deblank移除字符串尾部的空格iscell
23、str判断是否为字符串单元数组sort元素排序strcat串接字符串strcmp比较字符串strmatch查找匹配字符串结构是根据字段组合起来的不同类型的数据集合。=Li Ming;student.course=10135 10096;student. score=87 92student(2).name=Zhang Li;student(2).course=10135 10096;student(2). score=82 761.利用赋值语句创建结构2.利用结构函数创建结构strArray=srtuct(field1,val1, field2,val2, )field
24、field和和valval为字段和对应值。为字段和对应值。字段值可以是单一值或单元数组字段值可以是单一值或单元数组,但是必须保证它们具有相同的,但是必须保证它们具有相同的大小。大小。stu=struct(n,Wang Fang,c,10568 10063,s,76 82);stu(2)=struct(n,Zhao Yun,c,10568 10063,s,92 87);stu=struct(n,Wang Fang,Zhao Yun,c,10568 10063,10568 10063,s,76 82,96 87)单元数组可以将不同类型或不同尺寸的数据存储到同一个单元数组可以将不同类型或不同尺寸的数
25、据存储到同一个数组当中。数组当中。创建单元数组与创建矩阵基本相同,区别在于矩阵用创建单元数组与创建矩阵基本相同,区别在于矩阵用,单,单元数组用元数组用。a=2 4 7;3 9 6;1 8 5, Li Ming,2+3i,1:2:10a = 3x3 double Li Ming 2.0000 + 3.0000i 1x5 double访问单元数组的方法与矩阵索引方法基本相同,区别在于单访问单元数组的方法与矩阵索引方法基本相同,区别在于单元数组索引时,需要用元数组索引时,需要用将下标置于其中。将下标置于其中。A1,1=2 5;7 3;A1,2=rand(3,3);B=sum(A1,1) B = 9
26、8(1) 在已有函数名前加符号,即可创建函数句柄;例如,存在已有函数,名为functionname,创建一个函数句柄fun1 :fun1=functionname(2) 可提供匿名函数创建一个函数句柄。例如,创建一个计算x平方的函数:sqr=(x)x.2要执行与函数句柄相关的函数,需将函数句柄看作函数名。要执行与函数句柄相关的函数,需将函数句柄看作函数名。 sqr=(x)x.2; a=sqr(5)a = 25n 2.2 Matlab的变量及其命名的变量及其命名 MATLAB 不需要在输入变量的时候进行声明,也不需要在输入变量的时候进行声明,也不需要指定其阶数,若输入的变量已经存在,则新变量不需
27、要指定其阶数,若输入的变量已经存在,则新变量替换原有变量。替换原有变量。变量的命名规则(标识符):变量的命名规则(标识符):1. 区分大小写。区分大小写。2. 字符长度不大于字符长度不大于63个。个。3. 变量名应以字母开头,变量名可以由字母、数字、和变量名应以字母开头,变量名可以由字母、数字、和下划线组成。变量名中不得含空格、标点。下划线组成。变量名中不得含空格、标点。4. 避免使用函数名和系统保留字。避免使用函数名和系统保留字。保存和载入保存和载入workspace(1)save filename variables 将变量列表将变量列表variables所列出的变量保存到磁盘所列出的变量
28、保存到磁盘文件文件filename中,中,Variables所表示的变量列表所表示的变量列表中,不能用逗号,各个不同的变量之间只能用中,不能用逗号,各个不同的变量之间只能用空格来分隔。空格来分隔。 未列出未列出variables时,表示将当前工作空间中所时,表示将当前工作空间中所有变量都保持到磁盘文件中。有变量都保持到磁盘文件中。 缺省的磁盘文件扩展名为缺省的磁盘文件扩展名为“.mat”,可以使用,可以使用“-”定义不同的存储格式(定义不同的存储格式(ASCII、V4等)等)(2)load filename variables 将以前用将以前用save命令保存的变量命令保存的变量variabl
29、es从磁盘从磁盘文件中调入文件中调入MATLAB工作空间。工作空间。 用用load 命令调入的变量,其名称为用命令调入的变量,其名称为用save命令命令保存时的名称,取值也一样。保存时的名称,取值也一样。 Variables所表示的变量列表中,不能用逗号,所表示的变量列表中,不能用逗号,各个不同的变量之间只能用空格来分隔。各个不同的变量之间只能用空格来分隔。 未列出未列出variables时,表示将磁盘文件中的所有时,表示将磁盘文件中的所有变量都调入工作空间。变量都调入工作空间。说明:说明:输入一个语句并以回车结束,则在工作区中显示计算的结果;输入一个语句并以回车结束,则在工作区中显示计算的结
30、果;若变量和若变量和“=”省略,则名为省略,则名为ans的变量自动建立;的变量自动建立;如果语句以分号如果语句以分号“;”结束,结束,MATLAB只进行计算,不显示计算的结果;只进行计算,不显示计算的结果;如果一个表达式太长,可以用续行号如果一个表达式太长,可以用续行号 将其延续到下一行。将其延续到下一行。一行中可以写几个语句,它们之间要用逗号或分号分开。一行中可以写几个语句,它们之间要用逗号或分号分开。表达式中的变量必须是已经定义的。表达式中的变量必须是已经定义的。 MATLAB 语句语句 一般形式为:一般形式为: 变量变量 = 表达式表达式 对变量操作的命令对变量操作的命令变变 量量说说
31、明明whowho显示当前工作空间中所有变量的一个简单列表显示当前工作空间中所有变量的一个简单列表whoswhos列出变量的大小、数据格式等详细信息列出变量的大小、数据格式等详细信息clearclear清除工作空间中所有的变量清除工作空间中所有的变量clear clear 变量名变量名清除指定的变量清除指定的变量save save 文件名文件名 变变量名量名将变量列中所列出的变量保存到磁盘文件中,变量列表中,将变量列中所列出的变量保存到磁盘文件中,变量列表中,各个不同的变量之间不能用逗号,只能用空格来分隔。各个不同的变量之间不能用逗号,只能用空格来分隔。load load 文件名文件名 变变量名
32、量名将以前用将以前用savesave命令保存的变量从磁盘文件中调入命令保存的变量从磁盘文件中调入MATLABMATLAB工工作空间。作空间。1引用矩阵元素引用矩阵元素通过下标引用矩阵的元素通过下标引用矩阵的元素矩阵元素的序号来引用矩阵元素。按列排序,矩阵元素的序号来引用矩阵元素。按列排序, mn矩阵矩阵A,矩阵元素,矩阵元素A(i,j)的序号为的序号为(j-1)*m+i。 n2.3 Matlab矩阵运算矩阵运算2矩阵的拆分矩阵的拆分A(:,j)表示取表示取A矩阵的第矩阵的第j列全部元素;列全部元素;A(i,:)表示表示A矩阵第矩阵第i行的全部元素;行的全部元素;A(i:i+m,:)表示取表示取
33、A矩阵第矩阵第ii+m行的全部元素;行的全部元素;A(:,k:k+m)表示取表示取A矩阵第矩阵第kk+m列的全部元素;列的全部元素;A(i:i+m,k:k+m)表示取表示取A矩阵第矩阵第ii+m行内,并在第行内,并在第kk+m列中的所有元素。列中的所有元素。3.矩阵算法矩阵算法 和和 数组算法数组算法矩阵算法矩阵算法 把矩阵看作一个整体,各种运算完全按照线性代把矩阵看作一个整体,各种运算完全按照线性代数代表的矩阵运算法则进行,运算的书写形式和数代表的矩阵运算法则进行,运算的书写形式和运算符号都与矩阵理论完全相同。运算符号都与矩阵理论完全相同。数组算法数组算法把矩阵看作由其元素构成的一组数据(数
34、组),把矩阵看作由其元素构成的一组数据(数组),各种运算是在参与运算矩阵的对应元素之间进行各种运算是在参与运算矩阵的对应元素之间进行的数与数的运算,这种运算方便对大批数据的处的数与数的运算,这种运算方便对大批数据的处理和一次求出多个函数值。理和一次求出多个函数值。 数组算法的运算符主要有数组算法的运算符主要有 . .* * ./ . . ./ . . Matlab运算符运算符 算术运算符算术运算符操作符操作符说说 明明+加加 A+B A B必须大小相同,或一个是标量必须大小相同,或一个是标量-减减 A-B A B必须大小相同,或一个是标量必须大小相同,或一个是标量*矩阵乘矩阵乘 A*B A 的
35、列数等于的列数等于B的行数,一个可以是标量的行数,一个可以是标量.*数组乘数组乘 A.*B A B必须大小相同,一个可以是标量必须大小相同,一个可以是标量矩阵左除矩阵左除 AB =A-1* B 等效于等效于A*X=B求求X inv(A).数组左除数组左除 A.B Bij/Aij/矩阵右除矩阵右除 A/B =A*B-1 等效于等效于X*B=A求求X./数组右除数组右除 A./B Aij/Bij矩阵乘方矩阵乘方 Ap A自乘自乘p次次.数组乘方数组乘方 A.p A中每个元素的中每个元素的p次方次方如:如:a=1 2;3 4;b= 3 5; 5 9c=a+b d=a-bc= d= 4 7 -2 -3
36、 8 13 -2 -5a*b=13 23; 29 51a/b=-0.50 0.50;3.50 1.50ab=-1 -1;2 3a3=37 54; 81 118a.*b=3 10;15 36a./b=0.33 0.40;0.60 0.44a.b=3.00 2.50;1.67 2.25a.3= 1 8; 27 64 只有维数相同的矩阵才能进行加减运算。 注意只有当两个矩阵中前一个矩阵的列数和后一个矩阵的行数相同时,才可以进行乘法运算。ab运算等效于求a*x=b的解;而a/b等效于求x*b=a的解。只有方阵才可以求幂。 转置:对于实矩阵用(转置:对于实矩阵用()符号或()符号或(.)求转置)求转置结
37、果是一样的;然而对于含复数的矩阵,则(结果是一样的;然而对于含复数的矩阵,则()将同时对复数进行共轭处理,而将同时对复数进行共轭处理,而 (.)则只是)则只是将其排列形式进行转置。将其排列形式进行转置。4.常用矩阵运算常用矩阵运算逆矩阵与行列式计算逆矩阵与行列式计算求逆:求逆:inv(A);求行列式:求行列式:det(A)要求矩阵必须为方阵要求矩阵必须为方阵求矩阵求矩阵A的奇异值及分解矩阵,满的奇异值及分解矩阵,满足足U*S*V=A,其中,其中U、V矩阵为矩阵为正交矩阵(正交矩阵(U*U=I),),S矩阵为矩阵为对角矩阵,它的对角元素即对角矩阵,它的对角元素即A矩阵矩阵的奇异值。的奇异值。u,
38、s,v=svd(a)u = 0.7705 -0.6375 0.6375 0.7705s = 15.5765 0 0 1.5408v = 0.6907 -0.7231 0.7231 0.6907(2)特征值分解)特征值分解V,D=eig(A)例:例: a = 9 8 6 8v,d=eig(a)v = 0.7787 -0.7320 0.6274 0.6813d = 15.4462 0 0 1.5538求矩阵求矩阵A的特征向量的特征向量V及特征值及特征值D,满足满足A*V=V*D。其中。其中D的对角线的对角线元素为特征值,元素为特征值,V的列为对应的特的列为对应的特征向量。如果征向量。如果D=eig
39、(A)则只返回则只返回特征值。特征值。(3)正交分解)正交分解Q,R=qr(A)例:例: a = 9 8 6 8q,r=qr(a)q = -0.8321 -0.5547 -0.5547 0.8321r = -10.8167 -11.0940 0 2.2188将矩阵将矩阵A做正交化分解,使得做正交化分解,使得Q*R=A,其中,其中Q为正交矩阵(其为正交矩阵(其范数为范数为1,指令,指令norm(Q)=1),R为为对角化的上三角矩阵。对角化的上三角矩阵。(4)三角分解)三角分解L,U=lu(A)将将A做对角线分解,使得做对角线分解,使得A=L*U,其中其中L为下三角矩阵,为下三角矩阵,U为上三角矩
40、阵。为上三角矩阵。注意:注意:L实际上是一个实际上是一个“心理上心理上”的下三角矩阵,它事实的下三角矩阵,它事实上是一个置换矩阵上是一个置换矩阵P的逆矩阵与一个真正下三角矩阵的逆矩阵与一个真正下三角矩阵L1(其对角线元素为(其对角线元素为1)的乘积。)的乘积。L1,U1,P=lu(A)例:例:a=1 2 3;4 5 6;7 8 9 比较:比较: l1,u1,p=lu(a) l,u=lu(a)n 矩阵超越函数矩阵超越函数n在在MATLAB中中exp、sqrt等命令也可以作用等命令也可以作用到矩阵上,但这种运算是定义在矩阵的单个元到矩阵上,但这种运算是定义在矩阵的单个元素上的,即分别对矩阵的每一个
41、元素进行计算。素上的,即分别对矩阵的每一个元素进行计算。n超越数学函数可以在函数后加上超越数学函数可以在函数后加上m而成为矩而成为矩阵的超越函数,例如:阵的超越函数,例如:expm,sqrtm。矩阵的超。矩阵的超越函数要求运算矩阵为方阵。越函数要求运算矩阵为方阵。例、已知例、已知100010001 987654321ba 求:求:2 aba 例、已知例、已知100010001 987654321ba 求:求:2* . 2* * . *aababa 例、已知例、已知8765 4321dc求:求:dcdcdcdcc/ . . / 1c-1*dc*d-1例、已知例、已知100010001 98765
42、4321ba 求:求:baaaa. .2 2. 22.4 Matlab的数组关系的数组关系/逻辑运算逻辑运算关系运算符关系运算符操作符操作符说说 明明=等于等于=不等于不等于大于大于=大于等于大于等于 A=sym(a,b;c,d)A = a, b c, d例如,使用syms命令创建相同的符号矩阵。 syms a b c d A=a b;c dA = a, b c, d【例3.3】 比较符号矩阵与字符串矩阵的不同。 A=sym(a,b;c,d) %创建符号矩阵A = a, b c, d B=a,b;c,d %创建字符串矩阵B =a,b;c,d C=a,b;c,d %创建数值矩阵? Undefin
43、ed function or variable a.程序分析:由于数值变量a、b、c、d未事先赋值,MATLAB给出错误信息。 C=sym(B) %转换为符号矩阵C = a, b c, d whos Name Size Byte Class A 2x2 60 sym B 1x9 18 char C 2x2 60 sym Grand total is 25 elements using 642 Byte3.2.1 符号表达式的代数运算符号表达式的代数运算1符号运算中的运算符符号运算中的运算符符号运算中的运算符有以下符号运算中的运算符有以下2种。种。(1)基本运算符。)基本运算符。(2)关系运算符
44、。)关系运算符。2函数运算函数运算(1)三角函数和双曲函数。)三角函数和双曲函数。(2)指数和对数函数。)指数和对数函数。(3)复数函数。)复数函数。(4)矩阵代数命令。)矩阵代数命令。【例3.4】 求矩阵 的行列式值、非共轭转置和特征值。 syms a11 a12 a21 a22 A=a11 a12;a21 a22 %创建符号矩阵A = a11, a12 a21, a22 det(A) %计算行列式ans =a11*a22a12*a21 A. %计算非共轭转置ans = a11, a21 a12, a22 eig(A) %计算特征值ans = 1/2*a22+1/2*a11+1/2*(a22
45、22*a11*a22+a112+4*a12*a21)(1/2) 1/2*a22+1/2*a111/2*(a2222*a11*a22+a112+4*a12*a21)(1/2)11122122aaaaA【例3.5】 符号表达式f=2x2+3x+4与g=5x+6的代数运算。 f=sym(2*x2+3*x+4)f =2*x2+3*x+4 g=sym(5*x+6)g =5*x+6 f+g %符号表达式相加ans =2*x2+8*x+10 f*g %符号表达式相乘ans =(5*x+6)*(2*x2+3*x+4)1Symbolic Math Toolbox中的算术运算方式中的算术运算方式在在Symboli
46、c Math Toolbox中有中有3种不同的算术运算。种不同的算术运算。(1)数值型:)数值型:MATLAB的浮点运算。的浮点运算。(2)有理数型:精确符号运算。)有理数型:精确符号运算。(3)VPA型:任意精度运算。型:任意精度运算。2任意精度控制任意精度控制任意精度的任意精度的VPA型运算可以使用型运算可以使用digits和和vpa命令来实现。命令来实现。语法:语法:digits(n) %设定默认的精度设定默认的精度语法:语法:S=vpa(s,n) %将将s表示为表示为n位有效位数的符号对位有效位数的符号对象象【例3.6】 对表达式 进行任意精度控制的比较。 a=sym(2*sqrt(5
47、)+pi)a =pi + 2*5(1/2) digits %显示默认的有效位数 Digits = 32 vpa(a) %用默认的位数计算并显示ans =7. 2809907207421 vpa(a,20) %按指定的精度计算并显示ans =7. 3 digits(15) %改变默认的有效位数 vpa(a) %按digits指定的精度计算并显示ans =7.613728608589373Symbolic Math Toolbox中的中的3种运算方式的比较种运算方式的比较【例【例3.6续】续】 用用3种运算方式表达式比较种运算方式表达式比较2/3的结果。的结果。a1 =2/3 %数值型数值型a1
48、= 0.6667a2 = sym(2/3) %有理数型有理数型a2 =2/3 digits Digits = 32 a3 =vpa(2/3,32) %VPA型型a3 =. 666666666666671将数值对象转换为符号对象将数值对象转换为符号对象前面已经介绍了前面已经介绍了sym命令可以把数值型对象转换成为有理数型符号对象,命令可以把数值型对象转换成为有理数型符号对象,vpa命令可以将数值型对象转换为任意精度的命令可以将数值型对象转换为任意精度的VPA型符号对象。型符号对象。2将符号对象转换为数值对象将符号对象转换为数值对象使用使用double函数可以将有理数型和函数可以将有理数型和VPA
49、型符号对象转换成为数值对象。型符号对象转换成为数值对象。语法:语法:N=double(S) %将符号变量将符号变量S转换为数值变量转换为数值变量N【例3.7】 将符号变量 与数值变量进行转换。 a1=sym(2*sqrt(5)+pi)a =pi + 2*5(1/2) b1=double(a1) %转换为数值变量b1 = 7.6137 a2=vpa(sym(2*sqrt(5)+pi),32)a2 = 7. 2809907207421 b2=double(a2) %转换为数值变量b2 = 7.6137(1)多项式形式的表达方式:f(x)=x3+6x2+11x6 (2)因式形式的表达方式:f(x)=
50、(x1)(x2)(x3) (3)嵌套形式的表达方式:f(x)=x(x(x6)+11) 6 【例3.9】 3种形式的符号表达式的表示。 f=sym(x36*x2+11*x6)%多项式形式f =x36*x2+11*x6 g= sym(x1)*(x2)*(x3) %因式形式g =(x1)*(x2)*(x3) h= sym( x*(x*(x6)+11) 6) %嵌套形式h =x*(x*(x6)+11) 6MATLIB提供了pretty 、collect、expand、horner和factor函数,可以对符号表达式进行化简,如表3.2所示。函 数 名变 换 前变 换 后备 注prettyx36*x2+
51、11*x63 2x + 6 x + 11 x 6给出排版形式的输出结果collect(x1)*(x2)*(x3)x36*x2+11*x6表示为合并同类项多项式expand(x1)*(x2)*(x3)x36*x2+11*x6表示为多项式形式hornerx36*x2+11*x6x*(x*(x6)+11) 6表示为嵌套的形式factorx36*x2+11*x6(x1)*(x2)*(x3)表示为因式的形式1simplify函数函数simplify函数功能强大,利用各种形式的代数恒等式对符号表达式进行化简,函数功能强大,利用各种形式的代数恒等式对符号表达式进行化简,包括求和、分解、积分、幂、三角、指数和
52、对数函数等。包括求和、分解、积分、幂、三角、指数和对数函数等。【例【例3.9】 利用三角函数简化符号表达式利用三角函数简化符号表达式cos2xsin2x。 y=sym(cos(x)2sin(x)2)y =cos(x)2sin(x)2 simplify(y)ans =2*cos(x)212simple函数函数simple 函数给出多种简化形式,给出除了函数给出多种简化形式,给出除了pretty 、collect、expand、factor、simplify简化形式之外的简化形式之外的radsimp、combine、combine(trig)、convert形式,并寻求包含最少数目字符的表达式简化
53、形式。形式,并寻求包含最少数目字符的表达式简化形式。【例【例3.9续】续】 利用利用simple简化符号表达式简化符号表达式cos2xsin2x。1求反函数求反函数对于函数对于函数f(x),若存在另一个函数,若存在另一个函数g(.),使得,使得g(f(x)x成立,则函数成立,则函数g(.)称为函数称为函数f(x)的反函数。在的反函数。在MATLAB中,中,finverse函数可以求得符号函数的反函数可以求得符号函数的反函数。函数。语法:语法:finverse(f,v) %对指定自变量对指定自变量v的函数的函数f(v)求反求反函数函数【例【例3.11】 求求tex的反函数。的反函数。 f=sym
54、(t*ex) %原函数原函数f = t*ex g=finverse(f) %对默认自由变量求反函对默认自由变量求反函数数g =log(x/t)/log(e) g=finverse(f,t) %对对t求反函数求反函数g =t/(ex)程序分析:如果先定义程序分析:如果先定义t为符号变量,则参数为符号变量,则参数t的单引号可去掉。的单引号可去掉。 syms t g=finverse(f,t)2求复合函数求复合函数运用函数运用函数compose可以求符号函数可以求符号函数f(x)和和g(y)的复合函数。的复合函数。语法:语法:compose(f,g) %求求f(x)和和g(y)的复合的复合函数函数f
55、(g(y)compose(f,g,z) %求求f(x)和和g(y)的复合函数的复合函数f(g(z)【例【例3.11续】续】 计算计算tex与与ay2+by+c的复合函数。的复合函数。 f=sym(t*ex); %创建符号表达式创建符号表达式 g=sym(a*y2+b*y+c); %创建符号表达式创建符号表达式 h1=compose(f,g) %计算计算f(g(x)h1 =t*e(a*y2+b*y+c) h2=compose(g,f) %计算计算g(f(x)h2 =a*t2*(ex)2+b*ex+c h3=compose(f,g,z) %计算计算f(g(z)h3 =t*e(a*z2+b*z+c)
56、语法:语法:compose(f,g,x,z) %以以x为自变量构成复合函数为自变量构成复合函数f(g(z)compose(f,g,x,y,z) %以以x为自变量构成复合函数为自变量构成复合函数f(g(z),并,并用用z替换替换y1符号表达式与多项式的转换符号表达式与多项式的转换(1)sym2poly函数。函数。sym2poly函数用来将构成多项式的符号表达式转函数用来将构成多项式的符号表达式转换为按降幂排列的行向量。换为按降幂排列的行向量。【例【例3.12】 将符号表达式将符号表达式2x+3x2+1转换为行向量。转换为行向量。 f=sym(2*x+3*x2+1)f =2*x+3*x2+1 sy
57、m2poly(f) %转换为按降幂排列的行向量转换为按降幂排列的行向量ans = 3 2 1 f1=sym(a*x2+b*x+c)f1 =a*x2+b*x+c sym2poly(f1)? Error using = sym/sym2polyInput has more than one symbolic variable.(2)poly2sym函数。poly2sym函数与sym2poly函数相反,用来将按降幂排列的行向量转换为符号表达式。【例3.12续】 将行向量转换为符号表达式。 g=poly2sym(1 3 2) %默认x为符号变量的符号表达式g =x2+3*x+2 g=poly2sym(
58、1 3 2,sym(y) %y为符号变量的符号表达式g =y2+3*y+22提取分子和分母提取分子和分母如果符号表达式是如果符号表达式是1个有理分式(两个多项式之比),可以利用个有理分式(两个多项式之比),可以利用numden函数函数提取分子或分母,还可以进行通分。提取分子或分母,还可以进行通分。语法:语法:n,d=numden(f)【例3.13】 用numden函数提取符号表达式 和 的分子、分母。 f1=sym(1/(s2+3*s+2)f1 =1/(s2+3*s+2) f2=sym(1/s2+3*s+2)f2 =1/s2+3*s+2 n1,d1=numden(f1)n1 =1d1 =s2+
59、3*s+2 n2,d2=numden(f2)n2 =1+3*s3+2*s2d2 =s22132ss2132ss3.4.1 3.4.1 符号极限符号极限假定符号表达式的极限存在,假定符号表达式的极限存在,Symbolic Math ToolboxSymbolic Math Toolbox提供了直接求表达式极提供了直接求表达式极限的函数限的函数limitlimit,函数,函数limitlimit的基本用法如表的基本用法如表3.33.3所示。所示。0lim( )xf xlim( )xaf xlim( )xaf xlim( )xaf x【例3.14】 分别求1/x在0处从两边趋近、从左边趋近和从右边趋近的3个极限值。 f=sym(1/x)f =1/x limit(f) %对x求趋近于0的极限ans =NaN limit(f,x,0) %对x求趋近于0的极限ans =NaN limit(f,x,0,left) %左趋近于0ans =inf limit(f,x,0,right) %右趋近于0a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年主婚人婚礼致辞范例(3篇)
- 科普教育实施方案例文(4篇)
- 2025年五一劳动节活动总结(4篇)
- 职业病防治计划与实施方案样本(3篇)
- 学校反商业贿赂实施方案范文(2篇)
- 烟花爆竹经营企业安全生产例会制度模版(2篇)
- 科室医院感染制度模版(3篇)
- 未成年人思想道德建设工作制度(2篇)
- 2025年度科研工作总结标准范文(2篇)
- 中学安全防范制度范文(2篇)
- 北京理工大学《数据结构与算法设计》2022-2023学年第一学期期末试卷
- 锚杆(索)支护工技能理论考试题库200题(含答案)
- 影视后期制作团队薪酬激励方案
- 2024年有限合伙股权代持
- 广东珠海市驾车冲撞行人案件安全防范专题培训
- 花城版一年级上册音乐 第3课 《国旗国旗真美丽》(教案)
- 2024年四川高校对口招生考试中职英语试卷真题(含答案)
- 食品质量安全法律法规培训
- 医疗仪器安装与调试方案
- 陕西省陕西师大附中2025届高一物理第一学期期末统考模拟试题含解析
- 人教版2024年小学二年级上学期语文期末考试往年真题
评论
0/150
提交评论