luennot - Noppa - Lappeenrannan teknillinen yliopisto

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
[email protected] 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