第5章MATLAB符号运算-课件.pptx

上传人(卖家):晟晟文业 文档编号:4608932 上传时间:2022-12-24 格式:PPTX 页数:76 大小:320.06KB
下载 相关 举报
第5章MATLAB符号运算-课件.pptx_第1页
第1页 / 共76页
第5章MATLAB符号运算-课件.pptx_第2页
第2页 / 共76页
第5章MATLAB符号运算-课件.pptx_第3页
第3页 / 共76页
第5章MATLAB符号运算-课件.pptx_第4页
第4页 / 共76页
第5章MATLAB符号运算-课件.pptx_第5页
第5页 / 共76页
点击查看更多>>
资源描述

1、MATLAB 7.X程序设计程序设计1创建符号常量和变量;创建符号常量和变量;符号多项式的运算;符号多项式的运算;符号微积分的计算;符号微积分的计算;符号积分变换的计算;符号积分变换的计算;符号微分方程和代数方程的求解。符号微分方程和代数方程的求解。MATLAB 7.X程序设计程序设计2符号计算的特点:符号计算的特点:1)符号计算定义在符号变量的基础上,符号表)符号计算定义在符号变量的基础上,符号表达式计算前必须定义符号变量。达式计算前必须定义符号变量。2)符号计算是精确计算。)符号计算是精确计算。3)符号计算的计算速度较慢。)符号计算的计算速度较慢。4)符号计算的运算符和基本数学函数与数值计

2、)符号计算的运算符和基本数学函数与数值计算中的运算符和基本数学函数几乎完全相同。算中的运算符和基本数学函数几乎完全相同。MATLAB 7.X程序设计程序设计3symsym函数创建符号常量,格式函数创建符号常量,格式1 1为:为:sym(sym(常量常量)b=sym(pi)%创建符号常量创建符号常量MATLAB 7.X程序设计程序设计4 symsym函数的格式函数的格式2 2为:为:sym(sym(常量常量,参数参数)功能:功能:把常量按参数的格式要求转换为符号常把常量按参数的格式要求转换为符号常量。其中参数的含义:量。其中参数的含义:d d 返回最接近的十进制数返回最接近的十进制数(默认位数为

3、默认位数为3232位位)f f 返回该符号值最接近的浮点表示返回该符号值最接近的浮点表示r r 返回该符号值最接近的有理数型返回该符号值最接近的有理数型(为系统默认为系统默认方式方式),可表示为,可表示为p/qp/q、p p*q q、10q10q、p/qp/q、2q2q和和sqrt(p)sqrt(p)形式之一形式之一e e 返回最接近的带有机器浮点误差的有理值返回最接近的带有机器浮点误差的有理值MATLAB 7.X程序设计程序设计5 sym(sym(变量变量,参数参数)功能:功能:把变量定义为符号对象。其中把变量定义为符号对象。其中参数参数用来设置限定符号变量的数学特性,有三用来设置限定符号变

4、量的数学特性,有三种选择:种选择:positive positive 表示为表示为“正、实正、实”符号变符号变量,量,real real 表示为表示为“实实”符号变量,符号变量,unrealunreal 表示为表示为“非实非实”符号变量。符号变量。如果不限定则参数可省略。如果不限定则参数可省略。MATLAB 7.X程序设计程序设计6symssyms函数的格式为:函数的格式为:syms(arg1,arg2,syms(arg1,arg2,参数参数)syms arg1 arg2 syms arg1 arg2 参数参数功能:创建多个符号变量。功能:创建多个符号变量。a=sym(a);b=sym(b);

5、c=sym(c);x=5;y=-8;z=11;w=a*a+b*b+c*c w=x*x+y*y+z*zMATLAB 7.X程序设计程序设计75.2.3 建立建立符号表达式符号表达式(1)利用单引号来生成符号表达式。利用单引号来生成符号表达式。y=1/sqrt(2*x)f=cos(x2)-sin(2*x)=0MATLAB 7.X程序设计程序设计8 u=sym(3*x2-5*y+2*x*y+6)m=sym(a,b;c,d)MATLAB 7.X程序设计程序设计9 syms x y;v=3*x2-5*y+2*x*y+6MATLAB 7.X程序设计程序设计10findsym(f,n)syms a b n

6、t xf=a*xn+b*tfindsym(f,1)MATLAB 7.X程序设计程序设计115.3 符号表达式的运算符号表达式的运算1.算术运算算术运算与数值运算一样,注意与数值运算一样,注意”,”/”的区别的区别MATLAB 7.X程序设计程序设计12例例 表达式的算术运算表达式的算术运算 f1=sym(1/(a-b);f2=sym(a/(a+b);f1+f2 f1-f2 f1*f2 f12MATLAB 7.X程序设计程序设计132.关系运算关系运算运算符:运算符:=关系成立为关系成立为1,不成立为,不成立为0 f1=f2 f1=f2MATLAB 7.X程序设计程序设计143.函数运算函数运算

7、(1)合并合并 collect格式:格式:collect(f)对符号表达式对符号表达式f合并同类项合并同类项collect(f,v)对符号表达式对符号表达式f按变量按变量v 合并合并MATLAB 7.X程序设计程序设计15例例 合并合并 syms x y;R1=collect(x+1)*(y+1),x+y)R1=(y+1)*x+y+1,x+y R2=collect(x+y)*(x2+y2+1),y)R2=y3+x*y2+(x2+1)*y+x*(x2+1)MATLAB 7.X程序设计程序设计16(2)展开展开expand格式:格式:expand(f)将表达式将表达式f展开展开例:展开例:展开 s

8、yms x y a b R1=expand(x-2)*(x-4)R2=expand(cos(x+y)R3=expand(exp(a+b)2)MATLAB 7.X程序设计程序设计17(3)因式分解因式分解 factor格式:格式:factor(f)将将f因式分解因式分解例例 因式分解因式分解 f=sym(x2+y2+2*x*y);R1=factor(f)MATLAB 7.X程序设计程序设计18(4)化简化简simplify(f):利用代数中的函数规则对表利用代数中的函数规则对表 达式进行化简达式进行化简simple(f):使用其他方法尽可能将表达式使用其他方法尽可能将表达式化简化简MATLAB

9、7.X程序设计程序设计19例例 化简化简 f=sym(cos(x)2+sin(x)2);g=sym(cos(x)+(-sin(x)2)(1/2);R=simplify(f)R1=simplify(g)R2=simple(g)MATLAB 7.X程序设计程序设计20(5)提取分子、分母提取分子、分母格式:格式:n,d=numden(f)提取分子、分母提取分子、分母 n=numden(f)只提取分子只提取分子MATLAB 7.X程序设计程序设计21例例 提取分子、分母提取分子、分母 f=sym(x-1)/(x-2)+(x-3)/(2*x-1);nf,df=numden(f)nf=3*x2-8*x+

10、7df=(x-2)*(2*x-1)g=sym(x/2,a*x/(b*x+c);1/3,4*x+5);ng,dg=numden(g)ng=x,a*x 1,4*x+5dg=2,b*x+c 3,1 MATLAB 7.X程序设计程序设计22(6)反函数反函数格式:格式:finverse(f)对默认自变量的函数求反函数对默认自变量的函数求反函数finverse(f,v)对自变量对自变量v的函数的函数f(v)求反函求反函 数数MATLAB 7.X程序设计程序设计23例例 反函数反函数 syms x y;finverse(1/tan(x)ans=atan(1/x)f=x2+y;finverse(f,y)an

11、s=-x2+ytg(x)=1/zx=argtg(1/z)MATLAB 7.X程序设计程序设计24(7)复合函数复合函数composef=f(x)g=g(y)格式:格式:compose(f,g)f(g(y)compose(f,g,z)f(g(z)compose(f,g,x,z)f(g(z)x是是f的自变量的自变量compose(f,g,x,y,z)f(g(z)x是是f的自变量的自变量 y是是g的自变量的自变量MATLAB 7.X程序设计程序设计25例例 复合函数复合函数 syms x y z t f=1/(1+x2);g=sin(y);h=xt;compose(f,g)compose(f,g,t

12、)compose(h,g,x,z)%h(g(z)x为自变量为自变量 compose(h,g,t,z)%h(g(z)t为自变量为自变量MATLAB 7.X程序设计程序设计26(8)表达式替换函数表达式替换函数格式:格式:subs(s,new)用符号或数值变量用符号或数值变量new 替换替换s 中的默认变量中的默认变量 subs(s,old,new)用符号或数值变量用符号或数值变量new 替换替换s中的符号变量中的符号变量oldMATLAB 7.X程序设计程序设计27例例 替换函数替换函数 syms a b subs(a+b,a,4)subs(cos(a)+sin(b),a,b,sym(alpha

13、),2)f=sym(y-sin(x);f1=subs(f,pi)f2=subs(f1,y,2)MATLAB 7.X程序设计程序设计28 求求tetex x的反函数。的反函数。f=sym(t*ex)%原函数原函数 g=finverse(f)%对默认自由变量对默认自由变量x x求反函数求反函数 g=finverse(f,t)%对对t t求反函数求反函数 求求y=xy=x2 2的反函数。的反函数。syms x;f=x2;g=finverse(f)fg=compose(g,f)%验算验算g(f(x)g(f(x)是否等于是否等于x xMATLAB 7.X程序设计程序设计291.利用函数利用函数sym可以

14、将数值表达式变可以将数值表达式变换成它的符号表达式。换成它的符号表达式。2.函数函数numeric或或eval可以将符号表达可以将符号表达 式变换成数值表达式。式变换成数值表达式。MATLAB 7.X程序设计程序设计30 sym(1.5)sym(3.14)phi=(1+sqrt(5)/2 eval(phi)MATLAB 7.X程序设计程序设计311.符号极限符号极限格式:格式:limit(f,x,a):limit(f):limit(f,a):limit(f,x,a,left):limit(f,x,a,right):0lim()xf xlim()xaf xlim()xaflim()xaf xli

15、m()xaf xMATLAB 7.X程序设计程序设计32 sym x limit(xx,x,0,right)ans=1 limit(sin(x)/x,x,0)ans=1 limit(1/x,x,0,left)ans=-Inf%负无穷大负无穷大0sinlimxxx01limxx例例 计算计算 ,0lim xxxMATLAB 7.X程序设计程序设计33函数极值函数极值格式:格式:fmin(fname,x1,x2)fmin(fname,x0)求求 在在0,50,5内的最小值内的最小值 3()25f xxxMATLAB 7.X程序设计程序设计342.微分微分格式:格式:diff(f):求求f对默认自变

16、量的一次微分值对默认自变量的一次微分值diff(f,t):求求f对自变量对自变量t的一次微分值的一次微分值diff(f,n):求求f对默认自变量的对默认自变量的n次微分值次微分值diff(f,t,n):求求f对自变量对自变量t的的n次微分值次微分值MATLAB 7.X程序设计程序设计35例例 求求f(x)=ax2+bx+c的微分的微分 f=sym(a*x2+b*x+c);diff(f)%对对x求一次微分求一次微分 diff(f,2)%对对x求二次微分求二次微分 diff(f,a)%对对a求一次微分求一次微分 diff(f,a,2)%对对a求二次微分求二次微分 diff(diff(f),a)%对

17、对x和和a偏导偏导MATLAB 7.X程序设计程序设计363.积分积分符号积分格式:符号积分格式:int(f):求求f对默认自变量的不定积分对默认自变量的不定积分int(f,t):求求f对对t的不定积分的不定积分int(f,a,b):求求f对默认自变量的定积分对默认自变量的定积分,积分区间积分区间a,bint(f,t,a,b):求求f对对t的定积分的定积分,积分区间积分区间a,bMATLAB 7.X程序设计程序设计37例例 求求f(x)=ax2+bx+c的积分的积分 syms a b c x f=sym(a*x2+b*x+c);int(f)%f的不定积分,自变量是的不定积分,自变量是x int

18、(f,0,2)%f在在0,2的定积分,自变量是的定积分,自变量是x int(f,a)%f的不定积分,自变量是的不定积分,自变量是a int(int(f,a),x)MATLAB 7.X程序设计程序设计38数值积分数值积分I,n=quad(fname,a,b,tol,trace)I,n=quad8(fname,a,b,tol,trace)dblquad(fun,a,b,c,d,tol)triplequad(fun,a,b,c,d,e,f,tol)MATLAB 7.X程序设计程序设计39 g=inline(exp(-0.5*x).*sin(x+pi/6);S,n=quad(g,0,3*pi)S,n=

19、quad8(g,0,3*pi)30sin()6xexdxMATLAB 7.X程序设计程序设计40 f=inline(exp(-x.2/2).*sin(x.2+y),x,y);I=dblquad(f,-2,2,-1,1)212/221sin()xexy dxdy MATLAB 7.X程序设计程序设计414 级数级数1)级数符号求和symsum(s,v,n,m)其中s表示一个级数的通项,是一个符号表达式。v是求和变量,v省略时使用系统的默认变量。n和m是求和的开始项和末项。MATLAB 7.X程序设计程序设计42 syms n;s=symsum(1/n2,1,inf)s=1/6*pi2 eval(

20、s)ans=1.64492111114916nMATLAB 7.X程序设计程序设计432)函数的泰勒级数函数的泰勒级数 taylor(f,v,n,a)该函数将函数该函数将函数f按变量按变量v展开为泰勒级数,展开为泰勒级数,展开到第展开到第n项项(即变量即变量v的的n-1次幂次幂)为止,为止,n的缺省值为的缺省值为6。v的缺省值与的缺省值与diff函数函数相同。参数相同。参数a指定将函数指定将函数f在自变量在自变量v=a处展开,处展开,a的缺省值是的缺省值是0。MATLAB 7.X程序设计程序设计44 syms x taylor(log(x),x,6,1)ans=x-1-1/2*(x-1)2+1

21、/3*(x-1)3-1/4*(x-1)4+1/5*(x-1)5MATLAB 7.X程序设计程序设计455.5.1 多项式的四则运算多项式的四则运算1多项式的加减运算多项式的加减运算2多项式乘法运算多项式乘法运算conv(P1,P2)P1、P2是两个多项式系数是两个多项式系数 向量。向量。5.5 多项式计算多项式计算MATLAB 7.X程序设计程序设计46 a=1,8,0,0,-10;b=2,-1,3;c=conv(a,b)例例 求多项式求多项式x4+8x3-10与多项式与多项式2x2-x+3的乘积。的乘积。MATLAB 7.X程序设计程序设计473多项式除法多项式除法 Q,r=deconv(P

22、1,P2)其中其中Q返回多项式返回多项式P1除以除以P2的商式,的商式,r返回返回P1除以除以P2的余式。这里,的余式。这里,Q和和r仍是多项式系数向量。仍是多项式系数向量。MATLAB 7.X程序设计程序设计48 a=1,8,0,0,-10;b=2,-1,3;q,r=deconv(a,b)例例 求多项式求多项式x4+8x3-10除以多项式除以多项式2x2-x+3的结果。的结果。MATLAB 7.X程序设计程序设计495.5.2 多项式的导函数多项式的导函数 p=polyder(P):求多项式:求多项式P的导函数的导函数 p=polyder(P,Q):求:求PQ的导函数的导函数 p,q=pol

23、yder(P,Q):求:求P/Q的导函数,的导函数,导函数的分子存入导函数的分子存入p,分母存入,分母存入q。MATLAB 7.X程序设计程序设计50P=1;Q=1,0,5;p,q=polyder(P,Q)215xMATLAB 7.X程序设计程序设计515.5.3 多项式的求值多项式的求值polyval 代数多项式求值代数多项式求值Y=polyval(P,x)若若x为一数值,则求为一数值,则求多项式在该点的值;若多项式在该点的值;若x为向量或矩为向量或矩阵,则对向量或矩阵中的每个元素阵,则对向量或矩阵中的每个元素求其多项式的值。求其多项式的值。MATLAB 7.X程序设计程序设计52 a=1,

24、8,0,0,-10;x=1.2;y1=polyval(a,x)x=-1,1.2,-1.4;2,-1.8,1.6;y2=polyval(a,x)MATLAB 7.X程序设计程序设计53polyvalm 矩阵多项式求值矩阵多项式求值设设A为方阵,为方阵,P代表多项式代表多项式x3-5x2+8,那,那么么polyvalm(P,A)的含义是:的含义是:A*A*A-5*A*A+8*eye(size(A)而而polyval(P,A)的含义是:的含义是:A.*A.*A-5*A.*A+8*ones(size(A)MATLAB 7.X程序设计程序设计545.5.4 多项式求根多项式求根 x=roots(P)其中

25、其中P为多项式的系数向量,求得的为多项式的系数向量,求得的根赋给向量根赋给向量x,即,即x(1),x(2),x(n)分分别代表多项式的别代表多项式的n个根。个根。MATLAB 7.X程序设计程序设计55A=1,8,0,0,-10;x=roots(A)若已知多项式的全部根,则可以用若已知多项式的全部根,则可以用poly函函数建立起该多项式,其调用格式为:数建立起该多项式,其调用格式为:P=poly(x)MATLAB 7.X程序设计程序设计56傅里叶变换函数:傅里叶变换函数:F Ffourier(f,t,w)fourier(f,t,w)傅里叶反变换函数:傅里叶反变换函数:f=ifourier(F)

26、f=ifourier(F)f=ifourier(F,w,t)f=ifourier(F,w,t)功能:返回函数功能:返回函数F F(w w)的)的fourierfourier反变换反变换f(t)f(t)。参数含义同。参数含义同fourierfourier函数。函数。5.5.5 积分变换积分变换MATLAB 7.X程序设计程序设计57 求求 的的Fourier 变换。变换。2()xf te syms x t w;y=exp(-x*x);Ft=fourier(y,x,w)fx=ifourier(Ft,w,t)MATLAB 7.X程序设计程序设计58lF=laplace(f,t,s)F=laplace

27、(f,t,s)f=ilaplace(F,s,t)f=ilaplace(F,s,t)功能:求函数功能:求函数F F(s s)的的i iLaplaceLaplace变变换换f f(t t)。)。MATLAB 7.X程序设计程序设计59 求求sin(at)sin(at)和阶跃函数的和阶跃函数的LaplaceLaplace变换。变换。syms a t s;F1=laplace(sin(a*t),t,s)F2=laplace(sym(Heaviside(t)MATLAB 7.X程序设计程序设计60 F Fztrans(f,n,z)ztrans(f,n,z)f fiztrans(F,z,n)iztrans

28、(F,z,n)功能:求时域序列功能:求时域序列f f的的Z Z变换的逆变变换的逆变换函数换函数F F。MATLAB 7.X程序设计程序设计61求阶跃函数、冲激函数和求阶跃函数、冲激函数和e e-an-an的的Z Z变变换。换。syms a n z tFz1=ztrans(sym(Heaviside(t),n,z)Fz2=ztrans(sym(Dirac(t),n,z)Fz3=ztrans(exp(-a*t),n,z)MATLAB 7.X程序设计程序设计625.6 方程求解方程求解1.代数方程代数方程格式:格式:solve(f,v)解方程解方程f,自变量为,自变量为v solve(f1,fn)解

29、由解由f1,f2,fn构成的构成的 方程组的解方程组的解MATLAB 7.X程序设计程序设计63 f=sym(a*x*x+b*x+c=0)solve(f)ans=1/2/a*(-b+(b2-4*c*a)(1/2)1/2/a*(-b-(b2-4*c*a)(1/2)solve(f,a)ans=-(b*x+c)/x2例例 代数方程代数方程 ax2+bx+c=0MATLAB 7.X程序设计程序设计64例例 求方程组求方程组 的解的解 f1=sym(x+y+z=10);f2=sym(x+y-z=5);f3=sym(x+5*y-z=5);x,y,z=solve(f1,f2,f3)x=15/2y=0z=5/

30、2x+y+z=10 x+y-z=5x+5y-z=5MATLAB 7.X程序设计程序设计652.常微分方程常微分方程格式:格式:dsolve(f1,f2,cond1,cond2,v)f1,fn 为常微分方程式为常微分方程式 D表示求微分,后面数字表示几重微分表示求微分,后面数字表示几重微分 Dy y D2y ycond1condn 为初始条件为初始条件v为自变量为自变量,默认时对,默认时对t求导求导MATLAB 7.X程序设计程序设计66例例 常微分方程常微分方程 dsolve(Dy=7)%求求y=7的通解的通解ans=7*t+C1 dsolve(Dy=x2)%自变量为自变量为tans=x2*t

31、+C1 dsolve(Dy=x2,x)%自变量为自变量为xans=1/3*x3+C1 dsolve(D2y=1+Dy,y(0)=1,Dy(0)=0)ans=exp(t)-tMATLAB 7.X程序设计程序设计67 求解两点边值问题:求解两点边值问题:23,(1)0,(5)0 xyyxyyy=dsolve(x*D2y-3*Dy=x2,y(1)=0,y(5)=0,x)MATLAB 7.X程序设计程序设计685.7 符号表达式绘图符号表达式绘图 1.fplot函数函数格式:格式:fplot(fun,lims)fun是要绘制的函数(可以是定义函数的是要绘制的函数(可以是定义函数的M文文 件,也可是以件

32、,也可是以X为变量的可计算字符串)为变量的可计算字符串)lims=XMIN XMAX YMIN YMAX 限定了限定了x,y轴上的绘图空间轴上的绘图空间MATLAB 7.X程序设计程序设计69例例 subplot(2,2,1)fplot(sin,0 10)%sin是是Matlab的内部函数的内部函数 subplot(2,2,2)fplot(sin(1/x),1 10)%x为自变量为自变量 subplot(2,2,3)fplot(sin(x),cos(x),0 2*pi)%两条曲线两条曲线 subplot(2,2,4)fplot(sin(x),cos(x),0 2*pi 0 1)%改变绘图空间改

33、变绘图空间MATLAB 7.X程序设计程序设计70MATLAB 7.X程序设计程序设计712.ezplot函数函数格式:格式:ezplot(f)(1)f 为包含一个变量为包含一个变量x的字符串或数学函数的字符串或数学函数f=f(x),则默认,则默认x轴的绘图区域为轴的绘图区域为(2)f 为为f=f(x,y)的包含的包含x,y之间关系的隐函数之间关系的隐函数,则则默认绘图区域为默认绘图区域为22,22yx22xMATLAB 7.X程序设计程序设计72格式:格式:ezplot(f,min,max)绘制绘制f(x)=0在在minxmax或或f(x,y)=0在在 minxmax和和minymax之间的

34、图形之间的图形 ezplot(f,xmin,xmax,ymin,ymax)绘制绘制f(x,y)=0在在 xminxxmax和和yminy subplot(2,2,1)ezplot(cos(x)%x范围范围-2*pi,2*pi subplot(2,2,2)ezplot(cos(x),0,pi)%x范围范围-pi,pi subplot(2,2,3)ezplot(x2+y2-1)%x,y范围范围-2*pi,2*pi subplot(2,2,4)ezplot(x2+y2-1,-1.25,1.25,-2,2)%x范围范围-1.25,1.25 y范围范围-2,2MATLAB 7.X程序设计程序设计74MATLAB 7.X程序设计程序设计7521log()sin()axaxfxexxMATLAB 7.X程序设计程序设计765.已知已知 分别对变量分别对变量x、y、z求一阶偏导求一阶偏导22222(,)cos()f x y zxyzxz 6.求微分方程求微分方程 在满足在满足y(0)=1,y(0)=0的解,并画出图形的解,并画出图形22220d ydyyd xdx

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第5章MATLAB符号运算-课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|