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

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

Mais visualizadas nos últimos 30 dias

Mais visualisadas