MATLAB程序设计与应用第二版课后题及实验答案全 刘卫国
更新时间:2023-03-20 20:02:01 阅读量: 实用文档 文档下载
第二章
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 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 = 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 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函数: >> x=linspace(-10,10,200); >> y=[]; >> for x0=x if x0>0 y=[y,x0.^2+(1+x0).^(1/4)+5]; elseif x0==0 y=[y,0]; elseif x0<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=[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 = (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) 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 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. 函数文件: function f=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.6354 0.3734 15. A=[-1 2 0;-1 2 -1;-1 2 -1;-1 2 -1;0 2 -1]; d=[-1;0;1]; B=spdiags(A,d,5,5); b=[1 0 0 0 0]'; x=(inv(B)*b)' x = 0.8333 0.6667 0.5000 0.3333 0.1667 实验一 MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。
正在阅读:
MATLAB程序设计与应用第二版课后题及实验答案全 刘卫国03-20
北师大六年级下册品社教案05-04
天河地区1号泵站土建和机电安装项目施工项目施工设计方案 - 图文05-20
2016年污水源热泵现状及发展趋势分析03-30
一至四年级必背古诗10-16
初中历史论文:引资料活水,博课堂教学03-08
江西省景德镇市2017-2018学年八年级上学期期末质量检测数学试题12-06
四时中医养生调理五篇(夏长)03-25
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 卫国
- 课后
- 程序设计
- 答案
- 实验
- 应用
- MATLAB
- 三年级数学上册 口算除法教案 冀教版
- 16秋天大《国际法学》在线作业一 辅导资料
- 学生会宣传部特色活动方案
- 幼儿园中班健康活动教案:能干的我
- 2016 尔雅戏曲鉴赏答案
- 矿物学专业试验室介绍
- 陕西省消防条例(陕西省人民代表大会常务委员会公告第二十号)
- 第4章 三相交流电路
- 2002年北京大学传播学理论考研试题
- 三角形、勾股定理知识点 整理
- 美丽乡村建设工程施工组织设计
- 开足开齐课程_严格执行课程计划的保证措施
- “国培计划”——中西部项目和幼师国培项目实施方案
- 转变工作作风提高执行力主题活动自查材料【可编辑版】
- 赏析版2013年1月经济学人文章
- 大国兴衰的历史经验
- 最新2016-2017年中考语文模拟试卷 (5)
- 全球最大的宏观对冲基金解密:如何理解宏观经济运行框架
- 2020届河南省年上学期信阳市罗山县高三毕业班历史第一次调研试题答案
- 土木工程材料课程作业