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?
Matrizes, são , por definição bi-dimensionais. Só pra lembrar :
matriz != array
Mas falo de matrizes na acepção matemática do termo, não necessariamente computacional…
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
[quote=rmendes08]Matrizes, são , por definição bi-dimensionais. Só pra lembrar :
matriz != array[/quote]
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=
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: Talvez aqui !!!
:arrow: Improving Java for Numerical Computation
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.
[quote=boone][quote=rmendes08]Matrizes, são , por definição bi-dimensionais. Só pra lembrar :
matriz != array[/quote]
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=[/quote]
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!
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 ?[/quote]
: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
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??
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
Com três dimensões ele pode querer guardar as coordenadas de um cubo, por exemplo…ou representar formas além de R³ =)
T+
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.
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
[quote=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
[/quote]
Ah, confundi dimensão com o tamanho da matriz.
:roll:
rs…esquenta naum.
mas eu to curioso, vou pesquisar mais sobre isso!
soh q agora to sem tempo, trabalhando…