小编典典

快速检查矩阵是否为奇数的方法?(不可逆,det = 0)

algorithm

什么是最快的算法(链接到C或C ++示例会很酷),以检查小的方阵(<16 * 16个元素)是否为奇数(不可逆,det = 0)?


阅读 479

收藏
2020-07-28

共1个答案

小编典典

最好的方法是通过SVD
计算条件编号,并检查条件编号是否大于1
/ epsilon,其中epsilon是机器精度。

如果您允许假阴性(即矩阵有缺陷,但是您的算法可能无法检测到),则可以使用Wikipedia文章中的max(a_ii)/
min(a_ii)公式作为条件编号的代理,但是您可以必须先计算QR分解(该公式适用于三角矩阵):A =具有R正交的QR,然后cond(A)=
cond(Q)。也有使用O(N)运算来计算Q的条件数的技术,但更为复杂。

2020-07-28