Matlab 讲义chap6 习题

更新时间:2023-09-09 21:40:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

chap6 习题

10000001. 请分别写出用for 和while 循环语句计算K??0.2i?0i?1?0.2?0.22??0.21000000的

程序。此外,还请写出避免循环的数值、符号计算程序。 s1 =

1.2500

2. 编写一个函数M文件,它的功能:没有输入量时,画出单位圆(见图p6-1);输入量是

大于2的自然数N时,绘制正N边形,图名应反映显示多边形的真实边数(见图p6-2);输入量是“非自然数”时,给出“出错提示”。此外,函数M文件应有H1行、帮助说明和程序编写人姓名。

Circle 图 p6-1

Polygon with 6 edges 图 p6-2

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

3. 用泛函指令fminbnd求y(x)??e?x|sin[cosx]|在x=0附近的极小值。fminbnd的第

一个输入量要求使用匿名函数表达。 x =

-0.8634

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') b_d=b;

%获取当前目录名字符串

%检查在当前目录下能否看到smoke.m

b_d(end-4:end)=[]; %在b字符串中去除最后的四个字符,即\\work。 str=[b_d,'\\toolbox\\matlab\\elmat\\private']; cd(str) SM=@smoke; cd(b) disp(' ')

A=SM(3,0,'double') disp(' ')

pwd which('smoke')

disp(' ') %把smoke.m 所在目录设置为当前目录。 %创建smoke.m的函数句柄 %使work恢复为当前目录

%产生一个3阶“伪特征根”矩阵

%显示当前所在目录,以证实符合题意。

%再次检查在当前目录下能否看到smoke.m。

本文来源:https://www.bwwdw.com/article/jnlh.html

Top