资源描述:
《《matlab软件基础及应用》》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第6章符号计算6.1符号对象和符号表达式在MATLAB中,数值和数值变量用于数值的存贮和各种数值计算。而符号常数、符号变量、符号函数、符号操作等则是用来形成符号表达式,严格按照代数、微积分等课程中的规则、公式进行运算,并尽可能给出解析结果。6.1.1符号对象的生成和使用f=sym(arg)把数字、字符串或表达式arg转换成为符号对象ff=sym(argn,flagn)把数字、字符串或表达式argn转换成为flagn格式的符号对象fflagn取:‘d'——最接近的十进制浮点精确表示;‘r'——最接近有理表示;argv=sy
2、m('argv',flagv)按flagv指定的要求把字符串argv定义为符号对象argvsyms('argv1','argv2','argvk')把字符argv1,argv2,argvk定义为基本符号对象symsargv1argv2argv3上述格式的简单形式【例6.1-1】符号常数形成中的差异a1=[1/3,pi/7,sqrt(5),pi+sqrt(5)]a2=sym([1/3,pi/7,sqrt(5),pi+sqrt(5)])a3=sym('[1/3,pi/7,sqrt(5),pi+sqrt(5)]')a23=a2
3、-a3a1=0.33330.44882.23615.3777a2=[1/3,pi/7,sqrt(5),6054707603575008*2^(-50)]a3=19[1/3,pi/7,sqrt(5),pi+sqrt(5)]a23=[0,0,0,189209612611719/35184372088832-pi-5^(1/2)]【例6.1-2】把字符表达式转换为符号变量y=sym('2*sin(x)*cos(x)')y=simple(y)y=2*sin(x)*cos(x)y=sin(2*x)【例6.1-3】用符号计算验证三角
4、等式。symsfai1fai2y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2))y=sin(fai1-fai2)【例6.1-4】求矩阵的行列式值、逆和特征根symsa11a12a21a22A=[a11,a12;a21,a22]DA=det(A),IA=inv(A),EA=eig(A)A=[a11,a12][a21,a22]DA=a11*a22-a12*a21IA=[a22/(a11*a22-a12*a21),-a12/(a11*a22-a12*a21)][-a21/(a11
5、*a22-a12*a21),a11/(a11*a22-a12*a21)]EA=[1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)][1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)]19【例6.1-5】验证积分。symsAttaowyf=int(A*exp(-i*w*t),t,-tao/2,tao/2);Yf=simple(yf)Yf=2*A*sin(1/2*tao*w)/w6.2符
6、号计算中的算符和基本函数(1)基本运算符矩阵算符+-*/^元素对元素算符.*./..^6.2.1识别对象类别的指令【例6.1-6】数据对象及其识别指令的使用。clear,a=1;b=2;c=3;d=4;Mn=[a,b;c,d]Mc='[a,b;c,d]'Ms=sym(Mc)Mn=1234Mc=[a,b;c,d]Ms=[a,b][c,d](1)判断矩阵的大小SizeMn=size(Mn),SizeMc=size(Mc),SizeMs=size(Ms)SizeMn=22SizeMc=19SizeMs=2219(2)用cl
7、ass获得每种矩阵的类别CMn=class(Mn),CMc=class(Mc),CMs=class(Ms)CMn=doubleCMc=charCMs=sym(3)用isa判断矩阵的类别isa(Mn,'double'),isa(Mc,'char'),isa(Ms,'sym')ans=1ans=1ans=1(4)利用whos观察内存变量的类别和其它属性whosMnMcMsNameSizeBytesClassMc1x918chararrayMn2x232doublearrayMs2x2408symobjectGrandtota
8、lis21elementsusing458bytes6.2.2符号表达式中自由变量的确定findsym(EXPR)确认表达式EXPR中所有"自由"符号"变量"。findsym(EXPR,N)从表达式EXPR中确认出靠x最近的N个独立变量。【例6.1-7】对独立自由符号变量的自动辨认。symsabxXY;19k=sym