Я знаю, что A имеет ранг 11 и форму (11,12). т. е. A — широкая прямоугольная матрица с большим количеством переменных, чем уравнений. Таким образом, скорее всего, существует свободная переменная и параметризованное решение.
RHS, B в уравнении имеет вид:
) нельзя использовать напрямую, поскольку A и B не являются квадратными матрицами.
Следующим я попробовал решатель numpy в Галуа . Поскольку это конечные матрицы полей, я использую первый вариант Галуа, чтобы обернуть их в объекты mod 2,
Но проблема с неквадратной матрицей остается: заполнение избыточными строками делает матрицу сингулярной, а линейную систему неразрешимой с помощью np.linalg.solve или scipy.linalg.solve.
Далее я получил эшелон с сокращенным количеством строк форма, рассчитанная с помощью A1.row_reduce() для объекта Галуа
(Из вышеизложенного легко увидеть сумму последовательных строк, чтобы получить RHS, т.е. строка 1 + строка 2 с сокращением строк дает B), но функция galois rref не помогает мне прийти в X или последовательности явных операций для преобразования A в B. Я знаю, что решение существует из-за равенства рангов и сокращенной формы строк, я просто не знаю, как найти X.
tldr; как решить широкую прямоугольную (т.е. неквадратную) систему уравнений с матрицами по модулю 2, используя Python?
Я пытаюсь решить линейное матричное уравнение AX = B с помощью Python, где A,B,X — двоичные матрицы, т.е. над GF(2): [code]A = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1], [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0], [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0]]) [/code] Я знаю, что A имеет ранг 11 и форму (11,12). т. е. A — широкая прямоугольная матрица с большим количеством переменных, чем уравнений. Таким образом, скорее всего, существует свободная переменная и параметризованное решение. RHS, B в уравнении имеет вид: [code]B = np.array([[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1]]) [/code] Который, как я также могу вычислить, имеет ранг 11. Я хочу найти линейные комбинации строк в A, которые дают B. В идеале включены замены строк . [list] [*]Обычные методы Python ([code]np.linalg.solve(A,B)[/code]) нельзя использовать напрямую, поскольку A и B не являются квадратными матрицами.
[*]Следующим я попробовал решатель numpy в Галуа . Поскольку это конечные матрицы полей, я использую первый вариант Галуа, чтобы обернуть их в объекты mod 2, [code]import galois GF = galois.GF(2) A1 = GF(A)[/code]
[*]Но проблема с неквадратной матрицей остается: заполнение избыточными строками делает матрицу сингулярной, а линейную систему неразрешимой с помощью np.linalg.solve или scipy.linalg.solve.
[*]Далее я получил эшелон с сокращенным количеством строк форма, рассчитанная с помощью A1.row_reduce() для объекта Галуа
[/list] [code]A1.row_reduce() = GF([[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1]], order=2) [/code] (Из вышеизложенного легко увидеть сумму последовательных строк, чтобы получить RHS, т.е. строка 1 + строка 2 с сокращением строк дает B), но функция galois rref не помогает мне прийти в X или последовательности явных операций для преобразования A в B. Я знаю, что решение существует из-за равенства рангов и сокращенной формы строк, я просто не знаю, как найти X. tldr; как решить широкую прямоугольную (т.е. неквадратную) систему уравнений с матрицами по модулю 2, используя Python?
Я хочу решить линейное матричное уравнение по модулю 2, которое принимает форму AX = B, но с дополнительными ограничениями, описанными ниже. Здесь столбцы A могут быть или не быть линейно независимыми с самого начала. RHS, B, с другой стороны, имеет...
Я столкнулся с проблемой, из-за которой я не могу заставить APOPT оптимизировать неограниченную одиночную кусочно-линейную операцию, и это действительно заводит меня в замешательство. Я чувствую, что что-то не понимаю в model.pwl, но мне сложно...
Я столкнулся с проблемой, из-за которой я не могу заставить APOPT оптимизировать неограниченную одиночную кусочно-линейную операцию, и это действительно заводит меня в замешательство. Я чувствую, что что-то не понимаю в model.pwl, но мне сложно...
Я пытаюсь вписать свою теплопроводность в уравнение Дебая Каллавей. Однако один из моих параметров возвращается отрицательными. Я пробовал разные первоначальные догадки. Поэтому я прикрепляю код с данными теплопроводности из литературы и значениями,...
Я пытаюсь вписать свою теплопроводность в уравнение Дебая Каллавей. Однако один из моих параметров возвращается отрицательными. Я пробовал разные первоначальные догадки. Поэтому я прикрепляю код с данными теплопроводности из литературы и значениями,...