符号数学基础_第1页
符号数学基础_第2页
符号数学基础_第3页
符号数学基础_第4页
符号数学基础_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、MATLAB与通信仿真主讲人:潘伟西华师范大学计算机学院通信专业系列课程 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计 第三章 符号数学基础 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计u在在MATLABMATLAB中,数值和数值变量用于数值的存储和各种数值中,数值和数值变量用于数值的存储和各种数值计算。计算。u符号对象是一种数据结构,包括符号对象是一种数据结构,包括符号常数符号常数、符号变量符号变量和和符符号表达式号表达式。u符号常数

2、、符号变量、符号函数、符号操作等则是用来形符号常数、符号变量、符号函数、符号操作等则是用来形成符号表达式,严格按照代数、微积分等课程中的规则、成符号表达式,严格按照代数、微积分等课程中的规则、公式进行运算,并尽可能给出解析表达式结果。公式进行运算,并尽可能给出解析表达式结果。 u数值表达式的变量必须事先被赋值。符号对象也要定义基数值表达式的变量必须事先被赋值。符号对象也要定义基本的符号对象,然后才能进行符号运算。本的符号对象,然后才能进行符号运算。uMatlabMatlab具有符号数学工具箱具有符号数学工具箱(Symbolic Math Toolbox),(Symbolic Math Tool

3、box),以以MapleMaple的内核为符号运算的引擎的内核为符号运算的引擎. . 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计第一节第一节 符号表达式的建立符号表达式的建立n创建符号常量Sym(常量) 例:a=sym(sin(2)Sym(常量,参数)参数参数作用作用D返回最接近的十进制数值(默认32位)F返回最接近的浮点表示R返回最接近的有理数型(为系统默认方式),可表示为p/q,p*q,10q,pi/q,2q,sqrt(p)形式之一e返回最接近的带有机器浮点误差的有理值 西华师范大学计算机学院西华师范大学计算

4、机学院ChinaWest Nomal UniversityMatlab程序设计程序设计例:a1=2*sqrt(5) + pia2=sym(2*sqrt(5) + pi)a3=sym(2*sqrt(5) + pi)a4=sym(2*sqrt(5) + pi,d)a31=a3 - a1a5= 2*sqrt(5) + pi 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计symsym(argv,flagv(argv,flagv) ) %falgv%falgv的取值可以为的取值可以为positive,real,positive

5、,real,和和unrealunreal。sym(x,real) sym(y,real)symssyms(arg1,arg2,arg1,arg2, , flagvflagv) % %定义字符串变量为符定义字符串变量为符号变量号变量SymsSyms arg1 arg2 arg1 arg2 , , flagvflagvsyms a b c x syms (a,b,c,x)f=f=symsym(表达式表达式) ) z=sym(x+iy)n 创建符号变量和表达式 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计使用使用syms

6、ym和和symssyms也可以创建符号矩阵也可以创建符号矩阵 sym(a,b;c,d) syms a b c d A=a b;c d B=a b;c d C=sym(B)n 创建符号矩阵 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计 数值计算对象、符号计算对象、字符串是数值计算对象、符号计算对象、字符串是MATLABMATLAB中中最常遇到的数据对象。它们遵循着各自不同的运算法则,最常遇到的数据对象。它们遵循着各自不同的运算法则,但有时在外形上却十分相似。为管理和使用方便,但有时在外形上却十分相似。为管理和使用方便

7、,MATLABMATLAB提供了一些识别不同数据对象的指令,常用的有提供了一些识别不同数据对象的指令,常用的有class,isa,whosclass,isa,whos等。等。n 识别对象类别的指令 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计n基本运算符基本运算符算符算符“+ +”、“- -”、“ “ * * ” ”、“ “ ” ”、“ “ / / ” ”、“ “ ” ”分别实现矩阵的加、减、乘、左除、右除、分别实现矩阵的加、减、乘、左除、右除、求幂运算。求幂运算。算符算符 “ “. .* * ” ”、“. ” ”

8、、“././ ” ”、“. ” ”分别实分别实现现“元素对元素元素对元素”的数组乘、左除、右除、求幂运算。的数组乘、左除、右除、求幂运算。算符算符“ “ ” ”、“ “ . ” ” 分别实现矩阵的共轭转置、分别实现矩阵的共轭转置、非共轭转置非共轭转置。n关系运算符关系运算符算符算符“ “ = ” ”、“ “ = = ” ” 分别对算符两边的对象进分别对算符两边的对象进行行“相等相等”、“不等不等”的比较。当事实为的比较。当事实为“真真”时,时,比较结果用比较结果用1 1表示;当事实为表示;当事实为“假假”时,比较结果则时,比较结果则用用0 0表示。表示。第二节第二节 符号表达式的代数运算符号表

9、达式的代数运算 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计n三角函数、双曲函数及它们的反函数三角函数、双曲函数及它们的反函数除除atan2atan2仅能用于数值计算外,其余的三角函数(如仅能用于数值计算外,其余的三角函数(如sinsin)、双曲函数(如)、双曲函数(如coshcosh)及它们的反函数(如)及它们的反函数(如asin,acoshasin,acosh),无论在数值计算还是符号计算中,它们),无论在数值计算还是符号计算中,它们的使用方法相同。的使用方法相同。n指数、对数函数指数、对数函数在数值、符号计算

10、中,函数在数值、符号计算中,函数sqrtsqrt、expexp、expmexpm的使用方法的使用方法完全相同。至于对数函数,符号计算中只有自然对数完全相同。至于对数函数,符号计算中只有自然对数loglog(在一般教科书中用(在一般教科书中用lnln),而没有数值计算中的),而没有数值计算中的log2,log10log2,log10。 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计n 复数函数复数函数 涉及复数的共轭涉及复数的共轭conjconj、求实部、求实部realreal、求虚部、求虚部imagimag和和求模求

11、模absabs函数,在符号、数值计算中的使用方法相同。但函数,在符号、数值计算中的使用方法相同。但注意注意,在符号计算中,在符号计算中,MATLABMATLAB没有提供求相角的指令。没有提供求相角的指令。n 矩阵代数指令矩阵代数指令在符号计算中,在符号计算中,MATLABMATLAB提供的常用矩阵代数指令有提供的常用矩阵代数指令有diagdiag, , triutriu, ,triltril, ,invinv, ,detdet, ,rankrank, ,rrefrref, ,nullnull, ,colspacecolspace, ,polypoly, ,expmexpm, ,eigeig,

12、,svdsvd。它们的用法几乎与数值计算中的情况完全一样,。它们的用法几乎与数值计算中的情况完全一样,只有只有svdsvd稍微不同。稍微不同。 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计n 复数函数复数函数 涉及复数的共轭涉及复数的共轭conjconj、求实部、求实部realreal、求虚部、求虚部imagimag和和求模求模absabs函数,在符号、数值计算中的使用方法相同。但函数,在符号、数值计算中的使用方法相同。但注意注意,在符号计算中,在符号计算中,MATLABMATLAB没有提供求相角的指令。没有提供求

13、相角的指令。n 矩阵代数指令矩阵代数指令在符号计算中,在符号计算中,MATLABMATLAB提供的常用矩阵代数指令有提供的常用矩阵代数指令有diagdiag, , triutriu, ,triltril, ,invinv, ,detdet, ,rankrank, ,rrefrref, ,nullnull, ,colspacecolspace, ,polypoly, ,expmexpm, ,eigeig, ,svdsvd。它们的用法几乎与数值计算中的情况完全一样,。它们的用法几乎与数值计算中的情况完全一样,只有只有svdsvd稍微不同。稍微不同。 西华师范大学计算机学院西华师范大学计算机学院Ch

14、inaWest Nomal UniversityMatlab程序设计程序设计n 默认符号变量的确定 findsym(EXPRfindsym(EXPR) )确认表达式确认表达式EXPREXPR中所有中所有“自由自由”符号符号“变量变量”findsym(EXPR,Nfindsym(EXPR,N) ) 从表达式从表达式EXPREXPR中确认出靠中确认出靠x x最近的最近的N N个独个独立自变量。立自变量。注注:EXPREXPR可以是符号矩阵。此时,该指令对自由变量的确认是对整个矩可以是符号矩阵。此时,该指令对自由变量的确认是对整个矩阵进行的,而不是对矩阵元素逐个进行的。阵进行的,而不是对矩阵元素逐个

15、进行的。第三节第三节 符号对象的操作和转换符号对象的操作和转换 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计 自由变量的确定规则规则小写字母小写字母i i和和j j不能作为自由变量;不能作为自由变量;符号表达式有多个字符变量,则按照以下顺序选择自由变符号表达式有多个字符变量,则按照以下顺序选择自由变量:量:x x;字母表顺序中最接近字母表顺序中最接近x x的字符变量;的字符变量;如果与如果与x x相同距离,则在相同距离,则在x x后面的优先。后面的优先。大写字母比小写字母都靠后。大写字母比小写字母都靠后。 西华师范

16、大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计n符号表达式的操作符号表达式的操作符号表达式的书写有多种形式:符号表达式的书写有多种形式: 多项式表达形式多项式表达形式因式形式表达形式因式形式表达形式嵌套形式表达形式嵌套形式表达形式符号运算中有许多操作指令,如符号运算中有许多操作指令,如collectcollect(合并同类项)、(合并同类项)、expandexpand(对指定项展开)、(对指定项展开)、factorfactor(进行因式或因子(进行因式或因子分解)、分解)、hornerhorner(转换成嵌套形式)、(转换成

17、嵌套形式)、numdennumden(提取(提取公因式)、公因式)、simplifysimplify(恒等式简化)、(恒等式简化)、prettypretty(习惯(习惯方式显示),方式显示),simplesimple等。等。注:注:EXPREXPR可以是符号表达式或矩阵。在这种情况下,这些指令将可以是符号表达式或矩阵。在这种情况下,这些指令将对该矩阵的元素逐个进行操作。对该矩阵的元素逐个进行操作。 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计n 置换操作置换操作 子表达式置换操作子表达式置换操作 RS,ssubRS

18、,ssub=subexprsubexpr(S,ssub(S,ssub) )% %运用符号变量运用符号变量ssubssub置换子表置换子表达式,重写达式,重写S S为为RSRS。置换原则置换原则:只有比较长的子表达式才被置换;至于比较:只有比较长的子表达式才被置换;至于比较短的子表达式,即便多次重复出现,也不被置换。短的子表达式,即便多次重复出现,也不被置换。通用置换指令通用置换指令RES=RES=subssubs(ES,old,new)(ES,old,new) % %用用newnew置换置换ESES中的中的oldold后产生后产生RESRESRES=RES=subssubs(ES, new)(

19、ES, new)% %用用newnew置换置换ESES中的自由变量后产生中的自由变量后产生RESRES 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计n 求反函数和复合函数求反函数和复合函数 finverse(f,vfinverse(f,v) ) % %求求f(vf(v) )的反函数的反函数compose(f,gcompose(f,g) ) % %求求f(xf(x) )和和g(yg(y) )的复合函数的复合函数f(g(yf(g(y)compose(f,g,zcompose(f,g,z) % %求求f(xf(x) )和

20、和g(yg(y) )的复合函数的复合函数f(g(zf(g(z) ) compose(f,g,x,zcompose(f,g,x,z) % %以以x x为自变量构成复合函数为自变量构成复合函数f(g(zf(g(z) ) compose(f,g,x,yzcompose(f,g,x,yz) % %以以x x为自变量构成复合为自变量构成复合函数函数f(g(zf(g(z),并用,并用z z替换替换y y 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计n 符号数值任意精度控制和运算 Symbolic Math ToolboxSym

21、bolic Math Toolbox中有三种不同的算术运算:中有三种不同的算术运算:数值型数值型:MATLABMATLAB的浮点运算;的浮点运算; 有理数型有理数型:MapleMaple的精确符号运算;的精确符号运算; VPAVPA型型:MapleMaple的任意精度运算。的任意精度运算。 任意精度的任意精度的VPAVPA型运算可以使用型运算可以使用digitsdigits和和vpavpa命令来实现。命令来实现。digits(ndigits(n) ) % %设定默认的精度设定默认的精度S=vpa(s,nS=vpa(s,n) ) % %将将s s表示为表示为n n位有效位数的符号对象位有效位数的

22、符号对象,s,s可以可以数值或符号对象;当数值或符号对象;当n n省略时,精度由省略时,精度由digitsdigits指定。指定。注注:vpavpa不改变全局的不改变全局的digitsdigits参数。参数。 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计n 符号对象与其它数据对象间的转换 数值、符号、字符是数值、符号、字符是MATLABMATLAB中的三种不同的数据类型。中的三种不同的数据类型。MATLABMATLAB为每种数据类型提供了各自特定的生成指令和操作为每种数据类型提供了各自特定的生成指令和操作指令。指令

23、。为实现不同数据类型的交互,为实现不同数据类型的交互,MATLABMATLAB提供了一系列的转换提供了一系列的转换指令。指令。 数值型数值型符号结果符号结果符号常数符号常数 符号量(表达式)符号量(表达式)数值数值字符串(表达式)字符串(表达式)ASCII码码vpavpadoubledoublesymcharsymdoublecharstr2num str2double sscanfint2str num2str mat2str sprintf 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计第四节第四节 符号微积分符

24、号微积分 u与数值计算相比,一般说来,符号计算需要消耗更多的与数值计算相比,一般说来,符号计算需要消耗更多的计算机资源,但这并不意味着符号计算可有可无。在某计算机资源,但这并不意味着符号计算可有可无。在某些场合,符号计算处理问题反比数值计算更为简明快捷。些场合,符号计算处理问题反比数值计算更为简明快捷。 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计n 符号极限符号极限limitlimit(F,x,a)(F,x,a)计算符号表达式计算符号表达式F F在在xaxa条件下的极限条件下的极限limitlimit(F, a)

25、(F, a)计算符号表达式计算符号表达式F F中默认自变量趋向于中默认自变量趋向于a a条件下的极限条件下的极限limitlimit(F) (F) 计算符号表达式计算符号表达式F F在默认自变量趋向于在默认自变量趋向于0 0时的极限时的极限limitlimit(F,x,a,right)(F,x,a,right)和和limitlimit(F,x,a,left) (F,x,a,left) 计算符号表达式计算符号表达式F F在在xaxa条件下的右极条件下的右极限和左极限限和左极限 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序

26、设计n 符号微分符号微分dfdvndfdvn= =diffdiff(f,v,n)(f,v,n)f f是矩阵时,求导对元素逐个进行,但自变量定义在是矩阵时,求导对元素逐个进行,但自变量定义在整个矩阵上。整个矩阵上。v v确省时,自变量会自动由确省时,自变量会自动由findsymfindsym确认;确认;n n缺省时,缺省时,默认默认n=1n=1。注意注意:在数值计算中,指令:在数值计算中,指令diffdiff是用来求差分的。是用来求差分的。nndvvfd)( 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计n 符号积分符

27、号积分 intf=int(f,vintf=int(f,v) )给出给出f f对指定变量对指定变量v v的(不带积的(不带积分常数的)不定积分分常数的)不定积分Intf=int(f,v,a,bIntf=int(f,v,a,b) )给出给出f f对指定变量对指定变量v v的定积分的定积分- - 与数值积分相比,符号积分指令简单,适应性强,但可能占用机与数值积分相比,符号积分指令简单,适应性强,但可能占用机器时间很长。器时间很长。- - 有时符号积分也可能给出相当冗长而生疏的有时符号积分也可能给出相当冗长而生疏的“闭闭”符号表达式,符号表达式,有时可能给不出有时可能给不出 “ “闭闭”解。凡解。凡M

28、ATLABMATLAB求积不能给出求积不能给出“闭闭”解时,解时,intint运行结束将给出警告提示和积分的原式。运行结束将给出警告提示和积分的原式。 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计n 符号序列的求和符号序列的求和对于数学上的通式求和对于数学上的通式求和 问题,可用问题,可用MATLABMATLAB的求的求和指令解决。和指令解决。s=s=symsumsymsum(f,v,a,b(f,v,a,b) )求通式求通式f f在指定变量在指定变量v v取遍取遍a,ba,b中所有整数时的和中所有整数时的和注:注:

29、f f是矩阵时,求和对元素逐个进行,但自变量定义在整个矩阵是矩阵时,求和对元素逐个进行,但自变量定义在整个矩阵上。上。v v确省时,确省时,f f中的自变量由中的自变量由findsymfindsym自动辨识;自动辨识;b b可以取有限整数,可以取有限整数,也可以取无穷大也可以取无穷大bavvf)( 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计n Taylor Taylor级数展开级数展开taylortaylor(f(f) )计算符号表达式计算符号表达式f f在默认自变量等于在默认自变量等于0 0处的处的5 5阶阶T

30、aylorTaylor级数展开式级数展开式taylortaylor(f,n,v(f,n,v) )计算符号表达式计算符号表达式f f在指定变量在指定变量v=0v=0处的处的n-1n-1阶阶TaylorTaylor级数展开式级数展开式 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计第五节第五节 符号代数方程和符号代数方程和微分方程微分方程n一般代数方程组的解一般代数方程组的解S=solve(eq1,eq2,S=solve(eq1,eq2,,eqn,v1,veqn,v1,v2,2,vn,vn)求方程组关于指定变量的解(推荐

31、格式)求方程组关于指定变量的解(推荐格式)S=solve (eq1,eq2,S=solve (eq1,eq2,,eqn,v1,v2,eqn,v1,v2,vn,vn) ) 求方程组关于指定变量的解(可用格式)求方程组关于指定变量的解(可用格式)注注: :eqeq可以是含等号的符号表达式的方程可以是含等号的符号表达式的方程, ,也可是是不含等号的符号表也可是是不含等号的符号表达式达式, ,此时指的是此时指的是eqeq=0=0的方程的方程当当v v省略时,默认为方程中的自由变量省略时,默认为方程中的自由变量输出结果为结构数组。输出结果为结构数组。 西华师范大学计算机学院西华师范大学计算机学院Chin

32、aWest Nomal UniversityMatlab程序设计程序设计n 符号微分方程的求解符号微分方程的求解S=dsolve(eq1,eq2S=dsolve(eq1,eq2,con1,con2,con1,con2,v1,v2),v1,v2)求解常微分方程最完整、通用的指令调用格式求解常微分方程最完整、通用的指令调用格式注注: :EqEq为微分方程级,为微分方程级,concon为初始条件,可省略;为初始条件,可省略;v v为指定变量,省为指定变量,省略时则默认为略时则默认为x x或或t;t;输出结果为结构数组;输出结果为结构数组;在微分方程中,在微分方程中,y y的一阶导数的一阶导数dy/d

33、xdy/dx表示为表示为Dy;yDy;y的的n n阶导数表示为阶导数表示为DnyDny;ConCon应写成应写成y(a)=b,dy(cy(a)=b,dy(c)=d)=d的格式,初始条件数目少于微分的格式,初始条件数目少于微分方程数时,在所得解中会出现任意常方程数时,在所得解中会出现任意常C1,C2C1,C2。u示例示例 1 1、求微分方程、求微分方程dx/dt=y,dy/dtdx/dt=y,dy/dt=-x=-x的解。的解。2 2、求解两点边值问题:、求解两点边值问题:xy-3y=x2,y(1)=0,y(5)=0 xy-3y=x2,y(1)=0,y(5)=0。 西华师范大学计算机学院西华师范大学计算机学院ChinaWest Nomal UniversityMatlab程序设计程序设计ezplot(Fezplot(F):):在在-2pi,2pi-2pi,2pi自变量范围中,绘制自变量范围中,绘制F F曲线曲线ezplot(F,xmin,xmaxezplot(F,xmin,xmax):):在指定自变量范围,绘制在指定自变量范围,绘制F F曲线曲线ezplot(F,xmin,xmax,figezplot(F,xmin,xmax,f

温馨提示

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

评论

0/150

提交评论