1实验1矩阵的建立和基本运算一.实验目的熟悉MATLAB软件中关于矩阵初等变换的方法以及矩阵运算的各种命令。二.实验内容与要求1.启动与退出双击MATLAB图标,进入MATLAB命令窗口,即可输入命令,开始运算。单击File菜单中的Exit,或使用MATLAB命令退出。2.数.数组.矩阵的输入(1)数的输入a=5回车:a=5输入复数2—5i:b=2.0000-5.0000i问题1.1:输入“a=5;”,回车后与上面有什么区别?在行尾加“;”,该行结果不显示;在行尾加“,”或加“,”或不加标点,该行结果显示。注意,在MATLAB中,标点符号一定要在英文状态下输入!(2)数组的输入b=[1,3,5,7,9,11]c=1:2:11d=linspace(1,11,6)问题1.2:体会以上输入放有什么区别和联系。若b为在0~~2pi之间均匀分布的22个数据,c=(1.3,2.5,7.6,2,-3),d=(23,20,17,14,11,8,5,2),各用何种方法输入比较简单?(3)矩阵的输入A=[2,3,5;1,3,5;6,9,4]%行之间要用分号隔开A=2351356942等待键盘输入命令格式为:m=input(‘请输入初始量,m=’);请输入初始量,m=问题1.3:输入A(2,3),结果如何?输入A(7)又如何?体会以上输入的结果,注意,数和数组可作为矩阵的特。注意:变量名开头必须是英文字母,后面的字符可以是英文,数字和下划线,但不包含空格和标点;6.5版变量名最长可包含63个字符,以前的版本最多为31个字符;变量名,函数名对字母大小写是区分的。3.矩阵的大小的测试和定位A=[3,5,6;2,5,8;3,5,9;3,7,9];d=numel(A)%测试定矩阵A的元素,5.x版本没有此命令[n,m]=size(A)%测试的行(n)A,列(m)数结果为:d=12n=4m=3[I,j]=find(A3);%找出A中大于3的元素的行数注意:“%”后面是注释句,被忽略而不执行;对一个数组可用n=length(A),A若是矩阵,ng3出A的行,列数的最大值。4.矩阵的块的操作A=(2,:);%取出A的第2行的所有元素A=([1,3],:);%取出A的第1,3行的所有元素A=(2:3,1:2)%取出A的2,3行与1,2列交叉的元素ans=2535A([1,3],:)=A([3,1],:);%将A的1行和3行互换问题1.4:如何将A的2,3列互换?A=(2,:)=4;%将A的第2行的所有元素用4取代A(find(A==3))=-3;%将A中等于3的所有的元素换为-3A=(2,:)=[]%删除A的第2行ans=456359379reshape(A,2,6)%返回以A的元素重新构造的26维矩阵3②自找23个例子,熟悉数和数组的各种运算,以及它们的各种函数值。③自找23个例子,熟悉矩阵的加减乘除及其他运算,注意和点运算的区别。④输入一个矩阵A,取出A的第2行第1列的元素;取出A的第1,3,4列的所有元素;让A的第1列和第3列互换;删除A的第2列。⑤产生3×4维的1矩阵,产生4×2维的随机矩阵,产生4维的单位矩阵。⑥将A的第2行元素扩大2倍,再增加3后作为A的第3行元素。⑦输入任意矩阵A,B(它们的元素个数相等),命令A(:)和A(:)=B会产生什么结果?⑧A=[1,3,5;5,8,3;6,1,6],B=[3,6;9,3;4,7],C=[3,7,9,4,0,7],D=2:6,体会命令[A,B],[A,C],[A,B,D]所产生的结果,学习由小矩阵生成大矩阵的方法。⑨三.提高内容1.多维数组的创建格式:A=cat(n,A1,A2,…,Am).说明:n=1和n=2时分别构造的[A1:A2]和[A1:A2],都是二维数组,而n=3时都可以构造出三维数组。【例1.2】A1=[1,2,3;4,5,6;7,8,9];A2=A1';A3=A2-A1;A4=cat(3,A1,A2,A3)或用另一种原始方式定义A4(:,:,1)=123456789A4(:,:,2)=147258369A4(:,:,3)=024-202-4-202.张量积格式:C=kron(A,B)%A为m×n矩阵,B为p×q矩阵,则C为mp×nq矩阵。说明:A与B的张量积定义为C=AB=1111nmmnaBaBaBaB其中,AB与BA均为mp×nq矩阵,但一般AB≠BA。4【例1.3】A=1234,B=123456789,求AB。A=[12;34];B=[123;456;789];C=kron(A,B)C=1232464568101278914161836948121215181620242124272832363.矩阵的范数格式:n=norm(A)%求矩阵A的普范数,等于A的最大奇异值。n=norm(A,1)%求A的列范数(1—范数),等于A的最大列之和。n=norm(A,2)%求A的2—范数,和norm(A)相同。n=norm(A,inf)%求行范数(无穷大范数),等于A的最大数之和。n=norm(A,’for’)%求矩阵A的Frobenius范数,‖A‖F=2||ijija4.LU分解矩阵的三角分解又称LU分解,它的目的是将一个矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积,将A=LU。格式:[L,U]=lu(X)%U为上三角阵,L为下三角阵或其变换形式,满足LU=X,[L,U,P]=lu(X)%U为上三角阵,L为下三角阵,P为单位矩阵的行边换满足LU=PX。【例1.4】A=[123;456;789];[L,U]=lu(A)L=0.14291.000000.57140.50001.00001.000000U=7.00008.00009.000000.85711.7143000.0000[L,U,P]=lu(A)L=1.0000000.14291.000000.57140.50001.00005ans=323355576899A(4,5)=3;%扩大A的维数,A成为4╳5矩阵,未定义元素为0[A(1:3、2:3),A(2:4、1:2);A,A(:、2)]%由小矩阵构造大矩阵,注意行列维数的搭配ans=2343366553251232436365352505diag(A、k);%抽取矩阵A的第k条对角线元素向量tril(A、k);%抽取矩阵A的第k条对角线下面的部分triu(A、k);%抽取矩阵A的第k条对角线上面的部分注意:“:”表示“全部”.5.矩阵的翻转操作flipud(A);%A进行上下翻转fliplr(A);%A进行左右翻转rot90(A);%A逆时针旋转90o问题1.5:rot90(A,2)和rot90(A,-2)结果有区别吗?6.特殊矩阵的产生A=eye(n);%产生n维单位矩阵A=ones(n、m);%产生n╳m维1矩阵A=zeros(n、m);%产生n╳m维0矩阵A=rand(n、m);%产生n╳m维随机矩阵(元素在9∽1之间)问题1.6:产生一个在区间[10,20]内均匀分布的4阶随机矩阵.]randn(m、n);%产生m╳n正态分布随机矩阵randperm(n);%产生1∽n之间整数的随机排列【例1.1】randperm(6)ans=321546logspace(a、b、n);%在(10a、10b)之间产生n个对数等分量diag(a、b、n);%产生以a、b、c、d、…为对角线元素的矩阵hilb(n);%返回n阶hilbert矩阵,其元素为H(i、j)=1/(i+j-1)magic(n);%产生n阶魔方矩阵7.数的运算64+2;4*2;4/2;%右除2,等于24/2;%4左除2,等于0.54^3;%4的3次方sqrt(4);%4的算术平方根exp(3);%e的3次方,不能输成e^3log(4);%4的自然对数,log10(4)是以10为底,log2(4)是以2为底其他常用函数见表1.1与表1.2.8.矩阵的运算A,;%A的转置det(A);%A的行列式,A必须是方阵reank(A);%A的秩inv(A);%A的逆eig(A);%A的本征值[X,D]=eig(A);%A的本征矢量X及本征值Dtrace(A);%A的迹,等于A的对角线元素之和3*A;%常数与矩阵相乘A+B;%A,B必须是同维矩阵,和3+A进行比较A-B;%A,B必须是同维矩阵,和3-A进行比较A*B;%和A.*B进行比较A/B;%(和A./B进行比较)A\B;%(和A.\B进行比较)A^2;%A^2相当于A*A(和A.^2进行比较)注意:矩阵的加减乘除按相关规则运算,否则给出警告信息;“.*”,“./”,“.\”,“.^”称为点运算(或称数组运算,又称元素群运算),点运算是前后矩阵对应元素之间的运算。问题1.7:求出A的本征矢量和本征值,比较2^4(A必须是方阵)和2.^A的区别.矩阵的其他运算和函数见表1.3.9.变量的存储与调用(1)存储savedataabc%将变量a,b,c存到data.mat文件中(2)调用loaddata%data.mat文件中所有变量加载到工作空间10.列出工作空间所有变量whos%列出工作空间所有变量的变量名、大小、字节数、数组维数11.联机求助helpsqrt%将显示出平方根sqrt命令的功能和使用方式7四、练习和思考①熟悉MATLAB的启动和退出.U=7.00008.00009.000000.85711.7143000.0000P=0011000105QR分解将矩阵A分解成一个正交矩阵与一个上三角矩阵的乘积。格式:[Q,R]=qr(A)%求得正交矩阵Q和上三角阵R,Q和R满足A=QR。[Q,R,E]=qr(A)%求得正交矩阵Q和上三角阵R,E为单位矩阵的变换形式,R的对角线元素按大小降序排列,满足AE=QR。例1.5A=[1,2,3;4,5,6;7,8,9;10,11,12];[Q,R]=qr(A)Q=-0.0776-0.83310.5456-0.0478-0.3105-0.4512-0.69190.4704-0.5433-0.0694-0.2531-0.7975-0.77620.31240.39940.3748R=-12.8841-14.5916-16.29920-1.0413-2.0826000表1。1基本的数学函数函数名含义函数名含义sin/cos正弦/余弦函数asin/acos反正弦/反余弦函数tan/cot正切/余切函数atan/acos反正切/反余切函数sec/csc正割/余割函数aec/acec反正割/反余割函数sinh/cosh双曲正弦/双曲余弦函数asinh/acosh反双曲正弦/反双曲余弦函数tanh/coth双曲正切/双曲余切函数atanh/acosh反双曲正切/反双曲余函数sech/csch双曲正割/双曲余割函数asech/acsch反双曲正割/反双曲余割函数exp指数函数sqrt平方根函数log对数函数log10常用对数函数abs绝对值函数angle角相位函数imag复数虚部函数real复数实部函数8conj共轭复数函数sign正负符号函数fix朝零方向取整ceil朝正无穷方向取整round四舍五入取整floor朝无穷方向取整rem求余函数mod求余函数(带符号)gcd最大公约数lcm最小公倍数perms排列nchoosek组合表1。2特殊变量与函数函数名含义函数名含义ans默认返回变量eps默认相对浮点精度nargin函数输入变量个数nargout函数输出变量个数yarargin函数中输入的可选参数varargout函数中输出的可选参数i虚数单位pi圆周率inf无穷值nan不定值