Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Desarrollo Web / Determinante de una matriz NxN en javascript

Determinante de una matriz NxN en javascript

Por 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

Artículos similares

Envía mensajes temporales y cifrados

Secret (https://getsecret.now.sh/) es una aplicación web gratuita que te permite enviar mensajes temporales cifrados que[...]

Introducción a Fragment

Un Fragment representa un comportamiento o una parte de la interfaz de usuario en una Activity. Puedes combinar múltiple[...]

3 en raya java con MVC y Netbeans

Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la inter[...]

Obtener Metadatos de un ResultSet

En este post mostramos un ejemplo de uso de la interface ResultSetMetaData el cual se extiende Wrapper que es una interf[...]

Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames[...]

Lo nuevo de HTTP Client

Una de las novedades de Java 9 y 10 aunque por el momento en modo de prueba (jdk.incubator.http) es el Cliente HTTP el c[...]