Elabore um código em uma tecnologia (
ou Python) que dada duas matrizes A e B quadradas de ordem
, calcule as seguintes propriedades:
Passo 1
O problema pede para, dadas duas matrizes quadradas de ordem
, calcular o comutador
Isso envolve duas operações básicas de álgebra linear: multiplicação de matrizes e subtração de matrizes.
Passo 2
Para multiplicar duas matrizes
e
de ordem
, usamos a definição
Em Python, isso se traduz em três loops aninhados: um para a linha
, outro para a coluna
e outro para o somatório em
.
Passo 3
Para subtrair duas matrizes
e
de mesma ordem, basta fazer
elemento a elemento. Em Python, podemos usar compreensão de listas aninhadas.
Passo 4
Implementamos em Python três funções:
\(matrix_mul\)(A, B)
que retorna. \(matrix_sub\)(A, B)
que retorna. commutator(A, B)
que retornachamando as duas anteriores.
Passo 5
No bloco principal (), mostramos um exemplo de entrada definindo duas matrizes
e
e imprimimos o resultado do comutador.
Resposta
def matrix_mul(A, B):
"""
Multiplica duas matrizes \(3\times 3\) A e B.
Retorna uma nova matriz \(C = A \cdot B\).
"""
# inicializa C com zeros
C = [[0 for _ in range(3)] for _ in range(3)]
# três loops aninhados para calcular cada C[i][j]
for i in range(3):
for j in range(3):
for k in range(3):
C[i][j] += A[i][k] * B[k][j]
return C
def matrix_sub(A, B):
"""
Subtrai duas matrizes \(3\times 3\) A e B.
Retorna uma nova matriz \(D = A - B\).
"""
# compreensão de listas para subtração elemento a elemento
return [[A[i][j] - B[i][j] for j in range(3)] for i in range(3)]
def commutator(A, B):
"""
Calcula o comutador \([A, B] = A \cdot B - B \cdot A\) para matrizes \(3\times 3\).
"""
AB = matrix_mul(A, B)
BA = matrix_mul(B, A)
return matrix_sub(AB, BA)
if __name__ == "__main__":
# Exemplo de matrizes A e B
A = [
[1, 2, 3],
[0, 1, 4],
[5, 6, 0]
]
B = [
[0, 1, 0],
[2, 3, 4],
[5, 6, 7]
]
# calcula o comutador
C = commutator(A, B)
print("Comutador \([A, B] = A \cdot B - B \cdot A\):")
for row in C:
print(row)