有许多函数允许获得与稀疏矩阵有关的信息。其中最基本的是issparse其标识特定的八度体对象是否实际上是稀疏矩阵。
另一个非常基本的函数是nnz返回稀疏矩阵中的非ero项的数量,而函数nzmax返回赋值给稀疏矩阵的存储量。请注意,Octave倾向于一有机会就为稀疏对象裁剪未使用的内存。在某些情况下,用户创建的sparse对象的值从nzmax不会和nnz,但总的来说,他们会给出相同的结果。函数spstats返回稀疏矩数组的一些基本统计信息,包括元素数、每列的均值和方差。
n =
nzmax (SM)
¶返回赋值给稀疏矩阵的存储量SM.
编程注意事项:Octave倾向于在第一次机会为稀疏对象裁剪未使用的内存。因此,一般来说nzmax
将与nnz
,但用户创建的稀疏对象的某些情况除外。
此外,请注意Octave始终为至少一个值保留存储空间。因此,对于空矩阵nnz
将返回0,但是nzmax
将返回1。
[count, mean, var] =
spstats (S)
¶[count, mean, var] =
spstats (S, j)
¶返回稀疏矩阵的非零元素的统计信息S.
计数是每列中非零的数量,意思是是每列中非零的平均值,以及var是每列中非零的方差。
使用两个输入参数调用,如果S是数据和j是数据的二进制数,计算每个bin的统计数据。在这种情况下,bin可以包含零的数据值,而使用spstats(S)
零可能会消失。
在求解涉及稀疏矩阵的线性方程时,Octave确定了基于矩阵类型求解方程的方法(详见稀疏矩阵上的线性代数). 当div(/)或ldiv(\)运算符首次用于矩阵,然后缓存该类型时,Octave会探测矩阵类型。然而矩阵类型函数可用于在使用div或ldiv运算符之前确定稀疏矩阵的类型。例如
a=tril(sprandn(1024、1024、0.02),-1)…+speye(1024);matrix_type(a);ans=更低
表明Octave正确地确定了下三角矩阵的矩阵类型。矩阵类型也可以用于强制矩阵的类型为特定类型。例如
a=matrix_type(tril(sprandn(1024,…1024,0.02),-1)+speye(1024),“Lower”);
这使得确定矩阵类型的成本得以降低。然而,错误地定义矩阵类型将导致线性方程组解的正确结果,因此正确识别矩阵类型完全是用户的责任
有几种图形方法可以找出关于稀疏矩阵的信息。第一个是间谍命令,它显示矩阵的非零元素的结构体。详见图22.1,例如使用间谍。可以使用获得更高级的图形信息树状图, etreeplot和gplot命令。
稀疏矩阵的一个用途是在图论中,其中节点之间的互连表示为邻接矩阵。也就是说,如果图中的第i个节点连接到第j个节点。则稀疏邻接矩阵的第i个节点(在无向图的情况下,第j个节点)是非零的。如果每个节点都与一组坐标相关联,那么gplot命令可用于以图形方式显示节点之间的互连。
作为使用的一个琐碎示例gplot考虑该示例,
A=稀疏([2,6,1,3,2,4,5,4,6,1,5],[1,1,2,3,3,4,4,5,6,6],1,6,6);xy=[0,4,8,6,4,2;5,0,5,7,7]';gplot(A,xy)
它创建了一个邻接矩阵A.
其中节点1与节点2和6相连,节点2与节点1和3相连,等等。节点的坐标在n-by-2矩阵中给出xy
详见图22.2.
Cholesky因子分解的节点之间的依赖性可以在线性时间内计算,而无需通过etree
命令此命令返回矩阵的消去树,并可通过命令以图形方式显示树状图
如果A.
对称或树状图(etree(A+A'))
否则
(x)
¶(…, markersize)
¶(…, line_spec)
¶绘制稀疏矩阵的稀疏模式x.
如果可选的数字参数符号化它确定了绘图中使用的符号的大小。
如果可选字符串行_规范已将其传递给plot
并确定绘图的外观。
p =
etree (S)
¶p =
etree (S, typ)
¶[p, q] =
etree (S, typ)
¶返回矩阵的消去树S.
默认情况下S被假定为对称的,并且返回对称消去树。参数type控制是否返回对称或列消除树。的有效值type是sym
或col
,分别用于对称或列消去树。
用第二个参数调用,etree
还返回树上的排序后排列。
(A)
¶(A, node_style, edge_style)
¶绘制矩阵的消去树A或A+A
如果A不对称。
可选参数节点样式和边缘样式定义输出样式。
(A, xy)
¶(A, xy, line_style)
¶[x, y] =
gplot (A, xy)
¶绘制从定义的图形A和xy在图论意义上。
A是要绘制的数组的邻接矩阵,以及xyisann-by-2矩阵,包含图的节点的坐标。
可选参数线条样式定义批次的输出样式。在没有输出参数的情况下调用,则直接绘制图形。否则,返回中的绘图坐标x和y.
(tree)
¶(tree, node_style, edge_style)
¶制作树木或森林的图形。
第一个参数是前人的向量。
可选参数节点样式和边缘样式定义输出打印样式。
就时间和内存需求而言,该算法的复杂性为O(n)。
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号