实验5-MATLAB程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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、。

相关文档
最新文档