4 votos

Utilizando el método de monte carlo para calcular el campo magnético de un lazo de transporte actual

He escrito un programa en el cpp que calcula el campo magnético en un punto de una carga de corriente de bucle. Utiliza el biot savart ley y la técnica de monte carlo para llevar a cabo la integral. El programa funciona como se espera para los puntos que no están demasiado cerca de los bucles, pero mirando en una parcela de los vectores se pueden ver errores extraños cerrar el bucle.

He comprobado mis resultados contra http://hyperphysics.phy-astr.gsu.edu/hbase/magnetic/curloo.html#c3 para un punto en el eje y http://www.netdenizen.com/emagnet/offaxis/iloopcalculator.htm para un punto fuera del eje. Mi programa está de acuerdo con estas fuentes para que los puntos no demasiado cerca del bucle.

Este es mi código. http://pastebin.com/4BH9qEZz

Mi pregunta principal es si hay algo inherente en la técnica de monte carlo, que sería la causa de este error?

4voto

Renaud Bompuis Puntos 10330

Si estás muy cerca del bucle, hay una pequeña gama de theta que proporciona casi todo el campo. Cuando estás al azar la elección de puntos, una fracción relativamente pequeña de los puntos que va a suceder en ese crucial de la gama. Esto va a amplificar el error de muestreo aleatorio. En otras palabras, a medida que te acercas al bucle, el más grande es el número de puntos de muestra necesario para obtener una exactitud razonable.

Que me sugieren para aumentar el número de puntos de muestra y ver si la respuesta se vuelve más precisa. Si no, entonces probablemente usted tiene una fórmula de error o error de codificación.

Si el número de puntos de muestra requerido es demasiado grande, tal vez el uniforme de muestreo aleatorio es una mala estrategia. Puede utilizar una versión modificada de la técnica de Monte Carlo, donde hay una función de ponderación, haciendo que algunas de theta que es más probable que ocurra que otros. O simplemente no usar Monte Carlo. :-)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X