第二次上机作业

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二次上机作业

目的:

运行课本第四章及课堂上讲过的例子,掌握Matlab的流程控制语句、函数及脚本文件的编程、调试方法。

要求:1、本次作业要求全部写M文件;2题目要求未明确要求写脚本文件还是函数文件的,学生自己决定是写脚本文件还是函数文件。只要能够实现要求。

作业:

1.分析脚本M文件及函数M文件的区别。

(1)M脚本文件名不必与函数名相同;(2)M函数文件调用时需要提供函数参数,而M脚本文件只需要提供文件名;(3)M脚本文件创建的每个变量都会保存到Matlab工作区,而M函数文件只有输出结果才保存到Matlab工作区中;(4)文件格式上的一些区别。

2.分别编写脚本文件,实现以下要求:

1)求[100,999]之间能被21整除的个数。

m=0;

for n=100:999

if n/21==round(n/21)

m=m+1;

k(m)=n;

else

end

end

k,m

2)用magic(6)产生一矩阵,用至少两种方法求解其所有元素的和。(提示:1、for循环;2、sum函数)

A=magic(6)

B=sum(A)

sum(B)

q=0

for i=1:36

q=q+A(i);

end

q

3.编写函数文件,实现从键盘输入一个3位整数,将它反向输出。如639,输出为936。并调用该函数,

输入自己的学号后三位数,输出结果。

function f=xuehao(k)

k=input('请输入一个数字');

a=fix(k/100);

b=fix((k-a*100)/10);

c=k-a*100-b*10;

k=c*100+b*10+a

xuehao

请输入一个数字200

k =

2

4. 定义一个函数文件,求∑=n i m i

1,要求在函数文件中包含能够通过help 查询到的说明,说明里面必须有自己的名字学号。然后调用该函数文件求

∑∑∑===++10

1501210011k k k k k k 的值。 function s=sfun(m,n)

%20111200xieyinbin

s=0;

for k=1:n

i=k

s=s+i^m

end qiuhe(1,100)+qiuhe(2,50)+qiuhe(-1,10)

ans =

4.7978e+004

5. 已知)

7.1cos(12

ln

)7.1sin(++++=x x x y π,当x 取-3.0,-2.9,-2.8,…,2.8,2.9,3.0时, 1) 求各点的函数值;

2) 求这些数据的平均值;

function y=mao(x)

s=0,n=0;

for x=-3:0.1:3

y=(sin(x+1.7)*log((pi+x)/2))/(1+cos(x+1.7));

n=n+1;

s=y+s;

end

k=s/n

mao(-3)

s = 0

k = 0.1616

ans =-1.1359

6.求分段函数的值。

222603565231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩

, 且, 0且及, 其它

用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5时的值。

function y=fu(x)

if x<0&x~=3

y=x^2+x-6

elseif x<5&x>=0&x~=2&x~=3

y=x^2-5*x+6

else

y=x^2-x-1

end

y=fu(0)

y = 6

>> y=fu(-5)

y =14

y =14

>> y=fu(-3)

y = 0

y = 0

>> y=fu(1)

y = 2

y = 2

>> y=fu(2)

y = 1

y = 1

>> y=fu(2.5)

y = -0.2500

y = -0.2500

7、输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。

要求:分别用if 语句和switch 语句实现。

switch

m=input('请输入一个数字:')

m=fix(m/10);

switch m

case {9,10}

disp('A')

case 8

disp('B')

case 7

disp('C')

case 6

disp('D')

case {5,4,3,2,1,0}

disp('E')

end

if

m=input('请输入一个数字:') m=fix(m/10);

if m>=9

disp('A')

elseif m>=8&m<9

disp('B')

elseif m>=7&m<8

disp('C')

elseif m>=6&m<7

disp('D')

else

disp('E')

end

8、根据

2

2222

1111

...,

6123n

π

π

=++++求的近似值。当n分别取100、1000、10000时,结果是多少?(要

求:分别用循环结构和向量运算来实现)clear

n=input('请输入n的值');

s=0;

for i=1:n

s=s+1/i^2;

end

y=sqrt(6*s)

请输入n的值1000

y = 3.1406

clear

n=input('请输入n的值');

s=0;

for i=1:n

s=s+1/i^2;

end

y=sqrt(6*s)

请输入n的值10000

y =3.1415

相关文档
最新文档