实验5-MATLAB程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5 MATLAB 程序设计
目的和要求
(1) 熟练掌握MATLAB 的程序流程控制结构。
(2) 熟练掌握M 文件的结构。
(3) 熟练掌握函数调用和参数传递。
(4) 掌握内联函数的使用。
(5) 了解程序性能剖析窗口。
(6) 掌握利用函数句柄进行数值计算。
内容和步骤
MATLAB 的语法规则简单,编程效率高。
作为1个完整的程序语言,MATLAB 也有其各种程序流程控制、文件格式和函数调用的规则,通过函数的调用就能够组成庞大的程序,完成复杂的功能。
1、 使用程序流程控制
Fibonacci 数列的各元素为:1、1、2、3、5、8、……,满足以下关系:
11F =
21F = 12n n n F F F --=+
用M 函数文件实现,数列的元素个数为输入变量。
打开M 文件编辑器窗口的方法有以下几种。
(1) 按M 函数文件格式创建文件开头。
(2) 用while 循环实现程序功能。
在命令窗口输入调用命令,调用函数结果如下。
(3)使用for循环实现。
(4)当某个元素大于50时,退出循环结构,程序修改如下。
(5)将该.m文件生成P码文件。
将shiyan0501.m删除,重新运行该文件,结果如下。
2、使用调用函数
计算
2521
2
13(2)!
arcsin,arcsin
4316452()!(21)
n
n
x x n x
x x x
n n
+
⨯⨯
≈++++
⨯⨯⨯+
,其中1
x<。
x为输入参数,当x不满足条件就不计算,并显示提示;当21n
x+前的系数0.00001
<则循环结束。
使用主函数和子函数调用来实现各项系数的运算,主函数为计算各项和;系数
2(2)!1
2()!(21)
n n n n +作为1个子函数cal ;其中求阶乘!n 作为1个子函数
factorial 。
cal 函数调用子函数factorial ,主函数则要调用子函数cal 。
本程序是函数的嵌套调用。
(1) 子函数factorial 计算!n ,输入参数为n ,使用for 循环实现的阶乘,
输出参数为阶乘。
(2) 子函数cal 。
子函数cal 是计算系数
2(2)!1
2()!(21)
n n n n +,输入参数是n,输
出参数是计算的结果。
本函数中调用了求阶乘的子函数factorial 。
(3) 主函数shiyan0502。
求主函数计算arcsin x ,输入参数为x ,输出参数
为arcsin x 的计算结果。
当输入参数不满足条件时,退出程序。
(4)使用函数句柄。
在命令窗口使用函数句柄来调用函数。
(5)使用全局变量。
MATLAB的编程不提倡使用全局变量,此程序主要是为了查看全局变量的概念。
将n作为全局变量,子函数factorial不
修改,子函数cal程序和主函数shiyan0502修改如下。
子函数cal没有输入变量,而用全局变量n传递。
3、利用泛函命令实现数值分析
注:以函数为输入变量的命令,称为泛函命令
已知2()(sin ),0.1,0.5at f t t e b t a b -=-==,利用泛函命令求其过零点和极小值。
(1) 使用函数调用的方法。
① 创建函数shiyan0503实现上述表达式关系。
② 查看该函数的输出波形,如图S5.3所示。
图S5.3 输出波形
③ 利用函数名求过零点,在图S5.3中可以看出在0的附近有2个过零点。
④利用函数句柄求过零点。
⑤利用函数句柄求极小值,由图S5.3可知,极小值有多个,查找其中2
个。
(2
①创建内联函数f。
② 画曲线图。
③ 求过零点。
④ 求极小值。
练习:
1、编写M 脚本文件,分别使用for 和while 循环语句计算10
1i i sum i ==∑的程序。
2、编写M 函数文件,将某班学生某门课的成绩为:60、75、85、96、52、36、86、56、94、84、77,用switch 结构统计各分段的人数,并将各人的成绩变为用优、良、中、及格和不及格表示,统计人数和成绩变换都用子函数实现。
3、
4、
5、 [文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,
万事如意!]
6、。