下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章 M文件和句柄函数习题6及解答1 请分别写出用for 和while 循环语句计算的程序。此外,还请写出避免循环的数值、符号计算程序。目的l 练习for环和while环的使用方法。l 避免循环,提高计算速度。l 计时指令tic, toc的用法。解答(1)for 环tics1=0;for k=0:1e6s1=s1+0.2(k);end;s1 toc s1 = 1.2500Elapsed time is 1.453482 seconds. (2)while环tics2=1;k=1;while k<1e6+1%注意:上限与for环不同s2=s2+0.2k;k=k+1;ends2toc s2
2、 = 1.2500Elapsed time is 2.716870 seconds. (3)数值求和指令tics3=sum(0.2.(0:1e6)toc s3 = 1.2500Elapsed time is 0.626723 seconds. (4)符号求和指令ticsyms k;s4=vpa(symsum(0.2k,0,1e6)toc s4 =1.2500000000000000000000000000000Elapsed time is 4.029501 seconds. 说明l 使用数值求和指令和“数组运算”的计算速度最快。l 符号计算的精度最高,但速度慢。l 以上程序运行时间仅供参考。
3、具体时间与所用机器、那程序是否初次运行、在MATLAB指令窗还是在M-book中运行等因素有关。2 编写一个函数M文件,它的功能:没有输入量时,画出单位圆(见图p6.2-1);输入量是大于2的自然数N时,绘制正N边形,图名应反映显示多边形的真实边数(见图p6.2-2);输入量是“非自然数”时,给出“出错提示”。此外,函数M文件应有H1行、帮助说明和程序编写人姓名。目的l 较完整形式函数M文件的编写。l H1的书写,帮助区内容的组织。l 指令nargin的用法。解答(1)函数M文件function prob_solve602(n)% prob_solve602(n) plot a circle
4、or a polygon with n edges% prob_solve602 plot a circle% n 应为大于2的自然数 % By ZZY, 2006-2-15if nargin=0 t=0:pi/100:2*pi; x=exp(i*t); str='Circle'else if (nargin=0)&(n<=2) error('输入量应是大于2的自然数') end; if n-round(n)=0%检查非自然数 error('输入量应是大于2的自然数') end; t=(0:n)/n*2*pi; x=exp(i*t)
5、; str='Polygon with ', int2str(n),' edges'% 合成字符串endplot(real(x),imag(x),'r','LineWidth',4)title(str)axis square image offshg (2)各典型运行情况prob_solve602 图 p6.2-1prob_solve602(6) 图 p6.2-2prob_solve602(2) ? Error using => prob_solve602输入量应是大于2的自然数 prob_solve602(7.3) ? E
6、rror using => prob_solve602输入量应是大于2的自然数 3 用泛函指令fminbnd求在x=0附近的极小值。fminbnd的第一个输入量要求使用匿名函数表达。目的l 练习匿名函数的表达和使用。l 判断搜索结果是否符合要求。解答(1)在0附近的较小区间 -0.5, 0.5内搜索y=(x)-exp(-x).*abs(sin(cos(x);x1,y1=fminbnd(y,-0.5,0.5)x1 = -0.4999y1 = -1.2681 (2)在包含0的更大区间内搜索在 -0.5, 0.5 区间搜索到的极小值点在该搜索区间的边界上,所以搜索区间应该进一步扩大。x2,y2
7、=fminbnd(y,-1,1) x2 = -0.8634y2 = -1.4348 说明l 在-1, 1区间的搜索结果是区间的内点。进一步扩大搜索区间,只可能找到更远离0的极小值点,所以没有必要进一步搜索。4 在matlab的 toolboxmatlabelmatprivate文件夹上有一个“烟圈矩阵”发生函数smoke.m。运行指令smoke(3,0,'double') ,将生成一个3阶伪特征根矩阵如下A = -0.5000 + 0.8660i 1.0000 0 0 -0.5000 - 0.8660i 1.0000 1.0000 0 1.0000 现在的问题是:在MATLAB
8、当前目录为work情况下,如何利用函数句柄调用smoke.m函数,产生3阶伪特征根矩阵。请写出相应的程序或操作步骤。目的l 说明:有效函数句柄的创建,必须使被建句柄的那函数在“视野”中。l 利用有效函数句柄,可以在任何地方通过句柄实现对函数的调用。l 了解cd, pwd等指令的应用。 解答(1)创建有效函数句柄,及函数句柄的调用以下程序正确运行的先决条件是:MATLAB的当前目录是work。clearb=pwd%获取当前目录名字符串which('smoke')%检查在当前目录下能否看到smoke.mb_d=b;b_d(end-4:end)=;%在b字符串中去除最后的四个字符,即
9、work。str=b_d,'toolboxmatlabelmatprivate'%构造smoke所在的目录字符串cd(str)%把smoke.m 所在目录设置为当前目录。SM=smoke; %创建smoke.m的函数句柄cd(b)%使work恢复为当前目录disp(' ')%为显示清楚起见,产生一个显示空行。A=SM(3,0,'double')%产生一个3阶“伪特征根”矩阵disp(' ')pwd%显示当前所在目录,以证实符合题意。which('smoke')%再次检查在当前目录下能否看到smoke.m,起证实作用。disp(' ')b =C:MATLAB2006R2006awork'smoke' not found. A = -0.5000 + 0.8660i 1.0000 0 0 -0.5000 - 0.8660i 1.0000 1.0000 0 1.0000 ans =C:MATLAB2006R2006awork
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学一年级英语完形填空测试
- 青年人的社会参与与责任感
- 地理坐标地图分析模拟试卷
- 小学生物激发测试
- 初中实验模拟试卷
- 小学英语词汇应用模拟试卷
- 如何正确安排中学生的学习时间
- 手表的机械结构和时间的表示
- 2024-2030年中国无灰压缩机油市场供需趋势及发展潜力研究报告
- 江门市2025届普通高中高三10月调研测试 历史试卷(含答案详解)
- 道法共建美好集体+课件-2024-2025学年统编版道德与法治七年级上册
- 到市直部门挂职总结汇报
- 2023年茂名市高州市纪委监委选调公务员笔试真题
- 职业技术学院《老年心理学基础》课程标准
- 24年-注安法规-考前押题3套卷
- DB13-T 5871-2023 矿山地质环境恢复治理工程资料管理规程
- 2023年法律职业资格《主观题》真题及答案
- 2024年《形势与政策》知识考试题库(含答案)
- 离心压气机设计-第一部分
- 中国风景油画的走向_胡振德
- 村民阻工等郡体性突发事件应急预案最新版
评论
0/150
提交评论