资源描述
*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第九章,MATLAB,符号计算,4/13/2026,1,符号对象,符号微积分,级数,符号方程求解,4/13/2026,2,9.1,符号对象,9.1.1,建立符号对象,1.,建立符号变量和符号常量,MATLAB,提供了两个建立符号对象的函数:,sym,和,syms,,两个函数的用法不同。,(1)sym,函数,sym,函数用来建立单个符号量,一般调用格式为:符号量名,=sym(,符号字符串,),该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。,应用,sym,函数还可以定义符号常量,使用符号常量进行代数运算时和数值常量进行的运算不同。,4/13/2026,3,(2),syms,函数,函数,sym,一次只能定义一个符号变量,使用不方便。,MATLAB,提供了另一个函数,syms,,一次可以定义多个符号变量。,syms,函数的一般调用格式为:,syms,符号变量名,1,符号变量名,2,符号变量名,n,用这种格式定义符号变量时不要在变量名上加字符串分界符,(),,,变量间用空格而不要用逗号分隔。,4/13/2026,4,2.,建立符号表达式,含有符号对象的表达式称为符号表达式。建立符号表达式有以下,3,种方法:,(1),利用单引号来生成符号表达式。,(2),用,sym,函数建立符号表达式。,(3),使用已经定义的符号变量组成符号表达式。,4/13/2026,5,9.1.2,符号表达式运算,1.,符号表达式的四则运算,符号表达式的加、减、乘、除运算可分别由函数,symadd,、,symsub,、,symmul,和,symdiv,来实现,幂运算可以由,sympow,来实现。,2.,符号表达式的提取分子和分母运算,如果符号表达式是一个有理分式或可以展开为有理分式,可利用,numden,函数来提取符号表达式中的分子或分母。其一般调用格式为:,n,d,=,numden(s,),该函数提取符号表达式,s,的分子和分母,分别将它们存放在,n,与,d,中。,4/13/2026,6,3.,符号表达式的因式分解与展开,(ex9_2.m),MATLAB,提供了符号表达式的因式分解与展开的函数,函数的调用格式为:,factor(s,),:对符号表达式,s,分解因式。,expand(s,),:对符号表达式,s,进行展开。,collect(s,),:对符号表达式,s,合并同类项。,collect(s,v,),:对符号表达式,s,按变量,v,合并同类项。,4/13/2026,7,4.,符号表达式的化简,MATLAB,提供的对符号表达式化简的函数有:,simplify(s,):,应用函数规则对,s,进行化简。,r,how,=,simple(S,),:,通过对表达式尝试多种不同的算法进行化简,以寻求符号表达式,S,的最简形式,;r,为返回的简化形式,,how,为化简过程中使用的主要方法,,simple,函数综合使用了下列化简方法:,simplify,函数对表达式进行化简;,simple(s,),:调用,MATLAB,的其他函数对表达式进行综合化简,并显示化简过程。,4/13/2026,8,radsimp,函数对含根式的表达式进行化简,;,combine,函数将表达式中以求和、乘积、幂运算等形式出现的项进行合并;,collect,合并同类项;,factor,函数实现因式分解,;,convert,函数完成表达式形式的转换,.,4/13/2026,9,5.,符号表达式与数值表达式之间的转换,利用函数,sym,可以将数值表达式变换成它的符号表达式。,函数,numeric,或,eval,可以将符号表达式变换成数值表达式。,4/13/2026,10,MATLAB,中的符号可以表示符号变量和符号常量。,findsym,可以帮助用户查找一个符号表达式中的的符号变量。该函数的调用格式为:,findsym(s,n,),函数返回符号表达式,s,中的,n,个符号变量,若没有指定,n,,则返回,s,中的全部符号变量。,9.1.3,符号表达式中变量的确定,(ex9_3.m),4/13/2026,11,在,MATLAB,中,以最接近,x,的顺序排列默认自变量的顺序,由于,i,和,j,通常表示虚数单位,在符号运算中不能作为自变量。,4/13/2026,12,9.1.4,符号表达式的替换,(ex9_4.m),MATLAB,的符号数学工具箱提供了两个符号表达式的替换函数,subexpr,和,subs,可以通过符号替换使表达式的输出形式简化,以得到一个简单的表达式,。,4/13/2026,13,将表达式中,重复,出现的字符串用变量代替的函数为,subexpr,其调用格式为:,Y,SIGMA=,subexpr(S,SIGMA,),此函数用变量,SIGMA,(字符或字符串)的值代替符号表达式,S,中重复出现的字符串,,Y,返回替换后的结果。,4/13/2026,14,函数,subs,是用指定符号替换符号表达式中的某一特定符号,调用格式为:,R=,subs(S,old,new,),,它可用新的符号变量,new,替换原来符号表达式,S,中的,old.,当,new,为数值形式时,显示的结果虽然是数值,但它事实上是符号变量。,4/13/2026,15,9.1.4,符号矩阵,(ex9_5.m),符号矩阵也是一种符号表达式,所以前面介绍的符号表达式运算都可以在矩阵意义下进行。但应注意这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。,由于符号矩阵是一个矩阵,所以符号矩阵还能进行有关矩阵的运算。,MATLAB,还有一些专用于符号矩阵的函数,这些函数作用于单个的数据无意义。例如,transpose(s,),:返回,s,矩阵的转置矩阵。,determ(s,),:返回,s,矩阵的行列式值。,其实,曾介绍过的许多应用于数值矩阵的函数,如,diag,、,triu,、,tril,、,inv,、,det,、,rank,、,eig,等,也可直接应用于符号矩阵,。,4/13/2026,16,9.2,符号微积分,9.2.1,符号极限,limit,函数的调用格式为:,(1),limit(f,x,a,),:求符号函数,f(x,),的极限值。即计算当变量,x,趋近于常数,a,时,,f(x,),函数的极限值。,(2),limit(f,a,),:求符号函数,f(x,),的极限值。由于没有指定符号函数,f(x,),的自变量,则使用该格式时,符号函数,f(x,),的变量为函数,findsym(f,),确定的默认自变量,即变量,x,趋近于,a,。,4/13/2026,17,(3),limit(f,),:求符号函数,f(x,),的极限值。符号函数,f(x,),的变量为函数,findsym(f,),确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于,0,,即,a=0,的情况。,(4),limit(f,x,a,right,),:求符号函数,f,的极限值。,right,表示变量,x,从右边趋近于,a,。,(5),limit(f,x,a,left,),:求符号函数,f,的极限值。,left,表示变量,x,从左边趋近于,a,。,例,9-1,求下列极限。,4/13/2026,18,9.2.2,符号导数,diff,函数用于对符号表达式求导数。该函数的一般调用格式为:,diff(s,),:没有指定变量和导数阶数,则系统按,findsym,函数指示的默认变量对符号表达式,s,求一阶导数。,diff(s,v,),:以,v,为自变量,对符号表达式,s,求一阶导数。,4/13/2026,19,diff(s,n,),:按,findsym,函数指示的默认变量对符号表达式,s,求,n,阶导数,,n,为正整数。,diff(s,v,n,),:以,v,为自变量,对符号表达式,s,求,n,阶导数。,例,9-2,求,a t,3,;,tcos(x,),lnx,对,x,的一阶导数、对,t,二,阶导数、二阶混合导数,4/13/2026,20,9.2.3,符号积分,符号积分由函数,int,来实现。该函数的一般调用格式为:,int(s,),:没有指定积分变量和积分阶数时,系统按,findsym,函数指示的默认变量对被积函数或符号表达式,s,求不定积分。,int(s,v,),:以,v,为自变量,对被积函数或符号表达式,s,求不定积分。,4/13/2026,21,int(s,v,a,b,),:求定积分运算。,a,b,分别表示定积分的下限和上限。该函数求被积函数在区间,a,b,上的定积分。,a,和,b,可以是两个具体的数,也可以是一个符号表达式,还可以是无穷,(,inf,),。当函数,f,关于变量,x,在闭区间,a,b,上可积时,函数返回一个定积分结果。当,a,b,中有一个是,inf,时,函数返回一个广义积分。当,a,b,中有一个符号表达式时,函数返回一个符号函数。,例,9-3,求积分,4/13/2026,22,9.2.4,积分变换,常见的积分变换有傅立叶变换、拉普拉斯变换和,Z,变换。,1.,傅立叶,(Fourier),变换,在,MATLAB,中,进行傅立叶变换的函数是:,fourier(f,x,t,),:求函数,f(x,),的傅立叶像函数,F(t,),。,ifourier(F,t,x,),:求傅立叶像函数,F(t,),的原函数,f(x,),。,例,9-4,求函数的傅立叶变换及其逆变换。,4/13/2026,23,2.,拉普拉斯,(,Laplace,),变换,在,MATLAB,中,进行拉普拉斯变换的函数是,:,laplace(fx,x,t,):,求函数,f(x,),的拉普拉斯像函数,F(t,),。,ilaplace(Fw,t,x,):,求拉普拉斯像函数,F(t,),的原函数,f(x,),。,例,9-5,计算,y=x,3,的拉普拉斯变换及其逆变换。,4/13/2026,24,3.Z,变换,当函数,f(x,),呈现为一个离散的数列,f(n,),时,对数列,f(n,),进行,z,变换的,MATLAB,函数是:,ztrans(fn,n,z,),:求,fn,的,Z,变换像函数,F(z,),。,iztrans(Fz,z,n,),:求,Fz,的,z,变换原函数,f(n,),。,例,9-6,求数列,fn=e-2n,的,Z,变换及其逆变换。,4/13/2026,25,9.3,级数,9.3.1,级数符号求和,求无穷级数的和需要符号表达式求和函数,symsum,,其调用格式为:,symsum(s,v,n,m,),其中,s,表示一个级数的通项,是一个符号表达式。,v,是求和变量,,v,省略时使用系统的默认变量。,n,和,m,是求和的开始项和末项。,例,9-7,求,4/13/2026,26,9.3.2,函数的泰勒级数,MATLAB,提供了,taylor,函数将函数展开为幂级数,其调用格式为:,taylor(f,):,计算符号表达式,f,在默认自变量等于,0,处的,5,阶,Taylor,级数展开式。,taylor(f,n,v,):,计算符号表达式,f,在自变量,v=0,处的,n-1,阶,Taylor,级数展开式。,taylor(f,n,v,a,):,计算符号表达式,f,在自变量,v=a,处的,n-1,阶,Taylor,级数展开式,例,9-8,求函数的泰勒级数展开式。,4/13/2026,27,9.4,符号方程求解,9.4.1,符号代数方程求解,在,MATLAB,中,求解用符号表达式表示的代数方程可由函数,solve,实现,其调用格式为:,solve(s,),:求解符号表达式,s,的代数方程,求解变量为默认变量。,solve(s,v,),:求解符号表达式,s,的代数方程,求解变量为,v,。,solve(s1,s2,sn,v1,v2,vn,),:求解符号表达式,s1,s2,sn,组成的代数方程组,求解变量分别,v1,v2,vn,。,例,9-9,解下列方程。,4/13/2026,28,9.4.2,符号常微分方程求解,在,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,描述方程中的自变量,省略时按缺省原则处理,,若没有给出初值条件,c,,则求方程的通解。,4/13/2026,29,dsolve,在求常微分方程组时的调用格式为:,dsolve(e1,e2,en,c1,cn,v1,vn,),该函数求解常微分方程组,e1,en,在初值条件,c1,cn,下的特解,若不给出初值条件,,则求方程组的通解,,v1,vn,给出求解变量。,例,9-10,求下列微分方程的解。,4/13/2026,30,9.5,符号函数的简易绘图函数,(,examp9_11.m,),二维绘图函数,plot,是,MATLAB,最基本和最常用的绘图函数,其简易绘图函数为,ezplot,。,ezplot,的调用格式为:,ezplot(f,):,绘制表达式,f(x,),的二维图形,,x,轴坐标的近似范围为,-2pi,2pi,。,ezplot(f,xmin,xmax,):,绘制表达式,f(x,),的二维图形,x,轴坐标的范围,xmin,xmax,。,4/13/2026,31,
展开阅读全文