Matlab学习笔记(五)

三、矩阵运算

(一)矩阵函数和特殊矩阵

  • 常见的矩阵处理函数
    • 表3-1    常见的矩阵函数
函数 说明
/或 矩阵除法中的左除或右除,可以用于求解线性方程组
accumarray(ind,val) 累加创建数组
A^n 求解矩阵A的n次幂
balance(A) 将矩阵A进行缩放以提高其特征值的精度
[V,D]=cdf2rdf(V,D) 将复数对角矩阵转换为两个实数对角矩阵
chol(A) 对矩阵A进行Cholesky因式分解
cholinc(A,DropTol) 对矩阵A进行不完全的Cholesky因式分解,DropTol指定分解误差
cholinc(A,Options) 对矩阵A进行不完全的Cholesky因式分解,Options为包含3个分量的结构体
cholupdate(R,X) Cholesky因式分解的秩1升级
cond(A) 利用奇异值分解求矩阵A的范数
condest(A) 求矩阵A的范数1的条件数估计
[V,D,s]=condeig(A) 求矩阵A与重特征值相对应的条件数
det(A) 求矩阵的行列式
dmperm(A) 求矩阵A进行Dulmage-Mendelsohn排列
eig(A) 求矩阵A的特征值和特征向量
[V,D]=eig(A) 求矩阵A的特征向量矩阵(V)和特征值对角矩阵(D)
expm(A) 矩阵指数函数
funm(A) 矩阵通用函数
gsvd(A,B) 求矩阵A的广义奇异值
[U,V,X,C,S]=gsvd(A) 求矩阵A进行广义奇异值分解
hess(A) 求矩阵A的Hessenburg标准型
inv(A) 求矩阵A的逆
linsolve(A,y,options) 快速求解方程组Ax=y,其中A的结构由options条件给定
logm(A) 矩阵的对数运算
lscov(A,y,V) 已知数据的协方差矩阵(V),求线性方程组的最小二乘解
lsqnonneg(A,y) 求线性方程组的非负最小二乘解
[L,U,P]=lu(A) 对矩阵A进行LU分解
minres(A,y) 利用最小残差方法求线性方程组的解
norm(A,type) 求矩阵或向量(由type指定)的范数
null(A) 求A的零空间
orth(A) 求A的正交空间
pinv(A) 求A的伪逆矩阵
planerot(X) 求X进行平面旋转
ploy(A) 求A的特征多项式
polyeig(A0,A1,...) 多项式的特征值解
polyvalm(A) 求A的矩阵多项式
qr(A) 对A进行正交三角分解
qrdelete(Q,R,J) 从QR分解中删除行或列
qrinsert(Q,R,J,X) 在QR分解中插入行或列
qz(A,B) 广义特征值问题求解
rank(A) 利用奇异值分解求A的秩
rcond(A) 对A进行LAPACK倒数条件估计
rref(A) 将矩阵A变换为行阶梯型
rsf2csf(A) 将A由实块对角阵转换为复块对角阵
schur(A) 对矩阵A进行Schur分解
sqrtm(A) 求矩阵A的平方根
subspace(A,B) 求两个子空间A和B之间的角度
svd(A) 求矩阵A的奇异值
[U,S,V]=svd(A) 对A进行奇异值分解
trace(A) 求矩阵A的迹(即对角线元素之和)
  • 特殊矩阵
    • 表3-2    特殊矩阵
矩阵 说明
 [] 空矩阵
blkdiag(a0,a1,...) 以输入参数为对角元素生成对角矩阵
compan(P)  求多项式的伴随矩阵 
eye(r,c)  产生r行,c列的单位矩阵 
gallery  生成一系列的测试矩阵(50个以上) 
hadamard(n) 生成1个n阶的Hadamard矩阵 
hankel(C)  生成C的Hankel矩阵 
hilb(n)  生成n阶的Hilbert矩阵 
invhilb(n)  生成n阶的逆Hilbert矩阵 
magic(n)  生成n阶的魔幻矩阵 
ones(r,c)  生成r行、c列的全1矩阵 
pascal(n)  生成n阶的Pascal矩阵 
rand(r,c)  生成r行、c列的随机矩阵(元素值介于0和1之间) 
randn(r,c) 生成r行、c列的零均值和单位方差的正态分布的随机矩阵
rosser  典型的对称矩阵特征值问题测试
toeplitz(C,R) 生成Toeplitz矩阵
vander(C) 生成Vandermonde矩阵
wilkinson(n) 生成n阶的Wilkinson特征值测试矩阵
zeros(r,c) 生成r行、c列的全0矩阵
  • 稀疏矩阵
    • 稀疏矩阵中大部分元素都是0,只有少部分元素是非0的。
    • 一般,MATLAB存储稀疏矩阵需要通过3个矩阵,对于一个m×n的矩阵(假设其中有nz个非0元素,存储在长度为nz_max的矩阵中)
      • 第一个矩阵:存储所有非0元素,矩阵长度为nz_max
      • 第二个矩阵:存储所有非0元素的行下标,矩阵长度也为nz_max
      • 第三个矩阵:存储每一列开始处的指针和标志这3个矩阵结束的指针,存储长度为n+1
    • 创建稀疏矩阵
      • sparse(i,j,s,m,n,nz_max)使用[i,j,s]来创建m×n维稀疏矩阵s(s为所有非0元素构成的向量,ij为非0元素的行下标、列下标)
      • spdiags(B,d,m,n)可以抽取、创建或替代对角稀疏矩阵(d表示长度为p的整数向量,B为满矩阵)
    • 表3-3    稀疏矩阵函数
函数 说明
bicg 求解双共轭梯度迭代线性方程的解
bicgstab 求解双共轭梯度稳定迭代线性方程的解
cgs 求解二次共轭梯度迭代线性方程曾的解
cholinc 不完全Cholesky分解
colamd 列估计最小度重排序方法
colamdtree 带列消元树排序后的colamd方法
colmmd 列最小度排序
colperm 对列进行随机排序
condest 1范数估计
dmperm Dulmage-Nebdeksohn重排序方法
eigs 使用APPACK的特征值
etree 矩阵消元树结构
etreeplot 绘制消元路径
find 寻找非0元素索引
full 将稀疏矩阵转化为完整矩阵
gmres 求广义最小残差迭代线性方程的解
gplot 绘制图论图形
issparse 判断是否为稀疏矩阵
lsqr 标准方程中共轭梯度的LSQR实现
luinc 不完全LU因式分解
minres 最小残差迭代线性方程求解
Nnz 求矩阵中的非0元素个数
nonzeros 提取矩阵中的非0元素
normest 矩阵的2范数估计
nzmax 求分配给非0元素的存储空间
pcg 求预处理共轭梯度迭代线性方程组的解
qmr 伪最小残差迭代线性方程组解法
randperm 产生随机排列的数组
spalloc 为稀疏矩阵分配内存空间
sparse 创建稀疏矩阵
spaugment 建立最小二乘增广矩阵
spconvert 从外部格式中载入稀疏矩阵
sodiags 利用对角元素生成稀疏矩阵
speye 单位稀疏矩阵
spfun 将一个函数应用于非0元素
spones 将所有非0元素用1代替
spparms 设置稀疏矩阵程序的参数
sprand 创建均匀分布的随机稀疏矩阵
sprandn 创建高斯分布的随机稀疏矩阵
sprandsym 创建对称的随机稀疏矩阵
sprank 求结构秩的值
spy 稀疏矩阵的图形表示
svds 产生一些奇异值
symbfact 符合因式分解
symamd 对称估计最小阶次重排序法
symamdtree 带对称消元树排序后的symand
symmd 对称最小阶次重排序
symmlq 对称LQ迭代线性方程的求解
symrcm 对称的反向Cuthill-Mckee重排序
treelayout 变换成树状结构
treeplot 画出树状图
    • 创建稀疏矩阵并画出稀疏矩阵的图(e_three_1.m

 (二)矩阵分析

  • 范数分析
  1. 向量的范数
    • 线性空间中的某个向量$ extbf{x}=left { x_{1},x_{2},cdots ,x_{n} ight }$,其p范数定义为:$left | mathbf{x} ight |_{p}=left ( sum_{i=1}^{n}left |  x_{i} ight |^{p} ight )^{frac{1}{p}}$
原文地址:https://www.cnblogs.com/mayyzym/p/10486679.html