实验二MATLAB程序设计含实验报告.docx

上传人:b****7 文档编号:11141365 上传时间:2023-02-25 格式:DOCX 页数:13 大小:36.05KB
下载 相关 举报
实验二MATLAB程序设计含实验报告.docx_第1页
第1页 / 共13页
实验二MATLAB程序设计含实验报告.docx_第2页
第2页 / 共13页
实验二MATLAB程序设计含实验报告.docx_第3页
第3页 / 共13页
实验二MATLAB程序设计含实验报告.docx_第4页
第4页 / 共13页
实验二MATLAB程序设计含实验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

实验二MATLAB程序设计含实验报告.docx

《实验二MATLAB程序设计含实验报告.docx》由会员分享,可在线阅读,更多相关《实验二MATLAB程序设计含实验报告.docx(13页珍藏版)》请在冰豆网上搜索。

实验二MATLAB程序设计含实验报告.docx

实验二MATLAB程序设计含实验报告

实验二MATLAB程序设计

一、实验目的

1.掌握利用if语句实现选择结构的方法。

2.掌握利用switch语句实现多分支选择结构的方法。

3.掌握利用for语句实现循环结构的方法。

4.掌握利用while语句实现循环结构的方法。

5.掌握MATLAB函数的编写及调试方法。

二、实验的设备及条件

计算机一台(带有MATLAB7.0以上的软件环境)。

M文件的编写:

启动MATLAB后,点击File|New|M-File,启动MATLAB的程序编辑及调试器(Editor/Debugger),编辑以下程序,点击File|Save保存程序,注意文件名最好用英文字符。

点击Debug|Run运行程序,在命令窗口查看运行结果,程序如有错误则改正

三、实验内容

1.编写求解方程

的根的函数(这个方程不一定为一元二次方程,因

的不同取值而定),这里应根据

的不同取值分别处理,有输入参数提示,当

时应提示“为恒不等式!

”。

并输入几组典型值加以检验。

(提示:

提示输入使用input函数)

2.输入一个百分制成绩,要求输出成绩等级A+、A、B、C、D、E。

其中100分为A+,90分~99分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。

要求:

(1)用switch语句实现。

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

(提示:

注意单元矩阵的用法)

3.数论中一个有趣的题目:

任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。

重复此过程,最终得到的结果为1。

如:

2→1

3→10→5→16→8→4→2→1

6→3→10→5→16→8→4→2→1

运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。

请为关键的Matlab语句填写上相关注释,说明其含义或功能。

%classic"3n+1"problemfromnumbertheory.

while1

n=input('Entern,negativequits:

');

ifn<=0

break

end

a=n;

whilen>1

ifrem(n,2)==0

n=n/2;

else

n=3*n+1;

end

a=[a,n];

end

a

end

 

4.编写一个函数,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。

function[y]=myfun1(x)

选择一些数据测试你编写的函数。

5.编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值。

function[m_x,max_x,min_x,rms_x]=myfun2(x)

方均根值(RootMeanSquare)的计算公式为:

用下面数据测试你写的函数:

(1)x=sin(0:

0.01:

6*pi)

(2)x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。

6.根据

,求

的近似值。

当n分别取100、1000、10000时,结果是多少?

思考题:

有一分数序列:

编写一段程序,求前16项的和。

四、实验报告要求(包含预习报告要求和最终报告要求)

最终报告要求

预习报告要求

1.实验名称

2.实验目的

3.实验设备及条件

4.实验内容及要求

5.实验程序设计

指程序代码。

6.实验结果及结果分析

实验结果要求必须客观,有数据的可以记录数据,没有数据的简单描述实验现象。

结果分析是对实验结果的理论评判。

7.实验中出现的问题及解决方法

8.思考题的回答

四、实验报告的提交方式

Word文档,命名方式:

实验号_你的学号_姓名!

!

!

例如本次实验:

实验一_000000001_张三.doc

(信息101提交报告邮箱):

E_mail:

(网络工程101提交作业邮箱):

E_mail:

M(注意网络班的M是大写的)

下一次课前提交,过期不收!

五、参考文献

参考教材和Matlab帮助文件。

1.实验名称

MATLAB程序设计

2.实验目的

1.掌握利用if语句实现选择结构的方法。

2.掌握利用switch语句实现多分支选择结构的方法。

3.掌握利用for语句实现循环结构的方法。

4.掌握利用while语句实现循环结构的方法。

5.掌握MATLAB函数的编写及调试方法。

3.实验设备及条件

计算机一台(带有MATLAB7.0以上的软件环境)。

4.实验内容及要求

把实验内容的应用题,用MATLAB的语法编写出来,并运行成功,注意题与题之间用相应注释分割。

5.实验程序设计

%1

disp('一元二次方程计算器,请输入下列数值进行计算:

');

a=input('a=');

b=input('b=');

c=input('c=');

ifa==0&b==0&c~=0

disp('此为恒不等式');

else

d=b*b-4*a*c;

x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];

disp(['x1=',num2str(x

(1)),',x2=',num2str(x

(2))]);

end

%2

scores=input('成绩等级划分——请输入一个百分制成绩,查询划分等级:

');

switchscores

case{100}

rate='A+';

casenum2cell(90:

99)

rate='A';

casenum2cell(80:

89)

rate='B';

casenum2cell(70:

79)

rate='C';

casenum2cell(60:

69)

rate='D';

casenum2cell(0:

59)

rate='E';

otherwise

disp('输出出错');

end

disp(rate)

 

%3

%classic"3n+1"problemfromnumbertheory.

while1

n=input('Entern,negativequits:

');%输入一个非负整数

ifn<=0%如果输入的数为负数,则不做操作

break

end

a=n;%将n的值赋值给a

whilen>1%满足条件n>1时循环下列语句

ifrem(n,2)==0%当n能被2整除则n除以2

n=n/2;

else%如果不能被整除,则n乘以3加1

n=3*n+1;

end

a=[a,n];%输出数组[a,n],并对比n是否>1,大于则继续上诉循环

end

a%输出最后的结果a

end

 

%4myfun1.m

%-------------------

clc

formatcompact

formatlongg

x=input('请输入x的值:

');

y=tran1(x);

disp('y=')

disp(y)

 

%4tran.m

%--------------------

functiony=myfun1(x)

%当x<=0y=sin(x);

%当3>x>0y=x;

%当x>3y=-x+6;

ifx<=0

y=sin(x);

elseif3>x>0

y=x;

elsex>3

y=-x+6;

end

 

%5tran.m

%------------------------

function[m_x,max_x,min_x,rms_x]=myfun2(x)

%分别是平均值,最大值,最小值,均方根值

m_x=mean(mean(x))

max_x=max(max(x))

min_x=min(min(x))

a=sqrt(mean(x.^2));

rms_x=sqrt(mean(a.^2))

 

%5myfun2.m

%----------------------

x=input('平均值、最大值、最小值、均方根值的计算,请输入x的值,:

');

[m_x,max_x,min_x,rms_x]=tran(x);

disp('平均值为')

m_x

disp('最大值为')

max_x

disp('最小值为')

min_x

disp('均方根值为')

rms_x

 

%6

disp('(pi^2)/6=(1/1^2)+(1/2^2)+(1/3^2)+……+(1/n^2),求pi的近似值')

approximation=0;

n=input('请输出n值:

');

 

approximation=sqrt(sum(1./(1:

n).^2)*6);

approximation

 

6.实验结果及结果分析

第一题

一元二次方程(ax^2+bx+c=0)计算器,请输入下列数值进行计算:

a=2

b=1

c=3

--------------------------------------

一元二次方程(ax^2+bx+c=0)计算器,请输入下列数值进行计算:

a=0

b=0

c=>>2

此为恒不等式

第二题

成绩等级划分——请输入一个百分制成绩,查询划分等级:

111

输出出错

成绩等级划分——请输入一个百分制成绩,查询划分等级:

55

E

_____________________________________________________________________

第三题

%classic"3n+1"problemfromnumbertheory.

while1

n=input('Entern,negativequits:

');%输入一个非负整数

ifn<=0%如果输入的数为负数,则不做操作

break

end

a=n;%将n的值赋值给a

whilen>1%满足条件n>1时循环下列语句

ifrem(n,2)==0%当n能被2整除则n除以2

n=n/2;

else%如果不能被整除,则n乘以3加1

n=3*n+1;

end

a=[a,n];%输出数组[a,n],并对比n是否>1,大于则继续上诉循环

end

a%输出最后的结果a

end

 

第四题

请输入x的值:

-1

y=

---------------------------

请输入x的值:

2

y=

2

--------------------------

请输入x的值:

9

ans=

1

y=

-3

——————————————————————————————

第五题

请输入x的值:

sin(0:

0.01:

6*pi)

平均值为

m_x=

-1.1256e-007

最大值为

max_x=

1.0000

最小值为

min_x=

-1.0000

均方根值为

rms_x=

0.7071

请输入x的值:

rand(1,200)

平均值为

m_x=

0.4969

最大值为

max_x=

0.9943

最小值为

min_x=

0.0099

均方根值为

rms_x=

0.5707

——————————————————————————————

第六题

(pi^2)/6=(1/1^2)+(1/2^2)+(1/3^2)+……+(1/n^2),求pi的近似值

请输出n值:

100

approximation=

3.1321

(pi^2)/6=(1/1^2)+(1/2^2)+(1/3^2)+……+(1/n^2),求pi的近似值

请输出n值:

1000

approximation=

3.1406

(pi^2)/6=(1/1^2)+(1/2^2)+(1/3^2)+……+(1/n^2),求pi的近似值

请输出n值:

10000

approximation=

3.1415

7.实验中出现的问题及解决方法

对函数的嵌套关系理解混乱

解决:

反复尝试,得出正确的嵌套关系。

'^'没有运行成功。

解决:

需要加符号'.',不然无法得出预期结果

8.思考题的回答

a=3;

b=2;

s=1/2;

fori=1:

15

s=s+a/b;

c=a;

a=a+b;

b=c;

end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1