Crie a função multiplica_matriz(mat1, mat2) que deve retornar o produto de duas matrizes bidimensionais genéricas, sem alterar as matrizes originais. A função deve imprimir uma mensagem de erro e retornar um vetor vazio ([]) caso não for possível realizar o produto das duas matrizes.
Passo 1
Beleza, vamos resolver esse exercício juntos! A gente precisa criar uma função chamada
multiplica_matriz(mat1, mat2)
que vai multiplicar duas matrizes bidimensionais. Isso faz parte do conteúdo de álgebra linear e programação, especificamente trabalhando com listas em Python. Para fazer essa multiplicação, vamos precisar verificar se o número de colunas da primeira matriz é igual ao número de linhas da segunda matriz. Se não for, não dá pra multiplicar e a gente precisa tratar esse caso.Passo 2
Primeiro, vamos relembrar como funciona a multiplicação de matrizes. Para multiplicar duas matrizes, a quantidade de colunas da primeira matriz (
mat1
) tem que ser igual à quantidade de linhas da segunda matriz (mat2
). Se mat1
for uma matriz de tamanho m x n
e mat2
for de tamanho n x p
, o resultado será uma matriz de tamanho m x p
. Cada elemento da matriz resultante é calculado como a soma dos produtos dos elementos correspondentes das linhas de mat1
e das colunas de mat2
.Passo 3
Agora, na nossa função, vamos começar verificando se é possível multiplicar as duas matrizes. Precisamos saber o número de linhas e colunas de cada uma. Em Python, podemos usar
len(mat1)
para obter o número de linhas de mat1
e len(mat1[0])
para as colunas. Fazemos a mesma coisa para mat2
. Se o número de colunas de mat1
não for igual ao número de linhas de mat2
, vamos imprimir uma mensagem de erro e retornar uma lista vazia []
.Passo 4
Se as matrizes puderem ser multiplicadas, vamos criar uma matriz resultado preenchida com zeros. O tamanho dessa matriz será o número de linhas de
mat1
por o número de colunas de mat2
. Para preencher essa matriz, vamos usar dois loops: um para percorrer as linhas de mat1
e outro para percorrer as colunas de mat2
. Dentro desses loops, vamos calcular cada elemento multiplicando e somando os elementos correspondentes.Passo 5
Por fim, depois de preencher toda a matriz resultado, vamos retorná-la. Assim, garantimos que as matrizes originais não são alteradas e que o produto é corretamente calculado.
Resposta
def multiplica_matriz(mat1, mat2):
# Verifica se as matrizes podem ser multiplicadas
linhas_mat1 = len(mat1)
colunas_mat1 = len(mat1[0]) if mat1 else 0
linhas_mat2 = len(mat2)
colunas_mat2 = len(mat2[0]) if mat2 else 0
if colunas_mat1 != linhas_mat2:
print("Erro: Não é possível multiplicar as matrizes devido às dimensões incompatíveis.")
return []
# Inicializa a matriz resultado com zeros
resultado = [[0 for _ in range(colunas_mat2)] for _ in range(linhas_mat1)]
# Realiza a multiplicação
for i in range(linhas_mat1):
for j in range(colunas_mat2):
for k in range(colunas_mat1):
resultado[i][j] += mat1[i][k] * mat2[k][j]
return resultado