jueves, 29 de noviembre de 2012

Aproximando logaritmos

Vía Literatura y Matemáticas
Uno de los aspectos que más cuesta a los estudiantes de secundaria es el de los logaritmos. El logaritmo (en base [;a;]) de un número [;b;] (que se representa por [;\log_a b;]), es el número al que hay que elevar la base [;a;] para que dé [;b;], es decir, [;\log_a b=x\iff a^x=b;].

Pero tal y como pasa con la exponenciación, la base más natural para los logaritmos es el número [;e\approx2'7172;] (del que tantas veces hemos hablado en este blog), en cuyo caso se llama logaritmo natural ó logaritmo neperiano y se denota por [;\ln;]. Sin embargo, en los institutos se suele enseñar este concepto a través del logaritmo en base 10 o logaritmo decimal, y que suele denotarse simplemente por [;\log;]. Pero dada la importancia que el binario tiene en nuestra sociedad de la información, resulta que los logaritmos en base 2 ([;\log_2;]) resultan ser también muy utilizados.

En este pequeño artículo, nos hacemos eco de una fórmula de aproximación en la que intervienen estos 3 logaritmos (quizás los más usados) y que aparece (según la fuente consultada, The Endeavour) en el libro de Donald Knuth (sí, el del [;\LaTeX;]) The Art of Computer Programming.

Sin más dilación os presento la fórmula de aproximación en la que se ven involucrados estos tres logaritmos:
[;\log_2(x)\approx \ln(x)+\log(x);]

A ver, que para calcular el logaritmo en base 2, basta calcular el neperiano y el decimal y sumarlos. Bueno, basta no. El resultado se parecerá al logaritmo binario, pero en principio, no debe coincidir.

Claro, aquí viene la pregunta de cualquier persona con un mínimo de interés: ¿Cual es el error relativo cometido?.

Pues muy sencillo. Si esa fórmula de aproximación es cierta, al dividir ambos miembros entre [;\log_2(x);] tendremos que
[;1\approx\frac{\ln(x)+\log(x)}{\log_2(x)};] 
Y podemos decir que esta fórmula ya es, de alguna manera, adimensional. Por lo que el error relativo cometido será:
[;\varepsilon_r=1-\frac{\ln(x)+\log(x)}{\log_2(x)};]

Bien, ahora sólo falta establecer cuánto vale este error. Y para ello vamos a necesitar una propiedad de los logaritmos y que me permite escribir cualquiera de ellos como cociente de logaritmos neperianos.

Sabemos que  [;\log_a b=x\iff a^x=b;]. Pero claro, también es cierto que [;a^x=e^{x\ln(a)};], y como [;a^x=b;], se deduce que [;e^{x\ln(a)}=b;], o lo que es lo mismo, [;\ln(b)=x\ln(a);] . Pero como [;x=\log_a b;], basta despejar para obtener la fórmula siguiente:
[;\log_a b=\frac{\ln(b)}{\ln(a)};]

Pues bien, aplicando esta sencilla fórmula a nuestro error relativo se tiene que:
[;\varepsilon_r=1-\frac{\ln(x)+\frac{\ln(x)}{\ln(10)}}{\ln(x)/\ln(2)}=1-\left(1+\frac{1}{\ln10}\right)\ln2\approx0'00582282;]
Lo que hace que el error relativo sea del [;0'58\%;], un error bastante pequeño.

Así, podríamos decir que [;\log_2(10)\approx1+\ln10\approx3'30259;]; mientras que el valor real (aproximado con 5 decimales) es [;\log_210=3'32193;].

En fin, una curiosidad que me ha permitido hablar de logaritmos y de algunas de sus propiedades. Espero que os haya entretenido.


Tito Eliatron Dixit

1 comentario:

  1. Interesante, no tenía idea. Hace tiempo que le quiero hincar el diente a "The Art of Programming".

    ResponderEliminar

Si no comentas, Gauss se comerá una integral.
Y, por favor, respeta a todos con tus opiniones.