matlab第三章课后部分答案.docx

上传人:b****8 文档编号:28365957 上传时间:2023-07-10 格式:DOCX 页数:10 大小:45.02KB
下载 相关 举报
matlab第三章课后部分答案.docx_第1页
第1页 / 共10页
matlab第三章课后部分答案.docx_第2页
第2页 / 共10页
matlab第三章课后部分答案.docx_第3页
第3页 / 共10页
matlab第三章课后部分答案.docx_第4页
第4页 / 共10页
matlab第三章课后部分答案.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

matlab第三章课后部分答案.docx

《matlab第三章课后部分答案.docx》由会员分享,可在线阅读,更多相关《matlab第三章课后部分答案.docx(10页珍藏版)》请在冰豆网上搜索。

matlab第三章课后部分答案.docx

matlab第三章课后部分答案

matlab第三章课后部分答案

习题三

3-2从键盘输入一个三位整数,将它反向输出。

如输入639,输出为936

程序如下:

m=input('请输入一个三位整数:

');

m1=fix(m/100);%求m的百位整数

m2=rem(fix(m/10),10);%求m的十位数字

m3=rem(m,10);%求m的个位数字

m=m3*100+m2*10+m1%反向输出m

3-3输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。

其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

要求:

(1)分别用if语句和switch语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

程序如下:

(1)if语句

c=input('请输入成绩:

');

ifc>=90&c<=100

disp('A成绩合理');

elseifc>=80&c<=89

disp('B成绩合理');

elseifc>=70&c<=79

disp('C成绩合理');

elseifc>=60&c<=69

disp('D成绩合理');

elseifc<60

disp('E成绩合理');

else

disp('成绩错误');

end

(2)switch语句

c=input('请输入成绩:

');

switchfix(c)

casenum2cell(90:

100)

disp('A成绩合理');

casenum2cell(80:

89)

disp('B成绩合理');

casenum2cell(70:

79)

disp('C成绩合理');

casenum2cell(60:

69)

disp('D成绩合理');

casenum2cell(0:

59)

disp('E成绩合理');

x=fix(rand(1,20)*89)+10;

x1=fix(sum(x)/20);

disp(['平均数是:

',num2str(x1)])

m=(rem(x,2)==0&x

n=find(m);

disp(['小于平均数的数是:

',num2str(x(n))]);

3-6输入20个数,求其中最大数和最小数。

要求分别用循环结构和调用MATLAB的max函数、min函数来实现。

程序如下:

主函数

c=input('请输入20个数:

')

disp('最大值是:

')

m=max(c)

disp('最小值是:

')

n=min(c)

max函数

functionm=max(a[])

m=a(1,20);

fori=2:

20

ifm>a(1,i)

m=a(1,i)

end

end

min函数

functionn=min(a[])

m=a(1,20);

fori=2:

20

ifn

n=a(1,i)

end

end

3-8当n分别取100、1000、10000时,求下列各式的值:

(1)1/1^2+1/2^2+1/3^2+···+1/n^2+···(=pi^2/6)

程序如下:

clearall

n=1:

100;

b=1./(n.*n);

c=sum(b);

disp(['当n等于100时:

',num2str(c)])

n=1:

1000;

b=1./(n.*n);

c=sum(b);

disp(['当n等于1000时:

',num2str(c)])

n=1:

10000;

b=1./(n.*n);

c=sum(b);

disp(['当n等于10000时:

',num2str(c)])

结果:

>>当n等于100时:

1.635

当n等于1000时:

1.6439

当n等于10000时:

1.6448

(2)1-1/3+1/5-1/7+···(=pi/4)

程序如下:

clearall

n=1:

100;

b=1./(4.*n-3)-1./(4.*n-1);

c=sum(b);

disp(['当n等于100时:

',num2str(c)])

n=1:

1000;

b=1./(4.*n-3)-1./(4.*n-1);

c=sum(b);

disp(['当n等于1000时:

',num2str(c)])

n=1:

10000;

b=1./(4.*n-3)-1./(4.*n-1);

c=sum(b);

disp(['当n等于10000时:

',num2str(c)])

结果:

>>当n等于100时:

0.78415

当n等于1000时:

0.78527

当n等于10000时:

0.78539

(3)1/4+1/16+1/64+···+1/4^n+···(=1/3)

程序如下:

clearall

n=1:

100;

b=1./(4.^n);

c=sum(b);

disp(['当n等于100时:

',num2str(c)])

n=1:

1000;

b=1./(4.^n);

c=sum(b);

disp(['当n等于1000时:

',num2str(c)])

n=1:

10000;

b=1./(4.^n);

c=sum(b);

disp(['当n等于10000时:

',num2str(c)])

结果:

>>当n等于100时:

0.33333

当n等于1000时:

0.33333

当n等于10000时:

0.33333

(4)···((2n)(2n)/(2n-1)(2n+1))···(=pi/2)

程序如下:

clearall

n=1:

100;

b=((2*n).*(2*n))./((2*n-1).*(2*n+1));

c=prod(b);

disp(['当n等于100时:

',num2str(c)])

n=1:

1000;

b=((2*n).*(2*n))./((2*n-1).*(2*n+1));

c=prod(b);

disp(['当n等于1000时:

',num2str(c)])

n=1:

10000;

b=((2*n).*(2*n))./((2*n-1).*(2*n+1));

c=prod(b);

disp(['当n等于10000时:

',num2str(c)])

结果:

>>当n等于100时:

1.5669

当n等于1000时:

1.5704

当n等于10000时:

1.5708

3-9若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。

例如,2*3-1=5,由于5是素数,所以2和3是亲密数对,5是亲密素数。

求[2,50]区间内:

(1)亲密数对的对数。

(2)与上述亲密数对对应的所有亲密素数之和。

程序如下:

clearall

p=0;

l=0;

H=[];

form=2:

49

a=m;

b=m+1;

c=a*b-1;

fork=1:

c

ifrem(c,k)==0

l=l+1;

end

end

ifl==2

disp(['亲密数对是','(',num2str(a),',',num2str(b),')'])

p=p+1;

H=[H,c];

end

l=0;

end

sum=sum(H);

disp(['亲密数对的个数是:

',num2str(p)])

disp(['亲密数对的和是:

',num2str(sum)])

3-10根据y=1+1/3+1/5+···+1/(2n-1),求:

(1)y<3时的最大n值。

(2)与

(1)的n值对应的y值。

程序如下:

sum=0;

forn=1:

100

sum=sum+1/(2*n-1);

ifsum>3&(sum-1/(2*n-1))<3

disp(n-1)

disp(sum-1/(2*n-1))

end

end

方法2

clearall

n=1;

y=0;

while(y<3)

x=1/(2*n-1);

n=1+n;

y=y+x;

end

disp(['y<3时n的最大值是:

',num2str(n-2)])

disp(['相应的y值是:

',num2str(y-x)])

3-12编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在命令文件中调用该函数。

程序如下:

mul函数%用于求两个矩阵的乘积和点乘

function[x,y]=mul(a,b)

x=a*b;

y=a.*b;

main%主函数

a=input('请输入一个矩阵:

');

b=input('请再输入一个矩阵:

(注意:

两矩阵要可以相乘)');

[x,y]=mull(a,b);

disp('这两个矩阵的乘积为:

');

x

disp('这两个矩阵的点乘为:

');

y

3-14先用函数的递归调用定义一个函数文件求∑I,然后调用该函数文件求∑k+∑k^2+∑1/k

程序如下:

定义一个求和函数:

functionsum=add(n,m)

ifn<1

sum=0;

else

sum=n^m+add(n-1,m);

end

主函数:

clearall

y=add(100,1)+add(50,2)+add(10,-1);

disp(y)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1