资源描述:
《基于matlab的数值分析(4)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章符号计算4.1符号对象和符号表达式符号常数、符号变量、符号函数、符号操作等是用来形成符号表达式,严格按照代数、微积分等课程中的规则、公式进行运算,并尽可能给出解析表达式。一、符号对象的生成和使用symsargv1argv2argvksyms('argv1','argv2','argvk')f=sym(arg,flagn):flagn可取’d’,’r’f=sym(arg):缺省为’r’argv=sym('argv',flagv):flagv可取’positive’,’real’,’unreal’【例】符号常数形成中的差异
2、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-a3a1=0.33330.44882.23615.3777a2=[1/3,pi/7,sqrt(5),6054707603575008*2^(-50)]a3=[1/3,pi/7,sqrt(5),pi+sqrt(5)]a23=[0,0,0,189209612611719/35184372088832-p
3、i-5^(1/2)]注:a3是绝对准确的,a2是近似的,最接近的有理表示【例】把字符表达式转换为符号变量y=sym('2*sin(x)*cos(x)')y=simple(y)y=2*sin(x)*cos(x)y=sin(2*x)【例】用符号计算验证三角等式symsfai1fai2y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2))y=sin(fai1-fai2)【例】求矩阵的行列式值、逆和特征根symsa11a12a21a22A=[a11,a12;a21,a22]DA=det(A
4、),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*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*a
5、12*a21)^(1/2)]【例】验证积分symsAttaowyf=int(A*exp(-i*w*t),t,-tao/2,tao/2);Yf=simple(yf)Yf=2*A*sin(1/2*tao*w)/w二、符号计算中的算符和基本函数略三、识别对象类别的指令常用指令:class,isa,whos【例】数据对象及其识别指令的使用。(1)生成三种不同类型的矩阵,给出不同的显示形式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
6、,d]Ms=[a,b][c,d](2)三种矩阵的大小不同SizeMn=size(Mn),SizeMc=size(Mc),SizeMs=size(Ms)SizeMn=22SizeMc=19SizeMs=22(3)用class获得每种矩阵的类别CMn=class(Mn),CMc=class(Mc),CMs=class(Ms)CMn=doubleCMc=charCMs=sym(4)用isa判断每种矩阵的类别(若返回1,表示判断正确)isa(Mn,'double'),isa(Mc,'char'),isa(Ms,'sym')ans=1
7、ans=1ans=1(5)利用whos观察内存变量的类别和其他属性whosMnMcMsNameSizeBytesClassMc1x918chararrayMn2x232doublearrayMs2x2408symobjectGrandtotalis21elementsusing458bytes【例】对独立自由符号变量的自动辨认。(1)生成符号变量symsabxXY;k=sym('3');z=sym('c*sqrt(delta)+y*sin(theta)');EXPR=a*z*X+(b*x^2+k)*Y;(2)找出EXPR中的
8、全部自由符号变量findsym(EXPR)ans=X,Y,a,b,c,delta,theta,x,y(3)在EXPR中确定一个自由符号变量findsym(EXPR,1)ans=x(4)在EXPR中确定2个和3个自由变量时的执行情况findsym(EXPR,2),findsym(EXPR,3