Multiplicação de matrizes N-Dimensionais

17 respostas
J

Certo…Todo mundo aqui já implementou uma multiplicação de matrizes bidimensionais. Alguém sabe se existe esta operação para matrizes de dimensão superior a 2? Se existe, alguém tem idéia de como é o caso geral da multiplicação de matrizes N-dimensionais?

17 Respostas

R

Matrizes, são , por definição bi-dimensionais. Só pra lembrar :

matriz != array

J

Mas falo de matrizes na acepção matemática do termo, não necessariamente computacional…

L

Olá

Só conheço multiplicação de matrizes bi dimensionais. Mas sei que uma matriz m x m x p são p matrizes m x n, isto é, uma matriz de 3 dimensões m x n x p se compõe de p matrizes m x n. Então este seria minha base de raciocínio para tentar descobrir se é possível multiplicar matrizes multidimensionais.

[]s
Luca

P

rmendes08:
Matrizes, são , por definição bi-dimensionais. Só pra lembrar :

matriz != array

Discordo.Sempre entendi que:

Matriz é um Array multidimensional.
Vetor é um Array unidimensional.

Esta é uma referência para o que expûs. Outros sites vão dizer a mesma coisa.

http://www.google.com.br/search?hl=pt-BR&q=define%3Aarray&btnG=Pesquisa+Google&meta=

S

Matrizes n-dimensionais continuam apenas tendo colunas e linhas. A regra é a mesma, acontece apenas que as linhas e colunas terão n elementos.

Tlv esteja pensando em objetos com 3 indices. Nesse caso desconheço. Mas tb desconheço aplicabilidade para isso. Vc está mesmo precisando fazer essa operação ou é apenas curiosidade ?

M

:arrow: Talvez aqui !!!

:arrow: Improving Java for Numerical Computation

:arrow: http://math.nist.gov/javanumerics/

:arrow: http://www.hpjava.org/courses/arl/index.html

B

Na matemática, matrizes, por definição, tem dimensão 2, ou são tensores de ordem 2. Vetores tem ordem 1, escalares zero.
Multiplicações de matrizes só ocorrem com estruturas de ordem 2 ou menor.

Dê uma olhada em multiplicação de tensores ou em multiplicações de matrizes em cadeia.

R

boone:
rmendes08:
Matrizes, são , por definição bi-dimensionais. Só pra lembrar :

matriz != array

Discordo.Sempre entendi que:

Matriz é um Array multidimensional.
Vetor é um Array unidimensional.

Esta é uma referência para o que expûs. Outros sites vão dizer a mesma coisa.

http://www.google.com.br/search?hl=pt-BR&q=define%3Aarray&btnG=Pesquisa+Google&meta=

As duas definições estão incorretas.

Matematicamente, o conceitor de vetor é bem mais amplo. Um número real pode ser um vetor, um par ordenado, uma matriz, uma tupla qualquer pode ser um vetor, um polinômio, e por aí vai, isso inclui um array. Ou seja, um array pode ser um vetor, e não o contrário.

Uma matriz, é necessariamente, um array (arranjo) em duas dimensões, em linhas e colunas, ou seja, é uma tabela. Dizer que uma matriz é um arranjo de duas dimensões, não é a mesma coisa que dizer que é um vetor de duas dimensões.

ps: que irônico você citar a Sankhya, pois é onde eu trabalho!

M

Matrizes n-dimensionais continuam apenas tendo colunas e linhas. A regra é a mesma, acontece apenas que as linhas e colunas terão n elementos.

Tlv esteja pensando em objetos com 3 indices. Nesse caso desconheço. Mas tb desconheço aplicabilidade para isso. Vc está mesmo precisando fazer essa operação ou é apenas curiosidade ?

:arrow: [size=17]Inverse of a jacobian matrix[/size], não seria alguma coisa relacionada a Robótica que ele quer dizer !!!
[size=18]
Fonte [/size]
:arrow: http://www-ee.ccny.cuny.edu/www/web/jxiao/Jacobian.ppt

J

Realmente, matrizes podem assumir quantas dimensões vc quiser( e a ram aguentar, claro). Uma matriz A[i][j] pode assumir também 3 dimensões A[i][j][k]. Lembre-se que o consumo de memória aumenta exponencialmente. Mas sinceramente, o que vc vai calcular com uma terceira dimensão??

D

Multiplicação simples de N dimensões tem em livros de matemática de segundo grau e de álgebra linear.

Se quiser algo mais interessante, pesquise sobre um algoritmo de programação dinâmica que utiliza a técnica de divisão e conquista. O nome do autor e do algoritmo é Strassen. Procure sobre multiplicação de matrizes no livro “Algoritmos” (Algorithms) do Cormen que lá tem tudo. Estudei esses algoritmos na disciplina de Complexidade de Algoritmos, bem interessante.

Só não pire! hehe

P

Com três dimensões ele pode querer guardar as coordenadas de um cubo, por exemplo…ou representar formas além de R³ =)

T+

J

Para isso vc pode usar uma classe com atributos xyz e guardar seus objetos num vetor. Não precisa de matriz de n dimensões. A não ser que realmente seja um projeto de computação gráfica ao nível da opengl.

L

Olá

Por favor cite algum livro e mostre como se faz.

Por mais de 10 anos da minha vida sobrevivi principalmente graças aos meus conhecimentos de matrizes, da aplicação do cálculo matricial à engenharia e da solução de grandes sistemas de equações. Acho que li os principais livros do assunto e não me lembro de ter visto multiplicação de matrizes com mais de 2 dimensões. É impossível fazer? Acho que não e até dei uma dica para reduzir de 3 dimensões para 2.

Como no meu tempo a gente só aprendia cálculo matricial e álgebra linear na faculdade, fiquei curioso sobre os tais livros do segundo grau que ensinam Multiplicação simples de N dimensões.

[]s
Luca

D

Luca:
Olá

Por favor cite algum livro e mostre como se faz.

Por mais de 10 anos da minha vida sobrevivi principalmente graças aos meus conhecimentos de matrizes, da aplicação do cálculo matricial à engenharia e da solução de grandes sistemas de equações. Acho que li os principais livros do assunto e não me lembro de ter visto multiplicação de matrizes com mais de 2 dimensões. É impossível fazer? Acho que não e até dei uma dica para reduzir de 3 dimensões para 2.

Como no meu tempo a gente só aprendia cálculo matricial e álgebra linear na faculdade, fiquei curioso sobre os tais livros do segundo grau que ensinam Multiplicação simples de N dimensões.

[]s
Luca

Ah, confundi dimensão com o tamanho da matriz.
:roll:

J

rs…esquenta naum.

D

mas eu to curioso, vou pesquisar mais sobre isso!
soh q agora to sem tempo, trabalhando…

Criado 6 de dezembro de 2008
Ultima resposta 9 de dez. de 2008
Respostas 17
Participantes 10