matlab中的矩阵的基本运算命令.docx

上传人:牧羊曲112 文档编号:3061491 上传时间:2023-03-10 格式:DOCX 页数:13 大小:41.59KB
返回 下载 相关 举报
matlab中的矩阵的基本运算命令.docx_第1页
第1页 / 共13页
matlab中的矩阵的基本运算命令.docx_第2页
第2页 / 共13页
matlab中的矩阵的基本运算命令.docx_第3页
第3页 / 共13页
matlab中的矩阵的基本运算命令.docx_第4页
第4页 / 共13页
matlab中的矩阵的基本运算命令.docx_第5页
第5页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《matlab中的矩阵的基本运算命令.docx》由会员分享,可在线阅读,更多相关《matlab中的矩阵的基本运算命令.docx(13页珍藏版)》请在三一办公上搜索。

1、matlab中的矩阵的基本运算命令1.1 矩阵的表示 单位矩阵eye(m,n)1.2 矩阵运算1.2.14 特殊运算1矩阵对角线元素的抽取函数 diag格式 X = diag(v,k) %以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。X = diag(v) %以v为主对角线元素,其余元素为0构成X。v = diag(X,k) %抽取X的第k条对角线元素构成向量v。k=0:抽取主对角线元素;k>0:抽取上方第k条对角线元素;k<0抽取下方第k条对角线元素。v = diag(X) %抽取

2、主对角线元素构成向量v。2上三角阵和下三角阵的抽取函数 tril %取下三角部分格式 L = tril(X) %抽取X的主对角线的下三角部分构成矩阵LL = tril(X,k) %抽取X的第k条对角线的下三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。函数 triu %取上三角部分格式 U = triu(X) %抽取X的主对角线的上三角部分构成矩阵UU = triu(X,k) %抽取X的第k条对角线的上三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。3矩阵的变维矩阵的变维有两种方法,即用“:”和函数“reshape”,前者主要针对

3、2个已知维数矩阵之间的变维操作;而后者是对于一个矩阵的操作。“:”变维Reshape函数变维格式 B = reshape(A,m,n) %返回以矩阵A的元素构成的mn矩阵BB = reshape(A,m,n,p,) %将矩阵A变维为mnpB = reshape(A,m n p) %同上B = reshape(A,siz) %由siz决定变维的大小,元素个数与A中元素个数相同。复制和平铺矩阵函数 repmat格式 B = repmat(A,m,n) %将矩阵A复制mn块,即B由mn块A平铺而成。B = repmat(A,m n) %与上面一致B = repmat(A,m n p) %B由mnp个

4、A块平铺而成repmat(A,m,n) %当A是一个数a时,该命令产生一个全由a组成的mn矩阵。1.3 矩阵分解1.3.1 Cholesky分解函数 chol格式 R = chol(X) %如果X为n阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足R*R = X;若X非正定,则产生错误信息。R,p = chol(X) %不产生任何错误信息,若X为正定阵,则p=0,R与上相同;若X非正定,则p为正整数,R是有序的上三角阵。1.3.2 LU分解矩阵的三角分解又称LU分解,它的目的是将一个矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积,即A=LU。函数 lu格式 L,U = lu(X) %U

5、为上三角阵,L为下三角阵或其变换形式,满足LU=X。L,U,P = lu(X) %U为上三角阵,L为下三角阵,P为单位矩阵的行变换矩阵,满足LU=PX。1.3.3 QR分解将矩阵A分解成一个正交矩阵与一个上三角矩阵的乘积。函数 qr格式 Q,R = qr(A) %求得正交矩阵Q和上三角阵R,Q和R满足A=QR。Q,R,E = qr(A) %求得正交矩阵Q和上三角阵R,E为单位矩阵的变换形式,R的对角线元素按大小降序排列,满足AE=QR。Q,R = qr(A,0) %产生矩阵A的“经济大小”分解Q,R,E = qr(A,0) %E的作用是使得R的对角线元素降序,且Q*R=A(:, E)。R =

6、qr(A) %稀疏矩阵A的分解,只产生一个上三角阵R,满足R*R = A*A,这种方法计算A*A时减少了内在数字信息的损耗。C,R = qr(A,b) %用于稀疏最小二乘问题:minimize|Ax-b|的两步解:C,R = qr(A,b),x = Rc。R = qr(A,0) %针对稀疏矩阵A的经济型分解C,R = qr(A,b,0) %针对稀疏最小二乘问题的经济型分解函数 qrdelete格式 Q,R = qrdelete(Q,R,j) %返回将矩阵A的第j列移去后的新矩阵的qr分解函数 qrinsert格式 Q,R = qrinsert(Q,R,j,x) %在矩阵A中第j列插入向量x后的

7、新矩阵进行qr分解。若j大于A的列数,表示在A的最后插入列x。1.3.6 特征值分解函数 eig格式 d = eig(A) %求矩阵A的特征值d,以向量形式存放d。d = eig(A,B) %A、B为方阵,求广义特征值d,以向量形式存放d。V,D = eig(A) %计算A的特征值对角阵D和特征向量V,使AV=VD成立。V,D = eig(A,nobalance) %当矩阵A中有与截断误差数量级相差不远的值时,该指令可能更精确。nobalance起误差调节作用。V,D = eig(A,B) %计算广义特征值向量阵V和广义特征值阵D,满足AV=BVD。V,D = eig(A,B,flag) %

8、由flag指定算法计算特征值D和特征向量V,flag的可能值为:chol 表示对B使用Cholesky分解算法,这里A为对称Hermitian矩阵,B为正定阵。qz 表示使用QZ算法,这里A、B为非对称或非Hermitian矩阵。说明 一般特征值问题是求解方程: 解的问题。广义特征值问题是求方程: 解的问题。1.3.7 奇异值分解函数 svd格式 s = svd (X) %返回矩阵X的奇异值向量U,S,V = svd (X) %返回一个与X同大小的对角矩阵S,两个酉矩阵U和V,且满足= U*S*V。若A为mn阵,则U为mm阵,V为nn阵。奇异值在S的对角线上,非负且按降序排列。U,S,V =

9、svd (X,0) %得到一个“有效大小”的分解,只计算出矩阵U的前n列,矩阵S的大小为nn。1.4 线性方程的组的求解我们将线性方程的求解分为两类:一类是方程组求唯一解或求特解,另一类是方程组求无穷解即通解。可以通过系数矩阵的秩来判断:若系数矩阵的秩r=n,则有唯一解;若系数矩阵的秩r<n,则可能有无穷解;线性方程组的无穷解 = 对应齐次方程组的通解+非齐次方程组的一个特解;其特解的求法属于解的第一类问题,通解部分属第二类问题。1.4.1 求线性方程组的唯一解或特解这类问题的求法分为两类:一类主要用于解低阶稠密矩阵 直接法;另一类是解大型稀疏矩阵 迭代法。1利用矩阵除法求线性方程组的特解

10、方程:AX=b解法:X=Ab2利用矩阵的LU、QR和cholesky分解求方程组的解LU分解:LU分解又称Gauss消去分解,可把任意方阵分解为下三角矩阵的基本变换形式和上三角矩阵的乘积。即A=LU,L为下三角阵,U为上三角阵。则:A*X=b 变成L*U*X=b所以X=U(Lb) 这样可以大大提高运算速度。命令 L,U=lu (A)Cholesky分解若A为对称正定矩阵,则Cholesky分解可将矩阵A分解成上三角矩阵和其转置的乘积,即: 其中R为上三角阵。方程 A*X=b 变成 所以 QR分解对于任何长方矩阵A,都可以进行QR分解,其中Q为正交矩阵,R为上三角矩阵的初等变换形式,即:A=QR

11、方程 A*X=b 变形成 QRX=b所以 X=R(Qb)1.4.2 求线性齐次方程组的通解在Matlab中,函数null用来求解零空间,即满足A?X=0的解空间,实际上是求出解空间的一组基。格式 z = null % z的列向量为方程组的正交规范基,满足 。% z的列向量是方程AX=0的有理基1.4.3 求非齐次线性方程组的通解非齐次线性方程组需要先判断方程组是否有解,若有解,再去求通解。因此,步骤为:第一步:判断AX=b是否有解,若有解则进行第二步第二步:求AX=b的一个特解第三步:求AX=0的通解第四步:AX=b的通解= AX=0的通解+AX=b的一个特解。1.6 秩与线性相关性1.6.1

12、 矩阵和向量组的秩以及向量组的线性相关性矩阵A的秩是矩阵A中最高阶非零子式的阶数;向量组的秩通常由该向量组构成的矩阵来计算。函数 rank格式 k = rank(A) %返回矩阵A的行向量中线性无关个数k = rank(A,tol) %tol为给定误差1.6.2 求行阶梯矩阵及向量组的基行阶梯使用初等行变换,矩阵的初等行变换有三条:1交换两行 2第i行的K倍 3第i行的K倍加到第j行上去 通过这三条变换可以将矩阵化成行最简形,从而找出列向量组的一个最大无关组,Matlab将矩阵化成行最简形的命令是rref或rrefmovie。函数 rref或rrefmovie格式 R = rref(A) %用

13、高斯约当消元法和行主元法求A的行最简行矩阵RR,jb = rref(A) %jb是一个向量,其含义为:r = length(jb)为A的秩;A(:, jb)为A的列向量基;jb中元素表示基向量所在的列。R,jb = rref(A,tol) %tol为指定的精度rrefmovie(A) %给出每一步化简的过程1.7 稀疏矩阵技术1.7.1 稀疏矩阵的创建函数 sparse格式 S = sparse(A) %将矩阵A转化为稀疏矩阵形式,即由A的非零元素和下标构成稀疏矩阵S。若A本身为稀疏矩阵,则返回A本身。S = sparse(m,n) %生成一个mn的所有元素都是0的稀疏矩阵S = sparse

14、(i,j,s) %生成一个由长度相同的向量i,j和s定义的稀疏矩阵S,其中i,j是整数向量,定义稀疏矩阵的元素位置(i,j),s是一个标量或与i,j长度相同的向量,表示在(i,j)位置上的元素。S = sparse(i,j,s,m,n) %生成一个mn的稀疏矩阵,(i,j)对应位置元素为si,m = max(i)且n =max(j)。S = sparse(i,j,s,m,n,nzmax) %生成一个mn的含有nzmax个非零元素的稀疏矩阵S,nzmax的值必须大于或者等于向量i和j的长度。1.7.2 将稀疏矩阵转化为满矩阵函数 full格式 A=full(S) %S为稀疏矩阵,A为满矩阵。1.

15、7.3 稀疏矩阵非零元素的索引函数 find格式 k = find(x) %按行检索X中非零元素的点,若没有非零元素,将返回空矩阵。i,j = find(X) %检索X中非零元素的行标i和列标ji,j,v = find(X) %检索X中非零元素的行标i和列标j以及对应的元素值v1.7.4 外部数据转化为稀疏矩阵函数 spconvert格式 S=spconvert(D) %D是只有3列或4列的矩阵说明:先运用load函数把外部数据装载于MATLAB内存空间中的变量T;T数组的行维为nnz或nnz+1,列维为3或列维为4;T数组的每一行指定一个稀疏矩阵元素。1.7.5 基本稀疏矩阵1带状稀疏矩阵函

16、数 spdiags格式 B,d = spdiags(A) %从矩阵A中提取所有非零对角元素,这些元素保存在矩阵B中,向量d表示非零元素的对角线位置。B = spdiags(A,d) %从A中提取由d指定的对角线元素,并存放在B中。A = spdiags(B,d,A) %用B中的列替换A中由d指定的对角线元素,输出稀疏矩阵。A = spdiags(B,d,m,n) %产生一个mn稀疏矩阵A,其元素是B中的列元素放在由d指定的对角线位置上。2单位稀疏矩阵函数 speye格式 S = speye(m,n) %生成mn的单位稀疏矩阵S = speye(n) %生成nn的单位稀疏矩阵3稀疏均匀分布随机矩

17、阵函数 sprand格式 R = sprand(S) %生成与S具有相同稀疏结构的均匀分布随机矩阵R = sprand(m,n,density) %生成一个mn的服从均匀分布的随机稀疏矩阵,非零元素的分布密度是density。R = sprand(m,n,density,rc) %生成一个近似的条件数为1/rc、大小为mn的均匀分布的随机稀疏矩阵。4稀疏正态分布随机矩阵函数 sprandn格式 R = sprandn(S) %生成与S具有相同稀疏结构的正态分布随机矩阵。R = sprandn(m,n,density) %生成一个mn的服从正态分布的随机稀疏矩阵,非零元素的分布密度是densit

18、y。R = sprandn(m,n,density,rc) %生成一个近似的条件数为1/rc、大小为mn的均匀分布的随机稀疏矩阵。5稀疏对称随机矩阵函数 sprandsym格式 R = sprandsym(S) %生成稀疏对称随机矩阵,其下三角和对角线与S具有相同的结构,其元素服从均值为0、方差为1的标准正态分布。R = sprandsym(n,density) %生成nn的稀疏对称随机矩阵,矩阵元素服从正态分布,分布密度为density。R = sprandsym(n,density,rc) %生成近似条件数为1/rc的稀疏对称随机矩阵R = sprandsym(n,density,rc,k

19、ind) %生成一个正定矩阵,参数kind取值为kind=1表示矩阵由一正定对角矩阵经随机Jacobi旋转得到,其条件数正好为1/rc;kind=2表示矩阵为外积的换位和,其条件数近似等于1/rc;kind=3表示生成一个与矩阵S结构相同的稀疏随机矩阵,条件数近似为1/rc ,density被忽略。1.7.6 稀疏矩阵的运算1稀疏矩阵非零元素的个数函数 nnz格式 n = nnz(X) %返回矩阵X中非零元素的个数2稀疏矩阵的非零元素函数 nonzeros格式 s = nonzeros(A) %返回矩阵A中非零元素按列顺序构成的列向量3稀疏矩阵非零元素的内存分配函数 nzmax格式 n = n

20、zmax(S) %返回非零元素分配的内存总数n4稀疏矩阵的存贮空间函数 spalloc格式 S = spalloc(m,n,nzmax) %产生一个mn阶只有nzmax个非零元素的稀疏矩阵,这样可以有效减少存贮空间和提高运算速度。5稀疏矩阵的非零元素应用函数 spfun格式 f = spfun(function,S) %用S中非零元素对函数function求值,如果function不是对稀疏矩阵定义的,同样可以求值。6把稀疏矩阵的非零元素全换为1函数 spones格式 R = spones(S) %将稀疏矩阵S中的非零元素全换为11.7.7 画稀疏矩阵非零元素的分布图形函数 spy格式 spy(S) %画出稀疏矩阵S中非零元素的分布图形。S也可以是满矩阵。spy(S,markersize) % markersize为整数,指定点阵大小。spy(S,LineSpec) %LineSpec指定绘图标记和颜色spy(S,LineSpec,markersize) %参数与上面相同

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号