当前位置:文档之家› 实验二MATLAB程序设计含实验报告

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

实验二 M A T L A B 程序设计一、 实验目的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.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。

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

(提示:提示输入使用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。

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

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

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

function [y]=myfun1(x)选择一些数据测试你编写的函数。

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

%classic "3n+1" problem from number theory. while 1 n=input('Enter n,negative quits:'); if n<=0breakenda=n;while n>1if rem(n,2)==0function [m_x,max_x,min_x,rms_x]=myfun2(x)方均根值(Root Mean Square)的计算公式为:用下面数据测试你写的函数:(1)x=sin(0:0.01:6*pi)(2)x=rand(1,200),得到的x 为200个(0,1)之间均匀分布的随机数。

6.根据222221......3121116n++++=π,求π的近似值。

当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.实验程序设计%1disp('一元二次方程计算器,请输入下列数值进行计算:');a=input('a=');b=input('b=');c=input('c=');if a==0 & b==0 & c~=0disp('此为恒不等式');elsed=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%2scores=input('成绩等级划分——请输入一个百分制成绩,查询划分等级:'); switch scorescase {100}rate='A+';case num2cell(90:99)rate='A';case num2cell(80:89)rate='B';case num2cell(70:79)rate='C';case num2cell(60:69)rate='D';case num2cell(0:59)rate='E';otherwisedisp('输出出错');enddisp(rate)%3%classic "3n+1" problem from number theory.while 1n=input('Enter n,negative quits:'); %输入一个非负整数if n<=0 %如果输入的数为负数,则不做操作breakenda=n; %将n的值赋值给awhile n>1 %满足条件n>1时循环下列语句if rem(n,2)==0 %当n能被2整除则n除以2n=n/2;else %如果不能被整除,则n乘以3加1n=3*n+1;enda=[a,n]; %输出数组[a,n],并对比n是否>1,大于则继续上诉循环enda %输出最后的结果aend%4 myfun1.m%-------------------clcformat compactformat long gx=input('请输入x的值:');y=tran1(x);disp('y=')disp(y)%4 tran.m%--------------------function y=myfun1(x)%当 x<=0 y=sin(x);%当 3>x>0 y=x;%当 x>3 y=-x+6;if x<=0y=sin(x);elseif 3>x>0y=x;else x>3y=-x+6;end%5 tran.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))%5 myfun2.m%----------------------x=input('平均值、最大值、最小值、均方根值的计算,请输入x的值,:'); [m_x,max_x,min_x,rms_x]=tran(x);disp('平均值为')m_xdisp('最大值为')max_xdisp('最小值为')min_xdisp('均方根值为')rms_x%6disp('(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);approximation6.实验结果及结果分析第一题一元二次方程(ax^2+bx+c=0)计算器,请输入下列数值进行计算:a=2b=1c=3x1=-0.25+1.199i,x2=-0.25-1.199i--------------------------------------一元二次方程(ax^2+bx+c=0)计算器,请输入下列数值进行计算:a=0b=0c=>> 2此为恒不等式第二题成绩等级划分——请输入一个百分制成绩,查询划分等级:111输出出错成绩等级划分——请输入一个百分制成绩,查询划分等级:55E_____________________________________________________________________ 第三题%classic "3n+1" problem from number theory.while 1n=input('Enter n,negative quits:'); %输入一个非负整数if n<=0 %如果输入的数为负数,则不做操作breakenda=n; %将n的值赋值给awhile n>1 %满足条件n>1时循环下列语句if rem(n,2)==0 %当n能被2整除则n除以2n=n/2;else %如果不能被整除,则n乘以3加1n=3*n+1;enda=[a,n]; %输出数组[a,n],并对比n是否>1,大于则继续上诉循环enda %输出最后的结果aend第四题请输入x的值:-1y=---------------------------请输入x的值:2y=2--------------------------请输入x的值:9ans =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值:100approximation =3.1321(pi^2)/6 = (1/1^2)+(1/2^2)+(1/3^2)+……+(1/n^2),求pi的近似值请输出n值:1000approximation =3.1406(pi^2)/6 = (1/1^2)+(1/2^2)+(1/3^2)+……+(1/n^2),求pi的近似值请输出n值:10000approximation =3.14157.实验中出现的问题及解决方法对函数的嵌套关系理解混乱解决:反复尝试,得出正确的嵌套关系。

相关主题