Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
Metodo Montecarlo
Enviado por NoDo el día 24 de abril de 2006
Hola buenas!
Bien, pues aquí estoy desesperao con este método. Quisiera que alguien me echara una mano.
Que es lo que realmente hace este método?vamos, una explicación clara.
Aquí implementé el método de montecarlo en dev-c++ para aproximar una integral desde a hasta b, espero y te pueda servir, lo hice para la integral desde 0 hasta 1 de la función 1/(1+x^3)
//Monte_carlo.cpp
//Autor: Rolando Garcia Peña
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
main()
{
srand(time(NULL));
double x,fx,suma,integral,a,b,t;
long i,n;
int option;
printf("\n METODO DE MONTE CARLO ");
printf("\n");
printf("\n Limite inferior a= ");scanf("%lf",&a);
printf("\n");
printf("\n Limite superior b= ");scanf("%lf",&b);
if(a==b||b<a)
{
printf("\n ERROR, introduzca correctamente sus limites ");
}
else
{
printf("\n CUANTOS NUMEROS ALEATORIOS= ");scanf("%ld",&n);
if(n<0||n==0)
{
printf("\n de un numero positivo y diferente de cero ");
}
else
{
for(i=1;i<=n;i++)
{
x=((float)rand()/RAND_MAX);
t=a+(b-a)*x;
fx=1/(1+(t*t*t));
//printf("\n x=%lf \t fx=%lf",x,fx);
suma+=fx;
}
integral=(b-a)*(suma/n);
printf("\n");
printf("\n la integral aprox. es: %1.15lf",integral);
}
}
getche();
}