Autor Tema: ¿Cómo proyecto un tensor de dimensiones (1,2041,2), para tener una matriz?

0 Usuarios y 1 Visitante están viendo este tema.

19 Junio, 2013, 03:39 pm
Leído 2386 veces

Piockñec

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,266
  • Karma: +1/-0
  • Sexo: Masculino
¿Cómo proyecto un tensor de dimensiones (1,2041,2), para tener una matriz que tenga dimensiones (2041,2) (filas y columnas) ?

Es que me han puesto a trabajar con matrices de datos enormes, operando con ellas y haciéndoles maravillas y representándolas, y me estoy volviendo loco hahaha He importado al mathematica un excel y me ha salido un tensor tal que este:

{{{0.339979, 1.89304}, {0.353456, 1.85993}, {0.366933, 1.8275},...}}

Y claro, por culpa de ese doble corchete no puedo hacer nada. Si pudiera poner por pantalla el tensor y copiarlo en otra variable a lo copiaypego sin esos corchetes, sería fantástico, pero es que no me cabe ni por asomo (2041 filas). La única forma es proyectar ese "ortoedro tensorial" hacia la cara en la que está la matriz que yo quiero.

En mis muy cortas luces (nunca he trabajado con tensores, ni sé sus fundamentos matemáticos (lo que voy a poner será todo lo que sé, si sé algo)), tengo este problema matemáticamente:

\( ((a_i\vec{i}+a_j\vec{j})_k\vec{k})\vec{\gamma} \)

Y tengo que multiplicarlo por el vector unitario gamma y fin de la cuestión. El problema es: ¿Cuál es ese vector gamma, qué expresión tiene para yo ponerlo en el mathematica (no sé si es ((1),0,0) o yo qué sé) y que me salga mi queridísima matriz?

¡¡¡Muchas gracias!!!

EDITO: Mi objetivo, por si no se ha entendido (estaba subyacente implícito :D) es conseguir un vector de pares de datos, no una matriz de pares de datos (tensor de orden 3), ya que con ese vector de pares de datos puedo maniobrar mejor y representarlo en el plano xy. Traté de importarlo en otros formatos (csv,tsv,etc.) pero con el que lo hice es el único que me lo aceptó "bien", salvo este problemita. Ojalá consigan deducir qué vector es!!! Muchas gracias

19 Junio, 2013, 03:51 pm
Respuesta #1

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,907
  • País: es
  • Karma: +0/-0
Hola

 Tu pregunta es bastante confusa; y tal como la entiendo no tiene mucho que ver con matemáticas.

 Parece más bien un problema de representación de datos en un ordenador. Entiendo que en mathematica tienes un "array" de tres componentes y te gustaría reducirlo a uno de dos.

 Pero no estoy seguro. Para que ententendamos pon un ejemplo de lo que tienes y quieres conseguir peron cambiando el dato \( 2041 \) por un simple \( 4 \) que te hará todo más manejable.

Saludos.

19 Junio, 2013, 05:11 pm
Respuesta #2

Piockñec

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,266
  • Karma: +1/-0
  • Sexo: Masculino
Sí, gracias. Por ejemplo,

{{{0,1},{1,0},{1,1},{3,1}}} sería un malvado tensor de orden 3, ya que tiene 4 filas, 2 columnas, y un espesor de dimensión 1, es decir, dimensión 4x2x1. Uno que no tuviera dimensión 1 (a lo que yo llamo dimensión, a lo que yo llamo tensor de orden 3... pongo otro ejemplo por si uso términos erróneamente) sería:

{{{0,1},{1,0},{1,1},{3,1}},{{2,0},{4,1},{4,3},{5,3}}}
                                     |
Y ése sería un tensor de orden 3 de dimensión 4 filas, 2 columnas, espesor 2. Es decir, dimensión 4x2x2.

¿Se entiende la problemática? Por culpa de ese doble corchete, el mathematica interpreta tensor de orden 3, cuya 3ª dimensión vale 1. Es decir, yo tengo un tensor de orden 2094x2x1. Ese 1, ese espesor, quiero cargármelo. Para eso, matemáticamente (según hacía con matrices (tensor de orden 2) y vectores, pero extrapolado a orden 3 y orden 2), sería proyectar el tensor hacia una cara de ese paralelepípedo, análogamente a como yo proyectaba matrices hacia una dirección.


19 Junio, 2013, 05:44 pm
Respuesta #3

Piockñec

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,266
  • Karma: +1/-0
  • Sexo: Masculino
A base de probar multiplicando escalarmente por vectores, matrices, tensores, etc etc etc he logrado con la solución (ha sido con ensayo y error, no lo he deducido, así que no entiendo por qué ha resultado ser ésta la solución):

{1}.TENSOR

Donde {1} denota (creo) un vector con una única componente, que es el uno hahaha Me ha costado. No sabía por dónde multiplicar el tensor, si por la derecha, por la izquierda, o por arriba!!! hahaha como era de orden 3...

¡Estamos chalados! Ojalá pudiera comprender esto de los tensores, las proyecciones, y todo eso. Libro que me he cogido de tensores, libro que me contaba cuentos chinos de "covariante", "Gram", e infinidad de "Proposición: Lema: Corolario: Teorema:" Y no saben que esas cosas ni las entiendo, ni las comprendo. Ojalá un día pueda encontrar la biyección entre el lenguaje formal y la intuición/imaginación/comprensión, ¡o tan siquiera un libro que me enseñara a leerlo y comprenderlo con soltura!. Era tan bueno (hasta que llegué a la universidad y la vanidad de la formalidad se adueñaron de las matemáticas), todo era evidente a mis ojos, el concepto de límite también, mi imaginación siempre iba por delante y "sabía" cosas de matemáticas que se deducían a simple vista de los conceptos, no por "hipótesis -> demostración", como veo que está de moda ahora trabajar con las mates. Y ahora me enseñan el concepto de límite de una forma tan rara... cuando lo entiendes, lo entiendes, pero eso de que "existe un tal mayor que cero que cumple que tal y cual" no lo entiende nadie, a menos que le digas "cómo debes interpretarlo" y uno dice... ahhh!! claro, con lo fácil que era. "Cómo debes interpretarlo", matemáticas, En fin...

Gracias el_manco por tu interés de todas formas!!! :D

21 Junio, 2013, 12:19 pm
Respuesta #4

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 58,907
  • País: es
  • Karma: +0/-0
Hola

 Me sigue pareciendo que estás confundiendo conceptos, ideas generales sobre las matemáticas.

 Una cosa es que te manden hacer una operación concreta y bien definida con un objeto matemático. En el caso de los tensores podemos contraer un par de índices, hacer un producto tensorial, hacer un producto contraído, hacer un cambio de base,...

 O un ejemplo más simple. Con matrices: podemos sumarlas, multiplicarlas, hallar su determinantes, hallar su traza, hallar su potencia,...

 Entonces uno podría tener la duda. ¿Cómo se suman dos matrices? ¿Cómo se multiplican? ¿Cómo se define y halla su determinante? ¿Qué es y como se halla su traza?...

 Pero cosas disinta es que uno diga, por ejemplo: tengo una matriz y quiero transformarla en un número. ¿Cómo hago?. Pues depende. ¿En qué contexto quieres hacer eso? ¿Qué debe de representar ese número con respecto a esa matriz?. Uno podría hacerlo hallando su traza, su determinante, su rango, o sumando todos sus términos,... Pero unas cosas tendrán su aplicación, su encaje, su interpretación en un contexto determinado y otras no.

 En esta última línea has planteado tu pregunta. Sin contexto. Tengo un tensor de tal tipo y quiero transformalo en uno de tal otro. ¿Pero en qué contexto? ¿Para qué? ¿Es una operación tensoria standard? ¿Cuál?

 Tu dices que has conseguido lo que quierías; pero si es simplemente quitar un corchete, es simple cuestión de notación. No hay ninguna idea detrás. Es lógico que no lo entiendas (insisto sin situarse en el contexto adecuado).

 Lo que has hecho en el Mathematica corresponde a un producto contraido con un tensor de orden 1. Pero podría hacerse de otras formas.

Saludos.

08 Julio, 2013, 12:50 am
Respuesta #5

Piockñec

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,266
  • Karma: +1/-0
  • Sexo: Masculino
Llego un poco tarde, pero a tiempo para tu explicación!
Muchas gracias por la aclaración. La verdad es que con la desesperación que me entró (me agobia mucho ahogarme en un vaso de agua) ni me planteé lo que dijiste, yo sólo veía un tensor de orden 3 donde DEBÍA haber una matriz.
La problemática era la misma que con la última frase que has dicho: Lo que has hecho ha sido contraerlo con un tensor de orden 1. El tensor de orden 1, es decir, el vector en cuestión, estaba formado por un único número (el número 1), uno solo, así que daba un poco igual llamarlo tensor de orden 1, como decirle vector, como decirle... escalar. 1 solo hueco, 1 sólo número, el número 1. Eso por aclarar mi duda :) Pero sí, la captaste bien pese al maremágnum de líos que expuse jajaja

La verdad, necesito un cursillo de cálculo tensorial intuitivo, nada de covariantes a base de teoremas jajaja que sino no me entero de nada, salvo de los resultados y demostraciones sobre un etéreo, gris y todo-igual dominio de símbolos. ¡Muchas gracias!