78 votos

¿Qué algoritmo utilizan los ordenadores para calcular logaritmos?

Me gustaría saber cómo se calculan los logaritmos en los ordenadores. La biblioteca C de GNU, por ejemplo, utiliza una llamada a la función fyl2x() instrucción de ensamblador, lo que significa que los logaritmos se calculan directamente desde el hardware.

Así que la pregunta es: ¿qué algoritmo utilizan los ordenadores para calcular logaritmos?

39voto

Alex Bolotov Puntos 249

Realmente depende de la CPU.

Para intel IA64, aparentemente utilizan la serie Taylor combinada con una tabla.

Puede encontrar más información aquí: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.24.5177

y aquí: http://www.computer.org/csdl/proceedings/arith/1999/0116/00/01160004.pdf

24voto

Anthony Shaw Puntos 858

Todos los métodos que he visto reducen primero dividiendo por la potencia de $2$ en el exponente y sumando ese exponente por $\ln(2)$ al resultado. A partir de ahí, los dos métodos más comunes que he visto son las series de Taylor para $\ln(1+x)$ y una variante del Algoritmo CORDIC .

J. M. también saca a relucir Aproximaciones de Padé que he visto utilizar en algunas implementaciones de calculadoras.

15voto

lhf Puntos 83572

Leer el docs y la fuente del biblioteca de cefas por ejemplo. Prueba también estos libros:

  • J. F. Hart y otros, Aproximaciones informáticas Wiley, 1968.
  • W. J. Cody, Jr. y W. Waite. Manual de software para las funciones elementales . Prentice Hall, 1980.
  • J.-M. Muller, Funciones elementales, algoritmos y aplicación , SIAM, 2006.

Ver también https://stackoverflow.com/questions/2169641/where-to-find-algorithms-for-standard-math-functions .

0voto

florin Puntos 21

Una fórmula para calcular el logaritmo de $$\frac{(-6.23032921698349x^{5/512}+27.50588264989884x^{3/512}+88.3015617077568x^{1/256}-109.5771151406722)}{(x^{1/512}+0.02523106318562039)}.$$

El error de la presente formulă es de aproximadamente $2.7e^{-6}$ (para x menor que 10). Para $x<10000$ El error es de aproximadamente 0,0000967.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X