Visualizações de página dos últimos 30 dias

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

Mais visualizadas nos últimos 30 dias

Mais visualisadas