D实验五 M文件和MATLAB程序设计_第1页
D实验五 M文件和MATLAB程序设计_第2页
D实验五 M文件和MATLAB程序设计_第3页
D实验五 M文件和MATLAB程序设计_第4页
D实验五 M文件和MATLAB程序设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验五 M文件和MATLAB程序设计 一、实验目的 matlab作为一种高级计算机语言,不仅可以命令行方式完成操作,也具有数据结构、控制流、输入输出等能力,本次实验通过熟悉和掌握m文件的建立与使用方法,以及函数与控制程序流程语句的使用,使学生具备一定的编程和程序调试能力。 1掌握M文件的使用方法。 2掌握if语句和switch语句的使用 3. 掌握循环语句的使用 4. 通过练习理解MATLAB编程方法。 二、实验原理 1m文件 用matlab语言编写的程序,称为m文件。M文件根据调用方式的不同分为两类,命令文件(Script file)和函数文件(Function file)。区别? 2程序控

2、制结构 1) 顺序结构 2) 选择结构 (1) if语句 a) 单分支if语句 b) 双分支if语句 c) 多分支if语句 (2) switch 语句 (3) try语句 3) 循环结构 (1) for 语句 (2) while语句 (3) break语句、continue语句、return使用,区别? 3函数文件 function 输出形参表函数名(输入形参表) 注释说明部分 函数体语句 注意事项? 三、实验要求 1首先上机练习PPT中各种流程控制语句的有关实例。 2然后上机练习下面的实验习题。 四、实验习题 1数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘

3、再加上1。重复此过程,最终得到的结果为1。如: 21 23410851 16 210851 16643运行下面的程序,按程序提示输入n=1,2,3,5,7,8,9等数来验证这一结论。 %classic n+1 problem from number theory. while 1 n=input(Enter n,negative quits:); if n1 if rem(n,2)=0 n=n/2; else n=3*n+1; end a=a,n; end a end Enter n,negative quits: m?i100002? m值。编程求满足0的最小2 1?i a=0; i=1;

4、while (a100000) a=a+pow2(i); i=i+1; end m=i-1 3 编写一个函数,计算下面函数的值,给出x的值,调用该函数后,返回 y的值。 function y=myfun1(x) 0?xsinx,?3?)x,0?xy(x?3?x?x?6,? 选择一些数据测试你编写的函数。y=myfun1(x) function if x0&x3 y=-x+6; end : 运行结果?5 10?x?xa,迭代初值用如下迭代公式求4 ,迭代的终止条件为nn?1x?1.0,迭代次数不超过100次。分别对迭代结果和准确值进行比较,并统计迭代次数。0xa1?n?x 迭代公式: 1?nx2

5、21?nfunction x, n=sqrt_a(a) x=1.0; for k=1:100 m=x; x=x/2+a/(2*x); if abs(x-m)=10(-5) break end end x; n=k; s=(x-sqrt(a); if abs(s) 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 e

6、ln s c=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 11,编写一个MATLAB函数文件fx.mf(x)=6 设 ,? 42)?3x(?2)(x010.?01?使得调用f(x)时,x可用矩阵代入,得出的f(x)为同阶矩阵。 程序设计: 函数文件fx.m: function A=fx(x) A=1./(x-2).2+0.1)+1

7、./(x-3).4)+0.01) end 调用fx.m的命令文件: A=fx(1 2;2 3;4 3) 运行结果: A = 0.9716 10.9901 10.9901 100.9091 1.2340 100.9091 f(40)y=已知 7 f(30)?f(20)当f(n)=n+10ln(+5)时,求y的值。 2n函数文件fn.m: function x=fn(n) x=n+10*log(n2+5) end 调用fn.m的命令: y=fn(40)/(fn(30)+fn(20) 运行结果: y = 0.6390 五、实验小结和心得 通过本次实验,我了解了MATLAB的工作模式和M文件的构成规则,了解了命令M文件和函数M文件的异同。会MATLAB的M文件的创建与修改,会使用函数句柄调用函数,会运用顺序结构、循环结构和分支结构进行计算机编程。会控制MATLAB的程序流,熟悉了应用程序设计的基本步骤。能对文件进行简单操作,会调试和优化所设计的程序。对应用程序接口的设计也有所了解。MATLAB语言被称为第四代编程语言,程序简洁、可读性很强,而且调试十分容易。它是MATLAB重要组成部分。通过这次试验我已

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论