MATLAB程序设计与应用第二版课后题答案2可编辑修改word版.docx
- 文档编号:24229300
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:28
- 大小:250.65KB
MATLAB程序设计与应用第二版课后题答案2可编辑修改word版.docx
《MATLAB程序设计与应用第二版课后题答案2可编辑修改word版.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计与应用第二版课后题答案2可编辑修改word版.docx(28页珍藏版)》请在冰豆网上搜索。
MATLAB程序设计与应用第二版课后题答案2可编辑修改word版
3.设矩阵A为
第二章
A=[24239216;6574241121;345987521;8424253121;4321456421];
(1)B=A(2:
5,1:
2:
5)
B=
65
24
21
34
98
21
8
42
121
43
45
21
(2)A(7)=[]
A=
246534843235422192498424521117553
6462121121
21
(3)A+30
(4)size(A);ndims(A)
(5)题目有误
(6)reshape(x,3,4)
(7)abs(x)
(8)char(x)
4.L1=
000
0
1
0
0
0
0
L2=
111
1
1
0
0
0
0
L3=
000
1
1
1
0
0
0
L4=
456
5.
(1)B=A(1:
3,:
)
C=A(:
1:
2)
D=A(2:
4,3:
4)E=B*C
23.0000
10.0000
-0.7780
0
41.0000
-45.0000
65.0000
5.0000
32.0000
5.0000
0
32.0000
23.0000
10.0000
41.0000
-45.0000
32.0000
5.0000
6.0000
-9.5400
B=
C=
D=
65.00005.0000
032.0000
54.00003.1400
E=
1.0e+003*
0.9141
-0.2239
1.2080
2.7123
1.1330
-0.2103
(2)E ans= 0 1 0 0 0 1 E&D ans= 1 1 0 1 1 1 E|D ans= 1 1 1 1 1 1 ~D|~Eans= 0 0 1 0 0 0 find(A>=10&A<25)ans= 6. all(A) 1 5 ans=0 any(A)ans= 1 isnan(A)ans= 0100000 isinf(A)ans= 0011000 isfinite(A)ans= 1000111 7. A (1).x1=’学号’;A (1).x2=’姓名’;A (1).x3=’专业’;A (1).x4.x41=’成绩1’;………. A (2).x1=’学号’;A (2).x2=’姓名’;A (2).x3=’专业’;A (2).x4.x41=’成绩1’;………. A(3).x1=’学号’;A(3).x2=’姓名’;A(3).x3=’专业’;A(3).x4.x41=’成绩1’;………. A(4).x1=’学号’;A(4).x2=’姓名’;A(4).x3=’专业’;A(4).x4.x41=’成绩1’;………. A(5).x1=’学号’;A(5).x2=’姓名’;A(5).x3=’专业’;A(5).x4.x41=’成绩1’;………. 8. (1) size(B)ans= 22 ndims(B)ans= 2 (2) B (2) ans= [3x3double B(4) ans= {3x3cell} (3)B(3)=[]B= [1][3x3double]{3x3cell}B{3}=[] B= [1][3x3double][] 1. 第三章 (1)A=eye(3) (2)A=100+100*rand(5,6) (3)A=1+sqrt(0.2)*randn(10,50)(4)B=ones(size(A))(5)A+30*eye(size(A))(6)B=diag(diag(A)) 2. B=rot90(A)C=rot90(A,-1) 3. B=inv(A);A的逆矩阵C=det(A);A的行列式的值D=A*B E=B*A D=E因此A与A-1是互逆的。 4. A=[42-1;3-12;1230]; b=[2;10;8]; x=inv(A)*bx= 5. (1) -6.0000 26.6667 27.3333 diag(A);主对角线元素 ans= 1 1 5 9 triu(A);上三角阵 ans= 1 -1 2 3 0 1 -4 2 0 0 5 2 0 0 0 9 tril(A) ans= ;下三角阵 1 0 0 0 5 1 0 0 3 0 5 0 11 15 0 9 rank(A) ans= ;秩 4 norm(A) ans= ;范数 21.3005 cond(A);条件数 ans= 11.1739 trace(A);迹 ans= 16 (2)略 6. A=[110.5;110.25;0.50.252]A= 1.00001.00000.5000 1.00001.00000.2500 0.50000.25002.0000[V,D]=eig(A) V= 0.72120.44430.5315 -0.68630.56210.4615 -0.0937-0.69760.7103 D= -0.016600 01.48010 002.5365 1.a=input('请输入一个4位数: ');while(a<1000|a>9999) 第四章 a=input('输入错误,请重新输入一个4位数: ');end b=fix(a/1000);c=rem(fix(a/100),10);d=rem(fix(a/10),10);e=rem(a,10); b=b+7;c=c+7;d=d+7;e=e+7;b=rem(b,10); c=rem(c,10); d=rem(c,10); e=rem(e,10);g=b;b=d;d=g;g=c;c=e;e=g;a=1000*d+100*e+10*b+c; disp(['加密后: ',num2str(a)]) 2.a=input('请输入a: '); b=input('请输入b: '); c=input('请输入c: '); x=0.5: 1: 5.5;x1=(x>=0.5&x<1.5); x2=(x>=1.5&x<3.5);x3=(x>=3.5&x<=5.5); y1=a.*(x.^2)+b.*x+c;y2=a*(sin(b)^c)+x;y3=log(abs(b+c./x));y=y1.*x1+y1.*x2+y3.*x3;disp(y)3.x=fix(rand(1,20)*89)+10;x1=fix(sum(x)/20); disp(['平均数是: ',num2str(x1)])m=(rem(x,2)==0&x n=find(m); disp(['小于平均数的数是: ',num2str(x(n))]);4.A=input('请输入20个数: '); n=A; a=n;b=n;forn=Aifa>=na=n; elseifb<=nb=n; endend disp(['min: ',num2str(a)]) disp(['max: ',num2str(b)]) 请输入20个数: [1234567891011121314151617181920] min: 1max: 20 5.s=0;x=0; forn=1: 64c=2^x;x=x+1;s=s+c; end disp(['2的0次方到63次方的和是: ',num2str(s)])2的0次方到63次方的和是: 184********709552000 6, (1)sum1=0; forn=1: 100 x=(-1)^(n+1)*(1/n);sum1=sum1+x; end disp(['当n取100时: sum=',num2str(sum1)]) 当n取100时: sum=0.68817 sum2=0; forn=1: 1000 x=(-1)^(n+1)*(1/n);sum2=sum2+x; end disp(['当n取1000时: sum=',num2str(sum2)]) 当n取1000时: sum=0.69265 sum3=0; forn=1: 10000 x=(-1)^(n+1)*(1/n);sum3=sum3+x; end disp(['当n取10000时: sum=',num2str(sum3)]) 当n取10000时: sum=0.6931 (2) sum1=0; forn=1: 2: 100 x=(-1)^(n+1)*(1/(n+1)); sum1=sum1+x;end disp(['当n取100时: sum=',num2str(sum1)]) 当n取100时: sum=2.2496 sum1=0; forn=1: 2: 1000 x=(-1)^(n+1)*(1/(n+1)); sum1=sum1+x;end disp(['当n取1000时: sum=',num2str(sum1)]) 当n取1000时: sum=3.3964 sum1=0; forn=1: 2: 10000 x=(-1)^(n+1)*(1/(n+1)); sum1=sum1+x;end disp(['当n取10000时: sum=',num2str(sum1)]) 当n取10000时: sum=4.5473(3) sum1=0; forn=1: 100x=(1/4)^n;sum1=sum1+x;end disp(['当n取100时: sum=',num2str(sum1)]) 当n取100时: sum=0.33333 sum1=0; forn=1: 1000x=(1/4)^n;sum1=sum1+x;end disp(['当n取1000时: sum=',num2str(sum1)]) 当n取1000时: sum=0.33333 sum1=0; forn=1: 10000x=(1/4)^n;sum1=sum1+x;end disp(['当n取10000时: sum=',num2str(sum1)]) 当n取1000时: sum=0.33333(4) sum1=0; forn=1: 100 x=[(2*n)*(2*n)]/[(2*n-1)*(2*n+1)];sum1=sum1+x; end disp(['当n取100时: sum=',num2str(sum1)]) 当n取100时: sum=100.4975 sum1=0; forn=1: 1000 x=[(2*n)*(2*n)]/[(2*n-1)*(2*n+1)];sum1=sum1+x; end disp(['当n取1000时: sum=',num2str(sum1)]) 当n取1000时: sum=1000.4998 sum1=0; forn=1: 10000x=[(2*n)*(2*n)]/[(2*n-1)*(2*n+1)];sum1=sum1+x; end disp(['当n取10000时: sum=',num2str(sum1)]) 当n取10000时: sum=10000.57, functionf=factor(n);f (1)=1;f (2)=1; fork=3: n f(k)=f(k-1)+f(k-2);end 运行结果: f=factor(10) f=11235813213455 8.function[f1,f2]=factor(a,b);f1=a*b; f2=a.*b; 运行结果: [f1,f2]=factor([1,2;12],[13;13]) f1= 39 39 f2= 16 16 9 functionf=factor(n,m);y=0; fork=1: n y=y+k^m; end 10. (1)S=108 (2)x=41220 y=246 1. (1)x=-10: 0.1: 10;y=100./(1+x.^2); plot(x,y) 第五章 (2)x=-10: 0.1: 10; y=1/(2*pi)*exp(-x.^2/2);plot(x,y) (3)ezplot('x^2+y^2=1') (4) t=-10: 0.1: 10; x=t.^2;y=5*t.^3;plot(x,y) 2. (1) theta=0: 0.01: 2*pi;rho=5*cos(theta)+4;polar(theta,rho) (2) theta=0.001: 0.1: 2*pi;rho=12./sqrt(theta);polar(theta,rho) (3)theta=0.001: 0.1: 2*pi;rho=5./cos(theta)-7;polar(theta,rho) (4) theta=0.001: 0.1: 2*pi;rho=pi/3.*theta.^2;polar(theta,rho) 3. (1) t=0: pi/100: 2*pi;x=cos(t); y=sin(t);z=t; plot3(x,y,z) (2) u=0: pi/100: 2*pi;v=0: pi/100: 2*pi;x=(1+cos(u)).*cos(v); y=(1+cos(u)).*sin(v);z=sin(u); plot3(x,y,z) (3) (4) 5. plot函数: >> >>plot(x,y) fplot函数: fplot('(x<0).*(x.^3+sqrt(1-x)-5)+(x==0).*0+(x>0).*(x.^2+(1+x).^(1/4)+5)',[-10,10]) 第六章 1. A=randn(10,5) (1)mean(A);均值std(A);标准方差 (2)max(max(A));最大元素min(min(A));最小元素 (3)B=sum(A,2);A每行元素的和sum(B);A全部元素之和 (4)sort(A);A的每列元素按升序排列sort(A,2,’descend’);A的每行元素按将序排列 2. (1) (2) X=[149162536496481100];Y=1: 10; X1=1: 100; Y1=interp1(X,Y,X1,'cubic') 3. x=[165123150123141]; y=[187126172125148]; P=polyfit(x,y,3)P= 1.0e+003* -0.00000.0013-0.17798.4330 所以它的线性拟合曲线为: p(x)=1.3x2—177.9x+8433 4. (1)P1=[032];P2=[5-12];P3=[10-0.5]; P=conv(conv(P1,P2),P3) P= 015.00007.0000-3.50000.5000-2.0000-2.0000 所以P(x)=15x5+7x4-3.5x3+0.5x2-2x-2 (2) roots(P)ans= 0.7071 0.1000+0.6245i 0.1000-0.6245i -0.7071 -0.6667 (3)i=0: 10; xi=0.2*i;polyval(P,xi)ans= -2.0000-2.3920-2.6112-1.70242.710415.000042.1120 94.1408184.9056332.5264560.0000 5. (1) 建立函数文件: functionf=fxy(u)x=u (1);y=u (2); f=3.*x.^2+2*x.*y+y.^2 在命令窗口中输入以下命令: [U,fmin]=fminsearch('fxy',[1,1])结果: U= 1.0e-004* -0.06750.1715 fmin= 1.9920e-010 (2) f=inline('-sin(x)-cos(x.^2)');fmax=fminbnd(f,0,pi) fmax= 0.7310 6. (1)x=[pi/6pi/4pi/3];f=inline('sin(x).^2+cos(x).^2'); dx=diff(f([x,5*pi/12]))/(pi/12)可参见第157页例题6.19dx= 000 x=pi/2时单独计算: x=pi/2; f=inline('sin(x).^2+cos(x).^2'); diff(f([x,pi]))/(pi/2)ans= 0 (2) x=1: 3; f=inline('sqrt(x.^2+1)'); dx=diff(f([x,4])) 结果: dx= 0.82190.92620.9608 7. (1)f=inline('sin(x).^5.*sin(5*x)');quad(f,0,pi) ans= 0.0982 (2)f=inline('(1+x.^2)./(1+x.^4)');quad(f,-1,1) ans= 2.2214 (3)f=inline('x.*sin(x)./(1+cos(x).^2)');quad(f,0,pi) ans= 2.4674 (4)f=inline('abs(cos(x+y))');dblquad(f,0,pi,0,pi) ans= 6.2832 8. N=64;%采样点数 T=5;%采样时间终点t=linspace(0,T,N);%给出N个采样时间ti(i=1: N)y=exp(-t);%求各采样点样本值y dt=t (2)-t (1);%采样周期 f=1/dt;%采样频率 Y=fft(y);%计算y的快速傅里叶变换Y F=Y(1: N/2+1);%F(k)=Y(k) f=f*(0: N/2)/N;%使频率轴f从0开始 plot(f,abs(F))%绘制振幅-频率图 9. (1) 矩阵求逆法: A=[235;374;1-71]; b=[10;3;5]; x=inv(A)*bx= -1.8060 -0.5373 3.0448 矩阵除法法: A=[235;374;1-71]; b=[10;3;5]; x=A\bx= -1.8060 -0.5373 3.0448 矩阵分解法: A=[235;374;1-71]; b=[10;3;5]; [L,U]=lu(A); x=U\(L\b)x= -1.8060 -0.5373 3.0448 (2)方法同 (1) 10. 函数文件: line_solution(A,b)function[x,y]=line_solution(A,b)[m,n]=size(A); y=[]; ifnorm(b)>0 ifrank(A)==rank([A,b])ifrank(A)==n disp('原方程组有唯一解x'); x=A\b;else disp('原方程组有无穷个解,特解为x,齐次方程组的基础解系为y'); x=A\b;y=null(A,'r');end disp('方程组无解'); x=[]; endelse disp('原方程组有零解x'); x=zeros(n,1);ifrank(A) disp('方程组有无穷个解,基础解系为y'); y=null(A,'r');end end 程序: A=[21-11;42-21;21-1-1];b=[1;2;1]; [x,y]=line_solution(A,b) 结果: 原方程组有无穷个解,特解为x,齐次方程组的基础解系为yWarning: Rankdeficient,rank=2,tol=4.3512e-015. >Inline_solutionat11 方程组无解 x= [] y= -0.5000 0.5000 1.0000 0 0 1.0000 0 0 11. (1) f=inline('x-sin(x)./x'); x=fzero(f,0.5)x= 0.8767 (2) f=inline('(sin(x).^2).*exp(-0.1.*x)-0.5.*abs(x)');x=fzero(f,1.5) x= 1.6738 12. 函数文件: functionf=fxy(u)x=u (1) y=u (2) f (1)=x-0.6*sin(x)-0.3*cos(y) f (2)=y-0.6*cos(x)+0.3*sin(y) 在命令窗口输入以下命令: x=fsolve('fxy',[0.5,0.5],optimset('Display','off'))结果: x= 0.63540.3734 15. A=[-120;-12-1;-12-1;-12-1;02-1];d=[-1;0;1]; B=spdiags(A,d,5,5);b=[10000]'; x=(inv(B)*b)'x= 0.83330.66670.50000.33330.1667
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 程序设计 应用 第二 课后 答案 编辑 修改 word