Сгенерируйте матрицу проверки на четность из матрицы генератора - PullRequest
0 голосов
/ 09 мая 2020

Есть ли функция в (numpy) или хорошо протестированная функция для вычисления матрицы проверки на четность (https://en.wikipedia.org/wiki/Parity-check_matrix)

из матрицы генератора ?

PS

Я не нашел решения на этом сайте.

1 Ответ

0 голосов
/ 14 мая 2020

Если я правильно понимаю, матрица проверки на четность - это пустое пространство порождающей матрицы по модулю 2. Для этого есть решение в scipy, но эта функция дает нецелочисленное пустое пространство. Вы можете использовать sympy, но это может быть медленным для больших матриц.

"""
>>> np.set_string_function(str)
>>> h
[[0 1 1 1 1 0 0]
 [1 0 1 1 0 1 0]
 [1 1 0 1 0 0 1]]
>>> (g @ h.T) % 2
[[0 0 0]
 [0 0 0]
 [0 0 0]
 [0 0 0]]
"""
import sympy
import numpy as np

g = np.array([[1, 1, 1, 0, 0, 0, 0],
       [1, 0, 0, 1, 1, 0, 0],
       [0, 1, 0, 1, 0, 1, 0],
       [1, 1, 0, 1, 0, 0, 1]])
h = np.array(sympy.Matrix(g).nullspace()) % 2

, где h - это матрица проверки на четность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...