MattieT-tehtäväportaali


Yhteydenotot:

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

Sisällysluettelo


  1. 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.

    1. Piirrä datapisteet ja histogrammi, myös isommalla datalla.

    2. Vaihda viimeinen rand muotoon randn, ja tee sama kuin edellä.

    3. Kirjoita ohjelma, joka laskee keskiarvon ja hajonnan. Tee oma funkio, voit verrata valmiisiin mean ja std- funktioihin.
      for-looppeja ei hyväksytä.

    4. 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


  2. 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:

    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 käyttää for- silmukkaa. 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 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


  3. 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


  4. 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]\).