MATLAB教程2012a第6章习题解答-张志涌
更新时间:2023-10-16 11:20:01 阅读量: 综合文库 文档下载
- matlab 2012a推荐度:
- 相关推荐
第6章 M文件和句柄函数
习题6及解答
1 请
分别写出用
for 和while 循环语句计算
1000000K??0.2i?1?0.2?0.22??0.21000000的程序。此外,还请写出
i?0避免循环的数值、符号计算程序。
〖解答〗 (1)for 环
tic s1=0;
for k=0:1e6 s1=s1+0.2^(k); end; s1 toc s1 =
1.2500
Elapsed time is 1.453482 seconds.
(2)while环
tic
s2=1;k=1;
while k<1e6+1 %注意:上限与for环不同 s2=s2+0.2^k; k=k+1; end s2 toc s2 =
1.2500
Elapsed time is 2.716870 seconds.
(3)数值求和指令
tic
s3=sum(0.2.^(0:1e6)) toc s3 =
1.2500
Elapsed time is 0.626723 seconds.
(4)符号求和指令
tic
syms k;
s4=vpa(symsum(0.2^k,0,1e6)) toc s4 =
1
1.2500000000000000000000000000000 Elapsed time is 4.029501 seconds.
〖说明〗
? 使用数值求和指令和“数组运算”的计算速度最快。 ? 符号计算的精度最高,但速度慢。 ? 以上程序运行时间仅供参考。具体时间与所用机器、那程序是否初次运行、在MATLAB
指令窗还是在M-book中运行等因素有关。
2 编写一个函数
M文件,它的功能:没有输入量时,画出单位圆
(见图p6.2-1);输入量是大于2的自然数N时,绘制正N边形,图名应反映显示多边形的真实边数(见图p6.2-2);输入量是“非自然数”时,给出“出错提示”。此外,函数M文件应有H1行、帮助说明和程序编写人姓名。
〖解答〗
(1)函数M文件
function prob_solve602(n)
% prob_solve602(n) plot a circle or a polygon with n edges % prob_solve602 plot a circle % n 应为大于2的自然数
% By ZZY, 2006-2-15 if 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);
str=['Polygon with ', int2str(n),' edges']; % 合成字符串 end
plot(real(x),imag(x),'r','LineWidth',4) title(str)
axis square image off shg
(2)各典型运行情况
prob_solve602
2
Circle图 p6.2-1
prob_solve602(6) Polygon with 6 edges图 p6.2-2
prob_solve602(2)
??? Error using ==> prob_solve602 输入量应是大于2的自然数
prob_solve602(7.3)
??? Error using ==> prob_solve602 输入量应是大于2的自然数
3 用泛函指令
fminbnd求y(x)??e?x|sin[cosx]|在x=0附近的极小
值。fminbnd的第一个输入量要求使用匿名函数表达。
〖解答〗
(1)在0附近的较小区间 [-0.5, 0.5]内搜索
3
y=@(x)-exp(-x).*abs(sin(cos(x))); [x1,y1]=fminbnd(y,-0.5,0.5) x1 =
-0.4999 y1 =
-1.2681
(2)在包含0的更大区间内搜索 在 [-0.5, 0.5] 区间搜索到的极小值点在该搜索区间的边界上,所以搜索区间应该进一步扩大。
[x2,y2]=fminbnd(y,-1,1) x2 =
-0.8634 y2 =
-1.4348
〖说明〗
? 在[-1, 1]区间的搜索结果是区间的内点。进一步扩大搜索区间,只可能找到更远离0的
极小值点,所以没有必要进一步搜索。
4 在matlab的 \\toolbox\\matlab\\elmat\\private文件夹上有一个“烟
圈矩阵”发生函数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当前目录为\\work情况下,如何利用函数句柄调用smoke.m函数,产生3阶伪特征根矩阵。请写出相应的程序或操作步骤。
clear
b=pwd %获取当前目录名字符串
which('smoke') %检查在当前目录下能否看到smoke.m b_d=b;
b_d(end-4:end)=[]; %在b字符串中去除最后的四个字符,即work。
str=[b_d,'\\toolbox\\matlab\\elmat\\private']; %构造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:\\MATLAB2006\\R2006a\\work 'smoke' not found. A =
-0.5000 + 0.8660i 1.0000 0 0 -0.5000 - 0.8660i 1.0000 1.0000 0 1.0000
4
ans =
C:\\MATLAB2006\\R2006a\\work 'smoke' not found.
(2)在当前目录下,进行直接调用smoke.m的尝试
B=smoke(3,0,'double') %用来证实:直接调用smoke函数将失败的事实 ??? Undefined command/function 'smoke'.
5
正在阅读:
初三化学实验报告册10-18
《巴黎圣母院》名著导读03-16
2022-2022年初中历史岳麓版《九年级下》《第2单元 凡尔赛—华盛04-16
第13课 法国大革命和拿破仑帝国教学设计07-06
福建省漳州市2018届毕业班第二次调研测试语文试卷及答案05-11
教科版物理九年级中考冲刺:电学实验(提高)巩固练习01-02
我和妈妈作文450字07-01
补充习题 1(1)04-26
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 习题
- 解答
- 教程
- MATLAB
- 2012a
- 张志涌
- 年产500万平方米太阳能光伏玻璃生产项目可行性研究报告
- 经济法论文(消费者权益篇)
- 五年级上册海西乐园教案(全册)
- 广州医学院新造校区项目现状管线迁改工程(施工组织方案)(兴宁版)
- 2010版中国药典三部(生物制品)凡例
- 二级Access操作题预测题
- 音韵学常识
- 新牛津英语8B Unit8错题
- 论网上支付风险与防范
- 三道堰旅游调研报告
- 石膏砌块技术交底 - 图文
- 矩形铜排铜载流量选择一览表
- 论创新理论的产生及其发展-精选模板
- 实验五 种群数量的状态转移 - 微分方程(数学建模)
- 哈列斯比 祷告
- MFC向Excel读写数据详细方法
- 大连医科大学外科学总论考试题
- 当代青年逆商水平现状的调查与分析
- 教职工创优工作方案-精选范文
- 《为人民服务》教学设计