收藏 分销(赏)

MATLAB程序设计与应用第二版课后题答案2.doc

上传人:a199****6536 文档编号:2377430 上传时间:2024-05-29 格式:DOC 页数:74 大小:398.01KB
下载 相关 举报
MATLAB程序设计与应用第二版课后题答案2.doc_第1页
第1页 / 共74页
MATLAB程序设计与应用第二版课后题答案2.doc_第2页
第2页 / 共74页
点击查看更多>>
资源描述
第二章 3.设矩阵A为 A=[24 23 9 21 6;65 74 24 11 21;34 5 98 75 21;8 42 42 53 121;43 21 45 64 21]; (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 = 24 65 34 8 43 23 5 42 21 9 24 98 42 45 21 11 75 53 64 6 21 21 121 21 (3)A+30 (4)size(A);ndims(A) (5)题目有误 (6)reshape(x,3,4) (7)abs(x) (8)char(x) 4. L1 = 0 0 0 0 1 0 0 0 0 L2 = 1 1 1 1 1 0 0 0 0 L3 = 0 0 0 1 1 1 0 0 0 L4 = 4 5 6 5.(1)B=A(1:3,:) C=A(:,1:2) D=A(2:4,3:4) E=B*C B = 23.0000 10.0000 -0.7780 0 41.0000 -45.0000 65.0000 5.0000 32.0000 5.0000 0 32.0000 C = 23.0000 10.0000 41.0000 -45.0000 32.0000 5.0000 6.0000 -9.5400 D = 65.0000 5.0000 0 32.0000 54.0000 3.1400 E = 1.0e+003 * 0.9141 -0.2239 1.2080 2.7123 1.1330 -0.2103 (2)E<D 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|~E ans = 0 0 1 0 0 0 find(A>=10&A<25) ans = 1 5 6. all(A) ans = 0 any(A) ans = 1 isnan(A) ans = 0 1 0 0 0 0 0 isinf(A) ans = 0 0 1 1 0 0 0 isfinite(A) ans = 1 0 0 0 1 1 1 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 = 2 2 ndims(B) ans = 2 (2) B(2) ans = [3x3 double B(4) ans = {3x3 cell} (3) B(3)=[] B = [1] [3x3 double] {3x3 cell} B{3}=[] B = [1] [3x3 double] [] 第三章 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=[4 2 -1;3 -1 2;12 3 0]; b=[2;10;8]; x=inv(A)*b x = -6.0000 26.6667 27.3333 5. (1) 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=[1 1 0.5;1 1 0.25;0.5 0.25 2] A = 1.0000 1.0000 0.5000 1.0000 1.0000 0.2500 0.5000 0.2500 2.0000 [V,D]=eig(A) V = 0.7212 0.4443 0.5315 -0.6863 0.5621 0.4615 -0.0937 -0.6976 0.7103 D = -0.0166 0 0 0 1.4801 0 0 0 2.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<x1); n=find(m); disp(['小于平均数的数是:',num2str(x(n))]); 4.A=input('请输入20个数:'); n=A; a=n; b=n; for n=A if a>=n a=n; elseif b<=n b=n; end end disp(['min:',num2str(a)]) disp(['max:',num2str(b)]) 请输入20个数:[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20] min:1 max:20 5.s=0; x=0; for n=1:64 c=2^x; x=x+1; s=s+c; end disp(['2的0次方到63次方的和是:',num2str(s)]) 2的0次方到63次方的和是:18446744073709552000 6,(1)sum1=0; for n=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; for n=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; for n=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; for n=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; for n=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; for n=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; for n=1:100 x=(1/4)^n; sum1=sum1+x; end disp(['当n取100时: sum=',num2str(sum1)]) 当n取100时: sum=0.33333 sum1=0; for n=1:1000 x=(1/4)^n; sum1=sum1+x; end disp(['当n取1000时: sum=',num2str(sum1)]) 当n取1000时: sum=0.33333 sum1=0; for n=1:10000 x=(1/4)^n; sum1=sum1+x; end disp(['当n取10000时: sum=',num2str(sum1)]) 当n取1000时: sum=0.33333 (4) sum1=0; for n=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; for n=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; for n=1:10000 x=[(2*n)*(2*n)]/[(2*n-1)*(2*n+1)]; sum1=sum1+x; end disp(['当n取10000时: sum=',num2str(sum1)]) 当n取10000时: sum=10000.5 7, function f=factor(n); f(1)=1;f(2)=1; for k=3:n f(k)=f(k-1)+f(k-2); end 运行结果: f=factor(10) f=1 1 2 3 5 8 13 21 34 55 8. function [f1,f2]=factor(a,b); f1=a*b; f2=a.*b; 运行结果: [f1,f2]=factor([1,2;1 2],[1 3;1 3]) f1 = 3 9 3 9 f2 = 1 6 1 6 9 function f=factor(n,m); y=0; for k=1:n y=y+k^m; end 10.(1)S=108 (2)x=4 12 20 y=2 4 6 第五章 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=[1 4 9 16 25 36 49 64 81 100]; Y=1:10; X1=1:100; Y1=interp1(X,Y,X1,'cubic') 3. x=[165 123 150 123 141]; y=[187 126 172 125 148]; P=polyfit(x,y,3) P = 1.0e+003 * -0.0000 0.0013 -0.1779 8.4330 所以它的线性拟合曲线为:p(x)=1.3x2—177.9x+8433 4. (1)P1=[0 3 2];P2=[5 -1 2];P3=[1 0 -0.5]; P=conv(conv(P1,P2),P3) P = 0 15.0000 7.0000 -3.5000 0.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.7024 2.7104 15.0000 42.1120 94.1408 184.9056 332.5264 560.0000 5. (1) 建立函数文件: function f=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.0675 0.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/6 pi/4 pi/3]; f=inline('sin(x).^2+cos(x).^2'); dx=diff(f([x,5*pi/12]))/(pi/12) 可参见第157页例题6.19 dx = 0 0 0 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.8219 0.9262 0.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=[2 3 5;3 7 4;1 -7 1]; b=[10;3;5]; x=inv(A)*b x = -1.8060 -0.5373 3.0448 矩阵除法法: A=[2 3 5;3 7 4;1 -7 1]; b=[10;3;5]; x=A\b x = -1.8060 -0.5373 3.0448 矩阵分解法: A=[2 3 5;3 7 4;1 -7 1]; 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=[]; if norm(b)>0 if rank(A)==rank([A,b]) if rank(A)==n disp('原方程组有唯一解x'); x=A\b; else disp('原方程组有无穷个解,特解为x,齐次方程组的基础解系为y'); x=A\b; y=null(A,'r'); end disp('方程组无解'); x=[]; end else disp('原方程组有零解x'); x=zeros(n,1); if rank(A)<n disp('方程组有无穷个解,基础解系为y'); y=null(A,'r'); end end 程序: A=[2 1 -1 1;4 2 -2 1;2 1 -1 -1]; b=[1;2;1]; [x,y]=line_solution(A,b) 结果: 原方程组有无穷个解,特解为x,齐次方程组的基础解系为y Warning: Rank deficient, rank = 2, tol = 4.3512e-015. > In line_solution at 11 方程组无解 x = [] y = -0.5000 0.5000 1.0000 0 0
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服