matlab教程第二章课堂练习及答案.doc
Matlab教程 第二章 符号计算课堂练习1 创建符号变量有几种方法?MATLAB提供了两种创建符号变量和表达式的函数:sym和syms。sym用于创建一个符号变量或表达式,用法如x=sym(x) 及 f=sym(x+y+z),syms用于创建多个符号变量,用法如syms x y z。 f=sym(x+y+z)相当于 syms x y z f= x+y+z2 下面三种表示方法有什么不同的含义?(1)f=3*x2+5*x+2(2)f='3*x2+5*x+2'(3)x=sym('x') f=3*x2+5*x+2(1)f=3*x2+5*x+2表示在给定x时,将3*x2+5*x+2的数值运算结果赋值给变量f,如果没有给定x则指示错误信息。(2)f='3*x2+5*x+2'表示将字符串'3*x2+5*x+2'赋值给字符变量f,没有任何计算含义,因此也不对字符串中的内容做任何分析。(3)x=sym('x') f=3*x2+5*x+2表示x是一个符号变量,因此算式f=3*x2+5*x+2就具有了符号函数的意义,f也自然成为符号变量了。3 用符号函数法求解方程at2+b*t+c=0。 >> r=solve('a*t2+b*t+c=0','t') r = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2)4 用符号计算验证三角等式: sin(j1)cos(j2)-cos(j1)sin(j2) =sin(j1-j2) >> syms phi1 phi2; >> y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2) y = sin(phi1-phi2)5 求矩阵的行列式值、逆和特征根。 >> syms a11 a12 a21 a22; >> A=a11,a12;a21,a22 >> AD=det(A) % 行列式 >> AI=inv(A) % 逆 >> AE=eig(A) % 特征值 A = a11, a12 a21, a22 AD = a11*a22-a12*a21 AI = -a22/(-a11*a22+a12*a21), a12/(-a11*a22+a12*a21) a21/(-a11*a22+a12*a21), -a11/(-a11*a22+a12*a21) AE = 1/2*a11+1/2*a22+1/2*(a112-2*a11*a22+a222+4*a12*a21)(1/2) 1/2*a11+1/2*a22-1/2*(a112-2*a11*a22+a222+4*a12*a21)(1/2)6 因式分解: >> syms x; >> f=x4-5*x3+5*x2+5*x-6; >> factor(f) ans = (x-1)*(x-2)*(x-3)*(x+1)7 ,用符号微分求df/dx。 >> syms a x; >> f=a, x2, 1/x; exp(a*x), log(x), sin(x); >> df=diff(f) df = 0, 2*x, -1/x2 a*exp(a*x), 1/x, cos(x)8 求代数方程组关于x,y的解。 >> S=solve('a*x2+b*y+c=0','b*x+c=0','x','y'); >> disp('S.x=') , disp(S.x) >> disp('S.y=') , disp(S.y) S.x= -c/b S.y= -c*(a*c+b2)/b39 符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为0,2p。 >> syms t >> ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),0,pi) 10 绘制极坐标下sin(3*t)*cos(t)的图形。 >> syms t >> ezpolar(sin(3*t)*cos(t)11. 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”对象?3/7+0.1, sym(3/7+0.1), vpa(sym(3/7+0.1)a=class(3/7+0.1)%双精度b=class(sym(3/7+0.1)%符号c=class(vpa(sym(3/7+0.1),4)%符号d=class(vpa(sym(3/7+0.1)%符号12. 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是独立自由变量。sym('sin(w*t)') , sym('a*exp(-X)' ) , sym('z*exp(j*th)')a=sym('sin(w*t)');findsym(a,1) %symvar(a) 在matlab7.0中运行出错?b=sym('a*exp(-X)');findsym(b,1)c=sym('z*exp(j*th)');findsym(c,1)13. 求以下两个方程的解:(提示:关于符号变量的假设要注意)(1)试写出求三阶方程正实根的程序。注意:只要正实根,不要出现其他根。x=sym('x','positive');f=x3-44.5;x=solve(f,x)(2)试求二阶方程在时的根。a=sym('a','positive');syms x;f=x2-a*x+aa;x=solve(f,x)14. 求的符号解,并进而用该符号解求,的准确值。(提示:注意subs的使用)syms x k;f=xk;s=symsum(f,k,0,inf)a=subs(s,x,-1/3)a=subs(s,x,1/pi)a=subs(s,x,3)15. (1)通过符号计算求的导数。(2)然后根据此结果,求和。syms t;f=abs(sin(t);f1=diff(f)limit(f1,t,0,'left')limit(f1,t,pi/2)16. 求出的具有64位有效数字的积分值。(提示:int, vpa, ezplot)syms x;f=exp(-abs(x)*abs(sin(x);digits(64)a=vpa(int(f,x,-5*pi,1.7*pi),64)ezplot(f)17. 计算二重积分。syms x y;f=x2+y2;a=int(int(f,y,1,x2),x,1,2)18. 求方程的解。(提示:正确使用solve)syms x y;s=solve('x2+y2=1','x*y=2','x','y')disp('s.y'),disp(s.y),disp('s.x'),disp(s.x)19. 求一阶微分方程的解。x=dsolve('Dx=a*t2+b*t','x(0)=2');x=simple(x)20. 求微分方程的通解,并绘制任意常数为1时,如图p2-3所示的解曲线图形。(提示:通解中任意常数的替代;构造能完整反映所有解的统一表达式,然后绘图。)图 p2-3 微分方程的解曲线syms x y S;S = dsolve('Dy*y/5+x/4=0','x')ezplot(subs(y2-(S(1)2, 'C3', 1),-2,2 -2,2,2)