




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报告课程名称,可视化计算机语言实验项目名称:matlab程序设计学院:信息工程学院专业:电子信息工程指导教师1报告人学号 班级:实验时间:实验报告提交时间:教务部制一、实验目的与要求:1、熟练掌握matlab的程序流程控制结构“2、熟悉掌握M文件的结构和函数调用。3、掌握内联函数和函数句柄的使用。4、了解程序性能剖析窗口。二、内容和步骤:MATLAB的洒法规则简洁,编程效率高,作为 个完整的程序语言,MATLAB也有各种程序流程控制,文件 格式和函数调用的规则,通过对函数的调用就能够组成庞大的程序,完成更杂的功能.1.使用程序流程控制Fibonacci数列的各元素为:1、1、2、3、5、8
2、、满足一下关系Fi=lF 产 F.i+F 口,用M函数文件实现,数列的元素个数为输入变量。(1)按M函数文件格式创建文件开头.工二匚二二二cn f=shiyan0501(n) %SHIkrAN0501 + Fibonmuui 数列%n元素个数%f构成Fibonacci数列向屋copyright 2015-11-25(2)用while循环实现程序功能f (1)=1;f <2)=1;i=2;while i<=nf(i+1)=f(i-1)(i);i=i+l;End运行后,输入参数10,运行结果如卜所示:» shiyanOSOl(10)ans =1123581321345589使
3、用for循环实验 for i=2:nf(i+l)=f(i);end运行结果如卜所示:» shiyan0501(10)11235 S 132134 S5 89(4)当某个元素大于50时,退出循环结构.程序修改如下:for 1=2:nif f (i) >10breakelsef (i-lHf (i);endend当某个元素大于50.程序便退出循环结构当n=10,最后一个元素刚好是大于50的,正好退出循环结构>> shiyanOoOl(10)13213455当312时,第十个元素对应的*1)大于50,于是退出循环结构,不再运行fUD4U2)了。)> shiyanO5
4、Ol(L2)ans =11235813213455(5)将该皿文件生成P码文件» pcode shiyan0501将shiyan0501.m删除,重新运行该文件夹,结果如下所示:>> f=shiyan0501(5)练习:将该M文件函数改为M脚本文件,将数列元素个数通过健盘输入,程序应该如何修改?将M文件函数另存为M脚本文件:在函数前加n-input (1 please ±np; a n;m: 1) 便可通过键盘键入文件运行结果如F所示:please input a 口uni 12n =12ans =5813213455892使用困数调用(2n)!产2人(16(2
5、0 + 1)廿目 aicsm(x).x21 x 3 x x:arcsin x= x+4x3 16x4x5子函数facto门al计算M子函数factorial计算用输入参数为n,使用fbr循环实现的阶乘,输出参数为阶乘, 在matlab界面中选择<-file->new->fimction?,命令,创建一个新的函数文件,修改输入输出参数和函数名。 funccion f=facrorial (n) % output._args = Unrirled? ( inpur args ) %UNTITLED7此处显示有关此函数的摘要 %此处显示详细说明f=l;for m=l:n(2)子函数
6、caL子函数cal是计算系数funccion k=cal(nl)学计算系数for :nlk=factorial(2*nl)/(二八(2*nl)*(factorial(nl)A2*(2*nl+l); end输入参数n=5运行结果如下图所示:» cal(5)00224本函数中调用了求阶乘的子函数factonal(3)主程序曲q30502.求主函数计算arcsrnx,输入参数为x,输出参数为aicsinx的计算结果° 程序如下所示:function y-shiyan0502(x)%shiynO5G2 arcsinx: n=l;if abs(x)<1y=x;while cal
7、 (n)>0.0001y=y+cal(n>*xA(2*n+l); n=n+l;endelsedisp (1输入错误t );y=0;returnend运行结果:» yslnyan0502(0.7)y=0.7754当输入参数不满足条件是退出程序:» yl=shiyanO5O2(2) 输入错误yi =0练习:如果不使用子函数factorial ,而宜接在cal函数中计算阶乘应如何修改程序© 修改cal函数如下所示: funccion k=cal(nl)+计算系数£二:;fl=l;for m=l:2*nlfl=m*f1;endfor m=l.: nl
8、endk=fl/(2A(2*nl)*fA2*(2*nl+l);end调用程序shiyanO5O2,运行结果如卜.所示:» yshiyanO502(0.7)y=0.7754运行结果与使用子函数factonal的运行结果一致。14)使用程序性能剖析。选择菜单"view:profile'命令:或使用在命令窗口输入profile viewer'命令 都可以打开程序性能剖析窗口.D探查器一 口 X用于改善性能的探查器改善MATLAB程后性能fl勺一种方;短使用循工fl,MATLAB提供了茎于匹“江 囱数返回的结果的图形用户界面。 使用t杠具可帮助忠确定在何处佗及代制以
9、改善性能。探苴器文档中介绍了如何使用奈直器的详迥信息.在程序性能剖析窗口的,命令输入栏中输入需要剖析的命令.,y=shiyaii0502(0.7)',然后单击*stanprofiling1 按钮,查看剖析报告©文件演(£)调试阅窗口的帮助回探查时闫;01启法徐查®运行此代码®: 丫二品方如。502(07)探查摘要已便用cpu的好生成09-Dec-2015 0:41.国数名称调用梆斓目用盯间”总时间图特色条带=目用时间)shiyan055210 s0.000 Sca!1690 s0.000 S自用时间是指函数耗薪的时间,但不包括函教的子国教耗彘的时
10、闻 自用时间还包括1祺过程中产生的开销.(5)程序的调试。当有多个函数调用时,由于函数变量的工作空间是独立的,被调用的函数执行结束后变量 消失,因此调试时要使用matlab调试器查看运行过程中的变量值.设置断点©在需要杳看的程序的地方设置断点.function shiyan0502(x) %shiiran0502 arcsineifabs (x)<l10 -12 -y=::;while cal(n)>0. 0001y-y+ceLL (n) *k (2*n+l): n=n+l;endelsedisp(,输入错误T );y=0:return14 一end» shiy
11、a110502(0.7)K»yy=07000K» x=0 50.500010.50000.7000值1a 50000.7000在K»输入x=O 5即可将x的值从0 7修改为0.5.去除断点,查看结果:ans =0 7236落果与x值为0.7时不一致.当x=0 7时,y =0 7754,由此可知,x的值己被修改“单步运行» shiyan0502(0.7)9n=n+l;K»按单步运行键;可看到箭头不断的移动:Hfunction k=cal(nl) global nEfor ni=l:n中k=fact or Lal(2«n)/(2*(2*n
12、)*end(6)使用函数句柄a在命令窗I I使用函数句柄调用函数。» h_shiyaiiO5O2=shiya 口0502h_shiyanO5O2 =.shiyan0502» y=fr val(h_sliiyan0502,0 5)y=0.5236(7)使用全局变量 Matlabe的编程不提倡使用个局变量,本例中的程序主要是为了查看全局变量的概念.将 n作为全局变量,子函数factorial不修改,子函数cal程序和主曲数仙yan0502修改如F: function y=shiyan0502(x) %shiyan0502 arcsinx global n;n=l;if 3bs(
13、x)<1yx;while cal(n)>0.0001y=y+cal(n1*xA(2*n+l); n=n+l;endelsedisp (,输入糖误,); y=0;return end funccicn k=cal(nl) global n for m=L;nk=fac*orial(2*n)/2 (2*n)*(factorial(n)A2*(2*2*n+l);Endglobal为改置的全局变量,子函数没仃输入变量,而用全局变量n传递。0.7000是小隹斐157c4称 m nn1 名田S田1111function y苫hiyan0502(x)2 %shiyanU3k arcsira3 O
14、global n:在个局变量疝设置断点,然后运行代序,“通”运彳到断点处停止,接着不I断使用单步达"调艮,结果加卜所小:名称 乱最小值名称 排最小值1练习: 使用单纸运行调试,直看全局变策ri的变化,井在工作空间有看m3、利用泛函命令实现数位分析创建函数shiyan0503实现上述表达式关系。function yshiyan0503(t) %shiyan0503 y=(sin(u) ) . -2.* exp(a * t)-b*abs(C> a=0.1;b=0.5;y= (sin (t) ).2. *exp (a*t) -b*wbs (t);查看该函数的输出波形,如卜图所示:利用
15、函数名求零点,在上图中可以看相互在0的附近行2个过零点 xl=fzero(1shivanC 5 C = r 0.5) x2=f zero ( 11 r -0.5)运行结果如下所示士» shiyanO5O3_lxl =0.5198x2 =-0.5993利用函数句柄求"点 » x 1 =feero( shiyaiiO5O3,0.5)xl =0 5198» x2=fzero( shiyaiiO5O3,0.5)x2 =-0.5993利用函数句柄求极小值,由图可知,极小值有多个,查看其中2个 » xl=finiiibnd(shiyan0503,0.1,0
16、 7)xl =0.2511» x2=fimnbnd( shiyan0503,2,5)x2 =3.3233练习:利用函数句柄求 L 1的面积0» x=-L0 111;» 尸 hiya 口0503(x);» area=trapz(x.y)%用梯形计算枳分area =0 0485» aiea 1=qiiad(slHyanO5O31,1) %用 quad 计算积分area 1 二0.0469(2)使用内联函数创建内联函数f» a-0.1;»b=0.5;» fuiline(l(sm(t),A2 *exp(. 1 *1)-0
17、5*abs(t)V)f=内联函数:f(t) - (sm(t).A2 .*exp( 1 *t)-0.5 *abs(t)绘制曲线图>> t=-10 0 110;» 产以&1(£ t);» plot(t,y)0-64e求过零点» xl=tzeio(f0 5)xl =0.5198求极小值» x2=finmbnd(f>0.1.0 7)0.2511练习:利用内联函数求8附近的极小值x-fiiiHibnd(f.7 9,8.1)8 0999x2=fiiunbnd(f.7 99,8.01)x28.0099(3)使用字符串创建字符串
18、87; g='(sin(x).竺.*exp( J *x)-.5*abs(x)'(sm(x).A2. *exp(.l x)-.5*abs(x) 绘制曲线图>>x=-lG:O 1:10;» 尸eval®x);» plot(x,y)运行程序得到下图:-103-6-420246810求零点 »xl=feero(g,0.5)0 5198自我练习:(1)编写函数计算输入参数工为留半径的嗣面枳和周长 程序如下所示:k=f2*pi*r 1r=input (1 潮入N.I :夕。径 r : >disp”用的面积:,) y=eval(gr r)di sp圆的冏长:3 yl=eval (k, r)送行结果如所示:假设输入的半径为3g =P1B2k =2*pi*r请输入圆的半径匚33圆的面积:y=28.2743圆的周长:yi =18 8496使用函数句柄调用,并绘制曲线.(2)创建内联函数计算尸加一»)=inline(,sm(r) /f)y=内联函数:y(r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行招聘考试题讲解题及答案
- 银行业能力测试题及答案
- 上海专业考试试题及答案
- 药学专业招聘试题及答案
- 宣传专业试题及答案
- 《烹饪原料初加工工艺》项目四干货原料的初加工
- 湖北省十堰市 2025年 七年级上学期期中考试地理试卷(含答案)
- 墙体铝扣板施工方案
- 跨国贸易合同范本
- 2026届安徽省合肥市普通高中学业水平选择性考试物理模拟检测试卷(三)
- 2025北京京剧院招聘工作人员10人考试备考题库及答案解析
- 检修现场管理培训课件
- 信息网络安全考题「附答案」
- 消防设备设施操作讲解培训课件P
- 2025年执业医师考试-中医师承及确有专长考核历年参考题库含答案解析(5卷单选一百题)
- 中国绳结课件
- 中国民族服饰课件
- 第9课《天上有颗“南仁东星”》课件 2025-2026学年统编版八年级语文上册
- 早读的好处教学课件
- 人教版高一上学期数学(必修一)《1.3集合的基本运算》同步练习题及答案
- 大店童装开业活动方案
评论
0/150
提交评论