(完整版)matlab第九讲教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西南科技大学本科生课程备课教案
计算机技术在安全工程中的应用
——Matlab入门及应用
授课教师:徐中慧
班级:
专业:安全技术及工程
第九章 高级绘图
课型:新授课 教具:多媒体教学设备,matlab 教学软件
一、目标与要求
掌握matlab 如何处理三种不同类型的图形文件,使用句柄图形指定绘图的句柄并调整特性,通过matlab 两种技术的任意一种创建动画。
二、教学重点与难点
本堂课教学的重点与难点在于引导学生掌握句柄图形的使用,并掌握matlab 创建动画的方法。
三、教学方法
本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。
四、教学内容
(1)火箭垂直向上发射。在t=0时火箭发动机关闭,此时火箭的高度为海拔500,速度为125m/s ,考虑重力加速度,根据等式
2
9.8()125500,02
h t t t t =-
++f ①创建函数heigh t ,以时间为输入变量,火箭的飞行高度为输出变量。利用函数对下面的②和③进行求解。
②时间增量为0.5秒,变化范围0到30秒,画出函数height 与时间的关系曲线。 ③计算火箭开始向地面降落的时间(可以使用函数max )。 ④创建函数height 的函数句柄height_handle 。
⑤以height_handle 作为函数fplot 的输入参数,画出0到60秒内的函数曲线。
⑥用函数fzero 求火箭返回地面所用的时间(当火箭返回地面时,函数height 的值应该等于0)。fzero 是复合函数,可以用函数或函数句柄作为输入参数。调用方法如下:
fzero(function_handl e ,x_guess)
函数fzero 的两个输入参数分别是函数句柄和函数值接近0时的x 的估算值。读者可以根据绘出的曲线选择合理的x_guess 值。 ①function output=height(t)
output=-4.9.*t.^2+125.*t+500;
②
%% two t=0:0.5:30; h=height(t); plot(t,h,'o-r') hold on %% three [a,b]=max(h); t_max=t(b) %% four
height_handle=@(t) height(t);
%% five
fplot(height_handle,[0,60]);
%% six
fzero(height_handle,30)
(2)①创建匿名函数my_function,计算下式:
253x
---+
x x e
②用函数fplot画出x在-5到+5之间的函数曲线。函数句柄可以作为函数fplot的输入参数。
③在此x范围内,用函数fminbnd求函数的最小值。fminbnd是复合函数,其输入参数可以是函数也可以是函数句柄。调用方法如下:
fminbnd(function_handle,xmin,xmax)
函数fminbnd有三个输入参数:函数句柄、x的最小值和x的最大值。利用该函数求在x的最小值和最大值之间函数的最小值。
my_function=@(x) -x.^2-5.*x+exp(x);
fplot(my_function,[-5,5]);
a=fminbnd(my_function,-5,5)
(3)西科大安家费提取利息计算。根据相关规定我国公民个人每月收入超过2000元需缴纳个人所得税。我国个人所得税采用阶梯税率,当月收入越高,所缴税款越多。西科大安家费的提取有多种形式:可以一次性提取,也可以等额多次提取。
问题1:编写函数M文件,计算每月定额提取一定数额的安家费所缴纳的税款及提取期限。(假设每月工资收入为4000元)
问题2:调用问题1编写的函数M文件,绘制总税款随定额提取金额和总税款随提取期限变化的二维图形
⏹问题一
①定义主函数M文件;
②计算当月应缴税工资部分;
③调用子函数计算缴纳的总税款和缴税的总期
限;
④编写子函数计算每月应缴纳的税款。
输入:安家费总金额,每月提取定额
输出:缴纳的总税款,缴税期限⏹问题二
①建立脚本M文件
②调用问题一建立的函数文件,计算总利息和
提取期限
③计算总利息随每月安家费提取金额变化的
二维图形
④计算总利息随提取期限变化的二维图形
(1)function [tax,duration]=mytax(s,x)
Y=4000+x;
Y1=Y-2000;
if rem(s,x)==0
duration=s./x;
tax=(myfunction(Y1)-myfunction(4000)).*duration;
else duration=fix(s./x)+1;
b=myfunction(s-x.*(duration-1));
tax=myfunction(Y1).*(duration-1)-myfunction(4000).*duration+b;
end
function tax=myfunction(a)
if a<=5000
tax=500*0.05+1500*0.1-25+(a-2000)*0.15;