matlab第四章课后作业解答

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四章习题解答

1、求下列多项式的所有根,并进行验算。

(3)26723

5865x x x x

-+-

(4)4)32(3-+x 解:>> p=zeros(1,24);

>> p(1)=5;p(17)=-6;p(18)=8;p(22)=-5;

>> root=roots(p)

root =

0.9768

0.9388 + 0.2682i

0.9388 - 0.2682i

0.8554 + 0.5363i

0.8554 - 0.5363i

0.6615 + 0.8064i

0.6615 - 0.8064i

0.3516 + 0.9878i

0.3516 - 0.9878i

-0.0345 + 1.0150i

-0.0345 - 1.0150i

-0.4609 + 0.9458i

-0.4609 - 0.9458i

-0.1150 + 0.8340i

-0.1150 - 0.8340i

-0.7821 + 0.7376i

-0.7821 - 0.7376i

-0.9859 + 0.4106i

-0.9859 - 0.4106i

-1.0416

-0.7927

>> polyval(p,root)

ans =

1.0e-012 *

-0.0712

0.0459 - 0.0081i

0.0459 + 0.0081i

-0.0419 + 0.0444i

-0.0419 - 0.0444i

0.0509 + 0.0929i

0.0509 - 0.0929i

-0.2059 + 0.0009i

-0.2059 - 0.0009i

-0.0340 + 0.0145i

-0.0340 - 0.0145i

0.1342 + 0.0910i

0.1342 - 0.0910i

0.0025 + 0.0027i

0.0025 - 0.0027i

-0.0077 + 0.4643i

-0.0077 - 0.4643i

-0.3548 - 0.1466i

-0.3548 + 0.1466i

-0.0251

-0.0073

(4) >> p1=[2 3];

>> p=conv(conv(p1,p1),p1)-[0 0 0 4];

>> root=roots(p)

root =

-1.8969 + 0.6874i

-1.8969 - 0.6874i

-0.7063

>> polyval(p,root)

ans =

1.0e-014 *

-0.7105 - 0.6217i

-0.7105 + 0.6217i

6、求解下列方程组在区域1,0<<βα内的解

⎨⎧-=+=.sin 2.0cos 7.0,cos 2.0sin 7.0βαββαα 解:以初值)5.0,5.0(),(00=βα进行求解

>> fun=inline('[0.7*sin(x(1))+0.2*cos(x(2))-x(1),0.7*cos(x(1))-0.2*sin(x(2))-x(2)]');

>> [x,f,h]=fsolve(fun,[0.5 0.5])

Optimization terminated: first-order optimality is less than options.TolFun.

x =

0.5265 0.5079

f =

1.0e-007 *

-0.1680 -0.2712

h =

1

因而,该方程组的近似根为5079.0,5265.0==βα。

8、作出下列函数图形,观察所有的局部极大、局部极小和全局最大、全局最小值点的粗略位置;并用MATLAB 函数fminbnd 和fminsearch 求各极值点的确切位置。

(3)].3,0[|,2|)(2

3---=x x x x f

解:首先,画出函数的图形。

>> f='abs(x.^3-x.^2-x-2)';

>>fplot(f,[0,3])

00.51 1.52 2.53

02

4

6

8

10

12

14

从图形中,我们可以大致地看到函数f 有两个极小指点大约为2,0=x ,和两个极大值点3,1=x 。其中0也是最小值点,3是最大值点。下一步需要给出这些极值点的精确位置。

(I) 以fminbnd 命令求得的结果如下:

>> [x,y]=fminbnd(f,0,3)

x =

2.0000

y =

9.8239e-006

(这说明对于非线性函数求解时,必须在精确解附近才能得到正确答案,否则会出现解的遗漏、错误判定的现象!)

极小值:

>> [x,y]=fminbnd(f,0,0.5)

x =

y =

2

>> [x,y]=fminbnd(f,1.5,2.5)

x =

2.0000

y =

3.5877e-007

极大值:

>> [X,Y]=fminbnd(['-',f],0.8,1.2);

>> [X,-Y]

ans =

1.0 3.0000

>> [X,Y]=fminbnd(['-',f],2.5,3);

>> [X,-Y]

ans =

3 13

因而,函数f 的两个极小指点为0000.2,0=x ,对应极小值为0075877.3)0000.2(,2)0(-==e f f ;两个极大值点为3,0.1=x ,对应极大值点为13)3(,0000.3)0.1(==f f 。其中2.0000和3分别为函数的最小值点和最大值点。

(II) 以fminsearch 命令求得的结果如下:

> [X1,Y1]=fminsearch(['-' f],1);[X2,Y2]=fminsearch(['-' f],3);

Exiting: Maximum number of function evaluations has been exceeded

- increase MaxFunEvals option.

Current function value: -6874996420129107800000000000000000000000000000000000000000000000000000000000000000000000.000000

相关文档
最新文档