[Python-es] Exactitud con números de punto flotante.
gmail
manuelcortez00 en gmail.com
Vie Ago 31 19:13:24 CEST 2012
ola lista. Sucede que para una materia donde se toca el tema de cálculo
diferencial y análisis de datos, hice una sencilla aplicación que toma
datos y saca la media, desviación estándar y algunas otras cosillas más,
pero me topo con un problema de exactitud de los resultados, que se ve
sobretodo al momento de sacar la desviación estándar.
Pongo aquí el extracto del código de la función que uso para obtenerlas,
ignoro si hay una forma más cómoda:
import math
def desviacion_standar(lists, media):
total = 0
for i in range(0,len(lists)):
value = lists[i]
value = value - media
value = value**2
total = total + value
total = total/float(len(lists))
return math.sqrt(total)
Los argumentos de la función son una lista de datos, que se obtienen de
una cadena en gtk que se parte con split, y el valor de la media, para
la cual tengo una función en otra parte del programa que sí la hace.
Pongo un ejemplo: con los datos 31, 32, 32, 33, 35, 37, 40, 43, 44 y 45;
el valor de la media es de 37.2 y Python lo saca bien, pero el valor de
la desviación estándar debe ser de 5.4, y Python me devuelve un 5.132...
Hay alguna forma de hacer que el resultado se aproxime más al exacto?
cabe decir que ese resultado, el del 5.4, lo hice con una calculadora
científica de Texas Instruments, que son de las que piden para realizar
otras operaciones matemáticas y graficar funciones, pero no sé si eso
tenga que ver en la forma en la que Python maneje los datos. Gracias y
saludos.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120831/40b16926/attachment.html>
Más información sobre la lista de distribución Python-es