MATLAB语言符号运算.ppt

上传人:wuy****n92 文档编号:70794368 上传时间:2023-01-28 格式:PPT 页数:55 大小:315.49KB
返回 下载 相关 举报
MATLAB语言符号运算.ppt_第1页
第1页 / 共55页
MATLAB语言符号运算.ppt_第2页
第2页 / 共55页
点击查看更多>>
资源描述

《MATLAB语言符号运算.ppt》由会员分享,可在线阅读,更多相关《MATLAB语言符号运算.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2023/1/28matlabPage 1第第3 3章章 MatlabMatlab语言的符号运算语言的符号运算【学习目标】l掌握基本符号运算l能够使用符号运算解决一般的微积分和方程求解问题。2023/1/28matlabPage 2第第3 3章章 MatlabMatlab语言的符号运算语言的符号运算 符号运算应用于控制理论计算符号运算应用于控制理论计算3.2 基本符号运算基本符号运算3.13.1 3.1 基本符号运算基本符号运算MATLAB自自6.0版本以后,增加了符号数学工具版本以后,增加了符号数学工具箱箱(Symbolic Math Toolbox)。它可以。它可以对符号表符号表达式达式进

2、行运算行运算处理,大大理,大大扩展了展了MATLAB的的应用用范范围。符号符号计算是指算是指对未未赋值的符号的符号对象象(可以是常数、可以是常数、变量、表达式量、表达式)进行运算和行运算和处理。理。与数与数值运算的区运算的区别:数数值运算中必运算中必须先先对变量量赋值,然后才能参,然后才能参与运算。与运算。符号运算无符号运算无须事先事先对独立独立变量量赋值,运算,运算结果以果以标准的符号形式表达。准的符号形式表达。3.1.1 3.1.1 符号对象的创建符号对象的创建在在MATLAB中的符号中的符号计算主要是算主要是对符号符号对象象进行操作的,在使用符号行操作的,在使用符号计算功能前,算功能前,

3、首先需要首先需要创建符号建符号对象象。本。本节主要介主要介绍符号符号对象的象的创建,其建,其中常用的符号中常用的符号对象主要包括象主要包括符号常量符号常量和和变量量、符符号表达式号表达式、符号矩符号矩阵。1.符号符号变量的量的创建建在在MATLAB中中创建符号常量和建符号常量和变量的函数量的函数为sym()和和syms(),两函数的主要区,两函数的主要区别在于前者每次只能在于前者每次只能创建一个符号建一个符号变量,而后者可以同量,而后者可以同时创建多个符建多个符号号变量。量。x=sym(x):创建符号建符号变量量x,无需,无需对变量量x赋值,在以后的运算中直接在以后的运算中直接对符号符号变量量

4、x进行操作,返回行操作,返回的的结果果为带符号的表达式,而非数符号的表达式,而非数值结果。果。x=sym(x,real):创建符号建符号变量量x,并,并设置其置其为实体型。体型。x=sym(x,unreal):创建符号建符号变量量x,并,并设置其置其为非非实体型。体型。3.1.1 3.1.1 符号对象的创建符号对象的创建函数函数sym()的的调用格式用格式为:函数函数sym一次只能定一次只能定义一个符号一个符号变量,使用不量,使用不方便。方便。MATLAB提供了另一个函数提供了另一个函数syms,一,一次可以定次可以定义多个符号多个符号变量。量。syms函数的一般函数的一般调用格式用格式为:s

5、yms 符号符号变量名量名1 符号符号变量名量名2 符号符号变量量名名n用用这种格式定种格式定义符号符号变量量时不要在不要在变量名上加量名上加字符串分界符字符串分界符(),变量量间用用空格空格而不要用逗号而不要用逗号分隔。分隔。3.1.1 3.1.1 符号对象的创建符号对象的创建syms函数函数调用格式:用格式:3.1.1 3.1.1 符号对象的创建符号对象的创建 x=sym(x)y=sym(y)例:例:syms x y z=x*x+y*yz=x2+y2 a=5;b=3;c=a*a+b*bc=343.1.1 3.1.1 符号对象的创建符号对象的创建2.符号常量的符号常量的创建建不含不含变量的符

6、号叫符号常量。符号常量的定量的符号叫符号常量。符号常量的定义也使用函数也使用函数sym()。例:例:a=sym(1/5)a=1/53.1.1 3.1.1 符号对象的创建符号对象的创建3.符号表达式的符号表达式的创建建符号表达式符号表达式为含有符号含有符号对象(符号常量、符号象(符号常量、符号变量)的量)的表达式,其表达式,其创建方法如下:建方法如下:1利用函数利用函数sym()直接直接创建建sym(A):其中:其中A为字符串的表达式,必字符串的表达式,必须被被单引号引用。引号引用。2利用符号利用符号对象象创建建符号表达式也可以通符号表达式也可以通过创建的符号建的符号对象来象来实现,当把已,当把

7、已定定义的符号的符号变量或者符号常量量或者符号常量连接接为表达式,即可完成表达式,即可完成符号表达式的符号表达式的创建。建。3.1.1 3.1.1 符号对象的创建符号对象的创建例:例:y1=sym(cos(x)y1=cos(x)x=sym(x)x=x y2=cos(x)y2=cos(x)3.1.1 3.1.1 符号对象的创建符号对象的创建4.符号矩符号矩阵的的创建建由符号由符号对象构建的矩象构建的矩阵为符号矩符号矩阵,符号矩,符号矩阵的格式与的格式与一般的数据矩一般的数据矩阵类似,其似,其创建方法如下。建方法如下。利用函数利用函数sym()直接直接创建建函数函数sym()的的输入入为符号矩符号

8、矩阵,矩,矩阵各元素可以各元素可以为符号常符号常量、符号量、符号变量或者符号表达式,各元素的量或者符号表达式,各元素的长度不要求一度不要求一样长。a=sym(x x/5;sinx y)a=x,x/5 sinx,y3.1.2 3.1.2 符号运算符号运算符号表达式符号表达式的代数运算与数的代数运算与数值运算运算类似,也可以通似,也可以通过“+”、“-”、“*”、“/”、“”等运算符来等运算符来实现。f=sym(x-2);g=sym(x2+x-6);z1=f+gz1=2*x-8+x2 z2=f-gz2=4-x2 z3=f*gz3=(x-2)*(x2+x-6)z4=f/gz4=(x-2)/(x2+x

9、-6)z5=f2z5=(x-2)23.1.2 3.1.2 符号运算符号运算符号矩符号矩阵的代数运算包括一般的加、减、乘、除等四的代数运算包括一般的加、减、乘、除等四则运算。符号矩运算。符号矩阵的代数运算是把矩的代数运算是把矩阵当作一个整体,按当作一个整体,按照代数运算的准照代数运算的准则进行运算,其中的运算基本同数行运算,其中的运算基本同数值矩矩阵的运算的运算规则。A=sym(x2 y;x-y x)A=x2,y x-y,x B=sym(x+3 x;x+y y)B=x+3,x x+y,y C=A+BC=x2+x+3,x+y 2*x,x+y C=A*BC=x2*(x+3)+y*(x+y),x3+y

10、2(x-y)*(x+3)+x*(x+y),(x-y)*x+x*y C=A./BC=x2/(x+3),y/x(x-y)/(x+y),x/y C=A/BC=-y*(x2-y-x)/(x2-3*y),(x3-x*y-3*y)/(x2-3*y)(y2+x2)/(x2-3*y),-x*(y+3)/(x2-3*y)C=A.2C=x4,y2(x-y)2,x2 C=A2C=x4+y*(x-y),y*x2+x*y(x-y)*x2+x*(x-y),y*(x-y)+x23.1.2 3.1.2 符号运算符号运算3.1.2 3.1.2 符号运算符号运算符号表达式提取分子分母符号表达式提取分子分母当符号表达式当符号表达式

11、为有理分式有理分式时,函数,函数numden()可用于提取有可用于提取有理分式的分子和分母,其理分式的分子和分母,其调用格式如下:用格式如下:N,D=numden(A):输入参数入参数A为符号表达式,返回参数符号表达式,返回参数N和和D分分别为符号参数符号参数A的分子和分母。的分子和分母。a=sym(x-1)/(b+x)a=(x-1)/(b+x)d,n=numden(a)d=x-1n=b+x3.1.3 3.1.3 符号微积分符号微积分符号极限符号极限在在MATLAB中中计算符号极限的函数算符号极限的函数为limit(),其,其调用格式用格式如下。如下。limit(F,x,a):计算符号表达式算

12、符号表达式F在在xa时的极限的极限值。limit(F,a):计算符号表达式算符号表达式F默默认符号自符号自变量量趋于于a时的极的极限限值。limit(F):计算符号表达式算符号表达式F默默认符号自符号自变量量趋于于0时的极限的极限值。limit(F,x,a,right):计算符号表达式算符号表达式F在在xa时的右极限的右极限值。limit(F,x,a,left):计算符号表达式算符号表达式F在在xa时的左极限的左极限值。f2=sym(1/sin(x)f2=1/sin(x)limit(f2,x,0,left)ans=-inf F1=sym(cos(x)F1=cos(x)limit(F1,x,0)

13、ans=13.1.3 3.1.3 符号微积分符号微积分3.1.3 3.1.3 符号微积分符号微积分符号微分符号微分函数函数diff()可用于可用于实现符号微分,其符号微分,其调用格式如下。用格式如下。Y=diff(F):对符号函数符号函数F的默的默认符号符号变量量进行一行一阶微分;微分;Y=diff(F,t):对符号函数符号函数F的符号的符号变量量t进行一行一阶微分;微分;Y=diff(F,t,n):对符号函数符号函数F的符号的符号变量量t进行行n阶微分;微分;p=sym(a*x2+b*x);diff(p)%对默默认变量量x求微分求微分diff(p,a)%对指定指定变量量a求微分求微分diff

14、(p,2)%对默默认变量量x求二求二阶微分微分3.1.3 3.1.3 符号微积分符号微积分符号符号积分分函数函数int()可用于符号可用于符号积分,其分,其调用格式如下。用格式如下。R=int(S):计算符号函数算符号函数S对默默认的自的自变量符号的不定量符号的不定积分。分。R=int(S,v):计算符号函数算符号函数S对自自变量符号量符号v的不定的不定积分。分。R=int(S,a,b):计算符号函数算符号函数S对默默认的自的自变量符号在量符号在a,b上的定上的定积分分值。R=int(S,v,a,b):计算符号函数算符号函数S对自自变量符号量符号v在在a,b上上的定的定积分分值。P=sym(a

15、*x2+b*x);int(p)%对默认变量x求积分 int(p,a)%对指定变量a求积分 int(p,-2,2)%对默认变量x求从-2到2定积分3.1.3 3.1.3 符号微积分符号微积分符号符号积分分3.1.3 3.1.3 符号微积分符号微积分符号符号级数数求无求无穷级数的和需要符号表达式求和函数数的和需要符号表达式求和函数symsum,其,其调用用格式格式为:r=symsum(s):计算符号表达式算符号表达式s对默默认的自的自变量符号量符号v在在0,v-1范范围内的内的级数和。数和。r=symsum(s,v):计算符号表达式算符号表达式s对自自变量符号量符号v在在0,v-1范范围内的内的级

16、数和。数和。r=symsum(s,a,b):计算符号表达式算符号表达式s对默默认的自的自变量符号在量符号在a,b范范围内的内的级数和。数和。r=symsum(s,v,a,b):计算符号表达式算符号表达式s对自自变量符号量符号v在在a,b范范围内的内的级数和。数和。s=sym(sin(x)s=sin(x)r=symsum(s,1,3)r=sin(1)+sin(2)+sin(3)3.1.3 3.1.3 符号微积分符号微积分符号符号级数数3.1.3 3.1.3 符号微积分符号微积分泰勒泰勒级数数求泰勒求泰勒级数的展开式需要函数数的展开式需要函数taylaor,其,其调用格式用格式为:r=taylor

17、(s):计算符号函数算符号函数s对的泰勒的泰勒级数展开数展开项,默,默认为五五项,自,自变量量为默默认。r=taylor(s,n,v):计算自算自变量量v的的n阶泰勒泰勒级数展开数展开项。sym xans=x r1=taylor(sin(x)r1=x-1/6*x3+1/120*x53.1.4 3.1.4 符号方程求解符号方程求解代数方程求解代数方程求解在在MATLAB中,求解用符号表达式表示的代数中,求解用符号表达式表示的代数方程可由函数方程可由函数solve实现,其,其调用格式用格式为:solve(s):求解符号表达式:求解符号表达式s的代数方程,求解的代数方程,求解变量量为默默认变量。量。

18、solve(s,v):求解符号表达式:求解符号表达式s的代数方程,求解的代数方程,求解变量量为v。solve(s1,s2,sn,v1,v2,vn):求解符号表达式:求解符号表达式s1,s2,sn组成的代数方程成的代数方程组,求解,求解变量分量分别v1,v2,vn。3.1.4 3.1.4 符号方程求解符号方程求解代数方程求解代数方程求解例:求解代数方程例:求解代数方程 y=solve(3*x2+5*x+3)y=-5/6+1/6*i*11(1/2)-5/6-1/6*i*11(1/2)求代数方程求代数方程组 x,y=solve(x+y-5,x-2*y-7)x=17/3y=-2/33.1.4 3.1.

19、4 符号方程求解符号方程求解微分方程求解微分方程求解在在MATLAB中,用大写字母中,用大写字母D表示表示导数。例如,数。例如,Dy表示表示y,D2y表示表示y,Dy(0)=5表示表示y(0)=5。D3y+D2y+Dy-x+5=0表示微分方程表示微分方程y+y+y-x+5=0。符号常微分方程求解可。符号常微分方程求解可以通以通过函数函数dsolve来来实现,其,其调用格式用格式为:dsolve(e,c,v)该函数求解常微分方程函数求解常微分方程e在初在初值条件条件c下的特解。参数下的特解。参数v描描述方程中的自述方程中的自变量,省略量,省略时按缺省原按缺省原则处理,若没有理,若没有给出出初初值

20、条件条件c,则求方程的通解。求方程的通解。dsolve在求常微分方程在求常微分方程组时的的调用格式用格式为:dsolve(e1,e2,en,c1,cn,v1,vn)该函数求解常微分方程函数求解常微分方程组e1,en在初在初值条件条件c1,cn下的下的特解,若不特解,若不给出初出初值条件,条件,则求方程求方程组的通解,的通解,v1,vn给出求解出求解变量。量。3.1.4 3.1.4 符号方程求解符号方程求解微分方程求解微分方程求解求解微分方程:求解微分方程:y=dsolve(D2y-3Dy+y=0)y=3+C1*sin(t)+C2*cos(t)3.2 3.2 符号运算用于控制理论计算符号运算用于

21、控制理论计算例例1:已知函数:已知函数y=sin(t-/6),求其),求其对时间t的的导数,并展开泰勒数,并展开泰勒级数的前数的前3项。syms w ty=sin(w*t-pi/6);y1=diff(y,t)y2=taylor(y,3,t)y1=sin(w*t+1/3*pi)*wy2=-1/2+1/2*3(1/2)*w*t+1/4*w2*t23.2 3.2 符号运算用于控制理论计算符号运算用于控制理论计算例例2:求下列极限:求下列极限syms x ay=(x*exp(sin(x)+1-2*(exp(tan(x)-1)/(x+a);z=limit(y,x,a)z=(1/2*a*exp(sin(a

22、)+3/2-exp(tan(a)/a例例例例3 3:计计算二重不定算二重不定算二重不定算二重不定积积分分分分syms x yf=x*exp(-x*y);z=int(int(f,x),y)z=1/y*exp(-x*y)3.2 3.2 符号运算用于控制理论计算符号运算用于控制理论计算例例4.f=ax2+bx+c 求解求解 f=sym(a*x2+b*x+c)solve(f)ans=1/2/a*(-b+(b2-4*a*c)(1/2)1/2/a*(-b-(b2-4*a*c)(1/2)计算机格式一般格式3.2 3.2 符号运算用于控制理论计算符号运算用于控制理论计算例例5.解方程解方程组 x+y+z=1

23、x-y+z=2 2x-y-z=1x,y,z=solve(x+y+z=1,x-y+z=2,2*x-y-z=1)x=2/3y=-1/2z=5/63.2 3.2 符号运算用于控制理论计算符号运算用于控制理论计算例例6 y=dsolve(D2y+2*Dy+2*y=0,Dy(0)=0,y(0)=1,x)y=exp(-x)*sin(x)+exp(-x)*cos(x)3.2 3.2 符号运算用于控制理论计算符号运算用于控制理论计算3.2 3.2 符号运算用于控制理论计算符号运算用于控制理论计算控制理控制理论中中经常用到的常用到的积分分变换有:傅里叶有:傅里叶变换、拉、拉普拉斯普拉斯变换和和z变换,这三种三种

24、变换与反与反变换的函数如的函数如下:下:ztrans(f)Z变换iztrans(f)反反Z变换laplace(f)拉氏拉氏变换ilaplace(f)反拉氏反拉氏变换fourier(f)傅里叶傅里叶变换ifourier(f)反傅里叶反傅里叶变换3.2 3.2 符号运算用于控制理论计算符号运算用于控制理论计算例例7 计算算y=x2的拉普拉斯的拉普拉斯变换及其逆及其逆变换。sym x;y=x2;f=laplace(y)f=4/9/s f1=ilaplace(f)f1=4/9上机上机1.求出求出 的分子、分母的分子、分母 2.求下列极限求下列极限上机上机3 3、求积分、求积分4 4、求、求y+ytgx

25、=cosx的通解。的通解。5 5、解微分方程组、解微分方程组。6、求、求sin(w*x+pi/3)的一的一阶导数、二数、二阶导数、数、不定不定积分。分。上机上机程序结构及流程控制程序结构及流程控制MATLAB与一般程序与一般程序设计的高的高级语言言类似,程序似,程序机构可以分机构可以分为顺序序结构构、循循环结构构和和条件条件结构构。顺序序结构构顺序序结构是按照代构是按照代码书写的先后写的先后顺序序执行,是最行,是最常用的常用的结构,一般的程序中都会有构,一般的程序中都会有顺序序结构的成构的成分。分。例:例:输入入x,y的的值,并将它,并将它们的的值互互换后后输出。出。x=3;y=5;z=x;x

26、=y;y=z;x y程序结构及流程控制程序结构及流程控制程序结构及流程控制程序结构及流程控制条件条件结构构条件条件结构可用于在一定条件下构可用于在一定条件下执行相行相应的代的代码,通通过条件流程控制条件流程控制语句句执行代行代码。1if语句句 在在MATLAB中,中,if语句有句有3种格式。种格式。(1)单分支分支if语句:句:if 条件条件 语句句组end当条件成立当条件成立时,则执行行语句句组,执行完之后行完之后继续执行行if语句的后句的后继语句,句,若条件不成立,若条件不成立,则直接直接执行行if语句的句的后后继语句。句。(2)双分支双分支if语句:句:if 条件条件 语句句组1 els

27、e 语句句组2 end 当条件成立当条件成立时,执行行语句句组1,否,否则执行行语句句组2,语句句组1或或语句句组2执行后,再行后,再执行行if语句的后句的后继语句。句。程序结构及流程控制程序结构及流程控制(3)多分支多分支if语句:句:if 条件条件1 语句句组1 elseif 条件条件2 语句句组2 elseif 条件条件m 语句句组m else 语句句组n end语句用于句用于实现多分支多分支选择结构。构。程序结构及流程控制程序结构及流程控制计算分段函数的算分段函数的值。y=1 x0 y=-1 x0 y=1else y=-1end程序结构及流程控制程序结构及流程控制计算分段函数的算分段函

28、数的值。y=1 x0 y=0 x=0 y=-1 x0自己自己编写程序写程序程序结构及流程控制程序结构及流程控制某商某商场对顾客所客所购买的商品的商品实行打折行打折销售,售,标准如下准如下(商品价格用商品价格用price来表示来表示):price200 没有折扣没有折扣 200price500 3%折扣折扣 500price1000 5%折扣折扣 1000price2500 8%折扣折扣 2500price xx=1 4 9 16 25程序结构及流程控制程序结构及流程控制 for循环语句的嵌套 for i=1:3 for j=1:5 a(i,j)=i2+j2;end enda=2,5,10,17

29、,26 5,8,13,20,29 10,13,18,25,34程序结构及流程控制程序结构及流程控制2.while语句句语法形式如下法形式如下:while 表达式表达式 循循环体体end表达式表达式为循循环的判断条件,一般的判断条件,一般为逻辑表达式。表达式。当循当循环条件条件为“真真”时,则执行循行循环体,直至循体,直至循环条件条件为“假假”。程序结构及流程控制程序结构及流程控制例:计算100+99+1s=100;sum=0;while s0 sum=sum+s;s=s-1;end sumsum=5050程序结构及流程控制程序结构及流程控制1、用、用for语句句实现一个一个5*5矩矩阵,要求,

30、要求该矩矩阵的元素的元素值等于等于该元素的行数乘以列数,例如,第一行第二列元素的行数乘以列数,例如,第一行第二列上的数是上的数是1*2=2。上机上机2、用、用while语句和句和for语句句实现5!3、用、用while语句和句和for语句句实现从从1加到加到1004、一个三位整数各位数字的立方和等于、一个三位整数各位数字的立方和等于该数本身数本身则称称该数数为水仙花数。水仙花数。输出全部水仙花数。出全部水仙花数。程序如下:程序如下:for m=100:999m1=fix(m/100);%求求m的百位数字的百位数字m2=rem(fix(m/10),10);%求求m的十位数字的十位数字m3=rem(m,10);%求求m的个位数字的个位数字if m=m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endEnd用用help命令命令查出出fix、rem、disp函数的意函数的意义和使用方法和使用方法上机上机

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁