Produto Matricial (Na Matemática + Algoritmo em C#)
Thalita Sylvia Marques
você vai aprender
Como multiplicar matrizes na matemática
Como colocar esse algoritmo em forma de código
Exemplo em C#
pré-requisitos
Compreender matrizes
Lógica de Programação
Curiosidade
sobre a multiplicação
A principal característica da multiplicação de matrizes é: o produto matricial não é comutativo. Ou seja, no caso desta multiplicação a ordem dos fatores altera SIM o resultado. Logo, se temos uma matriz A e outra B, o produto AB é diferente do produto BA.
Outra característica muito importante é que a multiplicação de matrizes tem uma condição de possibilidade. Vamos ver se você descobre qual é essa condição ao ver a multiplicação!
na matemática
Considere as matrizes A e B abaixo:
Monte um esquema como o mostrado a seguir. Preste muita atenção na ordem dos fatores! As setas mostram onde colocar cada matriz.
Fica assim:
primeiro elemento
O resultado desta multiplicação será uma matriz de dimensões 3x3. Depois explicarei o porquê. Para encontrar o valor de um termo na matriz resultado é preciso pensar qual linha e qual coluna das matrizes "levam" a este termo. No caso do primeiro elemento, note que a primeira linha da matriz A e a primeira coluna da matriz B levam a ele.
Devemos então:
→ Multiplicar o primeiro elemento da linha pelo primeiro elemento da coluna e reservar o valor.
(1 * 1 e reserva o resultado 1)
→ Multiplicar o segundo elemento da linha pelo segundo elemento da coluna e reservar o valor.
(4 * 4 e reserva o resultado 16)
Em nosso exemplo de multiplicação de matrizes temos apenas 2 elementos em cada linha da matriz A e 2 elementos em cada coluna da matriz B, então paramos por aí (se tivéssemos mais elementos continuaríamos a multiplicar sucessivamente) e somamos os valores reservados 1 e 16. O resultado desta soma é o valor do primeiro elemento da matriz resultado: 17!
segundo elemento
Analisando qual linha da matriz A e qual coluna da matriz B leva ao segundo elemento, pode-se perceber que ainda estamos na mesma linha de A, mas agora na próxima coluna de B.
Repetimos os cálculos:
→ Multiplicar o primeiro elemento da linha pelo primeiro elemento da coluna e reservar o valor.
(1 * 2 e reserva o resultado 2)
→ Multiplicar o segundo elemento da linha pelo segundo elemento da coluna e reservar o valor.
(4 * 5 e reserva o resultado 20)
→ Somamos os valores reservados 2 e 20. O resultado da soma é o segundo elemento: 22!
matriz resultado
Seguindo os passos descritos, os cálculos efetuados para se encontrar cada um dos termos são:
A matriz resultado preenchida:
conclusões
A lógica da multiplicação de matrizes é pensar em LINHA X COLUNA. No exemplo acima tínhamos o produto das matrizes A e B sendo suas dimensões respectivamente (3x2) e (2x3). A multiplicação foi feita entre cada elemento de uma linha em A e cada elemento de uma coluna em B. A quantidade de termos em qualquer linha de A era 2 e a quantidade de termos em qualquer coluna de B também era 2. Por isso tínhamos sempre 2 valores reservados para juntar.
Conseguiu imaginar a condição para possibilidade de multiplicação de matrizes? O número de colunas da primeira matriz fator deve ser o mesmo número de linhas da segunda, pois este número é a quantidade de elementos para multiplicar!
Sobre a matriz resultado temos, pela lógica de multiplicação LINHA X COLUNA, que o número total de termos será o número de linhas na matriz A vezes o número de colunas em B. Logo, suas dimensões também são dadas por estes valores (LINHA,COLUNA). Por isto a matriz resultado teve dimensões (3x3).
Podemos obter essas informações rapidamente apenas de olhar para as dimensões:
código em C#
Agora que você sabe multiplicar matrizes na matemática vai achar bem simples colocar esse algoritmo em código. Vamos utilizar a linguagem C# para implementar a multiplicação das mesmas matrizes A e B que usamos como exemplo.
A sequência de passos é a seguinte:
→ Primeiro, vamos iterar nas linhas da matriz A.
→ Em cada linha de A, vamos iterar nas colunas de B.
→ Em cada coluna de B vamos iterar entre seus elementos multiplicando-os pelos elementos de mesma ordem na linha de A em que estivermos.
Como você é fera em lógica de programação, deve ter percebido que utilizaremos 3 laços de repetição, um dentro do outro. Você pode utilizar a estrutura que preferir, eu escolhi o for.
A imagem abaixo mostra apenas o trecho do código responsável por efetuar a multiplicação. Não se esqueça de preencher suas matrizes e verificar se atendem à condição de possibilidade antes de multiplicar. Se você tentar multiplicar uma matriz que não atende à possibilidade, em algum momento seu projeto terá um erro por tentar chamar um elemento de índice fora dos limites da matriz.
Se você teve dificuldade para entender a multiplicação de matrizes, fazer no código vai parecer ainda mais confuso. A dica é: desenhe! Não deixe de fazer seu próprio esquema. Realmente espero que este tutorial tenha sido útil para você. Bons estudos.
Comentários