elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error al calcular la varianza.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error al calcular la varianza.  (Leído 2,185 veces)
TheEFDR

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Error al calcular la varianza.
« en: 13 Noviembre 2014, 17:18 pm »

Hola buenas os .comento:
Mi funcion para calcular la varianza es asi:

double calcularDesviacion (int serie[])
   {
      double sumatorio;
      double promedio;
      double desviacion;
      int t;
      
      sumatorio=0;
      t=0;
      do
      {
         sumatorio=sumatorio+serie[t];
         t++;
      }while (t<MAXTIRADAS);
      promedio=(1.0*sumatorio)/MAXTIRADAS;
      desviacion=sqrt(sumatorio*1.0/MAXTIRADAS-pow(promedio,2));
      return desviacion;
        }
Esta metida dentro de un codigo principal pero no me da ningun error al compilar.
El problema es que no me da resultado. En mi programa aparece: "La desviacion tipica de la serie de numeros es -1.#IO"
Sabeis que es eso y por que aparece?
Muchas gracias de antemano.

P.D: Estoy empezando en este mundo asi que espero que no os metais mucho conmigo.


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Error al calcular la varianza.
« Respuesta #1 en: 13 Noviembre 2014, 17:33 pm »

1 * X = X, luego (1.0*sumatorio) = sumatorio. No hace falta complicar las ecuaciones de forma gratuita.

Si el promedio se calcula como media(x)=sum(xi)/N, la desviación se calcula como sum( (xi-media(x))?2 ). En tu caso, tu cálculo es "media(x)-media(x)^2".


En línea

TheEFDR

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Error al calcular la varianza.
« Respuesta #2 en: 13 Noviembre 2014, 17:53 pm »

Lo siento pero no entiendo lo que me dices.

Cual es la formula exacta de la varianza? Es que por mas que la busco e intento aplicarla no me sale.
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Error al calcular la varianza.
« Respuesta #3 en: 13 Noviembre 2014, 18:09 pm »

varianza (wikipedia)

N -> Número de muestras
media(x) = sum( x[ i ] ) / N
varianza2 = sum( pow(x[ i ] - media(x), 2) ) / N = sum( pow( x[ i ], 2 ) ) / N - pow( media(x), 2 )
varianza = sqrt( varianza2 )

Código
  1. double calcularDesviacion (int serie[])
  2. {
  3.  double sumatorio = 0;
  4.  double sumatorio2 = 0;
  5.  double promedio = 0;
  6.  double desviacion = 0;
  7.  int t;
  8.  
  9.  for ( t=0; t < MAXTIRADAS; t++ )
  10.  {
  11.    sumatorio += serie[ t ];
  12.    sumatorio2 += pow( serie[ t ], 2 );
  13.  }
  14.  
  15.  promedio = sumatorio / MAXTIRADAS;
  16.  double desviacion2 = sumatorio2 / MAXTIRADAS - pow( promedio, 2 );
  17.  desviacion = sqrt( desviacion2 );
  18.  return desviacion;
  19. }

EDITO: He corregido la ecuación. Espero que no tenga más fallos
« Última modificación: 13 Noviembre 2014, 18:13 pm por eferion » En línea

TheEFDR

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Error al calcular la varianza.
« Respuesta #4 en: 13 Noviembre 2014, 18:28 pm »

Muchisimas gracias de verdad!!
No he copiado tu codigo porque hay cosas que aun no hago asi o no entiendo, pero me ha servido para aclararme y ver que hacia mal.
Otra vez mas: MUCHAS GRACIAS
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Error al calcular la varianza.
« Respuesta #5 en: 13 Noviembre 2014, 18:31 pm »

de nada hombre.

suerte con tu proyecto :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error ejecución, calcular velocidad de rotación de Satelite.
Java
Noxors 3 5,169 Último mensaje 20 Octubre 2009, 06:19 am
por Leyer
Código que calcula Promedio Varianza y Desviación estándar (Python)
Scripting
XD YO 0 21,074 Último mensaje 13 Marzo 2010, 02:08 am
por XD YO
Calcular máximo de matriz, error
Programación C/C++
Puntoinfinito 7 4,553 Último mensaje 18 Julio 2013, 11:58 am
por Puntoinfinito
ayuda! programa en c++ de analisis de varianza (anova)
Programación C/C++
daniell_a 6 3,233 Último mensaje 6 Marzo 2017, 06:41 am
por engel lex
Error , calcular area de triangulo DEV C++
Programación C/C++
tguzman86 1 2,011 Último mensaje 12 Agosto 2017, 20:05 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines