uso una scripts script operaciones instalar hacer decimales como calculos calculadora aritmeticas unix bc

unix - una - ¿Cómo calculo el registro de un número usando bc?



uso de bc en scripts (7)

Poster solicitó específicamente log 10.

Tengo bc 1.06.95 en Ubuntu 12.10. "l (x)" en esta versión de BC no es base 10. Es log natural (base e). Esto se confirma aquí y BC ha trabajado de esta manera desde hace un tiempo:

http://linux.about.com/od/commands/l/blcmdl1_bc.htm

Sospecho que lo que necesita para hacer que log base 10 funcione es la extensión BC:

http://x-bc.sourceforge.net/extensions_bc.html

No estoy seguro de la forma correcta de instalar esto, y obtuve errores al tratar de publicarlo aquí.

Dominic-Luc Webb

Esta es la primera vez que uso bc. Quiero calcular el registro (base 10) de un número. Como hago esto?


Python puede ser útil para esto, ya que

log3=$(python -c ''import math; print math.log(3)'')

¡Espero que ayude!


Si inicia bc con el -l , entonces hay una función l() que calcula el registro natural de su argumento.


bc no da directamente el logaritmo de otra manera que no sea de otra manera, usando bc, podemos calcular solo ln (x). Entonces, para obtener cualquier otro logaritmo de base, es aconsejable recordar algunas identidades. El básico es -

bc -l l(____)

Aquí les doy algunos ejemplos de diferentes logaritmos de base:

log base 10 (x) = log base e (x) / log base e (10)

Espero que esto te ayude.


el logaritmo de x con respecto a la base b se puede calcular dado cualquier función de logaritmo a una base arbitraria k - ¡eso es realmente genial!

log_b(x) = log_k(x) / log_k(b)

p.ej

log_b(x) = ln(x) / ln(b)

si b = 10:

log_10(x) = ln(x) / ln(10)

y -l en bc habilita la biblioteca matemática

así que por eso esto funciona:

# bc -l l(100) / l(10) 2.00000000000000000000


Invoca bc con la opción -l (para habilitar la biblioteca matemática) como tal

$ echo ''l(100)/l(10)'' | bc -l 2.00000000000000000000

Use la función l , que es el registro natural. Tome el registro del número que le interesa y luego divida por el registro natural de 10.


totan@Home-Computer ~ $ bc -l bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty''. l(8)/l(2) 3.00000000000000000002 l(1000)/l(10) 3.00000000000000000000 l(100000)/l(100) 2.50000000000000000000 l(100000)/l(10) 5.00000000000000000001 l(81)/l(3) 4.00000000000000000001 l(64)/l(4) 3.00000000000000000000 quit() totan@Home-Computer ~ $

(complete el espacio en blanco con su número)

Encontré tutoriales en:

http://unix-simple.blogspot.com/2006/10/unix-basic-calculator.html

y

http://unix-simple.blogspot.com/2006/10/taking-roots-with-unix-basic.html