Ohjelman käynnistäminen

Samankaltaiset tiedostot
Matlab-perusteet. Jukka Jauhiainen. OAMK / Tekniikan yksikkö. Hyvinvointiteknologian koulutusohjelma

Valitse ruudun yläosassa oleva painike Download Scilab.

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

Matlab-perusteet Harjoitustehtävien ratkaisut

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

Matriiseista. Emmi Koljonen

BL40A0000 Säätötekniikan ja signaalinkäsittelyn

BM20A0700, Matematiikka KoTiB2

Käänteismatriisin ominaisuuksia

Matemaattiset ohjelmistot A. Osa 2: MATLAB

Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37

Talousmatematiikan perusteet: Luento 11. Lineaarikuvaus Matriisin aste Käänteismatriisi

Matematiikka B2 - Avoin yliopisto

Matlabperusteita, osa 1. Heikki Apiola Matlab-perusteita, osa 1. Heikki Apiola. 12. maaliskuuta 2012

1 Matriisit ja lineaariset yhtälöryhmät

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Opiskelijan pikaopas STACK-tehtäviin. Lassi Korhonen, Oulun yliopisto

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

Zeon PDF Driver Trial

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 1 / vko 44

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Matematiikka B2 - TUDI

Johdatus tekoälyn taustalla olevaan matematiikkaan

Matriisit ja vektorit Matriisin käsite Matriisialgebra. Olkoon A = , B = Laske A + B, , 1 3 3

Harjoitus 10: Mathematica

MS-A0102 Differentiaali- ja integraalilaskenta 1

1.1. Määritelmiä ja nimityksiä

ATK tähtitieteessä. Osa 2 - IDL perusominaisuudet. 12. syyskuuta 2014

Lineaariset kongruenssiyhtälöryhmät

1.1 Vektorit. MS-A0004/A0006 Matriisilaskenta. 1.1 Vektorit. 1.1 Vektorit. Reaalinen n-ulotteinen avaruus on joukko. x 1. R n.

Talousmatematiikan perusteet: Luento 10. Lineaarikuvaus Matriisin aste Determinantti Käänteismatriisi

plot(f(x), x=-5..5, y= )

Matlabin perusteet. 1. Käyttöliittymä:

Talousmatematiikan perusteet: Luento 9. Matriisien peruskäsitteet Yksinkertaiset laskutoimitukset Transponointi Matriisitulo

Insinöörimatematiikka D

Talousmatematiikan perusteet: Luento 10. Matriisien peruskäsitteet Yksinkertaiset laskutoimitukset Matriisitulo Determinantti

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

Kurssin loppuosassa tutustutaan matriiseihin ja niiden käyttöön yhtälöryhmien ratkaisemisessa.

T Sovellusohjelmat Matlab osa 4: Skriptit, funktiot ja kontrollirakenteet

Tässä dokumentissa on ensimmäisten harjoitusten malliratkaisut MATLABskripteinä. Voit kokeilla itse niiden ajamista ja toimintaa MATLABissa.

Lineaarialgebra ja matriisilaskenta I

2.5. Matriisin avaruudet ja tunnusluvut

Tehtäväsarja I Kertaa tarvittaessa materiaalin lukuja 1 3 ja 9. Tarvitset myös luvusta 4 määritelmän 4.1.

Insinöörimatematiikka D

802118P Lineaarialgebra I (4 op)

Kompleksiluvut., 15. kesäkuuta /57

Scilab ohjelman alkeisohjeet

Heikki Apiola, Juha Kuortti, Miika Oksman. 5. lokakuuta Matlabperusteita, osa 1

Matemaattiset ohjelmistot 1-2 ov, 2-3 op

KOMPLEKSILUVUT C. Rationaaliluvut Q. Irrationaaliluvut

Lineaarialgebra II, MATH.1240 Matti laaksonen, Lassi Lilleberg

Ville Turunen: Mat Matematiikan peruskurssi P1 1. välikokeen alueen teoriatiivistelmä 2007

Valintakoe

Lineaarinen yhtälöryhmä

Gaussin ja Jordanin eliminointimenetelmä

Numeeriset menetelmät

Harjoitus 1 -- Ratkaisut

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät

1 Ominaisarvot ja ominaisvektorit

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Harjoitus 1: Johdatus matemaattiseen mallintamiseen (Matlab)

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

Luvuilla laskeminen. Esim. 1 Laske

MS-A0004/MS-A0006 Matriisilaskenta Laskuharjoitus 6 / vko 42

Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Octave-opas. Mikä on Octave ja miksi? Asennus

Numeeriset menetelmät TIEA381. Luento 3. Kirsi Valjus. Jyväskylän yliopisto. Luento 3 () Numeeriset menetelmät / 45

2.1.4 har:linyryhmat03. Octavella. Katso ensin esimerkit???? esim:yroctave01 Octaven antamat vastausehdotukset.

Numeeriset menetelmät

y z = (x, y) Kuva 1: Euklidinen taso R 2

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Matriisilaskenta Luento 10: Polaarimuoto ja kompleksilukujen geometriaa

0. Kertausta. Luvut, lukujoukot (tavalliset) Osajoukot: Yhtälöt ja niiden ratkaisu: N, luonnolliset luvut (1,2,3,... ) Z, kokonaisluvut

Vektoreiden A = (A1, A 2, A 3 ) ja B = (B1, B 2, B 3 ) pistetulo on. Edellisestä seuraa

2.8. Kannanvaihto R n :ssä

Harjoitus 1 -- Ratkaisut

Matikkapaja keskiviikkoisin klo Lineaarialgebra (muut ko) p. 1/81

Neliömatriisin adjungaatti, L24

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Matriisilaskenta Laskuharjoitus 5 - Ratkaisut / vko 41

Ominaisarvoon 4 liittyvät ominaisvektorit ovat yhtälön Ax = 4x eli yhtälöryhmän x 1 + 2x 2 + x 3 = 4x 1 3x 2 + x 3 = 4x 2 5x 2 x 3 = 4x 3.

Differentiaali- ja integraalilaskenta 1. Tietokoneharjoitus: ratkaisut

Käänteismatriisin. Aiheet. Käänteismatriisin ominaisuuksia. Rivioperaatiot matriisitulona. Matriisin kääntäminen rivioperaatioiden avulla

Matikkapaja keskiviikkoisin klo Lineaarialgebra (muut ko) p. 1/210

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Lineaarialgebra (muut ko)

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 3 /

5 OMINAISARVOT JA OMINAISVEKTORIT

Ohjelmoinnin jatkokurssi, kurssikoe

Matriisien tulo. Matriisit ja lineaarinen yhtälöryhmä

Johdatus Ohjelmointiin

Harjoitus 3 -- Ratkaisut

Muuttujan sisällön näet kirjoittamalla sen nimen ilman puolipistettä

Numeeriset menetelmät

Algebra. 1. Ovatko alla olevat väittämät tosia? Perustele tai anna vastaesimerkki. 2. Laske. a) Luku 2 on luonnollinen luku.

Lineaariset yhtälöryhmät ja matriisit

Transkriptio:

>> why Because he obeyed a good and young and smart and terrified and rich and rich and not very good and good and bald and not excessively tall and good programmer. Tässä materiaali on tarkoitettu insinööriopiskelijoille Matlabohjelmoinnin opiskeluun. Missään oppaassa ei voi opettaa kaikkia asioita, ei tässäkään. Pyrkimys on ollut käydä läpi perusteellisemmin niitä asioita, jotka ovat osoittautuneet tarpeellisiksi vuosien mittaan. Matlabin help on oikeasti hyödyllinen. Sitä kannattaa käyttää. Ja omaa mielikuvitusta. Oulu 25.1.2008 Jukka Jauhiainen Ohjelman käynnistäminen Nämä ohjeet pätevät Tekniikan yksikön verkosta käynnistyvään Matlab7-versioon. Ohjelmaa voi ajaa suoraan verkosta ilman minkäänlaisia asennuksia paikallisille koneille, joten se toimii (ainakin periaatteessa) missä tahansa Tekniikan yksikön verkkoon kytketystä koneesta. Verkosta saattaa löytyä vanhempiakin versioita (kuten esim. Matlab6p), mutta ne eivät toimi! Todennäköistä on, että Matlab ei löydy Windowsin START-valikosta tai työpöydältä. Yleensä se on käynnistettävä Windows Explorerin kautta klikkaamalla Tools -> Map Network Drive. Folderiksi valitaan \\s\apps\kotka\matlab7 Copyright Jukka Jauhiainen 2008 1

Kyseisestä hakemistosta löytyy ikoni, jota tuplaklikkaamalla ohjelma käynnistyy. Joskus ohjelma ei käynnisty, vaan ruutuun ilmestyy "Licence Manager Error". Tässä tilanteessa ota yhteys ATK-tukeen (ensisijaisesti Pekka Hämäläinen). Käynnistyminen saattaa kestää verkon yli jonkin aikaa, joten ole kärsivällinen. Niin kauan kuin vasemmanpuoleisessa ikkunassa on teksti "initializing", on lataus käynnissä. Käyttöliittymä Käynnistyksen jälkeen käytössä on kolme ikkunaa, joihin osaan voi valita eri toimintoja. Tärkein ikkuna on komentoikkuna (Command Window). Sinne käyttäjä voi kirjoittaa haluamiaan komentoja. Oheisessa esimerkissä on lisäksi Workspaceikkuna, jossa näkyy sillä hetkellä käytössä olevat muuttujat. Muuttujaa tuplaklikkaamalla saa näyttöön Excel-tyylisen taulukon, jossa näkyy muuttujan arvot. Kolmas esimerkin ikkuna on Command History, jossa näkyy lista edellisistä komennoista. Ne voi toistaa tuplaklikillä. Myös unix-maailmasta tuttu nuoli ylös/alas toimii komentoikkunassa. Muitakin ikkunoita on, ne on valittavissa yläpalkin viewnapin takaa. Yksittäisten komentojen lisäksi on mahdollista kirjoittaa hyvinkin monimutkaisia komentosarjoja tiedostoihin (ns. M-tiedostot). Näin tehtyjä uusia funktioita voidaan käyttää kuin mitä tahansa Matlabin sisäänrakennettuja valmisfunktioita. Copyright Jukka Jauhiainen 2008 2

Taustaa Nimi "matlab" tulee sanoista Matrix Laboratory. Matlab on siis suunniteltu ensisijaisesti matriisilaskentaan. Tämän ei pidä antaa pelottaa vaikka matriisin käsite olisikin outo. Vektori on yksiulotteinen (eli 1xn tai nx1) matriisi. Yksittäinen luku (eli skalaari) voidaan ajatella 1x1-matriisiksi. Esimerkiksi 3x3-matriisi on joukko lukuja, jotka on järjestetty 3 riviksi ja 3 sarakkeeksi. Matlab on tulkkaava ohjelmointikieli, eli se lukee rivi riviltä käyttäjän antamat komennot ja suorittaa niitä sitä mukaa. Virhetilanteessa ohjelman suoritus keskeytyy virheilmoitukseen. Tulkkavuudesta johtuu, että ohjelmien suoritus on hidasta verrattuna "oikeisiin" kääntäviin ohjelmointikieliin (esim. C).. Matlabin suosio perustuu pitkälti siihen, että siihen on saatavissa lukuisa laajennusosia, Toolboxeja, joiden ansiosta kaikkea ei tarvitse koodata itse alusta asti. Toolboxeja on saatavissa mm. signaalinkäsittelyyn, kuvankäsittelyyn, optimointiin, systeemisuunnitteluun jne. Niitä tulee myös koko ajan lisää. Tehtävä: Käy ohjelman tekijän MathWorks Inc:n kotisivulla. Kokeile kirjoittaa komentoriville komentoja help, helpwin, info ja demo. Tehtävä: Mitä komennot whos, cd, pwd ja clear tekevät? Peruskäsitteitä Copyright Jukka Jauhiainen 2008 3

Muuttujat ja peruslaskutoimitukset Yksinkertaiselle muuttujalle voidaan sijoittaa arvo samanlaisella sijoituslauseella kuin ohjelmoinnissa. Esimerkiksi sijoitus >>a=1 määrittelee muuttujan a, jolle annetaan arvoksi 1. Muuttujien arvot näkyvät Workspace-ikkunassa ja ne voidaan tulostaa myös kirjoittamalla muuttujan nimi komentoriville ja painamalla ENTER. Peruslaskutoimitukset suoritetaan +, -, * ja /-operaattoreilla. Esimerkiksi komento a=a+1 lisää muuttujan a arvoon 1. Vastaavasti c=a-b laskee muuttujien a ja b erotuksen ja tallentaa tuloksen muuttujaan c. Tehtävä 3: Määrittele muuttujat a ja b, anna niille vaikkapa arvot 3 ja 2 ja kokeile peruslaskutoimituksia niillä. Rivin lopussa oleva puolipiste (;) estää tulostuksen näytölle. Tämä voi olla tarpeen jos tulostusta on paljon. Puolipiste ei toimi Matlabissa samalla tavalla kuin C:ssä. Se ei ole pakollinen rivin lopussa, mutta jos samalle komentoriville kirjoittaa useamman komennon, toimii puolipiste komentojen erottimena. Esimerkiksi >>a=1 >>b=2 >>a+b on sama asia kuin >>a=1;b=2;a+b Tulostaa summan ans-nimiseen muuttujaan tallennettuna. Ans sisältää aina viimeisimmän komennon tulostuksen. Jos tulos halutaan tallentaa pysyvämmin, se kannattaa sijoittaa johonkin toiseen muuttujaan, esim. >>c=a+b Valmisfunktioita Matlabissa on joukko sisäänrakennettuja matemaattisia funktioita, joista tavallisimpia ovat: sqrt(x) = luvun x neliöjuuri x^n = luvun x n:s potenssi exp(n) = e n Copyright Jukka Jauhiainen 2008 4

log(n) = luonnollinen logaritmi luvusta n log10(n) = 10-kantainen logaritmi luvusta n sin(x), cos(x), tan(x) = trigonometriset funktiot, argumentti oltava radiaaneina asin(x), acos(x), atan(x) = trigonometriset käänteisfunktiot. Kompleksiluvut Kompleksiluku määritellään kirjoittamalla reaali- ja imaginääriosat summamuodossa. Matlab tunnistaa sekä i:n että j:n imaginääriyksiköksi. >> z=3+4i Tehtävä: Kokeile korottaa pelkkä vakio i tai j toiseen potenssiin. Mikä on tulos? Kompleksilukuihin liittyviä funktioita: Liittoluku: conj(z) Itseisarvo abs(z) Reaaliosa real(z) Imaginääriosa imag(z) Vaihekulma angle(z) Tehtävä: Laske luvun z=3+4i liittoluku, itseisarvo, reaaliosa, imaginääriosa ja vaihekulma. Copyright Jukka Jauhiainen 2008 5

Yksiulotteiset vektorit Vektori on taulukko, jossa on lukuja peräkkäin. Matlabissa taulukkojen indeksointi alkaa aina YKKÖSESTÄ, ei nollasta kuten esimerkiksi C:ssä. Vektori voidaan määritellä komennolla: >>x=[eka:askel:vika]; missä eka on vektorin ensimmäinen alkio, askel sanoo paljonko arvoa kasvatetaan ja vika on viimeinen alkio. Askeleen voi jättää pois, jolloin oletus on 1. Vektorin tiettyyn alkioon viitataan antamalla vektorin nimi ja sen perään suluissa numero, joka kertoo, monenteenko alkioon viitataan. Siis >>x(n) Tulostaa vektorin x n:nnen alkion. Kaksoispisteen avulla voidaan määritellä tulostettavaksi joukko peräkkäisiä alkioita: >>x(n1:n2) Tulostaa vektorin sisällön alkaen indeksistä n1 ja päättyen indeksiin n2. Esimerkki: Tehdään vektori x, joka saa arvot 0:sta 10:een 0.1 välein. >>x=[0:0.1:10]; x:n sisällön voi tarkistaa kirjoittamalla komentoikkunaan x, tai tuplaklikkaamalla sitä Workspacessa (sen pitäisi ilmestyä sinne tuon komennon jälkeen). Tulostetaan seuraavaksi x:n 1. alkio : >>x(1) 0 Ellei jonkin operaation tulosta sijoiteta johonkin muuttujaan, Matlab sijoittaa sen automaattisesti muuttujaan ans. Se siis sisältää aina viimeisimmän laskutoimituksen tuloksen. Vastaavasti komento >>a=x(1) sijoittaa x:n ensimmäisen alkion arvon muuttujaan a (joka ilmestyy Workspaceen). Katsotaan seuraavaksi, mitä x:n 10 ensimmäistä alkiota ovat: >>x(1:10) Columns 1 through 7 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 Copyright Jukka Jauhiainen 2008 6

Columns 8 through 10 0.7000 0.8000 0.9000 Vektorin alkioihin voidaan myös sijoittaa arvoja. Esimerkiksi tässä asetetaan vektorin x 10 ensimmäiseen alkioon 0: >>x(1:10)=0; Pysty- ja vaakavektorit Matlabissa vektori voidaan esittää joko pysty- tai vaakavektorina. Oletusarvona Matlab tekee vaakavektorin. Sen voi muuttaa pystyvektoriksi eli transponoida komennolla x : >> x=[1:3] x = 1 2 3 >> x' 1 2 3 Tehtävä: Tee vektori x, joka sisältää kokonaisluvut 1-5 ja vektori y, joka sisältää luvut 6 10. Kokeile yhteen-, vähennys, kerto- ja jakolaskuja. Mitä tapahtui? Summa ja erotus on määritelty matemaattisesti vektoreille siten, että operaatio kohdistuu vektorien vastinalkioihin. Sen sijaan tulon ja osamäärän tapauksessa Matlab pyrkii laskemaan aina matriisitulon. Tehtävä: Selitä, mitä seuraavat operaatiot tekevät: x*y x *y Vastinalkioiden kerto- ja jakolasku on toki myös mahdollista. Se määritellään laittamalla operaattorin eteen PISTE. Siis esimerkiksi x.*y. Tehtävä: Laske vektorien x ja y alkioittainen tulo ja osamäärä. Tehtävä: Tee Matlabilla vektorit, jossa on alkiot Matriisit a) 2, 4, 6, 8,..., 20 b) 10, 8, 6, 4, 2, 0, -2, -4,..., -10 c) 1, 1/2, 1/3, 1/4, 1/5,..., 1/10 d) 0, 1/2, 2/3, 3/4, 4/5,..., 9/10 Matriisi on kaksiulotteinen taulukko. Matriisin alkiot annetaan hakasulkujen sisällä rivi kerrallaan puolipisteillä erotettuna. Copyright Jukka Jauhiainen 2008 7

Esimerkki: a=[1 2 3; 4 5 6; 7 8 9] a = 1 2 3 4 5 6 7 8 9 >> a' 1 4 7 2 5 8 3 6 9 Matriisin transponointi siis kääntää rivit sarakkeiksi ja päinvastoin. Peruslaskutoimituksiin matriiseilla pätevät samat periaatteet kuin edellä vektoreihin. Summa ja erotus on siten määritelty vain kahden samankokoisen matriisin kesken vastinalkioiden välillä. Matriisin a käänteismatriisi voidaan laskea komennolla inv(a). Tehtävä: Käytä edellä määriteltyä matriisia a. Tee myös vaakavektori b, joka sisältää luvut 1, 2 ja 3. Mitä laskutoimituksia a:n ja b:n välillä voi tehdä? Tehtävä: Matlabissa on valmiina joukko komentoja, joilla voidaan tehdä tiettyjä erikoismatriiseja. Tällaisia on esimerkiksi ones(n), zeros(n), eye(n), magic(n) jne. Mitä nämä komennot tekevät? Kirjaimen n tilalla on oltava positiivinen kokonaisluku. Lineaarisen yhtälöryhmän ratkaiseminen Lineaarinen yhtälöryhmä ratkeaa MATLABin takakeno-operaatiolla. Jos yhtälöitä on enemmän kuin tuntemattomia (kerroinmatriisin aste on pienempi kuin tuntemattomien lukumäärä) saadaan pienimmän neliösumman ratkaisu. Yhtälöryhmä 10x 1-7x 2 = 7-3x 1 +2x 2 +6x 3 = 4 5x 1 -x 2 +5x 3 = 6 voidaan esittää matriisimuodossa Ax=b. MATLABissa muodostetaan ratkaisua varten kerroinmatriisi A ja oikean puolen vektori b:» A=[10,-7,0;-3,2,6;5,-1,5] A = 10-7 0-3 2 6 5-1 5» b=[7,4,6]' b = 7 4 6 Copyright Jukka Jauhiainen 2008 8

Yhtälöryhmä ratkeaa takakenolla» x=a\b x = 0-1 1 Tehtävä: Ratkaise Matlabilla yhtälöryhmä x 1 + x 2 + x 3 = 10 0.45x 1 + 0.55x 2 + 0.7x 3 = 6.45 0.35x 1 + 0.3x 2 + 0.2x 3 = 2.35 Tehtävä: Maalifirmalla on ylijäämä neljää erilaista vihreän sävyn maalia, joissa on neljää pigmenttiä prosentteina seuraavasti: Maali 1 Maali 2 Maali 3 Maali 4 Pigmentti 1 80 0 30 10 Pigmentti 2 0 80 10 10 Pigmentti 3 16 20 60 72 Pigmentti 4 4 0 0 8 Nämä maalit halutaan sekoittaa niin, että saadaan muodikkaampaa väriä, jossa pigmenttejä on suhteessa 40:27:31:2. Missä suhteessa maalit on sekoitettava? Muodosta ongelman ratkaiseva yhtälöryhmä ja ratkaise se Matlabilla. Muita matriisilaskentaan liittyviä toimintoja Suuri joukko valmiita matriisifunktioita on käytettävissä. Esimerkiksi matriisin determinantti lasketaan funktion det avulla:» det(a) 27 käänteismatriisi, inv» inv(a) -1.7778 0.8889-0.1111 1.5556-0.7778 0.2222-0.1111 0.2222-0.1111 matriisin aste, ominaisarvot jne.» rank(a) 3» eig(a) Copyright Jukka Jauhiainen 2008 9

-0.3884 12.1229-5.7345 Copyright Jukka Jauhiainen 2008 10