Inversão de matrizes
Matrizes são invertidas com numpy.linalg.inv:
Ai = np.linalg.inv(A)
Aiarray([[-2. , 1. ],
[ 1.5, -0.5]])A matriz inversa é tal que
onde é a matriz identidade
Ai @ Aarray([[1.00000000e+00, 0.00000000e+00],
[1.11022302e-16, 1.00000000e+00]])A menos de erros numéricos, essa parece ser a resposta correta (valores da ordem de são praticamente zero). Vamos checar isso por comparação da multiplicação acima com a matriz identidade (usando a função numpy.allclose, que compara arrays a menos de erros numéricos):
np.allclose(Ai @ A, np.eye(2))TrueLembre-se: nem toda matriz possui inversa! Uma maneira de identificar se uma matriz possui inversa é com o cálculo do rank da mesma (numpy.linalg.matrix_rank), que deve ser igual à dimensão do array:
np.linalg.matrix_rank(A)2A.ndim2
Nenhum comentário:
Postar um comentário