1、第2章 符号运算习题2及解答1 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”符号对象? 3/7+0.1; sym(3/7+0.1); sym(3/7+0.1); vpa(sym(3/7+0.1)目的l 不能从显示形式判断数据类型,而必须依靠class指令。解答c1=3/7+0.1c2=sym(3/7+0.1)c3=sym(3/7+0.1)c4=vpa(sym(3/7+0.1)Cs1=class(c1)Cs2=class(c2)Cs3=class(c3)Cs4=class(c4) c1 = 0.5286c2 =37/70c3 =0.5285714285714285
2、7142857142857143c4 =0.52857142857142857142857142857143Cs1 =doubleCs2 =symCs3 =symCs4 =sym 2 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是自由符号变量.sym(sin(w*t),sym(a*exp(-X),sym(z*exp(j*th)目的l 理解自由符号变量的确认规则。解答symvar(sym(sin(w*t),1) ans =w symvar(sym(a*exp(-X),1) ans =a symvar(sym(z*exp(j*th),1) ans =z 5求符号矩阵的行列式值和逆,所
3、得结果应采用“子表达式置换”简洁化。目的l 理解subexpr指令。解答A=sym(a11 a12 a13;a21 a22 a23;a31 a32 a33)DA=det(A)IA=inv(A);IAs,d=subexpr(IA,d) A = a11, a12, a13 a21, a22, a23 a31, a32, a33DA =a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31IAs = d*(a22*a33 - a23*a32), -d*(a12*a33 - a13*a32),
4、d*(a12*a23 - a13*a22) -d*(a21*a33 - a23*a31), d*(a11*a33 - a13*a31), -d*(a11*a23 - a13*a21) d*(a21*a32 - a22*a31), -d*(a11*a32 - a12*a31), d*(a11*a22 - a12*a21)d =1/(a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31) 8(1)通过符号计算求的导数。(2)然后根据此结果,求和。目的l diff, limit指令的应用。l
5、 如何理解运行结果。解答syms ty=abs(sin(t)d=diff(y) %求dy/dtd0_=limit(d,t,0,left) %求dy/dt|t=0-dpi_2=limit(d,t,pi/2) %求dy/dt|t=pi/2 y =abs(sin(t)d =sign(sin(t)*cos(t)d0_ =-1dpi_2 =0 9求出的具有64位有效数字的积分值。目的l 符号积分的解析解和符号数值解。l 符号计算和数值计算的相互校验。解答(1)符号积分syms x clearsyms xy=exp(-abs(x)*abs(sin(x)si=vpa(int(y,-10*pi,1.7*pi)
6、,64) y =abs(sin(x)/exp(abs(x)si =1.087849499412904913166671875948174520895458535212845987519414166 (2)数值计算复验xx=-10*pi:pi/100:1.7*pi;sn=trapz(exp(-abs(xx).*abs(sin(xx)*pi/100 sn = 1.0877 10计算二重积分。目的l 变上限二重积分的符号计算法。解答syms x yf=x2+y2;r=int(int(f,y,1,x2),x,1,2) r =1006/105 11在区间,画出曲线,并计算。目的l 在符号计算中,经常遇到
7、计算结果是特殊经典函数的情况。l 如何应用subs获得超过16位有效数字的符号数值结果。l 初步尝试ezplot指令的简便。解答(1)符号计算syms t x;f=sin(t)/t;y=int(f,t,0,x)% 将得到一个特殊经典函数y5=subs(y,x,sym(4.5)ezplot(y,0,2*pi) y =sinint(x)y5 =1.6541404143792439835039224868515 (2)数值计算复验tt=0:0.001:4.5;tt(1)=eps;yn=trapz(sin(tt)./tt)*0.001 yn = 1.6541 12在的限制下,求的一般积分表达式,并计算
8、的32位有效数字表达。目的l 一般符号解与高精度符号数值解。解答syms xsyms n positivef=sin(x)n;yn=int(f,x,0,pi/2) y3s=vpa(subs(yn,n,sym(1/3)y3d=vpa(subs(yn,n,1/3) yn =beta(1/2, n/2 + 1/2)/2y3s =1.2935547796148952674767575125656y3d =1.2935547796148951782413405453553 13有序列,(在此,),求这两个序列的卷积。目的l 符号离散卷积直接法和变换法。解答(1)直接法syms a b k nx=ak;h
9、=bk;w=symsum(subs(h,k,n)*subs(x,k,k-n),n,0,k)%据定义y1=simple(w)w =piecewise(a = b, bk + bk*k, a b, (a*ak - b*bk)/(a - b)y1 =piecewise(a = b, bk + bk*k, a b, (a*ak - b*bk)/(a - b) (2)变换法(复验)syms zX=ztrans(ak,k,z);H=ztrans(bk,k,z);y2=iztrans(H*X,z,k)%通过Z变换及反变换 y2 =piecewise(b 0, (a*ak)/(a - b) - (b*bk)/
10、(a - b) 说明l 符号计算不同途径产生的结果在形式上有可能不同,而且往往无法依靠符号计算本身的指令是它们一致。此时,必须通过手工解决。15求的Fourier变换。目的l 符号变量限定性定义的作用。l fourier指令的应用。解答syms A t wa=sym(a,positive);f=A*exp(-a*abs(t);y=fourier(f,t,w)F=simple(y) y =(2*A*a)/(a2 + w2)F =(2*A*a)/(a2 + w2) 17求的Laplace反变换。解答syms s t F=(s+3)/(s3+3*s2+6*s+4);f=simple(ilaplace
11、(F,s,t) f =(3(1/2)*sin(3(1/2)*t) - 2*cos(3(1/2)*t) + 2)/(3*exp(t) 19求的Z变换表达式。目的l 注意:变换中,被变换变量的约定。解答syms lambda k T z;f_k=k*exp(-lambda*k*T);F_z=simple(ztrans(f_k,k,z) F_z =(z*exp(T*lambda)/(z*exp(T*lambda) - 1)2 20求方程的解。目的l solve指令中,被解方程的正确书写,输出量的正确次序。解答eq1=x2+y2=1;eq2=x*y=2;x,y=solve(eq1,eq2,x,y) x
12、 = (1/2 + (15(1/2)*i)/2)(1/2)/2 - (1/2 + (15(1/2)*i)/2)(3/2)/2 - (1/2 + (15(1/2)*i)/2)(1/2)/2 + (1/2 + (15(1/2)*i)/2)(3/2)/2 (1/2 - (15(1/2)*i)/2)(1/2)/2 - (1/2 - (15(1/2)*i)/2)(3/2)/2 - (1/2 - (15(1/2)*i)/2)(1/2)/2 + (1/2 - (15(1/2)*i)/2)(3/2)/2y = (1/2 + (15(1/2)*i)/2)(1/2) -(1/2 + (15(1/2)*i)/2)(
13、1/2) (1/2 - (15(1/2)*i)/2)(1/2) -(1/2 - (15(1/2)*i)/2)(1/2) 23求微分方程的通解,并绘制任意常数为1时解的图形。目的l 理解指令dsolve的正确使用。l 对dsolve输出结果的正确理解。l ezplot指令绘图时,如何进行线色控制。l 如何覆盖那些不能反映图形窗内容的图名。解答(1)求通解reset(symengine)clearsyms y xy=dsolve(0.2*y*Dy+0.25*x=0,x) y = 2(1/2)*(C3 - (5*x2)/8)(1/2) -2(1/2)*(C3 - (5*x2)/8)(1/2) (2)
14、根据所得通解中不定常数的符号写出“对其进行数值替代的指令”yy=subs(y,C3,1) %将通解中的C3用1代替 yy = 2(1/2)*(1 - (5*x2)/8)(1/2) -2(1/2)*(1 - (5*x2)/8)(1/2) (3)观察通解中两个分解的平方是否相同yy(1)2=yy(2)2 ans = 1 (4)于是可考虑函数的平方关系syms Yfxy=Y2-yy(1)2 fxy =Y2 + (5*x2)/4 - 2 (5)根据平方关系式画完整曲线clfezplot(fxy,-2,2,-2,2)axis squaregrid on (6)假如直接用“分解”画曲线,那么将是不完整的
15、ezplot(yy(1),hold oncc=get(gca,Children);set(cc,Color,r)ezplot(yy(2),axis(-2 2 -2 2)legend(y(1),y(2),hold off;title( )%覆盖不完全的图名gridaxis square 24求一阶微分方程的解。目的l 初值微分方程的符号解。l pretty指令的使用。解答x=dsolve(Dx=a*t2+b*t,x(0)=2,t)pretty(x)%比较易读的表达形式 x =(t2*(3*b + 2*a*t)/6 + 2 2 t (3 b + 2 a t) - + 2 6 25求边值问题的解。(注意:相应的数值解法比较复杂)。目的l 边值微分方程的符号解。解答f,g=dsolve(Df=3*f+4*g,Dg=-4*f+3*g,f(0)=0,g(0)=1) f =sin(4*t)*exp(3*t)g =cos(4*t)*exp(3*t) 8