MATLAB第五章作业

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档