西南科技大学本科生课程备课教案
计算机技术在安全工程中的应用
              ——Matlab入门及应用
授课教师:徐中慧
班    级:
专    业:安全技术及工程
第十章 MATLAB自定义函数
课型:新授课                                   
教具:多媒体教学设备,matlab教学软件
一、目标与要求
通过解说与实例练习,掌握matlab创建函数M文件的方法
掌握matlab中全局变量与局部变量的定义与用法
通过解说与实例练习,掌握在matlab主函数M文件中创建子函数
在实例练习过程中,回顾利用伪码编写简单程序的方法
掌握通过创建matlab函数M文件解决生活中的计算问题
二、教学重点与难点
    本堂课教学的重点在于引导学生掌握matlab中函数M文件的创建及应用。本堂课的难点在于理解matlab中函数M文件主函数与子函数的区别及调用,局部变量与全局变量的定义与应用范围的区别。
三、教学方法
    本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。
1)通过讲授法向学生讲述创建matlab函数M文件的基本方法、全局变量与局部变量的定义及用法等。
2)通过运用多媒体设备现场演示matlab创建函数M文件的应用实例。
3)在掌握创建matlab函数M文件基本方法的基础上,采用练习法引导学生创建函数M文件解决实际问题。
四、教学内容
  课 后 习 题 五
(1)拉力测试装置在测试过程中,被测样本受均匀外力的作用产生形变。下图中显示的是一组拉力测试数据。根据以下公式计算应力与形变:
其中,是产生的应力,单位为lbf/in2(psi);F为施加的外力,单位为lbf;A为样本的截面积,单位为in2为产生的形变,单位为in/in;为样本的长度;为样本的原始长度。
    (a)测试样本是直径为0.505in的金属杆,根据直径可以计算出金属杆的截面积,进一步利用所提供的数据计算金属杆的应力和形变。
(b)以形变为x轴,应力为y轴,作x-y线图。用黑实线连接各数据点,并用圆圈标出各实测数据点。
(c)添加标题和坐标轴的标注。
(d)屈服应力或屈服点是指图形从陡峭的直线变成平滑曲线所对应的点,在屈服点附近测试样本的特性会发生显著变化。在屈服点之前,测试样本发生弹性形变,即当外力消失时,形变也消失,与橡皮筋类似。若继续增大外力作用,则测试样本会发生永久变形,也称塑性变形。在图中对屈服点做出标注。
拉力测试数据
负  载
长  度
负  载
长  度
0
2
7750
2.010
1650
2.002
8650
2.020
3400
2.004
9300
2.040
5200
2.006
10100
2.080
6850
fprintf格式
2.008
10400
2.120
程序代码:
%%  定义已知变量
F=[1650 3400 5200 6850 7750 8650 9300 10100 10400];
L=[2.002 2.004 2.006 2.008 2.010 2.020 2.040 2.080 2.120];
L0=2;
A=0.505^2*pi/4;
%% one
yinli=F./A
xinbian=(L-L0)./L0
%% two
plot(yinli,xinbian,'-ok')
%% three
title('应力应变变化图'),xlabel('yinli'),ylabel('xinbian')
%% four
gtext('屈服点')
(2)创建矢量x,范围在0~20 之间,步长为/100。矢量y和z分别等于
①在x-y坐标系中画出x和y的关系曲线。
②在极坐标系中画出x和y的关系曲线。
③画出x、y和z的三维曲线,并在图中添加标题和坐标轴标注。
④为了产生如下图所示的类似龙卷风的曲线应如何调整plot3中的输入参数,用comet3代替plot3绘制曲线。
%% one
x=0:pi/100:20*pi;
y=x.*sin(x);
z=x.*cos(x);
plot(x,y)
%% two
figure(2)
polar(x,y)
%% three
figure(3)
plot3(x,y,z)
xlabel('x'),ylabel('y'),zlabel('z'),title('三维曲线')
%% four
figure(4)
plot3(z,y,x)
xlabel('z'),ylabel('y'),zlabel('x'),title('三维曲线')
figure(5)
comet3(z,y,x)
(3)创建矢量x和y,数据变化范围从-5到+5,步长为0.5.用函数meshgrid将矢量x和y映射为两上新的二维矩阵X和Y,根据下述公式计算矢量Z:
1用函数mesh创建Z的三维图。
2用函数surf创建Z的三维图。比较单个输入变量和三个输入变量(X,Y,Z)时输入结果的区别。
3给输出的曲面图增加渲染阴影效果。
4绘制Z的等高线图。
5绘制Z的曲面图并加上等高线。
%% 变量定义
x=-5:0.5:5;
y=-5:0.5:5;
[X,Y]=meshgrid(x,y);
Z=sin(sqrt(X.^2+Y.^2));
%% one
mesh(Z)
%% two
figure(2)
subplot(2,2,1)
surf(Z)
subplot(2,2,2)
surf(X,Y,Z)
%% three
shading interp
%% four
subplot(2,2,3)
contour(X,Y,Z)
%% five
subplot(2,2,4)
surfc(X,Y,Z)
(1)导入课堂内容
Matlab是一种基于函数的编程语言。函数就是用户输入参数,返回输出结果的程序。Matlab的有内置函数和自定义函数。内置函数主要包括三角函数、对数函数、统计分析函数等。
Eg:  三角函数 sin、cos、asin、acos等
Eg:  sin(pi/2)      ans = 1
sin(90)      ans = 0.8940
由以上两段小程序可以看出matlab内置的三角函数 sin的输入参数形式只能是弧度,若输入角度则会显示错误的输出结果。在matlab软件的低版本内里没有自带输入参数为角度形式的内置正弦函数。
我们可以通过编写matlab自定义函数即创建函数M文件来实现这一功能。
(2)函数M文件创建的语法
自定义函数和matlab自定义函数的内置函数一样,具有相同的结构。函数中必须包括函数名、输入参数和输出结果三项。自定义函数在M文件中编写代码。第一行是函数的定义行,它应包括:
引导词  function
输出变量
函数名称
输入变量
一个函数的定义如下:
    function  output=my_function(input)
Matlab中函数的命名应遵循如下规则:
函数名必须以字母开头
可以包括字母、数字和下划线
不能使用预留的名称
长度没有限制,但是最好不要太长
由此我们可以创建函数M文件来解决前一部分的遗留问题:
function output=sin_degree(x)
output=sin(pi.*x./180);
    (3)多输入多输出函数
    自定义函数也可以有多个输入参数和输出结果。
一个函数的定义如下:
    function  [a,b,c,……]=my_function(x,y,z,……)
Eg:  余项函数rem(x,y)就是一个多输入函数。余项函数就是求除法运算中余数的函数,需要输入除数和被除数两个选项。
(4)全局变量与局部变量
全局变量是整个程序的变量。在命令窗口或脚本M文件中定义的变量都是全局变量。
函数的M文件中所有变量都称为局部变量。在命令窗口或脚本M文件中不能访问自定义函数定义的变量。同理自定义函数中也不能访问工作区定义的变量。也就是说函数必须是自包含的,即:程序中的信息仅能通过输入变量传递给函数,函数中的信息仅能通过输出变量传递给程序。
(5)查看M文件代码
Matlab中提供了两种函数类型。一种是内置函数,其程序代码是看不见的。另一种是M文件函数,它存储在程序提供的工具箱中,使用type命令可以查看M文件代码。函数sphere是Matlab中的实体模型函数,可以产生一个三维球体,查看其程序代码,输入

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。