Foros del Web » Programando para Internet » Python »

Ln y raices

Estas en el tema de Ln y raices en el foro de Python en Foros del Web. Saludos: Al grano, como puedo aplicar un logaritmo natural, y una raiz cubica? Para el logaritmo natural lei que debia ser asi: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 11/09/2011, 11:10
 
Fecha de Ingreso: noviembre-2010
Mensajes: 53
Antigüedad: 14 años
Puntos: 2
Ln y raices

Saludos:

Al grano, como puedo aplicar un logaritmo natural, y una raiz cubica?
Para el logaritmo natural lei que debia ser asi:

Código Python:
Ver original
  1. math.log(x[, base])


y la base cambiarla por e, pero no me funciona.

Y lo de la raiz cubica, lo hize elevando a 0.333333333333333 pero me parece bastante poco limpio xD
Código Python:
Ver original
  1. a = raw_input ()
  2. b = 0.3333333333333
  3. c = a**b


Alguna idea?

Gracias ;)
__________________
"Porque nada se...
quiero saberlo todo"
  #2 (permalink)  
Antiguo 11/09/2011, 11:28
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Ln y raices

De hecho si, hay muchas posibles ideas que se vienen a la mente.

Para el logaritmo natural usaría
Código Python:
Ver original
  1. import math
  2. print math.log(10) #Esto es con base e o mejor conocido como logaritmo narutal
  3. math.log(10, 10) #Esto tiene base 10

Para lo de la raíz cubica puedes usar un motón de métodos.
Por ejemplo el que tu usaste. Creo que esta es la forma mas precisa de hacerlo en Python.
Código Python:
Ver original
  1. print 8 ** (1.0 / 3.0)

Incluso puedes usar logaritmos para sacar la raíz cubica.
Código Python:
Ver original
  1. import math
  2. x = 8.0
  3. print math.e ** (math.log(x) / 3.0)

Pero este método parece perder precisión.
  #3 (permalink)  
Antiguo 11/09/2011, 12:09
 
Fecha de Ingreso: noviembre-2010
Mensajes: 53
Antigüedad: 14 años
Puntos: 2
Respuesta: Ln y raices

Ahora si me funciono el de log natural, pense que habia que mantener los corchetes "[]" dentro del parentesis, pero ya vi que no.

Y sobre la raiz, yo lo habia probado de la primera forma:
Código Python:
Ver original
  1. print 8**(1/3)
  2. print 8**(1.0/3.0)
Cual es la diferencia que hace que la primera no funcione?


Gracias! ;)
__________________
"Porque nada se...
quiero saberlo todo"
  #4 (permalink)  
Antiguo 11/09/2011, 12:18
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Ln y raices

Es una regla simple.

División entre 2 enteros regresa un entero.
Si alguna de las 2 partes es un flotante regresa un flotante.

Ejemplo:
Código Python:
Ver original
  1. print 1 / 3
  2. print 1.0 / 3
  3. print 1 / 3.0
  4. print 1.0 / 3.0
  #5 (permalink)  
Antiguo 11/09/2011, 12:36
 
Fecha de Ingreso: noviembre-2010
Mensajes: 53
Antigüedad: 14 años
Puntos: 2
Respuesta: Ln y raices

Con razon siempre me devolvia el valor de 1 jaja

Muchas gracias razpeitia ;)
__________________
"Porque nada se...
quiero saberlo todo"
  #6 (permalink)  
Antiguo 12/09/2011, 08:38
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ln y raices

Shephiroth: cuando se denota algo entre corchetes en la descripción, quiere decir que ese algo es opcional. En este caso se indica que el segundo parámetro de la función log es opcional. Los corchetes nunca se incluyen.

Para eliminar la ambigüedad en la división, se puede importar "division" del módulo __future__. Esto hace que / se comporte como en Python 3 (siempre devuelve un flotante) y // se use para división entera:
Código Python:
Ver original
  1. >>> print 1/3
  2. 0
  3. >>> from __future__ import division
  4. >>> print 1/3
  5. 0.333333333333
  6. >>> print 1//3
  7. 0

Personalmente me parece más limpio, ya que así no caigo en errores inesperados por usar / con enteros.


Saludos.

Última edición por AlvaroG; 12/09/2011 a las 08:44
  #7 (permalink)  
Antiguo 12/09/2011, 18:10
 
Fecha de Ingreso: noviembre-2010
Mensajes: 53
Antigüedad: 14 años
Puntos: 2
Respuesta: Ln y raices

Muchas gracias AlvaroG, como dices, es mucho más limpio aplicando ese procedimiento.


Salu2!
__________________
"Porque nada se...
quiero saberlo todo"

Etiquetas: raices
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:52.