LABMAT - Laboratório de Matrizes
Um Applet para Álgebra Linear
Reginaldo J. Santos
Departamento de Matemática
Instituto de Ciências Exatas
Universidade Federal de Minas Gerais
Abril 1998
Objetivo:
Este applet oferece uma interface
simples estilo MATLAB e um conjunto de operações matriciais
e com vetores além de algumas funções
como por exemplo operações elementares sobre linhas de matrizes.
Os escalares, as entradas das matrizes e as componentes dos vetores
podem ser somente números racionais, pelo menos por enquanto. As
expressões devem ser simples na medida do possível. A interface
não trata, ainda, de forma correta expressões mais complexas.
A diferença entre duas matrizes ou dois vetores, por exemplo, deve
ser escrita como a adição da primeira matriz ou vetor com
(-1)* a matriz ou o vetor.
Descrição da Interface:
Abaixo você deve encontrar duas áreas de texto com uma linha
de botões acima delas. A área superior é onde
você deve escrever as expressões para serem calculadas. A
área inferior é onde aprecem os resultados dos cálculos.
Os botões: "clear output" limpa a área de saída, "clear
vars" apaga todas as variáveis e "evaluate" calcula a expressão
atual na janela de entrada.
Sintaxe:
-
Vetores devem ser escritos entre colchetes, com as componentes separadas
por vírgula, como [1, 2, 3].
-
Matrizes devem ser escritas entre colchetes, sendo os elementos de uma
mesma linha separados por vírgula e as linhas separadas por ponto
e vírgula como [1, 2, 3;4, 5, 6;7, 8, 9].
-
Vetores ou matrizes podem ser transpostos usando ', por ex., [1, 2, 3]'.
-
Nome de funções tem que ser precedidos por dois pontos, como
:eye(3) . A lista de funções aparece abaixo.
-
Variáveis têm que ser definidas como: NOME = EXPRESSÃO,
onde NOME é a variável e EXPRESSÃO é uma expressão
que resulta em uma matriz. EXPRESSÃO pode incluir outras variáveis
que tenham sido definidas anteriormente. Maiúsculas e minúsculas
fazem diferença.
-
A soma de matrizes ou vetores é obtida com o sinal + entre eles(as).
A multiplicação entre matrizes, a multiplicação
de escalar (racional) por matriz ou vetor é obtida com sinal * entre
eles(as). A diferença com +(-1)*
-
Duas matrizes podem ser concatenadas uma do lado da outra com o sinal |
entre elas, como por exemplo A|B
-
Podem ser definidas variáveis e estas podem ser referidas mais tarde,
por exemplo:
A=[7 ,-3, -9 ;10, 1 ,-1 ;0, 9, 7 ]
B=[-6 ,-2, 10;3, -6, 9;-3 ,2, -3]
C=A+B
D=A*B
Funções:
-
:rand(n) devolve uma matriz n x n com elementos inteiros de umadistribuição
uniforme em [-10,10].
-
:rand([m, n]) devolve uma matriz m x n com elementos como no caso anterior.
-
:eye(n) devolve a matriz identidade n x n.
-
:one(n) devolve a matriz n x n com todas as entradas iguais a 1.
:one([m,n]) devolve a matriz m x n com todas as entradas iguais a
1.
-
:zero(n) devolve a matriz n x n com todas as entradas iguais a 0.
:zero([m,n]) devolve a matriz m x n com todas as entradas iguais
a 0.
-
:rs(i,j,A) ou :swap(i,j,A) ou :rsw(i,j,A) ou :sw(i,j,A) devolve a matriz
A com as linhas i e j permutadas.
-
:ro(r,i,A) ou :elop(r,i,A) ou :eo(r,i,A) ou :eop(r,i,A) devolve a matriz
A com a linha i multiplicada pelo número racional r.
-
:ro(r,i,j,A) ou :elop(r,i,j,A) ou :eo(r,i,j,A) ou :eop(r,i,j,A) devolve
a matriz A com a linha j somada à linha i multiplicada pelo número
racional r.