Kilka słów o metodzie Monte Carlo

Podobne dokumenty
Ilustracja metody Monte Carlo do obliczania pola obszaru D zawartego w kwadracie [a, b] [a, b].

Ilustracja metody Monte Carlo obliczania pola obszaru D zawartego w kwadracie [a,b]x[a,b]

Ilustracja metody MONTE CARLO. obliczania całek podwójnych

wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy

Czym jest całka? Całkowanie numeryczne

Prawdopodobieństwo geometryczne

Sieci Mobilne i Bezprzewodowe laboratorium 2 Modelowanie zdarzeń dyskretnych

Przez F(C) oznaczamy figurę narysowaną w kartezjańskim układzie współrzędnych, która ograniczona jest przez:

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Całkowanie numeryczne

Nie do końca zaawansowane elementy programowania w pakiecie R. Tomasz Suchocki

Wstęp do programowania

Rachunek prawdopodobieństwa projekt Ilustracja metody Monte Carlo obliczania całek oznaczonych

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne

Programowanie - wykład 4

Metoda Monte Carlo i jej zastosowania

Metoda Monte Carlo. Jerzy Mycielski. grudzien Jerzy Mycielski () Metoda Monte Carlo grudzien / 10

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Algorytmy zrandomizowane

Metody numeryczne w przykładach

Programowanie strukturalne i obiektowe. Funkcje

ALGORYTMY I STRUKTURY DANYCH

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Całkowanie metodą Monte Carlo

Liczby pseudolosowe. #include <stdio.h> #include <stdlib.h> int main() { printf("%d\n", RAND_MAX); return 0; }

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Prawdopodobieństwo i statystyka

Modelowanie komputerowe

Próbny egzamin maturalny z matematyki Poziom rozszerzony

(WWSI) Podstawy programowania

MODELOWANIE RZECZYWISTOŚCI

Próbny egzamin maturalny z matematyki Poziom podstawowy

Prawdopodobieństwo i statystyka

Wprowadzenie do metod numerycznych Wykład 13 Metody statystyczne

Matlab. modelowanie prostych eksperymentów losowych. Wykorzystanie funkcji rand - generatora liczb losowych, w który wyposaŝony jest MATLAB.

Prawdopodobieństwo geometryczne

Modelowanie rynków finansowych z wykorzystaniem pakietu R

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI

ANALIZA MATEMATYCZNA

UZUPEŁNIA ZDAJĄCY miejsce na naklejkę

3 MODELE PROCESÓW STOCHASTYCZNYCH 3

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI

PRZYKŁADOWY ARKUSZ EGZAMINACYJNY Z MATEMATYKI

EGZAMIN MATURALNY Z MATEMATYKI

WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCHY KOMPETENCJI EFEKTY KSZTAŁCENIA

PRÓBNY EGZAMIN MATURALNY

Kujawsko-Pomorskie Centrum Edukacji Nauczycieli w Bydgoszczy PLACÓWKA AKREDYTOWANA

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

1. Znajdowanie miejsca zerowego funkcji metodą bisekcji.

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Próbny egzamin maturalny z matematyki Poziom rozszerzony

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

MATLAB Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący

Laboratorium z informatyki sem.iii/ćw. 4 Wydział Transportu PW /19

Przykładowe zadania z matematyki na poziomie podstawowym. Zadanie 1. (0 1) Liczba A. 3. Zadanie 2. (0 1) Liczba log 24 jest równa

PRÓBNY EGZAMIN MATURALNY

Algorytmy, reprezentacja algorytmów.

MATEMATYKA POZIOM PODSTAWOWY PRZYKŁADOWY ZESTAW ZADAŃ NR 2. Czas pracy 120 minut

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI

POLITECHNIKA WROCŁAWSKA STUDIA DOKTORANCKIE JEDNOSTKA ZGŁASZAJĄCA/REALIZUJĄCA KURS: WYDZIAŁ BUDOWNICTWA LĄDOWEGO I WODNEGO / STUDIUM DOKTORANCKIE

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19

Próbny egzamin maturalny z matematyki Poziom podstawowy. Kujawsko-Pomorskie Centrum Edukacji Nauczycieli w Bydgoszczy PLACÓWKA AKREDYTOWANA

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Korzystanie z podstawowych rozkładów prawdopodobieństwa (tablice i arkusze kalkulacyjne)

Całkowanie numeryczne

EGZAMIN MATURALNY Z MATEMATYKI POZIOM PODSTAWOWY 2 CZERWCA Godzina rozpoczęcia: 9:00. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

PRÓBNY EGZAMIN MATURALNY

PRÓBNY EGZAMIN MATURALNY

MAJ Czas pracy: 170 minut. do uzyskania: Miejsce na naklejkę z kodem PESEL KOD. punktów. pióra z czarnym tuszem. liczby. cyrkla.

EGZAMIN MATURALNY Z MATEMATYKI

MAJ Czas pracy: 170 minut. do uzyskania: Miejsce na naklejkę z kodem PESEL KOD. punktów. pióra z czarnym tuszem. liczby.

3. Instrukcje warunkowe

Matura 2011 maj. Zadanie 1. (1 pkt) Wskaż nierówność, którą spełnia liczba π A. x + 1 > 5 B. x 1 < 2 C. x D. x 1 3 3

II. RÓŻNICZKOWANIE I CAŁKOWANIE NUMERYCZNE Janusz Adamowski

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Kujawsko-Pomorskie Centrum Edukacji Nauczycieli w Bydgoszczy PLACÓWKA AKREDYTOWANA

RACHUNEK PRAWDOPODOBIE STWA

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

EGZAMIN MATURALNY Z MATEMATYKI MAJ 2011 POZIOM PODSTAWOWY. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50 WPISUJE ZDAJĄCY

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

EGZAMIN MATURALNY Z MATEMATYKI POZIOM ROZSZERZONY 9 MAJA Godzina rozpoczęcia: 9:00. Czas pracy: 180 minut. Liczba punktów do uzyskania: 50

PRÓBNY EGZAMIN MATURALNY

Wstęp do programowania

Podstawy OpenCL część 2

int f(); //f - funkcja zwracająca wartość typu int int (*f)(); //f - wskaźnik do funkcji zwracającej wartość typu int

Całkowanie metodami Monte Carlo

Generacja liczb pseudolosowych

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów

Zadania ze statystyki, cz.6

Metody numeryczne. Wykład nr 12. Dr Piotr Fronczak

EGZAMIN MATURALNY Z MATEMATYKI POZIOM PODSTAWOWY 25 SIERPNIA Godzina rozpoczęcia: 9:00. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50

Skrypt 23. Geometria analityczna. Opracowanie L7

PRÓBNY EGZAMIN MATURALNY Z NOWĄ ERĄ

Programowanie obiektowe - zadania

Transkrypt:

Rachunek Prawdopodobieństwa Grupa wykładowa: środa g. 15.15 Prezentuje: Grupa w składzie: 1. Wojciech Nawracała 2. Paweł Gancarz 3. Michał Frysztacki 4. Paweł Trajdos 5. Jakub Bubin Ilustracja metody 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() int MAX=1000; return ((double)(rand()%max))/max; Generator liczb pseudoloswych. 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<n;i++) xk=a+(b-a)*gen(); yk=c+(d-c)*gen(); sum+=ptr(xk,yk); w=n/76; j++; if(j==abs(w)) printf (" "); j=0; return ((b-a)*(d-c)/n)*sum; Kod liczący pole całki sprawdza, czy wylosowana liczba mieści się w polu określonym przez funkcję podcałkową.

Funkcja pierwsza Kod funkcji: double fun1(double x, double y) if(y>=0&&y<=sqrt(1-(x*x))) return x; else return 0; Kod funkcji I wykres funkcji. Wykres prezentujący zbieżność wyniku analitycznego oraz wyników numerycznych W zależności od liczby prób.

Funkcja druga Kod funkcji: double fun2(double x, double y) if(y<=(1/x)) return exp(x*y); else return 0; Kod funkcji I wykres funkcji. Wykres prezentujący zbieżność wyniku analitycznego oraz wyników numerycznych w zależności od liczby prób.

Funkcja trzecia Kod funkcji: doubl e f un3(double x, double y) if(y>=(x/2) && y<=2*x) return 1/((1+x+y)*(1+x+y)); else return 0; Kod funkcji I wykres funkcji. Wykres prezentujący zbieżność wyniku analitycznego oraz wyników numerycznych w zależności od liczby prób.

Funkcja czwarta Kod funkcji: double fun4(double x, double y) if (y>=(x*x)) return ((exp(exp(sin(exp(x*y)))))); else return 0; Kod funkcji. 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 liczb prób. int N=1000000; // ilo ść 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.