Heikki Apiola
Dept. of Math. Sci.
Aalto-yliopisto
heikki.apiola'at'aalto.fi
Juha Kuortti
Dept. of Math. Sci.
Aalto-yliopisto
juha.kuortti 'at' aalto.fi
Miika Oksman
Dept. of Math. Sci.
Aalto-yliopisto
miika.oksman 'at' aalto.fi
|
Matlab/Todennäköisyys ja tilasto, satunnaisuus |
Käytön idea: Kun löydät mieleisesi tehtävän, sen alapuolella on linkki tex-tiedostoon. Lataa
tiedosto, ja liitä se harjoituspohjaan
tai omaan Latex-pohjaasi
|
-
mlPr003
mlPr003.tex Vrt. mlPr003.m Satunnaisvirhettä sisältävää dataa voidaan Matlabissa muodostaa seuraavaan tapaan:
num=100;
v=0.1;
% rng(0,'twister') Tällä voisit alustaa saunnaislukugeneraattorin
toistettavaan tilaan.
data=5+v*sign(1-2*rand(1,num)).*rand(1,num);
Selitä, mitä viimeinen rivi tekee.
Piirrä datapisteet ja histogrammi, myös isommalla datalla.
Vaihda viimeinen rand muotoon randn , ja tee sama kuin edellä.
Kirjoita ohjelma, joka laskee keskiarvon ja hajonnan. Tee oma funkio, voit verrata valmiisiin mean ja std - funktioihin.
for -looppeja ei hyväksytä.
Sovella funktio(i)tasi edellä muodostettuun dataan.
Vihje: Jos haluat tehdä toistettavan satunnaiskokeen rand -tyyppisillä funktioilla, voit antaa ensin komennon: rng(0,’twister’) . Tässä tehtävässä on havainnollisempaa olla antamatta tätä, ainakin useimmissa vertailuissa.
Vaativuus 2 Avainsanat: Matlab, todennäköisyys, probability, mlPr, satunnaisluvut, random, matlabperusteet, Matlabfunktioita:rand,randn,hist,bars
-
mlPr004
mlPr004.tex Laskemme yksikkökolmion \(T\) (virittävät pisteet \({(0,0),(1,0),(0,1)}\)) pinta-alan tasaisesti jakautuneilla satunnaisluvuilla Monte-Carlo menetelmää mukaillen:
Generoi \(N\) tasaisesti jakautunutta satunnaislukuparia \((x_1,x_2)\) yksikköneliöön.
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ä.
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.
Voit käyttää for- silmukkaa. Vähiten suositeltava tapa (mutta opettaa kuitenkin ohjausrakenteita, selkeästi Matlabin “väärinkäyttöä”).
Muodosta saunnaisvektorille ehto kolmioon kuulumiselle ja käytä loogista indeksointia. Oikeaoppinen Matlab-tyyli (tehokas sekä ajatuksellisesti että suoritusajassa).
Funktio inpolygon 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ä.
Vaativuus 2 Avainsanat: Matlab, Probability, mlPr, satunnaisluvut, random, matlabperusteet, Monte Carlo, looginen indeksointi
-
mlPr005
mlPr005.tex Monte Carlo-approksimaatio \(\pi\):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 \(\pi/4\), kun satunnaisheittojen lukumäärä kasvaa. Miksi? Generoi tasajakautuneita pistepareja ja laske ko. osuus.
Vihje: Käytä loogista indeksointia, kun ehtona on X.^2+Y.^2 <= 1 , ja laske bittivektorin ykkösten lukumäärä.
Jatkolukemista ja lisätehtäviä:
Kirjassa Charles van Loan: Introduction to Scientific Computing, a Matlab approach on hyvä tiivis selvitys aiheesta "Random processes" 1.3.2 ss. 34 - 37.
Vaativuus 2 Avainsanat: Matlab, Probability, mlPr, satunnaisluvut, random, matlabperusteet, Monte Carlo, looginen indeksointi Matlabfunktioita: rand
-
mlPr010
Olkoot \(F^n\) satunnaismuuttuja joka kuvaa kiinteiden pisteiden lukumäärää satunnaispermutaatiossa (so. alkiot joiden paikka ei muutu permutaatiossa).
kirjoita funktio joka ottaa argumenttina kokonaisluvun \(n\) ja palautaa \(k\)-pituisen otoksen jakaumasta \(F^n\).
Generoi otoksia jakaumasta \(F^n\) eri arvoilla \(n\).
Piirrä histogrammit eri otoksista.
Voidaanko histogrammien perusteella päätellä, mikä on \(E[F^n]\)?
Laske \(E[F^n]\)
Käytä hyväksesi odotusarvon lineaarisuutta laskiessasi odotusarvoa \(E[F^n]\).
|