c++ 中的下三角阵矩阵元标记

2021-08-07 08:57

阅读:643

标签:一维数组   矩阵   实现   isp   mat   有一个   display   修复   splay   若有一个下三角阵,不包括对角元,其矩阵元为 \[A_{ij}, ~~~~ i = 1, \cdots, n-1, ~~~~ j=0,\cdots, i-1. \]那么,可以用一维数组储存这些矩阵元: \[a[k] = A_{ij}, ~~~ k = i(i-1)/2 + j. \]这样可以将 \(k=0,\cdots,n(n-1)/2-1\) 与 \((i,j)\) 实现一一对应,如此可以紧凑地储存下三角阵。如果需要包括对角元,我相信稍微调整一下上式,也可以类似地实现。 那么,如果已知 \(k\),欲求 \(i,j\),则可以如下使用: \[i = [ \sqrt{2k+0.25}+0.75 ],~~ j = k - i(i-1)/2. \]证明如下: \[i(i-1)/2 \leq k \leq k + i-1, \i^2-i+0.25 \leq 2k + 0.25 \leq i^2 - 0.75


评论


亲,登录后才可以留言!