Aalto-yliopisto, Matematiikan ja Systeemianalyysin laitos

-e

matlabteht/mlTodari, Todennäköisyys, satunnaisuus, tilasto

1. mlT004.tex Laskemme yksikkökolmion T (virittävät pisteet (0, 0), (1, 0), (0, 1)) pinta-alan tasaisesti jakautuneilla satunnaisluvuilla Monte-Carlo menetelmää mukaillen:

1. Generoi N tasaisesti jakautunutta satunnaislukuparia (x_{1}, x_{2}) yksikköneliöön.

2. Selvitä, kuinka moni valitsemistasi satunnaispisteistä osuu kolmion T sisälle. Havainnollista tätä piirtämällä T:n sisälle osuvat pisteet ja T:n ulkopuoliset pisteet samaan kuvaan eri väreillä.

3. Approksimoi T:n alaa laskemalla kolmion sisälle osuneiden pisteiden osuus kaikista valituista. Kokeile menetelmän tarkkuutta eri arvoilla N.

Vihje: Funktion rand generoi tasaisesti jakautuneita satunnaislukuja. On useita keinoja tutkia, osuuko piste kolmion sisään.

1. Voit kirjoittaa tarkistuksen silmukkaan, ja tehdä päätöksen kontrollirakenteilla. Vähiten suositeltava tapa (mutta opettaa kuitenkin ohjausrakenteita, selkeästi Matlabin “väärinkäyttöä”).

2. Muodosta saunnaisvektorille ehto kolmioon kuulumiselle ja käytä loogista indeksointia. Oikeaoppinen Matlab-tyyli (tehokas sekä ajatuksellisesti että suoritusajassa).

3. Funktio inpolygon, joka on huomattavan monipuolinen funktio. Yleistyskelpoinen erilaisille monikulmioalueille. Kuuluu pikemminkin luokkaan “hyvä tietää” kuin tässä tarkoitettuun Matlab-perusoppiin. Mutta on mielenkiintoinen ja kokeilemisen arvoinen tässäkin yhteydessä.

Pisteitä piirretään plot-komennolla optioita hyväksikäyttäen: esimerkiksi plot([3 2],[4 1],'.r') piirtää pisteet (3, 4), (2, 1) punaisina pisteinä.

Avainsanat: mlTodari, mlPerusteet, matlabperusteet, Monte Carlo, looginen ineksinti, satunnaisluvut

2. mlT005.tex (Osa kaavoista epäselviä html:ssä, katso pdf-tehtäviä!) Monte Carlo-approksimaatio π:lle.

Piirrä kuva

 t=linspace(0,2*pi);
 x=cos(t);y=sin(t);
 plot(x,y,[1 1 -1 -1 1],[-1 1 1 -1 -1]);
 axis([-1.5 1.5 -1.5 1.5])
 axis square

Heitetään tikkaa kuvan mukaiseen tauluun (tikat eivät eksy taulua ympäröivään neliön ulkopuolelle, ehkä tähän oikeasti tarvitaan "satunnaisrobotti"). Jos tikkojen osumatarkuus on satunnaismuuttuja, joka on tasajakautunut neliöllä −1 < x <, 1 < y < 1, niin ympyrään ja neliöön osuneiden tikkojen lukumäärän suhde lähenee lukua π/4, kun satunnaisheittojen lukumäärä kasvaa. Miksi? Generoi tasajakautuneita pistepareja ja laske ko. osuus.

Alla on vihjettä pikku esitystä varten. Toisaalta tehtävä ei kaipaa mitään lisäopiskelua, tai vihjeitä. Kenties ehto X.^2+Y.^2 <= 1 ja bittivektorin ykkösten lukumäärän laskeminen vähemmän Matlabia osaaville. (Vrt. edellinen kolmiotehtävä mlT004.tex.)

Vihje: Kirjassa C.vanL on hyvä tiivis selvitys aiheesta "Random processes"1.3.2 ss. 34 - 37. Tästä aiheesta voisi tehdä pienen harjoitustyön. Esiintyviä Matlab-funktioita:

 http://www.mathworks.com/access/helpdesk/help/techdoc/ref/hist.shtml
http://www.mathworks.com/access/helpdesk/help/techdoc/ref/rand.shtml
http://www.mathworks.com/access/helpdesk/help/techdoc/ref/randn.shtml.

Satunnaisprosesseihin ja tähän tehtävään (Monte Carlo simulaatio π:n laskemiseksi) on CV-sivulla selkeät skriptit:

http://www.cs.cornell.edu/cv/Books/SCMV/Mfiles/chap1.htm#Dice

Dice ja Darts ala C. van Loan. Opiskele, kokeile ja esittele.

Avainsanat: mlTodari, mlPerusteet, matlabperusteet, Monte Carlo, looginen ineksinti, satunnaisluvut

3.

Olkoot F^{n} satunnaismuuttuja joka kuvaa kiinteiden pisteiden lukumäärää satunnaispermutaatiossa (so. alkiot joiden paikka ei muutu permutaatiossa).

a) kirjoita funktio joka ottaa argumenttina kokonaisluvun n ja palautaa k-pituisen otoksen jakaumasta F^{n}.

b) Generoi otoksia jakaumasta F^{n} eri arvoilla n.

c) Piirrä histogrammit eri otoksista.

d) Voidaanko histogrammien perusteella päätellä, mikä on E[F^{n}]?

e) Laske E[F^{n}]

Vihje: Käytä hyväksesi odotusarvon lineaarisuutta laskiessasi odotusarvoa E[F^{n}].