资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,现代通信仿真技术,MATLAB符号计算,MATLAB符号计算,主要内容,符号表示式建立,1,符号表示式代数运算,2,符号表示式操作和转换,3,符号积分变换,4,符号方程求解,5,符号函数可视化,6,1/24,学习重点,1、掌握符号表示式创建;,2、掌握符号积分变换;,3、,掌握,符号函数可视化。,2/24,与数值运算区分:,数值运算中必须先对变量赋值,,然后才能参加运算。,符号运算无须事先对独立变量赋值,,运算结果以标准符号形式表示。,MATLAB符号计算,MATLAB含有符号数学工具箱(Symbolic Math Toolbox)。,符号计算是能够对未赋值符号对象(能够是常数、变量、表示式)进行运算和处理。,3/24,Symbolic Math Toolbox符号运算工具包经过调用Maple软件实现符号计算。,maple软件主要功效是符号运算,它占据符号软件主导地位。,特点:,运算对象能够是没赋值符号变量。,能够取得任意精度解。,4/24,符号常量是不含变量符号表示式。,sym(常量)%创建符号常量,sym(常量,参数)%按某种格式转换为符号常量,1、创建符号常量,一、符号表示式建立,说明:,参数能够选择为d、f、e或r 四种格,式,也可省略。,EX:a=sym(sin(2),a=sym(sin(2),r),5/24,1.使用sym命令创建符号变量和表示式,sym(变量,参数)%把变量定义为符号对象,说明:,参数用来设定符号变量数学特征,可选择positive、real和unreal,不限定则参数可省略,2.使用syms命令创建符号变量和符号表示式,syms(arg1,arg2,参数),syms arg1 arg2,参数,2、创建符号变量和表示式,6/24,f1=sym(a*x2+b*x+c)%创建表示式,syms a b c x%创建变量,f2=a*x2+b*x+c%创建表示式,syms(a,b,c,x),f3=a*x2+b*x+c,符号表示式()中参数一定要用 单引号括起来。,比如:,7/24,比如:,使用sym命令创建符号矩阵:,A=sym(a,b;c,d),比如:,使用syms命令创建相同符号矩阵:,syms a b c d,A=a b;c d,比较符号矩阵与字符串矩阵:,B=a,b;c,d%创建字符串矩阵,C=a,b;c,d%创建数值矩阵,?Undefined function or variable a.,3、符号矩阵,8/24,因为MATLAB采取了重载技术,使得符号表示式运算符和基本函数都与数值计算中几乎完全相同。,比如:,f=sym(2*x2+3*x+4),g=sym(5*x+6),f+g,f*g,1、符号表示式代数运算,二、符号表示式代数运算,9/24,在Symbolic Math Toolbox中有三种不一样算术运算:,数值型:MATLAB浮点运算。,有理数型:Maple准确符号运算。,VPA型:Maple任意精度运算。,任意精度VPA型运算能够使用digits和vpa命令来实现。,digits(n)%设定默认精度,S=vpa(s,n)%将s表示为n位有效位数符号对象,2、符号数值任意精度控制和运算,10/24,a1=2/3,%数值型,a1=,0.6667,a2=sym(2/3),%有理数型,a2=,2/3,digits,digits=32,a3=vpa(2/3,32),%VPA型,a3=,.66666666666666666666666666666667,例:,用3种运算方式表示式比较2/3结果。,11/24,将数值矩阵转化为符号矩阵,函数调用格式:,sym(A),EX:A=1/3,2.5;1/0.7,2/5,sym(A),将符号矩阵转化为数值矩阵,函数调用格式:,numeric(A),EX:a=sym(2/3),b=numeric(a),3、符号对象与数值对象转换,12/24,符号表示式“f=ax2+bx+c”中只有一个变量是独立变量:,小写字母i和j不能作为自由变量。,符号表示式中假如有多个符号变量,则按照以下次序选择自由变量:首先选择x作为自由变量;假如没有x,则选择在字母次序中最靠近x字符变量;假如与x相同距离,则在x后面优先。,大写字母比全部小写字母都靠后。,也能够用findsym函数来自动确定。,自由变量确实定标准,1、符号表示式中自由变量确实定,三、符号表示式操作和转换,13/24,同一个多项式符号表示式能够表示成三种形式:,多项式形式表示方式:f(x)=x,3,+6x,2,+11x-6,因式形式表示方式:f(x)=(x-1)(x-2)(x-3),嵌套形式表示方式:f(x)=x(x(x-6)+11)-6,pretty:,给出排版形式输出结果,。,collect:将表示式写成多项式形式。,3 2,x -6 x +11 x-6,x3-6*x2+11*x-6,2、符号表示式化简(Simplificate),14/24,horner:将,多项式,形式写成,嵌套形式,factor:将表示式写成,因式形式,expand:将表示式写成,多项式,形式,simplify:对表示式进行化简,比如:,k=sym(cos(x)2-sin(x)2),simplify(k),simple:寻求表示式各种简化形式,使之包含最少数目标字符,-6+(11+(6+x)*x)*x,2*cos(x)2-1,(x-1)*(x-2)*(x-3),15/24,subs函数:对符号表示式中符号变量替换。,subs(s)%用给定值替换表示式s中全部变量,subs(s,new)%用new替换表示式s中自由变量,subs(s,old,new)%用new替换表示式s中old变量,例:,f=sym(x3-6*x2+11*x-6),x=5,subs(f),subs(f,5),subs(f,x,5),能够用来计算多项式值,以及化简。,3、符号表示式替换(Substitutions),16/24,fourier变换,Ffourier(f,t,w)%求时域函数f(t)fourier变换F,说明:,返回结果F是符号变量w函数,f为t函数。,fourier反变换,f=ifourier(F,w,t),说明:,ifourier函数使用方法与fourier函数相同。,syms t w,F=fourier(1/t,t,w),%fourier变换,F=i*pi*(Heaviside(-w)-Heaviside(w),f=ifourier(F),%fourier反变换默认x为自变量,f=1/x,1、傅里叶变换及其反变换,四、符号积分变换,17/24,Laplace变换,F=laplace(f,t,s)%求时域函数fLaplace变换F,说明:,返回结果F为s函数,当参数s省略,返回结果F默认为s函数;f为t函数,当参数t省略,默认自由变量为t。,Laplace反变换,filaplace(F,s,t)%求FLaplace反变换f,syms a t s,F1=laplace(sin(a*t),t,s),%sinatLaplace变换,F1=a/(s2+a2),f2=ilaplace(1,s,t),f2=dirac(t),2、拉普拉斯变换及其反变换,18/24,MATLAB能够用solve命令给出方程数值解。,solve(eq,v)%求方程关于指定变量解,solve(eq1,eq2,v1,v2,),%求方程组关于指定变量解,比如:,解方程,solve(a*x2+b*x+c),solve(a*x2+b*x+c=0),solve(a*x2+b*x+c=0,x),1、代数方程,五、符号方程求解,19/24,例:,求三元非线性方程组解。,eq1=sym(x2+2*x+1);,eq2=sym(x+3*z=4);,eq3=sym(y*z=-1);,x,y,z=solve(eq1,eq2,eq3)%解方程组并,赋值给x,y,z,x=-1,y=-3/5,z=5/3,20/24,MATLAB提供了dsolve命令能够用于对符号常微分方程进行求解。,dsolve(eq,con,v)%求解微分方程,dsolve(eq1,eq2,con1,con2,v1,v2)%求解微分方程组,说明:,con是微分初始条件,可省略;v为指定自由变量,省略时则默认为x或t为自由变量。,y一阶导数为Dy;yn阶导数表示为Dny。,2、符号,常微分方程,21/24,EX:,y(1)=0,y(0)=0,y=dsolve(x*D2y-3*Dy=x2,x),%求微分方程通解,y=,-1/3*x3+C1+C2*x4,y=dsolve(x*D2y3*Dy=x2,y(1)=0,y(0)=0,x)%求微分方程特解,y=,-1/3*x3+1/3*x4,22/24,六、,符号函数可视化,ezplot(F,xmin,xmax,fig),说明:,F是要画符号函数,xmin,xmax是绘图自变量范围,省略时默认值为-2 ,2 ;,Fig是指定图形窗口,省略时默认,绘制二维曲线,y=sym(-1/3*x3+1/3*x4),ezplot(y),ezplot(y,0,100),比如:,23/24,小结,1、符号表示式创建和运算;,2、符号表示式操作和转换;,3、符号积分变换;,4、符号方程求解;,5、符号函数可视化。,24/24,
展开阅读全文