MATEMAATTISET OHJELMISTOT. Syksy 2012

Koko: px
Aloita esitys sivulta:

Download "MATEMAATTISET OHJELMISTOT. Syksy 2012"

Transkriptio

1 MATEMAATTISET OHJELMISTOT Syksy 2012 Matlab-luennot, 1. osa Sisältö 1 Johdanto 1 2 Käyttöliittymä 3 3 Käytön perusteita 4 4 Matriiseista Muodostaminen Valmismatriisit Indeksointi Laskutoimitukset Alkioittaiset operaatiot Hieman lineaarialgebraa 19 1 Johdanto Matlab on interaktiivinen numeerisen laskennan ohjelmisto. Se on tehokas, monipuolinen ja laajalti käytössä teollisuudessa, yliopistoissa ja muissa tutkimuslaitoksissa. Matlabissa yhdistyvät laskentatehokkuus, ohjelmoitavuus ja visualisointi. Matlabin ensimmäisen version kirjoitti Fortran-ohjelmointikielellä Cleve Moler 1970-luvun lopulla. Ohjelman saavutettua suosiota sekä opetus- että tutkimuskäytössä se kirjoitettiin uudelleen C-ohjelmointikielellä. Ensimmäinen kaupallinen versio, Matlab 1.0, julkaistiin vuonna Alunperin Matlab kehitettiin matriisilaskennan ohjelmistoksi (MATrix LABoratory), mutta nykyään se on laajentunut hyvin monelle sovellusalueelle. Matlabille on tehty suuri joukko ns. toolboxeja, joilla on laajennettu Matlabin toiminnallisuutta uusille alueille. Toolboxit on kirjoitettu Matlabin omalla ohjelmointikielellä ja niitä on tarjolla signaalin- ja kuvankäsittelyyn, optimointiin, sumeaan logiikkaan, neuroverkkoihin, osittaisdifferentiaaliyhtälöiden ratkaisemiseen ym. Tällä kurssilla ei kuitenkaan käytetä mitään Matlabin toolboxeista, koska niiden saatavuus voi vaihdella suuresti. 1

2 Matlabilla on useita etuja perinteisiin numeerisen laskennan työkaluihin (esim. Fortran- ja C-ohjelmointi) verrattuna: Ohjelmointi Matlabin korkean tason kielellä on nopeaa ja kohtalaisen helppoa. Tietorakenteisiin ei tarvitse kiinnittää samassa määrin huomiota kuin perinteisillä ohjelmointikielillä. Erityisesti taulukoita (matriiseja) ei tarvitse esitellä ennen käyttöä. Interaktiivinen käyttöliittymä mahdollistaa erilaiset nopeat kokeilut (ns. prototyypitys). Korkeatasoisen grafiikan ja visualisoinnin teko on helppoa. Matlabilla tehdyt m-tiedostot ovat täysin siirrettäviä eri tietokonealustojen välillä. Ohjelmistoa voidaan laajentaa toolboxeilla. Edelleen Matlab on moderni ohjelmointikieli ja ongelmanratkaisuympäristö. Siinä on kehittyneet tietorakenteet, se sisältää editorin ja virheentarkistus-työkalut (ns. debuggaus). Se tukee nykyään myös oliosuuntautunutta ohjelmointia. Matlab on tulkattava kieli, joten se kärsii pienestä tehohäviöstä käännettäviin kieliin verrattuna. Uusimmat versiot sisältävät kuitenkin erilaisia sisäänrakennettuja kiihdytysmenetelmiä. Matlabia voi käyttää interaktiivisesti sen oman käyttöliittymän avulla tai voidaan ajaa Matlabin ohjelmointikielellä itse kirjoitettuja Matlab-ohjelmia. Matlab-ohjelmia voidaan myös integroida Matlab-ympäristön ulkopuolisiin sovelluksiin, jotka on tehty käännettävillä ohjelmointikielillä (esim. C, C++, Fortran tai Java). Siis voidaan esimerkiksi käyttää Matlabista käsin ko. kielillä tehtyjä ohjelmia. Edelleen on mahdollista kääntää Matlab-ohjelmia C- tai C++ -kielelle tehokkaampaa suoritusta varten. Matlab koostuu viidestä pääosasta: Kehitysympäristö. Matlabin interaktiivinen käyttöliittymä, jolla voidaan käyttää Matlabin valmiita komentoja tai funktioita. Kehitysympäristö sisältää myös työkalut, joiden avulla voidaan tehdä omia Matlab-ohjelmia. Matlabin matemaattisten funktioiden kirjasto sisältää Matlabin laskenta-algoritmit erilaisille matemaattisille funktioille, aina alkeisfunktioista erikoisfunktioihin ja erilaisiin matriisioperaatioihin sekä muunnoksiin. Matlabin ohjelmointikieli. Grafiikkaosa sisältää Matlabin grafiikkaominaisuudet. Matlab API (Application Program Interface). Matlabin ulkoisten kielien (ohjelmien) liittymä, jonka avulla voidaan kirjoittaa C- ja Fortran- ohjelmia, jotka vuorovaikuttavat Matlabin kanssa. Siis voidaan kutsua esim. Fortranohjelmia Matlabista tai Matlabia voidaan käyttää Fortran-ohjelmasta. 2

3 2 Käyttöliittymä Ikkunointia käyttävissä käyttöjärjestelmissä Matlab käynnistyy Kuvan 1 kaltaiseen käyttöliittymään, Matlabin työpöytään (Matlab Desktop). Työpöytä sisältää työkalut tiedostojen, muuttujien ja Matlabiin liitettyjen sovellusten hallintaan. Työpöydän ulkoasua voidaan muuttaa (esim. View-valikosta) työkalujen ikkunoita avaamalla, sulkemalla, siirtämällä ja niiden kokoa muuttamalla. Kuva 1: Matlabin graafinen käyttöliittymä (R2012b) Keskellä on komentoikkuna (Command Window), johon Matlabin komennot syötetään. Oikealla alhaalla on komentohistoriaikkuna (Command History), joka tallettaa kaikki komentoikkunaan syötetyt komennot. Historiaikkunasta voidaan esim. valita aiemmin suoritettuja komentoja uudelleen suoritettavaksi. Historiaikkunan yläpuolella on työtilaikkuna (Workspace). Työtilaikkunasta nähdään sillä hetkellä käytössä olevat muuttujat ja mm. niiden koko. Kaksoisnäpäyttämällä muuttujaa työtilaikkunassa avautuu Variable Editor, jolla voidaan mm. muokata muuttujan arvoa. Työtila voidaan tallettaa myöhempää käyttöä varten MAT-tiedostoksi File valikon Save Workspace As komennolla. Vasemmalla on hakemistoikkuna (Current Folder). Siitä nähdään sen hetkinen työhakemisto, jota voidaan muuttaa Current Folder Browserin (keskellä ylhäällä) avulla. Matlab käyttää ns. hakupolkua (search path) etsiessään M-tiedostoja ja muita Matlab-tiedostoja. Niinpä on usein syytä omien, varsinkin isompien, pro- 3

4 jektien yhteydessä määritellä oma työhakemisto Matlabin hakupolkuun. Tämä tapahtuu esimerkiksi File valikon Set Path komennolla. Käyttöliittymään voidaan kiinnittää (dock) muita ikkunoita, esimerkiksi kuvaajia, tai käyttöliittymän ikkunoita voidaan irrottaa (undock) omiksi ikkunoikseen. Tämä tapahtuu joko Desktop valikosta tai kussakin ikkunassa olevasta dock/undock napista. Edelleen käyttöliittymään kuuluu Matlabin oma editori/debuggeri, mutta tähän palaamme, kun alamme kirjoittamaan omia Matlabohjelmia. Lisäksi Help valikon alta löytyy Matlabin dokumentaatio eli eräs työpöydän käytetyimmistä osista. Edelleen vasemman alanurkan Start napilla pääsee helposti käsiksi Matlabin työkaluihin, demoihin ja dokumentaatioon. Matlabia voi käyttää myös tekstipohjaisella käyttöliittymällä (komentorivi), jolloin näkyvissä on pelkkä komentokehote >> Käytön perusteita Matlab komennot syötetään komentoikkunaan ja päätetään tuttuun tapaan painamalla ENTER. Matlabissa ei ole erityistä rivin lopetusmerkkiä, mutta jos ei haluta tulosta näytölle, lopetetaan rivi puolipisteeseen. Tämän lisäksi seuraavat asiat on hyvä pitää mielessä: Matlab on case sensitive eli isoilla ja pienillä kirjaimilla on eri merkitys. Kirjoittamalla muuttujan nimi nähdään muuttujan arvo. Matlabissa käytetään kaarisulkeita ( ), hakasulkeita [ ] ja aaltosulkeita { }. Niillä kaikilla on eri merkitys ja käyttötarkoitus. Ylös- ja alas-nuolinäppäimillä voidaan selata aiemmin annettuja komentoja. Vanhaa komentoa voidaan myös hakea kirjoittamalla pari ensimmäistä merkkiä ja painamalla ylös-nuolinäppäintä. Komennolla help aihe saadaan lyhyt avuste komennosta, funktiosta tai symbolista aihe. Huomaa, että Matlab käyttää myös hyperlinkkejä, joita klikkaamalla pääsee avusteisiin. Kattavampi avuste avautuu komennolla doc aihe. Jos painetaan sarkainnäppäintä (TAB, tabulaattori) sen jälkeen, kun funktion tai muuttujan nimi on osittain syötetty, saadaan näkyviin lista mahdollisista kokonaisista funktion tai muuttujan nimistä. Kirjoittamalla exit tai quit lopetetaan Matlabin käyttö. Matlabia voi käyttää tutusti laskimen tapaan: >>sin(pi/2) + sqrt(4)*i i 4

5 Matlabissa luku π on siis pi ja imaginääriyksikkö on i tai j. Kompleksiluvut esitetään tutusti muodossa a + bi. Piin ja imaginääriyksikön lisäksi Matlabissa on muutamia muita vakioita: >>eps, realmin, realmax, Inf, NaN e e e+308 Inf NaN Matlab sijoittaa komennon tuloksen muuttujaan ans, jos käyttäjä ei itse sijoita tulosta johonkin muuhun muuttujaan. Matlabissa sijoitusoperaattorina toimii =. Muuttujia voidaan siten määritellä yksinkertaisesti sijoituskäskyllä eli muodossa muuttuja = lauseke. Matlabin muuttujat eivät vaadi erityistä tyypin tai dimension määrittelyä. Matlabin havaittua uuden muuttujan nimen, se luo ko. muuttujan ja varaa sille tarvittavan tilan. Jos muuttuja on jo aiemmin määritelty, Matlab korvaa sen sisällön uudella sisällöllä, sekä varaa tarvittaessa lisää tilaa. Muuttujan nimi muodostuu kirjaimesta, jota seuraa mikä tahansa määrä kirjaimia, numeroita tai alaviivoja. Matlab huomioi kuitenkin vain muuttujan nimen 63 ensimmäistä merkkiä. Edelleen Matlab erottaa isot ja pienet kirjaimet eli muuttuja ja Muuttuja ovat eri muuttujia. Muuttujan arvo nähdään syöttämällä muuttujan nimi. Esim. >>a = 56; b = 3 b = 3 >>c = a*b; >>c c = 168 Komennolla who nähdään sillä hetkellä Matlabissa määritellyt muuttujat. Edelleen komennolla whos nähdään tarkempaa tietoa määritellyistä muuttujista, mm. niiden viemä muistitila. Nämä tiedot ovat näkyvillä myös Matlabtyöpöydän työtilaikkunassa. 5

6 >>who Your variables are: a ans b c >> whos Name Size Bytes Class Attributes a 1x1 8 double b 1x1 8 double c 1x1 8 double Muuttujan voi poistaa komennolla clear muuttuja. Komento clear poistaa kaikki muuttujat. Komento clc tyhjentää komentoikkunan näkymän (ei kuitenkaan muuttujia). Matlabissa on sisäänrakennettuina useimmat alkeisfunktiot sekä lukuisia erikoisfunktioita. Esim. >>[abs(3 + 2*i), angle(3 + 2i), atanh(pi/4), log(exp(1)), gamma(2.5)] Tulostuksen muotoa, ei sitä millä tarkkuudella Matlab laskee, voidaan säätää format-komennolla. Oletuksena on format short, jolloin tulostuksessa on neljä desimaalia (vrt. yllä). Muita vaihtoehtoja: >>format long, ans Columns 1 through Columns 4 through >>format rat, ans 4936/ / / /167 >>format short % palautetaan oletusmuoto Katso lisää tietoa komennolla help format. Matlabissa prosenttimerkki % on kommenttimerkki. Jos komennot eivät mahdu yhdelle riville, käytetään Matlabissa jatkomerkkinä kolmea pistettä (... ). Yhdellä rivillä voi syöttää useampia komentoja pilkuilla erotettuna. Komentorivillä voi liikkua nuolinäppäimillä oikealle ja vasemmalle, ja aiemmin syötettyjä komentoja voi selata nuolinäppäimillä ylös ja alas. 6

7 4 Matriiseista Matlabin peruselementti on matriisi. Skalaaria voidaan Matlab-ympäristössä ajatella 1 1-matriisina. Vastaavasti n-alkioista vektoria voidaan pitää joko 1 n- (vaakavektori) tai n 1-matriisina (pystyvektori). 4.1 Muodostaminen Matriisi voidaan muodostaa mm. syöttämällä alkiot hakasulkujen sisään. Esim. komennolla >>[1 2 3; 4 5 6] muodostetaan 2 3-matriisi Syötettäessä matriisia, rivit erotetaan puolipisteellä ja sarakkeet pilkulla tai välilyönnillä. Siis vaakavektori ja pystyvektori muodostetaan seuraavasti: >>[ ], [1, 2, 3, 4, 5, 6], [1; 2; 3; 4; 5; 6] Matriisin transpoosia varten on kaksi operaattoria, ja.. Näistä ensimmäinen muodostaa kompleksiarvoisille matriiseille konjugoidun transpoosin, kun taas jälkimmäinen ei (normaali transpoosi). Esim. >> [1 2 3]

8 >> [1 2 3+i] i >> [1 2 3+i] i Matlabissa hyvin tärkeä kaksoispisteoperaattori : helpottaa yllä olevan kaltaisten vektorien ja matriisien muodostamista. Esimerkiksi seuraavassa muodostetaan vaakavektori kokonaisluvuista yhdestä kymmeneen, sekä 3 3-matriisi luvuista yhdestä yhdeksään: >>a = 1:10, A = [1:3; 4:6; 7:9] a = A = Oletusaskel on ykkösen suuruinen, mutta sen voi määritellä myös itse: >>0: pi/2 : 2*pi >>20 : -0.2 : Valmismatriisit Matriisi voidaan muodostaa myös käyttämällä Matlabissa olevia valmiita komentoja tietyille erikoismatriiseille: 8

9 >>zeros(2,3), ones(3) % 2x3-matriisi nollista, 3x3-matriisi ykkösistä >>eye(3), diag(1:2:8) % yksikkömatriisi ja diagonaalimatriisi Komennolla rand saadaan matriisi, jonka alkiot ovat tasanjakautuneita satunnaislukuja väliltä (0, 1). Komennolla randn saadaan puolestaan satunnaislukuja normaalijakaumasta N(0, 1) sisältävä matriisi. >>s1 = rand(3) s1 = >>s2 = randn(1, 6) s2 = Matlabissa on myös hieman erikoisempia valmismatriiseja. Esimerkiksi ns. maaginen matriisi, jonka rivien, sarakkeiden ja diagonaalien summa on sama luku. >>help magic MAGIC Magic square. MAGIC(N) is an N-by-N matrix constructed from the integers 9

10 1 through Nˆ2 with equal row, column, and diagonal sums. Produces valid magic squares for all N > 0 except N = 2. >>M = magic(4) M = Hilbertin matriisi, Vandermonden matriisi ja Pascalin matriisi (symmetrinen, positiivisesti definiitti matriisi, jonka alkiot on poimittu Pascalin kolmiosta): >>Hile = hilb(3), Vand = vander(1:3), Pasc = pascal(4) Hile = Vand = Pasc = Edelleen on mahdollista muodostaa matriiseja lataamalla matriisi jostain datatiedostosta load-funktiolla. Tiedosto voi olla binääritiedosto (.mat-tiedosto), johon on talletettu aiemmassa Matlab-istunnossa määriteltyjä matriiseja tai tekstitiedosto. Tarkempaa tietoa saa komennolla help load. Lisäksi matriiseja voi tallettaa ja lukea M-tiedostoihin, jotka ovat Matlab-koodia sisältäviä tekstitiedostoja. M-tiedostoja voi tallettaa ja muokata millä tahansa tekstieditorilla tai Matlabin omalla editorilla. M-tiedostot talletetaan.m-päätteellä ja niitä voidaan kutsua Matlab-istunnosta kirjoittamalla tiedoston nimi ilman.m-päätettä tai sen kanssa. Lisäksi matriiseja voi muodostaa yhdistämällä matriiseja toisiinsa. Matlabin yhdistämisoperaattori on hakasulut eli [ ]. Itse asiassa, kun edellä teimme ensimmäisen matriisimme, yhdistimme vain sen yksittäiset alkiot tällä yhdistämisoperaattorilla. >>yhdistys = [Pasc M; Pasc+ones(4) M+eye(4)] yhdistys = 10

11 Matriisien täytyy olla tietenkin dimensioiltaan yhteensopivia: >>yhdistys2 = [Pasc; Hile]??? Error using ==> vertcat CAT arguments dimensions are not consistent. Matriisin koko selviää helposti komennolla size: >>size(yhdistys) Indeksointi Matriisin alkioita voidaan valita laittamalla nimen perään sulkuihin alkion rivija sarakeindeksi, siis >>M(2,3) 10 Indeksointi alkaa luvusta 1. Voidaan käyttää myös yhtä indeksiä, jolloin matriisin voi ajatella yhdeksi suureksi pystyvektoriksi, jossa on alkuperäisen matriisin alkiot asetettuna sarakkeittain peräkkäin, siis >>M(10) 10 Kerralla voidaan valita useampia alkioita käyttämällä kaksoispisteoperaattoria. Matriisin M kolmannen rivin toinen ja kolmas alkio: >>M(3, 2:3)

12 Koko rivi tai sarake voidaan valita pelkällä kaksoispisteellä, minkä lisäksi on käytössä varattu sana end viimeiselle riville ja sarakkeelle: >>M(end, :) >>M(:, end) >>M(end, end) 1 Alkioita voidaan valita myös sillä perusteella, toteuttavatko ne jonkin loogisen ehdon: >>M( isprime(m)) = 0 % kaikki ei-alkuluvut nolliksi matriisissa M M = >>M = M( M>0 ) % Poimitaan matriisin M positiiviset alkiot M = >>M = magic(4); Huomaa, että edellä käytettiin operaattoria, joka muodostaa matriisin transpoosin (kompleksiarvoisille matriiseille konjugoidun transpoosin). Matlabin find-funktiolla voidaan etsiä tietyn ehdon täyttävät alkiot: >>k = find(isprime(m)) k = Tässä find palautti ehdon täyttävien alkioiden yksiulotteiset indeksit vektoriin k. Matriisista voidaan tämän jälkeen poimia ehdon täyttävät alkiot käyttämällä saatua indeksivektoria k: 12

13 >>M(k) Jos koetetaan viitata alkioon matriisin indeksirajojen ulkopuolelta, saadaan virheilmoitus >>m = M(5,1)??? Index exceeds matrix dimensions. Kuitenkin, jos sijoitetaan arvo sellaiselle matriisin alkiolle, jota ei ole vielä olemassa, niin matriisi laajenee sellaiseksi, että lisätty alkio tai alkiot mahtuvat mukaan >>X = M; >>X(5,:) = zeros X = Matriisin kokonaisia rivejä tai sarakkeita voidaan tuhota käyttämällä tyhjää yhdistämisoperaattoria []. >>X(:,3) = [] X = Erityisesti yksiulotteisen vektorin alkioita voidaan poistaa: >>Y=1:5, Y(2:3)=[] Y = Y = Kuitenkin: 13

14 >>X(2,2) = []??? Subscripted assignment dimension mismatch. Jos matriisista tuhoaa yhden elementin, ei tulos enää ole matriisi, joten edellisen kaltainen komento ei toimi. Käyttämällä yhtä indeksiä eli käsittelemällä koko matriisia yhtenä sarakevektorina, voidaan yksittäinen alkio tai alkioita poistaa. Tällöin matriisin jäljelle jääneistä alkioista tulee vaakavektori: >>X(6 : 2 : 13) = [] X = Indeksejä käyttämällä voidaan muodostaa aritmeettisia operaatioita eli esimerkiksi matriisin M kolmannen sarakkeen alkioiden summa >>M(1,3) + M(2,3) + M(3,3) + M(4,3) 34 Tällaisiä usein tarvittuja operaatioita varten on Matlabissa valmiita funktioita, siis kolmannen sarakkeen alkioiden summa matriisissa M on: >>sum(m(:,3)) 34 Yleisemmin, sum-komento laskee oletuksena matriisin alkioiden summan sarakkeittain: >>sum(yhdistys) Jos halutaan laskea summa riveittäin, niin se voidaan tehdä käyttämällä samaa sum-komentoa matriisin transpoosille. Matriisin yhdistys rivisumma: >>sum(yhdistys ) % konjugointi ei haittaa Lasketaan maagisen matriisin M rivi-, sarake- ja diagonaalisummat. Huomaa, että diag poimii matriisin diagonaalin vektoriksi, kun sille annetaan argumentiksi matriisi. 14

15 >>sum(m), sum(m ), sum(diag(m)) Matriisi on siis maaginen. 4.4 Laskutoimitukset Koska matriisi on Matlabin peruselementti, niin peruslaskutoimitukset voidaan tehdä matriiseille ilman mitään erityistoimenpiteitä: >>A = [1 2 3; 4 5 6] A = >>B = [3 1 5; 2 0-3] B = >>C = [3 4; 5 6; 7 8] C = >>A + B >>A + 5 % matriisin jokaiseen alkioon lisätään skalaari

16 >>5*A % skalaari*matriisi >>A*C % matriisi*matriisi Matriisien dimensioiden on tietenkin oltava yhteensopivat: >>A + C % voidaan lisätä vain samankokoinen matriisi tai skalaari??? Error using ==> plus Matrix dimensions must agree. >>A*B??? Error using ==> mtimes Inner matrix dimensions must agree. >>nelio = A*B % huomaa B:n transpoosi nelio = >>nelioˆ3 % matriisi potenssiin >>Aˆ2 % on oltava neliömatriisi??? Error using ==> mpower Inputs must be a scalar and a square matrix. Otetaan käyttöön vektorit u ja v : >>u = [2 4 6]; v = [1; 3; 5]; Nyt >>A*v 16

17 22 49 >>u*c >>u*v % skalaaritulo eli pistetulo eli sisätulo 44 >>v *v 35 >>dot(v, v) 35 >>cross(u, v) % vektoritulo eli ristitulo >>v*u % ulkotulo, tuloksena matriisi Itseasiassa kyseessä on ns. Kroneckerin tulo eli tensoritulo >>kron(u,v) Matriiseille: >>tens = kron(a, B) 17

18 tens = Jos A on m n-matriisi ja B p q-matriisi, niin Kroneckerin tulo kron(a,b) on mp nq-matriisi, jossa on on kaikki mahdolliset tulot, kun kukin matriisin A alkio kerrotaan matriisilla B. 4.5 Alkioittaiset operaatiot Usein on tarve tehdä jokin operaatio vektorille tai matriisille alkioittain. Matlabissa on tätä varten kerto- ja jakolaskusta sekä potenssiinkorotuksesta alkioittaiset versiot.*,./ ja.ˆ. Nämä ovat ns. taulukko-operaatioita (array operators). Yhteen- ja vähennyslaskun tapauksessa taulukko-operaatiot ovat samat kuin matriiseille, joten operaattoreita.+ ja.- ei ole erikseen määritelty. Taulukkooperaatioita voidaan käyttää myös moniulotteisten taulukoiden käsittelyyn, mutta tällaisia taulukoita emme käsittele tässä yhteydessä. Esim. >>A.ˆ >>A.*B >>B./A >>v./ Huomattakoon vielä, että useimmat alkeisfunktiot hyväksyvät argumenteikseen vektoreita ja matriiseja. Tällöin funktio operoi matriisiin alkioittain. 18

19 >>sin(z) % sinifunktio operoi suoraan vektoriin alkioittain i i >> x = 0:pi/2:2*pi x = >> cos(x),exp(x) Hieman lineaarialgebraa Matlabissa on kaksi eri jakolaskuoperaatiota / ja \. Näistä molemmista on myös alkioittaiset versiot eli./ ja.\. Jakolasku X=A\B on itseasiassa matriisiyhtälön AX = B ratkaisu (jaetaan vasemmalta, left divide). Vastaavasti, jakolasku X=B/A puolestaan määrää matriisiyhtälön XA = B ratkaisun (jakaa oikealta, right divide). Jakolasku A\B vaatii, että matriiseilla A ja B on yhtä monta riviä, ja jakolasku B/A vaatii, että sarakkeita on yhtä monta. Jakolaskua \ voidaan siis hyödyntää yhtälöryhmän ratkaisemisessa, esimerkiksi: >>A = [2-1 1; 3 2 2; 1-2 1] A = >>b = [2; -2; 1] b = >>x = A\b x = 19

20 Samoin voidaan käyttää komentoa /, kun yhtälöryhmä on muotoa XA = B: >>B = [2-1 3] B = >>X = B/A X = Matlab muodostaa käänteismatriisin, jos se on olemassa, komennolla inv: >>inv(a) Vaihtoehtoisesti voitaisiin tietenkin korottaa matriisi potenssiin 1: >>Aˆ(-1) tai ratkaista yhtälöryhmä AX = I >>A\eye(3) Todettakoon, että yhtälöryhmää ei tulisi ratkaista käänteismatriisilla kertomalla. Palaamme myöhemmissä luennoissa vielä hieman tarkemmin Matlabin käyttöön yhtälöryhmien ratkaisemisessa ja erilaisten matriisihajotelmien muodostamisessa. Todetaan kuitenkin vielä, että matriisi saadaan pelkistettyyn porrasmuotoon komennolla rref (reduced row echelon form). 20

21 >>rref(a) >>rref([a b]) >>rref([a eye(3)]) Homogeeninen yhtälöryhmä Ax = 0 voidaan ratkaista komennolla null. >> null(ones(3)) Lopuksi vielä hieman lineaarialgebrasta tuttuja käsitteitä: >>rank(a) % matriisin aste 3 >>det(a) % determinantti 5 >>karak = poly(a) % karakteristisen polynomin kertoimet karak = >>roots(karak) % ominaisarvot = karakteristisen polynomin juuret 21

22 i i Matriisin ominaisarvojen ja -vektoreiden (eigenvalue, eigenvector) laskemiseksi on komento eig: >>lambda = eig(a) % ominaisarvot pystyvektorina lambda = i i Jos funktion eig paluuarvo ohjataan kahteen argumenttiin, on ensimmäisessä matriisissa ominaisvektorit sarakkeina ja toisessa ominaisarvot diagonaalina. Ominaisvektorit on skaalattu niin, että niiden euklidinen normi on yksi. >>[V, D] = eig(a) V = i i i i D = i i >>norm( V(:,1) ) >>[norm(v(:,1), 1) norm(v(:,1), inf)] % muita normeja

23 MATEMAATTISET OHJELMISTOT Syksy 2012 Matlab-luennot, 2. osa Sisältö 1 Grafiikkaa Kaksiulotteista grafiikkaa Kolmiulotteista grafiikkaa Funktioiden kuvaajien piirtäminen Kuvien muokkaus Matlab-ohjelmoinnista Skriptit Funktiot Funktion argumenteista Funktiokahvoista Operaattorit Vertailuoperaattorit Loogiset operaattorit Ohjausrakenteita Valintarakenteet Toistorakenteet Vektorointi ja allokointi Grafiikkaa Matlabissa on hyvin tehokkaat ja monipuoliset grafiikkaominaisuudet. Seuraavassa käsitellään Matlabin kaksi- ja kolmeulotteisen grafiikan peruskomennot -ja työkalut. Vain ohimennen tullaan sivuamaan Matlabissa olevia erilaisia graafisella käyttöliittymällä varustettuja visualisointityökaluja, esim. plottools. Näihin voit tutustua itsenäisesti, vaikkapa piirtämällä visualisointityökaluja käyttäen tässä luennossa esimerkkeinä olevat kuvat. Kahvojen käyttöä grafiikassa (ns. Handle Graphics) käsitellään vain hyvin lyhyesti. 1

24 1.1 Kaksiulotteista grafiikkaa Matlabin peruspiirtokäsky 2D-kuville on plot. Yksinkertaisimmillaan käskyllä plot(y) voidaan piirtää vektorin y arvot niin, että x-akselilla on vektorin indeksit. Jos argumentteina on kaksi vektoria, piirtää komento plot(x,y) vektoreista x ja y pisteet (x(i), y(i)) ja yhdistää ne viivalla toisiinsa. Kuvassa 1 oleva murtoviiva saadaan seuraavasti: >> x = [ ]; >> y = [ ]; >> plot(x, y) Kuva 1: Matlab piirtää kuvaajan erilliseen kuvaikkunaan (figure window). Jos nyt piirretään uusi kuvaaja esimerkiksi jostain toisesta funktiosta, tulee kuvaaja äsken avautuneeseen kuvaikkunaan vanhan kuvaajan tilalle. Samalla tavalla voidaan piirtää myös sileitä kuvaajia kunhan x-hilaa ensin tihennetään. Toisena esimerkkinä piirretään kosinifunktion kuvaaja välillä [0, 2π] (kts. Kuva 2): >>x = 0:pi/100:2*pi; >>y = cos(x); >>plot(x, y) Lisätään vielä akseleille nimet ja kuvalle otsikko. Näidenkin komentojen tulos tulee sillä hetkellä auki olevaan kuvaikkunaan. Huomaa, että Matlab osaa joukon TEX-komentoja kreikkalaisia aakkosia varten, kuten tässä \pi. >>xlabel( x = 0:2\pi ) >>ylabel( y = cos(x) ) >>title( Kosinin kuvaaja, Fontsize, 12) Samaan kuvaan voidaan piirtää useampia kuvaajia samalla plot-käskyllä. Tämä tapahtuu laittamalla plot-käskyyn pareittain piirrettäviä datoja vastaavat vektorit x ja y-koordinaattien arvoiksi. Seuraavassa piirretään kosinifunktion lisäksi sinifunktio ja sin(2x 1) samaan kuvaan. 2

25 1 Kosinin kuvaaja y = cos(x) x = 0:2π Kuva 2: cos(x) sin(x) sin(2x 1) Kuva 3: >>y2 = sin(x); >>y3 = sin(2*x-1); >>plot(x, y, x, y2, x, y3) Komennolla legend voidaan lisätä selitteet kullekin kuvaajalle (kts. Kuva 3): >>legend( cos(x), sin(x), sin(2x-1) ) Yleisemmin plot(x, y) voidaan korvata komennolla plot(x, y, merkkijono), missä merkkijono voi sisältää korkeintaan kolme merkkiä, jotka säätävät piirtoväriä, -merkkiä ja viivatyyliä. Nämä ns. optiot lisätään heittomerkeissä plotkäskyyn piirrettävien datojen jälkeen. Tarkempia tietoja optioista käskyllä help plot. Piirretään esimerkkinä edellinen kuva niin, että kosinifunktio piirretään yhtenäisellä viivalla -, sinifunktio pisteviivalla : ja funktiosta sin(2x 1) piirretään vain datapisteet tähdellä *. Edelleen kaikki kuvaajat piirretään mustalla värillä k. Tulos on Kuvassa 4. >>plot(x, y, k-, x, y2, k:, x, y3, k* ) >>legend( cos(x), sin(x), sin(2x-1) ) 3

26 1 0.8 cos(x) sin(x) sin(2x 1) Kuva 4: Edellä olevat kuvat voitaisiin piirtää myös plottools-työkalua käyttäen niin, että muodostettaisiin ensin vektori x x-akselin arvoja varten. Tämän jälken komennettaisiin plottools ja ryhdyttäisiin Plot Browser-ikkunan avulla lisäämään dataa y-akselia varten. Voitaisiin myös muodostaa komentorivillä y-akselin data vektoriin y ja valita vektorit hiirellä Workspace-ikkunasta (CTRL + hiiren vasen nappi), jonka jälkeen hiiren oikeaa nappia painamalla saadaan näkyviin erilaisia piirtovaihtoehtoja. Edelleen, plot-komennolle voidaan antaa myös matriisiargumentteja. Jos x on m-vektori ja Y on m n-matriisi, niin plot(x, Y) piirtää samaan kuvaan jokaisen Y:n sarakkeen arvot, kun x-akselilla on x:n arvot. Vastaavasti, jos X ja Y ovat molemmat m n-matriiseja, niin plot(x, Y) piirtää samaan kuvaan X:n ja Y:n sarakkeista saatavat kuvat (kts. Kuva 5). Komento plot(y) taas piirtää Y:n sarakkeet niin, että x-akselilla on matriisin indeksit (kts. Kuva 6). >> X = [1:3; 4:6; 7:9]; >> Y = magic(3) Y = >> plot(x, Y) >> plot(y) Jos piirrettävä data on kompleksista, niin Matlab ei huomioi imaginääriosaa, vaan se piirtää vain reaaliosat. Kuitenkin, jos plot-käskylle annetaan vain yksi argumentti, jonka sisältämä data on kompleksista, piirtää Matlab kuvaajan, jossa on reaaliosa x-akselilla ja imaginääriosa y-akselilla. Jos halutaan piirtää olemassaolevaan kuvaikkunaan niin, ettei siinä jo oleva kuvaaja tuhoudu, voidaan käyttää komentoa hold on. Pito saadaan pois päältä komennolla hold off. Esim. >> plot(sin(x)) >> hold on >> plot(cos(x)), hold off 4

27 Kuva 5: Kuva 6: Kuva 7: 5

28 1 cos(x) 1 sin(x) sin(2x 1) 1 cos(2x 1) Kuva 8: piirtää sinin ja kosinin kuvaajat samaan kuvaikkunaan (kts. Kuva 7). Komennolla figure voidaan puolestaan avata uusi kuvaikkuna. Edelleen komennolla figure(n) voidaan määrätä, että piirtäminen tapahtuu kuvaikkunaan numero n (tämä saadaan aikaan myös klikkaamalla ko. kuvaikkunaa). Jos auki on useampia kuvaikkunoita, niin oletuksena Matlab piirtää siihen ikkunaan, johon on viimeksi piirretty tai jota on viimeisimmäksi klikattu. Komento clf tyhjentää sen hetkisen kuvaikkunan. Komennolla close suljetaan sen hetkinen kuvaikkuna ja close all sulkee kaikki kuvaikkunat. Samaan kuvaikkunaan voidaan piirtää useampia erillisä osakuvaajia komennolla subplot(m,n,p). Komento jakaa kuvaikkunan m n matriisiksi ja valitsee siitä akseliston p, johon kuva piirretään jollain piirtokomennolla (esim. plot). Osakuvat (akselistot) numeroidaan kuvan ylärivistä lähtien, vasemmalta oikealle. Esimerkkinä neljän eri trigonometrisen funktion kuvaajat on piirretty samaan kuvaikkunaan Kuvassa 8. >>y4 = cos(2*x-1); >>subplot(2,2,1); plot(x,y), title( cos(x) ) >>subplot(2,2,2); plot(x,y2), title( sin(x) ) >>subplot(2,2,3); plot(x,y3), title( sin(2x-1) ) >>subplot(2,2,4); plot(x,y4), title( cos(2x-1) ) Matlabin axis-komennolla voidaan muuttaa kuvan akseleiden skaalausta ja ulkonäköä. Esimerkiksi komennolla axis([xmin xmax ymin ymax]) muutetaan akseleiden rajat käyttäjän haluamaksi sen sijaan, että Matlab määräisi ne piirrettävän datan perusteella. Usein halutaan säilyttää akseleiden skaalaus samana, kun piirretään samaan kuvaan peräkkäin useampia kuvaajia. Komennolla axis manual voidaan pitää sen hetkinen akseleiden skaalaus käytössä, komennolla axis auto palautetaan automaattinen skaalaus käyttöön. axis tight asettaa skaalauksen tarkalleen piirrettävän datan määräämälle välille. Komennolla axis equal asetetaan puolestaan x- ja y-akseleiden askelväli samaksi ja axis square tekee akseleista yhtä pitkiä. Komento axis normal kumoaa komentojen axis square ja axis equal vaikutuksen. Edelleen axis off poistaa akselit kuvasta ja 6

29 8 x Kuva 9: Kuva 10: axis on palauttaa ne näkyviin. axis-komento laajenee luonnollisella tavalla 3Dkuviin, esimerkiksi axis([xmin xmax ymin ymax zmin zmax]). Yhden akselin skaalausta voidaan säädellä komennoilla xlim, ylim ja zlim. Muita komentoja kuvien muokkaamiseen ovat mm. grid on ja grid off, joilla saadaan kuvaan ruutuverkko näkyviin tai siitä pois. Piirretään seuraavassa funktion 1 f (x) = (x 1) (x 2), 0 x 3 2 kuvaaja, kts. Kuva 9: >> x = linspace(0, 3, 500); % luo 500 pisteen x-hilan välille [0,3] >> plot(x, 1./(x-1).ˆ2 + 3./(x-2).ˆ2) % Huomaa alkioittaisuus >> grid on Pisteissä x = 1 ja x = 2 olevien singulariteettien takia kuva ei anna juurikaan informaatiota funktiosta, mutta rajoittamalla lisäkomennolla ylim([0 50] y-akselin skaalausta saadaan huomattavasti mielenkiintoisempi kuvaaja, kts. Kuva 10. 7

30 Edellä olivat jo xlabel, ylabel, title ja legend, näiden lisäksi voidaan text-komennolla lisätä tekstiä mihin tahansa kohtaan kuvassa (kts. Kuva 11): >>x = 0:pi/100:2*pi; y = cos(x); plot(x, y) >>axis tight square >>grid on >>text(4, -0.8, Kosinin kuvaaja ) Kosinin kuvaaja Kuva 11: Yllä mainitut kuvan muokkaukset voidaan tehdä myös kuvaikkunassa käyttämällä esim. Edit-, Insert- ja Tools-valikoista löytyviä käskyjä. Jos kuvaa muokataan runsaasti kuvaikkunassa, niin valmiista tuloksesta voidaan generoida myöhempää käyttöä varten M-tiedosto File-valikon Generate M-File-komennolla. Tätä M-tiedostoa käyttäen voidaan myöhemmin piirtää asetuksiltaan samanlainen kuva eri datoilla. Edelleen, kuva voidaan tallettaa kuvatiedostoksi valitsemalla kuvaikkunan File-valikosta Save As.... Muita peruspiirtokomentoja ovat mm. loglog, semilogx, semilogy, joilla voidaan piirtää kuvaajia logaritmisilla akselistoilla, katso helpeistä lisätietoa. 1.2 Kolmiulotteista grafiikkaa Komennolla plot3 voidaan puolestaan piirtää kolmiulotteisia avaruuskäyriä, joten se on plot-komennon kolmiulotteinen vastine. Kuva 12 saadaan seuraavasti: >> t = -5 : : 5; >> x = (1 + t.ˆ2).*sin(20*t); >> y = (1 + t.ˆ2).*cos(20*t); >> z = t; >> plot3(x, y, z) >> grid on >> xlabel( x(t) ), ylabel( y(t) ), zlabel( z(t) ) Kolmiulotteisten pintakuvien piirtämiseen Matlabissa on kaksi peruskomentoa: mesh ja surf. Molemmilla voidaan piirtää z-koordinaateilla määrätty pinta 8

31 5 z(t) y(t) x(t) Kuva 12: x y -tasossa olevan hilan yläpuolelle. Komentojen ero on se, että mesh-komento piirtää datapisteiden lisäksi pisteitä yhdistävät viivat, joten tuloksena on rautalankakuva (wireframe) piirrettävästä pinnasta. surf näyttää rautalankakuvan lisäksi pisteitä yhdistettäessä syntyvät pinnat. Piirretään seuraavaksi funktion f (x, y) = 2 sin x cos y, x, y [0, 2π] pintakuva. Pintakuvien piirtämisessä on meshgrid-komento erittäin hyödyllinen, sillä voidaan helposti luoda piirtämisessä tarvittava hila: >>[x, y] = meshgrid(0:pi/20:2*pi); Tällä komennolla saatiin vektorista 0:pi/20:2*pi tehtyä matriisit x ja y, joita voidaan käyttää argumentteina komennoille mesh ja surf: >>z = 2.*sin(x).*cos(y); >>mesh(x, y, z) Näin saatiin kuvassa 13 oleva rautalankakuva. Kuvassa 14 oleva pintakuva saadaan puolestaan komennolla: >>surf(x, y, z) Pintakuviin voidaan lisätä akseleiden nimiä, otsikoita, tekstiä, selitteitä yms., samoilla komennoilla kuin 2D-kuviinkin. Lisäksi pintakuvien ominaisuuksia, esim. pinnan väritystä ja valaistusta, voidaan säätää omilla komennoillaan. Muokkaukset ja kuvien piirtämisen voi 3D-kuvissakin tehdä plottoolsilla ja kuvaikkunan valikoista löytyvillä komennoilla. Muokataan edellä piirrettyä pintakuvaa hieman erilaisilla asetuksilla (kts. Kuva 15): >>surf(x, y, z, FaceColor, green, EdgeColor, none ); >>camlight left; lighting phong, view(-40, 60) >>axis off 9

32 Kuva 13: Kuva 14: 1.3 Funktioiden kuvaajien piirtäminen Edellä on piirretty kuvaajia käyttämällä Matlabin peruspiirtokomentoja. Peruspiirtokomennot ovat käteviä, kun piirretään jotain numeerista dataa, esimerkiksi mittaustuloksia. Funktioiden kuvaajien piirtämiseen Matlabissa on kuitenkin näppärämpiäkin tapoja kuin esimerkiksi plot-komento. Esimerkiksi komennolla ezplot(f, [a,b]) voidaan piirtää funktion f = f (x) arvot välillä a < x < b. Jos tätä piirtoväliä ei anneta käytetään oletusarvoisesti väliä 2π < x < 2π. Piirrettävä funktio annetaan lausekkeena (esim. ezplot( sin(x) )), määrittelemällä se inline-funktioksi (f = inline( sin(x) ); ezplot(f)) tai annetaan funktio funktiokahvana (function handle) ät-merkillä (ezplot(@sin)). Funktiokahvoista myöhemmin lisää. ezplot-komennolla voidaan helposti piirtää myös esim. implisiittisesti määriteltyjä kuvaajia ja parametrisoituja käyriä. Lisäksi Matlabissa on omat ez-komentonsa mm. napakoordinaatistossa piirrettäville kuvaajille (ezpolar) sekä pintakuville (ezsurf ja ezmesh) ja tasa-arvokäyrille (ezcontour). Lisätietoa mm. komennoilla help ezplot ja lookfor ez. Edelleen funktioiden piirtämiseen on komento fplot, ks. help fplot. Kuva 16 saadaan piirrettyä seuraavilla käskyillä: 10

33 Kuva 15: >>subplot(1,3,1); ezplot( sin(t), sin(t)*cos(t), [0,pi]) >>axis square >>subplot(1,3,2); ezpolar( cos(2*t) ) >>subplot(1,3,3); ezcontour( 2*sin(x)*cos(y), [0,2*pi]) >>axis tight square y x = sin(t), y = sin(t) cos(t) x r = cos(2 t) y sin(x) cos(y) x Kuva 16: 1.4 Kuvien muokkaus Palataan vielä ensimmäiseen esimerkkiimme eli Kuvaan 1. Joitakin kuvan ominaisuuksia, kuten viivanleveyttä ja piirtomerkin kokoa, voidaan piirtämisen yhteydessä muokata antamalla lisäargumentteja plot-komennolle ja useille muillekin komennoille (kts. esimerkiksi kuinka Kuvaa 15 muokattiin). Kasvatetaan seuraavaksi viivanleveyttä arvoon 3 pt (oletus 0.5 pt) ja piirtomerkin kokoa arvoon 5 pt (oletus 6 pt), missä pt (point, piste) on 1/72 tuumaa. Tulos on Kuvassa 17. >> x = [ ]; 11

34 >> y = [ ]; >> plot(x, y, m--ˆ, LineWidth, 3, MarkerSize, 5) Kuva 17: Kuten edellä on nähty, kuvien ominaisuuksia voi Matlabissa muokata joko käyttämällä kuvaikkunan valikoita tai komentoriviltä käsin. Joskus on tarpeen muokata kuvaa piirtämisen jälkeen tai tehdä sellaisia kuvia, etteivät Matlabin peruskomennot riitä. Tällöin pitää yleensä muokata Matlabin grafiikkaobjekteja. Piirtokomentoja käytettäessä Matlab muodostaa kuvaajan käyttämällä erilaisia grafiikkaobjekteja, kuten viivoja, tekstiä, valoa ja pintoja. Kullakin objektilla on ominaisuuksia, joilla säädellään objektin ulkonäköä ja käyttäytymistä. Kun Matlab luo jonkin objektin, siihen liitetään tunnus (kutsutaan jälleen kahvaksi), jonka avulla voidaan objektin ominaisuuksiin päästä käsiksi. Puhutaan ns. Handle Graphicsista. Objektin jonkin ominaisuuden sen hetkisen arvon saa selville get-käskyllä ja arvoa voi muuttaa set-käskyllä. Objekteilla on keskinäinen hierarkiansa, esimerkiksi viivaobjekti on hierarkiassa akseliobjektin alapuolella, joten akseliston on oltava määritelty ennenkuin voidaan piirtää viiva. Seuraavassa piirretään sinifunktion kuvaaja ja saadaan muuttujaan kuva kahva kuvaan. Komennolla get nähdään LineWidth-ominaisuuden arvo ja setkomennolla muutetaan viivan paksuutta, tulos on Kuvassa 18. Objektin kaikki sen hetkiset ominaisuudet nähdään kirjoittamalla get(kuva). Objektin ominaisuuksia voidaan muuttaa myös piirtokäskyssä (ei kuitenkaan kaikissa piirtokäskyissä) eli nyt esimerkiksi käskyllä plot(x, y, LineWidth, 2.0) olisi saatu aikaan sama tulos. Erona näillä tavoilla on se, että get/set-menetelmällä voidaan kuvaa muokata sen piirtämisen jälkeen eli itse piirtämistä ei tarvitse toistaa uudestaan. >>x = 0:pi/100:2*pi; y = sin(x); >>kuva = plot(x,y); >>get(kuva, LineWidth )

35 >>set(kuva, LineWidth, 2.0) Kuva 18: Muita objektien käsittelykomentoja ovat mm. copyobj, delete ja findobj. Näillä voidaan kopioida ja tuhota objekteja sekä etsiä kahva objekteihin, joilla on tietty arvo. Edelleen komennot gca, gcf ja gco palauttavat kahvat sen hetkiseen akselistoon, kuvaan ja objektiin. Esimerkkinä muutetaan Kuvassa 4 tähdet punaisiksi rasteiksi ja saadaan Kuva 19. >>x = 0:pi/100:2*pi; >>y = cos(x); y2 = sin(x); y3 = sin(2*x-1); >>plot(x, y, k-, x, y2, k:, x, y3, k* ) >>set(findobj( Type, line, Marker, * ), Marker, x,... Color, red ) Kuva 19: 13

36 2 Matlab-ohjelmoinnista Seuraavaksi alamme tutustumaan Matlab-ohjelmoinnin perusteisiin. Matlabissa ohjelmat kirjoitetaan M-tiedostoiksi (M-files). M-tiedostot ovat MATLAB-koodia sisältäviä tekstitiedostoja, joiden tiedostopääte on.m. M-tiedosto suoritetaan kirjoittamalla komentoikkunaan tiedoston nimi. M-tiedostoa tiedosto.m voidaan siis ajatella Matlab-komentona, jonka nimi on tiedosto. M-tiedostoja on kahta tyyppiä: skriptejä ja funktioita. 2.1 Skriptit Skripti (script) on joukko Matlab-komentoja, jotka suoritetaan, kun kyseistä M- tiedostoa kutsutaan. Skriptillä ei ole lainkaan argumentteja ja se käyttää työtilassa (Workspace) olevia muuttujia. Skripti käyttää siis työtilassa oleva dataa ja skriptissä laskettu tai muodostettu data sekä muuttujat jäävät myös työtilaan. Esimerkiksi, voidaan kirjoittaa Matlab-skripti sini_kuva.m, joka piirtää sinin kuvaajan. Komennolla edit sini_kuva avataan tekstieditori (yleensä Matlabin oma editori), ja kirjoitetaan komennot: x = 0:pi/100:2*pi; y = sin(x); plot(x,y) legend( sin(x) ) Tiedoston tallettamisen jälkeen komennolla sini_kuva skripti suoritetaan ja Matlab piirtää kuvan. Skriptin suorittamisen jälkeen siinä määritellyt muuttujat ovat käytettävissä työtilassa (kts. whos). 2.2 Funktiot Skripteistä poiketen, funktiolle (function) voidaan sen sijaan antaa syötteenä argumentteja (input) ja se (yleensä) palauttaa jonkin arvon tai useita arvoja suorituksensa jälkeen (output). Funktion sisäiset muuttujat ovat oletusarvoltaan lokaaleja eli ne ovat käytettävissä vain funktion sisällä, eivät työtilassa kuten skriptin tapauksessa. Komennolla type voidaan komentoikkunassa tulostaa jonkin M-tiedoston sisältö, ja komennolla what nähdään luettelo sen hetkisen hakemiston M-tiedostoista. Tulostetaan Matlabin valmisfunktion trace sisältö: >>type trace function t = trace(a) %TRACE Sum of diagonal elements. % TRACE(A) is the sum of the diagonal elements of A, which is % also the sum of the eigenvalues of A. % % Class support for input A: % float: double, single 14

37 % Copyright The MathWorks, Inc. % $Revision: $ $Date: 2007/11/01 12:38:53 $ if (ndims(a)==2 && size(a,1)==size(a,2)) error( MATLAB:square, Matrix must be square. ); end t = sum(diag(a)); Tulostuksesta nähdään, että trace.m on funktiotyyppinen M-tiedosto. Funktion ensimmäinen rivi alkaa aina avainsanalla function, jonka jälkeen tulee funktion paluuarvojen määrittely (tässä t), funktion nimi, joka on sama kuin M-tiedoston nimi (nyt trace) sekä suluissa funktion argumentit (tässä A). Ensimmäiseltä riviltä nähdään myös funktion paluuarvojen ja argumenttien keskinäinen järjestys, jos niitä on useampia kuin yksi. Jos funktiolla on useampia paluuargumentteja, niin ne laitetaan hakasulkujen sisään pilkulla erotettuna. Jos funktiolla ei ole paluuarvoja, laitetaan joko tyhjät hakasulut tai jätetään paluuarvon määrittely pois, esim. function funktio(x) tai []=funktio(x). Ensimmäisen rivin jälkeen on yleensä yksi tai useampia kommenttirivejä ennen ensimmäistä suoritettavaa käskyä. Nämä kommenttirivit nähdään, kun help-käskyllä kysytään tietoa jostain komennosta. Ensimmäinen kommenttirivi on ns. H1-rivi, sen teksti nähdään, kun etsitään tietoa lookfor-komennolla tai käytetään help-käskyä johonkin hakemistoon, esim. help graph2d. Kommenttirivien jälkeen tulee varsinainen funktion runko, jossa on suoritettavat lauseet sekä mahdollisia kommenttirivejä. Ensimmäisen tyhjän rivin tai suoritettavan käskyn jälkeiset kommenttirivit eivät näy help-käskyllä. Yllä olevassa funktiossa paluuarvo määräytyy (virheentarkistusten jälkeen), kun muuttujaan t sijoitetaan arvo sum(diag(a)). Funktiossa määritellyt muuttujat ovat siis lokaaleja, joten nyt muuttujat t ja A eivät näy funktion ulkopuolella työtilassa, ainoastaan funktion omassa, sisäisessä työtilassa. Funktioissa määriteltyjä muuttujia koskevat samat säännöt ja rajoitukset kuin Matlabin komentorivikäytössä määriteltyjä muuttujia. Funktioissakaan ei tarvitse muuttujien kokoa tai tyyppiä määritellä. Kannattaa huomata, että ei ole syytä käyttää muuttujalle nimeä, joka on jo käytössä jonkin funktion nimenä. Tämä siitä syystä, että tällöin nimi viittaa muuttujaan eikä samannimiseen funktioon. Jotta funktiota voi taas käyttää, täytyy päällekkäinen muuttuja poistaa clear-käskyllä. Muuttujia voidaan määritellä globaaleiksi avainsanalla global. Tällöin kyseinen muuttuja on käytössä, sekä funktion työtilassa, että siellä missä muuttuja määritellään globaaliksi (esim. muut funktiot ja perustyötila). Tutkitaan klassista Lotka-Volterran peto-saalis -mallia. Olkoon y 1 =saalispopulaation tiheys ja y 2 =petopopulaation tiheys. Tällöin malliksi muodostuu yhtälöpari dy 1 = y 1 αy 1 y 2 dt dy 2 = y 2 + βy 1 y 2. dt Tehdään M-tiedosto lotka2.m, jossa on kyseiset differentiaaliyhtälöt. Globaaleiksi muuttujiksi asetetaan mallin vuorovaikutuskertoimet α ja β. 15

38 function yp = lotka2(t, y) % LOTKA Lotka-Volterran saalis-peto -malli global ALPHA BETA yp = [y(1) - ALPHA*y(1)*y(2); -y(2) + BETA*y(1)*y(2)]; Komentoikkunassa voidaan määritellä globaalit muuttujat arvoineen: >>global ALPHA BETA >>ALPHA = 0.01; >>BETA = 0.02; Nyt kertoimien α ja β arvot vaikuttavat myös funktioon lotka2.m. Ratkaistaan differentiaaliyhtälö komennolla ode23 numeerisesti yo. kertoimien arvoilla ja piirretään kuva. >>[t, y] = ode23( lotka2, [0 30], [1; 1]); >>plot(t,y(:,1), k-,t,y(:,2), k: ) >>legend( saalis, peto ), title( Lotka-Volterra ) Lotka Volterra saalis saalistaja Kuva 20: Matlabissa voi määritellä myös pysyviä muuttujia (persistent variables) avainsanalla persistent. Pysyviä muuttujia voi määritellä ainoastaan funktioissa, eikä pysyvän muuttujan arvoa pyyhitä muistista funktiosta poistumisen jälkeen. Pysyvät muuttujat eroavat globaaleista muuttujista siinä, että muut funktiot tai työtila eivät voi niitä käyttää. Pysyville muuttujille on käyttöä lähinnä silloin, kun halutaan että jonkin muuttujan arvo säilyy funktion kutsukertojen välillä, mutta ei haluta määritellä sitä globaaliin työtilaan. Matlabissa voidaan myös tehdä anonyymejä funktioita. Anonyymien funktioiden avulla voidaan muodostaa helposti yksinkertaisia funktioita niin, ettei niistä tarvitse tehdä M-tiedostoa. Anonyymeja funktioita voi luoda joko komentorivillä, M-tiedostossa olevassa funktiossa tai skriptissä. Syntaksi anonyymin funktion muodostamiselle on funktio_kahva lauseke Esim. yksinkertainen lineaarinen kuvaus x 2x + 1 tehdään näin: 16

39 >>f f Sitä voi nyt kutsua tavallisen funktion tavoin, esim. >>f(2) Funktion argumenteista Komennoilla nargin ja nargout voidaan selvittää monellako input- ja output-argumentilla funktiota on kutsuttu. Jos funktiolle halutaan antaa merkkijono argumentiksi, on se laitettava heittomerkkien sisään. Matlab-funktiolle voidaan antaa merkkijonoja argumentteina myös ilman, että ne ovat heittomerkkien sisällä. Esimerkiksi legend sin(x) cos(x) on sama komento kuin legend( sin(x), cos(x) ). Kun tätä muotoa käytetään, ei funktio voi palauttaa tulosargumenttia. Tässä on itse asiassa kyse ns. funktio/komento -dualiteetista eli siitä, että Matlabissa on kaksi eri kutsusyntaksia funktioille: funktiosyntaksi ja komentosyntaksi. Funktiosyntaksi on muotoa >>[tulos1, tulos2,..., tulosn] = funktio(arg1, arg2,..., argn) Komentosyntaksilla funktiokutsu on >>funktio arg1 arg2... argn On siis huomattava, ettei komentosyntaksilla kutsuttaessa voida funktion paluuarvoja sijoittaa muuttujiin. Funktiosyntaksi välittää argumentin arvon, kun taas komentosyntaksilla välitetään argumentti merkkijonona. 2.4 Funktiokahvoista Haluttaessa välittää funktiolle jokin toinen funktio argumentiksi, käytetään funktiokahvaa (function handle). Kun funktiokahva on välitetty funktiolle argumenttina, voidaan sen funktion, johon kahva viittaa, arvoja laskea feval-komennon avulla. Funktiokahva muodostetaan funktion nimen eteen. Tehdään kahva Matlabin valmisfunktioon humps >>fkahva Tehdään funktio kahavan_piirto, jossa käytetään komentoa feval laskemaan funktion arvoja. Komento feval käytettäessä annetaan sille ensimmäiseksi argumentiksi funktiokahva ja loput argumentit ovat ne, jotka välitetään itse funktiolle. Tiedoston kahavan_piirto.m sisältö: 17

40 function kahavan_piirto(kahava, data) plot(data, feval(kahava, data)) Piirretään kuva tällä funktiolla ja etsitään funktion lokaali minimi Matlabin valmisfunktiolla fminsearch. Minimin etsinnässä alkuarvona on x = 0.5. Tässä on siis hyvä huomata, että useat Matlabin valmisfunktiotkin käyttävät kahvoja argumentteinaan. >>kahavan_piirto(fkahva, 0:0.001:1.5) >>minimi = fminsearch(fkahva, 0.5) minimi = Kuva 21: Etsitään vielä funktion humps nollakohta. Esimerkin vuoksi käytetään anonyymia funktiota. Kopioidaan tiedostosta humps.m funktion määrittely ja tehdään anonyymi funktio anon: >>anon (1./ ((x-.3).ˆ2 +.01) + 1./ ((x-.9).ˆ2 +.04) -6); Anonyymi funktio on samalla funktiokahva, joten sitä voidaan käyttää argumenttina funktiolle fzero, jonka avulla etsitään yksi juuri lähtien liikkeelle pisteestä x = 1: >>fzero(anon, 1.0) Operaattorit Matlabin operaattorit jakaantuvat kolmeen luokkaan: aritmeettiset, vertailu- ja loogiset operaattorit. Aritmeettiset operaattorit on jo esitelty edellä. 18

41 2.5.1 Vertailuoperaattorit Vertailuoperaattoreita ovat <, <=, >, >=, == ja =, joista viimeinen tarkoittaa erisuuruutta. Matlabin vertailuoperaattorit tekevät vertailun alkioittain, ja molempien operandien on oltava samankokoisia ellei toinen ole skalaari. Esimerkiksi, jos halutaan testata, ovatko kaksi matriisia samat, on käytettävä funktiota isequal, sillä == palauttaa vain ne alkiot, joissa matriisien alkiot ovat yhtäsuuria. >>A = [ 1 2 3; 4 5 6;]; B = [1 2 4; 5 3 6]; >>A == B >>isequal(a, B) 0 Huomaa, että yllä vertailuoperaattori == ja funktio isequal palauttavat tyyppiä logical olevan arvon, joka voi olla 0 tai Loogiset operaattorit Loogisia operaattoreita on Matlabissa itseasiassa kolmea tyyppiä, mutta esittelemme tässä niistä vain alkioittaiset loogiset operaattorit. Kaksi muuta tyyppiä ovat loogiset bittioperaattorit (esim. bitand) ja ns. oikosulkuoperaattorit (shortcircuit operators) && ja skalaarien vertailuun. Alkioittaisia loogisia operaattoreita ovat & ja tai ei, negaatio xor poissulkeva tai Näitä käytettäessä Matlab tekee loogiset operaatiot alkioittain ja jälleen on vaatimuksena (poikkeuksena ), että taulukot ovat saman kokoisia tai jompikumpi on skalaari. Huomaa, että myös loogiset operaattorit palauttavat tyyppiä logical olevan arvon. >>A = [ ]; >>B = [ ]; >>A & B >>A B >> A 19

Matlabin perusteita Grafiikka

Matlabin perusteita Grafiikka BL40A0000 SSKMO KH 1 Seuraavassa esityksessä oletuksena on, että Matlabia käytetään jossakin ikkunoivassa käyttöjärjestelmässä (PC/Win, Mac, X-Window System). Käytettäessä Matlabia verkon yli joko tekstipäätteeltä,

Lisätiedot

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

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006 Harjoitus 1: Matlab Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tutustuminen Matlab-ohjelmistoon Laskutoimitusten

Lisätiedot

Matemaattiset ohjelmistot A. Osa 2: MATLAB

Matemaattiset ohjelmistot A. Osa 2: MATLAB Matemaattiset ohjelmistot 802364A Osa 2: MATLAB Mikko Orispää 30. lokakuuta 2013 Sisältö 1 MATLAB 2 1.1 Peruslaskutoimitukset......................... 2 1.2 Muuttujat................................ 3

Lisätiedot

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

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

Lisätiedot

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

Matlab-perusteet. Jukka Jauhiainen. OAMK / Tekniikan yksikkö. Hyvinvointiteknologian koulutusohjelma Matlab-perusteet Jukka Jauhiainen OAMK / Tekniikan yksikkö Hyvinvointiteknologian koulutusohjelma Tämän materiaalin tarkoitus on antaa opiskelijalle lyhyehkö johdanto Matlabohjelmiston perusteisiin. Matlabin

Lisätiedot

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 1 / vko 44

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 1 / vko 44 MS-A0003/A0005 Matriisilaskenta Laskuharjoitus / vko Tehtävä (L): Käynnistä Matlab-ohjelma ja kokeile laskea sillä muutama peruslaskutoimitus: laske jokin yhteen-, vähennys-, kerto- ja jakolasku. Laske

Lisätiedot

Valitse ruudun yläosassa oleva painike Download Scilab.

Valitse ruudun yläosassa oleva painike Download Scilab. Luku 1 Ohjeita ohjelmiston Scilab käyttöön 1.1 Ohjelmiston lataaminen Ohjeet ohjelmiston lataamiseen Windows-koneelle. Mene verkko-osoitteeseen www.scilab.org. Valitse ruudun yläosassa oleva painike Download

Lisätiedot

Matriiseista. Emmi Koljonen

Matriiseista. Emmi Koljonen Matriiseista Emmi Koljonen 3. lokakuuta 22 Usein meillä on monta systeemiä kuvaavaa muuttujaa ja voimme kirjoittaa niiden välille riippuvaisuuksia, esim. piirin silmukoihin voidaan soveltaa silmukkavirtayhtälöitä.

Lisätiedot

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

Matlabperusteita, osa 1. Heikki Apiola Matlab-perusteita, osa 1. Heikki Apiola. 12. maaliskuuta 2012 Matlab-perusteita, 12. maaliskuuta 2012 Matlab-perusteita, Ohjelmahahmotelma 1. viikko: Matlab 2. viikko: Maple (+ annettujen Matlab tehtävien ratkaisuja) 3. viikko: Maple ja Matlab (lopputyöt) Matlab-perusteita,

Lisätiedot

Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37

Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37 Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37 Tehtävä 1: Käynnistä Matlab-ohjelma ja kokeile laskea sillä muutama peruslaskutoimitus: laske jokin yhteen-, vähennys-, kerto- ja jakolasku. Laske

Lisätiedot

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

Heikki Apiola, Juha Kuortti, Miika Oksman. 5. lokakuuta Matlabperusteita, osa 1 Matlab-perusteita, 5. lokakuuta 2015 Matlab-perusteita, Mikä on Matlab Matriisilaboratorio [Cleve Moler, Mathworks inc.] Numeerisen laskennan työskentely-ympäristö Suuri joukko matemaattisia ja muita funktioita,

Lisätiedot

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

Tässä dokumentissa on ensimmäisten harjoitusten malliratkaisut MATLABskripteinä. Voit kokeilla itse niiden ajamista ja toimintaa MATLABissa. Laskuharjoitus 1A Mallit Tässä dokumentissa on ensimmäisten harjoitusten malliratkaisut MATLABskripteinä. Voit kokeilla itse niiden ajamista ja toimintaa MATLABissa. 1. tehtävä %% 1. % (i) % Vektorit luodaan

Lisätiedot

Ohjelman käynnistäminen

Ohjelman käynnistäminen >> 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

Lisätiedot

BM20A0700, Matematiikka KoTiB2

BM20A0700, Matematiikka KoTiB2 BM20A0700, Matematiikka KoTiB2 Luennot: Matti Alatalo, Harjoitukset: Oppikirja: Kreyszig, E.: Advanced Engineering Mathematics, 8th Edition, John Wiley & Sons, 1999, luku 7. 1 Kurssin sisältö Matriiseihin

Lisätiedot

Zeon PDF Driver Trial

Zeon PDF Driver Trial Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin

Lisätiedot

mlvektori 1. Muista, että Jacobin matriisi koostuu vektori- tai skalaariarvoisen funktion F ensimmäisistä

mlvektori 1. Muista, että Jacobin matriisi koostuu vektori- tai skalaariarvoisen funktion F ensimmäisistä Aalto-yliopisto, Matematiikan ja Systeemianalyysin laitos mlvektori 1. Muista, että Jacobin matriisi koostuu vektori- tai skalaariarvoisen funktion F ensimmäisistä osittaisderivaatoista: y 1... J F =.

Lisätiedot

BL40A0000 Säätötekniikan ja signaalinkäsittelyn

BL40A0000 Säätötekniikan ja signaalinkäsittelyn 1 BL40A0000 Säätötekniikan ja signaalinkäsittelyn matemaattiset ohjelmistot Luennot ja harjoitukset Katja Hynynen, h. 6431, p. 040-548 8954 Katja.Hynynen@lut.fi Opetus ja suoritusvaatimukset OPETUS: Luentoja

Lisätiedot

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

plot(f(x), x=-5..5, y=-10..10) [] Jokaisen suoritettavan rivin loppuun ; [] Desimaalierotin Maplessa on piste. [] Kommentteja koodin sekaan voi laittaa # -merkin avulla. Esim. #kommentti tähän [] Edelliseen tulokseen voi viitata merkillä

Lisätiedot

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

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä /+^2 Kirjoita muuten sama, mutta ota välilyönti :n jälkeen / +^2 Kopioi molemmat matematiikka-alueet ja liiku alueen sisällä

Lisätiedot

Harjoitus 10: Mathematica

Harjoitus 10: Mathematica Harjoitus 10: Mathematica Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tutustuminen Mathematica-ohjelmistoon Mathematican

Lisätiedot

1 Matriisit ja lineaariset yhtälöryhmät

1 Matriisit ja lineaariset yhtälöryhmät 1 Matriisit ja lineaariset yhtälöryhmät 11 Yhtälöryhmä matriisimuodossa m n-matriisi sisältää mn kpl reaali- tai kompleksilukuja, jotka on asetetettu suorakaiteen muotoiseksi kaavioksi: a 11 a 12 a 1n

Lisätiedot

FUNKTION KUVAAJAN PIIRTÄMINEN

FUNKTION KUVAAJAN PIIRTÄMINEN FUNKTION KUVAAJAN PIIRTÄMINEN Saat kuvapohjan painamalla @-näppäintä tai Insert/Graph/X-Y-POT. Kuvapohjassa on kuusi paikanvaraaja: vaaka-akselin keskellä muuttuja ja päissä minimi- ja maksimiarvot pystyakselin

Lisätiedot

Matematiikka B2 - Avoin yliopisto

Matematiikka B2 - Avoin yliopisto 6. elokuuta 2012 Opetusjärjestelyt Luennot 9:15-11:30 Harjoitukset 12:30-15:00 Tentti Kurssin sisältö (1/2) Matriisit Laskutoimitukset Lineaariset yhtälöryhmät Gaussin eliminointi Lineaarinen riippumattomuus

Lisätiedot

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

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi Matriisit, L20 Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ) ( 0, 4 ), ( ) ( 1 4 2, a 11 a 12 a 21 a 22 ) Merkintöjä 1 Matriisi on suorakulmainen lukukaavio.

Lisätiedot

wxmaxima-pikaopas Ari Lehtonen

wxmaxima-pikaopas Ari Lehtonen wxmaxima-pikaopas Ari Lehtonen. Yleistä Maxima on laaja symboliseen laskentaan suunniteltu ohjelma. Maximalla voidaan sieventää lausekkeita, jakaa polynomeja tekijöihin, ratkaista yhtälöitä, derivoida,

Lisätiedot

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

Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi Matriisit, kertausta Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ) ( 0, 4 ), ( ) ( 1 4 2, a 11 a 12 a 21 a 22 ) Kaavio kirjoitetaan kaarisulkujen väliin

Lisätiedot

Harjoitus 1: Johdatus matemaattiseen mallintamiseen (Matlab)

Harjoitus 1: Johdatus matemaattiseen mallintamiseen (Matlab) Harjoitus 1: Johdatus matemaattiseen mallintamiseen (Matlab) SCI-C0200 Fysiikan ja matematiikan menetelmien studio SCI-C0200 Fysiikan ja matematiikan menetelmien studio 1 MyCourses Kurssilla käytetään

Lisätiedot

Harjoitus 1: Johdatus matemaattiseen mallintamiseen (Matlab)

Harjoitus 1: Johdatus matemaattiseen mallintamiseen (Matlab) Harjoitus 1: Johdatus matemaattiseen mallintamiseen (Matlab) MS-C2107 Sovelletun matematiikan tietokonetyöt MS-C2107 Sovelletun matematiikan tietokonetyöt 1 Ensimmäinen harjoituskierros Aiheet Tutustuminen

Lisätiedot

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45 MS-A0003/A0005 Matriisilaskenta Laskuharjoitus / vko 5 Tehtävä 1 (L): Hahmottele kompleksitasoon ne pisteet, jotka toteuttavat a) z 3 =, b) z + 3 i < 3, c) 1/z >. Yleisesti: ehto z = R, z C muodostaa kompleksitasoon

Lisätiedot

Matlab- ja Maple- ohjelmointi

Matlab- ja Maple- ohjelmointi Perusasioita 2. helmikuuta 2005 Matlab- ja Maple- ohjelmointi Yleistä losoaa ja erityisesti Numsym05-kurssin tarpeita palvellee parhaiten, jos esitän asian rinnakkain Maple:n ja Matlab:n kannalta. Ohjelmien

Lisätiedot

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48 MS-A3/A5 Matriisilaskenta Malliratkaisut 5 / vko 48 Tehtävä (L): a) Onko 4 3 sitä vastaava ominaisarvo? b) Onko λ = 3 matriisin matriisin 2 2 3 2 3 7 9 4 5 2 4 4 ominaisvektori? Jos on, mikä on ominaisarvo?

Lisätiedot

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

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi Matriisit, L20 Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ( 0, 4, ( ( 1 4 2, a 11 a 12 a 21 a 22 Kaavio kirjoitetaan kaarisulkujen väliin (amer. kirjoissa

Lisätiedot

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus Perusohjeita, symbolista laskentaa Geogebralla Kielen vaihtaminen. Jos Geogebrasi kieli on vielä englanti, niin muuta se Options välilehdestä kohdasta Language suomeksi (finnish). Esittelen tässä muutaman

Lisätiedot

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

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 3 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä 3/+^ 3 Kirjoita muuten sama, mutta ota välilyönti :n jälkeen 3/ +^ 3 Liiku matematiikka alueella nuolinäppäimin. Kokeile

Lisätiedot

110. 111. 112. 113. 114. 4. Matriisit ja vektorit. 4.1. Matriisin käsite. 4.2. Matriisialgebra. Olkoon A = , B = Laske A + B, 5 14 9, 1 3 3

110. 111. 112. 113. 114. 4. Matriisit ja vektorit. 4.1. Matriisin käsite. 4.2. Matriisialgebra. Olkoon A = , B = Laske A + B, 5 14 9, 1 3 3 4 Matriisit ja vektorit 4 Matriisin käsite 42 Matriisialgebra 0 2 2 0, B = 2 2 4 6 2 Laske A + B, 2 A + B, AB ja BA A + B = 2 4 6 5, 2 A + B = 5 9 6 5 4 9, 4 7 6 AB = 0 0 0 6 0 0 0, B 22 2 2 0 0 0 6 5

Lisätiedot

T211003 Sovellusohjelmat Matlab osa 4: Skriptit, funktiot ja kontrollirakenteet

T211003 Sovellusohjelmat Matlab osa 4: Skriptit, funktiot ja kontrollirakenteet Ohjelmointi Matlab-komentoja voidaan koota ns. M-tiedostoon. Nimi tulee tiedoston tarkentimesta.m. Matlabilla voidaan ohjelmoida kahdella eri tavalla: Skriptit eli komentojonot eli makrot Funktiot eli

Lisätiedot

ELEC-C5210 Satunnaisprosessit tietoliikenteessä Harjoitus M1,

ELEC-C5210 Satunnaisprosessit tietoliikenteessä Harjoitus M1, ELEC-C5210 Satunnaisprosessit tietoliikenteessä Harjoitus M1, 16.3.2017 1. Syntaksista, vektoreista ja matriiseista: Tehtävän eri kohdat on tehtävä järjestyksessä. Myöhemmissä kohdissa oletetaan, että

Lisätiedot

Matlab-perusteet Harjoitustehtävien ratkaisut

Matlab-perusteet Harjoitustehtävien ratkaisut Matlab-perusteet Harjoitustehtävien ratkaisut Osa 1 Tehtävä: Määrittele muuttujat a ja b, anna niille vaikkapa arvot 3 ja 2 ja kokeile peruslaskutoimituksia niillä. >>a=1;b=2; >>a+b 3 >>a-b -1 >>a*b 2

Lisätiedot

1.1. Määritelmiä ja nimityksiä

1.1. Määritelmiä ja nimityksiä 1.1. Määritelmiä ja nimityksiä Luku joko reaali- tai kompleksiluku. R = {reaaliluvut}, C = {kompleksiluvut} R n = {(x 1, x 2,..., x n ) x 1, x 2,..., x n R} C n = {(x 1, x 2,..., x n ) x 1, x 2,..., x

Lisätiedot

Matematiikka B2 - TUDI

Matematiikka B2 - TUDI Matematiikka B2 - TUDI Miika Tolonen 3. syyskuuta 2012 Miika Tolonen Matematiikka B2 - TUDI 1 Kurssin sisältö (1/2) Matriisit Laskutoimitukset Lineaariset yhtälöryhmät Gaussin eliminointi Lineaarinen riippumattomuus

Lisätiedot

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2 BM20A5700 - Integraauunnokset Harjoitus 2 1. Laske seuraavat raja-arvot. -kohta ratkeaa, kun pistät sekä yläkerran että alakerran muotoon (z z 1 )(z z 2 ), missä siis z 1 ja z 2 ovat näiden lausekkeiden

Lisätiedot

Johdatus tekoälyn taustalla olevaan matematiikkaan

Johdatus tekoälyn taustalla olevaan matematiikkaan Johdatus tekoälyn taustalla olevaan matematiikkaan Informaatioteknologian tiedekunta Jyväskylän yliopisto 5. luento.2.27 Lineaarialgebraa - Miksi? Neuroverkon parametreihin liittyvät kaavat annetaan monesti

Lisätiedot

1.1 Vektorit. MS-A0007 Matriisilaskenta. 1.1 Vektorit. 1.1 Vektorit. Reaalinen n-ulotteinen avaruus on joukko. x 1. R n. 1. Vektorit ja kompleksiluvut

1.1 Vektorit. MS-A0007 Matriisilaskenta. 1.1 Vektorit. 1.1 Vektorit. Reaalinen n-ulotteinen avaruus on joukko. x 1. R n. 1. Vektorit ja kompleksiluvut ja kompleksiluvut ja kompleksiluvut 1.1 MS-A0007 Matriisilaskenta 1. ja kompleksiluvut Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 26.10.2015 Reaalinen

Lisätiedot

Matematiikan tukikurssi, kurssikerta 3

Matematiikan tukikurssi, kurssikerta 3 Matematiikan tukikurssi, kurssikerta 3 1 Epäyhtälöitä Aivan aluksi lienee syytä esittää luvun itseisarvon määritelmä: { x kun x 0 x = x kun x < 0 Siispä esimerkiksi 10 = 10 ja 10 = 10. Seuraavaksi listaus

Lisätiedot

Matemaattiset ohjelmistot 1-2 ov, 2-3 op

Matemaattiset ohjelmistot 1-2 ov, 2-3 op Matemaattiset ohjelmistot 1-2 ov, 2-3 op Aloitustehtävät Perehdy netissä olevan oppaan http://mtl.uta.fi/opetus/matem_ohjelmistot/matlab lukuihin 0 Johdanto, 1 matriisit ja vektorit sekä 4 Ohjelmointi

Lisätiedot

Harjoitus 1 -- Ratkaisut

Harjoitus 1 -- Ratkaisut Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin

Lisätiedot

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

Käänteismatriisin. Aiheet. Käänteismatriisin ominaisuuksia. Rivioperaatiot matriisitulona. Matriisin kääntäminen rivioperaatioiden avulla Käänteismatriisi, L5 1 Tässä kalvosarjassa käsittelemme neliömatriiseja. Ilman asian jatkuvaa toistamista oletamme seuraavassa, että kaikki käsittelemämme matriisit ovat neliömatriiseja. Määritelmä. Olkoon

Lisätiedot

Scilab 5.3.3 - ohjelman alkeisohjeet

Scilab 5.3.3 - ohjelman alkeisohjeet Pohdin projekti Scilab 5.3.3 - ohjelman alkeisohjeet Käytön aloittaminen Ohjelma käynnistetään kaksoisklikkaamalla työpöydällä ohjelman kuvaketta ja ohjelman käyttö lopetetaan käyttämällä komentoa exit

Lisätiedot

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

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä 3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä Lineaarinen m:n yhtälön yhtälöryhmä, jossa on n tuntematonta x 1,, x n on joukko yhtälöitä, jotka ovat muotoa a 11 x 1 + + a 1n x n = b 1 a 21

Lisätiedot

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

Opiskelijan pikaopas STACK-tehtäviin. Lassi Korhonen, Oulun yliopisto Opiskelijan pikaopas STACK-tehtäviin Lassi Korhonen, Oulun yliopisto 21.3.2016 SISÄLLYSLUETTELO Oppaan käyttäminen... 2 Vastauksen syöttämisen perusteet... 2 Operaatiot... 2 Luvut ja vakiot... 3 Funktiot...

Lisätiedot

Kieliteknologian ATK-ympäristö Kolmas luento

Kieliteknologian ATK-ympäristö Kolmas luento Kieliteknologian ATK-ympäristö Kolmas luento Miikka Silfverberg Nykykielten laitos 20. syyskuuta 2010 Miikka Silfverberg (Nykykielten laitos) Kieliteknologian ATK-ympäristö: Luento 3 20. syyskuuta 2010

Lisätiedot

Harjoitus 1 -- Ratkaisut

Harjoitus 1 -- Ratkaisut Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin

Lisätiedot

FUNKTION KUVAAJAN PIIRTÄMINEN

FUNKTION KUVAAJAN PIIRTÄMINEN FUNKTION KUVAAJAN PIIRTÄMINEN Saat kuvapohjan Plots/Insert Plot/XY plot Huomaa - ja y-akselin paikanvaraajat (ja näissä valmiina yksikön syöttöruutu). Siirrä - akselia ylös/alas. Palauta origo perinteiseen

Lisätiedot

Ominaisarvo-hajoitelma ja diagonalisointi

Ominaisarvo-hajoitelma ja diagonalisointi Ominaisarvo-hajoitelma ja a 1 Lause 1: Jos reaalisella n n matriisilla A on n eri suurta reaalista ominaisarvoa λ 1,λ 2,...,λ n, λ i λ j, kun i j, niin vastaavat ominaisvektorit x 1, x 2,..., x n muodostavat

Lisätiedot

Valokuvien matematiikkaa

Valokuvien matematiikkaa Valokuvien matematiikkaa Avainsanat: valokuva, pikseli, päättely Luokkataso: 3.-5. luokka, 6.-9. luokka, lukio, yliopisto Välineet: Kynä, tehtävämonisteet (liitteenä), mahdollisiin jatkotutkimuksiin tietokone

Lisätiedot

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

Talousmatematiikan perusteet: Luento 9. Matriisien peruskäsitteet Yksinkertaiset laskutoimitukset Transponointi Matriisitulo Talousmatematiikan perusteet: Luento 9 Matriisien peruskäsitteet Yksinkertaiset laskutoimitukset Transponointi Matriisitulo Viime luennolta Esim. Yritys tekee elintarviketeollisuuden käyttämää puolivalmistetta,

Lisätiedot

Laskuharjoitus 9, tehtävä 6

Laskuharjoitus 9, tehtävä 6 Aalto-yliopiston perustieteiden korkeakoulu Jouni Pousi Systeemianalyysin laboratorio Mat-2.4129 Systeemien identifiointi Laskuharjoitus 9, tehtävä 6 Tämä ohje sisältää vaihtoehtoisen tavan laskuharjoituksen

Lisätiedot

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

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä 1 3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä Lineaarinen m:n yhtälön yhtälöryhmä, jossa on n tuntematonta x 1,, x n on joukko yhtälöitä, jotka ovat muotoa a 11 x 1 + + a 1n x n = b 1 a

Lisätiedot

Neliömatriisi A on ortogonaalinen (eli ortogonaalimatriisi), jos sen alkiot ovat reaalisia ja

Neliömatriisi A on ortogonaalinen (eli ortogonaalimatriisi), jos sen alkiot ovat reaalisia ja 7 NELIÖMATRIISIN DIAGONALISOINTI. Ortogonaaliset matriisit Neliömatriisi A on ortogonaalinen (eli ortogonaalimatriisi), jos sen alkiot ovat reaalisia ja A - = A T () Muistutus: Kokoa n olevien vektorien

Lisätiedot

Harjoitus 3 -- Ratkaisut

Harjoitus 3 -- Ratkaisut Harjoitus 3 -- Ratkaisut 1 ' '-merkki kirjoitetaan =, ' '-merkki!=, ' '-merkki ==. Yhtälöiden ratkaisusta puhutaan lisää myöhemmin. a f x, y : If ehtolauseke x y, y tämä palautetaan, jos

Lisätiedot

Matriisilaskenta Laskuharjoitus 5 - Ratkaisut / vko 41

Matriisilaskenta Laskuharjoitus 5 - Ratkaisut / vko 41 MS-A0004/MS-A0006 Matriisilaskenta, I/06 Matriisilaskenta Laskuharjoitus 5 - Ratkaisut / vko 4 Tehtävä 5 (L): a) Oletetaan, että λ 0 on kääntyvän matriisin A ominaisarvo. Osoita, että /λ on matriisin A

Lisätiedot

Lineaarialgebra ja matriisilaskenta I

Lineaarialgebra ja matriisilaskenta I Lineaarialgebra ja matriisilaskenta I 30.5.2013 HY / Avoin yliopisto Jokke Häsä, 1/19 Käytännön asioita Kurssi on suunnilleen puolessa välissä. Kannattaa tarkistaa tavoitetaulukosta, mitä on oppinut ja

Lisätiedot

Mat-1.C Matemaattiset ohjelmistot

Mat-1.C Matemaattiset ohjelmistot Mat-.C Matemaattiset ohjelmistot Luento ma 9.3.0 $z; Error, (in rtable/product) invalid arguments.z; z C z C z3 3 C z4 4 C z5 5.Tr z ; z C z C z3 3 C z4 4 C z5 5 ; Error, (in rtable/power) eponentiation

Lisätiedot

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

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

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

1.1 Vektorit. MS-A0004/A0006 Matriisilaskenta. 1.1 Vektorit. 1.1 Vektorit. Reaalinen n-ulotteinen avaruus on joukko. x 1. R n. ja kompleksiluvut ja kompleksiluvut 1.1 MS-A0004/A0006 Matriisilaskenta 1. ja kompleksiluvut Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 8.9.015 Reaalinen

Lisätiedot

IDL - datan sovitus. ATK tähtitieteessä. IDL - esimerkiksi linfit. IDL - esimerkiksi linfit

IDL - datan sovitus. ATK tähtitieteessä. IDL - esimerkiksi linfit. IDL - esimerkiksi linfit IDL - datan sovitus 3. toukokuuta 2017 IDL sisältää monia yleisimpiä funktioita, joita voi helposti sovittaa datapisteisiin. Jos valmiista funktioista ei löydy mieleistä, voi oman mielivaltaisen sovitusfunktion

Lisätiedot

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

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

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

Matriisien tulo. Matriisit ja lineaarinen yhtälöryhmä Matriisien tulo Lause Olkoot A, B ja C matriiseja ja R Tällöin (a) A(B + C) =AB + AC, (b) (A + B)C = AC + BC, (c) A(BC) =(AB)C, (d) ( A)B = A( B) = (AB), aina, kun kyseiset laskutoimitukset on määritelty

Lisätiedot

1. Lineaarialgebraa A := Matriisin osia voidaan muutella päivittämällä riviä, saraketta tai osamatriisia (Matlabmaisesti): B :=

1. Lineaarialgebraa A := Matriisin osia voidaan muutella päivittämällä riviä, saraketta tai osamatriisia (Matlabmaisesti): B := 27. elokuuta 202 2 27. elokuuta 202 www.math.hut/~apiola/maple/la.pdf. Lineaarialgebraa Maplen matriisi- ja vektorioperaatiot ovat kirjastopakkauksissa LinearAlgebra ja linalg. Keskitymme pääasiassa edelliseen,

Lisätiedot

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

PERUSLASKUJA. Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +5^2 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä 3/4+^2 3 4+ 2 Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +^2 3 + 4 2 Kopioi

Lisätiedot

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

Octave-opas. Mikä on Octave ja miksi? Asennus Octave-opas Mikä on Octave ja miksi? Asennus Käynnistys ja käyttöliittymä Komennot tiedostojen hallintaan SciTE-editor.m-tiedostot Ohjeita muualla Mikä on Octave ja miksi? Octave on numeeriseen laskentaan

Lisätiedot

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014 25. syyskuuta 2014 IDL - datan sovitus IDL sisältää monia yleisimpiä funktioita, joita voi helposti sovittaa datapisteisiin. Jos valmiista funktioista ei löydy mieleistä, voi oman mielivaltaisen sovitusfunktion

Lisätiedot

Luento 8: Epälineaarinen optimointi

Luento 8: Epälineaarinen optimointi Luento 8: Epälineaarinen optimointi Vektoriavaruus R n R n on kaikkien n-jonojen x := (x,..., x n ) joukko. Siis R n := Määritellään nollavektori 0 = (0,..., 0). Reaalisten m n-matriisien joukkoa merkitään

Lisätiedot

Insinöörimatematiikka D

Insinöörimatematiikka D Insinöörimatematiikka D M. Hirvensalo mikhirve@utu.fi V. Junnila viljun@utu.fi Matematiikan ja tilastotieteen laitos Turun yliopisto 2015 M. Hirvensalo mikhirve@utu.fi V. Junnila viljun@utu.fi Luentokalvot

Lisätiedot

Muuttujien määrittely

Muuttujien määrittely Tarja Heikkilä Muuttujien määrittely Määrittele muuttujat SPSS-ohjelmaan lomakkeen kysymyksistä. Harjoitusta varten lomakkeeseen on muokattu kysymyksiä kahdesta opiskelijoiden tekemästä Joupiskan rinneravintolaa

Lisätiedot

Kokonaislukuaritmetiikka vs. logiikkaluupit

Kokonaislukuaritmetiikka vs. logiikkaluupit Diskreetti matematiikka, syksy 2010 Matlab-harjoitus 3 (18.11. klo 16-18 MP103) Tehtäviin vastataan tälle paperille, osoitettuihin tyhjiin alueisiin, yleensä tyhjille riveille. Tehtävät saa ja on suorastaan

Lisätiedot

Harjoitus 4 -- Ratkaisut

Harjoitus 4 -- Ratkaisut Harjoitus -- Ratkaisut 1 Ei kommenttia. Tutkittava funktio: In[15]:= f x : x 1 x Sin x ; Plot f x, x, 0, 3 Π, PlotRange All Out[159]= Luodaan tasavälinen pisteistö välille 0 x 3 Π. Tehdään se ensin kiinnitetyllä

Lisätiedot

Oppimistavoitematriisi

Oppimistavoitematriisi Oppimistavoitematriisi Lineaarialgebra ja matriisilaskenta I Esitiedot Arvosanaan 1 2 riittävät Arvosanaan 3 4 riittävät Arvosanaan 5 riittävät Yhtälöryhmät (YR) Osaan ratkaista ensimmäisen asteen yhtälöitä

Lisätiedot

5 OMINAISARVOT JA OMINAISVEKTORIT

5 OMINAISARVOT JA OMINAISVEKTORIT 5 OMINAISARVOT JA OMINAISVEKTORIT Ominaisarvo-ongelma Käsitellään neliömatriiseja: olkoon A n n-matriisi. Luku on matriisin A ominaisarvo (eigenvalue), jos on olemassa vektori x siten, että Ax = x () Yhtälön

Lisätiedot

(1.1) Ae j = a k,j e k.

(1.1) Ae j = a k,j e k. Lineaarikuvauksen determinantti ja jälki 1. Lineaarikuvauksen matriisi. Palautetaan mieleen, mikä lineaarikuvauksen matriisi annetun kannan suhteen on. Olkoot V äärellisulotteinen vektoriavaruus, n = dim

Lisätiedot

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

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät Matematiikan peruskurssi K3/P3, syksy 25 Kenrick Bingham 825 Toisen välikokeen alueen ydinasioita Alla on lueteltu joitakin koealueen ydinkäsitteitä, joiden on hyvä olla ensiksi selvillä kokeeseen valmistauduttaessa

Lisätiedot

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla: 11 Determinantti Neliömatriisille voidaan laskea luku, joka kertoo muun muassa, onko matriisi kääntyvä vai ei Tätä lukua kutsutaan matriisin determinantiksi Determinantilla on muitakin sovelluksia, mutta

Lisätiedot

Oppimistavoitematriisi

Oppimistavoitematriisi Oppimistavoitematriisi Lineaarialgebra ja matriisilaskenta I Arvosanaan 1 2 riittävät Arvosanaan 5 riittävät Yhtälöryhmät (YR) Osaan ratkaista ensimmäisen asteen yhtälöitä ja yhtälöpareja Osaan muokata

Lisätiedot

Harjoitus 2 -- Ratkaisut

Harjoitus 2 -- Ratkaisut Harjoitus -- Ratkaisut Listat a Table-komento Huom. (*-merkki aloittaa kommentin ja *)-merkki päättää sen. Table x, x,. x:n arvo, viimeinen x:n arvo, askelpituus, 4, 9, 6, 5, 36, 49, 64, 8,,, 44, 69, 96,

Lisätiedot

= 2 L L. f (x)dx. coshx dx = 1 L. sinhx nπ. sin. sin L + 2 L. a n. L 2 + n 2 cos. tehdään approksimoinnissa virhe, jota voidaan arvioida integraalin

= 2 L L. f (x)dx. coshx dx = 1 L. sinhx nπ. sin. sin L + 2 L. a n. L 2 + n 2 cos. tehdään approksimoinnissa virhe, jota voidaan arvioida integraalin BMA7 - Integraalimuunnokset Harjoitus 9. Määritä -jaksollisen funktion f x = coshx, < x < Fourier-sarja. Funktion on parillinen, joten b n = kun n =,,3,... Parillisuudesta johtuen kertoimet a ja a n saadaan

Lisätiedot

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

ATK tähtitieteessä. Osa 2 - IDL perusominaisuudet. 12. syyskuuta 2014 12. syyskuuta 2014 IDL - Interactive Data Language IDL on tulkattava ohjelmointikieli, jonka vahvuuksia ovat: Yksinkertainen, johdonmukainen komentosyntaksi. Voidaan käyttää interaktiivisesti, tai rakentamalla

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen

Lisätiedot

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014 25. syyskuuta 2014 IDL - datan sovitus IDL sisältää monia yleisimpiä funktioita, joita voi helposti sovittaa datapisteisiin. Jos valmiista funktioista ei löydy mieleistä, voi oman mielivaltaisen sovitusfunktion

Lisätiedot

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

Matlabin perusteet. 1. Käyttöliittymä: Matlabin perusteet Matlabin (MATrix LABoratory) perusfilosofia on, että se käsittelee kaikkia muuttujia matriiseina, joiden erikoistapauksia ovat vektorit ja skalaariluvut. Näin ollen se soveltuu erityisesti

Lisätiedot

Luento 4. Timo Savola. 21. huhtikuuta 2006

Luento 4. Timo Savola. 21. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 4 Timo Savola 21. huhtikuuta 2006 Osa I Shell Lausekkeet Komentoriville kirjotettu komento on lauseke echo "foo" echo $USER MUUTTUJA=1 ls -l Rivinvaihto

Lisätiedot

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1 TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio Mat-.39 Optimointioppi Kimmo Berg 8. harjoitus - ratkaisut. a)huomataan ensinnäkin että kummankin jonon raja-arvo r on nolla. Oletetaan lisäksi että

Lisätiedot

Mukavia kokeiluja ClassPad 330 -laskimella

Mukavia kokeiluja ClassPad 330 -laskimella Mukavia kokeiluja ClassPad 330 -laskimella Tervetuloa tutustumaan Casio ClassPad laskimeen! Jos laskin ei ole yksin omassa käytössäsi, on hyvä tyhjentää aluksi muistit ja näytöt valikosta Edit->Clear All

Lisätiedot

ABTEKNILLINEN KORKEAKOULU

ABTEKNILLINEN KORKEAKOULU ABTEKNILLINEN KORKEAKOULU Mat-1.411 Matematiikan peruskurssi C1 MAPLE Lempeä johdatus Harri Hakula 24. syyskuuta, 2004 1 Sisällys 1 Matemaattisista ohjelmistoista 2 1.1 Symboliset ohjelmistot 2 1.2 Numeeriset

Lisätiedot

802118P Lineaarialgebra I (4 op)

802118P Lineaarialgebra I (4 op) 802118P Lineaarialgebra I (4 op) Tero Vedenjuoksu Oulun yliopisto Matemaattisten tieteiden laitos 2012 Lineaarialgebra I Yhteystiedot: Tero Vedenjuoksu tero.vedenjuoksu@oulu.fi Työhuone M206 Kurssin kotisivu

Lisätiedot

mlgrafiikka 1. Piirrä samaan kuvaan funktioiden cos ja sin kuvaajat välillä [ 2π, 2π] Aloita tyyliin: 2. Piirrä

mlgrafiikka 1. Piirrä samaan kuvaan funktioiden cos ja sin kuvaajat välillä [ 2π, 2π] Aloita tyyliin: 2. Piirrä Aalto-yliopisto, Matematiikan ja Systeemianalyysin laitos -e mlgrafiikka 1. Piirrä samaan kuvaan funktioiden cos ja sin kuvaajat välillä [ 2π, 2π] Aloita tyyliin: x=linspace(-2*pi,2*pi); y1=cos(x); y2=sin(x);

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

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

Muuttujan sisällön näet kirjoittamalla sen nimen ilman puolipistettä Aalto-yliopisto, Matematiikan ja Systeemianalyysin laitos -e mlkompleksianalyysi 1. mlk001.tex Ensiapuohjeita Sijoitus muuttujaan esim: >> z=(1+i)/(1-2*i) Puolipiste lopussa estää tulostuksen. Muuttujan

Lisätiedot

1 Ominaisarvot ja ominaisvektorit

1 Ominaisarvot ja ominaisvektorit 1 Ominaisarvot ja ominaisvektorit Olkoon A = [a jk ] n n matriisi. Tarkastellaan vektoriyhtälöä Ax = λx, (1) 1 missä λ on luku. Sellaista λ:n arvoa, jolla yhtälöllä on ratkaisu x 0, kutsutaan matriisin

Lisätiedot

Lineaarialgebra ja matriisilaskenta I

Lineaarialgebra ja matriisilaskenta I Lineaarialgebra ja matriisilaskenta I 29.5.2013 HY / Avoin yliopisto Jokke Häsä, 1/26 Kertausta: Kanta Määritelmä Oletetaan, että w 1, w 2,..., w k W. Vektorijono ( w 1, w 2,..., w k ) on aliavaruuden

Lisätiedot

MS-C1340 Lineaarialgebra ja

MS-C1340 Lineaarialgebra ja MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt Vektoriavaruudet Riikka Kangaslampi kevät 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Idea Lineaarisen systeemin ratkaiseminen Olkoon

Lisätiedot