11实验十一 向量、矩阵与行列式

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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键确认:fori=1:5forj=1:5a(i,j)=1/(i+j-1);endenda另外,命令zeros(m,n)生成m×n阶零矩阵;命令ones(m,n)生成m×n阶全1矩阵;命令eye(n)生成n阶零矩阵;命令“v=[1,2,4,5];E=diag(v)”生成主对角线上的元素为1,2,4,5的对角矩阵;命令rand(m,n)生成m×n阶随机矩阵,其元素值在区间(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=[12345];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用表示命令A^n给出方阵A的n次幂命令inv(A)给出方阵A的逆运用det(A)命令可以求得一个方阵A的行列式TA1AC11.2实验内容11.2.1向量的输入与向量的基本运算【例1】练习向量的输入,并求向量的转置。输入:a1=[1,3,5,7,9]%输入行向量a2=[13579]%输入行向量,逗号可以用空格代替a3=[1;3;5;7;9]%输入列向量a4=transpose(a1)输出为:a1=13579a2=13579a3=13579a4=13579【例2】等差元素向量的生成。输入:vec1=10:5:80%10为第一个元素,5为步长,10为最后一个元素vec2=linspace(10,80,15)%10为第一个元素,80为最后一个元素,15为生成向量的元素个数输出为:vec1=101520253035404550556065707580vec2=101520253035404550556065707580【例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=-1b=-1输入:w=cross(u,v)%用向量的叉积函数cross计算向量的叉积输出为:w=33-3输入:w=[5,2,1];dot(w,cross(u,v))%计算向量的混合积输出为:w=1811.2.2特殊矩阵的生成【例4】特殊矩阵的生成。输入:A=zeros(3,5)%生成3×5阶零矩阵B=zeros(4)%生成4阶零矩阵C=ones(3,5)%生成3×5阶全1矩阵D=ones(4)%生成4阶全1矩阵输出为:A=000000000000000B=0000000000000000C=111111111111111D=1111111111111111输入:v=[1,2,3,4];E=diag(v)%生成主对角线上的元素为1,2,3,4的对角矩阵F=diag(v,2)%生成在偏离主对角线以上两列的位置矩阵元素为1,2,3,4,其余为0G=diag(v,-1)%生成在偏离主对角线以下一列的位置矩阵元素为1,2,3,4,其余为0输出为:E=1000020000300004F=001000000200000030000004000000000000G=0000010000020000030000040输入:H=rand(2,3)%生成3×2阶随机矩阵,其元素值在区间(0.0,1.0)之间I=randn(3)%生成3阶随机矩阵,其元素值服从正态分布N(0,1)J=magic(4)%生成4阶魔术矩阵,其每行、每列及每条主对角线的元素和相等输出为:H=0.81470.12700.63240.90580.91340.0975I=-0.43362.76940.72540.3426-1.3499-0.06313.57843.03490.7147J=16231351110897612414151输入:K=hilb(3)%生成3阶Hilbert矩阵L=invhilb(3)%生成3阶反Hilbert矩阵输出为:K=1.00000.50000.33330.50000.33330.25000.33330.25000.2000L=9-3630-36192-18030-180180输入:v=[12345];M=vander(v)%生成5阶范德蒙德矩阵输出为:M=111111684218127931256641641625125255111.2.3矩阵的转置【例5】求矩阵的转置。输入:A=[1,3,5,1;7,4,6,1;2,2,3,4]B=transpose(A)输出为:A=135174612234B=17234256311411.2.4矩阵的加法、数乘和矩阵乘法【例6】设,,求A+B,4B-2A。输入:A=[3,4,5;4,2,6];B=[4,2,7;1,9,2];C=A+BD=4*B-2*A输出为:C=76125118D=10018-432-4345426A427192B如果矩阵A的列数等于矩阵B的行数,则可进行求AB的运算。系统中乘法运算符为“*”,即用A*B求A与B的乘积。对方阵A,可用A^n求其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*B34524263A427192035841B输出为:ans=326556425665输入:hilb(3)*invhilb(3)%生成3阶Hilbert矩阵左乘3阶反Hilbert矩阵输出为:ans=100010001【例8】设,,求与,并求。输入:A=[4,2,7;1,9,2;0,3,5];B=[1;0;1];A*B输出为:ans=1135这是列向量B右乘矩阵A的结果。427192035A101BABTBA3A如果输入:B’*A输出为:ans=4512这是行向量B左乘矩阵A的结果。输入:A^3输出为:ans=11966055514193244454477260TBA11.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.00003112513420111533D【例10】求的值。输入:symsabcdA=[a^2+(1/a)^2a1/a1;b^2+(1/b)^2b1/b1;c^2+(1/c)^2c1/c1;d^2+(1/d)^2d1/d1];det(A)22222222111111111111aaaabbbbDccccdddd输出为:ans=a/(b*c^2)+(a*c^2)/b-a/(b^2*c)-(a*b^2)/c-b/(a*c^2)-(b*c^2)/a+c/(a*b^2)+(b^2*c)/a+b/(a^2*c)-c/(a^2*b)+(a^2*b)/c-(a^2*c)/b-a/(b*d^2)-(a*d^2)/b+a/(b^2*d)+(a*b^2)/d+b/(a*d^2)+(b*d^2)/a-d/(a*b^2)-(b^2*d)/a-b/(a^2*d)+d/(a^2*b)-(a^2*b)/d+(a^2*d)/b+a/(c*d^2)+(a*d^2)/c-a/(c^2*d)-(a*c^2)/d-c/(a*d^2)-(c*d^2)/a+d/(a*c^2)+(c^2*d)/a+c/(a^2*d)-d/(a^2*c)+(a^2*c)/d-(a^2*d)/c-b/(c*d^2)-(b*d^2)/c+b/(c^2*d)+(b*c^2)/d+c/(b*d^2)+(c*d^2)/b-d/(b*c^2)-(c^2*d)/b-c/(b^2*d)+d/(b^2*c)-(b^2*c)/d+(b^2*d)/c再输入:simple(det(A))输出为:ans=-((a*b*c*d-1)*(a-b)*(a-c)*(a-d)*(b-c)*(b-d)*(c-d))/(a^2*b^2*c^2*d^2)【例11】计算范德蒙德行列式的值。输入:symsx1x2x3x4x5A=[1,1,1,1,1;x1x2x3x4x5;(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(det(A))d2=factor(det(A))3512422222351243333335124444443512411111xxxxxxxxxxxxxxxxxxxx输出为:d1=(x1-x2)*(x1-x3)*(x1-x4)*(x2-x3)*(x1-x5)*(x2-x4)*(x2-x5)*(x3-x4)*(x3-x5)*(x4-x5)d2=(x4-x5)*(x3-x5)*(x3-x4)*(x2-x5)*(x2-x4)*(x2-x3)*(x1-x5)*(x1-x4)*(x1-x3)*(x1-x2)11.2.6求方阵的逆在线性代数中,如果n阶方阵A可逆,则其逆矩阵为,其中为矩阵A的伴随矩阵。MATLAB系统可对可逆矩阵A直接求逆,求逆命令为inv(A)。【例12】设,求。输入:A=[2,1,3,2;5,2,3,3;0,1,4,6;3,2,1,5];det(A)inv(A)2132523301463215A1A*1AAA*A输出为:ans=-16.0000ans=-1.75001.31250.5000-0.68755.5000-3.6250-2.00002.37500.5000-0.12500.0000-0.1250-1.25000.6

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功