matlab2-基础知识_第1页
matlab2-基础知识_第2页
matlab2-基础知识_第3页
matlab2-基础知识_第4页
matlab2-基础知识_第5页
已阅读5页,还剩90页未读, 继续免费阅读

下载本文档

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

文档简介

1、 2 以菜单方式启动以菜单方式启动 (1)启动)启动 Windows (2)单击)单击开始开始 (3)依次选择)依次选择程序程序. MATLAB和和MATLAB7.0 1 以快捷方式启动以快捷方式启动 (1)启动)启动 Windows (2)双击)双击 MATLAB 图标图标退出退出1237 图形窗口图形窗口显示绘图结果,以及对图形的显示绘图结果,以及对图形的操作。操作。6 命令历史记录窗口命令历史记录窗口在默认设置下,历史记录窗口中会自动保在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查并且还标明

2、了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令询。而且,通过双击命令可进行历史命令的再运行。的再运行。5工作空间窗口工作空间窗口工作空间是工作空间是MATLAB用于存储各种变量和用于存储各种变量和结果的内存空间。在该窗口中显示工作空结果的内存空间。在该窗口中显示工作空间中所有变量的名称、大小、字节数和变间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、量类型说明,可对变量进行观察、编辑、保存和删除。保存和删除。1 菜单栏菜单栏在在MATLAB 7.0主窗口的菜单栏,共包含主窗口的菜单栏,共包含File、Edit、View、Web、Window和和Help

3、6个菜单项。个菜单项。2工具栏工具栏这些命令按钮均有对应的菜单命令,但比菜单命令使这些命令按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方便。用起来更快捷、方便。3 当前目录窗口当前目录窗口当前目录是指当前目录是指MATLAB运行文件时的工作目录,只运行文件时的工作目录,只有在当前目录或搜索路径下的文件、函数可以被运行有在当前目录或搜索路径下的文件、函数可以被运行或调用。或调用。u将用户目录设置成当前目录可使用将用户目录设置成当前目录可使用cd命令。命令。例如,例如,cd c:mydiru用户可以用用户可以用path命令设置搜索路径。命令设置搜索路径。例如,例如,path(path,c:

4、mydir)u在在MATLAB的的File菜单中选菜单中选Set Path命令命令4 命令窗口命令窗口命令窗口是命令窗口是MATLAB的主要交互窗口,的主要交互窗口,用于输入命令并显示除图形以外的所用于输入命令并显示除图形以外的所有执行结果。有执行结果。MATLAB命令窗口中的命令窗口中的“”为命令为命令提示符,表示提示符,表示MATLAB正在处于准备正在处于准备状态。在命令提示符后键入命令并按状态。在命令提示符后键入命令并按下回车键后,下回车键后,MATLAB就会解释执行就会解释执行所输入的命令,并在命令后面给出计所输入的命令,并在命令后面给出计算结果。算结果。一般来说,一个命令行输入一条命

5、令,一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号逗号分隔,若前一命令后带有分号;则逗号可以省略。例如则逗号可以省略。例如p=15,m=35p=15;m=35如果一个命令行很长,可以使用续行如果一个命令行很长,可以使用续行符符 MATLAB是一种交互式语言,可以在命令窗口中直接是一种交互式语言,可以在命令窗口中直接输入指令。输入指令。 通用操作指令通用操作指令 通用操作指令通用操作指令 指令行的编辑指令行的编辑 键键 盘盘 操操 作作 功功 能能 C

6、 t r l + p 重重 调调 前前 一一 行行 ( 用用 于于 调调 出出 前前 面面 的的 命命 令令 进进 行行 修修 改改 , 重重 新新 计计 算算 ) 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 +

7、 e 移移 动动 到到 行行 尾尾 E s c C t r l + u 清清 除除 一一 行行 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 删删 除除 到到 行行 尾尾 MATLAB帮助命令包括帮助命令包括help、lookfor以及模糊查询以及模糊查询1、help命令命令 在命令窗口中输入在命令窗口中输入help命令将会显示当前帮助系统中所命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。也可包

8、含的所有项目,即搜索路径中所有的目录名称。也可以通过以通过help加函数名来显示该函数的帮助说明。加函数名来显示该函数的帮助说明。2、lookfor命令命令 对搜索范围内的对搜索范围内的M文件的第一行进行关键字搜文件的第一行进行关键字搜索,条件比较宽松。若对索,条件比较宽松。若对M文件进行全文搜索,加文件进行全文搜索,加上上-all选项。选项。3、模糊查询、模糊查询 MATLAB 6.0以上的版本提供了一种类似模糊查以上的版本提供了一种类似模糊查询的命令查询方法,只需要输入命令的前几个字母,询的命令查询方法,只需要输入命令的前几个字母,然后按然后按Tab键,系统就会列出所有以这几个字母开键,系

9、统就会列出所有以这几个字母开头的命令。头的命令。MATLAB中共有中共有15种基本数据类型和种基本数据类型和2种自定义类型。种自定义类型。Matlab数据逻辑类字符类数值类单元结构用户类Java类函数句柄int8,uint8int16,uint16int32,uint32int64,uint64singledouble MATLAB的基本数据单元是矩阵的基本数据单元是矩阵,在在MATLAB 中不用描述矩阵的类型和维数,它们由输入的格式中不用描述矩阵的类型和维数,它们由输入的格式和内容决定。和内容决定。 常用的创建矩阵变量的方法:常用的创建矩阵变量的方法: 在命令窗口中输入。在命令窗口中输入。

10、语句生成。语句生成。 函数生成。函数生成。 小矩阵生成大矩阵。小矩阵生成大矩阵。 利用矩阵编辑器生成。利用矩阵编辑器生成。1 在命令窗口中输入在命令窗口中输入原则:原则: 矩阵的元素排列在方括号内矩阵的元素排列在方括号内 按行输入,每行内的元素使用空格或逗号按行输入,每行内的元素使用空格或逗号(,)隔开隔开 行与行之间用分号行与行之间用分号(;)或回车键隔开或回车键隔开矩阵生成不但可以使用纯数字(含复数),也可矩阵生成不但可以使用纯数字(含复数),也可以使用变量和表达式以使用变量和表达式2 语句生成语句生成 (1)等差数列向量矩阵)等差数列向量矩阵 A=a:h:b 或或 A=a:h:b 其中其

11、中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、函数生成、函数生成常用创建矩阵函数常用创建矩阵函数4、小矩阵生成大矩阵、小矩阵生成大矩阵Matlab中,可以将小矩阵连接起来生成较大的矩阵。中,可以将小矩阵连接起来生成较大的矩阵。MATLAB的默认数据存储类型为双精度浮点类型(double),

12、可以可以利用转化函数存储为其它类型,所有的数值类型数据均可作为利用转化函数存储为其它类型,所有的数值类型数据均可作为数组的索引。数组的索引。整数类型的取值范围和类型转化函数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)*2

13、1023=1.7977e308MATLAB中分别用Inf和Inf表示正无穷(超出realmax)和负无穷(小于realmin)。用NAN表示非数。MATLAB表示复数时,可用,创建复数可直接输入或利用函数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数值常量数值常量1逻辑类型的变量有两种取值,逻辑类型的变量有两种取值,和和,分别用,分别用“1”和和“0”表示。表示。通过输入“true”或”false

14、”直接创建逻辑数组;通过对数组进行逻辑运算创建;通过MATLAB函数产生逻辑数组;字符串型数据:用英文格式单引号加以界定的数字、字符、字符串型数据:用英文格式单引号加以界定的数字、字符、各种符号、表达式、方程式和汉字等。各种符号、表达式、方程式和汉字等。执行用执行用eval。如果要创建二维字符数组,则要求。如果长度不同,需要用空格来补充。m=Yanbian ; University补3个空格,使长度相等结构是根据字段组合起来的不同类型的数据集合。=Li Ming;student.course=10135 10096;student. score=87 92student

15、(2).name=Zhang Li;student(2).course=10135 10096;student(2). score=82 761.利用赋值语句创建结构2.利用结构函数创建结构strArray=srtuct(field1,val1, field2,val2, )fieldfield和和valval为字段和对应值。为字段和对应值。字段值可以是单一值或单元数组字段值可以是单一值或单元数组,但是必须保证它们具有相同的,但是必须保证它们具有相同的大小。大小。stu=struct(n,Wang Fang,c,10568 10063,s,76 82);stu(2)=struct(n,Zhao

16、 Yun,c,10568 10063,s,92 87);stu=struct(n,Wang Fang,Zhao Yun,c,10568 10063,10568 10063,s,76 82,96 87)单元数组可以将不同类型或不同尺寸的数据存储到同一个单元数组可以将不同类型或不同尺寸的数据存储到同一个数组当中。数组当中。创建单元数组与创建矩阵基本相同,区别在于矩阵用创建单元数组与创建矩阵基本相同,区别在于矩阵用,单,单元数组用元数组用。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 1

17、x5 double访问单元数组的方法与矩阵索引方法基本相同,区别在于单访问单元数组的方法与矩阵索引方法基本相同,区别在于单元数组索引时,需要用元数组索引时,需要用将下标置于其中。将下标置于其中。A1,1=2 5;7 3;A1,2=rand(3,3);B=sum(A1,1) B = 9 8(1) 在已有函数名前加符号,即可创建函数句柄;例如,存在已有函数,名为functionname,创建一个函数句柄fun1 :fun1=functionname(2) 可提供匿名函数创建一个函数句柄。例如,创建一个计算x平方的函数:sqr=(x)x.2要执行与函数句柄相关的函数,需将函数句柄看作函数名。要执行与

18、函数句柄相关的函数,需将函数句柄看作函数名。 sqr=(x)x.2; a=sqr(5)a = 25 MATLAB 不需要在输入变量的时候进行声明,也不需要在输入变量的时候进行声明,也不需要指定其阶数,若输入的变量已经存在,则新变量不需要指定其阶数,若输入的变量已经存在,则新变量替换原有变量。替换原有变量。变量的命名规则(标识符):变量的命名规则(标识符): 区分大小写。区分大小写。 字符长度不大于字符长度不大于63个。个。 变量名应以字母开头,变量名可以由字母、数字、和变量名应以字母开头,变量名可以由字母、数字、和下划线组成。变量名中不得含空格、标点。下划线组成。变量名中不得含空格、标点。 避

19、免使用函数名和系统保留字。避免使用函数名和系统保留字。说明:说明:输入一个语句并以回车结束,则在工作区中显示计算的结果;输入一个语句并以回车结束,则在工作区中显示计算的结果;若变量和若变量和“=”省略,则名为省略,则名为ans的变量自动建立;的变量自动建立;如果语句以分号如果语句以分号“;”结束,结束,MATLAB只进行计算,不显示计算的结果;只进行计算,不显示计算的结果;如果一个表达式太长,可以用续行号如果一个表达式太长,可以用续行号 将其延续到下一行。将其延续到下一行。一行中可以写几个语句,它们之间要用逗号或分号分开。一行中可以写几个语句,它们之间要用逗号或分号分开。1. 表达式中的变量必

20、须是已经定义的。表达式中的变量必须是已经定义的。 MATLAB 语句语句 一般形式为:一般形式为: 变量变量 = = 表达式表达式 对变量操作的命令对变量操作的命令1引用矩阵元素引用矩阵元素 通过下标引用矩阵的元素通过下标引用矩阵的元素矩阵元素的序号来引用矩阵元素。按列排序,矩阵元素的序号来引用矩阵元素。按列排序, mn矩阵矩阵A,矩阵元素,矩阵元素A(i,j)的序号为的序号为(j-1)*m+i。 2矩阵的拆分矩阵的拆分 A(:,j)表示取表示取A矩阵的第矩阵的第j列全部元素;列全部元素; A(i,:)表示表示A矩阵第矩阵第i行的全部元素;行的全部元素; A(i:i+m,:)表示取表示取A矩阵

21、第矩阵第ii+m行的全部元素;行的全部元素; A(:,k:k+m)表示取表示取A矩阵第矩阵第kk+m列的全部元素;列的全部元素;1. A(i:i+m,k:k+m)表示取表示取A矩阵第矩阵第ii+m行内,并在行内,并在第第kk+m列中的所有元素。列中的所有元素。3.矩阵矩阵算法算法 和和 数组算法数组算法矩阵算法矩阵算法 把矩阵看作一个整体,各种运算完全按照线性代把矩阵看作一个整体,各种运算完全按照线性代数代表的矩阵运算法则进行,运算的书写形式和数代表的矩阵运算法则进行,运算的书写形式和运算符号都与矩阵理论完全相同。运算符号都与矩阵理论完全相同。数组算法数组算法把矩阵看作由其元素构成的一组数据(

22、数组),把矩阵看作由其元素构成的一组数据(数组),各种运算是在参与运算矩阵的对应元素之间进行各种运算是在参与运算矩阵的对应元素之间进行的数与数的运算,这种运算方便对大批数据的处的数与数的运算,这种运算方便对大批数据的处理和一次求出多个函数值。理和一次求出多个函数值。 数组算法的运算符主要有数组算法的运算符主要有 . .* * ./ . . ./ . . Matlab运算符运算符 算术运算符算术运算符 只有维数相同的矩阵才只有维数相同的矩阵才能进行加减运算。能进行加减运算。 注意只有当两个矩阵中注意只有当两个矩阵中前一个矩阵的列数和后前一个矩阵的列数和后一个矩阵的行数相同时,一个矩阵的行数相同时

23、,才可以进行乘法运算。才可以进行乘法运算。ab运算等效于求运算等效于求a*x=b的解;而的解;而a/b等效于求等效于求x*b=a的解。只有方阵的解。只有方阵才可以求幂。才可以求幂。4.常用矩阵运算常用矩阵运算求矩阵求矩阵A的奇异值及分解矩阵,满的奇异值及分解矩阵,满足足U*S*V=A,其中,其中U、V矩阵为矩阵为正交矩阵(正交矩阵(U*U=I),),S矩阵为对矩阵为对角矩阵,它的对角元素即角矩阵,它的对角元素即A矩阵的矩阵的奇异值。奇异值。u,s,v=svd(a)u = 0.7705 -0.6375 0.6375 0.7705s = 15.5765 0 0 1.5408v = 0.6907 -

24、0.7231 0.7231 0.6907求矩阵求矩阵A的特征向量的特征向量V及特征值及特征值D,满足满足A*V=V*D。其中。其中D的对角线的对角线元素为特征值,元素为特征值,V的列为对应的特的列为对应的特征向量。如果征向量。如果D=eig(A)则只返回则只返回特征值。特征值。将矩阵将矩阵A做正交化分解,使得做正交化分解,使得Q*R=A,其中,其中Q为正交矩阵(其为正交矩阵(其范数为范数为1,指令,指令norm(Q)=1),R为为对角化的上三角矩阵。对角化的上三角矩阵。n 矩阵超越函数矩阵超越函数在在MATLAB中中exp、sqrt等命令也可以作用到等命令也可以作用到矩阵上,但这种运算是定义在

25、矩阵的单个元素矩阵上,但这种运算是定义在矩阵的单个元素上的,即分别对矩阵的每一个元素进行计算。上的,即分别对矩阵的每一个元素进行计算。超越数学函数可以在函数后加上超越数学函数可以在函数后加上m而成为矩阵而成为矩阵的超越函数,例如:的超越函数,例如:expm,sqrtm。矩阵的超越。矩阵的超越函数要求运算矩阵为方阵。函数要求运算矩阵为方阵。例、已知例、已知100010001 987654321ba 求:求:2 aba 例、已知例、已知100010001 987654321ba 求:求:2*. 2* *. *aababa 例、已知例、已知8765 4321dc求:求:dcdcdcdcc/ . .

26、/ 1c-1*dc*d-1例、已知例、已知100010001 987654321ba 求:求:baaaa. .2 2. 2关系运算符关系运算符逻辑运算符逻辑运算符例例 已知已知100010001 987654321ba 求:求:baabaa& 2& 211625012234xxxxp=poly(r)p = 1 -12 -0 25 1162.5 Matlab的多项式运算的多项式运算(1)多项式的建立与表示方法)多项式的建立与表示方法r=roots(p)r = 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i表示为:表示为:p=1 -12 0 2

27、5 116,使用函数,使用函数roots可可以求出多项式等于以求出多项式等于0的根,根用列向量表示。的根,根用列向量表示。若已知多项式等于若已知多项式等于0的根,函数的根,函数poly可以求出相可以求出相应多项式。应多项式。相乘相乘conva=1 2 3 ; b=1 2 c=conv(a,b)=1 4 7 6conv指令可以嵌套使用,如指令可以嵌套使用,如conv(conv(a,b),c)相除相除deconvq,r=deconv(c,b)q=1 2 3 商多项式商多项式r=0 0 0 余多项式余多项式求多项式的微分多项式求多项式的微分多项式polyderpolyder(a)=2 2求多项式函数

28、值求多项式函数值polyval(p,n):将值:将值n代入多项代入多项式求解。式求解。polyval(a,2)=11 A = sym(A) sum(A) sum(A) det(A) inv(A) eig(A) svd(A)3.1 符号变量和符号表达式的创建符号变量和符号表达式的创建 MATLAB提供了两个建立符号量的命令:提供了两个建立符号量的命令:syms 和和 sym 说明:说明:a1 a2 a3.为需要定义为符号量的标识符,不能是数字、函数表为需要定义为符号量的标识符,不能是数字、函数表达式或方程式。达式或方程式。1. a1 a2 a3.均不用引号界定,而用均不用引号界定,而用空格空格分

29、开。分开。1 用用syms创建符号量创建符号量 格式:格式:syms a1 a2 a3说明:说明:输入参量输入参量A可以是数字、字符串也可以是字符串变量名、字符表可以是数字、字符串也可以是字符串变量名、字符表达式或字符方程。达式或字符方程。1. 回车后将回车后将A定义成符号量并赋值给标识符。定义成符号量并赋值给标识符。2 用用sym创建符号量、符号表达式创建符号量、符号表达式 格式:标识符格式:标识符=sym(A)例如,使用sym命令创建的符号矩阵。 A=sym(a,b;c,d)A = a, b c, d例如,使用syms命令创建相同的符号矩阵。 syms a b c d A=a b;c dA

30、 = 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 %创建数值矩阵? Undefined 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

31、is 25 elements using 642 Byte3.2.1 符号表达式的代数运算符号表达式的代数运算1符号运算中的运算符符号运算中的运算符符号运算中的运算符有以下2种。(1)基本运算符。(2)关系运算符。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. %计算非共轭转置an

32、s = a11, a21 a12, a22 eig(A) %计算特征值ans = 1/2*a22+1/2*a11+1/2*(a2222*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

33、*x+6)*(2*x2+3*x+4)1Symbolic Math Toolbox中的算术运算方式中的算术运算方式在Symbolic 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)+pi)a =pi + 2*5(1/2) digi

34、ts %显示默认的有效位数 Digits = 32 vpa(a) %用默认的位数计算并显示ans =7.6137286085893726312809907207421 vpa(a,20) %按指定的精度计算并显示ans =7.6137286085893726313 digits(15) %改变默认的有效位数 vpa(a) %按digits指定的精度计算并显示ans =7.613728608589373Symbolic Math Toolbox中的中的3种运算方式的比较种运算方式的比较【例3.6续】 用3种运算方式表达式比较2/3的结果。a1 =2/3 %数值型a1 = 0.6667a2 = s

35、ym(2/3) %有理数型a2 =2/3 digits Digits = 32 a3 =vpa(2/3,32) %VPA型a3 =.666666666666666666666666666666671将数值对象转换为符号对象将数值对象转换为符号对象前面已经介绍了sym命令可以把数值型对象转换成为有理数型符号对象,vpa命令可以将数值型对象转换为任意精度的VPA型符号对象。2将符号对象转换为数值对象将符号对象转换为数值对象使用double函数可以将有理数型和VPA型符号对象转换成为数值对象。语法:N=double(S) %将符号变量S转换为数值变量N【例3.7】 将符号变量 与数值变量进行转换。

36、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.6137286085893726312809907207421 b2=double(a2) %转换为数值变量b2 = 7.6137(1)多项式形式的表达方式:f(x)=x3+6x2+11x6 (2)因式形式的表达方式:f(x)=(x1)(x2)(x3) (3)嵌套形式的表达方式:f(x)=x(x(x6)+11) 6 【例3.9】 3种形式的符号表达式的表示。 f=sym(x36*x2+

37、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所示。1simplify函数函数simplify函数功能强大,利用各种形式的代数恒等式对符号表达式进行化简,包括求和、分解、积分、幂、三角、指数和对数函数等。【例3.9】 利用三角函数简化符号表达式cos2xsin2x。 y=s

38、ym(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形式,并寻求包含最少数目字符的表达式简化形式。【例3.9续】 利用simple简化符号表达式cos2xsin2x。1求反函数求反函数对于函数f(x),若存在另一个函数g(.),使得g(f(x)x成立,则函数g(.)称为函数f(x)的反函数。在MA

39、TLAB中,finverse函数可以求得符号函数的反函数。语法:finverse(f,v) %对指定自变量v的函数f(v)求反函数【例3.11】 求tex的反函数。 f=sym(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

40、(x)和g(y)的复合函数f(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)语法:compose(f,g,x,z) %以x为自变

41、量构成复合函数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 sym2poly(f) %转换为按降幂排列的行向量ans = 3 2 1 f1=sym(a*x2+b*x+c)f1 =a*x2+b*x+c sym2poly(f1)? Error using = sym/sym

42、2polyInput 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(1 3 2,sym(y) %y为符号变量的符号表达式g =y2+3*y+22提取分子和分母提取分子和分母如果符号表达式是1个有理分式(两个多项式之比),可以利用numden函数提取分子或分母,还可以进行通分。语法:n,d=numd

43、en(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+3*s+2 n2,d2=numden(f2)n2 =1+3*s3+2*s2d2 =s22132ss2132ss3.4.1 3.4.1 符号极限符号极限假定符号表达式的极限存在,Symbolic Math Toolbox提供了直接求表达式极限的函数limit,函数limit的基本用法如表3.3所示。0lim( )xf xlim

44、( )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) %右趋近于0ans =inf函数diff是用来求符号表达式的微分。语法:diff(f)%求f对自由变量的一阶微分diff(f,t)%求f对符号变量t的一阶微分diff(f,n)%求f对自由变量的n阶微分diff(f,t,n) %求f对符号变量t的n阶微分【例3.15】 已知f(x)ax2+bx+c,求f(x)的微分。 f=sym(a*x2+b*x+c)f =a*x2+b*x+c diff(f) %对默认自由变量x求一

温馨提示

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

评论

0/150

提交评论