Algoritmos de Matrizes: Triangular, Simétrica e Multiplicação
Classificado em Matemática
Escrito em em
português com um tamanho de 3,59 KB
Determinação de Matriz Triangular Inferior
Determina se uma matriz quadrada fornecida é Triangular Inferior.
função lógica MatrizTriangularInferior( n, M )
// Defina o tipo das variáveis
MatrizTriangularInferior ? verdadeiro
// A ideia é tentar provar o contrário, isto é, basta achar um
// único valor diferente de zero acima da diagonal principal.
L ? 1
repita
se L > n então interrompa fim se
C ? L + 1
repita
se ( C > n ) ou ( não MatrizTriangularInferior ) então interrompa fim se
se M[ L, C ] ? 0 então
// Provou o contrário
MatrizTriangularInferior ? falso
fim se
C ? C + 1
fim repita
L ? L + 1
fim repita
fim função
Referências e Declaração de Variáveis
// Defina o tipo das variáveis
declare M [1:100, 1:100] numérico // entrada: matriz quadrada de dimensão n x n
declare n numérico // entrada: ordem da matriz quadrada M
declare L, C numérico // índices
Determinação de Matriz Simétrica
Determina se uma matriz quadrada fornecida é Simétrica.
função lógica MatrizSimetrica( n, M )
// Defina o tipo das variáveis
MatrizSimetrica ? verdadeiro
// A ideia é tentar provar o contrário, isto é, basta achar um
// único valor diferente do valor da sua posição simétrica.
L ? 1
repita
se L > n então interrompa fim se
C ? L + 1
repita
se ( C > n ) ou ( não MatrizSimetrica ) então interrompa fim se
se M[ L, C ] ? M[ C, L ] então
// Provou o contrário
MatrizSimetrica ? falso
fim se
C ? C + 1
fim repita
L ? L + 1
fim repita
fim função
Referências e Declaração de Variáveis
// Defina o tipo das variáveis
declare M [1:20, 1:20] numérico // entrada: matriz quadrada de dimensão n x n
declare n numérico // entrada: ordem da matriz quadrada M
declare L, C numérico // índices
Multiplicação de Matrizes (A x B)
Declaração de Variáveis
Algoritmo
declare A[ 1:10, 1:20 ], B[ 1:20, 1:10 ] numérico // Matrizes fornecidas na entrada
declare C[ 1:10, 1:10 ] numérico // Matriz produto A x B
declare M, N numérico // Dimensões das matrizes
declare I, J, K numérico // Apontadores (Índices)
Fluxo Principal
// Leitura das dimensões
leia M, N
// Leitura das matrizes A e B
leia A[1, 1], A[1, 2], ... A[M, N]
leia B[1, 1], B[1, 2], ... B[N, M]
// Multiplicação das matrizes
I ? 1
repita
se I > M então interrompa fim se
// Multiplique a linha I da matriz A por todas as colunas da matriz B
J ? 1
repita
se J > M então interrompa fim se
K ? 1
repita
se K > N então interrompa fim se
C[I, J] ? C[I, J] + ( A[I, K] x B[K, J] )
K ? K + 1
fim repita
J ? J + 1
fim repita
I ? I + 1
fim repita
// Escrita da matriz produto C
escreva C[1, 1], C[1, 1], ... C[M, M]
fim algoritmo