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

Entradas relacionadas: