1、Matlab70符号计算 上机实验Matlab7.0符号计算实验报告目的本实验旨在向学生介绍一种解决专业问题的快速有效且具有强大功能的科学与工程计算软件。通过本实验,应使学生掌握的内容是:MATLAB7.0符号对象的创建和使用,MATLAB7.0任意精度的计算, MATLAB7.0符号表达式的化简和替换,MATLAB7.0符号矩阵计算,MATLAB7.0符号微积分,MATLAB7.0积分变换,MATLAB7.0符号代数方程和符号微分方程求解。该实验主要为上机实验,要求学生按要求上机实现相关的程序的设计,自己动手编写程序并验证程序的正确性。实验任务分解通过一些实例初步掌握MATLAB7.0的基本
2、符号计算功能和应用。实验任务可分解为:MATLAB7.0符号计算的基础,MATLAB7.0符号计算在高等数学中的应用,MATLAB7.0符号方程(组)求解和符号矩阵计算。实验环境介绍实验一 MATLAB7.0符号计算的基础实验目的:1. 掌握MATLAB7.0符号对象的创建和使用;2. 掌握MATLAB7.0任意精度的计算;3. 掌握MATLAB7.0符号表达式的化简和替换。实验要求:给出程序和实验结果。实验题目与结果:一、计算符号表达式在处的值,并将结果设置为以下五种精度,即分别为小数点之后1位、2位、10位、20位、50位有效数字; syms x;x=pi-1f=x+cos(x)-sin(
3、x);vpa(f,1)vpa(f,2)vpa(f,10)vpa(f,20)vpa(f,50)x = 2.1416ans = .8 ans = .76ans = .7598193629 ans = .75981936291375673509 ans = .75981936291375673508952104384661652147769927978516二、设为符号变量,试进行如下运算。 (1),(2),(3)对进行因式分解,(4)求的反函数。 syms x;f1=x4+2*x2+1;f2=x3+6*x2+3*x+5;f1+f2f1*f2factor(f1)finverse(f2) ans =
4、x4+8*x2+6+x3+3*x ans = (x4+2*x2+1)*(x3+6*x2+3*x+5) ans = (x2+1)2 Warning: finverse(x3+6*x2+3*x+5) is not unique. In sym.finverse at 43 ans = 1/2*(-60+4*x+4*(117-30*x+x2)(1/2)(1/3)+6/(-60+4*x+4*(117-30*x+x2)(1/2)(1/3)-2 三、指出下面各条语句的输出结果 f=sym(2*u); subs(f,u,2) f2=subs(f,u,u+2) a=3; subs(f2,u,a+2) subs
5、(f2,u,a+2) syms x y f3=subs(f,u,x+y) subs(f3,x,y,1,2) subs(f3,x,y,x+y,x+y) f=sym(2*u);subs(f,u,2)f2=subs(f,u,u+2)a=3; subs(f2,u,a+2)subs(f2,u,a+2)syms x yf3=subs(f,u,x+y)subs(f3,x,y,1,2)subs(f3,x,y,x+y,x+y)ans = 4 f2 = 2*(u+2)ans = 14 ans = 2*(a+2)+2) f3 = 2*x+2*yans = 6 ans = 6*x+4*y四、简化 syms x;f1=
6、x(-3)+6*x(-2)+12*x(-1)+8(1/3);simple(f1) simplify: (2*x+1)3/x3)(1/3) radsimp: (2*x+1)/x combine(trig): (1+6*x+12*x2+8*x3)/x3)(1/3) factor: (2*x+1)3/x3)(1/3) expand: (1/x3+6/x2+12/x+8)(1/3) combine: (1/x3+6/x2+12/x+8)(1/3) convert(exp): (1/x3+6/x2+12/x+8)(1/3) convert(sincos): (1/x3+6/x2+12/x+8)(1/3)
7、 convert(tan): (1/x3+6/x2+12/x+8)(1/3) collect(x): (1/x3+6/x2+12/x+8)(1/3) mwcos2sin: (1/x3+6/x2+12/x+8)(1/3) ans = (2*x+1)/x五、设a、b定义如下,试上机输出factor(a)和factor(b)的结果,并指出哪个结果才是12345678901234567890的因式分解,为什么? a=sym(12345678901234567890) b=sym(12345678901234567890) y1=factor(a) y2=factor(b)y1 = (2)*(3)2*(
8、5)*(101)*(3803)*(3607)*(27961)*(3541)y2 = (2)11*(7)*(7324703)*(117570121) 第一种正确 a=sym(12345678901234567890); b=sym(12345678901234567890); y1=factor(a) y2=factor(b) y1 = (2)*(3)2*(5)*(101)*(3803)*(3607)*(27961)*(3541) y2 = (2)11*(7)*(7324703)*(117570121)六、替换函数subs的使用。 (1)试指出下面程序中的f1、f2、f3、f4、f5的值。sym
9、s a x;f=a*sin(x)+5;f1=subs(f,sin(x),sym(y)f2=subs(f,a,x,2,sym(pi/3) f3=subs(f,a,x,2,pi/3)f4=subs(subs(f,a,2),x,0:pi/6:pi) f5=subs(f,a,x,0:6,0:pi/6:pi) syms a x;f=a*sin(x)+5;f1=subs(f,sin(x),sym(y)f2=subs(f,a,x,2,sym(pi/3) f3=subs(f,a,x,2,pi/3)f4=subs(subs(f,a,2),x,0:pi/6:pi) f5=subs(f,a,x,0:6,0:pi/6
10、:pi) f1 = a*y+5 f2 = 3(1/2)+5 f3 = 6.7321f4 = Columns 1 through 4 5.0000 6.0000 6.7321 7.0000 Columns 5 through 7 6.7321 6.0000 5.0000f5 = Columns 1 through 4 5.0000 5.5000 6.7321 8.0000 Columns 5 through 7 8.4641 7.5000 5.0000(2)试指出下面替换的结果,并说明理由。 syms x y; f=2*x+y; subs(f,x,y,x+y,x-y) syms x y; f=2
11、*x+y;subs(f,x,y,x+y,x-y) ans = 5*x-3*y因为R=subs(S,Old,New)表示用新符号变量New代替原来的符号表达式S中的变量Old。七、 创建符号变量有几种方法?答:两种Sym ()Syms八、 下面三种表示方法有什么不同的含义?(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) 定义了x后将3*x2+5*x+2的数值运算结果赋值给f(2) 表示将字符串3*x2+5*x+2赋值给f(3) 表示x 是符号变量,f=3*x2+5*x+2是符号函数,所以f也是符号变量九、 用符号计算验证三角
12、等式: sin(1)cos(2)-cos(1)sin(2) =sin(1-2) syms phi1 phi2;y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2) y = -sin(-phi1+phi2)十、 因式分解: syms x;f=x4-5*x3+5*x2+5*x-6;factor(f) ans = (x-1)*(x-2)*(x-3)*(x+1)实验二 MATLAB7.0符号计算在高等数学中的应用实验目的:1. 掌握MATLAB7.0符号计算在极限中的应用;2. 掌握MATLAB7.0符号计算在微分、积分中的应用;3. 掌握MATLAB7.0
13、符号计算在级数求和以及泰勒级数中的应用。实验要求:给出程序和实验结果。实验内容与结果:一、求在上的定积分; syms x;f=sin(x)+x;R=int(f,x,0,8) R = -cos(8)+33 二、求符号表达式的5次微分; syms x;f=sin(x)+x5;diff(f,x,5) ans = cos(x)+120三、计算 和lnx表示成log(x)lgx表示成log10(x) syms x h n;L=log(x+h)-log(x)/h;M=(1-x/n)n;limit(L,h,0)limit(M,n,inf) ans =1/x ans = exp(-x)四、1计算级数 及其前1
14、00项的部分和; syms n;S=1/n2;s1=symsum(S,1,inf)s2=symsum(S,1,100) s1 = 1/6*pi2 s2 = 158*330378*28517553859702383498543709859889432834803818131090369901/9721861444343810305896579766726231441619755839957462417827203547055179861652480002计算函数级数 syms n x;S=x/n2;s1=symsum(S,n,1,inf) s1 = 1/6*x*pi2五、(1)设求复合函数 f(
15、g(z);(2)设求复合函数 f(g(z)。(1) syms u y t x z;f1=x2/1+u;f2=cos(y+2*t);compose(f1,f2,x,y,z) ans = cos(z+2*t)2+u(2) syms u y t x z;f1=x2/1+u;f2=cos(y+2*t);compose(f1,f2,u,t,z) ans = x2+cos(y+2*z)六、计算sin(t)在t=0处的taylor级数、Fourier变换和Laplace变换。 syms t w s;f=sin(t);s1=taylor(f)fw=fourier(f,t,w)fs=laplace(f,t,s)
16、 s1 = t-1/6*t3+1/120*t5 fw = i*pi*(dirac(w+1)-dirac(w-1) fs = 1/(s2+1)七、计算的和。 syms x y;z=y*x+3*y2*x+2*y3;a=diff(z,y)b=diff(a,x) a = x+6*y*x+6*y2 b = 1+6*y八、 因式分解: syms x ;f=x4-5*x3+5*x2+5*x-6;R=factor(f) R = (x-1)*(x-2)*(x-3)*(x+1)九 符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为0,2。 syms t;x=
17、sin(3*t)*cos(t);y=sin(3*t)*sin(t);ezplot(x,y,0,2*pi)十、,用符号微分求df/dx。 syms a x;f=a,x2,1/x;exp(a*x),log(x),sin(x);diff(f,x) ans = 0, 2*x, -1/x2 a*exp(a*x), 1/x, cos(x)实验三 MATLAB7.0符号方程(组)求解和符号矩阵计算实验目的:1. 掌握MATLAB7.0符号代数方程和符号代数方程组求解;2. 掌握MATLAB7.0符号符号微分方程和符号微分方程组求解;3. 掌握MATLAB7.0符号矩阵计算。实验要求:给出程序和实验结果。实验
18、题目与结果:一、使用sym函数生成如下符号矩阵,试对这两个符号矩阵分别进行如下操作。(1)(2)(3)求的行列式(4)求的逆(5)求的秩(6)求 syms x;a=sym(1/x,1/(x+1);1/(x+2),1/(x+3);b=sym(x,1;x+2,0);s1=a-bs2=a*bs3=det(a)s4=inv(b)s5=rank(a)s6=a3 s1 = 1/x-x, 1/(x+1)-1 1/(x+2)-x-2, 1/(x+3) s2 = 1+1/(x+1)*(x+2), 1/x 1/(x+2)*x+1/(x+3)*(x+2), 1/(x+2) s3 = 2/x/(x+3)/(x+1)/
19、(x+2) s4 = 0, 1/(x+2) 1, -1/(x+2)*x s5 = 2 s6 = 1/x*(1/x2+1/(x+1)/(x+2)+1/(x+1)*(1/(x+2)/x+1/(x+3)/(x+2), 1/x*(1/x/(x+1)+1/(x+1)/(x+3)+1/(x+1)*(1/(x+1)/(x+2)+1/(x+3)2) 1/(x+2)*(1/x2+1/(x+1)/(x+2)+1/(x+3)*(1/(x+2)/x+1/(x+3)/(x+2), 1/(x+2)*(1/x/(x+1)+1/(x+1)/(x+3)+1/(x+3)*(1/(x+1)/(x+2)+1/(x+3)2)二、求解非
20、线性方程组 S=solve(x-0.7*sin(x)-0.2*cos(y)=0,y-0.7*cos(x)-0.2*sin(y)=0,x,y)S.xS.yS = x: 1x1 sym y: 1x1 symans = .44415725748356642278916008786253 ans = .77152736448567154642848671505449三、已知,求该方程的解。 a=dsolve(D2y+2*Dy+2*y=0,y(0)=1,Dy(0)=1); sy=simple(a)sy =exp(-t)*(2*sin(t)+cos(t) expand(sy) ans = 2/exp(t)
21、*sin(t)+1/exp(t)*cos(t)四、用符号函数法求解方程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)五、 用符号计算验证三角等式: sin(1)cos(2)-cos(1)sin(2) =sin(1-2)syms phi1 phi2; y=simple(sin(p1)*cos(p2)-cos(p1)*sin(p2) y =-sin(-p1+p2) z=sin(p1-p2)z =-sin(-p1+p2)六、 求矩阵的行列式值、逆和特征根。syms
22、 a11 a12 a21 a22; A=a11,a12;a21,a22A = a11, a12 a21, a22 AD=det(A)AD =a11*a22-a12*a21AI=inv(A)AI = a22/(a11*a22-a12*a21), -a12/(a11*a22-a12*a21) -a21/(a11*a22-a12*a21), a11/(a11*a22-a12*a21) AE=eig(A)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+a2
23、22+4*a12*a21)(1/2)七、,用符号微分求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) 八、绘制极坐标下sin(3*t)*cos(t)的图形。syms t; ezpolar(sin(3*t)*cos(t)九、求代数方程组关于x,y的解。 syms x y; S=solve(a*x2+b*y+c=0,b*x+c=0,x,y); disp(S.x)S.x disp(S.x)-c/b disp(S.y)S.y disp(S.y)
24、-c*(a*c+b2)/b3十、求解微分方程(组)1、 syms x y; dsolve(Dy-a*x=0,x)ans =1/2*a*x2+C12、 syms f t; dsolve(Df-f-sin(t)=0,t)ans =-1/2*cos(t)-1/2*sin(t)+exp(t)*C13、 syms x y; dsolve(Dy2+y2-1=0,x)ans = 1 -1 sin(x-C1) -sin(x-C1)4、 syms x y; dsolve(Dy=a*y,y(0)=b,x)ans =b*exp(a*x)5、 syms a x y; dsolve(D2y=-a2*y,y(0)=1,Dy(pi/a)=0,x)ans =cos(a*x)6、 syms x y t; dsolve(Dx=y,Dy=-x,x,y,t)ans = x: 1x1 sym y: 1x1 sym7、syms x y ;dsolve(Dy2+y2=1,y(0)=0,x)ans = sin(x) -sin(x)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1