《MATLAB 程序设计与应用》刘卫国高等教育出版社第4章课后答案.docx
《《MATLAB 程序设计与应用》刘卫国高等教育出版社第4章课后答案.docx》由会员分享,可在线阅读,更多相关《《MATLAB 程序设计与应用》刘卫国高等教育出版社第4章课后答案.docx(9页珍藏版)》请在冰豆网上搜索。
![《MATLAB 程序设计与应用》刘卫国高等教育出版社第4章课后答案.docx](https://file1.bdocx.com/fileroot1/2022-12/1/7192f015-254c-47f1-bdf8-4147b82261d1/7192f015-254c-47f1-bdf8-4147b82261d11.gif)
《MATLAB程序设计与应用》刘卫国高等教育出版社第4章课后答案
1.
a=input('请输入一个4位数:
');
while(a<1000|a>9999)
a=input('输入错误,请重新输入一个4位数:
');
end
b=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(c,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:
');
forx=0.5:
1:
5.5
ifx>=0.5&x<1.5
y=a.*(x.^2)+b.*x+c
elseifx>=1.5&x<3.5
y=a*(sin(b)^c)+x
elseifx>=3.5&x<5.5
y=log(abs(b+c./x))
end
end
switch语句法:
a=input('请输入a:
');
b=input('请输入b:
');
c=input('请输入c:
');
forx=0.5:
1:
5.5
switchfloor(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));
end
disp(y)
end
3.
x=fix(rand(1,20)*89)+10;
x1=mean(x);
n=find(rem(x,2)==0&xdisp(['小于平均数的偶数是:
',num2str(x(n))]);
4.
(1)
A=input('请输入20个数的一个行向量:
');
a=A
(1);
b=A
(1);
form=A
ifa>=m
a=m;
elseifb<=m
b=m;
end
end
disp(['最小数是:
',num2str(a)])
disp(['最大数是:
',num2str(b)])
(2)
A=input('请输入20个数的一个行向量:
');
maxval=max(A)
minval=min(A)
5.
s=0;
fora=0:
63
c=2^a;
s=s+c;
end
disp(['2的0次方到63次方的和是:
',num2str(s)])
k=0:
63
n=2.^k
s=sum(n)
6.
(1)
sum1=0;
forn=1:
100
x=(-1)^(n+1)*(1/n);
sum1=sum1+x;
end
disp(['当n取100时:
sum=',num2str(sum1)])
sum2=0;
forn=1:
1000
x=(-1)^(n+1)*(1/n);
sum2=sum2+x;
end
disp(['当n取1000时:
sum=',num2str(sum2)])
sum3=0;
forn=1:
10000
x=(-1)^(n+1)*(1/n);
sum3=sum3+x;
end
disp(['当n取10000时:
sum=',num2str(sum3)])
(2)
sum1=0;
n1=0;
forn=1:
2:
100
x=(-1)^n1*(1/n);
sum1=sum1+x;
n1=n1+1;
end
disp(['当n取100时:
sum=',num2str(sum1)])
sum2=0;
n2=0;
forn=1:
2:
1000
x=(-1)^n2*(1/n);
sum2=sum2+x;
n2=n2+1;
end
disp(['当n取1000时:
sum=',num2str(sum2)])
sum3=0;
n3=0;
forn=1:
2:
10000
x=(-1)^n3*(1/n);
sum3=sum3+x;
n3=n3+1;
end
disp(['当n取10000时:
sum=',num2str(sum3)])
(3)
sum1=0;
forn=1:
100
x=1/(4^n);
sum1=sum1+x;
end
disp(['当n取100时:
sum=',num2str(sum1)])
sum2=0;
forn=1:
1000
x=1/(4^n);
sum2=sum2+x;
end
disp(['当n取1000时:
sum=',num2str(sum2)])
sum3=0;
forn=1:
10000
x=1/(4^n);
sum3=sum3+x;
end
disp(['当n取10000时:
sum=',num2str(sum3)])
(4)
sum1=1;
forn=1:
100
x=4*n*n/(2*n-1)/(2*n+1);
sum1=sum1*x;
end
disp(['当n取100时:
sum=',num2str(sum1)])
sum2=1;
forn=1:
1000
x=4*n*n/(2*n-1)/(2*n+1);
sum2=sum2*x;
end
disp(['当n取1000时:
sum=',num2str(sum2)])
sum3=1;
forn=1:
10000
x=4*n*n/(2*n-1)/(2*n+1);
sum3=sum3*x;
end
disp(['当n取10000时:
sum=',num2str(sum3)])
7.
函数文件
functionf=fibnacci(n)
ifn==1|n==2
f=1;
else
f=fibnacci(n-1)+fibnacci(n-2);
end
命令文件:
shulie=[];
fork=1:
n
shulie=[shuliefibnacci(k)];
end
shulie
8.
function[f1,f2]=juzhenji(x1,x2)
f1=x1*x2;
f2=x1.*x2;
命令文件:
clearall
a=input('请输入一个矩阵:
');
b=input('请再输入一个矩阵:
(注意:
两矩阵要可以相乘)');
[f1,f2]=juzhenji(a,b);
disp(f1)
disp(f2)
9.
functionsum=qiuhe(n,m)
ifn<=1
sum=0;
else
sum=n^m+qiuhe(n-1,m);
end
命令文件:
clearall
y=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];
fork=a
forj=1:
4
ifrem(k(j),2)~=0
s=s+k(j);
end
end
end
s
s=
108
(2)
globalx
x=1:
2:
5;
y=2:
2:
6;
sub(y);
x
y
functionfun=sub(z)
globalx
z=3*x;
x=x+z;
x=
41220
y=
246