资源描述:
《实验五m文件和matlab程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验五M文件和MATLAB程序设计一、实验目的matlab作为一种高级计算机语言,不仅可以命令行方式完成操作,也具有数据结构、控制流、输入输出等能力,本次实验通过熟悉和掌握m文件的建立与使用方法,以及函数与控制程序流程语句的使用,使学生具备一定的编程和程序调试能力。1.掌握M文件的使用方法。2.掌握if语句和switch语句的使用3.掌握循环语句的使用4.通过练习理解MATLAB编程方法。二、实验原理1.m文件用matlab语言编写的程序,称为m文件。M文件根据调用方式的不同分为两类,命令文件(Scriptfile)和函数文件(Functionfile)
2、。区别?2.程序控制结构1)顺序结构2)选择结构(1)if语句a)单分支jf语句b)双分支if语句c)多分支if语句(2)switch语句(1)try语句1)循环结构(1)for语句(2)while语句(3)break语句、continue语句、return使用,区别?1.函数文件function输出形参表=函数名(输入形参表)注释说明部分函数体语句三、实验要求1.首先上机练习PPT屮各种流程控制语句的有关实例。2.然后上机练习下面的实验习题。四、实验习题1.数论中一个有趣的题B:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此
3、过程,最终得到的结果为1。如:2?13?10?5?16?8?4?2?16?3?10?5?16?8?4?2?1运行下面的程序,按程序提示输入n=l,2,3,5,7等数來验证这一结论。%classicH3n+lHproblemfromnumbertheory.while1n=input('Entern,negativequits:');ifn<=Obreakenda=n;whilen>lifrem(n?2)==0n=n/2;elsen=3*n+l;enda=[a,n】;endaendEntern,negativequits:3a=
4、3105168421i2?100002.编程求满足?i?lm的最小m值。a=0;i=l;while(a<10000)a=a+pow2(i);i=i+l;endm=i-l;m131.编写一个函数,计算下面函数的值,给出x的值,调用该函数后,返回y的值。function[y】=myfunl(x)?sinx,?y(x)??x,??x?6z?选择一些数据测试你编写的函数。x?00?x?3x?3functiony=myfunl(x)ifx<=0y=sin(x);elseifx>0&x<=3y=x;elseifx>3y=-x+6
5、;end运行结果:>>y=myfunl(-pi/2)y=-1>>y=myfunl(O)y=0>>y=myfunl(2)y=2>>y=myfunU4)y=22.用如下迭代公式求a,a的值分别为:3,17,113。迭代的终止条件为100次。分别对迭代结果和xn?l?xn?10?5,迭代初值x0?1.0,迭代次数不超过xn?la?准确值进行比较,并统计迭代次数。迭代公式:xn?l?22xn?lfunction[x,n]=sqrt_a(a)x=1.0;fork=l:100m=x;x=x/2+a/(2*x);ifab
6、s(x-m)<=10A(-5)breakendendx;n=k;s=(x-sqrt(a));ifs<=10八(-5)disp('正确');elsedisp('错误');end下面调用鮮例:运行结果:>>[x,n]=sqrt_a(3)正确x=1.7321n=5>>[x,n]=sqrt_a(17)正确x=4.1231n=6>>[x,n]=sqrt_a(113)正确10.630181.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。程序设计:fu
7、nction[eInsc]=num(x)e=exp(x)ln=log(x)s=sin(x)c=cos(x)end运行结果:>>num(5i)e=0.2837-0.9589iIn=1.6094+1.5708i0+74.2032i74.2099ans=0.2837-0.9589i6•设f(x)=l(x?2)2??0.11,编写一个MATLAB函数文件fx.m,使?0.01(x?3)4得调用f(x)时,X可用矩阵代入,得出的f(x)为同阶矩阵。程序设计:函数文件fx.m:functionA=fx(x)A=l./((x-2).A2+0.1)+l./(
8、((x-3).A4)+0.01)end调用fx.m的命令文件:>;>A