quinta-feira, 15 de maio de 2014

A matriz de Dürer no MATLAB (a melancolia)

Usando como base uma matriz de números presente na obra de Albercht Dürer "Engraving Melencolia I" para praticar o trabalho com matrizes em ambiente Matlab.

A partir daqui podem fazer-se uma série de simples operações matemáticas tirando proveito do facto desta matriz de números ter uma propriedade muito interessante: a soma de qualquer linha, coluna ou diagonal é igual a 34. Talvez seja por isso que está representada numa obra de arte com o nome de melancolia. Até a soma dos números inscritos nas células dos cantos extremos é igual a 34.

Para representar esta matriz usando o Matlab a escrita dos números é muito simples:

A= [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

A matriz é designada por A e os valores são ordenados linha a linha (com um espaço entre cada número), sendo que as diferentes linhas são separadas por ponto e vírgula. O resultado é:


 A =

    16     3     2    13
     5    10    11     8
     9     6     7    12
     4    15    14     1

Podemos somar cada uma das colunas usando a expressão "sum" e o resultado é:

>> sum(A)

ans =

    34    34    34    34

Aqui já nos estamos a perceber a verdadeira melancolia destas operações. 

E se quisermos somar as linhas? Neste caso podemos usar uma instrução simples com o objectivo de transpor a matriz A e depois efectuar a soma:

O operador A' transpõe a matriz A:

 A'

ans =

    16     5     9     4
     3    10     6    15
     2    11     7    14
    13     8    12     1

 sum (A')

ans =

    34    34    34    34

E se somarmos segundo uma coluna, teremos que:

sum (A')'

ans =

    34
    34
    34
    34

Que melancolia, o número 34...



Sem comentários: