¿De qué sirve la matriz inversa? No lo usaría para resolver sistemas lineales, pero debe haber algunas aplicaciones concretas o de la vida real donde se usa.

“No lo usaría (la matriz inversa) para resolver sistemas lineales”.

Por qué no? Dependiendo de la situación, esto puede o no ser exactamente lo que haría. Por ejemplo, suponga que tiene un conjunto de 1,000 ecuaciones lineales en 1,000 variables donde los coeficientes son fijos pero el lado derecho varía, y necesita resolver rápidamente millones de instancias de este problema (“instancia” solo significa un derecho diferente- lado). En este caso, invertirías la matriz de coeficientes de una vez por todas. Luego, con cada instancia, multiplique la matriz invertida por el vector de columna RHS y listo.

Muchos sistemas de la vida real son lineales en el sentido de que algunas variables de salida dependen linealmente de algunas variables de entrada. A veces, la dependencia real no es del todo lineal, pero usamos una aproximación lineal para hacer las cosas más manejables. La mecánica (o física) de tales sistemas a menudo determina cómo la salida depende de la entrada, y a veces es necesario revertir el proceso y descubrir cuáles fueron las entradas para una salida observada dada. Así es como la situación que describí anteriormente puede surgir “en la vida real”.

Aquí hay otro ejemplo. Dada una matriz, a menudo es beneficioso encontrar una similar que represente la misma transformación lineal en una base diferente. Un caso típico es la diagonalización: se le da una matriz desordenada y al cambiar de base, hace que consista en todos los 0 excepto o algunas cosas a lo largo de la diagonal. Si necesita calcular las potencias de una matriz, por ejemplo, definitivamente esto es lo que debe hacer.

Ahora, cambiar una matriz es básicamente reemplazar [matemática] A [/ matemática] con [matemática] PAP ^ {- 1} [/ matemática] donde [matemática] P [/ matemática] es la matriz de “cambio de base” que describe cómo uno La base depende de la otra. Como puede ver, también necesita el inverso de [math] P [/ math] para “volver” a la base original. Ahora, dependiendo de cómo implemente el proceso, es posible que pueda calcular [matemáticas] P [/ matemáticas] y su inverso simultáneamente, pero independientemente del proceso inherentemente se basa en el concepto de matriz inversa.

Digamos que tenemos un punto [matemático] [a, b] [/ matemático], y nos gustaría rotarlo alrededor del origen en un ángulo [matemático] \ theta. [/ Matemático] Podemos usar la matriz de rotación, definida como:

[matemáticas] R (\ theta) = \ begin {bmatrix} {\ cos \ theta} & {- \ sin \ theta} \\ {\ sin \ theta} & {\ cos \ theta} \ end {bmatrix} [/ matemáticas]

Si multiplicamos esta matriz por un punto, los resultados serán el punto girado alrededor del origen por [math] \ theta [/ math]

Digamos que queremos revertir la acción. [matemática] R (- \ theta) = R ^ {- 1} (\ theta) [/ matemática] Bueno, necesitamos encontrar la matriz inversa.

Usando la fórmula estándar para invertir una matriz [math] 2 \ times {2} [/ math], [math] {\ begin {bmatrix} {a} & {b} \\ {c} & {d} \ end { bmatrix}} ^ {- 1} = \ frac {1} {\ det} \ begin {bmatrix} {d} & {- b} \\ {- c} & {a} \ end {bmatrix} [/ math] , podemos calcular [matemáticas] R ^ {- 1} (\ theta) [/ matemáticas]

[matemáticas] R ^ {- 1} (\ theta) = \ frac {1} {\ sin ^ 2 (\ theta) + \ cos ^ 2 (\ theta)} \ begin {bmatrix} {\ cos \ theta} & {\ sin \ theta} \\ {- \ sin \ theta} & {\ cos \ theta} \ end {bmatrix} = \ begin {bmatrix} {\ cos \ theta} & {\ sin \ theta} \\ {- \ sin \ theta} & {\ cos \ theta} \ end {bmatrix} [/ math]

Este es solo uno de los innumerables ejemplos de transformaciones matriciales. Lo sorprendente es que, para deshacer la transformación, simplemente la invertimos, y para componer transformaciones, simplemente las multiplicamos.

En cuanto a un ejemplo concreto de la vida real:

Hace aproximadamente un año, estaba trabajando en un motor de juegos 3D en Java. Usó openGL, pero todo lo demás, desde sombreadores, hasta la carga en modelos .obj vértice por vértice, hasta el sistema de renderizado, hasta el trazador de rayos, tuvo que escribirse desde cero. Fue un proyecto bastante grande y pasé unos 7 meses trabajando en él. Una de las cosas que saqué del proyecto fue una inmensa apreciación por el álgebra lineal. Muchos, si no todos, los componentes del motor no habrían funcionado si no fuera por las matrices y los vectores.

Por ejemplo, para hacer que los objetos lejanos parezcan más pequeños y los objetos más cercanos parezcan más grandes, cada punto 3D que se representa tendrá que multiplicarse por una matriz de proyección.

Otra transformación: cuando la cámara se mueve, todo se multiplica por una matriz de vista, una matriz que mueve puntos en la dirección opuesta de la cámara para dar la ilusión de movimiento.

Además, cada objeto se multiplicó por una matriz de escala, rotación y traslación para posicionarlo en el mundo 3D.

Sin embargo, la belleza de las matrices es que la composición de las transformaciones puede expresarse como multiplicación de matrices. Para hacer más de una transformación, las multiplicamos en el orden en que se aplicarán las transformaciones. Para revertir una transformación, simplemente multiplique por el inverso.

Prácticamente cualquier cosa que tenga que ver con renderizar objetos en la pantalla de una computadora tiene mucho álgebra lineal trabajando detrás de escena.

Aquí hay una imagen del motor donde estaba probando múltiples fuentes de luz y mapas normales.

Quizás la mayor aplicación de matrices inversas fue el rastreador de rayos. El objetivo era convertir un clic 2D del mouse en un punto 3D en el espacio. Lo que hizo fue aplicar multiplicar el vector 2D por las matrices inversas de la matriz de vista, matriz de proyección, matriz de traducción, matriz de rotación y todas las demás transformaciones que había aplicado. Aquí hay un fragmento del código:

¡Gracias por leer!

Si desea saber cuándo se utilizan inversos numéricos, probablemente la mejor manera de aprender es mirar las conferencias de Gilbert Strang:

http://ocw.mit.edu/courses/mathe

No soy alguien que hace una gran cantidad de computación de alto rendimiento o análisis numérico, por lo que realmente no puedo responder eso fuera de mi cabeza, excepto para notar que si quieres resolver un sistema, puede ser más rápido para resolver por descenso de gradiente, pero si desea resolver el mismo sistema repetidamente con diferentes valores, es mejor invertir la matriz y almacenarla.

Por ejemplo, si la matriz A representa el número de productos que puede hacer con un número específico de entradas, querrá invertir y almacenar esta matriz, y luego, cuando tenga nuevos pedidos, lo multiplicará por su pedido para ver Cuántas materias primas necesita comprar. *

Puedo decirle que las matrices inversas exactas son de vital importancia para hacer cálculos teóricos. A menudo puede usar una matriz inversa como un paso intermedio y, en última instancia, llegar a una fórmula que no implique invertir una matriz. Desafortunadamente, no tengo ningún buen ejemplo inmediato de esto que no implique explicar una gran cantidad de material específico de dominio, pero puedes ver cómo podría funcionar.

* Esta situación es poco realista, ya que supongo que tiene la misma cantidad de entradas que salidas, y que los requisitos son linealmente independientes. Pero hay situaciones realistas como esta; de nuevo, solo toman más esfuerzo para describir.

Las matrices inversas son realmente útiles para una variedad de cosas, pero realmente son propias para las transformaciones 3D.

Concatenando una serie de matrices juntas de manera apropiada, puede representar en una única matriz la traslación, rotación, inclinación y escala de un solo punto en el espacio con respecto al origen.

¡Esto es genial para juegos en 3D! Defina su objeto como una malla de triángulos con cada punto como una coordenada en el espacio 3d. Luego aplique esa matriz completa a cada uno de los puntos en el objeto a su vez, y puede girar, rodar, volar, hacer que crezca y encogerse, y cualquier cantidad de cosas que haya visto mil millones de veces en videojuegos .

La matriz inversa? ¡También increíblemente útil! Con la matriz inversa, puede deshacer una de estas operaciones. Esto es muy útil en la animación, donde puede tener un punto base (generalmente llamado raíz), y luego cada hueso en el esqueleto de la animación aplica otra transformación hacia adelante que se aplica a la malla del objeto, hasta que obtenga la nueva posición de El punto en el espacio mundial 3d.

¿Pero necesita averiguar dónde está algo con respecto al espacio local de (digamos) la mano del Jefe Maestro? Bueno, puedes hacer ese cálculo en el espacio mundial o en el espacio local. De cualquier manera, poder subir y bajar la pila de transformaciones matriciales en la jerarquía de animación es muy útil, y aquí es donde entra lo inverso. Realiza la traducción / escala / rotación / inclinación en la dirección opuesta, deshaciéndola.

O otro ejemplo: supongamos que desea averiguar si un punto está en un cuadro. Claro, podría probar en cada plano del que está hecha la caja … o, si tiene un hardware que realiza operaciones matriciales rápidas y comparaciones limitantes, puede hacer lo siguiente:

Calcule la matriz (M) que tomaría un cubo canónico de 1 unidad de ancho / alto / profundidad y muévalo / gírelo / escalelo para que coincida con el cuadro con el que desea probar.

Ahora invierta esta matriz y guárdela. Ahora puede tomar cualquier punto en el espacio mundial y multiplicarlo por esta matriz inversa. Esto moverá el punto al espacio de la caja canónica, por lo que si estaría dentro de la caja en el espacio mundial, estaría dentro de la caja en el espacio de la caja canónica. Es decir, simplemente puede probar si cada una de sus coordenadas transformadas está entre -0.5 y +0.5; si lo están, está dentro del cuadro.

Muchas operaciones de álgebra matricial / lineal pueden considerarse como composiciones de transformaciones de un punto en el espacio. La transformación por la matriz te lleva en una dirección, la transformación por el inverso de la matriz te lleva a la dirección opuesta. Si puede entender esta idea, es probable que sea una de las imágenes mentales más útiles que pueda tener de las matrices en general.

Es cierto que la inversión matricial no es apropiada para resolver sistemas lineales: hay formas más rápidas y más eficientes de hacerlo. Por lo general, calculamos el inverso de una matriz solo cuando se necesitan los elementos explícitos del inverso.

Como un ejemplo concreto de la teoría del transporte electrónico, considere el problema de calcular una propiedad física, digamos conductancia, de un dispositivo electrónico a nanoescala a partir de los primeros principios.

Podríamos comenzar con la ecuación de Schroedinger y resolver los estados propios y las energías del sistema, pero esto es ineficiente. En cambio, generalmente comenzamos la matriz hamiltoniana del dispositivo (en cierta base) y calculamos su función de Green, que es un problema de inversión de matriz.

Se puede mostrar que la función de Green contiene toda la información encontrada en la función de onda, por lo que los dos enfoques producen el mismo resultado. (Ref. ‘Transporte electrónico en sistemas mesoscópicos’ por S. Datta para más detalles.)

Después de calcular la función de Green, podemos usarla para calcular todas las cantidades físicas del sistema, como con el enfoque de función de onda.

Por ejemplo, el bloque de la esquina superior derecha de la matriz de funciones de Green está relacionado con el coeficiente de transmisión (ver relación Fischer-Lee), la parte inmaginaria de la función de Green está relacionada con la matriz de densidad, y su traza está relacionada con la densidad de estados.

Como puede ver, en este caso, en realidad requerimos entradas específicas de la inversa, y no solo una solución para un sistema lineal.

¡Espero que esto ayude!