资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MATLAB,高等数学实验,实验十一,向量、矩阵与行列式,实验目的,掌握矩阵的输入方法。掌握利用,MATLAB,命令对矩阵进行转置、加、减、数乘、相乘、乘方等运算,以及求逆矩阵和计算行列式。,11.1,学习,MATLAB,命令,11.1.1,向量的生成,(1),在“命令”窗口中直接输入向量,在,MATLAB,中,生成向量最简单的方法就是在“命令”窗口中按一定格式直接输入。输入的格式要求是:向量元素用“,”,括起来,元素之间用空格、逗号或分号相隔。需要注意的是,用空格或逗号相隔生成行向量,用分号相隔生成列向量。,(2),使用向量的生成函数,冒号生成法:基本格式为,vec=vec0:n:vecn,其中,vec,表示生成的向量,vec0,表示第一个元素,n,表示步长,vecn,表示最后一个元素。,使用线性等分向量函数,linspace,:基本格式为,vec=linspace(vec0,vecn,n),其中,vec,表示生成的向量,vec0,表示第一个元素,vecn,表示最后一个元素,n,表示生成向量元素的个数。,11.1.2,向量的点积、叉积和混合积,当向量,a,b,c,具有相同的维数时,用命令,dot(a,b),或,sum(a.*b),可以计算出向量,a,与,b,的点积,用命令,cross(a,b),计算三维向量,a,与,b,的叉积,用命令,dot(a,cross(b,c),计算三维向量,a,b,c,的混合积。,11.1.3,矩阵的生成,(1),在“命令”窗口中直接输入矩阵,把矩阵的元素直接排列到方括号中,每行内的元素用空格或逗号相隔,行与行之问用分号相隔。,(2),通过语句和函数产生矩阵,在命令窗口中输入如下语句,并按,Enter,键确认:,for i=1:5,for j=1:5,a(i,j)=1/(i+j-1);,end,end,a,另外,命令,zeros(m,n),生成,mn,阶零矩阵,;,命令,ones(m,n),生成,mn,阶全,1,矩阵,;,命令,eye(n),生成,n,阶零矩阵,;,命令“,v=1,2,4,5;E=diag(v)”,生成主对角线上的元素为,1,2,4,5,的对角矩阵,;,命令,rand(m,n),生成,mn,阶随机矩阵,其元素值在区间,(0.0,1.0),之间,;,命令,randn(n),生成,n,阶随机矩阵,其元素值服从正态分布,N(0,1);,命令,J=magic(n),生成,n,阶魔术矩阵,其每行、每列及每条主对角线的元素和相等,;,命令,K=hilb(n),生成,n,阶,Hilbert,矩阵,;,命令,L=invhilb(n),生成,n,阶反,Hilbert,矩阵,;,命令“,v=1 2 3 4 5;M=vander(v)”,生成,5,阶范德蒙德矩阵。,此外,还可以在,M,文件中建立矩阵,或从外部的数据文件中导入矩阵。,命令,transpose(A),或,A,给出矩阵,A,的转置,同型矩阵,A,与,B,的加法用,A+B,表示,数,k,与矩阵,A,的乘法,用,k*A,表示,矩阵,A,与矩阵,C,的乘法用,A*C,表示,矩阵,A,与矩阵,C,的除法,A/C,用,表示,命令,An,给出方阵,A,的,n,次幂,命令,inv(A),给出方阵,A,的逆,运用,det(A),命令可以求得一个方阵,A,的行列式,11.2,实验内容,向量的输入与向量的基本运算,【,例,1】,练习向量的输入,并求向量的转置。,输入:,a1=1,3,5,7,9%,输入行向量,a2=1 3 5 7 9%,输入行向量,逗号可以用空格代替,a3=1;3;5;7;9%,输入列向量,a4=transpose(a1),输出为:,a1=,1 3 5 7 9,a2=,1 3 5 7 9,a3=,1,3,5,7,9,a4=,1,3,5,7,9,【,例,2】,等差元素向量的生成。,输入:,vec1=10:5:80,%10,为第一个元素,5,为步长,10,为最后一个元素,vec2=linspace(10,80,15),%10,为第一个元素,80,为最后一个元素,15,为生成向量的元素个数,输出为:,vec1=,10 15 20 25 30 35 40 45 50 55 60 65 70 75 80,vec2=,10 15 20 25 30 35 40 45 50 55 60 65 70 75 80,【,例,3】,求向量,u=1,2,3,与,v=1,-1,0,的点积、叉积及混合积。,输入:,u=1,2,3;,v=1,-1,0;,a=dot(u,v)%,用向量的点积函数,dot,计算向量的内积,b=sum(u.*v)%,采用,sum,函数计算向量的内积,输出为:,a=-1,b=-1,输入:,w=cross(u,v)%,用向量的叉积函数,cross,计算向量的叉积,输出为:,w=,3 3-3,输入:,w=5,2,1;,dot(w,cross(u,v)%,计算向量的混合积,输出为:,w=,18,11.2.2,特殊矩阵的生成,【,例,4】,特殊矩阵的生成。,输入:,A=zeros(3,5)%,生成,35,阶零矩阵,B=zeros(4)%,生成,4,阶零矩阵,C=ones(3,5)%,生成,35,阶全,1,矩阵,D=ones(4)%,生成,4,阶全,1,矩阵,输出为:,A=,0 0 0 0 0,0 0 0 0 0,0 0 0 0 0,B=,0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 0,C=,1 1 1 1 1,1 1 1 1 1,1 1 1 1 1,D=,1 1 1 1,1 1 1 1,1 1 1 1,1 1 1 1,输入:,v=1,2,3,4;,E=diag(v),%,生成主对角线上的元素为,1,2,3,4,的对角矩阵,F=diag(v,2),%,生成在偏离主对角线以上两列的位置矩阵元素为,1,2,3,4,其余为,0,G=diag(v,-1),%,生成在偏离主对角线以下一列的位置矩阵元素为,1,2,3,4,其余为,0,输出为:,E=,1 0 0 0,0 2 0 0,0 0 3 0,0 0 0 4,F=,0 0 1 0 0 0,0 0 0 2 0 0,0 0 0 0 3 0,0 0 0 0 0 4,0 0 0 0 0 0,0 0 0 0 0 0,G=,0 0 0 0 0,1 0 0 0 0,0 2 0 0 0,0 0 3 0 0,0 0 0 4 0,输入:,H=rand(2,3)%,生成,32,阶随机矩阵,其元素值在区间,(0.0,1.0),之间,I=randn(3)%,生成,3,阶随机矩阵,其元素值服从正态分布,N(0,1),J=magic(4)%,生成,4,阶魔术矩阵,其每行、每列及每条主对角线的元素和相等,输出为:,H=,0.8147 0.1270 0.6324,0.9058 0.9134 0.0975,I=,-0.4336 2.7694 0.7254,0.3426 -1.3499 -0.0631,3.5784 3.0349 0.7147,J=,16 2 3 13,5 11 10 8,9 7 6 12,4 14 15 1,输入:,K=hilb(3)%,生成,3,阶,Hilbert,矩阵,L=invhilb(3)%,生成,3,阶反,Hilbert,矩阵,输出为:,K=,1.0000 0.5000 0.3333,0.5000 0.3333 0.2500,0.3333 0.2500 0.2000,L=,9 -36 30,-36 192 -180,30 -180 180,输入:,v=1 2 3 4 5;,M=vander(v)%,生成,5,阶范德蒙德矩阵,输出为:,M=,1 1 1 1 1,16 8 4 2 1,81 27 9 3 1,256 64 16 4 1,625 125 25 5 1,11.2.3,矩阵的转置,【,例,5】,求矩阵的转置。,输入:,A=1,3,5,1;7,4,6,1;2,2,3,4,B=transpose(A),输出为:,A=,1 3 5 1,7 4 6 1,2 2 3 4,B=,1 7 2,3 4 2,5 6 3,1 1 4,矩阵的加法、数乘和矩阵乘法,【例,6,】设,求,A+B,4B-2A,。,输入:,A=3,4,5;4,2,6;,B=4,2,7;1,9,2;,C=A+B,D=4*B-2*A,输出为:,C=,7 6 12,5 11 8,D=,10 0 18,-4 32 -4,如果矩阵,A,的列数等于矩阵,B,的行数,则可进行求,AB,的运算。系统中乘法运算符为“,*,”,即用,A*B,求,A,与,B,的乘积。对方阵,A,可用,An,求其,n,次幂。,【例,7,】设,求矩阵,A,与,B,的乘积。,输入:,A=3,4,5,2;4,2,6,3;,B=4,2,7;1,9,2;0,3,5;8,4,1;,A*B,输出为:,ans=,32 65 56,42 56 65,输入:,hilb(3)*invhilb(3),%,生成,3,阶,Hilbert,矩阵左乘,3,阶反,Hilbert,矩阵,输出为:,ans=,1 0 0,0 1 0,0 0 1,【例,8,】设,求,与,并求,。,输入:,A=4,2,7;1,9,2;0,3,5;,B=1;0;1;,A*B,输出为:,ans=,11,3,5,这是列向量,B,右乘矩阵,A,的结果。,如果输入:,B*A,输出为:,ans=4 5 12,这是行向量,B,左乘矩阵,A,的结果 。,输入:,A3,输出为:,ans=,119 660 555,141 932 444,54 477 260,11.2.5,求方阵的行列式,运用,det,命令可以求得一个方阵的行列式。,【例,9,】求行列式,的值。,输入:,A=3,1,-1,2;-5,1,3,-4;2,0,1,-1;1,-5,3,-3;,det(A),输出为:,ans=,40.0000,【例,10,】求,的值。,输入:,syms a b c d,A=a2+(1/a)2 a 1/a 1;b2+(1/b)2 b 1/b 1;c2+(1/c)2 c 1/c 1;d2+(1/d)2 d 1/d 1;,det(A),输出为:,ans=,a/(b*c2)+(a*c2)/b-a/(b2*c)-(a*b2)/c-b/(a*c2)-(b*c2)/a+c/(a*b2)+(b2*c)/a+b/(a2*c)-c/(a2*b)+(a2*b)/c-(a2*c)/b-a/(b*d2)-(a*d2)/b+a/(b2*d)+(a*b2)/d+b/(a*d2)+(b*d2)/a-d/(a*b2)-(b2*d)/a-b/(a2*d)+d/(a2*b)-(a2*b)/d+(a2*d)/b+a/(c*d2)+(a*d2)/c-a/(c2*d)-(a*c2)/d-c/(a*d2)-(c*d2)/a+d/(a*c2)+(c2*d)/a+c/(a2*d)-d/(a2*c)+(a2*c)/d-(a2*d)/c-b/(c*d2)-(b*d2)/c+b/(c2*d)+(b*c2)/d+c/(b*d2)+(c*d2)/b-d/(b*c2)-(c2*d)/b-c/(b2*d)+d/(b2*c)-(b2*c)/d+(b2*d)/c,再输入:,simple(det(A),输出为:,ans=,-(a*b*c*d-1)*(a-b)*(a-c)*(a-d)*(b-c)*(b-d)*(c-d)/(a2*b2*c2*d2),【例,11,】计算范德蒙德行列式,的值。,输入:,syms x1 x2 x3 x4 x5,A=1,1,1,1,1;x1 x2 x3 x4 x5;(x1)2(x2)2(x3)2(x4)2(x5)2;(x1)3(x2)3(x3)3(x4)3(x5)3;(x1)4(x2)4(x3)4(x4)4(x5)4;,d1=simple(d
展开阅读全文