Harjoitus 3: Matlab - Matemaattinen mallintaminen

Samankaltaiset tiedostot
Mat Systeemien identifiointi

Harjoitus 2: Ohjelmointi (Matlab)

Harjoitus 2: Ohjelmointi (Matlab)

Harjoitus 1: Johdatus matemaattiseen mallintamiseen (Matlab)

Mat Systeemien identifiointi, aihepiirit 1/4

Ehto- ja toistolauseet

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Zeon PDF Driver Trial

Harjoitus 1: Johdatus matemaattiseen mallintamiseen (Matlab)

Luento 5. Timo Savola. 28. huhtikuuta 2006

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Matlabin perusteita Grafiikka

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

Harjoitus 9: Optimointi I (Matlab)

Harjoitus 4: Matlab - Optimization Toolbox

Ohjelmoinnin peruskurssi Y1

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

Ohjelmointiharjoituksia Arduino-ympäristössä

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

ITKP102 Ohjelmointi 1 (6 op)

5/20: Algoritmirakenteita III

OPPITUNTI 5 Ohjelman kulku

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Aluksi Kahden muuttujan lineaarinen epäyhtälö

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Numeeriset menetelmät

TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio. Kimmo Berg. Mat Optimointioppi. 9. harjoitus - ratkaisut

MATLAB 7.1 Ohjelmointiharjoitus. Matti Lähteenmäki

Optimointi. Etsitään parasta mahdollista ratkaisua annetuissa olosuhteissa. Ongelman mallintaminen. Mallin ratkaiseminen. Ratkaisun analysointi

Algoritmit 1. Demot Timo Männikkö

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

13. Loogiset operaatiot 13.1

Java-kielen perusteita

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

811120P Diskreetit rakenteet

Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

16. Ohjelmoinnin tekniikkaa 16.1

Harjoitus 10: Mathematica

Alkuun HTML5 peliohjelmoinnissa

OHJ-1151 Ohjelmointi IIe

16. Ohjelmoinnin tekniikkaa 16.1

Ohjelmoinnin perusteet Y Python

13. Loogiset operaatiot 13.1

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Matlab- ja Maple- ohjelmointi

Harjoitus 11: Mathematica - Differentiaaliyhtälöiden analysointi, lisäpaketit

Ohjelmointikieli TIE Principles of Programming Languages Syksy 2017 Ryhmä 19

811120P Diskreetit rakenteet

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

Tutoriaaliläsnäoloista

Python-ohjelmointi Harjoitus 2

SIMULINK S-funktiot. SIMULINK S-funktiot

T Sovellusohjelmat Matlab osa 4: Skriptit, funktiot ja kontrollirakenteet

Ohjelmoinnin perusteet Y Python

Lisää segmenttipuusta

Ohjelmoinnin perusteet Y Python

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Tietotyypit ja operaattorit

Dynaamisen järjestelmän siirtofunktio

Ohjelmoinnin perusteet Y Python

Harjoitustyö: virtuaalikone

Java-kielen perusteita

Ohjelmoinnin peruskurssi Y1

TAITAJA 2007 ELEKTRONIIKKAFINAALI KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

Ohjelmoinnin perusteet Y Python

Numeeriset menetelmät

UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN

Muuttujien roolit Kiintoarvo cin >> r;

Ehto- ja toistolauseet

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

Algoritmit 2. Demot Timo Männikkö

Matemaattiset ohjelmistot 1-2 ov, 2-3 op

Racket ohjelmointia II. Tiina Partanen 2015

Luku 3. Listankäsittelyä. 3.1 Listat

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

5 Osa 5: Ohjelmointikielen perusteita

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Harjoitus 6: Simulink - Säätöteoria. Syksy Mat Sovelletun matematiikan tietokonetyöt 1

Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Ta

Esimerkkejä derivoinnin ketjusäännöstä

Ohjelmoinnin perusteet Y Python

11. Javan toistorakenteet 11.1

11. Javan valintarakenteet 11.1

ELEC-C5210 Satunnaisprosessit tietoliikenteessä Harjoitus M1,

Ohjelmoinnin perusteet Y Python

Listarakenne (ArrayList-luokka)

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto

Mat Sovellettu todennäköisyyslasku 5. harjoitukset/ratkaisut. Jatkuvat jakaumat

Racket ohjelmointia I

Transkriptio:

Harjoitus 3: Matlab - Matemaattinen mallintaminen Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1

Harjoituksen aiheita Tutustuminen matemaattiseen mallinnukseen Ohjelmointi Matlabissa Funktiot ja komentojonotiedostot Matlabissa Mat-2.2107 Sovelletun matematiikan tietokonetyöt 2

Matemaattinen mallintaminen Malli = Todellisuuden jäljitelmä. Fysikaaliset lait, tilastollinen päättely, simulointi... Hyvä malli on yksinkertainen mahdollinen (käyttötarkoitukseensa nähden) Mallin avulla systeemiä voidaan tarkastella ilman kokeiden tekemistä. - Kokeiden tekeminen systeemistä voi olla liian vaikeaa tai kallista. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 3

White Box - Black Box White box malli: Systeemin riippuvuussuhteet tunnetaan. - Luonnonlait - Fysikaalinen mallintaminen - Esim. sähköpiirin mallintaminen Black box malli: Systeemin riippuvuussuhteita ei tunneta, vaan sovitetaan malli mittausdataan. - Identifiointi - Esim. kansantalouden mallintaminen Välimaastossa Gray Box mallintamin - Systeemin rakenne osittain tunnettu, mittausdataa käytetään parametrien määrittämiseen. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 4

Mallien käyttötarkoituksia 1/2 Ennustaminen - Esim. Kuinka suuri sähkön kulutus tulee olemaan ensi vuonna? Optimointi - Esim. Mikä on paras mahdollinen tuotannon määrä yritykselle? Säätö - Esim. Kuinka paperikonetta tulisi ohjata, jotta lopputulos olisi tasalaatuista? Mat-2.2107 Sovelletun matematiikan tietokonetyöt 5

Mallien käyttötarkoituksia 2/2 Päätöksenteko - Esim. Pitäisikö Suomeen rakentaa lisää ydinvoimaa? Maailmankuvan muodostaminen - Esim. Mitkä tekijät vaikuttavat Suomen kansantalouden kehittymiseen? Mat-2.2107 Sovelletun matematiikan tietokonetyöt 6

Mallien luokittelu 1/2 Deterministinen - Stokastinen Dynaaminen - Staattinen Jatkuva-aikainen - diskreettiaikainen Keskitetyt parametrit - Jakautuneet parametrit Jatkuva-aikainen - Tapahtumaorientoitunut Parametrinen - Ei-parametrinen Single-input-single-output (SISO) - Multi-input-multi-output (MIMO) Lineaarinen - Epälineaarinen Aikavariantti - Aikainvariantti Aikatasomalli - Taajuustasomalli Mat-2.2107 Sovelletun matematiikan tietokonetyöt 7

Mallien luokittelu 2/2 Mallit voidaan myös jaotella aiheen mukaan: - Matemaattiset mallit esim. Fysiikassa Lääketieteessä Psykologiassa Taloustieteessä TAI ratkaisutekniikan mukaan: - Matemaattinen mallintaminen esim. Differentiaaliyhtälöillä Graafeilla Matemaattisella ohjelmoinnilla Neuroverkoilla Mat-2.2107 Sovelletun matematiikan tietokonetyöt 8

Mallinrakennuksen vaiheet (1) Tehtävän määrittely (2) Mallin muodostaminen - Puetaan kohdan (1) tehtävä matemaattiselle kielelle. (3) Mallin ratkaiseminen - Suoraviivaisin osuus, perustuu yleensä hyvin määriteltyyn matemaattiseen teoriaan. (4) Validointi - Vastaako malli niihin kysymyksiin, johon sen piti vastata? (5) Ratkaisun käyttöönotto - Toimintaohjeita mallin käyttäjälle. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 9

Ohjelmointi Matlabissa Relaatio-operaattorit < Pienempi kuin <= Pienempi tai yhtä suuri kuin > Suurempi kuin >= Suurempi tai yhtäsuuri kuin == Yhtä suuri kuin ~= Eri suuri kuin Huom! = on sijoitusoperaattori. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 10

Loogiset operaattorit 1/2 && Palauttaa arvon true jos molemmat tarkasteltavat lausekkeet saavat arvon true, muussa tapauksessa palauttaa arvon false. Palauttaa arvon true jos jompikumpi inputeista (tai molemmat) saavat arvon true, muussa tapauksessa palautetaan false. Matlabissa on myös loogisia operaattoreita, jotka tarkastelevat vektoreita tai matriiseja alkioittain. - &,, xor Mat-2.2107 Sovelletun matematiikan tietokonetyöt 11

Loogiset operaattorit 2/2 && operaattoria käytettäessä toista lauseketta ei evaluoida mikäli ensimmäinen saa arvon false. Esim. Nollalla jakaminen voidaan estää seuraavasti: - x = (b ~= 0) && (a/b > 18.5) Mat-2.2107 Sovelletun matematiikan tietokonetyöt 12

Ohjelman kontrollirakenteet - if, else, elseif Haarautuminen: Ohjelmakoodissa voidaan edetä eri tavoin riippuen ohjelman tilasta. - if, else, elseif if x < 0 disp( Negatiivinen luku ); elseif rem(x,2) == 0 % Tarkastellaan jakojäännöstä disp( Parillinen luku ); else disp( Pariton luku ); end Mat-2.2107 Sovelletun matematiikan tietokonetyöt 13

Ohjelman kontrollirakenteet - switch, case, otherwise Jos haarautumisvaihtoehtojen määrä on suuri, on helpompaa käyttää switch - rakennetta. - switch, case, otherwise switch x case 1 disp( Tulos on yksi. ) case 2 disp( Tulos on kaksi. ) case 3 disp( Tulos on kolme. ) otherwise disp( Jokin muu luku. ) end Mat-2.2107 Sovelletun matematiikan tietokonetyöt 14

Ohjelman kontrollirakenteet - for Silmukoiden avulla joukko komentoja voidaan ajaa useamman kerran peräkkäin. for - silmukka - Käytetään kun silmukan toistojen lukumäärä on ennaltamäärätty. - Esim. Käydään läpi kaikki matriisin rivit. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 15

Ohjelman kontrollirakenteet - while while - silmukka - Käytetään kun toistojen lukumäärä ei ole ennaltamäärätty. - Esim. Haetaan ratkaisua iteratiivisesti kunnes tietty toleranssiehto täyttyy. % Lasketaan ns. kone-epsilonin arvo eli luvun 1.0 % ja sitä seuraavan liukuluvun välinen ero. eps = 1; while (1+eps) > 1 eps = eps/2; end eps = eps*2 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 16

continue, break, return Silmukoissa käytettäviä komentoja: - continue: Siirrytään silmukan alkuun seuraavalle iteraatiokierrokselle. - break: Siirrytään ulos silmukasta. - return: Lopetetaan koodin suoritus. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 17

Silmukoita ei aina tarvitse käyttää... Matlab on sunniteltu vektori- ja matriisioperaatioita varten. Vektorization: for ja while -silmukoiden korvaaminen vektoritai matriisioperaatioilla. - Laskennallisesti tehokkaampaa kuin silmukoiden käyttäminen. % Sinifunktion arvojen % laskenta for-silmukassa % Vastaava operaatio % vektorimuodossa i = 0; for t = 0:.01:10 i = i + 1; y(i) = sin(t); end t = 0:.01:10; y = sin(t); Mat-2.2107 Sovelletun matematiikan tietokonetyöt 18

Funktiot ja komentojonotiedostot M-tiedostot voidaan jakaa funktioihin ja komentojonotiedostoihin (skripteihin). Funktiot: - Ottavat sisään argumentteja ja palauttavat myös arvoja. - Muuttujat tallennetaan funktion omaan sisäiseen työtilaan. - Matlabin työtilassa olevia muuttujia ei voida suoraan käyttää funktion sisällä, eikä funktion sisäisiä muuttujia voida käyttää sen ulkopuolella. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 19

Funktioiden syntaksi function [x, y] = myfun(a, b, c) % Function definition line x = prod(a, b); % Start of Function code Yo. esimerkissä: - myfun : funktion nimi. - a, b, c : funktion input-argumentit. - x, y : funktion palauttamat arvot. - Funktio tallennetaan saman nimiseen m-tiedostoon. - Esim. funktio myfun() tallennettaisiin tiedostoon myfun.m. - Funktion 1. rivi alkaa avainsanalla function: Kertoo Matlabille, että ko. tiedosto on funktio eikä komentojonotiedosto. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 20

Komentojonotiedostot Hyödyllisiä automatisoimaan peräkkäisiä komentoja, joita joudutaan ajamaan monta kertaa. Eivät hyväksy argumenttejä inputina eivätkä palauta argumenttejä. Muuttujat tallennetaan samaan työtilaan kuin Matlabin komentoriviltä ja muista skripteistä luodut muuttujat. - Käytettävissä myös skriptin suorittamisen päätyttyä. - Myös työtilassa olevia muuttujia voidaan hyödyntää skriptissä. - Skriptiä ajettaessa työtilassa olevien muuttujien päälle voi myös vahingossa tallentua uusia arvoja. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 21

Ohjelman kehittäminen Monesti ongelma kannattaa pilkkoa itsenäisiin osiin. - Oma funktio erikseen eri osille. Pseudo-koodi-luonnos ennen varsinaista koodia. - Pääpaino ohjelman rakenteessa eikä syntaksissa. - Helppo muuttaa tämän jälkeen varsinaiseksi ohjelmaksi. Ohjelmointityyli - Käytä selkeitä funktioiden ja muuttujien nimiä. - Kommentoi koodiasi. - Käytä sisennyksiä ja tyhjää tilaa. Virheiden etsintä selkeästä koodista on helpompaa. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 22

Satunnaislukujen generointi - Käänteisfunktiomenetelmä Simuloitavan suureen (satunnaismuuttujan) x kertymäfunktio F(x) tunnetaan. Käytössä on satunnaislukugeneraattori, josta saatavat satunnaisluvut y Tas[0, 1]. - rand-funktio Matlabissa. F 1 jakautunut kuten x. 1 Eksponentiaalijakauman kertymäfunktio: F(x)=1 e λ x F(x) 0 x Mat-2.2107 Sovelletun matematiikan tietokonetyöt 23

Kysymyksiä 1. Mitä eroa on white-box ja black-box mallintamisella? 2. Mihin eri tarkoituksiin matemaattista mallintamista voidaan käyttää? 3. Mitä eroa on for- ja while-silmukoilla? 4. Mitä haittoja liian monimutkaisessa mallissa on? 5. Mitä eroja on Matlabin komentojonotiedostoilla ja funktioilla? 6. Mistä lausekkeesta saat laskettua eksponentiaalijakautuneen satunnaismuuttujan arvon, kun olet soveltanut käänteisfunktiolauseketta eksponentiaalijakauman kertymäfunktioon? Mat-2.2107 Sovelletun matematiikan tietokonetyöt 24