收藏 分销(赏)

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

上传人:丰**** 文档编号:4361042 上传时间:2024-09-13 格式:DOC 页数:6 大小:24KB
下载 相关 举报
matlab第三章课后部分答案.doc_第1页
第1页 / 共6页
matlab第三章课后部分答案.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述
习题三 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('请输入成绩:'); if c>=90&c<=100 disp('A 成绩合理'); elseif c>=80&c<=89 disp('B 成绩合理'); elseif c>=70&c<=79 disp('C 成绩合理'); elseif c>=60&c<=69 disp('D 成绩合理'); elseif c<60 disp('E 成绩合理'); else disp('成绩错误'); end (2)switch语句 c=input('请输入成绩:'); switch fix(c) case num2cell(90:100) disp('A 成绩合理'); case num2cell(80:89) disp('B 成绩合理'); case num2cell(70:79) disp('C 成绩合理'); case num2cell(60:69) disp('D 成绩合理'); case num2cell(0:59) disp('E 成绩合理'); otherwise disp('成绩错误'); end 3-4 建立5*6矩阵,要求输出矩阵第N行元素。当N值超过矩阵得行数时,自动转为输出矩阵最后一行元素,并给出出错信息。 程序如下: clear all a=fix(rand(5,6)*89)+10; n=input('请输入行数n(输出结果就是5*6矩阵得元素):'); if n>5|n<0 b=a(5:5,:); disp(['输入行数错误,程序输出最后一行:',num2str(b)]) else c=a(n:n,:); disp(['输出结果为:',num2str(c)]) end 3-5 产生20个两位随机整数,输出其中小于平均值得偶数。 程序如下: x=fix(rand(1,20)*89)+10; x1=fix(sum(x)/20); disp(['平均数就是: ',num2str(x1)]) m=(rem(x,2)==0&x<x1); 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函数 function m=max(a[]) m=a(1,20); for i=2:20 if m>a(1,i) m=a(1,i) end end min函数 function n=min(a[]) m=a(1,20); for i=2:20 if n<a(1,i) 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) 程序如下: clear all 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) 程序如下: clear all 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) 程序如下: clear all 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) 程序如下: clear all 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)与上述亲密数对对应得所有亲密素数之与。 程序如下: clear all p=0; l=0; H=[]; for m=2:49 a=m; b=m+1; c=a*b-1; for k=1:c if rem(c,k)==0 l=l+1; end end if l==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; for n=1:100 sum=sum+1/(2*n-1); if sum>3&(sum-1/(2*n-1))<3 disp(n-1) disp(sum-1/(2*n-1)) end end 方法2 clear all 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 程序如下: 定义一个求与函数: function sum=add(n,m) if n<1 sum=0; else sum=n^m+add(n-1,m); end 主函数: clear all y=add(100,1)+add(50,2)+add(10,-1); disp(y)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服