您的位置:首页 > 编程语言 > MATLAB

MATLAB稀疏矩阵理论知识

2017-04-08 21:00 1426 查看
MATLAB稀疏矩阵理论知识:

1.稀疏矩阵的介绍:

MATLAB可以用两种方式来存储 矩阵,即:满矩阵和稀疏矩阵。在很多情况下,矩阵只有很少的元素是非零值,此时对0的存储无疑是浪费太多内存,还会减慢计算机的计算速度,所以,稀疏矩阵占了很多大的优势。稀疏矩阵不能自动生成,满矩阵的运算只能是产生的满矩阵,稀疏矩阵的运算也只能产生稀疏矩阵。

2.稀疏矩阵的创建:

1,用满矩阵生成:

稀疏矩阵的创建调用函数:

s=sparse(a);

其中,a为满矩阵,(由满矩阵转换为稀疏矩阵。)

也可以有由稀疏矩阵转换为满矩阵:

a=full(s);

2.直接创建:

s=sparse(i,j,s,m,n)

      其中,ij是行和列指标,s是相应的元素值,mn是行和列的高度。

3.将外部的稀疏矩阵转换为内部的形式:

                  如果文件存有一个稀疏矩阵的【i,j,v】,即非零值的行和列及元素值,可以用load()函数进行加载,再用spconvert()转为稀疏矩阵。例如:

文件t.dat的内容如下:

3 1  3

2 2  2

  1 3  1 

4 3  4

利用语句:

load  t.dat

s=spconvert(t)

可以得到:
s=
(3,1) 3

(2,2) 2
(1,3)  1
(4,3)  4
3.稀疏矩阵的查看:

  MATLAB提供一些函数可以得到稀疏矩阵的定量信息和图形化信息。例如:

n=nnz(x);     //返回非零值的个数

     s=nonzeros(a);//返回非零值

n=nzmax(s);//返回用于存储非零值的空间的

例如:

load west0479;
whos west0479;
spy(west0479);

     结果:

  Name            Size             Bytes  Class     Attributes

  west0479      479x479            34032  double    sparse  



4.稀疏矩阵的运算规则:

MATLAB的各种命令都可以用于稀疏矩阵,







另外:再补充点矩阵的操作函数:

eye 单位矩阵
zeros 全零矩阵
ones 全1矩阵
rand 均匀分布随机阵
genmarkov 生成随机Markov矩阵
linspace 线性等分向量
logspace 对数等分向量
logm 矩阵对数运算
cumprod 矩阵元素累计乘
cumsum 矩阵元素累计和
toeplitz Toeplitz矩阵
disp 显示矩阵和文字内容
length 确定向量的长度
size 确定矩阵的维数
diag 创建对角矩阵或抽取对角向量
find 找出非零元素1的下标
matrix 矩阵变维
rot90 矩阵逆时针旋转90度
sub2ind 全下标转换为单下标
tril 抽取下三角阵
triu 抽取上三角阵
conj 共轭矩阵
companion 伴随矩阵
det 行列式的值
norm 矩阵或向量范数
nnz 矩阵中非零元素的个数
null 清空向量或矩阵中的某个元素
orth 正交基
rank 矩阵秩
trace 矩阵迹
cond 矩阵条件数
inv 矩阵的逆
rcond 逆矩阵条件数
lu LU分解或高斯消元法
pinv 伪逆
qr QR分解
givens Givens变换
linsolve 求解线性方程
lyap Lyapunov方程
hess Hessenberg矩阵
poly 特征多项式
schur Schur分解
expm 矩阵指数
expm1 矩阵指数的Pade逼近
expm2 用泰勒级数求矩阵指数
expm3 通过特征值和特征向量求矩阵指数
funm 计算一般矩阵函数
logm 矩阵对数
sqrtm 矩阵平方根

spec 矩阵特征值
gspec 矩阵束特征值
bdiag 块矩阵,广义特征向量
eigenmar- 正则化Markov特征
kov 向量
pbig 特征空间投影
svd 奇异值分解
sva 奇异值分解近似

cumprod 元素累计积
cumsum 元素累计和
hist 统计频数直方图
max 最大值
min 最小值
mean 平均值
median 中值
prod 元素积
sort 由大到小排序
std 标准差
sum 元素和
trapz 梯形数值积分
corr 求相关系数或方差

sparse 稀疏矩阵
adj2sp 邻接矩阵转换为稀疏矩阵
full 稀疏矩阵转换为全矩阵
mtlb_sparse 将scilab稀疏矩阵转换为matlab稀疏矩阵格式
sp2adj 将稀疏矩阵转换为邻接矩阵
speye 稀疏矩阵方式单位矩阵
sprand 稀疏矩阵方式随机矩阵
spzeros 稀疏矩阵方式全零阵
lufact 稀疏矩阵LU分解
lusolve 稀疏矩阵方程求解
spchol 稀疏矩阵Cholesky分解

关于稀疏矩阵的Matlab命令集,供查阅参考。
基本稀疏矩阵
spdiags :生成稀疏带状矩阵
speye :单位稀疏矩阵
sprand :随机稀疏矩阵
sprandn :正态分布的随机稀疏矩阵
sprandsym:生成稀疏对称随机矩阵

满阵和稀疏矩阵的转换
find :寻找非零元素下标和值
full :稀疏矩阵转化为满阵
sparse :生成稀疏矩阵
spconvert:载入稀疏矩阵

稀疏矩阵的非零元素操作
nnz :非零元素个数
nonzeros :矩阵中的非零元素
nzmax :为非零元素分配的存储空间数
spalloc :稀疏矩阵存储空间
spfun :稀疏矩阵中非零元素的函数计算
spones :非零元素全部用1替换

稀疏矩阵的可视化
spy :稀疏矩阵的图形表示

排序算法
colmmd :进行列的最小度排序
colperm :基于非零算法排序
dmperm :Dulmage-Mendelsohn分解
randperm:随机置换
symmmd :对称最小度排序
symrcm :反向Cuthill-McKee排序

范数、条件数和秩
condest :I范数矩阵条件数
normest :2范数估计

线性方程的稀疏系统
bicg :双共扼梯度法
bicgstab:双共扼梯度稳定法
cgs :二次共扼梯度法
cholinc :不完全Cholesky分解
cholupdate:Cholesky分解的秩1修正
gmres :广义最小残差法
luinc :不完全的LU分解
pcg :预处理共扼梯度法
qmr :Quasi_Minimal残差法

稀疏矩阵的特征值和奇异值
eigs :少数特征值和特征向量
svds :少数奇异值

杂项函数
spparms :设置稀疏矩阵程序的参数排序算法
colmmd :进行列的最小度排序
colperm :基于非零算法排序
dmperm :Dulmage-Mendelsohn分解
randperm:随机置换
symmmd :对称最小度排序
symrcm :反向Cuthill-McKee排序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: