23
Harjoitus 1: Matlab Harjoitus 1: Matlab Mat-2.2107 Sovelletun matematiikan tietokonety ¨ ot Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonety ¨ ot 1

Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Harjoitus 1: Matlab

Mat-2.2107 Sovelletun matematiikan tietokonetyot

Syksy 2006

Mat-2.2107 Sovelletun matematiikan tietokonetyot 1

Page 2: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Harjoituksen aiheita

• Tutustuminen Matlab-ohjelmistoon

• Laskutoimitusten tekeminen Matlabissa

• Matlabin sisaanrakennetut funktiot

• Ohjelmoinnin alkeita

Mat-2.2107 Sovelletun matematiikan tietokonetyot 2

Page 3: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Matlab

• Matlab (MATrix LABoratory): numeeriseen laskentaan

tarkoitettu ohjelma.

• Kaytetaan laajasti eri insinoorialoilla.

Mat-2.2107 Sovelletun matematiikan tietokonetyot 3

Page 4: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Numeerinen laskenta - Symbolinen laskenta

• Symbolinen laskenta: laskenta suljetussa muodossa.

- Tarkka ratkaisu, ei pyoristysvirheita.

• Likiarvoinen ratkaisu numeerisesti monesti helpompaa ja

nopeampaa.

- Kaytannon sovelluksia: matemaattinen mallintaminen,

simulointi . . .

• Laskentatarkkuus voi olla ongelma numeerisessa laskennassa,

esim.

>> 1-0.2-0.2-0.2-0.2-0.2

ans = 5.5511e-017

Mat-2.2107 Sovelletun matematiikan tietokonetyot 4

Page 5: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Matemaattisia ohjelmistoja

• Numeerinen laskenta

- Matlab

- Octave (ns. “freeware Matlab”)

- MS Excel (ks. harjoitukset 8-9)

• Symbolinen laskenta

- Mathematica (ks. harjoitukset 10-11)

- Maple

- MathCad

• Joillakin ohjelmilla voi laskea seka symbolisesti etta numeerisesti.

- Esim. Symbolic Math Toolbox Matlabissa.

Mat-2.2107 Sovelletun matematiikan tietokonetyot 5

Page 6: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Matlabin kayttoliittyma

• Command Window - Komentoja voidaan syottaa yksi kerrallaan.

• Command History - Aikaisemmin syotetyt komennot.

• Workspace - Tyotilaan tallennetut muuttujat.

• Editor - Ns. m-tiedostojen (funktioiden ja

komentojonotiedostojen) muokkaamista varten.

• Help - Minka tahansa funktion helpin saa auki seuraavasti:

help funktio

Mat-2.2107 Sovelletun matematiikan tietokonetyot 6

Page 7: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Matlabin Toolboxit

• Matlabissa on eri sovellusalueille tehtyja laajennuksia

(toolboxeja).

• Esim:

- Statistics Toolbox

- Optimization Toolbox

- Symbolic Math Toolbox

- Curve Fitting Toolbox

Mat-2.2107 Sovelletun matematiikan tietokonetyot 7

Page 8: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Matriisit

• Matriisi on (luku)taulukko.

- Vaakasuunnassa: rivit (rows)

- Pystysuunnassa: sarakkeet (columns)

• Alkio: Yksittainen matriisissa oleva elementti. Indeksoinnissa

esitetaan rivi ensin ja sarake toisena, esim. aij viittaa rivin i ja

sarakkeen j alkioon.

A =

a11 a12 · · · a1j

a21 a22 · · · a2j

......

. . ....

ai1 ai2 · · · aij

Mat-2.2107 Sovelletun matematiikan tietokonetyot 8

Page 9: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Matriisien kasittely Matlabissa

• Matlab = Matrix Laboratory ⇒ Matriisit ovat perustietorakenne

Matlabissa.

• Matriisit syotetaan alkioittain hakasulkujen sisaan.

• Valilyonti (tai pilkku) erottaa samalla rivilla olevat alkiot.

• Puolipiste erottaa rivit toisistaan.

• Vektorit luodaan vastaavalla tavalla.

A =

1 2 3

4 5 6

7 8 9

>> A=[1 2 3 ; 4 5 6 ; 7 8 9]

A =

1 2 3

4 5 6

7 8 9

Mat-2.2107 Sovelletun matematiikan tietokonetyot 9

Page 10: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Listan luominen

• Kaksoispisteen (:) avulla voidaan luoda lista alkioista.

>> x=10:16

x =

10 11 12 13 14 15 16

>> y=10:2:16 % alkioiden valinen erotus 2

y =

10 12 14 16

• Huom! % on kommentointimerkki. (Matlab ei suorita sen jalkeen

samalla rivilla olevia komentoja.)

Mat-2.2107 Sovelletun matematiikan tietokonetyot 10

Page 11: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Matriisin alkioihin viittaaminen 1/2

• Viittaus sulkujen avulla muodossa (rivi,sarake)

A =

1 2 3

4 5 6

7 8 9

>> A(2,1)

ans =

4

• Huom! Indeksointi alkaa 1:sta, ei 0:sta (toisin kuin esim. Javassa)

Mat-2.2107 Sovelletun matematiikan tietokonetyot 11

Page 12: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Matriisin alkioihin viittaaminen 2/2

• Voidaan myos viitata useamman alkion muodostamaan alueeseen

kaksoispisteen (:) avulla.

>> A(1:2,1)

ans =

1

4

>> A(:,1) % pelkka kaksoispiste valitsee koko sarakkeen/rivin

ans =

1

4

7

>> A(2:end,1) % end viittaa viimeiseen alkioon

ans =

4

7

Mat-2.2107 Sovelletun matematiikan tietokonetyot 12

Page 13: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Matriisien muokkaaminen

• Matriiseja voidaan myos luoda liittamalla toisia matriiseja

yhteen.

>> B=[A A]

B =

1 2 3 1 2 3

4 5 6 4 5 6

7 8 9 7 8 9

• Tiettya matriisin alkiota voidaan muuttaa seuraavasti.

>> A(1,1)=100

A =

100 2 3

4 5 6

7 8 9

Mat-2.2107 Sovelletun matematiikan tietokonetyot 13

Page 14: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Matriisin transpoosi

• Matriisin transpoosiin kaytetaan pilkkua (’).

A =

1 2 3

4 5 6

7 8 9

>> A’

ans =

1 4 7

2 5 8

3 6 9

Mat-2.2107 Sovelletun matematiikan tietokonetyot 14

Page 15: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Peruslaskutoimitukset 1/2

• Yhteen- ja vahennyslasku (+, -)

>> C=[1 2;3 4] , D=[5 6;7 8]

C =

1 2

3 4

D =

5 6

7 8

>> C+D

ans =

6 8

10 12

>> C-D

ans =

-4 -4

-4 -4

Mat-2.2107 Sovelletun matematiikan tietokonetyot 15

Page 16: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Peruslaskutoimitukset 2/2

• Kerto- ja jakolasku (*, .*, /, ./)

>> C*D % Matriisitulo

ans =

19 22

43 50

>> C.*D % Alkioittainen tulo

ans =

5 12

21 32

>> C/D % Matriisijakolasku

(vastaa laskua C*inv(D))

ans =

3.0000 -2.0000

2.0000 -1.0000

>> C./D % Alkiottainen jakolasku

ans =

0.2000 0.3333

0.4286 0.5000

Mat-2.2107 Sovelletun matematiikan tietokonetyot 16

Page 17: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Kaanteismatriisi

• Matriisin A kaanteismatriisi A−1 on olemassa tasmalleen silloin,

kun det(A) 6= 0.

• Kaanteismatriisille patee:

A · A−1 = A−1 · A = I (Yksikkomatriisi).

• Yhtaloryhman A · x = b ratkaisu:

- A on n × n matriisi, x = [x1 . . . xn]T , b = [b1 . . . bn]T .

⇔ (A−1A)x = A−1b

⇔ Ix = A−1b

⇔ x = A−1b

- Matlabissa: x=inv(A)*b tai x=A \b

Mat-2.2107 Sovelletun matematiikan tietokonetyot 17

Page 18: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Kuvaajat 1/2

• plot-funktion avulla voidaan piirtaa kuvaajia, ks. help plot

>> x=-2*pi:0.1:2*pi; % Luodaan x-vektori

>> y=sin(x); % Luodaan y-vektori

>> plot(x,y); % Piirretaan kuvaaja

(vaaka-akselilla x, pystyakselilla y)

>> grid on % Kuvaajan ruudukko paalle

>> axis tight % Akselit ilman tyhjaa tilaa laidoilla

>> title(’Sinikayra’) % Kuvaajan otsikko

>> xlabel(’x-akseli’) % Tunniste x-akselille

>> ylabel(’y-akseli’) % Tunniste y-akselille

>> legend(’x’) % Kuvateksti

Mat-2.2107 Sovelletun matematiikan tietokonetyot 18

Page 19: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Kuvaajat 2/2

−6 −4 −2 0 2 4 6

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

Sinikäyrä

x−akseli

y−ak

seli

x

Mat-2.2107 Sovelletun matematiikan tietokonetyot 19

Page 20: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

M-tiedostot

• Edella komennot on annettu yksitellen komentorivilta.

• M-tiedostojen (tiedostojen nimi on muotoa *.m) avulla voidaan

ajaa useampi komento perakkain.

- Mahdollistaa ohjelmoinnin.

• Syntaksi sama kuin komentorivilta ajettaessa.

• Komentojonotiedosto voidaan ajaa editorista kasin (nappain F5)

tai kirjoittamalla tiedoston nimi komentoriville.

Mat-2.2107 Sovelletun matematiikan tietokonetyot 20

Page 21: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Ohjelmoinnin alkeita

• For-silmukan avulla komentoja voidaan suorittaa useamman

kerran perakkain.

for muuttuja = alkuarvo : askelpituus : loppuarvo

% Suorita komentoja

end

Mat-2.2107 Sovelletun matematiikan tietokonetyot 21

Page 22: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Esimerkki silmukasta

• Tehdaan ’ohjelma’, joka tulostaa joka kierroksella indeksin i

toisen potenssin.

for i=1:2:7

i^2

end

ans =

1

ans =

9

ans =

25

ans =

49

Mat-2.2107 Sovelletun matematiikan tietokonetyot 22

Page 23: Harjoitus 1: Matlabsalserver.org.aalto.fi/vanhat_sivut/Opinnot/Mat-2.2107/01teoria.pdf · Harjoitus 1: Matlab Matriisin alkioihin viittaaminen 2/2 • Voidaan my¨os viitata useamman

Harjoitus 1: Matlab

Kysymyksia

1. Mita eroa on numeerisella ja symbolisella laskennalla?

2. Miten puolipiste rivin lopussa vaikuttaa Matlabissa?

3. Luettele kolme eri Matlabin tietotyyppia ja kerro miten ne

eroavat toisistaan? (Vinkki: help datatypes)

4. Mika on pisteen merkitys vektorien kerto- ja jakolaskussa?

5. Kuinka luot vektorin a joka sisaltaa kaikki positiiviset parittomat

luvut, jotka ovat pienempia kuin sata?

6. Miten lineaarisen yhtaloryhman Ax = b voi ratkaista

Matlabissa? Nimea kaksi eri tapaa.

Mat-2.2107 Sovelletun matematiikan tietokonetyot 23