MATLAB第五章作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章作业
1.选择题
(1)if结构的开始是“if”命令,结束是C命令。
A. End if
B. end
C. End
D. else
(2)下面的switch结构,正确的是C。
A. >>switch a case a>1
B. >>switch a
case a=1
C. >>switch a
case 1
D. >>switch a
case =1
(3)运行以下命令:
>>a=eye(5);
>>for n=a(2:end,:)
则for循环的循环次数是B。
A. 5
B. 4
C. 3
D. 1
(4)运行以下命令,则for循环的循环次数是C。
>>x=0:10;
>>for n=x
if n==5
continue
end
end
A. 10
B. 5
C. 11
D. 10
(5)运行以下命令则B。
>>a=[1 2 3]
>>keyboard
K>>a=[1 2 4];
K>>return
A. a=[1 2 3]
B. a=[1 2 4]
C. 命令窗口的提示符为“K>>”
D. 出错
(6)关于主函数,以下说法正确的是D。
A. 主函数名必须与文件名相同
B. 主函数的工作空间与子函数的工作空间是嵌套的
C. 主函数中不能定义其他函数
D. 每个函数文件中都必须有主函数
(7)当在命令窗口中输入“sin(a)”时,则对“a”的搜索顺序是D。
A. 是否内部函数→是否变量→是否私有函数
B. 是否内部函数→是否搜索路径中函数→是否私有函数
C. 是否内部函数→是否搜索路径中函数→是否当前路径中函数
D. 是否变量→是否私有函数→是否当前路径中函数
2.求分段函数
2
2
2
6,03
56,0<523
1
x x x x
y x x x x x
x x
⎧+-<≠-
⎪
=-+≠≠
⎨
⎪--
⎩
且
≤且及
,其他
的值。用if语句实现,分别输出x
=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。
解:首先编写分段函数的函数m文件:
function y=myfun(x)
if x==2||abs(x)==3||x>=5
y=x^2-x-1;
elseif x<0
y=x^2+x-6;
else
y=x^2-5*x+6;
end
然后计算分段函数的值:
x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];
l=length(x);
y=zeros(1,l);
for k=1:l
y(k)=myfun(x(k));
end
[x;y]
plot(x,y)
ans =
-5.0000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000
14.0000 11.0000 2.0000 1.0000 -0.2500 5.0000
此题也可以采用逻辑表达式定义分段函数,做法更简单。编程如下:
x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];
y1=(x==2|abs(x)==3|x>=5).*(x.^2-x-1)
y2=(x<0&x~=-3).*(x.^2+x-6);
y3=(x>=0&x<5&x~=2&x~=3).*(x.^2-5*x+6);
y=y1+y2+y3;
[x;y]
y1 =
0 11 0 1 0 5 19
ans =
-5.0000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000
14.0000 11.0000 2.0000 1.0000 -0.2500 5.0000 19.0000
当然,本题主要是考查if结构的应用。
3.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分~100分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。要求:
(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
解:第一种方法:用if结构实现。编程如下:
x=input('输入一个百分制成绩(0~100):');
if x<0||x>100
error('成绩输入错误!');
elseif x<60
disp('你的成绩为E');
elseif x<70
disp('你的成绩为D');
elseif x<80
disp('你的成绩为C');
elseif x<90
disp('你的成绩为B');
else
disp('你的成绩为A');
end
第二种方法:用switch结构实现。编程如下:
x=input('输入一个百分制成绩(0~100):');
xd=fix(x/10);
switch xd
case {0,1,2,3,4,5}
disp('你的成绩为E');
case 6
disp('你的成绩为D');
case 7
disp('你的成绩为C');
case 8
disp('你的成绩为B');
case {9,10}
disp('你的成绩为A');
otherwise
error('成绩输入错误!');
end
注:此题建议编写两个M脚本文件,然后在MATLAB命令窗口运行。如果在Notebook中直接运行input指令会产生错误。
4.根据
2
2222
1111
6123n
π
=++++
,求π的近似值。当n分别取100、1000、10000时,结
果是多少?要求:分别用循环结构和向量运算(使用sum函数)来实现。
解:第一种方法:使用循环结构。编程如下:
s=0;
for n=1:100
s=s+1/n^2;
end
pai=sqrt(6*s)
pai =
3.1321