Pregunté en Math.SE y me recomendaron probar aquí.
Necesito dibujar a partir de una distribución de velocidad de Maxwell-Boltzmann para inicializar una simulación de dinámica molecular. Tengo el PDF , pero tengo dificultades para encontrar el CDF correcto para poder hacer sorteos aleatorios a partir de él.
El PDF que estoy usando es:
Me dicen que para encontrar el CDF del PDF realizamos:
Después de integrar Yo obtengo:
Después de llegar a este punto, no puedo continuar porque no sé cómo evaluar algo entre y .
También me preocupa que no haya hecho la integración correctamente.
Quiero implementar el CDF en C++ al final para poder dibujar a partir de él. ¿Alguien sabe si habrá algún problema al hacer esto debido al erf, o estaré bien con esta implementación de GSL ?
Gracias por tu tiempo.
@bryansis2010 en Math.SE dice que puedo evaluar en el rango a en lugar de ya que no bajamos de 0 Kelvin.
¿Haría esto entonces la CDF:
como
¿Es esto correcto?
La solución es darse cuenta de que esa función es simplemente una Gaussiana. De hecho, cada componente del vector de velocidad tiene una distribución normal con media = 0 y st-dev .
Todo lo que queda por hacer en ese punto es obtener la CDF gaussiana (bien conocida) y tomar muestras de ella, asegurándonos de conectar nuestra masa y temperatura.
GSL implementa gsl_cdf_ugaussian_P (doble x) aquí
david z