Se chiedo SymPy remare-ridurre la matrice singolarePerché SymPy mi dà la risposta sbagliata quando eseguo una riduzione a righe di una matrice simbolica?
nu = Symbol('nu')
lamb = Symbol('lambda')
A3 = Matrix([[-3*nu, 1, 0, 0],
[3*nu, -2*nu-1, 2, 0],
[0, 2*nu, (-1 * nu) - lamb - 2, 3],
[0, 0, nu + lamb, -3]])
print A3.rref()
allora restituisce la matrice identità
(Matrix([
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]]), [0, 1, 2, 3])
che non dovrebbe fare, dal momento che la matrice è singolare. Perché SymPy mi sta dando la risposta sbagliata e come posso farmi avere la risposta giusta?
so SymPy conosce la matrice è singolare, perché quando chiedo A3.inv(), dà
raise ValueError("Matrix det == 0; not invertible.")
Inoltre, quando viene rimosso dalla matrice agnello (equivalente all'impostazione agnello = 0) , SymPy dà la risposta corretta:
(Matrix([
[1, 0, 0, -1/nu**3],
[0, 1, 0, -3/nu**2],
[0, 0, 1, -3/nu],
[0, 0, 0, 0]]), [0, 1, 2])
che mi porta a credere che questo problema si verifica solo con più di una variabile.
EDIT: È interessante notare che ho appena ottenuto la risposta corretta quando passo rref() l'argomento "Simplify = True". Non ho ancora idea del perché sia così.
Si noti che ora funziona correttamente nella versione di sviluppo di SymPy. – moorepants