Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Teknisen laskennan perusteet Tuomo Kauranne Lappeenrannan teknillinen yliopisto 23. syyskuuta 2015 Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä MATLABin käyttö sovelluksissa Sovellusten toteuttaminen 1 2 3 4 5 Kurssin tavoitteet ja suorittaminen Kurssin tavoitteet Kurssin suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- ja toistolauseet Mitä on ohjelmointi? Ohjelman osat Muuttujat Käskyt Tiedostot Ohjelmointikielet ja Matlab Tallennus ja modulit Matriisilaskenta MATLABin käyttö sovelluksissa Pienimmän neliösumman sovitus Funktion minimointi Sovellusten toteuttaminen Matlabilla Differentiaaliyhtälöt Harjoitustyö(t) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kurssin MATLABin tavoitteet käyttö Kurssin sovelluksissa suorittaminen Sovellusten toteuttaminen 1 2 3 4 5 Kurssin tavoitteet ja suorittaminen Kurssin tavoitteet Kurssin suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- ja toistolauseet Mitä on ohjelmointi? Ohjelman osat Muuttujat Käskyt Tiedostot Ohjelmointikielet ja Matlab Tallennus ja modulit Matriisilaskenta MATLABin käyttö sovelluksissa Pienimmän neliösumman sovitus Funktion minimointi Sovellusten toteuttaminen Matlabilla Differentiaaliyhtälöt Harjoitustyö(t) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kurssin MATLABin tavoitteet käyttö Kurssin sovelluksissa suorittaminen Sovellusten toteuttaminen Kurssin tavoitteet Opettaa käytännön ohjelmointia Matlab/Scilab -ympäristössä Tehdä harjoitustyö Matlabilla ja siitä raportti Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kurssin MATLABin tavoitteet käyttö Kurssin sovelluksissa suorittaminen Sovellusten toteuttaminen Kurssin suorittaminen Luentoja 6 × 2 tuntia viikossa (ke 16-18, 1381) Käytännön Matlab-työskentelyä mikroluokassa 2 tuntia viikossa koko vuoden ajan Harjoitukset alkavat viikolla 37 Ilmoittautumislistat Nopassa! Harjoitustyö Matlabilla ja kirjallinen raportti Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kurssin MATLABin tavoitteet käyttö Kurssin sovelluksissa suorittaminen Sovellusten toteuttaminen Kurssin arvostelu Valmiiksi saadut harjoitustehtävät max 16 pistettä: Pistemäärä lasketaan alaspäin pyöristäen tehtyjen tehtävien ja kaikkien annettujen tehtävien määrän suhteesta Annettujen tehtävien kokonaismäärä selviää vasta kurssin kuluessa Harjoitustyö ja raportti arvostellaan erikseen, max 16 pistettä Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo 1 2 3 4 5 Kurssin tavoitteet ja suorittaminen Kurssin tavoitteet Kurssin suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- ja toistolauseet Mitä on ohjelmointi? Ohjelman osat Muuttujat Käskyt Tiedostot Ohjelmointikielet ja Matlab Tallennus ja modulit Matriisilaskenta MATLABin käyttö sovelluksissa Pienimmän neliösumman sovitus Funktion minimointi Sovellusten toteuttaminen Matlabilla Differentiaaliyhtälöt Harjoitustyö(t) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Matlab-kieli Matlab on tulkkaava skriptikieli Se on tarkoitettu alunperin matriisilaskennan sovelluskehittimeksi Sitä on 1970-luvulta lähtien laajennettu sadoilla Työkalukokoelmilla (Toolbox) Näitä työkalukokoelmia on tehty myös lukuisiin tekniikan alan tutkimus- ja kehitystehtäviin Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Matlabin käyttö Matlab avataan kutsulla Matlab tai ikonista Kun merkki >> ilmaantuu näkyviin sille voi alkaa syöttää komentorivejä jotka pyydetään tulkkaamaan painamalla Enteriä Virheiden löytyessä itse ilmoitus voi tuntua oudolta, mutta rivi- ja sarakenumero kertoo mistä vikaa kannattaa lähteä hakemaan Parhaiten Matlabin käyttöä oppii ottamalla pohjaksi vanhan toimivan ohjelman ja alkamalla muokkaamaan sitä yksi muokkaus kerrallaan, ja sen jälkeen aina välitestaus Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Käyttöesimerkkejä TKK Tietoliikennelaboratorio: Matlab-opas Matti Pastell: MATLAB OPAS Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Yleinen ehtorakenne Valitaan kahden tai useamman vaihtoehdon joukosta yksi >> >> >> >> >> >> >> if i==1 b(i) = A(5,i) elseif i==2 b(i) = A(4,i) else b(i) = A(3,i) end Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Loogiset vertailut Vertaillaan kahta muuttujaa Ehtoja voi yhdistää ja ja tai ja ei-operaatioilla Esimerkki >> if i==1 >> elseif i>10 >> elseif i<5 >> elseif i<=3 && i>-2 >> elseif i==0 || i<-5 Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Toistorakenteet - vektori Jos sama käskyjono pitää toistaa monelle muuttujalle, Matlabissa on kolme vaihtoehtoa Käsitellään muuttujia vektorina Esimerkki >> B = ones(10) >> b = B(5,:) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Toistorakenteet - toistosilmukka Käskyjonoa toteutetaan silmukkamuuttujan kertoma määrä kertoja Esimerkki >> n=10 >> for i=1:n >> b(i) = B(5,i) >> end Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Toistorakenteet - lopetusehto Käskyjonoa toteutetaan kunnes lopetusehto täyttyy Esimerkki >> i=1 >> while i < 11 >> b(i) = B(5,i) >> i=i+1 >> end Muista päivittää ehtomuuttuja silmukassa! Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Esimerkki: Funktion Taylor-sarja Gilat, s. 214-216 Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Ohjelman osat Ohjelma on jono toimintaohjeita tietokoneelle Ohjelma koostuu käskyistä eli lauseista Ohjelma kirjoitetaan usein editoriohjelmalla Kukin käsky kirjoitetaan omalle rivilleen Ohjelma talletetaan tiedostoon jolle annetaan nimi Kun ohjelma on valmis, se suoritetaan kirjoittamalla komentoikkunaan ohjelman nimi ja painamalla Enter Ohjelman suoritus alkaa sen ensimmäisen rivin käskyn suorittamisella ja jatkuu rivi riviltä viimeiselle riville, jolloin ohjelman suoritus päättyy Jotkut käskyt voivat muuttaa tätä suoritusjärjestystä Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Muuttujat Muuttujan nimi alkaa yleensä kirjaimella Muuttuja on nimilappu, johon liitetään muuttujan arvo sijoituskäskyllä Muuttujan arvo voi muuttua monta kertaa ohjelman kuluessa Muuttujan arvo voi olla esimerkiksi numero, vektori, matriisi tai totuusarvo (true tai false) Muuttujan arvo voi olla myös merkkijono, esimerkiksi toisen ohjelman nimi Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Käskyt Tavallisin käsky on sijoituskäsky, jonka symboli on = Muita käskyjä ovat ehtolause, joka alkaa sanalla if Ja myös toistolause joka alkaa sanalla for tai while Matlab tulostaa jokaisen rivin suorituksen, paitsi jos rivin loppuun lisätään ; Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Tiedostot Tiedosto on hakemistossa sijaitseva nimetty käskyjoukko tai datajoukko Matlab etsii suoritettavaa ohjelmaa sen nimisestä, .m-tyyppisestä tiedostosta Matlab etsii tällaista tiedostoa oletushakemistosta Oletushakemisto voidaan vaihtaa vaikkapa oman USB-tikun hakemistoon Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Tiedostot Datatiedostoista Matlab voi lukea suuria datamääriä muuttujan arvoksi vaikka read-lauseella Matlabin muuttujien arvoja voi kirjoittaa datatiedostoksi write- ja save-komennoilla Datatiedosto voi olla jokin useasta eri tyypistä, esimerkiksi tekstitiedosto .txt tai binääritiedosto .dat Tekstitiedostoa voi katsoa ja muokata esim. Notepadilla, binääritiedostoa voi käsitellä vain ohjelmassa, ei käsin Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Ohjelmointikielet ja Skriptikielet Ohjelmointikielet ovat ammattilaisten yleiskäyttöinen työväline Tulkit sopivat asiantuntevan käyttäjän kehitysvälineeksi Kehitysympäristöt ja sovellusohjelmat lähestyvät toisiaan mm. skriptikielten kautta Tekniikan alan tärkeimpiä yleisohjelmointikieliä: Java, C, C++, C# Yleisiä skriptikieliä: Javascript, .NET, Python, Perl Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Kääntäjät ja tulkit Yleensä ohjelmointikielellä tehty ohjelma ajetaan erikseen kääntäjän läpi Ohjelma voidaan suorittaa vasta kun virheet on korjattu ja käännös onnistuu Tämä takaa että ohjelma toimii mutta EI kuitenkaan takaa että se toimii OIKEIN! Skriptikieltä käytetään tulkin kautta. Tulkki koettaa kääntää ja suorittaa jokaisen komentorivin kerrallaan Sen vuoksi seurauksena on usein monimutkaisia virheilmoituksia, joista on hankala nähdä virheen todellista syytä Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Työtilan tallennus ja lataus, .m-tiedostot Työtila tallennetaan komennolla save filename Työtila ladataan komennolla load filename Pitempiä Matlab-ohjelmia kannattaa työstää m-tiedostoiksi, esim. solve.m Näitä kutsutaan komentorivillä nimeltä: >> solve m-tiedoston sisältä voi edelleen kutsua muita m-tiedostoja Kaikkien kutsuttavien m-tiedostojen täytyy olla työhakemistossa Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Modulaarisuus ja .m-tiedostot Yleensä Matlab-ohjelma kannattaa jakaa loogisesti erillisiin palasiin Tällöin voi keskittyä korjaamaan (”debuggaamaan”) vain pientä koodin osaa kerrallaan Kukin palanen (moduli) tallennetaan omaan m-tiedostoonsa Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Modulaarisuus ja .m-tiedostot m-tiedostossa voi olla jono Matlab-käskyjä, tai erillinen funktio Tavalliset m-tiedostot käyttävät työtilan muuttujia ja itse määrittelemiään muuttujia Funktio on itsenäisempi: sille välitetään jono muuttujia, joita se voi itse sisäisesti kutsua eri nimellä Samaa funktiota voi siten käyttää monessa eri ohjelmassa Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Matriisioperaatiot Vinkki: pystyvektori on (n × 1)-matriisi ja vaakavektori on (1 × n)-matriisi Matriisien määritteleminen Matriisien yhteen- ja vähennyslasku Matriisien muuttaminen vektoreiksi tai toisenmuotoisiksi matriiseiksi Alimatriisien poiminta Matriisin transpoosi Kahden matriisin tulo Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Operaatiot matriiseilla Matriisin determinantti Lineaarisen yhtälöryhmän ratkaiseminen Käänteismatriisi Matriisin ominaisarvot Alkioittaiset matriisioperaatiot Matriisin kuvan piirtäminen Matriisin tai koko työtilan luku ja talletus Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- MATLABin ja toistolauseet käyttöOhjelman sovelluksissa osat Sovellusten Muuttujat toteuttaminen Käskyt Tiedo Esimerkki funktion kutsusta Kuvataan kemiallista reaktiota jonka tuloksen pitoisuutta mitataan toistuvasti Tehtävänä sovittaa kohinaiseen mittausdataan eksponenttifunktio lähtien alkuarvauksista Eksponettifunktiossa on kaksi vapaata parametria: A0 ja k A(t) = A0 e −k∗t Käyttäjä antaa eksponenttifunktion m-tiedostossa myfun.m Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Pienimmän MATLABin neliösumman käyttö sovelluksissa sovitus Funktion Sovellusten minimointi toteuttaminen 1 2 3 4 5 Kurssin tavoitteet ja suorittaminen Kurssin tavoitteet Kurssin suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- ja toistolauseet Mitä on ohjelmointi? Ohjelman osat Muuttujat Käskyt Tiedostot Ohjelmointikielet ja Matlab Tallennus ja modulit Matriisilaskenta MATLABin käyttö sovelluksissa Pienimmän neliösumman sovitus Funktion minimointi Sovellusten toteuttaminen Matlabilla Differentiaaliyhtälöt Harjoitustyö(t) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Pienimmän MATLABin neliösumman käyttö sovelluksissa sovitus Funktion Sovellusten minimointi toteuttaminen Esimerkki: Pienimmän neliösumman sovitus Esimerkki t=0:1:10; y=4*exp(-0.75*t); % ’oikeat’ funktion kertoimet A0 = 4, k = 0.75 ynoisy = y+randn(1,11)*0.25; % mittaukset initguess = [1 1]; % kerrointen alkuarvaukset A0 = 1, k = 1 xlsq= lsqcurvefit(@myfun1,initguess,t,ynoisy);% Kerrointen sovitus yfit = myfun1(xlsq,t); % Funktio sovituksen laskemilla kertoimilla plot(t,ynoisy,’o’, t,yfit); Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Pienimmän MATLABin neliösumman käyttö sovelluksissa sovitus Funktion Sovellusten minimointi toteuttaminen Funktiotiedosto myfun.m Esimerkki function F = myfun1(teta,t) % INPUT-parametrien lista: % teta Kahden parametrin vektori (A0 ja k) % t Mittausten ajankohdat % y = A0*exp(-k*t) Funktion muoto kommentissa F = teta(1)*exp(-teta(2)*t); Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Pienimmän MATLABin neliösumman käyttö sovelluksissa sovitus Funktion Sovellusten minimointi toteuttaminen Satunnaislukujen generointi Satunnaisluvut ovat erittäin hyödyllisiä mm. simuloinnissa Satunnaislukuja voi tuottaa useilla jakaumilla Esimerkki >> n=10 >> A=rand(n) % n × n satunnaislukumatriisi >> % Alkiot tasaisesti jakautuneita välille [0, 1] >> b=randn(1,n) % Satunnainen n-vaakavektori >> % Alkiot normaalijakautuneita, µ = 0, σ = 1 Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Pienimmän MATLABin neliösumman käyttö sovelluksissa sovitus Funktion Sovellusten minimointi toteuttaminen Esimerkki: funktion minimin etsintä satunnaisoptimoinnilla Kahden muuttujan funktio on määritelty tason yksikköympyrässä Etsitään sen minimi satunnaisoptimoinnilla Generoidaan tasaisesti jakautuneita satunnaislukupareja Tarkistetaan onko parin edustama tason piste yksikköympyrän sisällä Jos on, lasketaan funktion arvo tässä pisteessä Käyttäjä antaa itse funktion m-tiedostossa mymin.m Etsitään funktion saamista arvoista pienin Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Pienimmän MATLABin neliösumman käyttö sovelluksissa sovitus Funktion Sovellusten minimointi toteuttaminen Funktion minimointi Esimerkki n=1000; f=zeros(1,n) % Vektori funktion arvoille s = rand(2,n); % Satunnaislukuparit for i=1:n % Tutkitaan kaikki pisteet if s(1,i)*s(1,i)+s(2,i)*s(2,i)<1 % onko piste 1-ympyrässä f(i)=mymin(s(1,i),s(2,i)); else f(i) = 99999999 end; end; minimi = min(f) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Pienimmän MATLABin neliösumman käyttö sovelluksissa sovitus Funktion Sovellusten minimointi toteuttaminen Funktiotiedosto mymin.m Esimerkki function F = mymin(x,y) % INPUT-parametrien lista: % x pisteen x-koordinaatti % y pisteen y-koordinaatti % F = exp(-x*x-y*x) Funktion muoto kommentissa F = exp(-x*x-y*y); Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Differentiaaliyhtälöt MATLABin käyttö sovelluksissa Sovellusten toteuttaminen 1 2 3 4 5 Kurssin tavoitteet ja suorittaminen Kurssin tavoitteet Kurssin suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- ja toistolauseet Mitä on ohjelmointi? Ohjelman osat Muuttujat Käskyt Tiedostot Ohjelmointikielet ja Matlab Tallennus ja modulit Matriisilaskenta MATLABin käyttö sovelluksissa Pienimmän neliösumman sovitus Funktion minimointi Sovellusten toteuttaminen Matlabilla Differentiaaliyhtälöt Harjoitustyö(t) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Differentiaaliyhtälöt MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Esimerkki differentiaaliyhtälön ratkaisemisesta Kuvataan kemiallista reaktiota A − > B − > C tavallisten differentiaaliyhtälöiden ryhmällä Ryhmässä on kolme 1. kl. tdy:tä, yksi kullekin kemikaalille Ryhmä on lineaarinen Ratkaiseminen vaatii myös alkuarvot! Käyttäjä antaa ratkaisun pohjan m-tiedostossa Käyttäjä antaa itse yhtälön m-tiedostossa myfirstode.m Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Differentiaaliyhtälöt MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Esimerkki differentiaaliyhtälön ratkaisemisesta Matlabin tdy-ratkaisija ode23-funktio sisältää toistorakenteen Käyttäjä näkee tuloksen ratkaisuvektorissa jonka ode23 palauttaa Ratkaisuvektorin pituus riippuu ode23-funktion ottamien aika-askelten määrästä eikä sitä tiedetä etukäteen! Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Differentiaaliyhtälöt MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Esimerkki: Differentiaaliyhtälön ratkaisu Esimerkki s0 = [1 0 0]; % alkuarvot pitoisuuksille A,B,C tspan = [0,10]; % ratkaisun ajanjakso k1 = 0.7; % reaktionopeus A->B k2 = 0.2; % reaktionopeus B->C % Kutsutaan Matlabin tdy-ratkaisijafunktiota ’ode23’: [t, s] = ode23(@myfirstode,tspan,s0,[],k1,k2); plot(t,s) % piirretään ratkaisu Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Differentiaaliyhtälöt MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Kommentoidaan tdy-ratkaisijan kutsua Esimerkki [t, s] = ode23(@myfirstode,tspan,s0,[],k1,k2); %inputs: myfirstode.m -tiedostossa annetaan tdy % tspan ratkaisun ajanjakso vektorina % s0 kolmen kemikaalin alkupitoisuudet % [] ratkaisijan parametrit (nyt ei käytetä) % k1,k2 ’myfirstode’-funktion vaatimat reaktiokertoimet %outputs: kpl), t ode23:n palauttamat ajanhetket (n % s ratkaisumatriisi (3 × n) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Differentiaaliyhtälöt MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Funktiotiedosto myfirstode.m Esimerkki function ds = myfirstode(t,s,k1,k2); A = s(1); % Nimetään kemikaalit B = s(2); % selkeyden vuoksi C = s(3); dA = -k1*A; % tdy-yhtälöt dB = k1*A - k2*B; dC = k2*B; ds = [dA;dB;dC]; % kootaan komponentit vektoriksi Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Differentiaaliyhtälöt MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Funktiotiedoston myfirstode.m kommentit Esimerkki %input t Ratkaisun ajanhetket % s Ratkaisun pitoisuudet % k1,k2 reaktioiden nopeuskertoimet %output ds Ratkaisun kolme derivaattaa hetkellä t Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä MATLABin käyttö sovelluksissa Sovellusten toteuttaminen 1 2 3 4 5 Kurssin tavoitteet ja suorittaminen Kurssin tavoitteet Kurssin suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- ja toistolauseet Mitä on ohjelmointi? Ohjelman osat Muuttujat Käskyt Tiedostot Ohjelmointikielet ja Matlab Tallennus ja modulit Matriisilaskenta MATLABin käyttö sovelluksissa Pienimmän neliösumman sovitus Funktion minimointi Sovellusten toteuttaminen Matlabilla Differentiaaliyhtälöt Harjoitustyö(t) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Pakollinen perusharjoitustyö - Kolmen kappaleen ongelma Tutkimme ja visualisoimme kolmen tai useamman planeetan i liikettä niiden keskinäisessä painovoimakentässä Kutakin planeettaa ajatellaan massapisteenä jonka koordinaattivektori xi on ajan funktio xi (t) ja jonka massa on mi Esimerkki xi (t) = (xi (t), yi (t), zi (t))T Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Pakollinen perusharjoitustyö - Kolmen kappaleen ongelma Planeettojen liike noudattaa Newtonin lakia: Esimerkki mi d 2 xi (t) = fi dt 2 missä voima fi on kaikkien planeettaan i kohdistuvien voimien resultantti Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Pakollinen perusharjoitustyö - Kolmen kappaleen ongelma Kunkin planeettaparin (i, j) välillä vallitsee Newtonin painovoimalain mukainen vetovoima fij , jonka suuruus |fij | saadaan kaavasta Esimerkki |fij | = mi mj rij2 missä pituuden ja massan yksiköt on valittu siten että Newtonin painovoimavakio G = 1 Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Pakollinen perusharjoitustyö - Kolmen kappaleen ongelma Planeettojen i ja j välinen etäisyys rij hetkellä t saadaan kaavasta Esimerkki rij = q (xi (t) − xj (t))2 + (yi (t) − yj (t))2 + (zi (t) − zj (t))2 Planeettoihin ei kohdistu muita voimia Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Pakollinen perusharjoitustyö - Kolmen kappaleen ongelma Kirjoita Matlabilla ohjelma, joka simuloi kolmen planeetan liikettä eri alkuarvoilla Alkuarvot annetaan ohjelmalle syötteenä joko tiedostosta tai näppäimistöltä Kullekin planeetalle annetaan massa sekä alkusijainti kolmiulotteisessa avaruudessa Kunkin planeetan lähtönopeus annetaan suuntavektorin kärjen kolmena koordinaattina Mitä kauempana tuo suuntavektorin kärki on planeetasta, sitä suurempi lähtönopeus on sen suuntaan Planeetat ovat pistemäisiä eivätkä siten koskaan törmää toisiinsa Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Pakollinen perusharjoitustyö - Kolmen kappaleen ongelma Visualisoi planeettojen liikeradat kolmiulotteisesti Koordinaattiakseleina ovat avaruuden koordinaatit (x, y , z) Planeettojen liike visualisoidaan kunkin planeetan ajan parametrisoimana kolmiulotteisena käyrää Eri planeettojen käyrät ovat eri värisiä Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Pakollinen perusharjoitustyö - Kolmen kappaleen ongelma Aja simulointeja erilaisilla kolmen planeetan ryhmillä ja alkunopeuksilla Kuinka monta luonteeltaan erilaista käyttäytymismallia löydät tämän systeemin dynamiikalle? Kuvaile kutakin löytämääsi mallia fysikaalisin käsittein: mitä planeetoille kussakin mallissa tapahtuu? Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Pakollinen perusharjoitustyö - Kolmen kappaleen ongelma Luo tilastolliset histogrammit planeettojen keskinäisille etäisyyksille ja nopeuksille Laske kullakin aika-askeleella planeettojen keskinäiset etäisyydet ja kunkin planeetan nopeus Tuota Matlabissa histogrammi jossa vähintään 20 pylvästä molemmille jakaumille koko simuloinnin ajalta Kerro kuinka voit - vai voitko lainkaan - tunnistaa havitsemasi erilaiset planeettojen käyttäytymismallit näiden histogrammien perusteella? Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Pakollinen perusharjoitustyö - Kolmen kappaleen ongelma Kirjoita työstäsi raportti (noin 10-20 sivua), jossa Kuvaat kolmen kappaleen ongelman matemaattisesti Kerrot kuinka muunsit sen Matlabilla ratkaistavaan muotoon Kuvaat sen ratkaisevan Matlab-koodisi Kuvaat ohjelmasi arkkitehtuurin (kukin moduuli erikseen) Liität mukaan ohjelmalistaukset ja m-tiedostot Kuvaat testaustapasi ja kerrot havaintosi tehtävässä esitettyihin kysymyksiin liittyen Harjoitustyön saa tehdä korkeintaan kolmen hengen ryhmässä Harjoitustyö palautetaan osoitteeseen mafyharjoitustyo@gmail.com 31.5.2015 mennessä Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä MATLABin käyttö sovelluksissa Sovellusten toteuttaminen Lisäharjoitustyö - 1 op lisää Valitse jokin sinua kiinnostava tekninen tai tieteellinen sovellusohjelmisto Kuvaa sen käyttöä ja toimintaa noin 10 sivun raportissa Esittele myös jokin konkreettinen ongelma, joka tuolla ohjelmalla on ratkaistu Tämä työ tehdään yksin Esiteltävä ohjelmisto on etukäteen hyväksytettävä luennoitsijalla Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen 1 2 3 4 5 Kurssin tavoitteet ja suorittaminen Kurssin tavoitteet Kurssin suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- ja toistolauseet Mitä on ohjelmointi? Ohjelman osat Muuttujat Käskyt Tiedostot Ohjelmointikielet ja Matlab Tallennus ja modulit Matriisilaskenta MATLABin käyttö sovelluksissa Pienimmän neliösumman sovitus Funktion minimointi Sovellusten toteuttaminen Matlabilla Differentiaaliyhtälöt Harjoitustyö(t) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen plot -komento plot-komentoa käytetään kaksiulotteisten kuvien tuottamiseen. Sen yksinkertaisin muoto on plot(x,y) tai plot(y) missä x ja y ovat vektoreita. Ensimmäinen muoto sijoittaa arvot x akselille X, ja arvot y akselille Y. Jälkimmäinen muoto käyttää vektorin alkion järjestyslukua akselina X. >> x=[1 2 3 5 7 7.5 8 10]; >> y=[2 6.5 7 7 5.5 4 6 8]; >> plot(x,y) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen plot-komennolla on valinnaisia parametreja, joilla voidaan säätää viivojen väriä ja tyyliä ja pistedatan symboleja. Tällöin komento saa muodon plot(x,y,’line specifiers’,... ’PropertyName’,’PropertyValue’) Viivan tyyli solid (default) dashed dotted dash-dot Tuomo Kauranne Koodi -. -. Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Viivan värin koodaus Viivan väri red green blue cyan magenta yellow black white Tuomo Kauranne Koodi r g b c m y k w Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Pistesymbolien koodit Pistesymboli plus sign circle asterisk point cross triangle diamond square Tuomo Kauranne Koodi + o * . x ˆ d s Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen PropertyName ja PropertyValue LineWidth – pistekoon suhteessa (oletusarvo 0.5) MarkerSize – pistekoon suhteessa MarkerEdgeColor – jokin värikoodi taulukosta MarkerFaceColor – jokin värikoodi taulukosta. Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Tilastodatan piirtäminen year sales 1988 8 1989 12 1990 20 1991 22 1992 18 1993 24 1994 27 >> yr=[1988:1994]; >> sle=[8 12 20 22 18 24 27]; >> plot(yr,sle,’--r*’,’linewidth’,2,’markersize’,12) Annetun funktion piirtäminen >> x=[-2:0.01:4]; >> y=3.5.^(-0.5*x).*cos(6*x); >> plot(x,y) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Monta kuvaajaa samaan kuvaan x=[-2:0.01:4]; y=3*x.^3-26*x+6; yd=9*x.^2-26; ydd=18*x; figure plot(x,y,’-b’,x,yd,’--r’,x,ydd,’:k’) figure plot(x,y,’-b’), hold on plot(x,yd,’--r’) plot(x,ydd,’:k’), hold off Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Kuvan muotoilu x=[-2:0.01:4]; y=3*x.^3-26*x+6; yd=9*x.^2-26; ydd=18*x; figure plot(x,y,’-b’,x,yd,’--r’,x,ydd,’:k’) xlabel(’arguments’) ylabel(’values’) title(’Funktio 3x^3-26x+6 ja sen ensimmäinen ... ja toinen derivaatta’) legend(’funktio’,’1. derivaatta’,’2. derivaatta’) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen function 3x3−26x+6 with its 1st and 2nd derivative 120 function 1st derivative 2nd derivative 100 80 values 60 40 20 0 −20 −40 −2 −1 0 1 arguments Tuomo Kauranne 2 3 Teknisen laskennan perusteet 4 Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Tekstin muotoilu Symboli voi esiintyä alaindeksinä ( ennen symbolia) tai yläindeksinä (^ ennen symbolia) Kreikkalaiset kirjaimet (Esim. \alpha, \Omega) Muotoilukomentoja: Rotation, FontAngle, FontName, FontSize, FontWeight, Color, BackgroundColor, EdgeColor, LineWidth Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Akseleiden käsittely Komento axis muuttaa akselien aluetta ja ulkoasua. axis([xmin,xmax,ymin,ymax]) – asettaa reunarvot x- ja y-akselille (xmin, xmax, ymin, ymax numeroin) axis equal – asettaa molemmille akseleille samat rajat axis square – pakottaa kuvan neliön muotoiseksi tight – poistaa ylimääräisen tilan akselien päistä grid on, grid off asettaa ruudukon päälle tai pois. Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Erikoiskomentoja semilogy(x,y) – log(y) akselilla x eli logaritminen y-akseli semilogx(x,y) – y akselilla log(x) eli logaritminen x-akseli loglog(x,y) – log(y) akselilla log(x) eli molemmat akselit logaritmisia errorbar – piirtää datapisteiden ympärille epävarmuusvälit bar – pystyhistogrammi barh – vaakahistogrammi stairs, stem, pie, hist, polar Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Kuvien talletus Paras tapa tallettaa kuva on kuvaikkunasta valittu Menu File −− > Export Setup. Tällöin kuvan kokoa ja fontteja voi säätää. Kuva voidaan tallettaa useassa eri formaatissa: jpeg, png, eps, pdf, jne. Kuvan voi tallettaa myös MATLAB-kuvana ja avata myöhemmin uudestaan ajamatta koodia uudestaan. Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen 3-D käyräkuvat Kolmiulotteinen käyräkuva on kuva jossa käyrä kulkee kolmiulotteisen pitejoukon kautta. Peruskomento plot3 on muotoa plot3(x,y,z,’LineSpecifiers’,’PropertyName’, ... PropertyValue) Kaikkien kolmen koordinaattivektorin tulee olla saman kokoisia. Käyrän muotoilu ja ominaisuudet kiinnitetään samoin kuin 2-D kuvissa. Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Jos esimerkiksi koordinaattijoukot x, y ja z annetaan parametrin t funktiona kaavalla √ √ x = t sin(2t), y = t cos(2t), z = 0.5t niin tämä käyrä voidaan piirtää parametrivälillä 0 ≤ t ≤ 6π: t=0:0.1:6*pi; x=sqrt(t).*sin(2*t); y=sqrt(t).*cos(2*t); z=0.5*t; figure plot3(x,y,z,’k’,’LineWidth’,1) grid on xlabel(’x’), ylabel(’y’), zlabel(’z’) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Pinnan tai ruudukon piirtäminen Pintaa tai ruudukkoa piirrettäessä MATLAB tarvitsee arvot x ja y vektoreina, ja lisäksi sen ruudukon hilapisteet jonka nämä määrittävät tasossa. Tämä voidaan toteuttaa komennolla meshgrid. Esimerkiksi x=-1:3; y=1:4; [X,Y]=meshgrid(x,y) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Pinnan tai ruudukon piirtäminen z-kordinaatin arvot ruudukon pisteissä voidaan antaa funktion avulla. Esimerkiksi xy 2 z= 2 x + y2 ja nyt Z = X.*Y.^2./(X.^2 + Y.^2) mesh(X,Y,Z), xlabel(’x’), ylabel(’y’), zlabel(’z’) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Muita 3-D kuvaajia surf(X,Y,Z) meshz(X,Y,Z) meshc(X,Y,Z) surfc(X,Y,Z) surfl(X,Y,Z) waterfall(X,Y,Z) contour3(X,Y,Z,n) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen 3-D kuvaajat erityisgeometrioissa Lisää tietoja MATLAB Helpistä sphere cylinder bar3 stem3 scatter3 pie3 Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen Monta kuvaa samaan ikkunaan Samassa kuvaikkunassa voi esittää monta kuvaa komennolla subplot. subplot(m,n,i) pilkkoo kuvaikkunan m-kertaa-n alikuvaan ja valitsee i:nnen alikuvan kullekin kuvalle. Kuvat numeroidaan kuvaikkunan yläriviltä alkaen, sitten toiselta riviltä jne. Joka alikuvalle pitää antaa erillinen subplot-komento. Sen jälkeen kullekin annetaan tavallinen kuvanpiirtokomento plot parametreineen. Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen t = 0:pi/20:2*pi; [x,y] = meshgrid(t); subplot(2,2,1) plot(sin(t),cos(t)) axis equal subplot(2,2,2) z = sin(x)+cos(y); plot(t,z) axis([0 2*pi -2 2]) subplot(2,2,3) z = sin(x).*cos(y); plot(t,z) axis([0 2*pi -1 1]) subplot(2,2,4) z = (sin(x).^2)-(cos(y).^2); plot(t,z) axis([0 2*pi -1 1]) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Kuvaajien MATLABin piirtäminen käyttö sovelluksissa Sovellusten toteuttaminen 1 2 0.5 1 0 0 −0.5 −1 −1 −1 −0.5 0 0.5 −2 1 1 1 0.5 0.5 0 0 −0.5 −0.5 −1 0 2 4 6 Tuomo Kauranne −1 0 2 4 6 0 2 4 6 Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Yksi- MATLABin ja moniulotteinen käyttöminimointi sovelluksissa Sovellusten toteuttaminen 1 2 3 4 5 Kurssin tavoitteet ja suorittaminen Kurssin tavoitteet Kurssin suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- ja toistolauseet Mitä on ohjelmointi? Ohjelman osat Muuttujat Käskyt Tiedostot Ohjelmointikielet ja Matlab Tallennus ja modulit Matriisilaskenta MATLABin käyttö sovelluksissa Pienimmän neliösumman sovitus Funktion minimointi Sovellusten toteuttaminen Matlabilla Differentiaaliyhtälöt Harjoitustyö(t) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Yksi- MATLABin ja moniulotteinen käyttöminimointi sovelluksissa Sovellusten toteuttaminen Esimerkki: Yhden muuttujan funktion minimointi Gilat, s. 292-293 Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Yksi- MATLABin ja moniulotteinen käyttöminimointi sovelluksissa Sovellusten toteuttaminen Esimerkki: Yhden muuttujan funktion numeerinen integrointi Gilat, s. 294-296 Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Yksi- MATLABin ja moniulotteinen käyttöminimointi sovelluksissa Sovellusten toteuttaminen Moniulotteinen minimointi Myös usean muuttujan funktion minimoinnissa voi käyttää fminsearch-funktiota Minimoidaan esimerkkinä ns. Rosenbrockin banaanifunktio Banaanifunktio on kahden muuttujan funktio Esimerkki f (x, y ) = 100(y − x 2 )2 + (1 − x)2 Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Yksi- MATLABin ja moniulotteinen käyttöminimointi sovelluksissa Sovellusten toteuttaminen Moniulotteinen minimointi Rosenbrockin funktio koostuu kapeasta banaaninmuotoisesta ’kanjonista’, jonka pohjalla funktio on melkein tasainen Tällainen funktio on vaikea numeeriselle minimoinnille Minimoija ei meinaa löytää ’kanjonia’ Ja jos se sen löytää, sitä häiritsee kanjonin kaarevuus: minimoijat etenevät suoria pitkin Rosenbrockin funktiota käytetään siksi usein minimointimenetelmien testaamiseen Se on nopea ja helppo laskea ja visualisoida Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Yksi- MATLABin ja moniulotteinen käyttöminimointi sovelluksissa Sovellusten toteuttaminen Matemaattinen mallinnus Matemaattinen mallinnus perustuu luonnonlakien numeeriselle simuloinnille Tavallisimmat luonnonlait ovat säilymislakeja: massan, liikemäärän, varauksen,... Ne esitetään joko integraalimuodossa tai differentiaaliyhtälöinä Differentiaaliyhtälöt soveltuvat hyvin numeerisesti ratkaistavaksi Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T 1 2 3 4 5 Kurssin tavoitteet ja suorittaminen Kurssin tavoitteet Kurssin suorittaminen Ohjelmointi MATLAB-ympäristössä Ehto- ja toistolauseet Mitä on ohjelmointi? Ohjelman osat Muuttujat Käskyt Tiedostot Ohjelmointikielet ja Matlab Tallennus ja modulit Matriisilaskenta MATLABin käyttö sovelluksissa Pienimmän neliösumman sovitus Funktion minimointi Sovellusten toteuttaminen Matlabilla Differentiaaliyhtälöt Harjoitustyö(t) Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Varusohjelmistot Kussakin toimintaympäristössä käytetyt yleiset työskentely-ympäristöt Toimistotyö: tekstinkäsittely, taulukkolaskenta Sulautetut ohjausjärjestelmät: ohjelmoitavat logiikat Suunnittelutyö: sovellusalakohtaiset ohjelmistot Paikkatieto- eli GIS-järjestelmät 3D mallinnusjärjestelmät Peligeneraattorit Simulointijärjestelmät Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Sovelluskohtaiset ohjelmistot Kuhunkin tekniseen tehtävään oma ohjelmisto, kuten Virtausten simulointi voimalan polttokattilassa Sähkölinjojen suunnittelun lujuuslaskenta Rakennusten mittaaminen laserkeilaimella Rakennusten sähkösuunnittelu ja komponenttien valinta ja mitoitus Sähkökenttien simulointi mobiiliverkon antennien sijoittamiseksi Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Räätälöidyt ohjelmistot Toteutetaan asiakasyrityksen antaman vaatimusmäärittelyn pohjalta tiettyä toimintoa varten Esimerkiksi metsäautoteiden tai ojitusten suunnittelu Metsähallituksen metsissä Vaatii ammattitaitoista projektipäällikköä Osaamisalana ohjelmistotuotanto Toteuttajina yleensä tietotekniikan/tietojenkäsittelyn ammattilaiset Asiakasprojektipäällikkönä usein insinööri tai muu sovelluskohteen ammattilainen Yhä useammin ohjelmiston käyttöliittymänä on selain Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Tietokannat Suurten tietomäärien tallentaminen eri tyyppisiä hakuja varten tiedon esitysrakennetta hyväksi käyttäen Tietokanta koostuu tietueista Tietue koostuu kentistä Kunkin tietueen kukin kenttä sisältää arvon, esimerkiksi tekstin tai luvun Tietokannasta voidaan hakea tietueita loogisin ehdoin jotka kohdistuvat kenttien arvoihin Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Tietokannat Esimerkki tietokannoissa yleisestä XML-formaatista < ohjelmointiolio ominaisuus=”arvo” > ... </ohjelmointiolio> Esimerkki SQL-hausta Etsi kaikki < Opiskelija >’t joiden kentät täyttävät ehdot: Opiskelija.sukupuoli=”nainen” Opiskelija.opintopisteet>10 Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Tietokannat Tietokannoista haetaan tietoa SQL-kielellä joka vastaa 1. kertalukun logiikkaa Tuloksena kaikki ne tietokannan tietueet, jotka vastaavat haun ehtoja Käytetään osana ohjelmistoja, eivät näy suoraan käyttäjälle Tyypillisiä tietokantoja: Oracle, SQL Server, MySQL, PostGRES Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Hakukoneet - esimerkki pilvipalvelusta Eivät hae kaikkia ehdot täyttäviä tietoja, vaan hakutermien kannalta relevanteimpia tietoja Voivat hakea webistä tai yksittäiseltä webbisaitilta Tai myös omalta tietokoneelta Käyttäjänä tyypillisesti ihminen tai toinen web-sovellus Esimerkkejä: Google tai Google Desktop, Live Search, Baidu Yhä useampi sovellus rakennetaan suoraan Internetin yli käytettäväksi. Esimerkki: Google Maps - vrt. Google Earth! Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Sovelluksen modulaarinen rakentaminen Kukin loogisesti erillinen ohjelman osa kannattaa sijoittaa omaan moduliinsa Tällöin ohjelmaa voi kehittää pala palalta ja turvallisesti tutkia ratkaisuveihtoehtoja Muuten vaarana on ”spagettikoodi”, jossa jokainen muutos saa aikaan outoja sivuvaikutuksia Dokumentoi koodisi niin itsekin tiedät mitä koodasit Ohjelman versiointi ja versioiden ajoittainen jäädyttäminen Rakenteiset ohjelmistoympäristöt, kuten Matlabin struct Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Esimerkkejä sovellusohjelmistoista CSC:n sovellusohjelmistot Linkki http://www.csc.fi/tutkimus/ohjelmistot ja tietokannat/index html Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Esimerkkejä sovellusohjelmistoista Discovery - molekyylikemia Linkki http://accelrys.com/products/discovery-studio/ Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Esimerkkejä sovellusohjelmistoista CFX - Suurnopeusvirtaukset Linkki http://www.ansys.com/products/newfeatures/fluids-post.asp Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Esimerkkejä sovellusohjelmistoista Fluent - monifaasivirtaukset Linkki http://www.fluent.com/solutions/examples/x150.htm Linkki http://www.fluent.com/solutions/power/pow1.htm Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Esimerkkejä sovellusohjelmistoista LMS Virtual Lab - rakenneanalyysi Linkki http://www.lmsintl.com/simulation/virtuallab/motion Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Esimerkkejä sovellusohjelmistoista GRMlibrary - kielitiede ja kieliopit Linkki http://www.csc.fi/english/research/software/grmlibrary Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Esimerkki vektorilaskusta Matlabilla Laske voimien resultantti kun kappaleeseen kohdistuu kolme voimaa Voimien kulmat massakeskipisteestä laskien: −20o , +30o ja +143o Voimien suuruudet: 400 N, 500 N ja 700 N Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Esimerkki: Ammuksen lentorata Gilat, s. 182-184 Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Esimerkki: Ammuksen lentorata Halutaan laskea ja piirtää tykin ammuksen lentorata Lähtötietoina ammuksen lähtönopeus v0 ja lähtökulma θ Lentoradan koordinaatit voidaan ratkaista erikseen sen pituudelle x ja korkeudelle y x-koordinaatti muuttuu tasaisesti nopeudella v0 cos θ y -koordinaatti kasvaa aluksi nopeudella v0 sin θ, kunnes painovoima −gt kääntää sen laskuun Ilmanvastusta ei oteta huomioon Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Esimerkki: Ammuksen lentorata Näillä tiedoilla lentoradan korkeus y toteuttaa yhtälön y = v0 sin θt − 21 gt 2 Lentoradan pituus x toteuttaa yhtälön x = v0 cos θt Koska koordinaatit käyttäytyvät polynomiaalisesti ajan suhteen, voidaan koordinaatit ratkaista analyyttisesti Ratkaisu differentiaaliyhtälönä on kuitenkin yleisempi ratkaisutapa, joka mahdollistaa esimerkiksi ilmanvastuksen mallintamisen tulevaisuudessa Toteutetaan annettu tehtävä siksi kahdella eri tavalla: analyyttisesti ja differentiaaliyhtälöllä Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Esimerkki: AC/DC eli tasasuuntaaja Halutaan simuloida tasasuuntaajan toimintaa AC/DC-piiri koostuu jännitelähteestä, diodista, kondensaattorista ja vastuksesta (kuva Gilat s. 225) Virtalähteen jännite on v0 sin(ωt), missä v0 on lähtöjännitteen amplitudi, ω = 2πf ja f on taajuus Virtalähde sekä tuottaa virtaa vastukselle että varaa kondensaattoria Vaihtovirran jännitteen kääntyminen laskuun laukaisee diodin, jolloin virtalähde kytkeytyy irti ja virta vastukselle tulee tämän vaiheen aikana kondensaattorista Tuomo Kauranne Teknisen laskennan perusteet Kurssin tavoitteet ja suorittaminen Ohjelmointi MATLAB-ympäristössä Varusohjelmistot MATLABin käyttö Sovellusohjelmistot sovelluksissa Sovellusten Räätälöidyt toteuttaminen ohjelmistot T Esimerkki: AC/DC eli tasasuuntaaja Kun diodi on kytkettynä, vastuksen jännite on vR = v0 sin(ωt) ja sen virta iR = v0 sin(ωt)/R, missä R on vastus Kondensaattorin virta on iC = ωCv0 cos(ωt) missä C on kapasitanssi Kun diodi on kytketty irti, vastuksen jännite on vR = v0 sin(ωtA )e −(t−tA )/(RC ) Ajanhetket jolloin diodi kytkeytyy päälle tai irti lasketaan ehdosta iR = −iC Mallinnetaan tasasuuntaajan käyttäytyimistä kun 0 ≤ t ≤ 70 ms. Vastus on 1800 Ω, virtalähteen jännite 12 V ja vaihtovirran taajuus 60 Hz. Verrataan tasasuuntaajan toimintaa kahdella eri kondensaattorin kapasitanssilla: C = 45µF ja C = 10µF Tuomo Kauranne Teknisen laskennan perusteet
© Copyright 2024