检查矩阵/数组元素的条件以整数为模

我的目标是检查矩阵(即二维数组)模 d 是否为辛(参见维基百科上的条件:https : //en.wikipedia.org/wiki/Symplectic_matrix)。也就是说,在对某个数字 d 取模时元素相等的矩阵集合中是否存在任何辛矩阵。

是否有任何合乎逻辑且特别有效的方法来检查这种涉及矩阵乘法的条件,而无需遍历(可能的)无限矩阵?目标语言是 Julia,但是,如果有人有 Python 解决方案也很好。Julia 中没有模 d 条件的条件现在以这种方式实现(容差为 0.001,M 为 2n x 2n 数组):

omega = [zeros((n,n)) Matrix(1I, n, n)); -Matrix(1I, n, n) zeros((n,n))]

isSymplec = maximum(abs.(transpose(M)*(omega*M) - omega)) < 0.001

举个简单的例子:数组/矩阵 [1 0 0 0; 1 1 0 0; 0 0 1 1; 0 0 0 1]不是辛但有一个模 2 辛“等效”伙伴:[1 0 0 0; 1 1 0 0; 0 0 1 -1; 0 0 0 1]

以上是检查矩阵/数组元素的条件以整数为模的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>