Witam, mam nastepujacy problem z obliczaniem calki podwojnej metoda monte carlo, oto kod:
Oto kod programu:
#include
#include
using namespace std;
double f(double x, double y)
{
return 1/((y+x+1)*(y+x+1));
}
int main()
{
int N = 5000000;
int i;
double s,xp,xk,dx,dy,yp,yk;
cout << "Podaj poczatek przedzialu x: " << endl;
cin >> xp;
cout << "Podaj koniec przedzialu x: " << endl;
cin >> xk;
cout << "Podaj poczatek przedzialu y: " << endl;
cin >> yp;
cout << "Podaj koniec przedzialu y: " << endl;
cin >> yk;
srand((unsigned)time(NULL));
dx = (xk-xp);
dy = (yk-yp);
for (int j = 0; j<200; j++){
s = 0;
for (i=1;i<=N;i++) {
s += f(xp+((double)rand()/(double)(RAND_MAX)*dx),yp+((double)rand()/(double)(RAND_MAX)*dy));
}
s = (dx*dy / N) *s;
cout << "Wartosc calki wynosi : " << s << endl;
}
system("pause");
}
a oto jaki pojawia sie komunikat:
a także pojawia sie taki komunikat: