首页 > 编程知识 正文

(matlab教程2012a 张志涌,MATLAB教程2012a第6习题解答-张志涌.doc)

时间:2023-05-03 12:40:07 阅读:123198 作者:977

MATLAB教程2012a第6演习问题解答-xfdyet

页面

PAGE 1

m文件和句柄函数

演习问题6和答案

请分别编写用for和while的循环语句计算的程序。 另外,请编制避免循环的数值符号计算程序。

)解答

)1) for环

tic

s1=0;

for k=0:1e6

S1=S10.2^(k;

结束;

s1

东京国际机场

s1=

1.2500

elapsed time is 1.453482第二次连接。

)2)车轮环

tic

s2=1; k=1;

注意while k1e6 1% :上限与for环不同

s2=s2 0.2^k;

k=k 1;

结束

s2

东京国际机场

s2=

1.2500

封装时间is 2.716870 seconds。

(3)数值加法指令

tic

S3=sum(0.2.^ ) 0:1E6 )

东京国际机场

s3=

1.2500

elapsed time is 0.626723第二次连接。

(4)符号加法指令

tic

syms k;

S4=VPA(symsum ) 0.2^k,0,1 E6 ) )

东京国际机场

s4=

1.2500000000000000000000000000000000000000000

elapsed time is 4.029501第二次连接。

(说明

使用数值加法指令和“数组运算”,计算速度最快。

符号计算的精度最高,但速度慢。

以上程序的执行时间仅供参考。 具体时间取决于使用的计算机、该程序是否首次运行、是否在MATLAB命令窗口中运行、是否在M-book中运行等因素。

建立函数m文件,其功能:无输入量时画单位圆()见图p6.2-1 ); 输入量为大于2的自然数n时,画正n边形,图名应反映显示多边形的真边数(见图p6.2-2 ); 输入量为“非自然数”时,发出“错误提示”。 此外,函数m文件需要H1行、帮助说明和程序创建者的名字。

)解答

(1)函数m文件

功能prob _ solve 602 (n )

%prob_solve602(n ) plotacircleorapolygonwithnedges

% 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的自然数) ) )。

结束;

ifn-round(n ) )=0%非自然数检验

error (输入量为大于2的自然数) ) )。

结束;

t=(03360n )/n*2*pi;

x=exp(I*t );

str=['Polygon with ',int2str(n ),' edges']; %合成字符串

结束

plot(real ) x、imag(x ) x、' r '、' LineWidth '、4 ) ) ) )。

是标题(str )

axis square image off

shg

)2)各项典型运行情况

prob_solve602

图p6.2-1

prob_solve602(6)

图p6.2-2

prob_solve602(2)

? Error using==prob_solve602

输入量必须是大于2的自然数

prob_solve602(7.3 )

? Error using==prob_solve602

输入量必须是大于2的自然数

用泛函指令fminbnd求出x=0附近的极小值。 fminbnd的最初输入量需要用匿名函数表现。

)解答

(1)在0附近的小区间(-0.5,0.5 )内搜索

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更远的极小值的点,所以不需要进一步搜索。

matlab的toolboxmatlabelmatprivate

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。