matematykaszkolna.pl
. asdf: rysunekWitam, metoda Monte Carlo. No i mam tak.. Określam najmniejszą wartość: ymin = 1 ymax = 2 xmin = 1 xmax} = 2 Losuje sobie, np. N= 1000 punktów (xi,yi) gdze xi ∊ (1,2), yi ∊ (1,2) robię zmienną k=0; i sprawdzam czy punkt ten leży pod osią, czyli, czy: yi < f(xi) jeżeli tak to k=k+1; Końcowy wynik to V = (xmax − xmin)*(ymax − ymin) * k/N, czyli inaczej: S = niebieska kreska * zielona kreska V = S * k/N; i wychodzi mi w całce: ∫01 x dx ≈ 0.51 .... a powinno wyjść 3/2. Za ymin powinienem dać wartość 0? czy jak?
17 kwi 23:53
asdf: ?
18 kwi 00:16
asdf: ?
18 kwi 00:44
xx:
 1 
01 x dx =

x2 |01 = 1/2
 2 
18 kwi 08:28
aniabb: żeby w całce wyszło 3/2 to trzeba całkować od 1 do 2 bo taki masz zakres x jeśli się ograniczasz do y>1 to od całki musisz odjąć prostokąt Δx•y tu =1 jeśli na Ci wyjść w losowaniu 3/2 to losować musisz od y=0
18 kwi 08:58
Trivial: Trzeba zrobić tak, żeby funkcja przyjmowała wartości y ∊ [0,c], c>0 Chcemy całkować f(x) w przedziale x ∊ [a,b]. Określamy ymin, ymax, tak jak to zrobiłeś. Przesuwamy funkcję tak, aby przyjmowała wartości y∊[0,c], (c = ymax−ymin) czyli: f*(x) = f(x) − ymin → f(x) = f*(x) + ymin Całkujemy i mamy: ∫ab f(x)dx = ∫ab (f*(x) + ymin)dx = ∫ab f*(x)dx + ymin(b−a) = p*S + ymin(b−a) Gdzie S oznacza pole prostokąta, w którym całkujemy S = (ymax−ymin)(b−a) W Twoim przykładzie: S = (2−1)*(2−1) = 1 p = 0.5 ∫12 xdx = p*S + ymin(b−a) = 0.5*1 + 1*(2−1) = 1.5
18 kwi 11:10
asdf: rysunekdzieki za odpowiedź, już na to wpadlem na zajęciach i jakoś wyszło emotka żeby zliczać k (licznik) to chyba jeszcze trzeba dać taki warunek: ymin*ymax < 0 − wtedy liczy się normalnie pole V= (ymax −ymin)*(xmax − xmin) * k/N k − licznik N − ilość tych prób
18 kwi 14:25
asdf: rysunekdla funkcji, gdzie ymin ≠ 0 i ymin ma taki sam znak to chyba trzeba użyc takiego czegos: jeżeli ymin * ymax > 0 (te same znaki) oraz ymin ≠ 0 to licz pole w taki sposob: V = (ymax − ymin)*(xmax − xmin) * k/ N + |ymin|*(xmax − xmin) dobrze?
18 kwi 14:30
aniabb: na pole pod krzywą ..pasuje
18 kwi 14:35
asdf: nad krzywą (dla wartosci ujemnych tylko inaczej zliczać + warunek dodatkowy na te przypadki emotka
18 kwi 14:39
aniabb: albo przesunąć wykres czyli jak ymin <0 to dodawać go do wyników Losuje sobie, np. N= 1000 punktów (xi,yi) gdze xi ∊ (1,2), yi ∊ (0,2) robię zmienną k=0; i sprawdzam czy punkt ten leży pod osią, czyli, czy: yi < f(xi)+ymin jeżeli tak to k=k+1;
18 kwi 14:43
aniabb: wtedy zawsze od ymin =0 i nie musisz dodawać pola albo dzielić na przedziały
18 kwi 14:44
aniabb: jadę ..będę jutro rano ..albo może zajrzę wieczorkiem
18 kwi 14:44
Bogdan: Jako ciekawostkę podam, że metodę Monte Carlo opracował jeden z najwybitniejszych matematyków XX wieku − Stanisław Ulam. Jest polskim uczonym pracującym przez większą część życia w USA. Jest m.in. współautorem pierwszej bomby atomowej. Przez wiele lat jego osoba i osiągnięcia nie były w Polsce szeroko przedstawiane. http://pl.wikipedia.org/wiki/Stanis%C5%82aw_Ulam http://www.matematycy.interklasa.pl/biografie/matematyk.php?str=ulam
18 kwi 14:47
asdf: dziękuje bardzo emotka Przy Was idzie się dużo nauczyć emotka
18 kwi 14:55
asdf: @aniabb, to chyba nie działa
18 kwi 15:07
Trivial: rysunekKilka przykładów: ∫ab f(x) dx = p*S + ymin*(b−a) ∫0 sin(x) dx = 0.5*(1+1)*2π − 1*2π = 2π − 2π = 0.
18 kwi 22:21
aniabb: a jakie dokładnie jest polecenie?
18 kwi 22:26
Trivial: rysunek03(x−3)dx = 0.5*32 − 3*3 = − 4.5
18 kwi 22:27
asdf: @aniabb polecenie − liczenie całki oznaczonej metodą monte carlo @trivial ale to z: p*S + ymin*(b−a) dajmy ymin = −3, ymax = 4, wtedy liczysz w tym polu co trzeba (nie unikasz sytuacji, ze pomijasz jakiś prostokąt − wiec nie trzeba dodawać ymin*(b−a) chyba..
18 kwi 23:33
aniabb: no to tak jak pisze trivial i jak napisałeś sam o 14:30 wzór będzie ∫ab f(x) dx = p*S + ymin*(b−a) jak rozciągniesz za bardzo w dół ymin to trzeba będzie go odjąć (co załatwi sam znak y) jak będzie za wysoko to dodać (j.w.)
19 kwi 09:28