Triangulação de matrizes com Python
Calcular o determinante de uma matriz em Python pode ser feito com uma única linha:
np.linalg.det(A)
Mas quando escrevemos o algoritmo com nossas próprias mãos, ganhamos compreensão, domínio e clareza sobre cada passo da Álgebra Linear computacional. Aqui, você vai aprender a triangular uma matriz 5×5 e usar isso para calcular seu determinante.
📥 Gerando a matriz
Neste trecho, criamos uma matriz 5x5 com números aleatórios entre 1 e 9. Também usamos astype(float)
para permitir divisões decimais.
import numpy as np
np.random.seed(0)
A = np.random.randint(1, 10, (5, 5)).astype(float)
print("Matriz original A:\n", A)
⚙️ Função de triangulação
Aplicamos a eliminação de Gauss para zerar todos os elementos abaixo da diagonal principal. A função percorre linha a linha, identificando o pivô e aplicando operações elementares.
def triangularizar(A):
n = A.shape[0]
for i in range(n):
# Verifica se o pivô é zero e realiza troca de linha se necessário
if A[i, i] == 0:
for j in range(i+1, n):
if A[j, i] != 0:
A[[i, j]] = A[[j, i]]
break
# Subtrai múltiplos da linha pivô para eliminar elementos abaixo da diagonal
for j in range(i+1, n):
fator = A[j, i] / A[i, i]
A[j, i:] -= fator * A[i, i:]
return A
🚀 Aplicando a triangularização
Saída esperada (valores aproximados após arredondamento):
Matriz triangular superior:
[[ 6. 1. 4. 4. 8. ]
[ 0. 5.33 0.33 2.33 2.67]
[ 0. 0. 3.6 -2.46 0.8 ]
[ 0. 0. 0. 4.3 -0.3 ]
[ 0. 0. 0. 0. 5.06]]
Com a matriz triangular em mãos, todos os elementos abaixo da diagonal serão nulos. Isso simplifica o cálculo do determinante.
A_tri = triangularizar(A.copy())
print("Matriz triangular superior:\n", np.round(A_tri, 2))
📏 Cálculo do Determinante
O determinante de uma matriz triangular é simplesmente o produto dos elementos da sua diagonal principal.
det = np.prod(np.diag(A_tri))
print("Determinante da matriz A (via triangularização):", round(det, 2))
✨ A beleza de triangular matrizes
Criar o próprio algoritmo de triangularização nos ajuda a entender de forma clara como o método de Gauss atua na prática. Mais do que obter um número, é sobre ver a matemática acontecendo, linha por linha, dentro do Python.
💬 Vamos conversar?
Ficou com alguma dúvida? Teve um insight diferente? Comenta aí! Este código foi feito para ser explorado, testado e adaptado. Reescreva-o linha por linha, adicione seus próprios prints, experimente com outras matrizes.
Compartilhe este material com quem também está mergulhando no mundo da Álgebra Linear computacional! Quanto mais exploramos os bastidores da matemática, mais domínio ganhamos sobre ela.
Comente, compartilhe, experimente. A matemática também se aprende com as mãos no código!
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.