1、第第2章章矩阵、数组和符号运算矩阵、数组和符号运算二、符号运算二、符号运算掌握内容:掌握内容:(1)了了解解MATLAB的的符符号号变变量量,掌掌握握MATLAB符符号号表表达式、符号矩阵的两种达式、符号矩阵的两种创建方法创建方法。(2)掌握)掌握MATLAB符号数学函数符号数学函数的创建。的创建。(3)掌掌握握符符号号矩矩阵阵的的基基本本运运算算及及MATLAB关关于于不不同同精精度度的控制方法的控制方法。(4)掌掌握握符符号号微微积积分分内内容容,包包括括求求函函数数的的极极限限、对对符符号号表表达达式式求求导导数数和和微微分分、符符号号积积分分、符符号号求求和和、傅傅立立叶叶变变换换及及
2、其逆变换等。其逆变换等。(5)掌握)掌握各种符号方程的求解方法各种符号方程的求解方法和函数命令。和函数命令。(6)了解)了解MATLAB可视化的符号函数分析界面可视化的符号函数分析界面及使用。及使用。(7)初步了解)初步了解MAPLE的符号资源的符号资源。对于:对于:如何计算?如何计算?第第2章章矩阵、数组和符号运算矩阵、数组和符号运算A=2,-3;23;B=1;5;X=AB符号运算符号运算n所谓所谓符号计算符号计算是指在运算时,无须事先对变量是指在运算时,无须事先对变量赋值,而将所得到结果以标准的符号形式来表赋值,而将所得到结果以标准的符号形式来表示。示。nMathWorks公司以公司以Ma
3、ple的内核作为符号计算的内核作为符号计算引擎(引擎(Engine),),依赖依赖Maple已有的函数库,已有的函数库,开发了实现符号计算的两个工具箱:基本符号开发了实现符号计算的两个工具箱:基本符号工具箱和扩展符号工具箱。工具箱和扩展符号工具箱。第第2章章矩阵、数组和符号运算矩阵、数组和符号运算第第2章章矩阵、数组和符号运算矩阵、数组和符号运算抽象运算:抽象运算:公式推导、因式分解、求解代数方程或微分方公式推导、因式分解、求解代数方程或微分方程的精确解程的精确解符号数学工具箱符号数学工具箱1)通过基本符号数学工具箱的通过基本符号数学工具箱的专用函数专用函数;符号表达式和符号矩阵的操作;符号表
4、达式和符号矩阵的操作;多项式的化简、展开和代入;多项式的化简、展开和代入;线性代数;线性代数;微积分;微积分;符号方程的求解;符号方程的求解;特殊的数学函数。特殊的数学函数。2)通通过过maple.m、mpa.m两两个个专专门门设设计计的的M文文件件进进行行符符号运算;号运算;3)通过)通过MATLAB中的中的函数计算器函数计算器(FunctionCaculator)。)。第第2章章矩阵、数组和符号运算矩阵、数组和符号运算1、符号变量的创建符号变量的创建a.sym函数函数(symbol的缩写的缩写)S=sym(arg),从表达式从表达式arg创建一个创建一个sym对象对象Sx=sym(x)x=
5、sym(x,real)x=sym(x,unreal)附加属性附加属性x=sym(x,positive)pi=sym(pi)delta=sym(1/10)S=sym(A,flag),将数值或矩阵转化为符号形式将数值或矩阵转化为符号形式其其中中flag选选项项有有四四项项参参数数f,r,e和和d,r为为缺缺省项省项。f:代表十六进制浮点形式;代表十六进制浮点形式;r:代表有理数形式;代表有理数形式;e:估计误差;估计误差;d:表示十进制小数。表示十进制小数。第第2章章矩阵、数组和符号运算矩阵、数组和符号运算A=2/5,4/0.78,sqrt(23)/3;0.33,0.3333,log(4)输入数值
6、矩阵输入数值矩阵AA=0.40005.12821.59860.33000.33331.3863FA=sym(A)将数值矩阵将数值矩阵A转化为符号矩阵转化为符号矩阵FAFA=2/5,200/39,sqrt(23/9)33/100,3333/10000,6243314768165359*2(-52)不不管管数数值值矩矩阵阵的的元元素素是是以以分分数数或或是是浮浮点点数数表表示示,转转换换后后的的符号矩阵都将以符号矩阵都将以最接近有理式最接近有理式的形式给出。的形式给出。b.syms函数函数*syms用用于于方方便便地地一一次次创创建建多多个个符符号号变变量量,调调用用格格式式为为:symsabcd
7、书写简洁意义清楚,建议使用。书写简洁意义清楚,建议使用。symsabcxy2 2、符号表达式和符号矩阵的创建符号表达式和符号矩阵的创建第第2章章矩阵、数组和符号运算矩阵、数组和符号运算a.a.字符串直接输入创建字符串直接输入创建符号表达式和符号方程对符号表达式和符号方程对空格空格很敏感。因此,在创建符很敏感。因此,在创建符号表达式或符号方程时,不要在字符间任意加空格符;号表达式或符号方程时,不要在字符间任意加空格符;符号计算中出现的符号计算中出现的数字数字也是当作符号处理的;也是当作符号处理的;f=a*x2+b*x+cf=a*x2+b*x+cf=a*x2+b*x+c=0f=a*x2+b*x+c
8、=02 2、符号表达式和符号矩阵的创建符号表达式和符号矩阵的创建第第2章章矩阵、数组和符号运算矩阵、数组和符号运算这种方法这种方法输入符号矩阵输入符号矩阵与与字符串矩阵字符串矩阵的输入相似。但的输入相似。但要保证在同一列中各元素字符串有要保证在同一列中各元素字符串有同样的长度同样的长度,在较,在较短的字符串前后用空格符填充;短的字符串前后用空格符填充;这种方法要求这种方法要求符号矩阵符号矩阵每一行的两端都有方括号,而每一行的两端都有方括号,而字符串矩阵字符串矩阵仅在首尾有方括号。仅在首尾有方括号。B=4+xx2x;x35*x-3x*aB=4+xx2xx35*x-3x*a2 2、符号表达式和符号
9、矩阵的创建符号表达式和符号矩阵的创建第第2章章矩阵、数组和符号运算矩阵、数组和符号运算b.b.由由 sym sym 命令创建命令创建 f=sym(a*x2+b*x+c)f=a*x2+b*x+cf1=sym(a*x2+b*x+c=0)f1=a*x2+b*x+c=0A=sym(4+x,x2,x;x3,5*x-3,x*a)A=4+x,x2,xx3,5*x-3,x*a第第2章章矩阵、数组和符号运算矩阵、数组和符号运算c.c.由由 symssyms 命令创建命令创建 symsxabcf=a*x2+b*x+cf=a*x2+b*x+csymsxaB=4+xx2x;x35*x-3x*aB=4+x,x2,xx3
10、,5*x-3,x*a不能创建符号方程不能创建符号方程n【例例1】作符号计算:作符号计算:na,b,x,y均为符号运算量。在符号运算前,均为符号运算量。在符号运算前,应先将应先将a,b,x,y定义为符号运算量定义为符号运算量第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n方法一:方法一:symsabA=a,-b;ab;B=1;5;X=ABX=3/a2/b第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n方法二:方法二:a=sym(a);%定义定义a为符号运算量,为符号运算量,输出变量名为输出变量名为ab=sym(b);x=sym(x);y=sym(y);x,y=solve(a*x-b*y-
11、1,a*x+b*y-5,x,y)%solve:符号代数方程的求解:符号代数方程的求解%以以a,b为符号常数,为符号常数,x,y为符号变量为符号变量即可得到方程组的解:即可得到方程组的解:x=3/ay=2/bn【例例2】已已知知一一复复数数表表达达式式z=x+i*y,试试求求其其共共轭轭复复数数,并并求求该该表表达达式式与与其其共共轭轭复复数数乘乘积积的的多多项式。项式。n为为了了使使乘乘积积表表达达式式x2+y2非非负负,这这里里,把把变量变量x和和y定义为实数。定义为实数。nx=sym(x,real);ny=sym(y,real);第第2章章矩阵、数组和符号运算矩阵、数组和符号运算nz=x+
12、i*y;%定义复数表达式定义复数表达式nconj(z);%求共轭复数求共轭复数nexpand(z*conj(z)%求表达式与其共轭复数乘积的多项式求表达式与其共轭复数乘积的多项式n%expand:展开符号表达式中的各项子式:展开符号表达式中的各项子式nans=nx2+y2n若要去掉若要去掉x的属性的属性,可以使用下面语句可以使用下面语句nx=sym(x,unreal)n将将x创建为创建为纯格式的符号变量纯格式的符号变量。第第2章章矩阵、数组和符号运算矩阵、数组和符号运算默认符号变量默认符号变量在在数数学学表表达达式式中中,一一般般习习惯惯于于使使用用排排在在字字母母表表中中前前面面的的字字母母
13、作作为为变变量量的的系系数数,而而用排在后面的字母表示变量用排在后面的字母表示变量。例如:。例如:f=ax2+bx+c表表达达式式中中的的a,b,c通通常常被被认认为为是是常常数数,用用作作变量的系数;而将变量的系数;而将x看作自变量。看作自变量。第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n例如,数学表达式例如,数学表达式nf=xnng=sin(at+b)n根根据据数数学学式式中中表表示示自自变变量量的的习习惯惯,默默认认a,b,n为为符符号号常常数,数,x,t为符号变量。为符号变量。n若在若在MATLAB中表示上述表达式,首先用中表示上述表达式,首先用syms函数定函数定义义a,b,
14、n,t,x为符号对象。为符号对象。在进行导数运算时,由在进行导数运算时,由于没有指定符号变量,则系统采用数学习惯来确定表达于没有指定符号变量,则系统采用数学习惯来确定表达式中的自变量,默认式中的自变量,默认a,b,n为符号常数,为符号常数,x,t为符号变量。为符号变量。n即即:对函数对函数f求导为:求导为:df/dxn对函数对函数g求导为:求导为:dg/dt第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n为为了了了了解解函函数数引引用用过过程程中中使使用用的的符符号号变变量量个个数数及及变变量量名名,可可以以用用findsym函函数数查查询询符符号号函函数数中所包含的符号变量中所包含的符号
15、变量。该函数的引用格式为:。该函数的引用格式为:nfindsym(f,n)n说明:说明:nf为用户定义的符号函数为用户定义的符号函数,nn为正整数,表示查询变量的个数为正整数,表示查询变量的个数。nn=i,表表示示查查询询前前i个个系系统统默默认认变变量量。n值值省省略略时表示查询符号函数中全部系统默认变量。时表示查询符号函数中全部系统默认变量。第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n【例例3】查询符号函数查询符号函数nf=xnng=sin(at+b)n中的系统默认变量。中的系统默认变量。nsymsabntx%定义符号变量定义符号变量nf=xn;%给定符号函数给定符号函数ng=si
16、n(a*t+b);nfindsym(f,1)%在在f函数中查询函数中查询1个系统默认变量个系统默认变量nans=x%表示表示f函数中查询的函数中查询的1个系统默认变量为个系统默认变量为x。nfindsym(g,1)nans=t第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n例例3:查询符号函数中的默认自变量。查询符号函数中的默认自变量。n创建符号变量创建符号变量a,b,n,x和和t,建立函数,建立函数f=axn+bt,然后求,然后求f的默认自变量。的默认自变量。nsymsabntxnf=a*xn+b*tnfindsym(f,1)nfindsym(f,2)nfindsym(f,5)%f表达式
17、中按最接近表达式中按最接近x顺序排列的顺序排列的5个默认自变量个默认自变量nfindsym(f)%f表达式中按最接近字母顺序排列的全部自变量表达式中按最接近字母顺序排列的全部自变量nf=na*xn+b*tnans=xnans=x,tnans=x,t,n,b,anans=a,b,n,t,x第第2章章 矩阵、数组和符号运算矩阵、数组和符号运算n【例例4】定定义义一一个个符符号号函函数数fxy=(a*x2+b*y2)/c2,分分别别求该函数对求该函数对x、y的导数和对的导数和对x的积分。的积分。nsymsabcxy%定义符号变量定义符号变量nfxy=(a*x2+b*y2)/c2;%生成符号函数生成符
18、号函数ndiff(fxy,x)%符号函数符号函数fxy对对x求导数求导数nans=2*a*x/c2ndiff(fxy,y)%符号函数符号函数fxy对对y求导数求导数nans=2*b*y/c2nint(fxy,x)%符号函数符号函数fxy对对x求积分求积分nans=1/c2*(1/3*a*x3+b*y2*x)第第2章章矩阵、数组和符号运算矩阵、数组和符号运算3 3、符号矩阵的运算、符号矩阵的运算a.基本运算基本运算b.四则运算(与数值矩阵的运算规则相同)四则运算(与数值矩阵的运算规则相同)两个符号矩阵的两个符号矩阵的大小相等大小相等方可进行方可进行加减运算加减运算,符号,符号矩阵和矩阵和符号标量
19、符号标量的加减运算按照的加减运算按照数组运算数组运算规则进行;规则进行;两个符号矩阵进行两个符号矩阵进行乘乘、除、除法运算法运算(与矩阵乘与矩阵乘、除、除法法规则相同规则相同););符号的乘方运算符号的乘方运算Sp,若若S为为符号表达式符号表达式,p可以可以为为符号表达式或数值表达式符号表达式或数值表达式;若;若S为为符号矩阵符号矩阵,则,则p必须是必须是整数整数。第第2章章矩阵、数组和符号运算矩阵、数组和符号运算第第2章章矩阵、数组和符号运算矩阵、数组和符号运算a=sym(1/x,1/(x+1);1/(x+2),1/(x+3)a=1/x,1/(x+1)1/(x+2),1/(x+3)b=sym
20、(x,1;x+2,0)b=x,1x+2,0b-aans=x-1/x,1-1/(x+1)x+2-1/(x+2),-1/(x+3)abans=-6*x-2*x3-7*x2,3/2*x2+x+1/2*x314*x+2*x3+10*x2+6,-2*x2-3/2*x-1/2*x3a.bans=x2,x+1(x+2)2,0a2ans=1/x2+1/(x+1)/(x+2),1/x/(x+1)+1/(x+1)/(x+3)1/(x+2)/x+1/(x+3)/(x+2),1/(x+1)/(x+2)+1/(x+3)2exp(b)ans=exp(x),exp(1)exp(x+2),1第第2章章矩阵、数组和符号运算矩阵
21、、数组和符号运算b.符号表达式的化简与转换符号表达式的化简与转换给定如下给定如下3个符号表达式个符号表达式:f=x3-6*x2+11*x-6g=(x-1)*(x-2)*(x-3)h=-6+(11+(-6+x)*x)*x是否同一个符号表达式?是否同一个符号表达式?第第2章章矩阵、数组和符号运算矩阵、数组和符号运算 collect:将表达式中同类项合并,合并后的多项式以变量幂:将表达式中同类项合并,合并后的多项式以变量幂的次数按大小依次排列的次数按大小依次排列ff=x3-6*x2+11*x-6collect(g)ans=x3-6*x2+11*x-6collect(h)ans=x3-6*x2+11*
22、x-6symsxycollect(x2*y+y*x-x2-2*x)ans=(y-1)*x2+(y-2)*x第第2章章矩阵、数组和符号运算矩阵、数组和符号运算expand:展开符号表达式中的各项子式:展开符号表达式中的各项子式symsxyexpand(x+1)3)ans=x3+3*x2+3*x+1expand(sin(x+y)ans=sin(x)*cos(y)+cos(x)*sin(y)factor:符号因式分解:符号因式分解symsxfactor(x9-1)ans=(x-1)*(x2+x+1)*(x6+x3+1)第第2章章矩阵、数组和符号运算矩阵、数组和符号运算numden:分式通分分式通分s
23、ymsxyn,d=numden(x/y+y/x)n=x2+y2%n:分式的分子:分式的分子d=y*x%d:分式的分母:分式的分母表达式简化表达式简化符号表达式的两个化简函数:符号表达式的两个化简函数:simplify、simplesimplify:化简函数,主要用于在符号表达式中进:化简函数,主要用于在符号表达式中进行等式的恒等替换。行等式的恒等替换。例例1:对表达式:对表达式f=sin2(x)+cos2(x)进行化简进行化简.symsxf=sin(x)2+cos(x)2;simplify(f)ans=1第第2章章矩阵、数组和符号运算矩阵、数组和符号运算r,how=simple(S)函数可函数
24、可寻找符号表达式寻找符号表达式S的最简型的最简型,r为为返回的简化形式,返回的简化形式,how为化简过程中使用的主要方法,为化简过程中使用的主要方法,simple函数综合使用了下列化简方法:函数综合使用了下列化简方法:*simplify函数对表达式进行化简函数对表达式进行化简*radsimp函数对含根式函数对含根式(surd)的表达式进行化简的表达式进行化简*combine函数对表达式中以求和、乘积、幂运算等形式出函数对表达式中以求和、乘积、幂运算等形式出现的项进行合并现的项进行合并*collect合并同类项合并同类项*factor函数实现因式分解函数实现因式分解*convert函数完成表达式
25、形式的转换函数完成表达式形式的转换第第2章章矩阵、数组和符号运算矩阵、数组和符号运算例例2:最简表达式的获得。:最简表达式的获得。symsxtf=cos(x)2-sin(x)2;r,how=simple(f)r=cos(2*x)how=combine(trig)第第2章章矩阵、数组和符号运算矩阵、数组和符号运算Examples:Srhowcos(x)2+sin(x)21simplify2*cos(x)2-sin(x)23*cos(x)2-1simplifycos(x)2-sin(x)2cos(2*x)combine(trig)cos(x)+(-sin(x)2)(1/2)cos(x)+i*sin
26、(x)radsimpcos(x)+i*sin(x)exp(i*x)convert(exp)(x+1)*x*(x-1)x3-xcombine(trig)x3+3*x2+3*x+1(x+1)3factorcos(3*acos(x)4*x3-3*xexpand第第2章章矩阵、数组和符号运算矩阵、数组和符号运算4、符号微积分、符号微积分Matlab自变量确定原则自变量确定原则:除:除i、j外,字母位置外,字母位置最接近最接近x的小写的小写字母字母为自变量;如果表达式中为自变量;如果表达式中没有变量没有变量,x会会被视为默认的被视为默认的变量变量。由函数。由函数findsym可以找到默认变量可以找到默认
27、变量a.符号极限符号极限(Symboliclimit)*limit(F,x,a)计算计算符号表达式符号表达式F在在自变量自变量xa条件下的极限;条件下的极限;*limit(F,a)计算计算符号表达式符号表达式F中由中由默认自变量默认自变量趋向于趋向于a条件条件下的极限;下的极限;*limit(F)计算计算符号表达式符号表达式F在在默认自变量默认自变量趋向于趋向于0条件下条件下的极限;的极限;*limit(F,x,a,right)和和limit(F,x,a,left)计算计算符号表达符号表达式式F在在xa条件下的条件下的右极限右极限和和左极限左极限。symsxathlimit(sin(x)/x)
28、ans=1limit(1+2*t/x)(3*x),x,inf)ans=exp(6*t)limit(1/x,x,0,right)ans=Inflimit(1/x,x,0,left)ans=-Inf第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n【例例】求极限求极限nsymsx%定义符号变量定义符号变量nf=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)/sin(x)3;n%确定符号表达式确定符号表达式nw=limit(f)%求函数的极限求函数的极限nw=-1/2第第2章章矩阵、数组和符号运算矩阵、数组和符号运算b.微分函数微分函数(differentialcoeffic
29、ient)diff函函数数用用于于对对符符号号表表达达式式s求求微微分分。该该函函数数的的一一般般引引用用格式为:格式为:diff(s,v,n)说明说明:n应应用用diff(s)没没有有指指定定微微分分变变量量和和微微分分阶阶数数,则则系系统统按按findsym函函数数指指示示的的默默认认变变量量对对符符号号表表达达式式s求求一一阶阶微分微分。n应应用用diff(s,v)或或diff(s,sym(v)格格式式,表示表示以以v为自变量为自变量,对符号表达式对符号表达式s求一阶微分求一阶微分。n应应用用diff(s,n)格格式式,表表示示按按findsym函函数数指指示示的的默默认变量对符号表达式
30、认变量对符号表达式s求求n阶微分阶微分,n为正整数为正整数。n应应用用diff(s,v,n)、diff(s,n,v)格格式式,表示表示以以v为自变量,对符号表达式为自变量,对符号表达式s求求n阶微分阶微分。第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n【例例】求导数:求导数:nx=sym(x);%定义符号变量定义符号变量nt=sym(t);ndiff(sin(x2)%求导运算求导运算nans=n2*cos(x2)*xn【例例】分别计算表达式分别计算表达式f=xx的导数和的导数和3次导数次导数.nsymsx;nf=xx;ndiff(f)ndiff(f,3)nans=nxx*(log(x)+
31、1)nans=nxx*(log(x)+1)3+3*xx*(log(x)+1)/x-xx/x2第第2章章矩阵、数组和符号运算矩阵、数组和符号运算c积分函数积分函数(integral)积积分分函函数数int(s,v,a,b)可可以以对对被被积积函函数数或或符符号号表表达达式式s求积分。其引用格式为:求积分。其引用格式为:int(s,v,a,b)说明:说明:n应应用用int(s)格格式式,表表示示没没有有指指定定积积分分变变量量和和积积分分阶阶数数时时,系系统统按按findsym函函数数指指示示的的默默认认变变量量对对被被积积函函数数或或符符号表达式号表达式s求一阶积分求一阶积分。n应应用用int(
32、s,v)格格式式,表表示示以以v为为自自变变量量,对对被被积积函函数数或符号表达式或符号表达式s求一阶不定积分求一阶不定积分。n应应用用积积分分函函数数时时,如如果果给给定定a、b两两项项,表表示示是是进进行行定定积积分分运运算算。a、b分分别别表表示示定定积积分分的的下下限限和和上上限限。不不指指定定积分的下限和上限表示求不定积分积分的下限和上限表示求不定积分。第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n【例例】求积分:求积分:nsymsxnint(1/(1+x2)nans=natan(x)nint(1/(1+x2),0,1)%符号表达式符号表达式的定积分的定积分nans=n1/4*
33、pinquad(1./(1+x.2),0,1)%数组的定积分数组的定积分nans=n0.7854第第2章章矩阵、数组和符号运算矩阵、数组和符号运算d.级数级数(符号符号)求和求和(Symbolicsummation)级数求和运算是数学中常见的一种运算。例如:级数求和运算是数学中常见的一种运算。例如:f(x)=a0+a1x+a2x2+a3x3+anxn函函数数symsum可可以以用用于于此此类类对对符符号号函函数数f的的求求和和运运算算。该该函函数数的的引引用用时时,应应确确定定级级数数的的通通项项式式s,变变量量的的变变化化范范围围a和和b。该函数的引用格式为:该函数的引用格式为:*symsu
34、m(S)求符号表达式求符号表达式S对于默认自变量的不定和;对于默认自变量的不定和;*symsum(S,v)求符号表达式求符号表达式S对于自变量对于自变量v的不定和;的不定和;*symsum(S,a,b)求符号表达式求符号表达式S对于默认自变量从对于默认自变量从a到到b的的有限和;有限和;*symsum(S,v,a,b)求符号表达式求符号表达式S对于自变量对于自变量v从从a到到b的有的有限和;限和;第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n【例例】求级数的和求级数的和:1/12+1/22+1/32+1/42+n键入:键入:nsymsknsymsum(1/k2,1,Inf)%k值为值为1
35、到无穷大到无穷大nans=n1/6*pi2n其结果为:其结果为:1/12+1/22+1/32+1/42+=2/6第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n例:例:分别计算表达式分别计算表达式k、nsymskxnsymsum(k)nsymsum(k2,0,10)nsymsum(xk/sym(k!),k,0,inf)nans=n1/2*k2-1/2*knans=n385nans=exp(x)第第2章章矩阵、数组和符号运算矩阵、数组和符号运算e.Taylor级数展开级数展开(Taylorseriesexpanding)*taylor(f)计算符号表达式计算符号表达式f对于默认自变量等对于默
36、认自变量等于于0处的处的5阶阶Taylor级数展开式;级数展开式;*taylor(f,n,v)计算符号表达式计算符号表达式f在自变量在自变量v=0处的处的n-1阶阶Taylor级数展开式;级数展开式;*taylor(f,n,v,a)计算符号表达式计算符号表达式f在自变量在自变量v=a处的处的n-1阶阶Taylor级数展开式。级数展开式。第第2章章矩阵、数组和符号运算矩阵、数组和符号运算例:例:分别计算表达式分别计算表达式的的5阶阶Taylor级数展开式和级数展开式和f=exsin(x)的的5阶及阶及11阶阶Taylor级数展开式。级数展开式。symsxf=1/(5+cos(x);r=taylo
37、r(f)f=exp(x*sin(x);r=taylor(f)r=taylor(f,12)r=1/6+1/72*x2r=1+x2+1/3*x4r=1+x2+1/3*x4+1/120*x6-11/560*x8-1079/362880*x10第第2章章矩阵、数组和符号运算矩阵、数组和符号运算f.傅立叶变换和傅立叶逆变换傅立叶变换和傅立叶逆变换傅立叶快速离散变换傅立叶快速离散变换MATLAB提供了提供了fft(内置函数内置函数)、ifft、fft2、ifft2、fftn、ifftn、fftshift、ifftshift等函数,用来计算矩阵的离散快速等函数,用来计算矩阵的离散快速傅立叶变换。傅立叶变换。
38、函数函数fft和和ifft函数函数fft最完整的调用格式为:最完整的调用格式为:Y=fft(X,dim)或或Y=fft(X,n,dim)数据长度数据长度n是是2次幂时,可以采用次幂时,可以采用基基-2算法进行快速计算。算法进行快速计算。输入参数输入参数X可以是向量、矩阵。可以是向量、矩阵。dim指指定定变变换换的的实实施施方方向向。当当X是是矩矩阵阵时时,1指指明明变变换换按按列进行(默认),列进行(默认),2指明变换按行进行。指明变换按行进行。第第2章章矩阵、数组和符号运算矩阵、数组和符号运算第第2章章矩阵、数组和符号运算矩阵、数组和符号运算X=1,2,3;4,5,6;7,8,9X=1234
39、56789Y=fft(X)Y=12.000015.000018.0000-4.5000+2.5981i-4.5000+2.5981i-4.5000+2.5981i-4.5000-2.5981i-4.5000-2.5981i-4.5000-2.5981i函数函数fft2和和ifft2函函数数fft2和和ifft2是是对对数数据据做做二二维维快快速速傅傅立立叶叶变变换换和和逆逆傅傅立立叶叶变变换换。数数据据的的二二维维傅傅立立叶叶变变换换 fft2(X)相相当当于于fft(fft(X),即即先先对对X的的列列做做一一维维傅傅立立叶叶变变换换,然然后后对对变变换结果的行换结果的行做一维傅立叶变换。做
40、一维傅立叶变换。其调用格式为:其调用格式为:Y=fft2(X,mrows,ncols)傅立叶积分变换及其反变换傅立叶积分变换及其反变换离散傅立叶变换离散傅立叶变换(DFT)作用于有限数据采样,作用于有限数据采样,傅立叶变换傅立叶变换作用于作用于连续函数连续函数。傅立叶变换调用格式为:傅立叶变换调用格式为:F=fourier(f):求求表表达达式式f的的傅傅立立叶叶变变换换。缺缺省省的的自自变变量量为为x,缺缺省的省的返回值返回值F是关于是关于w的函数。的函数。F=fourier(f,v):返回函数返回函数F是关于是关于v的的函数,而不是缺省的函数,而不是缺省的w。F=fourier(f,u,v
41、):对对关关于于u的的函函数数f进进行行变变换换,返返回回函函数数F是是关关于于v的函数。的函数。傅立叶逆变换调用格式为:傅立叶逆变换调用格式为:f=ifourier(F):符符号号表表达达式式F的的傅傅立立叶叶逆逆变变换换。缺缺省省的的自自变变量量为为w,缺省缺省返回返回f是关于是关于x的函数。的函数。f=ifourier(F,u):返返回回函函数数f是是关关于于u的的函函数数,而而不不是是缺缺省省的的x的函数。的函数。f=ifourier(F,v,u):对对关关于于v的的函函数数F进进行行变变换换,返返回回关关于于u的的函数函数f。第第2章章矩阵、数组和符号运算矩阵、数组和符号运算syms
42、xtwu;fourier(exp(-x2)ans=exp(-1/4*w2)*pi(1/2)fourier(exp(-x2),u)ans=exp(-1/4*u2)*pi(1/2)fourier(exp(-t2),t,u)ans=exp(-1/4*u2)*pi(1/2)ifourier(sym(fourier(f(x),x,w),w,x)ans=f(x)ifourier(exp(-w2)ans=1/2*exp(-1/4*x2)/pi(1/2)第第2章章矩阵、数组和符号运算矩阵、数组和符号运算第第2章章矩阵、数组和符号运算矩阵、数组和符号运算例:求阶跃信号的例:求阶跃信号的fourier变换变换ns
43、ymstw;nut=sym(heaviside(t);%定义定义0时刻起跳的时刻起跳的单位阶跃函数单位阶跃函数nUT=fourier(ut)%实施实施Fourier变换,给出与理论一致的结果变换,给出与理论一致的结果nUTS=simple(UT)nUt=ifourier(UT,w,t)%结果与原函数相等结果与原函数相等nUts=ifourier(UTS,w,t)UT=pi*dirac(w)-i/w%dirac(w):单位冲激函数:单位冲激函数UTS=pi*dirac(w)-i/wUt=heaviside(t)Uts=heaviside(t)第第2章章矩阵、数组和符号运算矩阵、数组和符号运算【例
44、例】用用fourier指令求矩形脉冲的指令求矩形脉冲的Fourier变换变换。nsymsAtwnsymstaopositivenyt=sym(heaviside(t+tao/2)-heaviside(t-tao/2);n%定义幅度为定义幅度为1、宽度为、宽度为tao的矩形脉冲的矩形脉冲nYw=fourier(A*yt,t,w)nYws=simple(Yw)nYw=n2*A/w*sin(1/2*tao*w)nYt=ifourier(Yw,w,t)nnYt=nA*(heaviside(t+1/2*tao)-heaviside(t-1/2*tao)第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n
45、【例例】求求的的Fourier变换,在此变换,在此x是参数,是参数,t是是时间变量。本例演示:时间变量。本例演示:fourier的缺省调用格式的使用要十分的缺省调用格式的使用要十分谨慎;在被变换函数中包含多个符号变量的情况下,对被变换谨慎;在被变换函数中包含多个符号变量的情况下,对被变换的自变量给予指明,可保证计算结果的正确的自变量给予指明,可保证计算结果的正确。nsymstxw;ft=exp(-(t-x)*sym(heaviside(t-x);nF1=simple(fourier(ft,t,w)%给出以给出以w为频率变量的正确结果为频率变量的正确结果nF2=simple(fourier(ft
46、)%误把误把x当作时间变量当作时间变量nF3=simple(fourier(ft,t)%误把误把x当作时间变量,又把当作时间变量,又把t当作频当作频率变量率变量nF1=exp(-i*x*w)/(1+i*w)nF2=i*exp(-i*t*w)/(i+w)nF3=i*exp(-i*t2)/(i+t)g.Laplace变换变换L=laplace(F)xsL=laplace(F,z)xzL=laplace(F,w,z)wzsymsxswzlaplace(sin(x)ans=1/(s2+1)laplace(sin(x),w)ans=1/(w2+1)第第2章章矩阵、数组和符号运算矩阵、数组和符号运算lap
47、lace(sin(x*w)ans=w/(s2+w2)laplace(sin(x*w),w,z)ans=x/(z2+x2)第第2章章矩阵、数组和符号运算矩阵、数组和符号运算【例例】求求的的Laplace变换。变换。nsymsts;nsymsabpositivenDt=sym(dirac(t-a);nUt=sym(heaviside(t-b);nMt=Dt,Ut;exp(-a*t)*sin(b*t),t2*exp(-t);nMS=laplace(Mt,t,s)nMS=nexp(-s*a),exp(-s*b)/sn1/b/(s+a)2/b2+1),2/(1+s)3Fs=laplace(ft,t,s)
48、tsft=ilaplace(Fs,s,t)st第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n【例例】验证验证Laplace时移性质:时移性质:nsymsts;t0=sym(t0,positive);nft=sym(f(t-t0)*sym(heaviside(t-t0)nFS=laplace(ft,t,s),FS_t=ilaplace(FS,s,t)nft=nf(t-t0)*heaviside(t-t0)nFS=nexp(-s*t0)*laplace(f(t),t,s)nFS_t=nf(t-t0)*heaviside(t-t0)hZ变换变换当函数当函数f(x)呈现为一个离散的序列呈现为一个
49、离散的序列f(n)时,对序列时,对序列f(n)进行进行z变换的变换的MATLAB函数是:函数是:ztrans(fn,n,z):求:求fn的的Z变换像函数变换像函数F(z)。iztrans(Fz,z,n):求:求Fz的逆的逆Z变换原函数变换原函数f(n)。例例求序列求序列fn=e-2n的的Z变换。变换。symsxnezfn=e(-2*n)ztrans(fn,n,z)ans=z*e2/(z*e2-1)第第2章章矩阵、数组和符号运算矩阵、数组和符号运算第第2章章矩阵、数组和符号运算矩阵、数组和符号运算n【例例】求序列求序列的的Z变换,并用反变换验算。变换,并用反变换验算。nsymsnnDelta=s
50、ym(charfcn0(n);%定义单位函数定义单位函数nD0=subs(Delta,n,0);%计算计算nD15=subs(Delta,n,15);%计算计算ndisp(D0,D15);disp(D0,D15)nD0,D15n1,0n(2)求序列的)求序列的Z变换变换nsymsz;fn=2*Delta+6*(1-(1/2)n);FZ=simple(ztrans(fn,n,z);ndisp(FZ=);pretty(FZ),FZ_n=iztrans(FZ,z,n)nFZ=n2n4z+2n-n2n2z-3z+1nFZ_n=2*charfcn0(n)+6-6*(1/2)n(1)设)设 ,对对f(x)