预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验五M文件和MATLAB程序设计 一、实验目的 matlab作为一种高级计算机语言,不仅可以命令行方式完成操作,也具有数据结构、控制流、输入输出等能力,本次实验通过熟悉和掌握m文件的建立与使用方法,以及函数与控制程序流程语句的使用,使学生具备一定的编程和程序调试能力。 1.掌握M文件的使用方法。 2.掌握if语句和switch语句的使用 3.掌握循环语句的使用 4.通过练习理解MATLAB编程方法。 二、实验原理 1.m文件 用matlab语言编写的程序,称为m文件。M文件根据调用方式的不同分为两类,命令文件(Scriptfile)和函数文件(Functionfile)。区别? 2.程序控制结构 顺序结构 选择结构 if语句a)单分支if语句b)双分支if语句c)多分支if语句 switch语句 try语句 循环结构 for语句 while语句 break语句、continue语句、return使用,区别? 3.函数文件 function输出形参表=函数名(输入形参表) 注释说明部分 函数体语句 注意事项? 三、实验要求 1.首先上机练习PPT中各种流程控制语句的有关实例。 2.然后上机练习下面的实验习题。 四、实验习题 1.数论中一个有趣的题目:任意一个正整数,若为偶数,则用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,8,9等数来验证这一结论。 %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 Entern,negativequits: 2.编程求满足0的最小m值。 a=0; i=1; while(a<100000) a=a+pow2(i); i=i+1; end m=i-1 3.编写一个函数,计算下面函数的值,给出x的值,调用该函数后,返回y的值。 function[y]=myfun1(x) 选择一些数据测试你编写的函数。 functiony=myfun1(x) ifx<=0 y=sin(x); elseifx>0&x<=3 y=x; elseifx>3 y=-x+6; end 运行结果: 4.用如下迭代公式求,迭代的终止条件为,迭代初值,迭代次数不超过100次。分别对迭代结果和准确值进行比较,并统计迭代次数。迭代公式: function[x,n]=sqrt_a(a) x=1.0; fork=1:100 m=x; x=x/2+a/(2*x); ifabs(x-m)<=10^(-5) break end end x; n=k; s=(x-sqrt(a)); ifabs(s)<=10^(-5) disp('正确'); else disp('错误'); end 下面调用举例: 运行结果: >>[x,n]=sqrt_a(3) 正确 x= 1.7321 n= 5 >>[x,n]=sqrt_a(17) 正确 x= 4.1231 n= 6 >>[x,n]=sqrt_a(113) 正确 x= 10.6301 n= 8 5.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。 程序设计: function[elnsc]=num(x) e=exp(x) ln=log(x) s=sin(x) c=cos(x) end 运行结果: >>num(5i) e= 0.2837-0.9589i ln= 1.6094+1.5708i s= 0+74.2032i c= 74.2099 ans= 0.2837-0.9589i 6.设f(x)=,编写一个MATLAB函数文件fx.m,使得调用f(x)时,x可用矩阵代入,得出的f(x)为同阶矩阵。 程序设计: 函数文件fx.m: functionA=fx(x) A=1./((x-2).^2+0.1)+1./(((x-3).^4)+0.01) end 调用fx.m的命令文件: >>A=fx([12;23;43]) 运行结果: A= 0.971610.9901 10.9901100.9091 1.2340100.9091 7.已知y= 当f(n)=n+10ln(+5)时,求y的值。 函数文件fn.m: functionx=fn(n) x=n+10*log(n^2+5) end 调用fn.m的命