28
Znanstveno raˇ cunanje 2 Nela Bosner MATLAB Znanstveno raˇ cunanje 2 1. dio vježbi MATLAB Nela Bosner

Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

  • Upload
    others

  • View
    10

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLAB

Znanstveno racunanje 21. dio vježbi

MATLAB

Nela Bosner

Page 2: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

MATLAB

MATLAB je interaktivni programski jezik za tehnicko iznanstveno racunanje. U njemu su integrirani

racunanjevizualizacijaprogramiranje

u okolini koja je jednostavna za korištenje, u kojoj suproblemi i rješenja izraženi u standardnoj matematickojnotaciji.

Page 3: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Matrice

U MATLAB-u matrica je pravokutno polje brojeva. Podimenzijama dijele se na:

m × n pravokutne ili n × n kvadratne matricen × 1 stupcani ili 1× n retcani vektor1× 1 skalar.

MATLAB omogucuje brz i jednostavan rad sa cijelimmatricama.

Unos matrica – po recima:elementi retka se razdvajaju prazninom ( ) ili zarezom(,)kraj retka se oznacava skakanjem u novi red (Enter) ilitockom-zarezom (;)cijela lista elemenata omedena je uglatim zagradama [ ]

Page 4: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

PrimjerUnos u komandnom prozoru:

A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

Odmah nakon toga MATLAB ispisuje ono što smo upravounjeli:

A =16 3 2 135 10 11 89 6 7 124 15 14 1

Matrica A je sada spremljena u MATLAB-ovu radnumemoriju (Workspace) i sa ovim imenom može se koristiti umatricnim izrazima.Ovaj ispis može se dobiti kada se u komandnu liniju upiše A.

Page 5: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Pristup elementima matrice:A(i,j) — element u i-tom retku i j-tom stupcuA(i:j,k:l) — podmatrica A(i , k) · · · A(i , l)

......

A(j , k) · · · A(j , l)

A(:,k:l) = A(1:n,k:l) — za matricu sa n redaka

Operator : definira retcani vektorpocetak : kraj — vektor s elementimapocetak pocetak+1 pocetak+2 · · · kraj

pocetak : korak : kraj — vektor s elementimapocetak pocetak+korak pocetak+2*korak · · · pocetak+i*korak

gdje je|pocetak+i*korak|≤|kraj|<|pocetak+(i+1)*korak|

Page 6: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

PrimjerUnos u komandnom prozoru:

1:10

Ispis:

1 2 3 4 5 6 7 8 9 10

Unos u komandnom prozoru:

0:3:10

Ispis:

0 3 6 9

Ako se unos završi sa ; ispis se nece izvršiti.

Page 7: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Izrazi

Varijable MATLAB ne zahtijeva deklaraciju tipavarijable ili dimenzija matrica.Kada se pojavi novo ime varijableautomatski se kreira varijabla i alociraodgovarajuca kolicina memorije. (A=· · · )Ako varijabla vec postoji mijenja se njensadržaj, ili ako je potrebno alocira se novamemorija.

Brojevi MATLAB koristi uobicajenu decimalnunotaciju, sa opcionalnom decimalnomtockom, ili vodecim znakom + ili −.Eksponencijalna notacija koristi slovo e zaoznaku eksponenta baze 10.Kompleksni brojevi koriste i ili j zaoznaku imaginarnog dijela.

Page 8: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Svi brojevi interno se spremaju koristecilong format (double) za brojeve spomicnom tockom.Brojevi s pomicnom tockom imaju otprilike16 znacajnih znamenki i konacni rasponod oko 10−308 do oko 10308.Formati ispisa:

format short format s fiksnom tockom i s 4 znamenkenakon decimalne tocke (3.1416)

format long format s fiksnom tockom i s 14 do 15 znamenkinakon decimalne tocke (3.14159265358979)

format short e format s pomicnom tockom i s 4 znamenkenakon decimalne tocke (3.1416e+000)

format long e format s pomicnom tockom i s 14 do 15 znamenkinakon decimalne tocke (3.141592653589793e+000)

Page 9: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

PrimjerSlijedi nekoliko primjera legalnih brojeva

3 -99 0.00019.6397238 1.60210e-20 6.02252e231i -3.14159j 3e5i

Page 10: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Operatori

A+B ili A-B zbrajanje ili oduzimanje; A i B moraju imatijednake dimenzije ili jedan od njih je skalar

A*B množenje matrica; broj stupaca od A mora bitijednak broju redaka od B ili jedan od njih jeskalar

A.*B množenje po elementima; A i B moraju imatijednake dimenzije ili jedan od njih je skalar(A(i,j)*B(i,j))

A\B matricno lijevo dijeljenje; ako je A kvadratnamatrica tada je X=A\B rješenje sustavajednadžbi AX=B izracunat Gaussovimeliminacijama; ako je A pravokutna matrica tadaje X=A\B rješenje problema najmanjih kvadrata

Page 11: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

A.\B lijevo dijeljenje po elementima; A i B moraju imatijednake dimenzije ili jedan od njih je skalar(B(i,j)/A(i,j))

A/B matricno desno dijeljenje; ekvivalentno (B’\A’)’A./B desno dijeljenje po elementima; A i B moraju imati

jednake dimenzije ili jedan od njih je skalar(A(i,j)/B(i,j))

Aˆp matricno potenciranjeA.ˆB potenciranje po elementima; A i B moraju imati

jednake dimenzije ili jedan od njih je skalar(A(i,j)ˆB(i,j))

A’ kompleksno konjugirano transponiranje (A∗)A.’ transponiranje (AT )

Page 12: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

˜A logicki NE po elementima (0 je false, <>0 je true)A&B logicki I po elementima (0 je false, <>0 je true)A|B logicki ILI po elementima (0 je false, <>0 je true)A<B JE MANJE po elementima (0 je false, <>0 je true)A<=B JE MANJE ILI JEDNAKO po elementima (0 je false,

<>0 je true)A>B JE VECE po elementima (0 je false, <>0 je true)A>=B JE VECE ILI JEDNAKO po elementima (0 je false,

<>0 je true)A==B JE JEDNAKO po elementima (0 je false, <>0 je

true)A˜=B NIJE JEDNAKO po elementima (0 je false, <>0 je

true)

Page 13: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Funkcije MATLAB sadrži veliki broj matematickihfunkcija

elementarne funkcije: sin, cos, asin,acos, sinh, cosh, asinh, acosh, exp,log, log10, sqrt, abs, round, mod,factorial,. . .matricne funkcije: size, diag, eye,ones, rand, randn, zeros, tril, triu,sort, min, max, funkcije za kreiranjeraznih specijalnih matrica,. . .

Page 14: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

funkcije linearne algebrefunkcije za rad s polinomimafunkcije za interpolaciju i racunskugeometrijufunkcije za transformaciju koordinatnogsustavafunkcije za rješavanje diferencijalnih iintegralnih jednadžbi, i optimizacijuspecijalne matematicke funkcijefunkcije za rad sa rijetko popunjenimmatricamafunkcije koje vracaju znacajnematematicke konstante: eps, i, j, Inf,NaN, pi,. . .

Page 15: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

PrimjerUnesimo matricu

A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16;17 18 19 20]

s ispisom

A =1 2 3 45 6 7 89 10 11 1213 14 15 1617 18 19 20

Pozivi raznih funkcija vratit ce sljedece vrijednosti.

Page 16: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Primjer (nastavak)size(A)

ans =5 4

min(A)

ans =1 2 3 4

max(A)

ans =17 18 19 20

Page 17: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Primjer (nastavak)sort(A,2,’descend’)

ans =4 3 2 18 7 6 512 11 10 916 15 14 1320 19 18 17

diag(A)

ans =161116

Page 18: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Primjer (nastavak)diag(diag(A))

ans =1 0 0 00 6 0 00 0 11 00 0 0 16

triu(A)

ans =1 2 3 40 6 7 80 0 11 120 0 0 160 0 0 0

Page 19: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Primjer (nastavak)tril(A)

ans =1 0 0 05 6 0 09 10 11 013 14 15 1617 18 19 20

eye(5,4)

ans =1 0 0 00 1 0 00 0 1 00 0 0 10 0 0 0

Page 20: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Primjer (nastavak)zeros(5,4)

ans =0 0 0 00 0 0 00 0 0 00 0 0 00 0 0 0

ones(5,4)

ans =1 1 1 11 1 1 11 1 1 11 1 1 11 1 1 1

Page 21: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Primjer (nastavak)

rand(m,n) — kreira m×n matricu pseudo-slucajnihbrojeva uniformne distribucije na segmentu [0,1]randn(m,n) — kreira m×n matricu pseudo-slucajnihbrojeva normalne distribucije sa ocekivanjem 0 istandardnom devijacijom 1eps — udaljenost od 1 do prvog sljedeceg brojadvostruke preciznosti

ans =2.2204e-016

i ili j — imaginarna jedinicaans =

0 + 1.0000i

Page 22: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Primjer (nastavak)Inf — reprezentacija IEEE aritmetike za pozitivnubeskonacnost (1/0)NaN — reprezentacija IEEE aritmetike za“Not-a-Number”, rezultat matematicki nedefiniraneoperacije (0/0)pi — π

ans =3.141592653589793

Page 23: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Kontrola toka programa

Uvjetno grananje

naredbe if, else i elseifif logicki_izraz_1

naredbe_1elseif logicki_izraz_2

naredbe_2...

elseif logicki_izraz_knaredbe_k

elsenaredbe_k+1

end

Page 24: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

naredbe switch, case i otherwiseswitch izraz

case vrijednost_1naredbe_1

case vrijednost_2naredbe_2...

otherwisenaredbe_k+1

end

Page 25: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

naredbe for, while, continue i breakfor indeks=pocetak:korak:kraj

naredbeend

while izraznaredbe

end

naredba return

Page 26: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Funkcijedefinicija funkcije

function [izlaz_1, izlaz_2, ...] = imefun(ulaz_1, ulaz_2, ...)naredbe

end

poziv funkcije

[var_1, var_2, ...] = imefun(ulaz_1, ulaz_2, ...)

spremanje funkcije u M-file — definicija sepiše u editoru i sprema u istoimenudatoteku s ekstenzijom .m

imefun.m

M-file skripte — bilo koji niz MATLABnaredbi sprema se u datoteku sekstenzijom .m

Page 27: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Spremanje i citanje varijabli u i iz datoteke

naredba save

save imedat var_1 var_2 ...

varijable se spremaju u datotekuimedat.mat

naredba load

load imedat

postavlja sve varijable iz imedat.mat na vrijednostikoje su definirane u istoj datoteci

Page 28: Znanstveno racunanje 2 - 1. dio vje bi MATLABnela/zr2vjezbe/zr2_matlab.pdf · Kontrola toka programa Spremanje i ˇcitanje varijabli u i iz datoteke Dokumentacija funkcije linearne

Znanstvenoracunanje 2

Nela Bosner

MATLABMatrice

Izrazi

Kontrola tokaprograma

Spremanje i citanjevarijabli u i izdatoteke

Dokumentacija

Dokumentacija

Za svaku MATLAB-ovu naredbu ili funkciju može seupisati

help naredba

u komandni prozor, cime se ispisuje dokumentacija zatu naredbu ili funkcijuOdabir opcije MATLAB help u Help izborniku.