sábado, 9 de marzo de 2019

Como hacer calculos matematico en bash de linux

De vez en cuando necesito hacer algún calculo matemático durante la ejecución de un bash en linux, luego de probar varios métodos me decidí por utilizar el comando bc, que es la implementación de "Un lenguaje de calculo de precisión arbitraria."

la forma mas simple de usarlo es pasando la operación a calcula vi la entrada estándar, por ejemplo para calcula pi:

echo "scale=10; 4*a(1)" | bc -l
3.1415926532

usando la función arco-tangente se calcula pi con 10 decimales, o calcular una simple multiplicación y división

echo "scale=10; 100*12.34/23" | bc -l
53.6521739130

o generar un archivo con los pasos a calcular

              scale = 20

              /* Uses the fact that e^x = (e^(x/2))^2
                 When x is small enough, we use the series:
                   e^x = 1 + x + x^2/2! + x^3/3! + ...
              */

              define e(x) {
                auto  a, d, e, f, i, m, v, z

                /* Check the sign of x. */
                if (x<0) {
                  m = 1
                  x = -x
                }

                /* Precondition x. */
                z = scale;
                scale = 4 + z + .44*x;
                while (x > 1) {
                  f += 1;
                  x /= 2;
                }

                /* Initialize the variables. */
                v = 1+x
                a = x
                d = 1

                for (i=2; 1; i++) {
                  e = (a *= x) / (d *= i)
                  if (e == 0) {
                    if (f>0) while (f--)  v = v*v;
                    scale = z
                    if (m) return (1/v);
                    return (v/1);
                  }
                  v += e
                }
              }

bc permite expresiones, loop como for, while o funciones conficionales como if
NOTA: scale indica la precisión del calculo

Espero que les sea util

No hay comentarios.:

Publicar un comentario

Instalación rapida de kvm manager de oracle

 Para instalar kvm manager de oracle se deben seguir los siguientes pasos: Instalar Oracle Linux 7 configurar el fqdn en el archivo /etc/hos...