MATLAB程序设计与应用(第二版)第4章课后题答案.doc
1.a=input('请输入一个4位数:');while (a<1000|a>9999)a=input('输入错误,请重新输入一个4位数:');endb=fix(a/1000);c=rem(fix(a/100),10);d=rem(fix(a/10),10);e=rem(a,10);b=b+7;c=c+7;d=d+7;e=e+7;b=rem(b,10);c=rem(c,10);d=rem(d,10);e=rem(e,10);g=b;b=d;d=g;g=c;c=e;e=g;a=1000*b+100*c+10*d+e;disp('加密后:',num2str(a)2.逻辑表达式法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');x=0.5:1:5.5;x1=(x>=0.5&x<1.5);x2=(x>=1.5&x<3.5);x3=(x>=3.5&x<=5.5);y1=a.*(x.2)+b.*x+c;y2=a*(sin(b)c)+x;y3=log(abs(b+c./x);y=y1.*x1+y1.*x2+y3.*x3;disp(y)if语句法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');for x=0.5:1:5.5if x>=0.5 & x<1.5 y=a.*(x.2)+b.*x+celseif x>=1.5 & x<3.5 y=a*(sin(b)c)+xelseif x>=3.5 & x<5.5 y=log(abs(b+c./x)endendswitch语句法:a=input('请输入a: ');b=input('请输入b: ');c=input('请输入c: ');for x=0.5:1:5.5switch floor(x/0.5) case 1,2 y=a.*(x.2)+b.*x+c; case 3,4,5,6 y=a*(sin(b)c)+x; case 7,8,9,10 y=log(abs(b+c./x); enddisp(y)end3.x=fix(rand(1,20)*89)+10;x1=mean(x);n=find(rem(x,2)=0 & x<x1);disp('小于平均数的偶数是:',num2str(x(n);4.(1)A=input('请输入20个数的一个行向量:');a=A(1);b=A(1);for m=A if a>=m a=m; elseif b<=m b=m; endenddisp('最小数是:',num2str(a)disp('最大数是:',num2str(b) (2)A=input('请输入20个数的一个行向量:');maxval=max(A)minval=min(A)5.s=0;for a=0:63 c=2a; s=s+c;enddisp('2的0次方到63次方的和是:',num2str(s) k=0:63n=2.ks=sum(n)6.(1)sum1=0;for n=1:100 x=(-1)(n+1)*(1/n); sum1=sum1+x;enddisp('当n取100时: sum=',num2str(sum1) sum2=0;for n=1:1000 x=(-1)(n+1)*(1/n); sum2=sum2+x;enddisp('当n取1000时: sum=',num2str(sum2) sum3=0;for n=1:10000x=(-1)(n+1)*(1/n);sum3=sum3+x;enddisp('当n取10000时:sum=',num2str(sum3)(2)sum1=0;n1=0;for n=1:2:100 x=(-1)n1*(1/n); sum1=sum1+x; n1=n1+1;enddisp('当n取100时: sum=',num2str(sum1) sum2=0;n2=0;for n=1:2:1000 x=(-1)n2*(1/n); sum2=sum2+x; n2=n2+1;enddisp('当n取1000时: sum=',num2str(sum2) sum3=0;n3=0;for n=1:2:10000x=(-1)n3*(1/n);sum3=sum3+x;n3=n3+1;enddisp('当n取10000时:sum=',num2str(sum3)(3)sum1=0;for n=1:100 x=1/(4n); sum1=sum1+x;enddisp('当n取100时: sum=',num2str(sum1) sum2=0;for n=1:1000 x=1/(4n); sum2=sum2+x;enddisp('当n取1000时: sum=',num2str(sum2) sum3=0;for n=1:10000 x=1/(4n); sum3=sum3+x;enddisp('当n取10000时:sum=',num2str(sum3)(4)sum1=1;for n=1:100 x=4*n*n/(2*n-1)/(2*n+1); sum1=sum1*x;enddisp('当n取100时: sum=',num2str(sum1) sum2=1;for n=1:1000 x=4*n*n/(2*n-1)/(2*n+1); sum2=sum2*x;enddisp('当n取1000时: sum=',num2str(sum2) sum3=1;for n=1:10000 x=4*n*n/(2*n-1)/(2*n+1); sum3=sum3*x;enddisp('当n取10000时:sum=',num2str(sum3)7.函数文件function f=fibnacci(n)if n=1 | n=2 f=1;else f=fibnacci(n-1)+fibnacci(n-2);end命令文件:shulie=;for k=1:n shulie=shulie fibnacci(k);endshulie8.function f1,f2=juzhenji(x1,x2)f1=x1*x2;f2=x1.*x2;命令文件:clear alla=input('请输入一个矩阵:');b=input('请再输入一个矩阵:(注意:两矩阵要可以相乘)');f1,f2=juzhenji(a,b);disp(f1)disp(f2)9.function sum=qiuhe(n,m)if n<=1sum=0;elsesum=nm+qiuhe(n-1,m);end命令文件:clear ally=qiuhe(100,1)+qiuhe(50,2)+qiuhe(10,-1);disp(y)10.s=0;a=12,13,14;15,16,17;18,19,20;21,22,23;for k=a for j=1:4 if rem(k(j),2)=0 s=s+k(j); end endendss = 108(2)global xx=1:2:5;y=2:2:6;sub(y);xyfunction fun=sub(z)global xz=3*x;x=x+z;x = 4 12 20y = 2 4 6