MATLAB基础和应用教程周开利邓春晖课后答案Word文件下载.docx
- 文档编号:16907732
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:26
- 大小:596.08KB
MATLAB基础和应用教程周开利邓春晖课后答案Word文件下载.docx
《MATLAB基础和应用教程周开利邓春晖课后答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《MATLAB基础和应用教程周开利邓春晖课后答案Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
plot(xi,y0,'
xi,y1,xi,y3,'
plot(xi,y1-y0,xi,y3-y0);
插值和拟合方法相比较,都合理,误差也相近。
梯形法积分
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)
0.3979
积分区间改为-5~5:
x=-5:
5;
0.3989
-5,5)/(2*pi)
0.3989
积分区间改变了,两种积分的结果依然相同。
梯形积分中改变x的维数为2维数组
x(1,:
)=-5:
5
x(2,:
?
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('
z1=
0.1437
z2=
0.1104
z3=
0.1116
z4=
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
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
w=1.2;
tx=sor(A,b,imax,x0,tol,w);
fprintf('
j-1,tx(j,1),tx(j,2),tx(j,3),tx(j,4))
12.161.121.270.97
20.621.100.981.03
31.060.951.001.00
41.001.011.001.00
若取w=0.02,以下结果表明收敛速度更快:
11.841.091.120.89
20.941.021.021.00
tic;
[x,flag,relres,iter,resvec]=pcg(A,b,1e-6,10);
t1=toc
t1=
0.0064
用同样的方法计算得到不同迭代方法所用时间,迭代次数都取10次
Jacobi迭代法
0.0279
Gauss-Seidel迭代法
0.0221
SOR迭代法
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=
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('
[01.2],1,0.1)
0
0.9607
0.9138
0.8520
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),'
C.teacher
(1).age=35
D.teacher=(teacher.age
(1)=35)
(2)对于题
(1)创建的结构数组teacher,若进行下列操作,其结果为__A__。
fieldnames(teacher)
A.ans=
'
B.ans=
name
age
C.ans=
name:
'
age:
25
D.ans=
30
(3)对于题
(1)创建的结构数组teacher,若需要引用Smith的年龄,可以使用__BD__。
A.getfield(teacher,'
age
(2)'
)
B.getfield(teacher
(2),'
C.teacher.age
(2)
D.teacher
(2).age
(4)在MATLAB命令窗口输入语句:
则,再输入a1=teacher
(1)的结果为__A__,输入a2=teacher
(1).name的结果为__C__。
A.a1=
B.a1=
John
C.a2=
John
D.a2=
(5)在MATLAB命令窗口输入语句:
teacher1=struct('
teacher2=struct('
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
30
C.出错信息
D.a1=
teacher05=struct('
id'
xx010'
xx016'
},...
黎明'
王佳薇'
course'
{{'
高数'
},{'
电路'
模电'
}});
student05=struct('
number'
20050731021'
20050731031'
20050731036'
张小霞'
郭凯'
周明辉'
}},...
score'
{[708778],[829088],[889291]});
teacher05
(1)
ans=
id:
name:
course:
{'
}
teacher05
(2)
student05
(1)
number:
course:
score:
[708778]
student05
(2)
[829088]
student05(3)
[889291]
class05_strct{1}=teacher05;
class05_strct{2}=student05;
class05_strct{1}
(1),class05_strct{1}
(2)
class05_strct{2}
(1),class05_strct{2}
(2),class05_strct{2}(3)
teacher04=struct('
xx012'
姚大志'
数电'
高频'
student04=struct('
20040734005'
20040734036'
王雪梅'
高志刚'
}},'
{[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
score
class{2}{1}=
class{2}{2}=
score
class{2}
[1x2struct][1x2struct]
class
(2)
{1x2cell}
class{2}
(2)
[1x2struct]
class{2}{2}
class{2}{2}
(2)
[5665]
class{2}{2}
(2).name,class{2}{2}
(2).course,class{2}{2}
(2).score
高志刚
5665
class{2}{2}
(2).score
(1)=85;
class{2}{2}
(2).course
(1),class{2}{2}
(2).score
(1)
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)
(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)
g=x^3-7*x+6;
G=factor(g)
G=
(x-1)*(x-2)*(x+3)
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:
combine:
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):
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):
mwcos2sin:
simple(f2)
x^3+3*x^2+3*x+1
(x+1)^3
x^3+3*x^2+3*x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 基础 应用 教程 周开利邓 春晖 课后 答案