Uma matriz, sua inversa... e o poder do Python!
Você já leu nossa postagem sobre como calcular a matriz inversa usando o método de Gauss-Jordan?
Se ainda não conferiu, te convido a dar uma olhada aqui antes de continuar:
👉 Matriz inversa pelo Método de Gauss-Jordan
Agora que você já sabe o que é a inversa de uma matriz e por que ela é tão importante, chegou a hora de colocar isso na prática com Python.
E não, não vamos só usar uma função pronta. Vamos entender, testar, explorar!
🧠 Mas... por que isso importa?
Nem toda matriz tem inversa. Isso depende do determinante ser diferente de zero.
Se o determinante for zero? Esquece: a matriz é singular, e nenhuma função mágica vai te dar a inversa dela.
Com Python, conseguimos testar e visualizar esse processo — e é isso que vamos fazer agora.
🧪 O código comentado
Vamos entender, linha por linha, o que cada parte do código faz e qual conceito matemático está por trás:
Acompanhe linha por linha:
🔹 Importação: Começamos importando a biblioteca NumPy
, que nos permite trabalhar com vetores, matrizes e operações lineares.
import numpy as np
🔹 Parâmetros: Definimos que a matriz será 3x3 (poderia ser 2x2, 4x4...) e que os números sorteados estarão entre 1 e 9.
n = 3 # ordem da matriz
limite = 10
🔹 Gerando a matriz: Com np.random.randint()
, criamos uma matriz aleatória com inteiros. Usamos seed(0)
para manter os resultados reproduzíveis.
np.random.seed(0)
A = np.random.randint(1, limite, (n, n))
🔹 Exibição: Mostramos a matriz na tela, pois visualizar os dados é fundamental antes de operar sobre eles.
print("Matriz A:")
print(A)
🔹 Determinante: Verificamos se a matriz é invertível. Se o determinante for zero, a matriz é singular e não tem inversa.
det = np.linalg.det(A)
print(f"Determinante de A: {round(det, 2)}")
🔹 Verificação e inversa: Se o determinante for diferente de zero, usamos np.linalg.inv()
para calcular a inversa.
if det != 0:
A_inv = np.linalg.inv(A)
print("Matriz inversa de A:")
print(np.round(A_inv, 2))
identidade = np.dot(A, A_inv)
print("Produto A * A_inv:")
print(np.round(identidade, 2))
else:
print("A matriz NÃO é invertível (determinante igual a zero).")
💡 Exemplo de saída (simulada)
Matriz A:
[[6 1 4]
[4 4 8]
[4 6 3]]
Determinante de A: 96.0
Matriz inversa de A:
[[ 0.25 -0.38 0.25]
[ 0.5 -0.5 0. ]
[-0.5 0.75 -0.25]]
Produto A * A_inv:
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
💬 Bora conversar?
Ficou com alguma dúvida? Teve um insight?
👉 Comente aqui embaixo!
👉 Compartilhe com quem está aprendendo Álgebra Linear!
👉 Experimente reescrever o código linha por linha: isso ajuda demais a fixar o conteúdo!
E claro: continue explorando o Bendita Matemática. Porque entender é só o começo. Aplicar é onde a mágica acontece. ✨
Comentários
Postar um comentário
Não postar comentários ofensivos e que contenham palavrões. Comente sobre o assunto da postagem que você leu.