matlab上机实验指导书(3)

matlab上机实验指导书(3)
matlab上机实验指导书(3)

《MATLAB软件与程序设计》学生上机实验任务书

姓名:许亚文

学号:12540122

班级:信息与计算科学(1)班

指导教师:郭秀婷

兰州理工大学理学院

实验二 MATLAB 程序设计

一、实验目的

1.掌握MATLAB M 文件的基本操作;

2.掌握MATLAB 程序控制结构(for 语句、if 语句、 switch 语句, while 语句);

3.掌握MATLAB 函数文件调用方法。

4.熟悉MATLAB 函数调试的基本方法。 二、实验内容

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

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

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

2.输入20个数,求其中最大数和最小数。要求分别用循环结构和调用matlab 的max 函数、min 函数来实现。

3. 2

3.0ln )3.0sin(23.03.0a

a e e y a a +++-=-,当a 取-3.0、-2.9、-2.8、-2.8、···、2.8、2.9、3.0时,求各点的函数值。要求分别用顺序结构和循环结构实现。

4.已知 )

20()30()

40(f f f y +=

(1)当f(n)=n+10ln(n 2+5)时,y 的值是多少。 (2)当f(n)=1*2+2*3+3*4+···+n*(n+1)时,y 的值是多少。

(把f(n)写成函数文件的形式,求y 的值分别用调用函数文件的方法实现)

三、实验步骤 1、编写程序。 2、调试程序。

3、写出程序运行结果。

实验报告

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

要求:

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

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

function y=chengji(m)

if m>=90&m<=100

disp('A');

elseif m>=80&m<=89

disp('B');

elseif m>=70&m<=79

disp('C');

elseif m>=60&m<=69

disp('D');

elseif m<60&m>0

disp('E');

else

disp('error');

end

end

结果:

>> chengji(-12)

error

>> chengji(88)

B

>> chengji(111)

error

(2)程序:

function y=chengji2(m)

if m>=0&m<=100

switch fix(m/10)

case{9,10}

disp('A');

case{8}

disp('B');

case{7}

disp('C');

case{6}

disp('D');

otherwise

disp('E');

end

disp('error');

end

结果:

>> chengji2(32)

E

>> chengji2(101)

error

>> chengji2(67)

D

>> chengji2(-12)

error

2.输入20个数,求其中最大数和最小数。要求分别用循环结构和调用matlab

的max函数、min函数来实现。

(1)程序:

function [b,c]=qiuzuizhi(a)

b=max(a);

c=min(a);

b=0;

c=0;

for i=1:20

if a(i)>b

b=a(i);

end

if a(i)

c=a(i);

end

end

b

c

结果:>> a=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]

a =

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

>> qiuzuizhi(a)

b =

20

c =

(2)程序:

function [b,c]=qiuzuizhi(a)

b=a(1);

c=a(1);

for i=2:20

if a(i)>b

end

if a(i)

结果:

>> a=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20] a =

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 >> qiuzuizhi(a) b = 20 c = 0

3. 2

3.0ln )3.0sin(23.03.0a

a e e y a a +++-=-,当a 取-3.0、-2.9、-2.8、-2.8、···、2.8、2.9、3.0时,求各点的函数值。要求分别用顺序结构和循环结构实现。

(1)程序:>> a=-3.0:0.1:3.0;

>> y=((exp(0.3.*a)-exp(-0.3.*a))/2).*sin(a+0.3)+log((0.3+a)/2) 结果: y =

Columns 1 through 9

0.7388 + 3.1416i 0.7696 + 3.1416i 0.7871 + 3.1416i 0.7913 + 3.1416i 0.7822 + 3.1416i 0.7602 + 3.1416i 0.7254 + 3.1416i 0.6784 + 3.1416i 0.6196 + 3.1416i Columns 10 through 18

0.5496 + 3.1416i 0.4688 + 3.1416i 0.3780 + 3.1416i 0.2775 + 3.1416i 0.1680 + 3.1416i 0.0497 + 3.1416i -0.0771 + 3.1416i -0.2124 + 3.1416i -0.3566 + 3.1416i Columns 19 through 27

-0.5104 + 3.1416i -0.6752 + 3.1416i -0.8536 + 3.1416i -1.0497 + 3.1416i -1.2701 + 3.1416i -1.5271 + 3.1416i -1.8436 + 3.1416i -2.2727 + 3.1416i -2.9837 + 3.1416i Columns 28 through 36

-37.0245 -3.0017 -2.3085 -1.8971 -1.5978 -1.3575 -1.1531 -0.9723 -0.8083

Columns 37 through 45

-0.6567 -0.5151 -0.3819 -0.2561 -0.1374 -0.0255 0.0792 0.1766 0.2663

0.3478 0.4206 0.4841 0.5379 0.5815 0.6145 0.6366 0.6474 0.6470

Columns 55 through 61

0.6351 0.6119 0.5777 0.5327 0.4774 0.4126 0.3388

(2)程序:

function [b,c]=qiuzuizhi(a)

b=max(a);

c=min(a);

b=0;

c=0;

for i=1:20

if a(i)>b

b=a(i);

end

if a(i)

c=a(i);

end

end

b

c

结果:>> qiuzhi(a)

y =

0.7388 + 3.1416i

y =

0.7696 + 3.1416i

y =

0.7871 + 3.1416i

y =

0.7913 + 3.1416i

y =

0.7822 + 3.1416i

y =

0.7602 + 3.1416i

y =

0.7254 + 3.1416i

y =

0.6784 + 3.1416i

y =

0.6196 + 3.1416i

y =

0.5496 + 3.1416i

y =

0.4688 + 3.1416i

0.3780 + 3.1416i y =

0.2775 + 3.1416i y =

0.1680 + 3.1416i y =

0.0497 + 3.1416i y =

-0.0771 + 3.1416i y =

-0.2124 + 3.1416i y =

-0.3566 + 3.1416i y =

-0.5104 + 3.1416i y =

-0.6752 + 3.1416i y =

-0.8536 + 3.1416i y =

-1.0497 + 3.1416i y =

-1.2701 + 3.1416i y =

-1.5271 + 3.1416i y =

-1.8436 + 3.1416i y =

-2.2727 + 3.1416i y =

-2.9837 + 3.1416i y =

-37.0245

y =

-3.0017

y =

-2.3085

y =

-1.8971

y =

-1.5978

y =

-1.3575

y =

y =

-0.8083 y =

-0.6567 y =

-0.5151 y =

-0.3819 y =

-0.2561 y =

-0.1374 y =

-0.0255 y =

0.0792 y =

0.1766 y =

0.2663 y =

0.3478 y =

0.4206 y =

0.4841 y =

0.5379 y =

0.5815 y =

0.6145 y =

0.6366 y =

0.6474 y =

0.6470 y =

0.6351 y =

0.6119 y =

y =

0.4774 y =

0.4126 y =

0.3388 4.已知 )

20()30()

40(f f f y +=

(1)当f(n)=n+10ln(n 2+5)时,y 的值是多少。 (2)当f(n)=1*2+2*3+3*4+···+n*(n+1)时,y 的值是多少。 (1)程序:

function fun=qiuzhi(n1,n2,n3) fun=f(n1)/(f(n2)+f(n3)); end

function f=f(n) f=n+10*log(n^2+5); end 结果:

>> qiuzhi(40,30,20) ans =

0.6390 (2)程序:

function fun=qiuzhi2(n1,n2,n3) fun=f(n1)/(f(n2)+f(n3)); end

function f=f(n) f=0;

for i=1:n

f=f+i*(i+1); end end 结果:

>> qiuzhi2(40,30,20) ans =

1.7662

相关文档
最新文档