MATEMAATTISET OHJELMISTOT. Syksy 2012
|
|
- Jalmari Jurkka
- 7 vuotta sitten
- Katselukertoja:
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
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ätiedotHarjoitus 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ätiedotMatemaattiset 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ätiedotMatriisit 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ätiedotMatlab-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ätiedotMS-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ätiedotValitse 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ätiedotMatriiseista. 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ätiedotMatlabperusteita, 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ätiedotMatriisilaskenta 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ätiedotHeikki 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ätiedotTä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ätiedotOhjelman 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ätiedotBM20A0700, 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ätiedotZeon 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ätiedotmlvektori 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ätiedotBL40A0000 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ätiedotplot(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ätiedotPERUSLASKUJA. 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ätiedotHarjoitus 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ätiedot1 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ätiedotFUNKTION 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ätiedotMatematiikka 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ätiedotMatriisit, 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ätiedotwxmaxima-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ätiedotMatriisit, 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ätiedotHarjoitus 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ätiedotHarjoitus 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ätiedotMS-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ätiedotMatlab- 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ätiedotMS-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ätiedotMatriisit, 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ätiedotHannu 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ätiedotPERUSLASKUJA. 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ätiedot110. 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ätiedotT211003 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ätiedotELEC-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ätiedotMatlab-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ätiedot1.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ätiedotMatematiikka 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ätiedotz 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ätiedotJohdatus 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ätiedot1.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ätiedotMatematiikan 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ätiedotMatemaattiset 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ätiedotHarjoitus 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ätiedotKää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ätiedotScilab 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ätiedot3 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ätiedotOpiskelijan 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ätiedotKieliteknologian 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ätiedotHarjoitus 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ätiedotFUNKTION 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ätiedotOminaisarvo-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ätiedotValokuvien 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ätiedotTalousmatematiikan 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ätiedotLaskuharjoitus 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ätiedot3 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ätiedotNeliö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ätiedotHarjoitus 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ätiedotMatriisilaskenta 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ätiedotLineaarialgebra 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ätiedotMat-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ätiedotIDL - 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ätiedot1.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ätiedotIDL - 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ätiedotATK 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ätiedotMatriisien 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ätiedot1. 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ätiedotPERUSLASKUJA. 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ätiedotOctave-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ätiedotATK 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ätiedotLuento 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ätiedotInsinöö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ätiedotMuuttujien 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ätiedotKokonaislukuaritmetiikka 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ätiedotHarjoitus 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ätiedotOppimistavoitematriisi
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ätiedot5 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.
Lineaarikuvauksen determinantti ja jälki 1. Lineaarikuvauksen matriisi. Palautetaan mieleen, mikä lineaarikuvauksen matriisi annetun kannan suhteen on. Olkoot V äärellisulotteinen vektoriavaruus, n = dim
LisätiedotMatriisi-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ätiedotA = 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ätiedotOppimistavoitematriisi
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ätiedotHarjoitus 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
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ätiedotATK 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ätiedotOhjelmoinnin 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ätiedotATK 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ätiedotMatlabin 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ätiedotLuento 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
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ätiedotMukavia 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ätiedotABTEKNILLINEN 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ätiedot802118P 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ätiedotmlgrafiikka 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ätiedot811120P 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ätiedotMuuttujan 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ätiedot1 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ätiedotLineaarialgebra 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ätiedotMS-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