快速检查矩阵是否为奇数的方法?(不可逆,det = 0)
什么是最快的算法(链接到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的条件数的技术,但更为复杂。
以上是 快速检查矩阵是否为奇数的方法?(不可逆,det = 0) 的全部内容, 来源链接: utcz.com/qa/412492.html