StartAlgorytmyProcedury numeryczne Całkowanie numeryczne - metoda Monte Carlo II
Baza Wiedzy
Wersja offline serwisu przeznaczona na urządzenia z systemem Android.

Darowizny
darowiznaWspomóż rozwój serwisu


Nagłówki RSS
Kanał artykuły
Kanał implementacje
Kanał komentarze
Kanał forum


Bookmarki









Sonda
Implementacji w jakim języku programowania poszukujesz?
 
Całkowanie numeryczne - metoda Monte Carlo II
Ocena użytkowników:+++++ / 3
SłabyŚwietny 
Wpisany przez Tomasz Lubiński
sobota, 10 maja 2008 11:00
Załóżmy, że chcemy obliczyć całkę z funkcji f(x) w przedziale <xp; xk>. Definicja całki oznaczonej Riemana, mówi nam, że wartość całki równa jest polu obszaru pod wykresem krzywej w zadanym przedziale całkowania. Przedstawiona tutaj metoda Monte Carlo polega na wylosowaniu n punktów znajdujących się w obrębie przedziału całkowania i na tej podstawie obliczeniu średniej wartości funkcji w tym przedziale.
Metoda Monte-Carlo
Zatem jeżeli losowane punkty oznaczymy jako: x1, x2, ... xn, to wartość średnią obliczymy następująco fsr = (f(x1) + f(x2) + ... + f(xn)) / n. A przybliżoną wartość całki mnożąc uzyskaną wartość średnią przez długość całkowanego przedziału: fsr * |xk - xp|.
Wraz ze zwiększaniem się liczby punktów pomiarowych n, rozkładają się one coraz bardziej równomiernie w obrębie wyznaczonego przedziału dając coraz dokładniejszy wynik. Z drugiej zaś strony uważać należy by przy dużych ilościach punktów pomiarowych nie przekroczyć zakresu używannych zmiennych podczas dodawania przy obliczaniu wartości średniej. Zabezpieczyć się można przed takim przypadkiem obliczając wartość średnią następująco: fsr = f(x1)/n + f(x2)/n + ... + f(xn)/n, ale z kolei mamy tutaj problem nakładania się na siebie zaokrągleń z dzielenia przez n.

Przykład:
Załóżmy, iż na wykresie powyżej zakres całkowania to: xp = 2, xk = 10
Wartości kolejnych wylosowanych punktów to: x1 = 2.4, x2 = 3.1, x3 = 6, x4 = 9, x5 = 9.5, a wartości funkcji całkowanej w tych punktach to: f(x1) = 3, f(x2) = 3.5, f(x3) = 5, f(x4) = 5.1, f(x5) = 4.4
Najpierw obliczymy wartość średnią: (3 + 3.5 + 5 + 5.1 + 4.4) / 5 = 21 / 5 = 4.2
A następnie pomnożymy tą wartość przez długość przedziału całkowania otrzymując przybliżoną wartość całki: (10 - 2) * 4.2 = 8 * 4.2 = 33.6


Autor Język programowania Komentarz Otwórz Pobierz Ocena
Tomasz Lubiński C# MS Visual Studio .net
Implementacja w C#
Implementacja w C#
++++- / 1
Tomasz Lubiński C/C++
Implementacja w C/C++
Implementacja w C/C++
++++- / 1
Tomasz Lubiński Delphi/Pascal
Implementacja w Delphi/Pascal
Implementacja w Delphi/Pascal
++++- / 1
Tomasz Lubiński Java
Implementacja w Java
Implementacja w Java
++++- / 1
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie



Poprawiony: środa, 26 maja 2010 19:04

Dodaj komentarz

Kod antysapmowy
Odśwież