Я начал работать над этой проблемой , которая пытается найти все матрицы, которые коммутируют с заданной. Мне удалось уменьшить его, чтобы решить уравнение типа Ax = 0.
Решение этого последнего уравнения должно быть простым с использованием A.nullspace, однако я обнаружил, что для некоторых матриц решатель дает мне матрица, которая не решает уравнение. Например, если
A = Matrix([
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.16, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.24, 0.32, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.24, 0.48, -0.16, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.16, 0.48, -0.24, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.32, -0.24, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.16, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.16, 0.0, 0.0, 0.0, 0.0, -0.16, -0.32, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.16, 0.0, 0.0, 0.0, 0.0, -0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.16, 0.0, 0.0, 0.0, 0.0, -0.24, 0.16, -0.16, 0.0, 0.0, 0.0, 0.0, 0.16, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.16, 0.0, 0.0, 0.0, 0.0, -0.16, 0.16, -0.24, 0.0, 0.0, 0.0, 0.0, 0.16, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.16, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.24, 0.0, 0.0, 0.0, 0.0, 0.16, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.16, 0.0, 0.0, 0.0, 0.0, 0.0, -0.32, -0.16, 0.0, 0.0, 0.0, 0.0, 0.16, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.24, 0.0, 0.0, 0.0, 0.0, -0.16, -0.48, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.24, 0.0, 0.0, 0.0, 0.0, -0.24, -0.16, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.24, 0.0, 0.0, 0.0, 0.0, -0.24, 0.0, -0.16, 0.0, 0.0, 0.0, 0.0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.24, 0.0, 0.0, 0.0, 0.0, -0.16, 0.0, -0.24, 0.0, 0.0, 0.0, 0.0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, -0.16, -0.24, 0.0, 0.0, 0.0, 0.0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, -0.48, -0.16, 0.0, 0.0, 0.0, 0.0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.24, 0.0, 0.0, 0.0, 0.0, -0.16, -0.48, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.24, 0.0, 0.0, 0.0, 0.0, -0.24, -0.16, 0.0, 0.0, 0.0, 0.0, 0.0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.24, 0.0, 0.0, 0.0, 0.0, -0.24, 0.0, -0.16, 0.0, 0.0, 0.0, 0.0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0.24, 0.0, 0.0, 0.0, 0.0, -0.16, 0.0, -0.24, 0.0, 0.0, 0.0, 0.0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, -0.16, -0.24, 0.0, 0.0, 0.0, 0.0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, -0.48, -0.16, 0.0, 0.0, 0.0, 0.0, 0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0, 0.16, 0.0, 0.0, 0.0, 0.0, -0.16, -0.32, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, 0.16, 0.0, 0.0, 0.0, 0.0, -0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.16, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0.16, 0.0, 0.0, 0.0, 0.0, -0.24, 0.16, -0.16, 0.0, 0.0, 0.0, 0.0, 0.16, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0.16, 0.0, 0.0, 0.0, 0.0, -0.16, 0.16, -0.24, 0.0, 0.0, 0.0, 0.0, 0.16, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0.16, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.24, 0.0, 0.0, 0.0, 0.0, 0.16, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.16, 0.0, 0.0, 0.0, 0.0, 0.0, -0.32, -0.16, 0.0, 0.0, 0.0, 0.0, 0.16, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, 0, -0.16, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, 0, -0.24, 0.32, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0, -0.24, 0.48, -0.16, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, -0.16, 0.48, -0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, 0.32, -0.24, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[ 0, -0.16, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]])
, тогда A.nullspace () должен дать мне основу для векторов v, такую что Av = 0. Однако вывод, который я получаю, равен
[Matrix([
[5.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[4.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[3.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[2.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 1],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0]]), Matrix([
[4.0],
[ 0],
[ 0],
[ 0],
[ 0],
[1.0],
[3.0],
[ 0],
[ 0],
[ 0],
[1.0],
[ 0],
[2.0],
[ 0],
[ 0],
[1.0],
[ 0],
[ 0],
[1.0],
[ 0],
[1.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 1],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0]]), Matrix([
[1.0],
[ 0],
[ 0],
[ 0],
[ 0],
[4.0],
[ 0],
[1.0],
[ 0],
[ 0],
[ 0],
[3.0],
[ 0],
[ 0],
[1.0],
[ 0],
[ 0],
[2.0],
[ 0],
[ 0],
[ 0],
[1.0],
[ 0],
[1.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 1],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0]]), Matrix([
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[5.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[4.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[3.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[2.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 1],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0]]), Matrix([
[-4.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[-3.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[-2.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[-1.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 1],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0]]), Matrix([
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[-4.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[-3.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[-2.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[-1.0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 0],
[ 1]])]
. если
v = A.nullspace()
, то v [0] является одним конкретным решением. Но это не так.
Я знаю, что матрица, с которой начинается ИИ, "большая" и имеет слишком много нулей, но я надеялась, что она все еще будет работать. Кто-нибудь может сказать мне, если я что-то не так делаю?
Спасибо.