1votos

Ecuación de primer grado en JavaScript

por josejuan hace 6 años

La forma "obvia" es construir el árbol de operaciones y reducirlas (poniendo las X a la izquierda del árbol y las constantes a la derecha, por ejemplo). Sin embargo, puede hacerse directamente, pues se indica que la relación es lineal.

Resolución de ecuación de primer grado

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* 
    La ecuación es lineal, por tanto, equivale a la expresión: 
 
        a x + b = 0 
 
    Así, si tenemos 
 
        y(x) = a x + b 
 
    Usando 
 
        y1 = y(x1 = 0) 
        y2 = y(x2 = 1) 
 
    Tenemos 
 
        x = y1 / (y1 - y2) 
 
    Esta implementación en javascript obtiene el resultado como un float, 
    pero basta utilizar cualquier librería que opere sobre racionales. 
 
    Es decir, la solución es estricta al enunciado, lo que falla en todo caso 
    es la implementación en javascript, que no tiene el tipo "Rational". 
*/ 
function Solve_x(eq) { 
    var e = function(q, v) { 
        [/([0-9x\)])([x\(])/i, /([x\)])([0-9x\(])/i]. 
        forEach(function(r) { 
            while(r.exec(q)) 
                q = q.replace(r, "$1*$2"); 
        }); 
        return eval("(" + q.replace(/x/gi, v).replace(/\=/, ")-(") + ")"); 
    }; 
    var y = e(eq, 0); 
    return y / (y - e(eq, 1)); 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.