Primijenjena matematika Damir Krstinic damir krstinicfesb hr Matlab
Primijenjena matematika Damir Krstinic damir. krstinic@fesb. hr
Matlab l l Matlab je high-performance programski jezik namjenjen za tehničke proračune Matlab objedinjava računanje, vizualizaciju i programiranje u lako uporabljivoj okolini u kojoj su problem i rješenje definirani poznatom matematičkom notacijom.
Primjena Matlaba l l l Matematika i računanje Razvoj algoritama Modeliranje, simulacija, analiza Analizu i obrada podataka, vizualizacija Znanstvena i inžinjerska grafika Razvoj aplikacija, uključujući i izgradnju GUI
Korištenje Matlaba l Naredbe za MATLAB unosimo u komandni prozor, osnovni prozor MATLABa primjer: >> 3*cos(2*pi/3)/sqrt(23) – Pored naredbi MATLABa, u komandnom prozoru vrijede i naredbe operativnog sustava primjer – promjena radnog direktorija: >> cd <ime_direktorija>
Matlab operatori + zbrajanje < Manje - oduzimanje <= manje ili jednako * množenje > veće / “desno” dijeljenje >= veće ili jednako “lijevo” dijeljenje == jednako ^ potenciranje ~= nije jednako (različito)
Specijalne varijable Ime Značenje Vrijednost ans Automatski poprima vrijednost izraza kad nije pridružen variabli eps Ocjena greške zaokruživanja 2 -52 Inf + beskonačno npr: 1/0 Na. N Not a Number npr: 0/0 i Imaginarna jedinica sqrt(-1) pi Broj pi 3. 14159265. . .
Elementarne matematičke funkcije sin(. . . ) sinus acosh(. . . ) area. cos. hiperbolnog cos(. . . ) kosinus atanh(. . . ) area tan. hiperbolnog tan(. . . ) tangens sqrt(. . . ) drugi korjen asin(. . . ) arkus sinus exp(. . . ) eksp. funkcija (baze e) acos(. . . ) arkus kosinus log(. . . ) ln (logaritam baze e) atan(. . . ) arkus tangens log 10(. . . ) log (logaritam baze 10) sinh(. . . ) hiperbolni sinus abs(. . . ) apsolutna vrijednost cosh(. . . ) hiperbolni kosinus real(. . . ) realni dio komp. broja tanh(. . . ) hiperbolni tangens imag(. . . ) imaginarni dio komp. broja asinh(. . . ) area sin. hiperbolnog round(. . . ) zaokruživanje
Matrice u Matlabu l Matricu u matlab unosimo na slijedeći način: A=[1 2 – 1; 2 4 6] , ili A=[1 2 – 1 2 4 6] <ENTER>
Operacije sa matricama + * ^ zbrajanje ‘ / transponiranje “lijevo” dijeljenje Matricu ne možemo dijeliti matricom! Koristi se za riješavanje sustava jednadžbi . *, . /, . ^ itd. operacije “član po član” Matrice moraju biti istih dimenzija. Jedna od varijabli može biti i broj Matrice moraju biti istih dimenzija oduzimanje množenje Matrice moraju biti ulančane potenciranje Matrica mora biti kvadratna “desno” dijeljenje
Rješavanje sustava linearnih jednadžbi l l Sustav je zadan u matričnom zapisu AX=B, gdje matrice A i B imaju isti broj redaka Sustav rješavamo korištenjem “lijevog djeljenja” matrica: X=AB
Primjer Rješavanje sustava: A=[1 2 3; -1 3 4; 2 4 5] B=[6; 9; 7] (ili B=[6 9 7]’) X=AB
Grafika u Matlabu l Neka je X=[1 3 – 2 5] jednoredna matrica (vektor) upisana u Matlab – X možemo nacrtati korištenjem naredbe plot(X) - crta linijski graf plot(X, ’*’) - vrijednosti od X prikazane sa *
Prikaz funkcije l Potrebno je nacrtati graf funkcije x=-10: 0. 5: 10; stvara vektor x sa elementima od – 10 do 10, korak 0. 5 y=x. /(x. ^2+4); računa vektor y na način da računa vrijednost funkcije za svaki element vektora x plot(x, y) crta vrijednosti y u ovisnosti o vrijednostima x
Prikaz funkcije, primjer 2 l Potrebno je nacrtati graf funkcija x=linspace(0, 2*pi, 30); Interval 0 do 2*pi dijeli se na 30 dijelova, vrijednosti se spremaju u vektor x y 1=sqrt(x) računa y 1 u svim elementima od x y 2=cos(x) računa y 2 u svim elementima od x plot(x, y 1, x, y 2) crta y 1 u ovisnost o x, y 2 u ovisnosti od x
Programiranje u Matlabu l Pored korištenja u naredbenom modu, Matlab ima i mogućnost razvijanja programa u vlastitom programskom jeziku – – Programe je moguće spremati u datoteke i naknadno pozivati Datoteke sa programskim kodom Matlaba nazivamo m-fileovi
Naredbe kontrole toka l U naredbe kontorle toka spadaju petlje i uvjetne strukture – – Petlje obuhvaćaju dijelove koda koji se ponavljaju više puta Uvjetne strukture obuhvaćaju dijelove koda koji se izvršava samo ako je neki uvjet zadovoljen, ili dijelove koda koji se mogu izvršiti na različite načine u ovisnosti o nekom uvijetu
for petlja l Služi za ponavljanje određene naredbe ili niza naredbi unaprijed zadani broj puta for varijabla = od: korak: do naredbe end
for petlja, primjer 1: l Računanje sume brojeva od 1 do 100 s=0; for a = 1: 100 s = s+a; end s računa vrijednost, ali rezultat ne prikazuje na ekranu
for petlja, primjer 2: l Računanje umnoška brojeva od 1 do 100 s=1; for a = 1: 100 s = s*a; end s
while petlja l Ponavlja određenu naredbu ili niz naredbi dok je ispunjen uvijet iz izraza while izraz naredbe end – Za izlaz iz petlje može se koristiti naredba break
while petlja, primjer l Pronađi broj n sa kojim suma prvih n prirodnih brojeva prelazi 100 s=0; n=0; while s<100 n = n+1; s = s+n; end n
Naredba if (if – else) l Naredba if izvršit će navedene naredbe ako je uvijet dan izrazom ispunjen osnovni oblik if izraz naredbe end prošireni oblik if izraz naredbe 1 else naredbe 2 end
Naredba if, primjer l Napiši program koji ispisuje veći od dva slučajna broja a=rand; b=rand; if a>b a else b end
m-fileovi l Dijelove programskog koda koje često izvršavamo možemo spremiti u datoteku, tzv. m-file – – Nije potrebno ukucavati kod svaki puta kada ga želimo izvršavati Razlikujemo skripte (obične m-fileove) i funkcije
Stvaranje m-filea l l Odabirom opcija izbornika (redom): File – New – M-file pojavljuje se prozor tekst editora u koji unosimo naredbe Naredbe spremamo u datoteku s ekstenzijom m (ime_datoteke. m)
Spremanje m-filea l m-fileove spremamo u putanju (PATH) Matlaba. – – PATH čine skup direktorija u kojima matlab traži mfileove Ukoliko datoteku spremamo na neko drugo mjesto, potrebno je Matlabu pokazati gdje da traži našu datoteku. Ovo radimo dodavanjem direktorija u koji je datoteka spremljena u PATH
Skripte (obični m-file) l Ako imamo neki duži niz naredbi, koji nam se u radu često ponavlja, možemo ga zapisati u obični m-file. – – – Pri svakom pozivu imena tog m-filea, izvršit će se niz naredbi iz datoteke Naredbe se izvršavaju redosljedom kojim su zapisane u datotece Efekt izvršavanja je isti kao da se u komandnom prozoru unosi naredba po naredba
Funkcijski m-file l Funkcijskim m-fileom kreiramo novu funkciju – l Ovako kreirana funkcija ravnopravna je funkcijama ugrađenim u Matlab Funkciju čine ulazni parametri, tijelo funkcije (niz naredbi) i povratna vrijednost funkcije (ili više njih)
Funkcijski m-file Funkcija sa jednom povratnom vrijednošću function varijabla = ime_funkcije(ulazne varijable) Funkcija sa više povratnih vrijednosti function [v 1 v 2. . . ] = ime_funkcije(ulazne varijable) l Funkcijski m-file spremamo u datoteku istog imena kao i funkcija
Funkcijski m-file, primjer 1 l Napiši funkcijski m-file koji vraća veći od dva broja function v = veci(a, b) if a>b v=a; else v=b; end
Funkcijski m-file, primjer 1 l Pozivanje funkcije x 1 = 2 x 2 = -3 x 3 = veci(x 1, x 2)
Funkcijski m-file, primjer 2 l Napiši funkcijski m-file koji vraća zbroj i razliku dva broja function [z r] = zb_raz(a, b) z = a+b; r = a-b; – Pozivanje: x 1 = 2; x 2 = 5; [y 1 y 2] = zb_raz(x 1, x 2)
- Slides: 32