- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实 验 报 告课程名称: 可视化计算机语言实验项目名称: matlab 程序设计学院: 信息工程学院专业: 电子信息工程指导教师:报告人: 学号: 班级:实验时间:实验报告提交时间:教务部制一、实验目的与要求:1、熟练掌握 matlab 的程序流程控制结构。2、熟悉掌握 M 文件的结构和函数调用。3、掌握内联函数和函数句柄的使用。4、了解程序性能剖析窗口。二、内容和步骤:MATLAB 的语法规则简洁,编程效率高,作为一个完整的程序语言,MATLAB 也有各种程序流程控制,文件 格式和函数调用的规则,通过对函数的调用就能够组成庞大的程序,完成复杂的功能。1.使用程序流程控制Fibonacci 数列的各元素为:1、1、2、3、5、8、...满足一下关系F1=1 F2=1 Fn=Fn-1+Fn-2用 M 函数文件实现,数列的元素个数为输入变量。按 M 函数文件格式创建文件开头。function f=shiyan0501(n)%SHIYAN0501%Fibonacci 数列%n 元素个数%f 构成 Fibonacci 数列向量%%copyright 2015-11-25用 while 循环实现程序功能f(1)=1;f(2)=1; i=2;while i=nf(i+1)=f(i-1)+f(i); i=i+1;End运行后,输入参数 10,运行结果如下所示:使用 for 循环实验for i=2:nf(i+1)=f(i-1)+f(i);end运行结果如下所示:(4)当某个元素大于 50 时,退出循环结构,程序修改如下:for i=2:nif f(i)10break elsef(i+1)=f(i-1)+f(i); endend当某个元素大于 50,程序便退出循环结构当 n=10,最后一个元素刚好是大于 50 的,正好退出循环结构当 n=12 时,第十个元素对应的 f(i)大于 50,于是退出循环结构,不再运行 f(11),f(12)了。(5)将该.m 文件生成 P 码文件 pcode shiyan0501将 shiyan0501.m 删除,重新运行该文件夹,结果如下所示:练习:将该 M 文件函数改为 M 脚本文件,将数列元素个数通过键盘输入,程序应该如何修改?①将 M 文件函数另存为 M 脚本文件;②在函数前加n=input(please input a num:)便可通过键盘键入文件运行结果如下所示:please input a num:12n =12ans =1 12.使用函数调用235813 2134 5589x2x2n?11? 3? x5(2n)!??计算 arcsin(x), arcsin x ? x ? ?4? 3 16 ? 4? 5 22n (n!)2 (2n ?1)子函数 factorial 计算 n!子函数 factorial 计算 n!输入参数为 n,使用 for 循环实现的阶乘,输出参数为阶乘。 在 matlab 界面中选择“file-new-function”命令,创建一个新的函数文件,修改输入输出参数和函数名。function f=factorial(n) %[ output_args ] = Untitled7( input_args )%UNTITLED7 此处显示有关此函数的摘要% 此处显示详细说明f=1;for m=1:nf=m*f;子函数 cal.子函数 cal 是计算系数function k=cal(n1)%计算系数 for m=1:n1k=factorial(2*n1)/(2^(2*n1)*(factorial(n1))^2*(2*n1+1));end输入参数 n=5运行结果如下图所示: cal(5)ans =0.0224本函数中调用了求阶乘的子函数 factorial(3)主程序 shiyan0502.求主函数计算 arcsinx,输入参数为 x,输出参数为 arcsinx 的计算结果。 程序如下所示:function y=shiyan0502(x)%shiyan0502 arcsinx n=1;if abs(x)1 y=x;while cal(n)0.0001 y=y+cal(n)*x^(2*n+1); n=n+1;end elsedisp(输入错误); y=0;return end运行结果: y=shiyan0502(0.7)y =0.7754当输入参数不满足条件是退出程序: y1=shiyan0502(2)输入错误y1 =0练习:如果不使用子函数 factorial ,而直接在 cal 函数中计算阶乘,应如何修改程序。 修改 cal 函数如下所示:function k=cal(n1)%计算系数 f=1; f1=1;for m=1:2*n1 f1=m*f1;end
文档评论(0)