MATALB习题.ppt

上传人:本田雅阁 文档编号:2977009 上传时间:2019-06-16 格式:PPT 页数:31 大小:288.01KB
返回 下载 相关 举报
MATALB习题.ppt_第1页
第1页 / 共31页
MATALB习题.ppt_第2页
第2页 / 共31页
MATALB习题.ppt_第3页
第3页 / 共31页
MATALB习题.ppt_第4页
第4页 / 共31页
MATALB习题.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《MATALB习题.ppt》由会员分享,可在线阅读,更多相关《MATALB习题.ppt(31页珍藏版)》请在三一文库上搜索。

1、,已知矩阵 11 12 13 14 21 22 23 24 A= 31 32 33 34 41 42 43 44 (1)A(:,1) (2) A(2,:) (3) A(2:3,2:3) (4) ones(2,2) (5) eye(2) (6) A,ones(2,2);eye(2) (7) diag(A) (8) diag(A,1) (9) diag(A,-1) (10) diag(A,2) 解:, A(:,1) ans = 11 21 31 41 A(2,:) ans = 21 22 23 24 A(2:3,2:3) ans = 22 23 32 33,矩阵输入: A=11,12,13,14;

2、21,22,23,24; 31,32,33,34;41,42,43,44 A= 11 12 13 14;21 22 23 24; 31 32 33 34;41 42 43 44, ones(2,2) ans = 1 1 1 1 eye(2) ans = 1 0 0 1 A,ones(2,2);eye(2) ans = 11 12 13 14 1 1 21 22 23 24 1 1 31 32 33 34 1 0 41 42 43 44 0 1, diag(A) ans = 11 22 33 44 diag(A,1) ans = 12 23 34 diag(A,-1) ans = 21 32 4

3、3 diag(A,2) ans = 13 24,2.已知向量a=(4 7 8),b=(9 6 5), (1)求a与b的内积(点积); (2)一个同时垂直于a与b的矢量c(叉积); (3)矢量a、b与c组成图形的面积(混合积)。 解:(1)解法一:a=4,7,8; b=9,6,5; dot(a,b) 解法二:sum(a.*b) 解法三: a*b (2)c=cross(a,b) (3)dot(a,cross(b,c),3.求A=1 2 3; 2 4 5; 3 5 6的逆矩阵A-1,特征值和特征向量及 A对应行列式的值。 解:逆矩阵: A=1 2 3; 2 4 5; 3 5 6; inv(A) 或e

4、ye(3)/A 特征值和特征向量: x,y=eig(A) (其中x为特征向量矩阵,y为特征值矩阵) 对应行列式的值: det(A),4.(1)输入如下矩阵 pi/3 pi/6 pi/2 (2) 求矩阵B1, B1中每一元素为对应矩阵中每一元素的正弦函数 (3) 求矩阵B2, B2中每一元素为对应矩阵中每一元素的余弦函数 (4) 求 B12+B22 (5) 求矩阵的特征值与特征矢量:称特征向量为,而特征值矩阵为 (6) 求Msin(L)M-1 (7)使用funm命令求矩阵A的正弦函数 (8) 证明 sin2A+cos2A=1 解: %(1) A=0 pi/3;pi/6 pi/2 A = 0 1.

5、0472 0.5236 1.5708 %(2) B1=sin(A) B1 = 0 0.8660 0.5000 1.0000, %(3) B2=cos(A) B2 = 1.0000 0.5000 0.8660 0.0000 %(4) B1.2+B2.2 ans = 1 1 1 1 %(5) M,L=eig(A) M = -0.9628 -0.4896 0.2703 -0.8719 L = -0.2940 0 0 1.8648, %(6) M*sin(L)*inv(M) ans = -0.1200 0.6048 0.3024 0.7873 %(7) funm(A,sin)或 funm(A,sin)

6、 ans = -0.1200 0.6048 0.3024 0.7873 %(8) sin(A)2+cos(A)2 ans = 1.8660 1.3660 1.3660 1.8660 sin(A).2+cos(A).2 ans = 1 1 1 1,5.按题目要求用MATLAB命令完成下列矩阵运算 (1) 使用rand命令产生5个2x2随机矩阵A,B,C,D,E (2) 求矩阵F(使用和不使用inv命令两种情况) F=A-1B+C-1(D-1E) 解:, %(1) A=rand(2) A = 0.9501 0.6068 0.2311 0.4860 B=rand(2) B = 0.8913 0.45

7、65 0.7621 0.0185 C=rand(2) C = 0.8214 0.6154 0.4447 0.7919, D=rand(2) D = 0.9218 0.1763 0.7382 0.4057 E=rand(2) E = 0.9355 0.4103 0.9169 0.8936 %(2) F=inv(A)*B+inv(C)*(inv(D)*E) F = 0.5633 -13.2104 1.9748 15.8134 F1=AB+C(DE) F1 = 0.5633 -13.2104 1.9748 15.8134,6.已知矩阵,试求矩阵A的左右翻转矩阵,上下翻转矩阵,然后在工作空间中利用si

8、ze命令查看矩阵A的大小。 解: A=1 2 3;4 5 6;7 8 9 A = 1 2 3 4 5 6 7 8 9 fliplr(A) %左右翻转矩阵% ans = 3 2 1 6 5 4 9 8 7 flipud(A) %上下翻转矩阵% ans = 7 8 9 4 5 6 1 2 3 size(A) ans = 3 3,7.试用不同的方法建立数组A1 1.5 2.0 2.5 3.0,了解怎样访问数组A的第二个元素,然后将其更换为4.0,找出A中大于1的元素。 解: A=1 1.5 2.0 2.5 3.0 A = 1.0000 1.5000 2.0000 2.5000 3.0000 A=1,

9、1.5,2.0,2.5,3.0 A = 1.0000 1.5000 2.0000 2.5000 3.0000 A(2) ans = 1.5000 A(2)=4.0 A = 1.0000 4.0000 2.0000 2.5000 3.0000 b=find(A1) b = 2 3 4 5 %元素下标 B=A(b) B = 1.5000 2.0000 2.5000 3.0000,8、已知矩阵,试用MATLAB提供的关系运算命令将B中所有大于等于2的元素全改为0。 解: B=1 2;3 4; y=ones(2)*2 y = 2 2 2 2 xa=B xa.*B ans = 1 0 0 0,9.已知多

10、项式 , 试求两个多项式的和与乘积。 解:, a=1 2 -2; poly2sym(a) ans = x2+2*x-2 b=1 1 -3 1; poly2sym(b) ans = x3+x2-3*x+1 ab=conv(a,b) %乘法% ab = 1 3 -3 -7 8 -2 poly2sym(ab) ans = x5+3*x4-3*x3-7*x2+8*x-2, c=0 1 2 -2 c = 0 1 2 -2 poly2sym(c) ans = x2+2*x-2 d=c+b d = 1 2 -1 -1 poly2sym(d) ans = x3+2*x2-x-1,10.用5阶多项式对0,pi/

11、2上的正弦函数进行最小二乘拟合 x=0:pi/20:pi/2; y=sin(x); a=polyfit(x,y,5); x1=0:pi/30:pi*2; y1=sin(x1); y2=a(1)*x1.5+a(2)*x1.4+a(3)*x1.3+a(4)*x1.2+a(5)*x1+a(6); plot(x1,y1,b-,x1,y2, r* ) legend(原曲线,拟合曲线) axis(1,7,-1.2,4),11.(1)求方程 x4+7x3 +9x-20=0的全部根, (2)已知根求方程。 解(1) p=1 7 0 9 -20; r= roots(p) r = -7.2254 -0.4286

12、+ 1.5405i -0.4286 - 1.5405i 1.0826 (2)pp=poly(r) pp = 1.0000 7.0000 -0.0000 9.0000 -20.0000,12 求方程x-e-x=0的精确解和近似解。 解: s=solve(x-exp(-x)=0); %精确解 vpa(s) %近似解,默认有效位数 vpa(s,6) %有效位数为6,13、 求 的“商”及“余”多项式。 解: a=1 0 2; b=0 1 4; c=0 1 1; d=1 0 1 1; ab=conv(a,b) ab = 0 1 4 2 8 abc=conv(ab,c) abc = 0 0 1 5 6

13、10 8 e,r=deconv(abc,d) e = 0 0 1 5 r = 0 0 0 0 5 4 3 商:e。 余:r。,14.求解方程组 x1+x2+x3=6; 4*x2-x3=5; 2*x1-2*x2+x3=1. 解法一: a=1 1 1;0 4 1;2 2 1; b=6 5 1; x=ab 解法二: syms x1 x2 x3; x1,x2,x3=solve(x1+x2+x3=6,4*x2-x3=5,2*x1-2*x2+x3=1,x1,x2,x3),15、计算 。 解: p=1 0 0 8 p = 1 0 0 8 roots(p) ans = -2.0000 1.0000 + 1.7

14、321i 1.0000 - 1.7321i,16.求, a=sym(a); t=sym(t); x=sym(x);%定义符号变量 A=a t.3;t.*cos(x) log(x); diff(A) ans = 0, 0 -t*sin(x), 1/x diff(A,t,2) ans = 0, 6*t 0, 0,17.求, syms x t; A=1./log(t); int(A,t,0,x),1.在一个图形窗口中同时绘制正弦、余弦曲线其 MATLAB程序。 解: x=0:pi/100:2*pi; y1=sin(x); y2=cos(x); 方法一: plot(x,y1,x,y2) 方法二: pl

15、ot(x,y1) hold on plot(x,y2) legend(sin(x),cos(x); xlabel(Independent Variable X) ylabel(Dependent Variables Y1 and Y2) title(Sine and Cosine Curves) text(2,sin(2),leftarrow sin(x) text(2,cos(2),rightarrow cos(x),图像处理功能:,解:x=linspace(0,2*pi,60); y=sin(x); z=cos(x); t=sin(x)./(cos(x)+eps); ct=cos(x)./

16、(sin(x)+eps); subplot(2,2,1); plot(x,y); title(sin(x); axis (0 2*pi -1 1); subplot(2,2,2); plot(x,z); title(cos(x); axis (0 2*pi -1 1);,subplot(2,2,3); plot(x,t); title(tangent(x); axis (0 2*pi -40 40); subplot(2,2,4); plot(x,ct); title(cotangent(x); axis (0 2*pi -40 40);,2.在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线

17、,程序为:,3.绘制阶梯图 x=-2.5:0.25:2.5; y=exp(-x.*x); stairs(x,y); %绘制阶梯图形命令 title(stairs plot);,4.在0 2范围内绘制以Y轴为对数的二维曲线图。 y=|1000sin(4x)|+1 解: x=0:0.1*pi:2*pi; y=abs(1000.*sin(4.*x)+1; semilogy(x,y,-*) figure semilogx(x,y),5.试绘制以极坐标形式表示的图形: ,其中 的范围为 。 x=0:0.1.*pi:8*pi; y=cos(5*x/4)+1/3; polar(x,y),程序设计(M文件),

18、1、编制一个函数,使得该函数能对输入的两个数值进行比较,并返回其中的最小值。 解:1.菜单栏 fileNewM-file,编写程序,保存min.m, function min(a,b) if ab min=b; else min=a; end 2.在命令窗口输入min(23,24) min(23,24) ans = 23,a=input(行数为:); b=input(列数为:); for i=1:a; for j=1:b; c(i,j)=input(请输入:); end end disp(c) z=c(1,:); if(z=0) c(1,:) = %删除第一行 end 保存A.m,2.利用循环

19、语句进行程序设计:假设定义mn的矩阵A。判断矩阵A的第1行元素是否为0,若全为0,则从矩阵A中删除第1行。,在命令窗口中输入 A 行数为:2 列数为:2 请输入:1 请输入:2 请输入:1 请输入:2 1 2 1 2 行数为:2 列数为:2 请输入:0 请输入:0 请输入:1 请输入:2 0 0 1 2 c = 1 2,3.试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x为:x= 1 3 5 7 9 而经过颠倒处理后x中数据的次序应该为:x= 9 7 5 3 1 ,c=input(维数是); for i=1:c a(i)=input(数组的数为:); end for

20、 i=1:c b(i)=a(c-i+1); end disp(颠倒处理后); disp(b);,4.写一个MATLAB 小程序 findN01.m,求出最小的 n 值,使得 n! realmax。请问 n 的值是多少?此时 (n-1)! 的值又是多少?(realmax=21023),maxN = input(n最大值=); for n=1:maxN value = prod(1:n); if valuerealmax break; end end disp(n = ),disp(n); disp(n-1)! =) ,disp(prod(1:n-1);,5.通过M文件,画出下列分段函数所表示的曲

21、面。,a=2;b=2; x=-a:0.2:a;y=-b:0.2:b; for i=1:length(y) for j=1:length(x) if x(j)+y(i)1 z(i,j)=0.5457*exp(-0.75*y(i)2-3.75*x(j)2-1.5*x(j); elseif x(j)+y(i)=-1 z(i,j)=0.5457*exp(-0.75*y(i)2-3.75*x(j)2+1.5*x(j); else z(i,j)=0.7575*exp(-y(i)2-6.*x(j)2); end end end axis(-a,a,-b,b,min(min(z),max(max(z); colormap(winter); surf(x,y,z);,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1