1、1MATLAB 程序设计与应用(第二版)实验参考答案%实验一 MATLAB 运算基础%第一题%(1 )z1=2*sin(85*pi/180)/(1+exp(2)%(2 )x=2,1+2i;-0.45,5;z2=0.5*log(x+sqrt(1+x.2)%(3)a=-3.0:0.1:3.0;z3=(exp(0.3*a)-exp(-0.3*a)/2.*sin(a+0.3)+log(0.3+a)/2)%(4)t=0:0.5:2.5;z4=t.2.*(t=0elseif x=80disp(B);elseif x=70disp(C);elseif x60disp(D);elsedisp(E);enden
2、d%第二题程序二:s=input(请输入一个成绩(0 分到 100分之间):); %s 用于存放成绩while 1 %判断输入成绩的合理性if s100disp(输入的成绩需在 0 到 100之间,请重新输入:)s=input(请输入一个成绩(0分到 100 分之间):);else3break;%第二题程序二:s=input(请输入一个成绩(0 分到 100分之间):); %s 用于存放成绩while 1 %判断输入成绩的合理性if s100disp(输入的成绩需在 0 到 100之间,请重新输入:)s=input(请输入一个成绩(0分到 100 分之间):);elsebreak;%第三题n=
3、input(请输入员工工号:);h=input(该员工工作时数是:);if h120x=(h-120)*84*(1+0.15)+120*84;elseif h5disp(超出了矩阵的行数,矩阵的最后一行为:)a(5,:)elsedisp(矩阵的第,num2str(n),行为:)a(n,:)end%实验四 循环结构程序设计%第一题程序一s=0;n=input(n=?);for i=1:ns=s+1/i/i;endPI=sqrt(6*s)pi%第一题程序二n=input(n=?);a=1:n;b=1./a.2;PI=sqrt(6*sum(b)pi%第二题y=0;n=1;while(y1e-5Xn=
4、Xn1;Xn1=a/(b+Xn);n=n+1;if n=500break;endendnXn1r1=(-b+sqrt(b*b+4*a)/2r2=(-b-sqrt(b*b+4*a)/2%第四题for i=1:100if i=1f(i)=1;elseif i=2f(i)=0;elseif i=3f(i)=1;elsef(i)=f(i-1)-2*f(i-2)+f(i-3);endendmax(f)min(f)sum(f)length(find(f0)length(find(f=0)length(find(f0.5n=n+1;endendp=n/30000%第二题%(1)A=45+51*rand(10
5、0,5);Y,U=max(A)a,b=min(A)%(2)m=mean(A)s=std(A)%(3)sum(A,2)Y,U=max(ans)a,b=min(ans)%(4)zcj,xsxh=sort(ans)%第三题h=6:2:18;x=6.5:2:17.5;t1=18,20,22,25,30,28,24;t2=15,19,24,28,34,32,30;T1=spline(h,t1,x)T2=spline(h,t2,x)%第四题x=1:0.1:101;y1=log10(x);p=polyfit(x,y1,5)y2=polyval(p,x);plot(x,y1,:,x,y2,-)%第五题%(1)
6、p1=1,2,4,0,5;p2=1,2;p3=1,2,3;p=p1+0,conv(p2,p3) %为使两向量大小相同,所以补 0%(2)A=roots(p)%(3)A=-1,1.2,-1.4;0.75,2,3.5;0,5,2.5;polyval(p,A)%(4)polyvalm(p,A)实验十程序:x=sym(6);y=sym(5);z=(x+1)/(sqrt(3+x)-sqrt(y)1、 分解因式(1)程序:syms x y;A=x4-y4;factor(A)(2)程序:factor(sym(5135)3、化简表达式(1)程序:syms beta1 beta2y=sin(beta1)*cos
7、(beta2)-cos(beta1)*sin(beta2)simple(y)(2)程序:8syms xy=(4*x2+8*x+3)/(2*x+1)simple(y)5、用符号方法求下列极限或导数(1)程序:syms xf=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)/(sin(x)limit(f)(2)程序:syms xy=(sqrt(pi)-sqrt(acos(x)/(sqrt(x+1);limit(f,x,-1,right)(3) 程序:syms xy=(1-cos(2*x)/x;y1=diff(y)y2=diff(y,x,2)6、用符号方法求下列积分(1)程序:s
8、yms xf=1/(1+x4+x8)int(f)(2)程序:syms xf=1/(asin(x)2)*sqrt(1-x2)int(f)(3)程序:syms xf=(x2+1)/(x4+1)int(f,x,0,inf)(4)程序:syms xf=exp(x)*(1+exp(x)2y=int(f,x,0,log(2)double(y)实验十一 级数与方程符号求解1. 级数符号求和。(1) 计算 。(2) 求级数 的和函数,并求 之和。解:M 文件:clear all;clc;n=sym(n);x=sym(x);S1=symsum(1/(2*n-1),n,1,10)S2=symsum(n2*x(n-
9、1),n,1,inf)S3=symsum(n2/5n,n,1,inf) %vpa(S3)可以转化成小数运行结果:S1 =31037876/14549535S2 =piecewise(abs(x) 0 %非齐次方程组if rank(A)=rank(A,b)if rank(A)=n disp(有唯一解 x);x=Ab;else disp(有无穷个解,特解 x,基础解系 y);x=Ab;y=null(A,r);endelsedisp(无解);x= ;endelse %齐次方程组disp(有零解 x);x=zeros(n,1); if rank(A) In line_solution at 11x =
10、-2/11 10/11 0 0 y =1/11 -9/11 -5/11 1/11 1 0 0 1 所以原方程组的通解是:,其中 为任意常数。5. 求代数方程的数值解。(1) 3x+sinx-ex=0 在 x0=1.5 附近的根。(2) 在给定的初值 x0=1,y0=1 ,z0=1 下,求方程组的数值解。解:M 文件:function g=f(x)g=3*x+sin(x)-exp(x);clc;clear;fzero(f,1.5) 结果是:ans =1289/682 (2). M 文件: function F=fun(X)x=X(1);y=X(2);z=X(3);F(1)=sin(x)+y2+log(z)-7;F(2)=3*x+2-z3+1;F(3)=x+y+z-5;X=fsolve(myfun,1,1,1,optimset(Display,off)运行结果:6. 求函数在指定区间的极值。(1) 在(0,1)内的最小值。(2) 在0,0附近的最小值点和最小值。解:M 文件:function f=g(u)x=u(1); y=u(2); f=2*x.3+4*x.*y3-10*x.*y+y.2;