sábado, 5 de julho de 2014

Soluções para equações de 3º grau em JavaScript

Para quem tiver interesse em visualizar a dedução pode acessar este pdf: PDF
<html>
<script>
baskara = function(a, b, c)
{
        var r1 = (-b+Math.sqrt(b*b-4*a*c))/(2*a);
        var r2 = (-b-Math.sqrt(b*b-4*a*c))/(2*a);
        var array = [r1, r2];
        return  array;
}
raiz_eq_grau_3 = function(a, b, c, d)
{
        if(a==0)  return baskara(b, c, d)[0]
        var m = - b/3*a;
        var menosk1k2 = - Math.pow((b*b)/(9*a*a) - c/(3*a), 3); 
        var k1Maisk2 = -2*(b*b*b/27*a*a*a) + (b*c/3*a*a) - (d/a);
        var raizes = baskara(-1, k1Maisk2, menosk1k2 );
        var r_k1 = (raizes[0]>0? Math.pow(raizes[0], 1/3) : -Math.pow(-raizes[0], 1/3) );
        var r_k2 = (raizes[1]>0? Math.pow(raizes[1], 1/3) : -Math.pow(-raizes[1], 1/3) );
        return ( r_k1 + r_k2 + m);
}
calcular = function()
{
        var a = parseFloat(document.getElementById('a').value);
        var b = parseFloat(document.getElementById('b').value);
        var c = parseFloat(document.getElementById('c').value);
        var d = parseFloat(document.getElementById('d').value);
        document.getElementById('resultado').value = raiz_eq_grau_3(a, b, c, d) ;
}
</script>
<body> 
  Coeficiente a: <input type="text" id="a" value="1"/><br>
  Coeficiente b: <input type="text" id="b" value="0"/><br>
  Coeficiente c: <input type="text" id="c" value="-1"/><br>
  Coeficiente d: <input type="text" id="d" value="-1"/><br> 
  <button onclick="calcular();">Click me</button><br>
  resultado: <input type="text" id="resultado" /><br> 
</body>
</html>

Nenhum comentário: