什么是最快的算法(链接到C或C ++示例会很酷),以检查小的方阵(<16 * 16个元素)是否为奇数(不可逆,det = 0)?
最好的方法是通过SVD 计算条件编号,并检查条件编号是否大于1 / epsilon,其中epsilon是机器精度。
如果您允许假阴性(即矩阵有缺陷,但是您的算法可能无法检测到),则可以使用Wikipedia文章中的max(a_ii)/ min(a_ii)公式作为条件编号的代理,但是您可以必须先计算QR分解(该公式适用于三角矩阵):A =具有R正交的QR,然后cond(A)= cond(Q)。也有使用O(N)运算来计算Q的条件数的技术,但更为复杂。