Calculadora de matrices inversas 4×4 con pasos
Funciona cuando la matriz no es demasiado grande. He comprobado que para matrices de hasta un tamaño de 12×12 el resultado se proporciona rápidamente. Sin embargo, cuando la matriz es mayor de 12×12 el tiempo que necesita para completar el cálculo aumenta exponencialmente.
El cálculo del determinante mediante cálculos recursivos es algo numéricamente obsceno. Resulta que una mejor opción es utilizar una factorización LU para calcular el determinante. Pero, si te vas a molestar en calcular los factores LU, ¿para qué vas a querer calcular la inversa? Ya has hecho el trabajo difícil calculando los factores LU.
Tu algoritmo para calcular un determinante es exponencial. El problema básico es que estás calculando a partir de la definición, y la definición directa conduce a una cantidad exponencial de subdeterminantes a calcular. Es necesario transformar la matriz antes de calcular su determinante o su inversa. (Pensé en explicar acerca de la programación dinámica, pero este problema no puede ser resuelto por programación dinámica como el número de subproblemas es exponencial también).
Cómo hallar la inversa de una matriz de 4×4 utilizando el determinante
Hola macrom,al menos el nodo MathScript da el mismo resultado que muestra el archivo adjunto…Editado: cambiado el comando mathscript de “a^-1” a “inv(a)” – ambos dan el mismo resultado (dentro de la precisión DBL).Mensaje Editado por GerdW el 07-03-2008 01:25 PM
Hola GerdW,Gracias por la respuesta.Lo siento no puedo abrir el archivo vi, sólo tengo el labview 8 y el archivo se guarda como 8.5He probado el inverseMatrix.vi y el mathscript tanto con a^-1 y inv(a), los tres son consistentes entre sí, pero sigue siendo inconsistente con Matlab y Mathematica. Un amigo matemático me dijo que podría ser una inestabilidad numérica del algoritmo. ¿Alguien ha oído que Labview tenga este problema? También puede ser que sea Matlab o Mathematica. ¡¡¡De todas formas, he decidido usar una matriz que funciona bien en todos los casos.Muchas gracias!!!
Hola macrom,Si es sólo una pequeña diferencia, lo más probable es que se deba a diferencias algorítmicas. MATLAB® es una marca registrada de The MathWorks, Inc.Grant M.Staff Software Engineer | LabVIEW Math & Signal Processing | National Instruments
Inversa de matriz 4×4 mediante operaciones de fila
En mi experiencia, LAPACK es estupendo cuando se desea invertir matrices N×N enormes, pero puede ser realmente lento para invertir matrices 2×2, 3×3 y 4×4 más pequeñas. Para mi caso de uso, en el que necesito invertir miles de millones de matrices de 2×2 y 4×4 en lugar de unas pocas matrices grandes de N×N, he conseguido acelerar mi programa un 30% sustituyendo las llamadas a LAPACK por cálculos directos de las inversiones de matrices. A continuación adjunto el código que he utilizado para los casos 2×2, 3×3 y 4×4. La versión 2×2 es bastante fácil de derivar analíticamente. Las versiones 3×3 y 4×4 se basan en las subrutinas M33INV y M44INV de David G. Simpson; yo sólo las he convertido de subrutinas a funciones puras.
4×4 matrix invertieren
Matrices en el entorno MATLABEste tema contiene una introducción a la creación de matrices y a la realización de cálculos matriciales básicos en MATLAB®. El entorno MATLAB utiliza el término matriz para indicar una variable que contiene números reales o complejos dispuestos en una rejilla bidimensional. Una matriz es, de forma más general, un vector, una matriz o una rejilla de números de mayor dimensión. Todas las matrices en MATLAB son rectangulares, en el sentido de que los vectores componentes a lo largo de cualquier dimensión tienen todos la misma longitud. Las operaciones matemáticas definidas en matrices son el tema del álgebra lineal.Creación de MatricesMATLAB tiene muchas funciones que crean diferentes tipos de matrices. Por ejemplo, puedes crear una matriz simétrica con entradas basadas en el triángulo de Pascal:A = pascal(3)A =
Para obtener más información sobre la creación y el trabajo con matrices, consulte Creación, concatenación y expansión de matrices.Adición y sustracción de matricesLa adición y sustracción de matrices y matrices se realiza elemento a elemento, o elemento a elemento. Por ejemplo, si se suma A a B y luego se resta A del resultado, se obtiene B:X = A + BX =