Código PHP:
<?php
/* Calcular logaritmo en base n por método de biseccion
* Matería: Matemáticas computacionales
* Alumno: Geardo Yamil Díaz Aguirre
* Carrera: Ing. en Software
* Fecha : Febrero 7, 2011
*/
function log_b($x,$b){
// Obtener exponente máximo y minimo
for ($i=0; $i<=999; $i++)
if ( pow($b,$i)>$x ){
$max = $i;
break;
}
$min = $max-1;
// Ciclo de bisección tiene un rango de precisión de 999 iteraciones
for ($i=0; $i<=999; $i++){
$e = ($max + $min) / 2; // Obtiene la mitad de la bisección
$o = pow($b,$e); // Eleva la base a la mitad obtenida previamente
if ($o<$x)
$min = $e;
else
$max = $e;
// Logaritmo entre estos rangos de aproximación
if ( ($o>($x-(0.0000000000001))) && ($o<($x+(0.0000000000001))) ){
return $e;
break;
}
}
}
// Configuración general
$x = 60; // Numero logaritmo
$b = 10; // Base logaritmo
echo "El logaritmo de <b>".$x."</b> en base <b>".$b."</b> es: <b>".log_b($x,$b)."</b>";
?>