[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