Metodo Montecarlo
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.
Venga,muchas gracias.
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.
Venga,muchas gracias.
Has probado usar el www.google.es? te va a sorprender lo util que es xDDDD, saludos
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();
}
//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();
}
