MATLAB基础及其应用教程周开利邓春晖课后标准答案.docx
- 文档编号:24581827
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:29
- 大小:596.04KB
MATLAB基础及其应用教程周开利邓春晖课后标准答案.docx
《MATLAB基础及其应用教程周开利邓春晖课后标准答案.docx》由会员分享,可在线阅读,更多相关《MATLAB基础及其应用教程周开利邓春晖课后标准答案.docx(29页珍藏版)》请在冰豆网上搜索。
MATLAB基础及其应用教程周开利邓春晖课后标准答案
MATLAB基础及其应用教程-周开利-邓春晖课后答案
————————————————————————————————作者:
————————————————————————————————日期:
第三章习题及参考答案
解答:
>>p=[1-1-1];
>>roots(p)
ans=
-0.6180
1.6180
解答:
取n=5,m=61
>>x=linspace(0,2*pi,5);y=sin(x);
>>xi=linspace(0,2*pi,61);
>>y0=sin(xi);
>>y1=interp1(x,y,xi);
>>y2=interp1(x,y,xi,'spline');
>>plot(xi,y0,'o',xi,y1,xi,y2,'-.');
>>subplot(2,1,1);plot(xi,y1-y0);gridon
>>subplot(2,1,2);plot(xi,y2-y0);gridon
分段线性和三次样条插值方法与精确值之差
取n=11,m=61
>>x=linspace(0,2*pi,11);y=sin(x);
>>xi=linspace(0,2*pi,61);
>>y0=sin(xi);
>>y1=interp1(x,y,xi);
>>y2=interp1(x,y,xi,'spline');
>>plot(xi,y0,'o',xi,y1,xi,y2,'-.');
>>subplot(2,1,1);plot(xi,y1-y0);gridon
>>subplot(2,1,2);plot(xi,y2-y0);gridon
分段线性和三次样条插值方法与精确值之差
解答:
>>x=[0,300,600,1000,1500,2000];
>>y=[0.9689,0.9322,0.8969,0.8519,0.7989,0.7491];
>>xi=0:
100:
2000;
>>y0=1.0332*exp(-(xi+500)/7756);
>>y1=interp1(x,y,xi,'spline');
>>p3=polyfit(x,y,3);
>>y3=polyval(p3,xi);
>>subplot(2,1,1);plot(xi,y0,'o',xi,y1,xi,y3,'-.');
>>subplot(2,1,2);plot(xi,y1-y0,xi,y3-y0);gridon
插值和拟合方法相比较,都合理,误差也相近。
解答:
梯形法积分
>>x=-3:
0.01:
3;
>>y=exp(-x.^2/2);
>>z=trapz(x,y)/(2*pi)
z=
0.3979
辛普森积分
>>z=quad('exp(-x.^2/2)',-3,3)/(2*pi)
z=
0.3979
积分区间改为-5~5:
梯形法积分
>>x=-5:
0.01:
5;
>>y=exp(-x.^2/2);
>>z=trapz(x,y)/(2*pi)
z=
0.3989
辛普森积分
>>z=quad('exp(-x.^2/2)',-5,5)/(2*pi)
z=
0.3989
积分区间改变了,两种积分的结果依然相同。
梯形积分中改变x的维数为2维数组
>>x(1,:
)=-5:
0.01:
5
>>x(2,:
)=-5:
0.01:
5
>>y=exp(-x.^2/2);
>>z=trapz(x,y)/(2*pi)
?
?
?
Errorusing==>trapz
LENGTH(X)mustequalthelengthofthefirstnon-singletondimensionofY.
结论参考教材第82页。
解答:
>>x=linspace(0,1,4);
>>y=x./(x.^2+4);
>>t=cumsum(y)*(1-0)/(4-1);
>>z1=t(end)
>>z2=trapz(x,y)
>>z3=quad('x./(x.^2+4)',0,1)
>>z4=quadl('x./(x.^2+4)',0,1)
z1=
0.1437
z2=
0.1104
z3=
0.1116
z4=
0.1116
解答:
>>A=[5121;2511;12102;12210];
>>b=[991515]';
>>tol=1.0*10^-6;
>>imax=5;
>>x0=zeros(1,4);
>>tx=jacobi(A,b,imax,x0,tol);
>>forj=1:
size(tx,1)
fprintf('%4d%4.2f%4.2f%4.2f%4.2f\n',...
j-1,tx(j,1),tx(j,2),tx(j,3),tx(j,4))
end
00.000.000.000.00
11.801.801.501.50
20.540.480.660.66
31.311.321.221.22
40.810.790.860.86
51.131.131.091.09
00.000.000.000.00
11.801.081.100.88
20.971.021.021.00
30.991.001.001.00
41.001.001.001.00
51.001.001.001.00
解答:
>>A=[5121;2511;12102;12210];
>>b=[991515]';
>>tol=1.0*10^-6;
>>imax=5;
>>x0=zeros(1,4);
>>w=1.2;
>>tx=sor(A,b,imax,x0,tol,w);
>>forj=1:
size(tx,1)
fprintf('%4d%4.2f%4.2f%4.2f%4.2f\n',...
j-1,tx(j,1),tx(j,2),tx(j,3),tx(j,4))
end
00.000.000.000.00
12.161.121.270.97
20.621.100.981.03
31.060.951.001.00
41.001.011.001.00
51.001.001.001.00
若取w=0.02,以下结果表明收敛速度更快:
00.000.000.000.00
11.841.091.120.89
20.941.021.021.00
30.991.001.001.00
41.001.001.001.00
51.001.001.001.00
解答:
>>tic;
>>A=[5121;2511;12102;12210];
>>b=[991515]';
>>[x,flag,relres,iter,resvec]=pcg(A,b,1e-6,10);
>>t1=toc
t1=
0.0064
用同样的方法计算得到不同迭代方法所用时间,迭代次数都取10次
Jacobi迭代法
t1=
0.0279
Gauss-Seidel迭代法
t1=
0.0221
SOR迭代法
t1=
0.0272
可见上述三种迭代法的用时相当,而共轭梯度法用时只有它们的1/4左右。
解答:
先将微分方程写成自定义函数ex9fun.m
functionf=ex9fun(x,y)
f=-2*x*y;
二三阶龙格-库塔法:
在命令窗口输入以下语句:
>>[x,y]=ode23('ex9fun',[0:
0.1:
1.2],1)
x=
0
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000
0.9000
1.0000
1.1000
1.2000
y=
1.0000
0.9900
0.9608
0.9139
0.8522
0.7788
0.6977
0.6127
0.5273
0.4449
0.3679
0.2982
0.2369
改进欧拉法:
在命令窗口输入以下语句:
>>[x,y]=euler2('ex9fun',[01.2],1,0.1)
x=
0
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000
0.9000
1.0000
1.1000
1.2000
y=
1.0000
0.9900
0.9607
0.9138
0.8520
0.7788
0.6978
0.6129
0.5279
0.4457
0.3691
0.2997
0.2387
方程的解析解用Dsolve('Dy=-2*x*y','y(0)=1','x')求得为y=exp(-x^2)。
第四章习题及参考答案
1.填空题
(1)结构数组元素是__结构__类型数据,细胞数组元素是细胞类型数据。
(2)结构数组名与域名之间以_圆点“.”_间隔,同一域的数据类型__相同__。
(3)创建结构数组可以对结构数组的域直接赋值和采用函数_struct_,当采用函数创建时,可以一次给多个元素赋值,此时,各元素值应以_{}_括号括起来,如果某个_域_的值都相同,则可以只输入一次。
(4)创建细胞数组可以对细胞元素直接赋值或采用函数_cell_,采用函数创建的细胞数组所有元素的值为_空值。
(5)删除域名的函数是_rmfield_,删除结构数组元素的方法是将欲删除的元素赋空值。
(6)利用函数_fieldnames_可以得到结构数组的域名,利用函数_getfield_可以得到结构数组的域值,利用多种方法可以访问结构数组的元素。
(7)将细胞元素赋以空值可以删除细胞元素内容(用花括号),如果要从细胞数组中删除某个细胞元素,则需要_将细胞元素(用园括号)赋以空值。
(8)利用花括号和下标可以得到细胞数组的元素内容,利用圆括号和下标可以得到细胞数组的元素。
(9)结构细胞数组的元素是结构类型数据,元素值是结构。
2.选择题
(1)在MATLAB命令窗口输入语句:
>>teacher=struct('name',{'John','Smith'},'age',{25,30});
现需将结构数组teacher的第一个age域值修改为35,则应使用__C__。
A.setfield(teacher,'age
(1)',35)
B.teacher
(1)=setfield(teacher
(1),'age',35)
C.teacher
(1).age=35
D.teacher=(teacher.age
(1)=35)
(2)对于题
(1)创建的结构数组teacher,若进行下列操作,其结果为__A__。
>>fieldnames(teacher)
A.ans=
'name'
'age'
B.ans=
name
age
C.ans=
name:
'John'
age:
25
D.ans=
name:
'Smith'
age:
30
(3)对于题
(1)创建的结构数组teacher,若需要引用Smith的年龄,可以使用__BD__。
A.getfield(teacher,'age
(2)')
B.getfield(teacher
(2),'age')
C.teacher.age
(2)
D.teacher
(2).age
(4)在MATLAB命令窗口输入语句:
>>teacher=struct('name',{'John','Smith'},'age',{25,30});
则,再输入a1=teacher
(1)的结果为__A__,输入a2=teacher
(1).name的结果为__C__。
A.a1=
name:
'John'
age:
25
B.a1=
name:
John
age:
25
C.a2=
John
D.a2=
'John'
(5)在MATLAB命令窗口输入语句:
>>teacher1=struct('name',{'John','Smith'},'age',{25,30});
>>teacher2=struct('name',{'John','Smith'},'age',{'25','30'});
则,再输入a1=teacher1
(1).age
(2)的结果为__C__,输入a1=teacher2
(1).age
(2)的结果为__D__,输入a1=teacher1
(1).age的结果为__A__,输入a1=teacher2
(1).age的结果为__A__。
A.a1=
25
B.a1=
30
C.出错信息
D.a1=
5
>>teacher05=struct('id',{'xx010','xx016'},...
'name',{'黎明','王佳薇'},'course',{{'高数'},{'电路''模电'}});
>>student05=struct('number',{'20050731021','20050731031',...
'20050731036'},'name',{'张小霞','郭凯','周明辉'},...
'course',{{'高数''电路''模电'}},...
'score',{[708778],[829088],[889291]});
>>teacher05
(1)
ans=
id:
'xx010'
name:
'黎明'
course:
{'高数'}
>>teacher05
(2)
ans=
id:
'xx016'
name:
'王佳薇'
course:
{'电路''模电'}
>>student05
(1)
ans=
number:
'20050731021'
name:
'张小霞'
course:
{'高数''电路''模电'}
score:
[708778]
>>student05
(2)
ans=
number:
'20050731031'
name:
'郭凯'
course:
{'高数''电路''模电'}
score:
[829088]
>>student05(3)
ans=
number:
'20050731036'
name:
'周明辉'
course:
{'高数''电路''模电'}
score:
[889291]
>>class05_strct{1}=teacher05;
>>class05_strct{2}=student05;
>>class05_strct{1}
(1),class05_strct{1}
(2)
ans=
id:
'xx010'
name:
'黎明'
course:
{'高数'}
ans=
id:
'xx016'
name:
'王佳薇'
course:
{'电路''模电'}
>>class05_strct{2}
(1),class05_strct{2}
(2),class05_strct{2}(3)
ans=
number:
'20050731021'
name:
'张小霞'
course:
{'高数''电路''模电'}
score:
[708778]
ans=
number:
'20050731031'
name:
'郭凯'
course:
{'高数''电路''模电'}
score:
[829088]
ans=
number:
'20050731036'
name:
'周明辉'
course:
{'高数''电路''模电'}
score:
[889291]
>>teacher04=struct('id',{'xx012','xx016'},...
'name',{'姚大志','王佳薇'},'course',{{'数电'},{'高频'}});
>>student04=struct('number',{'20040734005','20040734036'},...
'name',{'王雪梅','高志刚'},...
'course',{{'数电''高频'}},'score',{[7580],[5665]});
>>class04_strct{1}=teacher04;
>>class04_strct{2}=student04;
>>class={class05_strct,class04_strct};
>>celldisp(class)
class{1}{1}=
1x2structarraywithfields:
id
name
course
class{1}{2}=
1x3structarraywithfields:
number
name
course
score
class{2}{1}=
1x2structarraywithfields:
id
name
course
class{2}{2}=
1x2structarraywithfields:
number
name
course
score
>>class{2}
ans=
[1x2struct][1x2struct]
>>class
(2)
ans=
{1x2cell}
>>class{2}
(2)
ans=
[1x2struct]
>>class{2}{2}
ans=
1x2structarraywithfields:
number
name
course
score
>>class{2}{2}
(2)
ans=
number:
'20040734036'
name:
'高志刚'
course:
{'数电''高频'}
score:
[5665]
>>class{2}{2}
(2).name,class{2}{2}
(2).course,class{2}{2}
(2).score
ans=
高志刚
ans=
'数电''高频'
ans=
5665
>>class{2}{2}
(2).score
(1)=85;class{2}{2}
(2).course
(1),class{2}{2}
(2).score
(1)
ans=
'数电'
ans=
85
第五章习题及参考答案
解答:
>>symsabcx
>>f=(a*x^2+b*x+c-3)^3-a*(c*x^5+4*b*x-1)-18*b*((2+5*x)^7-a+c)
>>fx=collect(f,x)
fx=
-1406250*b*x^7+(a^3-3937500*b)*x^6+(3*b*a^2-a*c-4725000*b)*x^5+(-3150000*b+(c-3)*a^2+2*b^2*a+a*(2*(c-3)*a+b^2))*x^4+(-1260000*b+4*(c-3)*b*a+b*(2*(c-3)*a+b^2))*x^3+((c-3)*(2*(c-3)*a+b^2)+2*b^2*(c-3)+a*(c-3)^2-302400*b)*x^2+(3*(c-3)^2*b-4*b*a-40320*b)*x+(c-3)^3-18*b*(128+c-a)+a
>>fa=collect(f,a)
fa=
x^6*a^3+3*(b*x+c-3)*x^4*a^2+(18*b-c*x^5-4*b*x+1+3*(b*x+c-3)^2*x^2)*a+(b*x+c-3)^3-18*b*((2+5*x)^7+c)
解答:
>>symsxy
>>f=x^2*y+x*y-x^2-2*x;
>>g=-(1/4)*x*exp(-2*x)+(3/16)*exp(-2*x);
>>fx=collect(f)
fx=
(y-1)*x^2+(y-2)*x
>>gepx=collect(g,exp(-2*x))
gepx=
(-1/4*x+3/16)*exp(-2*x)
解答:
(1)
>>symsx
>>f=x^3-3*x^2-3*x+1;
>>F=factor(f)
F=
(x+1)*(x^2-4*x+1)
(2)
>>symsx
>>g=x^3-7*x+6;
>>G=factor(g)
G=
(x-1)*(x-2)*(x+3)
解答:
>>symsx
>>f1=cos(x)+sqrt(-sin(x)^2);
>>f2=x^3+3*x^2+3*x+1;
>>simple(f1)
simplify:
cos(x)+(-1+cos(x)^2)^(1/2)
radsimp:
cos(x)+i*sin(x)
combine(trig):
cos(x)+1/2*(-2+2*cos(2*x))^(1/2)
factor:
cos(x)+(-sin(x)^2)^(1/2)
expand:
cos(x)+(-sin(x)^2)^(1/2)
combine:
cos(x)+1/2*(-2+2*cos(2*x))^(1/2)
convert(exp):
1/2*exp(i*x)+1/2/exp(i*x)+1/4*4^(1/2)*((exp(i*x)-1/exp(i*x))^2)^(1/2)
convert(sincos):
cos(x)+(-sin(x)^2)^(1/2)
convert(tan):
(1-tan(1/2*x)^2)/(1+tan(1/2*x)^2)+(-4*tan(1/2*x)^2/(1+tan(1/2*x)^2)^2)^(1/2)
collect(x):
cos(x)+(-sin(x)^2)^(1/2)
mwcos2sin:
cos(x)+(-sin(x)^2)^(1/2)
ans=
cos(x)+i*sin(x)
>>simple(f2)
simplify:
x^3+3*x^2+3*x+1
radsimp:
x^3+3*x^2+3*x+1
combine(trig)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 基础 及其 应用 教程 周开利邓 春晖 课后 标准答案