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ío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el[...]

Ejemplo de procesamiento por lotes con PHP

El procesamiento por lotes (batch processing) en PHP es la ejecución de tareas que implican una gran cantidad de datos u[...]

Multiplicación de matrices en Kotlin

En este post implementaremos el código necesario para multiplicar matrices con el lenguaje Kotlin, pero para realizar es[...]

Formulario de autenticación circular

En este tutorial crearemos un formulario de logueo de forma circular usando el lenguaje java y el IDE de Netbeans. Neces[...]

Crear Miniaturas Thumbnails de Videos (Código Fuente)

VLC Media Player es un reproductor multimedia de código abierto muy popular desarrollado por el proyecto VideoLAN. VLCJ [...]

Gestión de productos – El modelo (Parte 4)

En la estructura del proyecto, nuestro modelo mvc esta compuesto por tres paquetes, la vista, el modelo y controlador. L[...]