MATLAB程序设计和应用第二版课后题和实验答案解析全刘卫国.docx
- 文档编号:25057188
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:123
- 大小:1.40MB
MATLAB程序设计和应用第二版课后题和实验答案解析全刘卫国.docx
《MATLAB程序设计和应用第二版课后题和实验答案解析全刘卫国.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计和应用第二版课后题和实验答案解析全刘卫国.docx(123页珍藏版)》请在冰豆网上搜索。
MATLAB程序设计和应用第二版课后题和实验答案解析全刘卫国
第二章
3.设矩阵A为
A=[24239216;6574241121;345987521;8424253121;4321456421];
(1)B=A(2:
5,1:
2:
5)
B=
652421
349821
842121
434521
(2)A(7)=[]
A=
246534843235422192498424521117553646212112121
(3)A+30
(4)size(A);ndims(A)
(5)题目有误
(6)reshape(x,3,4)
(7)abs(x)
(8)char(x)
4.L1=
000010000
L2=
111110000
L3=
000111000
L4=
456
5.
(1)B=A(1:
3,:
)
C=A(:
1:
2)
D=A(2:
4,3:
4)
E=B*C
B=
23.000010.0000-0.77800
41.0000-45.000065.00005.0000
32.00005.0000032.0000
C=
23.000010.0000
41.0000-45.0000
32.00005.0000
6.0000-9.5400
D=
65.00005.0000
032.0000
54.00003.1400
E=
1.0e+003*
0.9141-0.2239
1.20802.7123
1.1330-0.2103
(2)E ans= 01 00 01 E&D ans= 11 01 11 E|D ans= 11 11 11 ~D|~E ans= 00 10 00 find(A>=10&A<25) ans= 1 5 6. all(A) 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)*b x= -6.0000 26.6667 27.3333 5. (1) diag(A);主对角线元素 ans= 1 1 5 9 triu(A);上三角阵 ans= 1-123 01-42 0052 0009 tril(A);下三角阵 ans= 1000 5100 3050 111509 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=A ifa>=n a=n; elseifb<=n b=n; end end disp(['min: ',num2str(a)]) disp(['max: ',num2str(b)]) 请输入20个数: [1234567891011121314151617181920] min: 1 max: 20 5.s=0; x=0; forn=1: 64 c=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: 100 x=(1/4)^n; sum1=sum1+x; end disp(['当n取100时: sum=',num2str(sum1)]) 当n取100时: sum=0.33333 sum1=0; forn=1: 1000 x=(1/4)^n; sum1=sum1+x; end disp(['当n取1000时: sum=',num2str(sum1)]) 当n取1000时: sum=0.33333 sum1=0; forn=1: 10000 x=(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: 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, 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函数: >>x=linspace(-10,10,200); >>y=[]; >>forx0=x ifx0>0 y=[y,x0.^2+(1+x0).^(1/4)+5]; elseifx0==0 y=[y,0]; elseifx0<0 y=[y,x0.^3+sqrt(1-x0)-5]; end end >>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.112094.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.19 dx= 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)*b x= -1.8060 -0.5373 3.0448 矩阵除法法: A=[235;374;1-71]; b=[10;3;5]; x=A\b x= -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=[]; end else 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,齐次方程组的基础解系为y Warning: Rankdeficient,rank=2,tol=4.3512e-015. >Inline_solutionat11 方程组无解 x= [] y= -0.50000.5000 1.00000 01.0000 00 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 实验一MATLAB运算基础 1.先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 (1) (2) ,其中 (3) (4) ,其中t=0: 0.5: 2.5 解: M文件: z1=2*sin(85*pi/180)/(1+exp (2)) x=[21+2*i;-0.455]; z2=1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 程序设计 应用 第二 课后 实验 答案 解析 卫国