Monte Carlo calka podwojna prezentacja 3


Rachunek Prawdopodobieństwa
Grupa w składzie:
Grupa wykładowa: środa g. 15.15
1. Wojciech Nawracała
2. Paweł Gancarz
3. Michał Frysztacki
4. Paweł Trajdos
5. Jakub Bubin
Prezentuje:
Ilustracja metody
Monte Carlo
Monte Carlo
obliczania całek podwójnych
Spis treści:
Treść zadania
Kilka słów o metodzie Monte Carlo
Algorytm obliczania całek podwójnych metodą
Monte Carlo
Przykłady rozwiązań, tabele zbiorcze
Treść zadania:
Kilka słów o metodzie Monte Carlo
Metoda opracowana została przez polskiego matematyka, Stanisława Ulama,
nazwa wzięła się ze skojarzenia jej z osobą wujka-hazardzisty tegoż
matematyka. Metoda ta wykorzystywana jest nie tylko do obliczania całek, ale
ogólnie rzecz biorąc, do modelowania procesów matematycznych i fizycznych
zbyt złożonych do obliczeń analitycznych.
Na czym polega metoda MC obliczania całek podwójnych?
1. Na obszarze całkowania opisywany jest prostokąt, i za pomocą generatora
liczb pseudolosowych generuje się zadaną wcześniej jako ilość prób - liczbę
punktów tego prostokąta.
2. W każdej próbie sprawdzane jest, czy współrzędne
wylosowanego punktu zawierają się w polu obszaru całkowania czy też nie.
3. Wynik to stosunek sumy wartości całkowanej funkcji w punktach trafionych
w obszar całkowania do ilości wszystkich prób, pomnożony przez pole
prostokÄ…ta
Algorytm Monte Carlo jako kod języka c++
inline double gen()
{
Generator liczb
int MAX=1000;
pseudoloswych.
return ((double)(rand()%MAX))/MAX;
}
double calkaMonteCarlo(double a, double b,double c,double d,
double(*ptr)(double,double),unsigned int n)
{
double w; int j=0; double sum=0,xk,yk,temp;
if(a>b){temp=a;a=b;b=temp;}
for(unsigned int i=0;i{
xk=a+(b-a)*gen();
Kod ªliczÄ…cyº pole caÅ‚ki
yk=c+(d-c)*gen();
- sprawdza, czy
sum+=ptr(xk,yk);
wylosowana liczba
w=n/76; j++;
mieści się w polu
if(j==abs(w))
{
określonym przez funkcję
printf ("|"); j=0;
podcałkową.
}
}
return ((b-a)*(d-c)/n)*sum;}
Funkcja pierwsza
Kod funkcji:
double fun1(double x, double y) Kod funkcji
{
I
if(y>=0&&y<=sqrt(1-(x*x)))
wykres funkcji.
return x; else return 0;
}
Wykres prezentujÄ…cy
zbieżność wyniku
analitycznego oraz
wyników numerycznych
W zależności od
liczby prób.
Funkcja druga
Kod funkcji:
Kod funkcji
double fun2(double x, double y)
I
{
wykres funkcji.
if(y<=(1/x)) return exp(x*y);
else return 0;
}
Wykres prezentujÄ…cy
zbieżność wyniku
analitycznego oraz
wyników numerycznych
w zależności od
liczby prób .
Funkcja trzecia
Kod funkcji:
Kod funkcji
double fun3(double x, double y)
I
{
wykres funkcji.
if(y>=(x/2) && y<=2*x)
return 1/((1+x+y)*(1+x+y));
else return 0;
}
Wykres prezentujÄ…cy
zbieżność wyniku
analitycznego oraz
wyników numerycznych
w zależności od
liczby prób.
Funkcja czwarta
Kod funkcji:
Kod funkcji.
double fun4(double x, double y)
{
if (y>=(x*x))
return
((exp(exp(sin(exp(x*y))))));
else return 0;
}
Wykres prezentujÄ…cy
zbieżność wyniku
analitycznego oraz
wyników numerycznych
w zależności od
liczby prób.
Kod programu obliczającego całki
int main()
{
srand((unsigned)time(NULL));
Ilość losowanych
int N=1000000; // ilość prób
liczb - prób.
double t; t=exp(1.0);
a,b,c,d
printf("\n%f\n",calkaMonteCarlo(0,1,0,1,fun1,N));
printf("\n%f\n",calkaMonteCarlo(1,t,0,1,fun2,N));
printf("\n%f\n",calkaMonteCarlo(0,2,0,4,fun3,N));
printf("\n%f\n",calkaMonteCarlo(0,2,0,3,fun4,N));
system("pause");
}
Obliczanie i
wyświetlanie
Krótki opis zasady działania programu:
wyników całkowania
poszczególnych funkcji.
1. Na obszarze całkowania opisywany jest prostokąt, oraz
Ustalamy liczbę prób ą liczb pseudolosowych generowanych przez generator.
2. W każdej próbie sprawdzane jest, czy współrzędne wylosowanej liczby zawierają się
w przedziale całkowania.
3. Wynik, to stosunek sumy prób trafionych w obszar całkowania do ilości wszystkich
prób wymnożony przez pole prostokąta.
Podsumowanie wyników obliczeń
Jak widać wyniki obliczenia
numeryczne zbiegajÄ… do
większej dokładności przy
większej liczbie prób.
Dla każdej funkcji należy więc
dobrać optymalną liczbę liczb.
Pamiętać należy jednak o tym,
że metoda Monte Carlo zwana
też inżynierską służy do
szybkiego otrzymania wyników.
Dokładnosć wyniku schodzi na
drugi plan.


Wyszukiwarka

Podobne podstrony:
Monte?rlo?lka podwojna prezentacja 1
instrukcja prezentacja2
Prezentacja MG 05 2012
Prezentacja ekonomia instytucjonalna na Moodle
Sekrety skutecznych prezentacji multimedialnych
413 (B2007) Kapitał własny wycena i prezentacja w bilansie cz II
18 Prezentacja
prezentacja z budo
Antygeny i Imunogennosc PREZENTACJA
Etapy tworzenia prezentacji
Geneza polityki spójności Unii Europejskiej prezentacja
Prezentacja VI dzia
Prezent urodzinowy dla Hitlera

więcej podobnych podstron