matlab第四章课后作业解答
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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