Matlab-perusteet Harjoitustehtävien ratkaisut

Samankaltaiset tiedostot
Ohjelman käynnistäminen

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

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 1 / vko 44

Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37

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

Matemaattiset ohjelmistot A. Osa 2: MATLAB

Valitse ruudun yläosassa oleva painike Download Scilab.

Tietojen tallennus ja luku

BL40A0000 Säätötekniikan ja signaalinkäsittelyn

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

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

ELEC-C5210 Satunnaisprosessit tietoliikenteessä Harjoitus M1,

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

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

802118P Lineaarialgebra I (4 op)

Matriiseista. Emmi Koljonen

MATEMATIIKAN KOE PITKÄ OPPIMÄÄRÄ

Harjoitus 3 (viikko 39)

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

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

BM20A0700, Matematiikka KoTiB2

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

Ohjelmassa on käytettävä funktiota laskeparkkimaksu laskemaan kunkin asiakkaan maksu. Funktio floor pyöristää luvun lähimmäksi kokonaisluvuksi.

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

Matematiikan tukikurssi, kurssikerta 3

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

1 Ensimmäisen asteen polynomifunktio

Matemaattiset ohjelmistot 1-2 ov, 2-3 op

1 Peruslaskuvalmiudet

KOMPLEKSILUVUT C. Rationaaliluvut Q. Irrationaaliluvut

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa

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

Harjoitus 5 (viikko 41)

Matemaattisten menetelmien hallinnan tason testi.

Tilastolliset toiminnot

Insinöörimatematiikka D

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Kirjoita ohjelma jossa luetaan kokonaislukuja taulukkoon (saat itse päättää taulun koon, kunhan koko on vähintään 10)

Matemaattisia funktioita

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

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

Differentiaali- ja integraalilaskenta

Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä

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

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

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

Differentiaalilaskennan tehtäviä

a b 1 c b n c n

Johdatus tekoälyn taustalla olevaan matematiikkaan

mplperusteet 1. Tiedosto: mplp001.tex Ohjelmat: Maple, [Mathematica] Sievennä lauseke x 1 ( mplp002.tex (PA P1 s.2011)

Zeon PDF Driver Trial

B. 2 E. en tiedä C ovat luonnollisia lukuja?

Preliminäärikoe Pitkä Matematiikka

Lukuteorian kertausta

Käänteismatriisin ominaisuuksia

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48

ITKP102 Ohjelmointi 1 (6 op)

Vektorit. Vektorin luominen Vektorin tuominen näyttöön Vektorin koon ja alkioiden muokkaaminen Vektorin poistaminen...

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

MATEMATIIKAN KOE PITKÄ OPPIMÄÄRÄ

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Ohjelmoinnin jatkokurssi, kurssikoe

MS-A0102 Differentiaali- ja integraalilaskenta 1

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

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Esko Turunen Luku 3. Ryhmät

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

7. Resistanssi ja Ohmin laki

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:

Talousmatematiikan perusteet: Luento 13. Rajoittamaton optimointi Hessen matriisi Ominaisarvot ja vektorit Ääriarvon laadun tarkastelu

Matriisit. Määritelmä 1 Reaaliluvuista a ij, missä i = 1,..., k ja j = 1,..., n, muodostettua kaaviota a 11 a 12 a 1n a 21 a 22 a 2n A =

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

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

Matematiikka vuosiluokat 7 9

Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä.

Yleistä vektoreista GeoGebralla

Matematiikka B2 - Avoin yliopisto

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 3 /

Ohjelmoinnin peruskurssi Y1

1. a) Laske lukujen 1, 1 ja keskiarvo. arvo. b) Laske lausekkeen. c) Laske integraalin ( x xdx ) arvo. MATEMATIIKAN MALLIKOE PITKÄ OPPIMÄÄRÄ

Preliminäärikoe Tehtävät A-osio Pitkä matematiikka kevät 2016 Sivu 1 / 4

2 Yhtälöitä ja epäyhtälöitä

Ohjelmoinnin perusteet Y Python

3x + y + 2z = 5 e) 2x + 3y 2z = 3 x 2y + 4z = 1. x + y 2z + u + 3v = 1 b) 2x y + 2z + 2u + 6v = 2 3x + 2y 4z 3u 9v = 3. { 2x y = k 4x + 2y = h

3. Kirjoita seuraavat joukot luettelemalla niiden alkiot, jos mahdollista. Onko jokin joukoista tyhjä joukko?

1. Mikä on lukujen 10, 9, 8,..., 9, 10 summa? 2. Mikä on lukujen 10, 9, 8,..., 9, 10 tulo? =?

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Ohjelmistoradio tehtävät 4. P1: Ekvalisointi ja demodulaatio. OFDM-symbolien generoiminen

811120P Diskreetit rakenteet

Numeeriset menetelmät

1. Murtoluvut, murtolausekkeet, murtopotenssit ja itseisarvo

Tyyppi metalli puu lasi työ I II III

Merkitse kertolasku potenssin avulla ja laske sen arvo.

Talousmatematiikan perusteet: Luento 8. Vektoreista ja matriiseista Vektorien peruslaskutoimitukset Lineaarinen riippumattomuus Vektorien sisätulo

linux: komennoista linux linux

ITKP102 Ohjelmointi 1 (6 op)

Numeeriset menetelmät

Transkriptio:

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 >>a/b 0.5000 Tehtävä: Kokeile korottaa pelkkä vakio i tai j toiseen potenssiin. Mikä on tulos? >>i*i -1 >>j.^2-1 Tehtävä: Laske luvun z=3+4i liittoluku, itseisarvo, reaaliosa, imaginääriosa ja vaihekulma. >>z=3+4i z = 3.0000 + 4.0000i >>conj(z) 3.0000-4.0000i >>abs(z) 5 >>angle(z) 0.9273

>>real(z) 3 >>imag(z) 4 Tehtävä: Tee vektori x, joka sisältää kokonaisluvut 1-5 ja vektori y, joka sisältää luvut 6 10. Kokeile yhteen-, vähennys, kerto- ja jakolaskuja. Mitä tapahtui? >>x=[1:5] x = 1 2 3 4 5 >>y=[6:10] y = 6 7 8 9 10 >>x+y 7 9 11 13 15 >>x-y -5-5 -5-5 -5 >>x*y??? Error using ==> mtimes Inner matrix dimensions must agree. >>x/y 0.3939 >>x\y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.2000 1.4000 1.6000 1.8000 2.0000 >>x.*y 6 14 24 36 50 >>x./y 0.1667 0.2857 0.3750 0.4444 0.5000 Tehtävä: Selitä, mitä seuraavat operaatiot tekevät: x*y x *y >>x*y' 130 >>x'*y 6 7 8 9 10 12 14 16 18 20

18 21 24 27 30 24 28 32 36 40 30 35 40 45 50 Tehtävä: Tee Matlabilla vektorit, jossa on alkiot a) 2, 4, 6, 8,..., 20 b) 10, 8, 6, 4, 2, 0, -2, -4,..., -10 c) 1, 1/2, 1/3, 1/4, 1/5,..., 1/10 d) 0, 1/2, 2/3, 3/4, 4/5,..., 9/10 >>[2:2:20]; >>[10:-2:-10]; >>1./[1:10]; >>[0:9]./[1:10] Tehtävä: Käytä edellä määriteltyä matriisia a. Tee myös vaakavektori b, joka sisältää luvut 1, 2 ja 3. Mitä laskutoimituksia a:n ja b:n välillä voi tehdä? >>a=[1 2 3;4 5 6;7 8 9] a = 1 2 3 4 5 6 7 8 9 >>b=[1 2 3] b = 1 2 3 >>a+b??? Error using ==> plus Matrix dimensions must agree. >>a*b??? Error using ==> mtimes Inner matrix dimensions must agree. >>a/b 1.0000 2.2857 3.5714 >>a\b??? Error using ==> mldivide Matrix dimensions must agree. >>a*b' 14 32 50 >>a'*b??? Error using ==> mtimes Inner matrix dimensions must agree. >>b*a 30 36 42

>>b'*a??? Error using ==> mtimes Inner matrix dimensions must agree. Tehtävä: Matlabissa on valmiina joukko komentoja, joilla voidaan tehdä tiettyjä erikoismatriiseja. Tällaisia on esimerkiksi ones(n), zeros(n), eye(n), magic(n) jne. Mitä nämä komennot tekevät? Kirjaimen n tilalla on oltava positiivinen kokonaisluku. >>ones(3) 1 1 1 1 1 1 1 1 1 >>zeros(3) 0 0 0 0 0 0 0 0 0 >>eye(3) 1 0 0 0 1 0 0 0 1 >>magic(3) 8 1 6 3 5 7 4 9 2 Tehtävä: Ratkaise Matlabilla yhtälöryhmä x 1 + x 2 + x 3 = 10 0.45x 1 + 0.55x 2 + 0.7x 3 = 6.45 0.35x 1 + 0.3x 2 + 0.2x 3 = 2.35 >>A=[1 1 1;0.45 0.55 0.7;0.35 0.3 0.2] A = 1.0000 1.0000 1.0000 0.4500 0.5500 0.7000 0.3500 0.3000 0.2000 >>x=[10 6.45 2.35]' x = 10.0000 6.4500 2.3500 >>A\x 1.0000 2.0000 7.0000

Tehtävä: Maalifirmalla on ylijäämä neljää erilaista vihreän sävyn maalia, joissa on neljää pigmenttiä prosentteina seuraavasti: Maali 1 Maali 2 Maali 3 Maali 4 Pigmentti 1 80 0 30 10 Pigmentti 2 0 80 10 10 Pigmentti 3 16 20 60 72 Pigmentti 4 4 0 0 8 >>A=[80 0 30 10;0 80 10 10;16 20 60 72;4 0 0 8] A = 80 0 30 10 0 80 10 10 16 20 60 72 4 0 0 8 x=[40 27 31 2]' x = 40 27 31 2 >>A\x 0.4000 0.3000 0.2500 0.0500 Osa 2 Tehtävä: Tee 4x4-kokoinen satunnaislukumatriisi X, joka sisältää kokonaislukuarvoja väliltä 0 100. >>round(rand(4)*100) 95 89 82 92 23 76 44 74 61 46 62 18 49 2 79 41 Tehtävä: Laske edellisen tehtävän matriisin X alkioitten summa a) Riveittäin b) Sarakkeittain c) Koko matriisin alkioiden summa >>X=ans;

>>sum(x) 228 213 267 225 >>sum(x,2) 358 217 187 171 >>sum(sum(x)) 933 Tehtävä: Talleta matriisin X alkiot 16 alkion mittaiseen vaakavektoriin Y ja lajittele alkiot järjestykseen suurimmasta pienimpään. >>Y=reshape(X,1,16); Tehtävä: Talleta matriisin X alkiot 16 alkion mittaiseen vaakavektoriin Y ja lajittele alkiot järjestykseen suurimmasta pienimpään. >>sort(y,'descend') Columns 1 through 13 95 92 89 82 79 76 74 62 61 49 46 44 41 Columns 14 through 16 23 18 2 Tehtävä: Laske positiivisen kokonaisluvun n kertoma n!=1*2*3*4*..n >>x=[1:5];prod(x) 120 Tehtävä: Muuta piin likiarvo merkkijonoksi.käyttämällä Matlabin sisäistä vakiota pi ja määritä tuloksena saadun merkkijonon pituus. >>length(num2str(pi)) 6 Tehtävä: Vektori X sisältää alkiot -10 5 0 2 8 4 3 9-5. Laske vektorin positiivisten ja negatiivisten alkioiden summat >>X=[-10 5 0 2 8 4 3 9-5] X = -10 5 0 2 8 4 3 9-5 >>sum(x(x>0))

31 >>sum(x(x<0)) -15 Tehtävä: Täytä vektori sadalla satunnaislukuarvoilla väliltä 0 1. Laske niiden lukujen määrä jotka ovat välillä 0.3 0.7. >>x=rand(1,100); >>sum(x>=0.3 & x<=0.7) 47 Tehtävä: Piirrä seuraavien funktioiden kuvaajat omiin ikkunoihinsa. a. exp(-x²) b. ln(x²+x+1) c. x sin(2x²+1) d. exp(sin(3x)) - 1 >>x=[-10:.1:10]; >>plot(x,exp(-x.^2)) >>plot(x,log(x.*x+x+1)); >>plot(x,x.*sin(2*x.^2+1)); >>plot(x,x.*sin(3*x)-1); Tehtävä: Oheisessa taulukossa on luokan HYV6SN Olio-ohjelmoinnin kurssin arvosanat. Piirrä arvosanojen jakauma käyttäen Matlabin histogrammia. Lisää histogrammiin otsikko ja nimeä akselit.. Arvosanat: 4 4 3 3 0 1 0 3 0 4 2 1 0 5 4 1 4 1 2 0 >>arvosana=[4 4 3 3 0 1 0 3 0 4 2 1 0 5 4 1 4 1 2 0]; >>hist(arvosana,[0:5]) Osa 3 Tehtävä: Luo satunnaislukuja sisältävä 4x4-matriisi ja oman nimesi sisältävä merkkijono. Tallenna muuttujat tiedostoon binäärimuodossa. Tyhjennä kaikki käytössä olevat muuttujat ja lataa ne takaisin tiedostosta. >>X=rand(4); >>s='helmut recknagel'; >>save Saving to: matlab.mat >>clear

>>load Loading from: matlab.mat Tehtävä: Lataa kurssin kotisivulta edellä esitetty data ja tallenna se Matlabin työhakemistoon (oltava kirjoitusoikeudet!). Kopioi data kahteen erilliseen vektoriin vuosi ja co2. Piirrä edellä esitetty kuvaaja. Tehtävä: Kuinka paljon pitoisuus on noussut 1700 luvun alusta 2000-luvun lopulle prosenteissa? Tehtävä: Laske havaintojen lukumäärät ja keskimääräiset hiilidioksidipitoisuudet 50 vuoden aikavälein lähtien vuodesta 1800. Tehtävä: Milloin CO2-pitoisuus on laskenut eniten kahden peräkkäisen mittauksen välillä? Kuinka paljon tämä lasku oli? Tehtävä: Mikä on suurin CO2-pitoisuuden nousu prosenteissa kahden peräkkäisen mittauksen välillä? Tehtävä: Tallenna muuttujat vuosi ja co2 erillisiin tiedostoihin tekstimuodossa. Tarkista tallennuksen onnistuminen tutkimalla tiedostojen sisältöä jollain tekstieditorilla (Notepad ). >>load carb_dio.txt >>vuosi=carb_dio(:,1); >>co2=carb_dio(:,2); >>plot(vuosi,co2,'.') >>title('hiilidioksin määrä ilmakehässä') >>xlabel('vuosi') >>ylabel('co2 (ppm)') >>(co2(end)-co2(1))/co2(1)*100 30.3578 >>sum(vuosi>=1800 & vuosi < 1850) 4 >>mean(co2(vuosi>=1800 & vuosi < 1850)) 285.2750 >>%jne... >>erotus=diff(co2); >>min(erotus) -1 >>vuosi(erotus==min(erotus)) 1899

Tehtävä: Sovellusohjelmat-kurssin kokeessa opiskelijat saivat pisteitä seuraavasti: Ankka Aku 7 Ankka Roope 14 Hiiri Mikki 18 Hopo Hessu 3 >>fid=fopen('tulokset.xls','w') >>fprintf(fid,'%s %d','ankka Aku',7); >>fprintf(fid,'%s %d','ankka Roope',14); >>fprintf(fid,'%s %d','hiiri Mikki',18); >>fprintf(fid,'%s %d','hopo Hessu',3); >>fclose(fid) Tehtävä: Lue tekemäsi tulokset.txt-tiedoston sisältö käyttäen textscan-funktiota. Laske arvosanojen keskiarvo >>fid=fopen('tulokset.xls','r'); >>tulokset=textscan(fid,'%s %s %d',-1) tulokset = {4x1 cell} {4x1 cell} [4x1 int32] >>mean(tulokset{:,3}) 10.5000 >>fclose(fid); Tehtävä: Henry Cavendish mittasi maapallon keskimääräisen tiheyden vuonna 1798 torsioheilurin avulla. Kurssin sivulta löytyvässä tiedostossa density_tab.txt on listattu Cavendishin mittaustulokset (29 kpl) yksiköissä g/cm 3. Piirrä mittaustuloksista histogrammi. Mille tiheysvälille sijoittuu suurin osa mittaustuloksista ja kuinka monta arvoa kyseiselle välille osuu? >>fid=fopen('density_tab.txt','r') >>data=textscan(fid,'%f',-1,'headerlines',3) data = [29x1 double] >>hist(data{:,1}) >>mean(data{:,1}) 5.4197 >>std(data{:,1})/2 0.1694 >>fclose(fid); Tehtävä: Tallenna tulokset.txt-tiedosto tulokset.xls-tiedostoksi. Tutki Excelillä, onnistuiko tiedoston tallennus. >>fid=fopen('tulokset.xls','r'); >>tulokset=textscan(fid,'%s %s %d',-1) tulokset = {4x1 cell} {4x1 cell} [4x1 int32] >>xlswrite('tulokset.xls',tulokset{:,1},'a1:a4') >>xlswrite('tulokset.xls',tulokset{:,2},'b1:b4') >>xlswrite('tulokset.xls',tulokset{:,3},'c1:c4')