Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Desarrollo Web / Determinante de una matriz NxN en javascript

Determinante de una matriz NxN en javascript

Autor jc mouse Sábado, Julio 2, 2016

Notación matemática formada por una tabla cuadrada de números, u otros elementos, entre dos líneas verticales; el valor de la expresión se calcula mediante su desarrollo siguiendo ciertas reglas. Los determinantes fueron originalmente investigados por el matemático japonés Seki Kowa alrededor de 1683 y, por separado, por el filósofo y matemático alemán Gottfried Wilhhelm Leibniz alrededor de 1693. Esta notación se utiliza en casi todas las ramas de las matemáticas y en las ciencias naturales. [Enciclopedia Microsoft Encarta 2001]

<!DOCTYPE html>
<html>
    <head>
        <title>Determinante de una matriz NxN en javascript</title>
        <meta charset="UTF-8">        
    </head>
    <body>
        <script>
            /**
             * crea una matriz cuadrada
             * @param {integer} size dimension de la matriz
             * */
            function createMatriz(size){
                var matriz = new Array(size);
                for (i = 0; i < size ; i++){ 
                  matriz[i]=new Array(size); 
                } 
                return matriz;
            }
            
            /**
             * calcula el determinante de una matriz NxN
             * @param {array} matriz matriz a calcular
             * */
            function determinante(matriz){                                
                if(matriz.length==2){
                    var det=(matriz[0][0]*matriz[1][1])-(matriz[1][0]*matriz[0][1]);
                    return det;
                }               
                var suma = 0;
                for(var i = 0; i<matriz.length; i++){
                    var nm = createMatriz(matriz.length-1);
                    for(var j=0; j<matriz.length; j++){
                        if(j!=i){
                            for(var k=1; k<matriz.length; k++){
                                var indice=-1;
                                if(j<i)
                                    indice=j;
                                else if(j>i)
                                    indice=j-1;
                                nm[indice][k-1] = matriz[j][k];
                            }
                        }
                    }
                    if(i%2==0){                            
                        suma += matriz[i][0] * determinante(nm);                            
                    }                            
                    else{                            
                        suma -= matriz[i][0] * determinante(nm);
                    }                        
                }
                return suma;
            }
            
            function printMatriz(matriz){
                for(var i=0; i<matriz.length; i++){
                    document.write("[ ");
                    for(var j=0; j<matriz.length; j++){
                        document.write(matriz[i][j].toPrecision(precision) + " ");
                    }   
                    document.write(" ]<br/>");            
                }
            }
            
            /* ---------------------------------- */            
            var precision = 5;
            /*
            var m = createMatriz(3);            
            m[0][0]=1;m[0][1]=0.3;m[0][2]=0.5;
            m[1][0]=0;m[1][1]=1;m[1][2]=0.5;
            m[2][0]=-0.1;m[2][1]=0.7;m[2][2]=1;
            */
            
            //definimos matriz y datos
            var m = createMatriz(4);            
            m[0][0]=0.3;m[0][1]=2.3;m[0][2]=3.3;m[0][3]=2;
            m[1][0]=4;m[1][1]=5.4;m[1][2]=6;m[1][3]=3;
            m[2][0]=9;m[2][1]=8;m[2][2]=2;m[2][3]=0.01;
            m[3][0]=1;m[3][1]=0.1;m[3][2]=0.2;m[3][3]=3;
            
            //calculamos y mostramos en pantalla
            document.write("Matriz <br/>");
            printMatriz(m);
            var d = determinante(m);
            document.write("determinante = " + d.toPrecision(precision) + "<br/>");
        </script>
    </body>
</html>

Ejecutando el ejemplo tenemos:

determinante javascript

 

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Google Open Source: Código Abierto +2000 proyectos

Google Open Source: Código Abierto +2000 proyectos

Google abre las puertas de Google Open Source un nuevo sitio web que une todos sus proyectos de “Código Abierto...

Código CSS en Java/Netbeans

Código CSS en Java/Netbeans

Los objetos como JLabel o JButton nos permiten hacer uso de código CSS en su propiedad TEXT, asi podemos adornar el text...

Tablas virtuales en java (View)

Tablas virtuales en java (View)

Una Vista (View) es una Tabla Virtual cuyo contenido está definido por una consulta (SELECT), al igual que una tabla rea...

Generador de números aleatorios UNIX

Generador de números aleatorios UNIX

El Método Congruencial Lineal Mixto es el más utilizado en simulación en computadoras digitales y esta basado en una rel...

Código de Control en PHP v7.0 Bolivia

Código de Control en PHP v7.0 Bolivia

NUEVA ESPECIFICACIÓN TÉCNICA DEL CÓDIGO DE CONTROL (Ver.7.0) En el marco del Nuevo Sistema de Facturación implementado p...

Gráficos estadísticos con Base de Datos SQLite

Gráficos estadísticos con Base de Datos SQLite

Si necesitamos mostrar gráficos estadísticos en nuestras aplicaciones android, contamos con muchas librerías disponibles...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Comparte lo que sabes

Categorias

Últimas entradas

Slim es un micro framework para PHP que nos ayuda a escribir rápidamente aplicaciones Web y APIs sencillas pero poderosa...

Es recomendable tener actualizado la Maquina Virtual Java de nuestro equipo para poder disfrutar de las mejoras que trae...

JavaFX implementa el control webview que nos permite agregar contenido HTML cargado mediante la clase WebEngine. El comp...

En este ejemplo tenemos un array en JSON el cual representa una lista de alumnos y queremos llevar este a una lista en j...

Android Bolivia

Bandera en Alto