Estoy aprendiendo álgebra lineal para una clase de aprendizaje automático y tengo una pregunta sobre la multiplicación de matrices. El producto de dos matrices no está definido siempre que las filas de la primera matriz (leyendo de derecha a izquierda) no coincidan con la columna de la segunda matriz.
Sin embargo, digamos que necesitaría (por alguna razón) multiplicar una matriz de 3x3 por una de 2x2. ¿No podría simplemente completar la operación agregando la "fila faltante" con las coordenadas [0,0]? Lo estoy pensando porque si las matrices representan transformaciones lineales del espacio, entonces una matriz de 2x2 representa una transformación bidimensional. Sin embargo, ¿no es una transformación bidimensional simplemente una transformación en la que todas las demás dimensiones son iguales a 0?
Para ilustrar eso, digamos que quiero aplicar una transformación lineal [-1,0;0,1] al vector [3,3]. El vector resultante sería un vector bidimensional [-3,3]. Ahora digamos que después de esta transformación quiero aplicar otra transformación al mismo vector, pero esta vez en tres dimensiones. Para mantener el ejemplo lo más simple posible, usemos la transformación de identidad para esto: [1,0,0;0,1,0;0,0,1]. Hacer esto requeriría multiplicar la matriz de 3x3 [1,0,0;0,1,0;0,0,1] por la de 2x3 [-1,0;0,1], lo que técnicamente no es posible. Sin embargo, si aplico el método anterior (es decir, agrego una tercera fila con todos los 0 a la matriz de 2x3), aún podría calcular la transformación y obtener el resultado [-1,0,0;0,1,0]. Luego puedo multiplicar esto por mi vector original y obtener [-3,3,0]. La única diferencia que puedo ver entre [-3,3,0] y [-3,
¿Que me estoy perdiendo aqui?
Saludos,
federico
Tienes que ser un poco más explícito sobre lo que quieres hacer. Técnicamente hablando, simplemente no puedes multiplicar una matriz de 2x2 por una de 3x3. Así que no estoy seguro de lo que buscas allí.
Pero si y quieres encontrar para que siempre que tenemos idéntica a la proyección de en sus dos primeras coordenadas, entonces eso es definitivamente factible. De hecho, supongamos
Diría que se puede usar el núcleo de la idea, pero una matriz que contiene solo 0 no deja el vector sin cambios, el mapa de unidades no cambia el vector, por lo que si desea usar un mapa 2D en un objeto 3D puede optar por elegir 1 eje a lo largo del cual no se cambiará nada utilizando el mapa de unidades en lugar del mapa cero.
Efectivamente estás haciendo cálculos en , el anillo de apoyo finito Matrices bidimensionales de valores reales. Y está considerando que cada una de esas matrices es equivalente a cualquier segmento de dimensión finita que contenga todas sus entradas distintas de cero. Esto generalmente funciona bien: por ejemplo, la multiplicación en es asociativo. Pero no hay matriz identidad, ya que necesitaría tener infinitas s, y eso es inconveniente.
Dicho esto, ¡solo porque puedas hacer esto no significa necesariamente que debas hacerlo ! Para expresar esto en una configuración aplicada: digamos que está diseñando un paquete de álgebra lineal desde cero. Si el usuario intenta multiplicar dos matrices con formas inesperadas, es probable que sea un error, por lo que es mejor señalar un gran error, en lugar de convertir silenciosamente la mitad de sus datos en ceros. Si el usuario realmente quiere realizar la multiplicación, solicítele que describa explícitamente cómo quiere que las entradas se formen primero. Por ejemplo, vea la manipulación de matrices y las funciones de relleno de numpy .
fcorte
ben w
fcorte
ben w