Z Matlabom ali Octave v Numerične metode

Σχετικά έγγραφα
Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 14. november Gregor Dolinar Matematika 1

matrike A = [a ij ] m,n αa 11 αa 12 αa 1n αa 21 αa 22 αa 2n αa m1 αa m2 αa mn se števanje po komponentah (matriki morata biti enakih dimenzij):

Tretja vaja iz matematike 1

Kotne in krožne funkcije

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 21. november Gregor Dolinar Matematika 1

Funkcijske vrste. Matematika 2. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 2. april Gregor Dolinar Matematika 2

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 12. november Gregor Dolinar Matematika 1

Iterativno reševanje sistemov linearnih enačb. Numerične metode, sistemi linearnih enačb. Numerične metode FE, 2. december 2013

Odvod. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 5. december Gregor Dolinar Matematika 1

*M * Osnovna in višja raven MATEMATIKA NAVODILA ZA OCENJEVANJE. Sobota, 4. junij 2011 SPOMLADANSKI IZPITNI ROK. Državni izpitni center

Integralni račun. Nedoločeni integral in integracijske metrode. 1. Izračunaj naslednje nedoločene integrale: (a) dx. (b) x 3 +3+x 2 dx, (c) (d)

V tem poglavju bomo vpeljali pojem determinante matrike, spoznali bomo njene lastnosti in nekaj metod za računanje determinant.

Gimnazija Krˇsko. vektorji - naloge

Podobnost matrik. Matematika II (FKKT Kemijsko inženirstvo) Diagonalizacija matrik

Booleova algebra. Izjave in Booleove spremenljivke

MATEMATIČNI IZRAZI V MAFIRA WIKIJU

Odvod. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 10. december Gregor Dolinar Matematika 1

Diferencialna enačba, v kateri nastopata neznana funkcija in njen odvod v prvi potenci

Matematika I (VS) Univerza v Ljubljani, FE. Melita Hajdinjak 2013/14. Pregled elementarnih funkcij. Potenčna funkcija. Korenska funkcija.

1. Definicijsko območje, zaloga vrednosti. 2. Naraščanje in padanje, ekstremi. 3. Ukrivljenost. 4. Trend na robu definicijskega območja

Σύστηµα επεξεργασίας πινάκων και συναρτήσεων τους για εφαρµογές αριθµητικής ανάλυσης και γραφικής παρουσίασης.

Βασικά στοιχεία του MATLAB

KODE ZA ODKRIVANJE IN ODPRAVLJANJE NAPAK

Funkcija je predpis, ki vsakemu elementu x iz definicijskega območja D R priredi neko število f (x) R.

VAJE IZ MATEMATIKE za študente gozdarstva. Martin Raič

Začetni tečaj MATLAB. Avtorja: Poldi Herman, univ. dipl. inž. el. Andraž Žertek, univ. dipl. inž. el.

Εισαγωγή στη Γεώργιος Γεωργίου & Χρίστος Ξενοφώντος

D f, Z f. Lastnosti. Linearna funkcija. Definicija Linearna funkcija f : je definirana s predpisom f(x) = kx+n; k,

Kotni funkciji sinus in kosinus

13. Jacobijeva metoda za računanje singularnega razcepa

IZPIT IZ ANALIZE II Maribor,

1 Πίνακες και διανύσματα στο MATLAB

Oznake in osnovne definicije

Zaporedja. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 22. oktober Gregor Dolinar Matematika 1

DISKRETNA FOURIERJEVA TRANSFORMACIJA

Osnove linearne algebre

Matrike. Poglavje II. Matrika je pravokotna tabela realnih števil. Na primer: , , , 0 1

Na pregledni skici napišite/označite ustrezne točke in paraboli. A) 12 B) 8 C) 4 D) 4 E) 8 F) 12

MATEMATIKA 1 UNIVERZITETNI ŠTUDIJSKI PROGRAM BIOKEMIJA 1. LETNIK

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 11: MATLAB

αριθµητικούς υπολογισµούς, δίχως προγραµµατισµό σε συµβατικές γλώσσες (Fortran, C)

Lastne vrednosti in lastni vektorji

αριθµητικούς υπολογισµούς, δίχως προγραµµατισµό σε συµβατικές γλώσσες (Fortran, C)

Zaporedja. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 15. oktober Gregor Dolinar Matematika 1

1 η Εργαστηριακή Άσκηση Εισαγωγή στο MATLAB

Reševanje sistema linearnih

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

VEKTORJI. Operacije z vektorji

Osnove matematične analize 2016/17

Linearna algebra. Bojan Orel Fakulteta za računalništvo in informatiko

Univerza v Mariboru. Uporaba matematičnih metod v logistiki 1 Priročnik

INŽENIRSKA MATEMATIKA I

Definicija. definiramo skalarni produkt. x i y i. in razdaljo. d(x, y) = x y = < x y, x y > = n (x i y i ) 2. i=1. i=1

ηµιουργία αρχείου στον matlab editor Πληκτρολόγηση ακολουθίας εντολών

Programski jezik MATLAB

Εισαγωγή στη Matlab Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

Σηµειώσεις MATLAB. Μιχάλης ρακόπουλος. Υπολογιστική Επιστήµη & Τεχνολογία, #01

8. Posplošeni problem lastnih vrednosti

Kvadratne forme. Poglavje XI. 1 Definicija in osnovne lastnosti

Εισαγωγή στο Matlab (μέρος β) Κολοβού Αθανασία, ΕΔΙΠ,

Analiza 2 Rešitve 14. sklopa nalog

Uvod v R. 13. oktober Uvodni primer 3

Reševanje sistemov linearnih enačb

Splošno o interpolaciji

Uporabna matematika za naravoslovce

Matematka 1 Zadaci za drugi kolokvijum

SKUPNE PORAZDELITVE VEČ SLUČAJNIH SPREMENLJIVK

Algebraične strukture

Enačba, v kateri poleg neznane funkcije neodvisnih spremenljivk ter konstant nastopajo tudi njeni odvodi, se imenuje diferencialna enačba.

Matematika. BF Lesarstvo. Zapiski ob predavanjih v šolskem letu 2009/2010

2. KOLOKVIJ IZ MATEMATIKE 1

Πληροφορική. Ενότητα 2: Α. Μεταβλητές. Όλα είναι πίνακες. Β. Δεδομένα. Σφάλματα. Δομές. Κωνσταντίνος Καρατζάς Τμήμα Μηχανολόγων Μηχανικών

Kontrolne karte uporabljamo za sprotno spremljanje kakovosti izdelka, ki ga izdelujemo v proizvodnem procesu.

Χρονικές σειρές 2 o μάθημα: Εισαγωγή στη MATLAB

UNIVERZA V MARIBORU FAKULTETA ZA KEMIJO IN KEMIJSKO TEHNOLOGIJO MATEMATIKA II

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 5 ο : MATLAB

Elementi spektralne teorije matrica

1 Fibonaccijeva stevila

Matematika 2. Diferencialne enačbe drugega reda

Linearne preslikave. Poglavje VII. 1 Definicija linearne preslikave in osnovne lastnosti

IZVODI ZADACI (I deo)

Funkcije več spremenljivk

Tadeja Kraner Šumenjak MATEMATIKA. Maribor, 2010

Γνωριμία με το MATLAB

SEMINARSKA NALOGA Funkciji sin(x) in cos(x)

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA SANDRA BOLTA LASTNE VREDNOSTI GRAFA DIPLOMSKO DELO

11.5 Metoda karakteristik za hiperbolične PDE

LJUDSKA UNIVERZA NOVA GORICA. MATEMATIKA 1 2. del. EKONOMSKI TEHNIK PTI gradivo za interno uporabo. Pripravila: Mateja Strnad Šolsko leto 2011/12

ZBIRKA REŠENIH NALOG IZ MATEMATIKE II

vezani ekstremi funkcij

Linearna algebra 2 prvi kolokvij,

1. VAJA IZ TRDNOSTI. (linearna algebra - ponovitev, Kroneckerjev δ i j, permutacijski simbol e i jk )

radni nerecenzirani materijal za predavanja

18. listopada listopada / 13

Σημειώσεις Matlab. ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ Μάθημα: Αριθμητική Ανάλυση Διδάσκων: Καθηγητής Θ.Η. Σίμος.

Εισαγωγή στον επιστημονικό προγραμματισμό 2 o Μάθημα

Matematika. Funkcije in enačbe

Vaje iz MATEMATIKE 2. Vektorji

π π ELEKTROTEHNIČKI ODJEL i) f (x) = x 3 x 2 x + 1, a = 1, b = 1;

cot x ni def. 3 1 KOTNE FUNKCIJE POLJUBNO VELIKEGA KOTA (A) Merske enote stopinja [ ] radian [rad] 1. Izrazi kot v radianih.

Transcript:

1 / 42 Z Matlabom ali Octave v Numerične metode Andrej Perne Fakulteta za elektrotehniko pomlad 2006 - jesen 2012

2 / 42 Vsebina UNIX Osnovni ukazi Elementarne funkcije Funkcije za delo z vektorji Funkcije za delo z matrikami Programiranje, m-datoteke Risanje grafov in razno

3 / 42 mkdir: nova mapa Ukazi v UNIX-u I Z ukazom mkdir MojaMapa ustvarimo novo mapo z imenom MojaMapa. cd: prehajanje med mapami Z ukazom cd MojaMapa se iz mape, ki vsebuje mapo MojaMapa, preselimo v mapo MojaMapa. Z ukazom cd.. se iz mape MojaMapa preselimo v mapo, ki vsebuje mapo MojaMapa. rmdir: izbris mape Z ukazom rmdir MojaMapa izbrišemo mapo z imenom MojaMapa. ls ali dir: izpis vseh map in datotek, ki se nahajajo v trenutni mapi man: pomoč

4 / 42 Ukazi v UNIX-u II cp: kopiranje datoteke Z ukazom cp vaja.txt Vaja skopiramo datoteko vaja.txt, ki se nahaja v trenutni mapi, v mapo Vaja, ki se nahaja v trenutni mapi. rm: brisanje datoteke Z ukazom rm vaja.txt izbrišemo datoteko vaja.txt, ki se nahaja v trenutni mapi. mv: preimenovanje datoteke Z ukazom mv vaja.txt naloga.txt preimenujemo datoteko vaja.txt v naloga.txt. matlab: zagon Matlaba octave: zagon Octave

5 / 42 Osnovni ukazi help, clear, exit, who, what help: pomoč v Matlabu oz. Octave Z ukazom help exp izpišemo uporabo in primere za ukaz exp. clear: izbris spremenljivk Z ukazom clear all izbrišemo vse spremenljivke. Z ukazom clear x izbrišemo spremenljivko x. exit ali quit: izhod iz Matlaba oz. Octave who: informacija o trenutno uporabljenih spremenljivkah whos: informacija o trenutno uporabljenih spremenljivkah v daljši obliki what: izpis vseh m-datotek v trenutni mapi

6 / 42 Ukaza format in diary format: oblikovanje izpisa na zaslonu Z ukazom format long spremenimo izpis števil v daljši izpis na 14 decimalk. Z ukazom format short spremenimo izpis števil v krajši izpis na 4 decimalke. Ta izpis je privzet. diary: zapis v datoteko Z ukazom diary vaja.txt ustvarimo tekstovno datoteko vaja.txt, kamor se zapisuje vse kar se izpiše na zaslon. Z ukazom diary off izklopimo zapis na datoteko. Z ukazom diary on ponovno vklopimo zapis na datoteko.

7 / 42 Algebrske operacije, decimalna števila, konstante Za računanje z realnimi (in kompleksnimi) števili imamo na voljo naslednje algebrske operacije. +, - : seštevanje, odštevanje *, / : množenje, deljenje : potenciranje Decimalno število zapišemo z decimalno piko. Najpogostejše konstante: pi : število π exp(1) : osnova naravnega logaritma e i ali j : imaginarna enota i

8 / 42 Relacijski in logični (Boolovi) operatorji Relacijski operatorji: == : enako = : različno < : manjše Logični operatorji: & : logični in (in hkrati) : logični ali : logični ne (negacija) <= : manjše ali enako > : večje >= : večje ali enako

9 / 42 Funkcije sqrt, abs, exp, log, log10 Z ukazom help elfun izpišemo spisek vseh elementarnih funkcij (samo v Matlabu). Argumente funkcij pišemo v okroglih oklepajih ( ). sqrt: kvadratni koren ( x) abs: absolutna vrednost ( x ) exp: eksponentna funkcija (e x ) log: naravni logaritem (ln x) log10: desetiški logaritem (log x) sqrt(9) 3 abs(-1) 1 exp(0) 1 log(1) 0 log10(10) 1

10 / 42 Trigonometrične in krožne funkcije sin: sinus (sin x) cos: kosinus (cos x) tan: tangens (tg x) cot: kotangens (ctg x) asin: arcus sinus (arcsin x) acos: arcus kosinus (arccos x) atan: arcus tangens (arctg x) acot: arcus kotangens (arcctg x) sin(pi) 0 cos(0) 1 tan(pi/4) 1 cot(pi/2) 0 asin(1) 1.5708 acos(-1) 3.1416 atan(1) 0.7854 acot(-1) -0.7854

11 / 42 Funkcije nad kompleksnimi števili real: realna komponenta imag: imaginarna komponenta conj: konjugirana vrednost kompleksnega števila abs: absolutna vrednost angle: kot real(4+3*i) 4 imag(4+3*i) 3 conj(4+3*i) 4-3*i abs(4+3*i) 5 angle(4+3*i) 0.6435

12 / 42 Zaokrožitvene funkcije in ostanek pri deljenju fix: zaokrožanje na najbližje celo število proti 0 floor: zaokrožanje navzdol ceil: zaokrožanje navzgor round: zaokrožanje k najbližjemu celemu številu mod(x,y): ostanek pri deljenju x z y rem(x,y): ostanek pri deljenju x z y fix(1.8) 1 fix(-1.8) -1 floor(1.8) 1 ceil(1.8) 2 round(-1.8) -2 mod(5,2) 1 mod(-5,2) 1 rem(5,2) 1 rem(-5,2) -1

13 / 42 Specialne funkcije sign, gamma in beta Funkcija sign(x) vrne predznak števila x. 1; x > 0 sign(x) = 0; x = 0 1; x < 0 gamma(x): funkcija gama Γ(x) = 0 t x 1 e t dt, x > 0 beta(x,y): funkcija beta B(x, y) = 1 0 x > 0, y > 0 t x 1 (1 t) y 1 dt, sign(-5) -1 sign(5) 1 gamma(1/2) 1.7725 sqrt(pi) 1.7725 beta(1,2) 0.5

14 / 42 Faktorji in praštevila primes(n): izpis vseh praštevil, ki so manjša ali enaka N primes(10) 2 3 5 7 factor(n): izpis vseh praštevilskih faktorjev števila N factor(10) 2 5 isprime(p): ali je število p praštevilo? isprime(2) 1 isprime(4) 0

15 / 42 Vektorji in polja Vektor pišemo v oglatih oklepajih [ ]. Decimalno število zapišemo z decimalno piko. Komponente vektorja ločimo z vejicami ali presledki. x = [1.65, 2.23, 1.99] y = [1 2 3 4 5] Do komponent vektorja dostopamo z okroglimi oklepaji ( ). Več komponent izpišemo z operatorjem :. Kot primer izpišimo prvo komponento vektorja x ter drugo do četrto komponento vektorja y. x(1) 1.65 y(2:4) [2 3 4]

16 / 42 Algebrske operacije s polji Pri poljih je potrebno pri nekaterih operacijah pred operatorjem uporabljati PIKO. +, - : seštevanje, odštevanje.*,. : množenje, potenciranje./,.\ : desno deljenje, levo deljenje : transponiranje Skalarni in vektorski produkt vektorjev izračunamo s funkcijama dot in cross. dot(x,y) : skalarni produkt vektorjev x in y cross(x,y) : vektorski produkt vektorjev x in y

17 / 42 Ukaz linspace in operator : Z ukazom linspace(a,b,n) zgradimo vektor z n ekvidistantnimi komponentami med a in b. Kot primer definirajmo vektor s sedmimi ekvidistantnimi komponentami med 0 in 3. z = linspace(0,3,7) z=[0 0.5 1 1.5 2 2.5 3] Z operatorjem : zgradimo vektor z ekvidistantnimi komponentami. Privzeti korak je 1. Kot primer definirajmo vektora med 0 in 6 s korakoma 1 in 2. z = 0:6 z = [0 1 2 3 4 5 6] z = 0:2:6 z = [0 2 4 6]

18 / 42 Vektorske funkcije length, min, max, sum, prod length: število komponent min: najmanjša komponenta max: največja komponenta sum: vsota komponent prod: produkt komponent cumsum: kumulativna vsota komponent cumprod: kumulativen produkt komponent length(x) 3 min(y) 1 max(y) 5 sum(x) 5.87 prod(y) 120 cumsum(x) [1.65 3.88 5.87] cumprod(y) [1 2 6 24 120]

19 / 42 Funkcija norm Z ukazom norm izračunamo normo vektorja. Privzeta je evklidska ali druga norma. norm(x) ali norm(x,2): evklidska norma x 2 = n i=1 x 2 i norm(x,1): prva norma n x 1 = x i i=1 norm(x,inf): neskončna norma x = max 1 i n x i norm(y) 7.4162 norm(y,1) 15 norm(y,inf) 5

20 / 42 Vektorske funkcije diff, sort, unique, find diff(x): vektor razlik med sosednjima komponentama vektorja x diff(y) [1 1 1 1] sort(x): urejen vektor x issort(x): ali je vektor x urejen? unique(x): urejen vektor x, kjer se vsako število pojavi samo enkrat find(x): iskanje neničelnih elementov v vektorju x, kjer kot rezultat dobimo vektor indeksov, kjer se nahajajo neničelni elementi z = [1 0 2]; find(z) [1 3]

21 / 42 Statistične funkcije mean, var, std, cov mean(x): srednja vrednost x = 1 n x i n i=1 var(x): disperzija var(x) = 1 n (x i x) 2 n 1 i=1 std(x): standardna deviacija std(x) = var(x) cov(x,y): kovarianca mean(y) 3 mean(x) 1.9567 var(y) 2.5 var(x) 0.0849 std(y) 1.5811 std(x) 0.2914 cov(x,y(1:3)) 0.0849 0.1700 0.1700 1.0000

22 / 42 Množice Vektorje v primeru uporabe teh funkcij razumemo kot množice komponent vektorjev. union(x,y): unija množic x in y intersect(x,y): presek množic x in y setdiff(x,y): razlika množic x in y ismember(p,x): ali je število p element množice x? ismember(2,x) 0 ismember(2,y) 1

23 / 42 Matrike Matriko pišemo v oglatih oklepajih [ ]. Decimalno število napišemo z decimalno piko. Elemente v vrstici ločimo s presledkom ali vejico, vrstice pa ločimo s podpičjem. A = [1 2 3; 4 5 6; 7 8 9] Do elementov matrike dostopamo z okroglimi oklepaji ( ). Več elementov izpišemo z operatorjem :. Kot primer izpišimo element matrike A, ki leži v drugi vrstici in tretjem stolpcu, ter podmatriko matrike A od prve do druge vrstice in od drugega do tretjega stolpca. A(2,3) 6 A(1:2,2:3) [ 2 3 5 6 ]

24 / 42 Algebrske operacije z matrikami +, - : seštevanje, odštevanje *, : množenje, potenciranje /, \ : desno deljenje, levo deljenje ali transpose : transponiranje Nekatere druge operacije z matrikami: fliplr(a): zrcaljenje matrike A levo desno flipud(a): zrcaljenje matrike A gor dol

25 / 42 Matrične funkcije size, max, min, sum size(a): dimenzije matrike A (število vrstic in stolpcev) size(a) 3 3 max(a): vektor največjih elementov v stolpcih matrike A max(a) [7 8 9] max(max(a)) 9 min(a): vektor najmanjših elementov v stolpcih matrike A min(a) [1 2 3] min(min(a)) 1 sum(a,1): vektor vsot elementov po stolpcih matrike A (privzeto) sum(a,2): vektor vsot elementov po vrsticah matrike A

26 / 42 Matrična funkcija diag diag(a): diagonala matrike A (privzeto n = 0) diag(a,n): n-ta naddiagonala (poddiagonala) matrike A diag(a,1): prva naddiagonala matrike A diag(a,-1): prva poddiagonala matrike A diag(a) [1 5 9] diag(x): sestavimo diagonalno matriko A, ki ima na diagonali elemente vektorja x diag(diag(a)): diagonalna matrika, ki ima na diagonali diagonalne elemente matrike A diag([1 2 3]) 1 0 0 0 2 0 0 0 3 diag(diag(a)) 1 0 0 0 5 0 0 0 9

27 / 42 Matrične funkcije triu, tril triu(a): zgornji trikotnik matrike A (privzeto n = 0) triu(a,n): zgornji trikotnik od n-te naddiagonale naprej triu(a,1): strogi zgornji trikotnik matrike A triu(a) 1 2 3 0 5 6 0 0 9 triu(a,1) 0 2 3 0 0 6 0 0 0 tril(a): spodnji trikotnik matrike A (privzeto n = 0) tril(a,-n): spodnji trikotnik od n-te poddiagonale naprej tril(a,-1): strogi spodnji trikotnik matrike A tril(a) 1 0 0 4 5 0 7 8 9 tril(a,-1) 0 0 0 4 0 0 7 8 0

28 / 42 Matrične funkcije za konstrukcijo matrik ones(n,m): matrika dimenzije n m iz samih enic [ ] 1 1 1 ones(2,3) 1 1 1 zeros(n,m): matrika dimenzije n m iz samih ničel [ ] 0 0 ones(2,2) 0 0 eye(n): identična matrika dimenzije n n [ ] 1 0 eye(2) 0 1 rand(n,m): naključna matrika dimenzije n m

29 / 42 Ukaza reshape in sparse Z ukazom reshape(x,n,n) iz vektorja dolžine n 2 konstruiramo matriko dimenzije n n tako, da elemente zložimo po stolpcih. x = [1 2 3 4 5 6 7 8 9]; 1 4 7 reshape(x,3,3) 2 5 8 3 6 9 Z ukazom sparse(i,j,a,m,n) sestavimo razpršeno matriko dimenzije m n, kjer so v vektorju i shranjeni indeksi vrstic, v vektorju j indeksi stolpcev in v vektorju a elementi matrike. i = [1 2]; j =[3 1]; a=[9 5]; 0 0 9 sparse(i,j,a,3,3) 5 0 0 0 0 0

30 / 42 Linearna algebra I det(a): determinanta matrike A eig(a): lastne vrednosti in lastni vektorji matrike A poly(a): karakteristični polinom matrike A norm(a): norma matrike A rank(a): rang matrike A inv(a): inverz matrike A cond(a): pogojenostno število matrike A trace(a): sled matrike A (vsota diagonalnih elementov)

31 / 42 Linearna algebra II rref(a): reducirana oblika matrike A null(a): ničelni prostor matrike A orth(a): ortonormalna baza matrike A lu(a): LU razcep matrike A chol(a): razcep Choleskega matrike A qr(a): QR razcep matrike A svd(a): singularni razcep matrike A

32 / 42 Sistem linearnih enačb Linearen sistem Ax = b rešimo z ukazom x = A \ b (levo deljenje). Kot primer vzemimo A = 1 2 1 2 1 2 1 1 2, b = 4 5 4. A = [1 2 1; 2 1 2; 1 1 2]; b = [4 5 4] ; x = A \ b [1 1 1]

33 / 42 Zanki for in while Za programiranje imamo na voljo zanki for in while. For zanka izvede določeno število ponovitev, while zanka pa se izvaja dokler je pogoj izpolnjen. Iz zanke lahko izstopimo z ukazom break. for spremenljivka = pogoj stavki end while pogoj stavki end x = zeros(1,5); for i=1:5 x(i) = i 2; end; a = 100; while a > 10 a = a/2; end;

Stavka if in switch Za programiranje imamo na voljo imamo na voljo pogojna stavka if in switch, ki izvajata ukaze glede na pogoj. if pogoj stavki elseif pogoj stavki else pogoj stavki end if n > 5 a = 1; else a = 0; end; switch pogoj case vrednost stavki case vrednost1, vrednost2 stavki otherwise stavki end 34 / 42

35 / 42 m-datoteke Poznamo dva tipa m-datotek: skripte in funkcije. Skripte so zgolj daljše kode, ki jih ne želimo pisati v ukazno vrstico. Funkcije pa se vedno začnejo z ukazom function. Funkcijam podamo vhodne in izhodne argumente. Tako napisano funkcijo kličemo na enak način kot vgrajene funkcije. Ime m-datoteke naj bo enako imenu funkcije. Kot primer napišimo funkcijo, ki izračuna obseg in ploščino kroga z danim polmerom r. function [o,p] = krog(r) o = 2*pi*r; p = pi*r 2; [o,p] = krog(3) o = 18.8496 p = 28.2743

36 / 42 Ukaza inline in eval Z ukazom inline definiramo notranje funkcije. Kot primer definirajmo funkcijo f (x) = x 2 in izračunajmo njeno vrednost v točki 2. f = inline( x f(2) 4 2, x ); Z ukazom eval izračunavamo funkcije. Argument mora biti podan kot niz. Funkcijo f (x) = x 2 zapišimo kot niz in izračunajmo njeno vrednost v točki 2. f = x 2 ; x = 2; eval(f) 4

37 / 42 Ukaz plot: risanje grafov funkcij Z ukazom plot(x,y) narišemo graf funkcije, ki je podana z vektorjema x (x koordinate) in y (y koordinate). Kot primer narišimo funkcijo y = sin x na intervalu [0, 2π]. x = 0:0.01:2*pi; y = sin(x); plot(x,y) Sliki lahko dodamo naslov, oznake na obeh oseh in legendo. titel: naslov xlabel: oznake na x-osi ylabel: oznake na y-osi legend: legenda

axis: osi Ukazi za delo s slikami Z ukazom axis equal določimo, da sta enoti na obeh oseh enaki. Z ukazom axis([-5,5,-3,3]) določimo, da se graf funkcije izriše na intervalu [ 5, 5] na x-osi in [ 3, 3] na y-osi. hold: zadržanje slike Z ukazom hold on zadržimo sliko, da lahko na isto sliko narišemo nov graf. Z ukazom hold off izklopimo zadržanje slike. grid: mreža Z ukazom grid on vklopimo mrežo. Z ukazom grid off izklopimo mrežo. Poleg osnovnega ukaza plot imamo za izris slik na voljo še druge ukaze, npr. semilogy (logaritemska skala na y-osi) in plot3 (grafi v 3 dimenzijah). 38 / 42

39 / 42 Opcije za izris grafov funkcij Obsežen seznam opcij dobimo z ukazom help plot. Nekatere pomembnejše so naštete spodaj. Zapišemo jih v enojnih navednicah. Barve: b modra, g zelena, r rdeča, y rumena, k črna, w bela. Črte: - polna, : pikčasta, - črtkasta, -. pikčasto-črtkasta. Debelina črt: LineWidth,2 dvojna debelina. Markerji:. točka, o krogec, x x-znak, + plusek, * zvezdica.

40 / 42 Primer opremljenega grafa Narišimo na isto sliko grafa funkcij y = sin x z rdečo črtkasto črto ter y = cos x z modro polno črto na intervalu [ π, 2π]. Maksimume in minumume obeh funkcij označimo z zelenimi krogci, ničle pa s črnimi x-znaki. Dodajmo še naslov, oznake na obeh oseh, mrežo ter legendo. x = -pi:0.01:2*pi; y = sin(x); z = cos(x); plot(x,y, r-,x,z, b- ); hold on; grid on; axis equal; axis([-pi 2*pi -1.1 1.1]); title( Grafa funkcij sinus in kosinus ); xlabel( x ); ylabel( y ); xx = [-pi -pi/2 0 pi/2 pi 3*pi/2 2*pi]; plot(xx,[-1-1 1 1-1 -1 1], go ); plot(xx,zeros(1,7), kx ); legend( sinus, kosinus, ekstremi, nicle );

41 / 42 Ukazi za delo s polinomi Z ukazom polyval(p,x) izračunamo vrednost polinoma p v točki x. Polinom podamo z vektorjem koeficientov, ki so urejeni po padajočih potencah x-a. Z ukazom roots(p) izračunamo ničle polinoma p. Kot primer izračunajmo vrednost polinoma p(x) = x 3 3x + 2 v točki x = 2 ter njegove ničle. polyval([1 0-3 2],2) 4 roots([1 0-3 2]) [-2 1 1] Z ukazom polyfit(x, y, n) določimo koeficiente interpolacijskega polinoma stopnje n, kjer za interpolacijske točke vzamemo pare komponent iz vektorjev x in y. Z ukazom spline(x,y) določimo kubični zlepek, kjer za interpolacijske točke vzamemo pare komponent iz vektorjev x in y.

42 / 42 Ukaz quad: numerično integriranje Z ukazom quad(f,a,b) numerično izračunamo določeni integral funkcije f na intervalu [a, b]. Kot primer izračunajmo integral f = inline( x 2 ); quad(f,0,1) 1 3 1 0 x 2 dx. Z ukazom trapz(y) z uporabo trapeznega pravila izračunamo določeni integral funkcije, ki je podana z vektorjem funkcijskih vrednosti y za enotske razmike. Kot primer izračunajmo integral 3 0 (x + 1)dx, kjer je vhodni podatek vektor y = (1, 2, 3, 4). y = [1 2 3 4]; trapz(y) 7.5