Operações com Matrizes e Vetores

Tabela de Conteúdos:

Dica: Após visitar um link da tabela de conteúdos, utilize a tecla de retorno do seu navegador para voltar para a tabela.

Nos códigos que implementam os algoritmos estudados a biblioteca de classes org.apache.commons.math3 será utilizada.
Especialmente matrizes e vetores serão comumente representados por objetos das classes RealMatrix e RealVector, respectivamente, desta biblioteca.
Vamos apresentar o resultado de alguns métodos destas classes.

Criar uma matriz de dimensões 2 X 4.

Com a linha de comando Java

RealMatrix M = 
MatrixUtils.createRealMatrix(new double[][] { {1, 2, 3, 4}, {5, 6, 7, 8} });

A matriz M(2x4) é criada.
Observe a notação, M é o nome da matriz, os valores entre parêntesis em seguida significam as dimensões (linhas x colunas), sempre nesta ordem.

O método estático createRealMatrix() da classe MatrixUtils foi utilizado para criar a martriz com os elementos já populados, a partir de uma constante do tipo doube[][].

Multiplicar duas matrizes, a primeira com dimensões 2 x 3, e a segunda com dimensões 3 x 4

Comandos para criar as duas matrizes exemplo em Java e multiplicar uma pela outra:

RealMatrix M1 = 
MatrixUtils.createRealMatrix(new double[][] { {1, 2, 3}, {4, 5, 6} });

RealMatrix M2 = 
MatrixUtils.createRealMatrix(new double[][] { {1, 2, 3, 4}, 
	{5, 6, 7, 8}, {9, 10, 11, 12 } });

RealMatrix M3 = M1.multiply(M2);

Comentários sobre a operação multiplicação de matrizes

Definição da operação de multiplicação realizada acima:
Digamos que a matriz da esquerda da multiplicação tem dimensões (o x p), a da direita dimensões (p x q), e a matriz resultante dimensões (o, q). Então, cada elemento da matriz M3 vai valer

.

Ou seja,
.
.
.
.

  • Existem definições para mais de uma operação de multiplicação de matrizes.
  • A que mostramos acima pode ser considerada a multiplicação padrão.
  • Só pode ser aplicada se o número de colunas da matriz da esquerda é igual ao número de linhas da matriz da direita.
  • A matriz resultante vai ter o número de linhas da matriz da direita e o número de colunas da matriz da esquerda.
  • Note que a multiplicação de matrizes, assim definida, não é comutativa ().

Comentários sobre os comandos Java utilizados para a multiplicação de matrizes

Leia a documentação do org.apache.commons.math3. Especialmente as das classes MatrixUtils e RealMatrix. link

Multiplicar uma matriz com dimensões 2 x 3 por um vetor com dimensão 3

Comandos para criar a matriz , o vetor e multiplicar :


RealMatrix M1 = 
MatrixUtils.createRealMatrix(new double[][] { {1, 2, 3}, {4, 5, 6} });

RealVector v1 = new ArrayRealVector(new double[]{1, 2, 3});

RealVector v2 = M1.operate(v1);

Comentários sobre a operação multiplicação de matriz por vetor

Definição da operação de multiplicação realizada acima:
Digamos que a matriz da esquerda da multiplicação tem dimensões (o x p), o vetor tem dimensão (p), e o vetor resultante dimensão (o). Então, os elementos do vetor v2 vão valer

.

Ou seja,
.
.

  • Existem definições para mais de uma operação de multiplicação de matriz por vetor.
  • A que mostramos acima pode ser considerada a multiplicação padrão.
  • Só pode ser aplicada se o número de colunas da matriz é igual ao número de elementos do vetor.
  • O vetor resultante vai ter dimensão igual ao número de linhas da matriz.

Comentários sobre os comandos Java utilizados para a multiplicação de matriz por vetor

Leia a documentação do org.apache.commons.math3. Especialmente as das classes RealMatrix e RealVector. link

Somar dois vetores de mesma dimensão

Comandos para criar os vetores e e atribuir a soma dos dois a


RealVector V1 = MatrixUtils.createRealVector(new double[] {1, 2, 3} );

RealVector V2 = MatrixUtils.createRealVector(new double[] {4, 5, 6} );

RealVector V3 = V1.add(V2);