SCILAB Osa 1. Timo Mäkelä
|
|
- Teemu Heino
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 SCILAB Osa 1 Timo Mäkelä Sisällysluettelo 1. KÄYTTÖLIITTYMÄ YLEISTÄ PERUSIKKUNAT Komentoikkuna Helppi Editori KOMENNOT MUITA IKKUNOITA Komentohistoria Muuttujaselain Telakointi YLEISIÄ KOMENTOJA SKALAARIT LASKUTOIMITUKSET YLEISIÄ VAKIOITA PERUSFUNKTIOT MATRIISIT MATRIISIEN SYÖTTÖ VEKTORIEN SYÖTTÖ SATUNNAISMATRIISIT OSAMATRIISIT JA LOHKOMATRIISIT MATRIISIOPERAATIOT TAULUKKO-OPERAATIOT TAULUKKOFUNKTIOT TIETOTYYPPEJÄ LISTAT LUKUJEN ESITYSMUODOT Liukuluvut Kokonaisluvut Rationaaliluvut FUNKTIOT JA SKRIPTIT...47
2 Scilab Osa KÄYTTÖLIITTYMÄ 1.1 Yleistä Scilab on avoimen lähdekoodin matematiikkaohjelma, jolla voi suorittaa numeerista laskentaa havainnollistaa asioita kuvaajilla tehdä ohjelmia. Scilab sisältää myös simulaattorin Xcos, jolla voi graafisesti lohkokaavioita käyttäen rakentaa järjestelmiä. Scilabin www-kotisivu on Sieltä voi ladata ohjelman. Sieltä löytyy myös ohjelman käyttöoppaita ja hyödyllisiä linkkejä. Scilabia voidaan laajentaa moduleilla, jotka ovat käyttäjien tekemiä ohjelmapaketteja. Modulit löytyvät ohjelman kotisivulta. Tässä tekstissä esitellään Scilabin peruskäyttöä (versio: Scilab ). Ohjelmointia ja Xcosia käsitellään muissa teksteissä. 1.2 Perusikkunat Komentoikkuna Kun Scilab-ohjelma käynnistetään, aukeaa komentoikkuna Scilab Console. Scilab on komentopohjainen ohjelma, jossa komennot kirjoitetaan komentoikkunaan. Ohjelman valikostoja esitellään myöhemmin eri yhteyksissä. Valikkokomennolla Preferences: Show/Hide Toolbar saa painikerivistön näkyville tai pois näkyvistä. Scilabin tiedosto-operaatiot käyttävät lähtökohtanaan nykyistä hakemistoa. Valikkokomennolla File: Display Current Director tulostuu nykyinen hakemisto komentoikkunaan. File: Change Current Directory voi vaihtaa nykyistä hakemistoa Komennolla clc tyhjennetään komentoikkuna Helppi Scilabin help-toiminto käynnistyy painikkeella tai komennolla help. 1 Oikeastaan Scilab beta-4
3 3 Scilab Osa 1 Scilabin help-ikkuna koostuu kahdesta osasta: Vasemmassa ikkunassa on hakemisto- tai hakutoiminto. Ikkunan toiminnon voi vaihtaa vasemmassa yläreunassa olevilla painikkeilla. o Painike : selataan toimintoja hakemistoikkunan kautta o Painike : etsitään toimintoja kirjoittamalla toimintoon liittyvää tekstiä. Oikeassa ikkuna on tietoa valitusta toiminnosta. Haluamastaan Scilabin komennosta saa tietoa komennolla help komento. -->help sin Komennosta voi etsiä tietoa myös help-ikkunaa käyttäen. ESIMERKKI Komennolla -->help symbols aukeaa helppi-ikkuna, jossa on Scilabin operaattorit ja niiden nimet, joita voidaan käyttää helpkomennossa. Esimerkiksi komennolla -->help colon aukeaa help-ikkuna operaattorista kaksoispiste Editori Valikkokomennolla Applications: SciNotes, painikkeella tai komennolla editor aukeaa editori SciNotes, jota käyttäen on kätevä kirjoittaa pidempiä komentojonoja tai tehdä ohjelmia. Editori tuntee Scilabin syntaksin.
4 Scilab Osa 1 4 Editorissa voi olla useita tiedostoja, joista välilehtipainikkeella voi valita haluamansa tiedoston. Tehdyt komennot tai ohjelmat voidaan tallentaa tiedostoon komennolla File: Save (Ctrl+s). Tiedoston tyyppi on oltava.sce tai.sci. Ohjelma tai komentojono 1 saadaan ladattua Scilabiin SciNoten valikkokomennolla Execute: file with no echo: Tiedoston komennot suoritetaan tai ohjelma ladataan Scilabiin. Tiedoston tai ohjelman komentoja ei näytetä Scilabin komentoikkunassa. Tiedosto on tallennettava ennen komennon suorittamista. Execute: file with echo: Tiedoston komennot suoritetaan tai ohjelma ladataan Scilabiin. Tiedoston tai ohjelman komennot näytetään Scilabin komentoikkunassa. Tiedostoa ei tarvitse tallentaa ennen komennon suorittamista. Execute: the selection with echo: Valitut komennot suoritetaan ja näytetään Scilabin komentoikkunassa. Komentoja ei tarvitse tallentaa. Scilabiin ladattu ohjelma voidaan ajaa omalla kutsukomennollaan. Editoriin voi tietenkin ladata aiemmin tehtyjä tiedostoja SciNoten painikkeella valikkokomennolla File: Open (Ctrl+o). Scilabin painikkeella tai valikkokomennolla File: Open a file 1.3 Komennot Komennot kirjoitetaan komentoikkunaan komentokehotteen --> perään komentoikkunaan Scilab Console. Komennot päätetään painamalla Enter-näppäintä. Tällöin komennon tulos tulee näytölle. Jos komennon perässä on puolipiste, niin komennon tulos ei tule näytölle. Tätä kannattaa käyttää varsinkin suurissa matriiseissa. Samalle riville voi kirjoittaa useita komentoja erottamalla ne pilkulla: kaikki komennot tulevat näkyviin näytölle puolipisteellä: viimeinen komento tule näkyviin näytölle. Jos viimeisen komennon perässä on puolipiste, ei sekään tule näkyviin. Jos komento ei mahdu yhdelle riville se voidaan jatkaa seuraavalla riville kirjoittamalla.. ja painamalla Enteriä: -->s= > s = Näitä asioita käsitellään tarkemmin Osan 1 luvussa 5 Funktiot ja skriptit sekä tekstissä Scilab Ohjelmointi.
5 5 Scilab Osa 1 Komentoja annettaessa voi käyttää komennon täydennystä: kirjoitetaan komennon, muuttujan tai funktion alkuosa ja painetaan tabulaattoria. Tällöin Scilab täydentää tai antaa valikon, josta voi täydentää komentoa. Tätä kannattaa käyttää varsinkin pitkiä komentoja tai muuttujanimiä kirjoitettaessa. Scilabissa isot ja pienet kirjaimet ovat eri kirjaimia. Kommentit aloitetaan kahdella kauttaviivalla // ja ne jatkuvat rivin loppuun. Ohjelman ajon voi keskeyttää näppäimillä Ctrl+c ja antamalla sen jälkeen komento abort. Aikaisempia komentoja voi kopioida normaaliin Windows-ohjelmien tapaan. Lisäksi komentoja voi selata kätevästi näppäimillä: Näppäily Home End Toiminto edellinen komento seuraava komento oikealle vasemmalle rivin alkuun rivin loppuun Komennolla alku saadaan edellinen komento, joka alkaa merkeillä alku. Komennolla diary( tiedoston_nimi ) aloitetaan Scilabin komentojen tallentaminen nykyisessä hakemistossa sijaitsevaan tiedostoon. Tallennus lopetetaan komennolla diary(0). ESIMERKKI. Suoritetaan seuraavat Scilabin komennot. -->diary('istunto'); -->A=rand(2,2) A = >A^ >diary(0)
6 Scilab Osa 1 6 Tämä tallentuu samanlaisena (ensimmäistä diary-komentoa lukuunottamatta) tekstitiedostoon 'istunto', josta se voidaan tekstieditorilla lukea. 1.4 Muita ikkunoita Komentohistoria Valikkokomennolla Applications: Command History aukeaa komentohistoriaikkuna. Komentohistoriaikkunassa voi selata aiempia komentoja. Sieltä voi mm. valita yhden tai useamman komennon suoritukseen. kopioida komentoja editoriin SciNotes. Komennot annetaan joko valikosta Edit tai putkahdusvalikkoa käyttäen Muuttujaselain Valikkokomennolla Applications: Variable Browser aukeaa muuttujaselain. Muuttujaselaimessa voi tutkia muuttujia, niiden tyyppiä, kokoa. Kaksoisklikkaamalla muuttujan nimeä aukeaa muuttujaeditori, jossa voi tutkia muuttujien arvoja ja halutessaan muuttaa niitä.
7 7 Scilab Osa Telakointi Scilabissa on mahdollista telakoida ikkunoita: Tämä tarkoittaa sitä, että useampi ikkuna on saman ikkunan sisällä. Telakointi tapahtuu vetämällä hiirellä otsikkorivistä ikkuna kohdeikkunan päälle. Kohdeikkunassa oleva viivoitus näyttää mihin kohtaan ikkuna tulee. Telakoidun ikkunan kokoa voi tietenkin muuttaa tuttuun Windows-tyyliin. Telakoinnin voi purkaa ikkunan oikeassa yläkulmassa olevalla vinonuolella. Jos ikkunat ovat päällekkäin, tulee ikkunan vasempaan alakulmaan painikkeet, jolla voi valita näkyvissä olevan ikkunan. Seuraavassa kuvassa on telakoitu komentoikkunaan Scilab Console editori-ikkuna SciNotes ja komentohistoriaikkuna Command History.
8 Scilab Osa Yleisiä komentoja Seuraavaan taulukkoon on koottu joitain hyödyllisiä yleiskomentoja. Komento who_user clear clear a b clc clf scf() dir Merkitys Tulostaa työtilassa olevien käyttäjän muuttujien ja funktioiden nimet Poistaa kaikki suojaamattomat muuttujat työtilasta Poistaa muuttujat a ja b työtilasta Tyhjentää komentoikkunan Tyhjentää nykyisen grafiikkaikkunan Avataan uusi grafiikkaikkuna Tulostaa työhakemiston sisällön ESIMERKKEJÄ. -->who_user User variables are: B A x y C help home Using 551 elements ouf of >clear C -->who_user User variables are:
9 9 Scilab Osa 1 B A x y help home Using 543 elements ouf of >clear x y -->who_user User variables are: B A help home Using 537 elements ouf of >clear -->who_user User variables are: home Using 20 elements ouf of SKALAARIT Scilabin keskeinen tietoalkio on matriisi. Skalaari eli luku on 1 1-matriisi: matriisi jossa on yksi rivi ja yksi sarake. Normaalisti luvut ovat liukuluja. Desimaalierotin on desimaalipiste. Itseisarvoltaan suuria ja pieniä lukuja voidaan kirjoittaa e- tai d-merkintää käyttäen: kirjaimen e tai d perässä on kokonaisluku, joka tarkoittaa luvun 10 potenssia. ESIMERKKEJÄ. --> >3.456e >3.456e >3.456d Laskutoimitukset Skalaareilla laskenta tapahtuu normaaliin tapaan. Laskentaoperaattorit ovat luonnolliset:
10 Scilab Osa 1 10 Operaatio Operandi Huomautus Yhteenlasku + Vähennyslasku Kertolasku * Kertomerkki on aina laitettava. Jakolasku / Potenssin korotus ^ tai ** --> Monta komentoa voidaan antaa samalla rivillä erottamalla ne pilkulla: -->2^10, 2**10, 5*(3+2), (6+2)/ Myös puolipistettä voidaan käyttää erottimena. Tällöin vain viimeisen komennon tulos tulee näytölle eikä sekään, jos viimeinen komento päätetään puolipisteeseen. Muuttujiin voidaan tallentaa arvoja sijoituskäskyllä, jonka operaattori on =. Jos tulosta ei tallenneta muuttujaan, Scilab tallentaa tuloksen muuttujaan ans. --> >7*ans >x=-15 x = >y=7*x y = Yhdellä komennolla voi tallentaa arvoja useampaan muuttujaan: -->[x,y,z]=(1,4,7) z = 7. y = 4. x = 1. Tällaista komentoa käyttäen on helppo vaihtaa muuttujien arvot.
11 11 Scilab Osa 1 -->[x,y]=(y,x) y = 1. x = 4. Muuttujan tai funktion nimen on alettava kirjaimella 1 tai merkillä %, _, #,!, $,?. Seuraavat merkit voivat olla kirjaimia, numeroita tai merkkejä _, #,!, $,?. Nimi voi olla kuinka pitkä tahansa, mutta vain 24 ensimmäistä merkkiä otetaan huomioon. Isot ja pienet kirjaimet ovat eri kirjaimia. -->#1kokeilu?=5 #1kokeilu? = 5. Laskentajärjestys on normaali matematiikan laskentajärjestys. Laskentajärjestystä voidaan ohjata kaarisuluilla ( ). -->(5.2^4+7.8^3)/(5.9^2*22.1) Yleisiä vakioita Scilabin vakioiden nimet alkavat %-merkillä. Seuraava taulukko sisältää yleisimmät vakiot. Vakio Merkitys %pi π %e Napierin luku e %i Imaginaariyksikkö i %eps Tietokoneen lukujen esitystarkkuus. %inf Ääretön %nan Ei luku (not a number) %t Tosi %f Epätosi %s Symbolinen muuttuja s %z Symbolinen muuttuja z -->%pi, %e %pi = %e = Jos imaginaariyksikkö kerrotaan luvulla, on käytettävä kertomerkkiä! -->%i^2 1 Tässä yhteydessä ääkkönen ei ole kirjain.
12 Scilab Osa >1/(2+%i) i -->(2+4*%i)/(3+2*%i) i Scilabissa reaalilukuja käsitellään kaksoistarkkuuden liukulukuina. Tämä esitysmuoto on tietokoneesta riippuva. Koska liukulukuesityksessä reaaliluvut esitetään äärellisellä määrällä bittejä, voi itseisarvoltaan tarpeeksi pienillä luvuilla a olla 1 a=1 : mutta ja -->(1+10^(-12)) D-12 -->(1+10^-13) D-14 -->(1+10^-14) D-15 -->(1+10^-15) D-15 -->(1+10^(-16))-1 0. Vakio %eps ilmoittaa tietokoneen lukujen esitystarkkuuden. Se on suurin luku a, jolle 1 a 2 =1 : -->%eps %eps = 2.220D-16 -->(1+%eps) D-16 -->(1+%eps/2)-1 0. Vakio %inf ei ole matemaattisesti ääretön. Jossain tapauksissa kuitenkin on tarkoituksenmukaista laskea ääretöntä käyttäen. Seuraavat laskutoimitukset antavat normaalisti virheilmoituksen:
13 13 Scilab Osa 1 Sen sijaan -->1/0!--error 27 division by zero... -->0/0!--error 27 division by zero... -->1/%inf 0. Virheilmoitukset johtuivat poikkeuskäsittelyn muodosta, johon voidaan vaikuttaa komennolla 1 ieee. Äskeinen asetus oli -->mod=ieee() mod = 0. Muutetaan se -->ieee(2) ja lasketaan 2 -->1/0 Inf -->-1/0 -Inf Seuraava muoto ei tietenkään ole luku. -->0/0 Nan Palautetaan oletusarvo -->ieee(mod) Vakiot %t ja %f ovat loogisia vakioita, joita käsitellään myöhemmin. Symbolisia muuttujia %s ja %z käsitellään luvussa 24.2 Rationaalilausekkeet (Osa 10). ESIMERKKI. Lasketaan suoran ympyrälieriön tilavuus kaavalla V = r 2 h, missä r on pohjaympyrän säde ja h on ympyrälieriön korkeus. 1 Komennosta saa tietoa helpistä esim. antamalla komento help ieee. Tämä huomautus pätee tietenkin muihinkin käsiteltäviin komentoihin. 2 Näiden kanssa on syytä olla varovainen, sillä lausekkeen raja-arvo 0:ssa riippuu siitä, mistä päin 0:aa lähestytään. 1 x
14 Scilab Osa 1 14 Annetaan muuttujille arvot (päätetään komennot puolipisteellä, jolloin tulos ei tule näytölle) -->r=1.2; h=0.35; Tallennetaan tilavuus muuttujaan V: -->V=%pi*r^2*h V = Muuta muuttujien r ja h arvoja ja laske uusi tilavuus. Käytä komentojen selailuun nuoli-näppäimiä. TEHTÄVIÄ 1. Laske katkaistun ympyräkartion tilavuus käyttäen kaavaa V = h a2 a b b 2 3, kun - kartion korkeus h = 0,92 m - pohjan säde a = 1,26 m - kannen säde b = 0,83 m. Sijoita arvot muuttujiin ja laske kaavaa käyttäen. Laskennan jälkeen muuta lähtöarvoja. Käytä selaamiseen nuolinäppäimiä. 2.3 Perusfunktiot Scilabissa on käytettävissä tutut matematiikan perusfunktiot. Näissä on kuitenkin joitain merkintäeroja normaaliin käytäntöön nähden. Funktio sqrt(x) exp(x) log(x), log10(x), log2(x) sin(x), cos(x), tan(x), cotg(x) asin(x), acos(x), atan(x), acot(x) sinh(x), cosh(x), tanh(x), coth(x) asinh(x), acosh(x), atanh(x), acoth(x) Merkitys neliöjuuri e-kantainen eksponenttifunktio luonnollinen logaritmi, 10-kantainen logaritmi, 2-kantainen logaritmi trigonometriset funktiot arkusfunktiot hyperboliset funktiot areafunktiot Edellä esiteltyjen trigonometristen funktioiden argumentti ja arkusfunktioiden arvot ovat radiaaneissa. ESIMERKKEJÄ. -->sqrt(2)
15 15 Scilab Osa 1 -->log(%e) 1. -->sin(%pi/2) 1. -->atan(1) Koska on 180 = π rad, 1 = 180 rad. Siis, jos haluaa laskea asteissa, voi määritellä Tällöin -->deg=%pi/180; muuttujalla deg kertominen muuntaa asteet radiaaneiksi muuttujalla deg jakaminen muuntaa radiaanit asteiksi -->sin(45*deg) >cos(60*deg) >atan(1)/deg 45. Scilabista löytyy myös trigonometriset funktiot ja niiden käänteisfunktiot, joissa laskenta tapahtuu asteissa. Niiden nimet eroavat edellä esiteltyjen trigonometristen funktioiden nimistä siten, nimen perään on lisätty d : sind, cosd, tand, cotd, asind, acosd, atand, acotd. Nämä funktiot on tehty siten, että joissain tilanteissa ne laskevat arvot tarkasti: ->sin(180*deg) 1.225D-16 -->sind(180) 0. Seuraava taulukko sisältää lisää perusfunktioita:
16 Scilab Osa 1 16 Funktio abs(x) sign(x) atan(y,x) real(z), imag(z) Merkitys itseisarvo etumerkki pisteen (x, y) paikkavektorin vaihekulma. Huom. järjestys! kompleksiluvun z reaaliosa, imaginaariosa ESIMERKKEJÄ (jatkoa). -->sign(3),sign(-15) >atan(4,3)/deg >z=3+4*%i; -->real(z), imag(z) Oikeastaan sign(x) on lausekkeen x x arvo: -->sign(z) i -->z/abs(z) i Kuitenkin -->sign(0) 0. Lukujen kokonaisluvuksi pyöristämiseen on käytettävissä seuraavia funktioita: Funktio Merkitys round(x) Pyöristäminen lähimpään kokonaislukuun 1 fix(x) tai int(x) floor(x) ceil(x) Kokonaisluvuksi pyöristäminen kohti nollaa eli desimaaliluvun kokonaisosa. Lattiafunktio: alaspäin kokonaisluvuksi pyöristäminen Kattofunktio: ylöspäin kokonaisluvuksi pyöristäminen 1 Desimaaliin.5 päättyvä luku pyöristetään siten, että luvun itseisarvo pyöristyy ylöspäin.
17 17 Scilab Osa 1 ESIMERKKEJÄ. -->round(-2.7), round(2.7) >fix(-2.7), fix(2.7) >floor(-2.7), floor(2.7) >ceil(-2.7), ceil(2.7) TEHTÄVIÄ 1. Laske lausekkeiden arvot: 33,2 33,3 3 e 2,05 sin(30) sin(30 ) 2,3 4,2 arccos 3 2 (esitä tulos asteina) 3. MATRIISIT Matriisi on suorakulmion muotoinen lukutaulukko. Jos matriisissa on m riviä ja n saraketta, matriisin sanotaan olevan kertalukua m n. Puhutaan myös m n-matriisista. Erityisesti luvut eli skalaarit ovat 1 1-matriiseja. vaakavektorit ovat matriiseja, joissa on yksi rivi. pystyvektorit ovat matriiseja, joissa on yksi sarake. Matriisin alkiot a ij indeksoidaan siten, että ensimmäinen indeksi i ilmoittaa rivin toinen indeksi j ilmoittaa sarakkeen. Indeksointi alkaa luvusta Matriisien syöttö Matriisit syötetään hakasulkujen väliin vaakariveittäin seuraavasti: rivin alkiot erotetaan toisistaan välilyönnillä tai pilkulla rivit erotetaan toisistaan Enterin painalluksella tai puolipisteellä.
18 Scilab Osa >A=[ > >7 8 9] A = >B=[-3,0,2;5,-1,7] B = Syötetään vielä vaaka- ja pystyvektorit -->u=[2 0-3] u = >v=[1;-4;6] v = Matriisin alkioita syötettäessä lausekkeissa ei saa olla ylimääräisiä välilyöntejä, koska matriisin alkiot voidaan erottaa toisistaan myös välilyönnillä. -->C=[2+%e 2+3*%i] // Ei ylimääräisiä välilyöntejä C = i -->C=[2 + %e 2 + 3*%i] // Operaattorit erotettu välilyönneillä: oikein C = i -->C=[2 +%e 2 +3*%i] // Ylimääräisiä välilyöntejä: väärin! C = i Merkintä [ ] tarkoittaa tyhjää matriisia, jossa ei ole yhtään alkiota. Scilabissa voidaan määritellä tyhjä matriisi, jota voidaan täydentää myöhemmin. Määrittelemällä matriisi tyhjäksi matriisiksi, tyhjennetään matriisin sisältö ja vapautetaan matriisin vaatima tila. -->C=[] C = [] Matriisin alkioihin viitataan ilmoittamalla suluissa pilkulla erotettuna rivi ja sarake, jolla alkio sijaitsee. Matriisin A 2. rivin 1. alkio: -->A(2,1) 4. Vektorin alkioihin voidaan viitata yhdellä indeksillä: -->u(3)
19 19 Scilab Osa 1-3. Matriisin riveihin ja sarakkeisiin viitataan seuraavasti: A(i, :) matriisin A i:s rivi A(:, j) matriisin A j:s sarake Matriisin A 2. rivi ja 3. sarake: -->A(2,:) >A(:,3) Sisäisesti matriisi on tallennettu pystyvektorina asettamalla sarakkeet peräkkäin. Matriisin alkioihin voidaan siis aina viitata myös yhdellä indeksillä. Komento A(:) tulostaa matriisin pystyvektorina. -->A A = >A(:) >A(6) 8. Matriisin kertaluku saadaan selville komennolla size. Komento antaa tulokseksi 1 2-matriisin, jonka alkiot sisältävät matriisin kertaluvun. -->size(b) Vektorin dimensio saadaan selville komennolla length: -->length(v) 3. -->length(a)
20 Scilab Osa Seuraava komento tallentaa matriisin rivien määrän muuttujaan m ja sarakkeiden määrän muuttujaan n. -->[m,n]=size(b) n = 3. m = 2. Komennolla tai matrix(v, m, n) matrix(v, [m, n]) muutetaan matriisi tai vektori, jossa on m n alkiota m n-matriisiksi. Muunnos tehdään sarakkeittain. -->v=[1,2,3,4,5,6] v = >matrix(v,2,3) >matrix(v,[3,2]) Seuraavassa taulukossa on esitetty joidenkin erikoismatriisien luontikomentoja: Komento eye(m,n) eye(a) eye() zeros(m,n) zeros(a) ones(m,n) ones(a) Toiminto m n-yksikkömatriisi: matriisi, jonka lävistäjällä on ykkösiä, muualla nollia yksikkömatriisi, jolla on sama kertaluku kuin matriisilla A yksikkömatriisi, jolla on sama kertaluku kuin siihen lisättävällä matriisilla m n-matriisi, jonka alkiot ovat nollia nollamatriisi, jolla on sama kertaluku kuin matriisilla A m n-matriisi, jonka alkiot ovat ykkösiä matriisi, jonka alkiot ovat ykkösiä ja jolla on sama kertaluku kuin A:lla ESIMERKKEJÄ. -->eye(3,3)
21 21 Scilab Osa >ones(2,2)-eye() >x=[1,4,-1,5]; zeros(x) >17*ones(1,9) Saman skalaarimuuttujan toisto voidaan muodostaa komentoa ones käyttäen: -->ones(1,10) >a=7; -->a(ones(1,10)) >s='einstein' s = Einstein //Tämä on merkkijono -->s(ones(3,5)) //Merkkijonomatriisi!Einstein Einstein Einstein Einstein Einstein!!!!Einstein Einstein Einstein Einstein Einstein!!!!Einstein Einstein Einstein Einstein Einstein! TEHTÄVIÄ. 1. Muodosta 15 7-matriisi, jonka kaikki alkiot ovat lukuja Vektorien syöttö Scilabissa kaksoispisteellä on tärkeä merkitys. Edellä oli jo esillä kuinka matriisin rivi- ja sarakevektorit muodostetaan kaksoispistettä käyttäen. Myös vektoreiden muodostamisessa voidaan käyttää kaksoispistettä. Vaakavektoreita voidaan luoda seuraavasti: a:b on vektori, jonka koordinaatit muodostavat lukujonon a,a 1,a 2, lukuun b asti. Tuloksena on tyhjä matriisi [ ], jos a b. a: :b on vektori, jonka koordinaatit muodostavat lukujonon a,a, a 2, lukuun b asti. Tuloksena on tyhjä matriisi [ ], jos lisäys on rajoihin nähden vääränmerkkinen.
22 Scilab Osa 1 22 linspace(a,b) on vektori, joka koostuu 100:sta välillä [a, b] tasavälisesti olevasta luvusta 1, joista ensimmäinen on a ja viimeinen on b. linspace(a,b,n) on vektori, joka koostuu n:sta välillä [a, b] tasavälisesti olevasta luvusta. Pystyvektori saadaan transponoimalla vaakavektori: jos v on vaakavektori, niin v on pystyvektori 2. ESIMERKKEJÄ. -->v1=3:9 v1 = >v2=9:-1:3 v2 = >v1+v >2.1: >1.2:0.5: >linspace(-1.7,2.8,6) >(0:3:12)' TEHTÄVIÄ. 1. Muodosta vaakavektori, jonka alkiot ovat nousevassa järjestyksessä välillä [ 2, ] luvun 0,3 välein. 2. Muodosta vaakavektori, jonka alkiot ovat laskevassa järjestyksessä välillä [ 2, ] luvun 0,3 välein. 3. Muodosta pystyvektori, jonka alkioiden määrä on 20 ja alkiot ovat tasavälisesti välillä [1, 3]. 1 Logaritmisesti tasan jakautuneita lukuja voidaan luoda logspace-komennolla (ks. luku 6.3, Osa 2) 2 Transpoosia käsitellään tarkemmin myöhemmin.
23 23 Scilab Osa Satunnaismatriisit Satunnaislukujen ja satunnaismatriisien muodostamiseen voidaan käyttää komentoa rand. rand() antaa satunnaisluvun rand(m,n) antaa m n-satunnaismatriisin rand(a) antaa satunnaismatriisin, jolla on sama kertaluku kuin matriisilla A. Satunnaisluvut ovat oletusarvoisesti tasan jakautuneita välillä [, 1] rand(, normal ) antaa (0,1)-normaalijakauteita satunnaislukuja 0. Komennon muoto ESIMERKKEJÄ. Muodostetaan 3 5-matriisi, jonka alkiot ovat tasan jakautuneet välillä [ 10,10]. -->a=-10; b=10; -->x=a+(b-a)*rand(3,5) //Skalaarin lisääminen ks. luku 3.4 x = Muodostetaan 2 7-satunnaismatriisi, jonka alkiot ovat tasan jakautuneita kokonaislukuja välillä 0..9: -->floor(10*rand(2,7)) Muodostetaan satunnaisvektori, jonka alkiot ovat tasan jakautuneita kokonaislukuja välillä Koska komento 5+(13-5)*rand tuottaa välillä [5,13] tasan jakautuneita satunnaislukuja, saadaan välillä tasan jakautuneita kokonaislukuja komennolla floor(5+8*rand). Muodostetaan 7-vektori: -->floor(5+8*rand(1,7)) Satunnaislukugeneraattori lähtee aina samasta siemenarvosta 0 liikkeelle. Siemenarvon voi muuttaa komennolla rand( seed,n), missä n on kokonaisluku. Komento rand( seed ) antaa tulokseksi nykyisen siemenarvon. Satunnaislukugeneraattorin voi alustaa satunnaiseen tilaan komennolla 1 -->rand('seed',getdate('s')) ESIMERKKEJÄ. Muodostetaan samat satunnaisluvut kahteen kertaan 1 Komento getdate('s') antaa ajan sekunteina alkaen. Satunnaislukugeneraattorin alustusta ohjelmasilmukassa on syytä välttää ks. monisteen Ohjelmointi lukua
24 Scilab Osa >n=rand('seed'); -->rand(1,5) >rand('seed',n); -->rand(1,5) TEHTÄVIÄ 1. Muodosta 3 4-matriisi, jonka alkiot ovat tasan jakautuneet välillä [2,5]. 2. Muodosta 1 9-satunnaismatriisi, jonka alkiot ovat tasan jakautuneita kokonaislukuja välillä Toteuta Scilabilla lottoarvonta. Lotossa arvotaan 7 lukua väliltä 1 39: Muodosta satunnainen 7-vektori, jonka alkiot ovat satunnaisia lottonumeroita. Jos joukossa on samoja lukuja suorita arvonta uudestaan. Lajittele luvut nousevaan suuruusjärjestykseen komennolla gsort(vektori,'g','i') (ks. helppi). Lottoarvonnassa on tietenkin syytä alussa alustaa satunnaislukugeneraattori satunnaiseen tilaan. 4. Toteuta Scilabilla veikkausarvonta. Veikkauksessa on 12 kohdetta, joissa kussakin jokin merkinnöistä 1, x, 2. Toteuta tämä Scilabilla korvaamalla x luvulla 0. Muodosta siis satunainen 12-pystyvektori, jonka alkiot ovat satunnaislukuja 0, 1, 2. Tässäkin on tietenkin syytä alussa alustaa satunnaislukugeneraattori satunnaiseen tilaan. 3.4 Osamatriisit ja lohkomatriisit Matriisin A osamatriisilla tarkoitetaan matriisia, joka on muodostettu matriisin A alkioista. Matriisin A alimatriisi on osamatriisi, jossa alkioiden järjestys on sama kuin matriisissa A. Seuraavaan taulukkoon on koottu m n-matriisin A osamatriisin muodostuskomentoja. Osa näistä on ollut esillä jo aiemmin. Komento A(i,j) A(i,:) A(:,j) A(i:k,:) A(:,j:k) Toiminto i:nnen rivin ja j:nnen sarakkeen alkio i:s rivi j:s sarake Alimatriisi, joka koostuu riveistä i, i+1,, k Alimatriisi, joka koostuu sarakkeista j, j+1,, k A(i:k,j:p) Alimatriisi, joka koostuu riveistä i k ja sarakkeista j p. A(:) A(j:k) A([i1,i2, ],:) A(:,[j1,j2, ]) A([i1,i2, ],[j1,j2, ]) Pystyvektori, jossa matriisin A sarakkeet ovat peräkkäin. Pystyvektori, joka koostuu vektorin A(:) alkioista j k. Osamatriisi, joka koostuu riveistä i1, i2, Osamatriisi, joka koostuu sarakkeista j1, j2, Osamatriisi, joka koostuu riveistä 1 i1, i2, ja sarakkeista j1, j2, 1 Sama rivi-indeksi tai sarake-indeksi voi esiintyä useampaan kertaan...
25 25 Scilab Osa 1 ESIMERKKEJÄ. -->A=matrix(1:9,[3,3]) A = >A(2:3,:) >A([3,2],1:2) Merkintä $ tarkoittaa indeksin viimeistä arvoa, $ 1 viimeistä edellistä jne. -->A($,:) >A(:,$-1) Vektorin alkioiden järjestys voidaan kääntää seuraavalla tavalla: -->v=floor(10*rand(1,9)) v = >v($:-1:1) Matriisista A poistetaan i:s rivi komennolla A(i,:) = [ ] j:s sarake komennolla A(:,j) = [ ] -->A(2,:)=[] A = Matriisin osa voidaan muuttaa toiseksi sijoituskäskyllä. Sijoituskäskyllä voidaan myös muuttaa matriisin kokoa. Tällöin määrittelemättömät alkiot saavat arvon nolla. -->A=[1:4;5:8] A =
26 Scilab Osa >A(:,3:4)=eye(2,2) A = >A(3,6)=-3 A = Lohkomatriisi on matriisi, jonka alkiot ovat matriiseja. Alkioina olevien matriisien on oltava kertaluvultaan yhteen sopivia. Näin muodostuu isompi matriisi, jonka alimatriiseja lohkot ovat. Lohkomatriiseja muodostetaan samaan tapaan kuin tavallisia matriiseja. -->B=[1 2; 3 4] B = >[B, zeros(b); eye(b), 10*B] Sopivaa kertalukua olevia matriiseja voidaan asettaa päällekkäin käyttäen operaattorina rivinvaihtomerkkiä ; peräkkäin käyttäen operaattorina välilyöntiä tai, Kyseessä on siis lohkomatriisin muodostaminen. -->A=rand(2,3) A = >B=ones(A) B = >C=[A;B] C = >D=[A,B] D = Tyhjän matriisin [ ] alle tai perään voidaan asettaa millainen matriisi tahansa: -->[[],D]
27 27 Scilab Osa 1 TEHTÄVIÄ Muodosta lohkomatriiseja käyttäen kuvan kaltainen matriisi jonka lohkot ovat kertalukua Muodosta komento, joka a) kääntää matriisin sarakevektorit vastakkaiseen järjestykseen. b) kääntää matriisin rivivektorit vastakkaiseen järjestykseen Testaa tulos satunnaismatriisilla. 3.5 Matriisioperaatiot Seuraavassa esitellään matriisilaskennan perusoperaatiot yhteenlasku, kertolasku ja transpoosi. Esimerkeissä käytetään seuraavia matriiseja: -->A=[1 2 3; 4 5 6; 7 8 9] A = >B=[3-2 -1; 4 5-2; ] B = Matriisien yhteenlasku ja vähennyslasku on määritelty, jos matriiseilla on sama kertaluku. Yhteenlaskussa vastinalkiot lasketaan yhteen; vähennyslaskussa vastinalkiot vähennetään. -->A+B Yhteenlaskun erikoistapauksena on skalaarin lisääminen tai vähentäminen. Tällöin skalaari lisätään jokaiseen alkioon tai vähennetään jokaisesta alkiosta. -->A
28 Scilab Osa 1 28 Matriisin kertolasku on määritelty, jos kertojassa on yhtä monta saraketta kuin kerrottavassa rivejä. Tulon AB i:nnen rivin ja j:nnen sarakkeen alkio on A:n i:nnen rivin ja B:n j:nnen sarakkeen vastinalkioiden tulojen summa. Tulossa AB on yhtä monta riviä kuin matriisissa A yhtä monta saraketta kuin matriisissa B Kertolaskun merkkinä on *. -->A*B Kertolaskun erikoistapaus on skalaarilla kertominen tai jakaminen. Tällöin matriisin jokainen alkio kerrotaan tai jaetaan skalaarilla. -->-10*A >A/ Neliömatriisin positiivisella kokonaislukupotenssilla tarkoitetaan neliömatriisin kertomista itsellään seuraavasti: A k = k kpl. Potenssiin korotuksen merkkinä on ^ tai **. A A A -->A^ >A*A*A Scilabissa on kaksi matriisien jakolaskua: oikealta jako / ja vasemmalta jako \. Oikealta jako A/B on määritelty, jos matriisien A ja B sarakkeiden määrä on sama. Tuloksena on sellainen matriisi X, joka toteuttaa yhtälön 1 XB=A. Jos matriisilla B on käänteismatriisi, on A/B = A B 1. Vasemmalta jako 2 A\B on määritelty, jos matriisien A ja B rivien määrä on sama. Tuloksena on sellainen matriisi X, joka toteuttaa yhtälön AX=B. Jos matriisilla A on käänteismatriisi, on 1 mikäli mahdollista. En täsmälleen tiedä, mikä ratkaisu matemaattisesti on. 2 Vasemmalta jakoa käsitellään tarkemmin Luvussa 15 Yhtälöryhmän ratkaiseminen (Osa 4)
29 29 Scilab Osa 1 A\B = A 1 B, muuten tulos on yhtälön pienimmän neliösumman ratkaisu. -->A=[1 2 3; 5 6 7] A = >B=[3 6; 1-5] B = >X=A\B X = >A*X // Tarkistus Matriisin transpoosissa muutetaan rivit sarakkeiksi (tai sarakkeet riveiksi). Reaalialkioisen matriisin A transpoosi on A : -->A=[-3,0,4;5,1,-2] A = >A' Matriisi, jonka sarakkeina ovat annetut vektorit: -->C=[1:4;5:8;9:12]' C = Oikeastaan A muodostaa matriisin A alkioista myös kompleksikonjugaatit. Pelkkä transpoosi muodostetaan seuraavalla komennolla A. : -->A=[-%i, 2+5*%i; 7+2*%i,4] A = - i i i 4. -->A' i i i 4.
30 Scilab Osa >A.' - i i i 4. Reaalialkioisille matriiseille nämä ovat tietenkin samat. 3.6 Taulukko-operaatiot Aritmeettisia operaatioita, jotka suoritetaan kahden matriisin vastinalkioiden kesken sanotaan taulukko-operaatioiksi tai alkioittaisiksi operaatioiksi. Ne vastaavat taulukkolaskennassa käytettyjä operaatioita. Taulukko-operaatioissa matriisien kertalukujen on oltava samoja. Taulukkooperaatio saadaan laittamalla piste operaattorin eteen. Esimerkeissä käytetään seuraavia matriiseja: -->A=[1 2;3 4] A = >B=[5 6;2-3] B = Matriisien yhteen- ja vähennyslasku ovat myös taulukko-operaatioita. Alkioittaisessa tulossa lasketaan vastinalkioiden tulo. Operaatiota merkitään.* -->A.*B Alkioittaisessa jakolaskussa lasketaan vastinalkioiden osamäärä. Alkioittaisia jakolaskuja on kaksi: jako oikealta./ ja jako vasemmalta.\ -->A./B >A.\B Alkioittaisen jakolaskun erikoistapaus on skalaarin jakaminen matriisilla: tuloksena on jakajamatriisin kokoinen matriisi, joka saadaan jakamalla skalaari alkioittain jakajamatriisilla. Jos kokonaisluku jaetaan alkioittain vektorilla tai matriisilla on luku päätettävä desimaalipisteeseen, jolloin jakomerkin eteen tulee kaksi pistettä (../) tai laitettava välilyönti ennen jakolaskuoperaattoria./ Tämä johtuu siitä, että muuten operaatiolla on yhtälöryhmän ratkaisemiseen liittyvä tulkinta. -->x=1:5
31 31 Scilab Osa 1 x = >1./x // Väärin tässä yhteydessä! -->1../x // Oikein >1./x // Oikein >a=1 a = 1. -->a./x Alkioittaisessa potenssiin korotuksessa korotetaan kantamatriisi alkioittain eksponenttimatriisin osoittamaan potenssiin. Operaatiota merkitään.^ -->A.^B Alkioittaiseen potenssiin korottamisen erikoistapauksia on kaksi: eksponentti on skalaari. Tällöin matriisin jokainen alkio korotetaan skalaarin osoittamaan potenssiin. kantamatriisi on skalaari. Tällöin tuloksena on eksponenttimatriisin kokoinen matriisi, joka saadaan korottamalla kantaluku alkioittain eksponenttimatriisin osoittamaan potenssiin. -->A.^ >2.^A //Välilyönti ^-merkin jälkeen! TEHTÄVIÄ. 1. Muodosta vektori x, joka koostuu välillä 1 10 olevista luvuista 0,5:n välein. Luvut ovat siis 1; 1,5; 2; 2,5;, 10. Laske seuraavien funktioiden arvot vektorin x alkioilla. a) 1 x b) x 2 c) x sin x d) 5 x 3 2 x 2 e x
32 Scilab Osa Taulukkofunktiot Taulukkofunktio on funktio, joka operoi matriisiin alkioittain. Tällaisia ovat luvussa 2.3 esitellyt matematiikan perusfunktiot. -->A=[1 2;3 4] A = >sqrt(a) >exp(a) >floor(ans) >sin([%pi,0; %pi/2,-%pi/4]) 1.225D Esitetään vielä muutama taulukkolaskennan tyyppinen funktio: Funktio sum(a) prod(a) max(a), min(a) mean(a) stdev(x) cumsum(a) gsort(a) Toiminto matriisin A alkioiden summa matriisin A alkioiden tulo matriisin A suurin, pienin alkio matriisin A alkioiden keskiarvo matriisin A alkioiden keskihajonta matriisin A alkioiden kumuloituva summa vektorina. matriisin A alkioiden lajittelu laskevaan suuruusjärjestykseen. Tulos esitetään sarakkeittain. Vektorille x kumuloituva summa cumsum(x) tarkoittaa seuraavaa vektoria cumsum(x) = [x(1), x(1)+x(2), x(1)+x(2)+x(3), ]. Matriisille kumuloituva summa lasketaan sarakkeittain edeten. Tuloksena on samaa kertalukua oleva matriisi. ESIMERKKEJÄ. Käytetään esimerkeissä satunnaismatriiseja, joissa alkiot ovat välillä >x=floor(-9+19*rand(1,10)) x =
33 33 Scilab Osa 1 Komento >sum(x) >max(x) 9. -->cumsum(x) >A=matrix(x,[2,5]) A = >cumsum(a) >cumsum(a(:))' >gsort(a) sum(a, r ) laskee matriisin A kunkin sarakevektorin alkioiden summan ja esittää tuloksen rivivektorina. sum(a, c ) laskee matriisin A kunkin rivivektorin alkioiden summan ja esittää tuloksen sarakevektorina. Vastaavaa komennon muotoa voidaan käyttää myös muille taulukon funktioille. ESIMERKKEJÄ. Edellisen esimerkin matriisille A: -->sum(a,'r') >max(a,'r') >gsort(a,'c')
34 Scilab Osa 1 34 Komento gsort(a, g, i ) lajittelee matriisin A alkiot nousevaan suuruusjärjestykseen. -->gsort(a,'g','i') Kertomafunktio n! voidaan laskea tulona prod(1:n) tai komennoilla factorial(n) tai gamma(n+1) Komento -->prod(1:11) >factorial(11) >gamma(12) modulo(m, n) muodostaa lukujen m ja n jakolaskun m/n jakojäännöksen, jonka tulos on samanmerkkinen kuin m. Komento pmodulo(m, n) muodostaa jakojäännöksen, jonka tulos on samanmerkkinen kuin n. Näissä komennoissa m ja n voivat olla myös samaa kertalukua olevia matriiseja tai n luku. ESIMERKKEJÄ. -->m=[12,-12,12,-12]; -->n=[5,5,-5,-5]; -->modulo(m,n) >pmodulo(m,n) >modulo(12.4,5.1) >m=[34,56.2;52,9.3] m = >n=[7,8;3.4,5]
35 35 Scilab Osa 1 n = >modulo(m,n) >modulo(100:110,5) ESIMERKKI. Komennolla testmatrix voidaan muodostaa tiettyjä erikoismatriiseja. Esimerkiksi komento testmatrix( magi,n) tulostaa taikaneliön. Tämä on matriisi, jossa lukujen summa on sama joka vaaka- ja pystyriveillä. Myös neliön lävistäjien summa on sama. Muodostetaan 5 5-taikaneliö ja tarkistetaan, että se todella on taikaneliö. Tarkistuksessa käytetään komentoa diag, joka määrittää matriisin lävistäjäalkiot. -->A=testmatrix('magi',5) A = >sum(a,'r') // Sarakkeiden summat >sum(a,'c') >sum(diag(a)) 65. // Rivien summat // Lävistäjän alkioiden summa -->sum(diag(a(:,$:-1:1))) // Antilävistäjän alkioiden summa 65. TEHTÄVIÄ 1. Muodosta 7 7-satunnaismatriisi, jonka alkiot ovat kokonaislukuja välillä Määritä matriisin sarakkeiden ja rivien keskiarvot. Määritä myös matriisin kaikkien alkioiden keskiarvo. Tarkista tämä laskemalla kaikkien alkioiden summa ja jakamalla se matriisin alkioiden määrällä.
36 Scilab Osa Selvitä kokeilemalla, mikä on suurin luku, jonka kertoma voidaan laskea Scilabilla? 4. TIETOTYYPPEJÄ Päätietotyyppi Scilabissa on matriisi. Tämän lisäksi Scilabissa on monia muita tietotyyppejä. Komennolla type(x) saadaan objektin x tyyppi selville. Komento antaa tulokseksi kokonaisluvun, joka ilmoittaa objektin tyypin seuraavasti: 1 : real or complex constant matrix. 2 : polynomial matrix. 4 : boolean matrix. 5 : sparse matrix. 6 : sparse boolean matrix. 7 : Matlab sparse matrix. 8 : matrix of integers stored on 1 2 or 4 bytes. 9 : matrix of graphic handles. 10 : matrix of character strings. 11 : un-compiled function (Scilab code). 13 : compiled function (Scilab code). 14 : function library. 15 : list. 16 : typed list (tlist). 17 : matrix oriented typed list (mlist). 128 : pointer. 129 : size implicit polynomial used for indexing. 130 : Scilab intrinsic (C or Fortran code). Tämä luettelo sisältänee Scilabin tietotyypit. Komento typeof(x) tulostaa objektin x tyypin merkkijonona. Vaihtoehdot ovat seuraavat: "constant" if object is a real or complex constant matrix. "polynomial" if object is a polynomial matrix. "function" if object is a function (Scilab code). "handle" if object is an handle. "string" if object is a matrix made of character strings. "boolean" if object is a boolean matrix. "list" if object is a list. "rational" if object is a rational matrix (transfer matrix). "state-space" if object is a state-space model. "sparse" if object is a (real) sparse matrix. "boolean sparse" if object is a boolean sparse matrix. "hypermat" if object is an hypermatrix (N-dimension array with N >=3). "st" if object is a structure array. "ce" if object is a cell array. the first string in the first list entry if object is a tlist or mlist. "fptr" if object is a Scilab intrinsic (C or Fortran code). "pointer" if object is a pointer. "size implicit" if object is a size implicit polynom used for indexing. "library" if object is function library. "int8" or "uint8" or "int16" or "uint16" or "int32" or "uint32" if object is a matrix of [unsigned] integers stored on 8, 16 or 32 bits. See int8)
37 37 Scilab Osa 1 ESIMERKKI. -->A=rand(2,3); -->type(a) 1. -->typeof(a) constant 4.1 Listat Monet Scilabin objektit on muodostettu listoina. Scilabissa listat ovat tietorakenteita, jotka voivat sisältää erilaisia objekteja. Listoja on kolmea eri tyyppiä: list. Listan alkioihin voidaan viitata indeksillä tlist. Listarakenne on dynaaminen ja listan alkioihin voidaan viitata nimillä ja indekseillä. mlist. Listarakenne on dynaaminen ja listan alkioihin voidaan viitata nimillä. Nimellä tapahtuva viittaus käyttää operaattoria piste (.) seuraavan esimerkin mukaisesti. ESIMERKKI. Seuraavassa on lista x luotu dynaamisesti. -->clear x // Poistetaan mahdollinen muuttuja x -->x.tyyppi='kolmio'; -->x.ala=11.3; -->x.sivut=[3.4,6.7,7.1]; -->x x = tyyppi: "kolmio" ala: 11.3 sivut: [3.4,6.7,7.1] Lista x on mlist: -->type(x) 17. Alkioihin voidaan viitata nimellä: -->x.tyyppi kolmio -->x.sivut Viittaaminen indeksiä käyttäen ei käy: -->x(1)
38 Scilab Osa 1 38 tyyppi: "kolmio" ala: 11.3 sivut: [3.4,6.7,7.1] -->x(2)!--error 21 invalid index at line 90 of function %st_e called by : x(2) Seuraavassa on esitetty joitain listaoperaatioita. Tyhjä lista luodaan komennolla list(). -->L=list() L = () // Tyhjä lista -->L(2)=rand(2,2) // Luodaan alkio L = L(1) Undefined L(2) Listan alkioon viitataan indeksiä käyttäen: -->L(2) Listan indeksointi alkaa ykkösestä. Listan alkuun voidaan lisätä alkio sijoituskäskyllä L(0) = Samalla seuraavien indeksi kasvaa yhdellä: -->L(0)=55 L = L(1) 55. L(2) Undefined L(3) Listan loppuun voidaan lisätä alkio sijoituskäskyllä L($+1) = : -->L($+1)=100 L = L(1) 55. L(2) Undefined L(3) L(4)
39 39 Scilab Osa Sijoituskäsky L(i) = null() poistaa alkion i: -->L(2)=null() L = L(1) 55. L(2) L(3) 100. Listasta voidaan poimia alkioita seuraavaan tapaan: -->[a,b]=l([1,3]) b = 100. a = 55. Komento list(a1, a2, ) luo listan, jonka alkiot ovat a1, a2, -->L1=list('la','su') L1 = L1(1) la L1(2) Su Listoja voidaan asettaa peräkkäin komennolla lstcat(l1, L2): -->L2=lstcat(L,L1) L2 = L2(1) 55. L2(2) L2(3) 100. L2(4) la L2(5) su Listan pituus saadaan selville komennolla size tai length. -->size(l2) 5. Lista L2 on list: -->type(l2) 15.
40 Scilab Osa Lukujen esitysmuodot Liukuluvut Scilabin laskenta suoritetaan pääasiassa kaksoistarkkuuden (64 bitin) liukuluvuilla. Tällöin laskentatarkkuus on noin 16 numeroa. Lukujen esitysmuoto ei vaikuta laskennan tarkkuuteen. Liukulukujen tyyppi on 1. Lukujen esitysmuotoon voidaan vaikuttaa komennolla format, jonka muoto on format( v, luku) tai format(luku): muuttuva esitysmuoto, jossa numeroiden maksimimäärä on luku format( e, luku): eksponenttiesitys, jos numeroiden maksimimäärä on luku. Oletusarvoinen esitysmuoto on format( v,10). Esitysmuodon saa selville komennolla format. Komento antaa tulokseksi vaakavektorin [m, n], missä m = 1 tarkoittaa esitysmuotoa v ja m = 0 tarkoittaa esitysmuotoa e. Luku n ilmoittaa numeroiden maksimimäärän. ESIMERKKEJÄ. -->format >sqrt(2) >10^(-5)*sqrt(2) >10^(-7)*sqrt(2) >10^(-8)*sqrt(2) 1.414D-08 -->10^10*sqrt(2) 1.414D+10 -->format("e",14) -->format D+00 -->sqrt(2) D D+01 -->10^(-7)*sqrt(2) D-07 -->10^10*sqrt(2) D+10
41 41 Scilab Osa 1 -->format("v",10) -->format Lukujen esittäminen liukulukuina ei ole tarkkaa, joten laskenta liukuluvuilla ei myöskään ole tarkkaa. ESIMERKKEJÄ Seuraavassa funktio int pyöristää kokonaisluvuksi kohti nollaa. -->int(10*0.1) 1. -->int(10*(1-0.9)) 0. Ero johtuu siitä, että lukua 0,9 ei voida esittää tarkasti liukulukuna. -->format(25) // Enemmän numeroita --> >10*(1-0.9) Komento clean(a, {tol}) asettaa nolliksi ne matriisin alkiot, joiden itseisarvo on pienempi noin kuin tol. Oletusarvona on >A=10^(-5:-2:-13).*rand(1,5) A = 1.0D-10 * >clean(a) 1.0D-08 * >clean(a,1d-8) 2.917D D Kokonaisluvut Kokonaisluvut voidaan tallentaa 1, 2 tai 4 tavuun omilla komennoillaan. Esimerkiksi komento int32(x)
42 Scilab Osa 1 42 tallentaa luvun x kokonaisluvuksi 4 tavuun. Kokonaisluku on tällöin välillä eli välillä Komento uint32(x) tallentaa luvun x ei-negatiiviseksi kokonaisluvuksi 4 tavuun. Tämä luku on välillä välillä eli Kokonaisluvut ovat tyyppiä 8. Kokonaislukujen peruslaskutoimitukset 1 tuottavat tulokseksi kokonaislukuja. Tässä on erityisesti huomattava, että jakolaskun tulos on kokonaisluku kokonaisluvun ja liukuluvun summa ja tulo ovat kokonaislukuja. Laskennassa käytetään liukuluvun kokonaisosaa. ylivuoto tapahtuu jos tulos menee kyseisen kokonaislukualueen ulkopuolelle. Scilabissa ylivuoto on sirkulaarinen eli luku pyörähtää ympäri (ks Esimerkkejä). Komento double(x) muuttaa kokonaisluvun x liukuluvuksi. Komentoikkunaan luvut tulostuvat seuraavasti: kokonaisluvussa ei ole desimaalipistettä liukuluvussa on desimaalipiste. ESIMERKKEJÄ. -->x=267 x = 267. // Liukuluku -->type(x) 1. -->m=int32(267) m = 267 // Kokonaisluku -->type(m) 8. -->double(m) 267. // Liukuluku -->type(ans) 1. -->67*m >type(ans) 1 Yhteen-, vähennys-, kerto-, jakolasku ja positiiviseen kokonaislukuun korottaminen.
43 43 Scilab Osa >67.31*m >67.31*double(m) // Tulo kokonaisluku! // Oikea arvo -->67*267 // Liukuluvusta otetaan kokonaisosa >-0.98*m 0 -->m/ >double(m)/ // Osamäärä kokonaisluku // Oikea arvo -->m^ >m^4 // Ylivuoto >double(m)^4 // Oikea arvo 5.082D+09 ESIMERKKI: Sirkulaarinen ylivuoto. Komento int8(x) tuottaa kokonaisluvun, joka on välillä eli välillä Kokeillaan laskentaa arvoalueen rajoilla. -->x=int8(127) x = >x+1,x >-x-1,-x
44 Scilab Osa 1 44 Kokonaisluvut voidaan tietenkin tallentaa liukukuina, mutta jos kokonaisluvun itseisarvo on liian suuri, se ei ole tarkka. Scilabissa kokonaislukujen liukulukulaskenta on tarkkaa, jos kokonaisluvut ja niiden laskennan kaikki välitulokset ovat välillä eli välillä ESIMERKKEJÄ. -->format(20) // Tuloksen esitystarkkuus suurempi Laskenta oikein: -->2^ >2^ Laskenta väärin 1 : -->2^ >2^ >2^53+2 Kokeillaan vielä: >(2^52+1)-2^ >(2^53+1)-2^53 0. Huom. Jos matriisin alkioiden sarake- ja rivi-indeksit ovat liukulukuja, pyöristää Scilab ne ennen laskentaa kokonaisluvuiksi alaspäin funktiota int käyttäen. Tämä saattaa johtaa yllättäviin virheisiin. 1 Tämä ei tietenkään ole Scilabin vika, vaan virhe johtuu siitä, että liukulukuesityksessä luku esitetään tietyssä muodossa 64:llä bitillä. Tällöin luvun esitysmuoto ei välttämättä ole tarkka.
45 45 Scilab Osa 1 ESIMERKKEJÄ mutta -->A=[1:3;4:6] A = >A(2,[1., 1.2, 1.]) >A(2,(1-0.9)*10)!--error 21 Invalid index. Virhe johtuu siitä, että Scilabissa luku (1-0.9)*10) ei olekaan tarkasti 1, vaan -->format(20) // Suurempi esitystarkkuus -->(1-0.9)* ja alaspäin pyöristettäessä 0 ->int((1-0.9)*10) Rationaaliluvut Rationaaliluvuilla laskentaa Scilabissa ei taida olla. Kuitenkin komennolla rat voidaan muodostaa liukuluvun rationaaliapproksimaatio. Komennon muoto on [n, d] = rat(x, {tol}), missä sisäänmenoparametrit ovat x on liukulukumatriisi tol suhteellinen toleranssi ja ulostuloparametrit ovat n on rationaaliapproksimaation osoittajamatriisi d on rationaaliapproksimaation nimittäjämatriisi Parametrin tol oletusarvo on Luvut n ja d ovat liukulukumuotoisia kokonaislukumatriiseja siten, että matriisi n./d on matriisin x likiarvo toleranssin tol ilmoittamalla suhteellisella tarkkuudella. ESIMERKKEJÄ. -->x=2/3 x =
46 Scilab Osa >[n,d]=rat(x) d = 3. n = 2. -->[n,d]=rat(x+1e-6) d = n = >[n,d]=rat(x+1e-7) d = 3. n = 2. -->[n,d]=rat(%pi) d = 113. n = >n/d-%pi >A=[sqrt(2), 2^(1/3);%e, 5] A = >[n,d]=rat(a) d = n = >n./d >[n,d]=rat(a,1d-10) d = n = >n./d
47 47 Scilab Osa 1 5. FUNKTIOT JA SKRIPTIT Scilabia käytettäessä kirjoitetaan usein monia komentoja peräkkäin. Tällaiset komennot voidaan tehdä editorilla SciNotes erilliseen tiedostoon joko skripteiksi eli komentojonoiksi tai funktioiksi eli ohjelmiksi Skripti on jono komentoja, joita käytetään automatisoimaan laskentaa. Skriptin muuttujat ovat yleisiä komentoikkunan muuttujia. Skriptin komentojen tulos tulostuu komentoikkunaan, ellei komentoja päätetä puolipisteellä. Funktio on ohjelma, jonka liittyminen ulkomaailmaan tapahtuu sisäänmeno- ja ulostuloparametrien kautta 1. Funktion muuttujat ovat funktion sisäisiä muuttujia, joten ne eivät sotkeudu komentoikkunan muuttujiin. Funktio tehdään yleensä erilliseen tiedostoon. Yksinkertaisen funktion voi tehdä myös komentoikkunaan. Funktiota voidaan käyttää laajentamaan Scilabin ominaisuuksia. Editoriin voi tietenkin ladata aiemmin tehtyjä tiedostoja SciNoten painikkeella valikkokomennolla File: Open (Ctrl+o). Scilabin painikkeella tai valikkokomennolla File: Open a file Scilabin funktiot ja skriptit tehdään editorilla, joka käynnistetään valikkokomennolla Applications: SciNotes, painikkeella tai komennolla editor. Editori tuntee Scilabin syntaksin. Tehdyt komennot tai ohjelmat voidaan tallentaa tiedostoon komennolla File: Save (Ctrl+s). Tiedoston tyyppi on oltava.sce tai.sci. Ohjelma tai komentojono saadaan ladattua Scilabiin SciNoten valikkokomennolla Execute: file with no echo: Tiedoston komennot suoritetaan tai ohjelma ladataan Scilabiin. Tiedoston tai ohjelman komentoja ei näytetä Scilabin komentoikkunassa. Tiedosto on tallennettava ennen komennon suorittamista. Execute: file with echo: Tiedoston komennot suoritetaan tai ohjelma ladataan Scilabiin. Tiedoston tai ohjelman komennot näytetään Scilabin komentoikkunassa. Tiedostoa ei tarvitse tallentaa ennen komennon suorittamista. Execute: the selection with echo: Valitut komennot suoritetaan ja näytetään Scilabin komentoikkunassa. Komentoja ei tarvitse tallentaa. Editorin SciNotes komennolla Execute: until the caret, with echo suoritetaan editorissa olevat komennot kohdistimen sijaintikohtaan asti. Scilabiin ladattu ohjelma ajetaan omalla kutsukomennollaan. Editoriin voi tietenkin ladata aiemmin tehtyjä tiedostoja SciNoten painikkeella valikkokomennolla File: Open (Ctrl+o). Scilabin painikkeella tai valikkokomennolla File: Open a file Yksinkertaisen 2 funktion rakenne on seuraava: 1 Funktiossa voi tietenkin olla myös luku- ja tulostuskäskyjä. 2 Ohjelmointia käsitellään tarkemmin tekstissä Scilab - Ohjelmointi; tässä otetaan esille vain joitain perusasioita
MATLAB - Osa 1. Timo Mäkelä
MATLAB - Osa 1 Timo Mäkelä SISÄLTÖ: 1. KÄYTTÖLIITTYMÄ...1 1.1 YLEISTÄ...1 1.2 TYÖPÖYTÄ...1 1.2.1 Komentoikkuna...2 1.2.2 Työtila...4 1.2.3 Komentohistoria...4 1.2.4 Nykyinen hakemisto...5 1.3 OHJETOIMINTA...5
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
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ä.
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
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...
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
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ä.
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
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
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
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
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.
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
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
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
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
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
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
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
Luvuilla laskeminen. Esim. 1 Laske 6 21 7
Luvuilla laskeminen TI-84 Plus käyttää laskujen suorittamiseen ns. yhtälönkäsittelyjärjestelmää (EOS TM, Equation Operating System), jonka avulla lausekkeiden syöttö tapahtuu matemaattisessa kirjoitusjärjestyksessä.
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
Fortran 90/95. + sopii erityisesti numeriikkaan:
Fortran 90/95 + sopii erityisesti numeriikkaan: + optimoivat kääntäjät tehokas koodi + mukana valmiiksi paljon varusfunktioita + kompleksiluvut + taulukko-operaatiot + operaattorit laajennettavissa myös
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,
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
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,
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
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
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
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,
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ä
KAAVAT. Sisällysluettelo
Excel 2013 Kaavat Sisällysluettelo KAAVAT KAAVAT... 1 Kaavan tekeminen... 2 Kaavan tekeminen osoittamalla... 2 Kaavan kopioiminen... 3 Kaavan kirjoittaminen... 3 Summa-funktion lisääminen... 4 Suorat eli
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
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
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ä
Talousmatematiikan perusteet: Luento 10. Matriisien peruskäsitteet Yksinkertaiset laskutoimitukset Matriisitulo Determinantti
Talousmatematiikan perusteet: Luento 1 Matriisien peruskäsitteet Yksinkertaiset laskutoimitukset Matriisitulo Determinantti Viime luennolta Esim. Yritys tekee elintarviketeollisuuden käyttämää puolivalmistetta,
DIFFERENTIAALI- JA INTEGRAALILASKENTA
DIFFERENTIAALI- JA INTEGRAALILASKENTA Timo Mäkelä Tässä tekstissä esitellään yhden muuttujan reaaliarvoisten funktioiden differentiaalilaskentaa sekä sarjoja. Raja-arvot Raja-arvoja voidaan laskea käyttämällä
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
9 Matriisit. 9.1 Matriisien laskutoimituksia
9 Matriisit Aiemmissa luvuissa matriiseja on käsitelty siinä määrin kuin on ollut tarpeellista yhtälönratkaisun kannalta. Matriiseja käytetään kuitenkin myös muihin tarkoituksiin, ja siksi on hyödyllistä
Insinöörimatematiikka D
Insinöörimatematiikka D Mika Hirvensalo mikhirve@utu.fi Matematiikan ja tilastotieteen laitos Turun yliopisto 2014 Mika Hirvensalo mikhirve@utu.fi Luentokalvot 3 1 of 16 Kertausta Lineaarinen riippuvuus
0. Kertausta. Luvut, lukujoukot (tavalliset) Osajoukot: Yhtälöt ja niiden ratkaisu: N, luonnolliset luvut (1,2,3,... ) Z, kokonaisluvut
0. Kertausta Luvut, lukujoukot (tavalliset) N, luonnolliset luvut (1,2,3,... ) Z, kokonaisluvut Rationaaliluvut n/m, missä n,m Z Reaaliluvut R muodostavat jatkumon fysiikan lukujoukko Kompleksiluvut C:z
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
Ortogonaalinen ja ortonormaali kanta
Ortogonaalinen ja ortonormaali kanta Määritelmä Kantaa ( w 1,..., w k ) kutsutaan ortogonaaliseksi, jos sen vektorit ovat kohtisuorassa toisiaan vastaan eli w i w j = 0 kaikilla i, j {1, 2,..., k}, missä
Talousmatematiikan perusteet: Luento 11. Lineaarikuvaus Matriisin aste Käänteismatriisi
Talousmatematiikan perusteet: Luento 11 Lineaarikuvaus Matriisin aste Käänteismatriisi Viime luennolla Käsittelimme matriisien peruskäsitteitä ja laskutoimituksia Vakiolla kertominen, yhteenlasku ja vähennyslasku
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
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
Kurssin loppuosassa tutustutaan matriiseihin ja niiden käyttöön yhtälöryhmien ratkaisemisessa.
7 Matriisilaskenta Kurssin loppuosassa tutustutaan matriiseihin ja niiden käyttöön yhtälöryhmien ratkaisemisessa. 7.1 Lineaariset yhtälöryhmät Yhtälöryhmät liittyvät tilanteisiin, joissa on monta tuntematonta
Käänteismatriisin ominaisuuksia
Käänteismatriisin ominaisuuksia Lause 1.4. Jos A ja B ovat säännöllisiä ja luku λ 0, niin 1) (A 1 ) 1 = A 2) (λa) 1 = 1 λ A 1 3) (AB) 1 = B 1 A 1 4) (A T ) 1 = (A 1 ) T. Tod.... Ortogonaaliset matriisit
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
Numeeriset menetelmät
Numeeriset menetelmät Luento 2 To 8.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 1/33 p. 1/33 Lukujen tallennus Kiintoluvut (integer) tarkka esitys aritmeettiset operaatiot
Java-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero
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
Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia
Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia Voidaan osoittaa, että avaruuden R n vektoreilla voidaan laskea tuttujen laskusääntöjen mukaan. Huom. Lause tarkoittaa väitettä, joka voidaan perustella
1 Peruslaskuvalmiudet
1 Peruslaskuvalmiudet 11 Lukujoukot N {1,, 3, 4,} on luonnollisten lukujen joukko (0 mukana, jos tarvitaan), Z {, 3,, 1, 0, 1,, 3,} on kokonaislukujen joukko, Q m n : m, n Z, n 0 on rationaalilukujen joukko,
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
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon
Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.
Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita
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
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
Insinöörimatematiikka D
Insinöörimatematiikka D M. Hirvensalo mikhirve@utu.fi V. Junnila viljun@utu.fi A. Lepistö alepisto@utu.fi Matematiikan ja tilastotieteen laitos Turun yliopisto 2016 M. Hirvensalo V. Junnila A. Lepistö
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely
Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
Kompleksiluvut., 15. kesäkuuta /57
Kompleksiluvut, 15. kesäkuuta 2017 1/57 Miksi kompleksilukuja? Reaaliluvut lukusuoran pisteet: Tiedetään, että 7 1 0 x 2 = 0 x = 0 1 7 x 2 = 1 x = 1 x = 1 x 2 = 7 x = 7 x = 7 x 2 = 1 ei ratkaisua reaalilukujen
Tieto- ja tallennusrakenteet
Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla
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
1 Kompleksiluvut. Kompleksiluvut 10. syyskuuta 2005 sivu 1 / 7
Kompleksiluvut 10. syyskuuta 2005 sivu 1 / 7 1 Kompleksiluvut Lukualueiden laajennuksia voi lähestyä polynomiyhtälöiden ratkaisemisen kautta. Yhtälön x+1 = 0 ratkaisemiseksi tarvitaan negatiivisia lukuja.
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python 15. helmikuuta 2009 Merkkijonot Yleistä Käsittely Muotoiltu tulostus Tiedostot Käsittely Lukeminen Kirjoittaminen Modulit Käyttö Seuraava luento
811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 2. Lukujen esittäminen ja aritmetiikka 2.1 Kantajärjestelmät ja lukujen esittäminen Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut
Vektorit. Vektorin luominen... 192 Vektorin tuominen näyttöön... 195 Vektorin koon ja alkioiden muokkaaminen... 195 Vektorin poistaminen...
12 Vektorit Vektorin luominen... 192 Vektorin tuominen näyttöön... 195 Vektorin koon ja alkioiden muokkaaminen... 195 Vektorin poistaminen... 196 TI -86 M1 M2 M3 M4 M5 F1 F2 F3 F4 F5 192 Luku 12: Vektorit
TAULUKON TEKEMINEN. Sisällysluettelo
Excel 2013 Taulukon tekeminen Sisällysluettelo TAULUKON TEKEMINEN TAULUKON TEKEMINEN... 1 Tietotyypit... 1 Tiedon syöttäminen taulukkoon... 1 Kirjoitusvirheiden korjaaminen... 2 Alueen sisällön tyhjentäminen...
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
Algoritmit C++ Kauko Kolehmainen
Algoritmit C++ Kauko Kolehmainen Algoritmit - C++ Kirjoittanut Taitto Kansi Kustantaja Kauko Kolehmainen Kauko Kolehmainen Frank Chaumont Oy Edita Ab IT Press PL 760 00043 EDITA Sähköpostiosoite Internet
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
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2011 1 / 37 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
Harjoitus 3 (viikko 39)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien
Ennakkotehtävän ratkaisu
Ennakkotehtävän ratkaisu Ratkaisu [ ] [ ] 1 3 4 3 A = ja B =. 1 4 1 1 [ ] [ ] 4 3 12 12 1 0 a) BA = =. 1 + 1 3 + 4 0 1 [ ] [ ] [ ] 1 0 x1 x1 b) (BA)x = =. 0 1 x 2 x [ ] [ ] [ 2 ] [ ] 4 3 1 4 9 5 c) Bb
Numeeriset menetelmät
Numeeriset menetelmät Luento 3 Ti 13.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 1/37 p. 1/37 Epälineaariset yhtälöt Newtonin menetelmä: x n+1 = x n f(x n) f (x n ) Sekanttimenetelmä:
Talousmatematiikan perusteet: Luento 10. Lineaarikuvaus Matriisin aste Determinantti Käänteismatriisi
Talousmatematiikan perusteet: Luento 10 Lineaarikuvaus Matriisin aste Determinantti Käänteismatriisi Lineaarikuvaus Esim. Yritys tekee elintarviketeollisuuden käyttämää puolivalmistetta, jossa käytetään
2.8. Kannanvaihto R n :ssä
28 Kannanvaihto R n :ssä Seuraavassa kantavektoreiden { x, x 2,, x n } järjestystä ei saa vaihtaa Vektorit ovat pystyvektoreita ( x x 2 x n ) on vektoreiden x, x 2,, x n muodostama matriisi, missä vektorit
Seuraavassa on esitetty seuraavien laskutoimitusten suoritukset eri laskinmalleilla
Seuraavassa on esitetty seuraavien laskutoimitusten suoritukset eri laskinmalleilla Muuttuja Frekvenssi 7 12 8 16 9 11 10 8 Tilastomoodin valinta. Tilastomuistin tyhjennys. Keskiarvon ja keskihajonnan
System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan
Numeeriset menetelmät
Numeeriset menetelmät Luento 4 To 15.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 4 To 15.9.2011 p. 1/38 p. 1/38 Lineaarinen yhtälöryhmä Lineaarinen yhtälöryhmä matriisimuodossa Ax = b
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
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
3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä.
PHP-kielen perusteet Käytä lähteenä PHP:n virallista manuaalia http://www.php.net/docs.php tai http://www.hudzilla.org/php (siirry Paul Hudsonin verkkokirjaan). Lisää materiaalia suomeksi esimerkiksi ohjelmointiputkan
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
System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja
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,
Lineaarinen yhtälöryhmä
Lineaarinen yhtälöryhmä 1 / 39 Lineaarinen yhtälö Määritelmä 1 Lineaarinen yhtälö on muotoa a 1 x 1 + a 2 x 2 + + a n x n = b, missä a i, b R, i = 1,..., n ovat tunnettuja ja x i R, i = 1,..., n ovat tuntemattomia.
Algoritmit 2. Luento 3 Ti Timo Männikkö
Algoritmit 2 Luento 3 Ti 20.3.2018 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2018 Luento 3 Ti 20.3.2018
Geogebra -koulutus. Ohjelmistojen pedagoginen hyödyntäminen
Geogebra -koulutus Ohjelmistojen pedagoginen hyödyntäminen Geogebra Ilmainen dynaaminen matematiikkaohjelmisto osoitteessa http://www.geogebra.org Geogebra-sovellusversion voi asentaa tietokoneilla ja
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,
Differentiaali- ja integraalilaskenta 1. Tietokoneharjoitus: ratkaisut
Johdanto Kokeile tavallista numeroilla laskemista: yhteen-, kerto- ja jakolaskuja sekä potenssiinkorotusta. 5 (3.1) Differentiaali- ja integraalilaskenta 1 Tietokoneharjoitus: ratkaisut Kurssin 1. alkuviikon
y z = (x, y) Kuva 1: Euklidinen taso R 2
Kompleksiluvut. Määritelmä Tarkastellaan euklidista tasoa R = {(, y), y R}. y y z = (, y) R Kuva : Euklidinen taso R Suorakulmaisessa koordinaatistossa on -akseli ja y-akseli. Luvut ja y ovat pisteen z
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
Matriisipotenssi. Koska matriisikertolasku on liitännäinen (sulkuja ei tarvita; ks. lause 2), voidaan asettaa seuraava määritelmä: ja A 0 = I n.
Matriisipotenssi Koska matriisikertolasku on liitännäinen (sulkuja ei tarvita; ks. lause 2), voidaan asettaa seuraava määritelmä: Määritelmä Oletetaan, että A on n n -matriisi (siis neliömatriisi) ja k
Algoritmit 2. Luento 3 Ti Timo Männikkö
Algoritmit 2 Luento 3 Ti 21.3.2017 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2017 Luento 3 Ti 21.3.2017
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
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?
Liukulukulaskenta. Pekka Hotokka
Liukulukulaskenta Pekka Hotokka pejuhoto@cc.jyu.fi 10.11.2004 Tiivistelmä Liukulukuja tarvitaan, kun joudutaan esittämään reaalilukuja tietokoneella. Niiden esittämistavasta johtuen syntyy laskennassa