FAKULTET ZA POSLOVNU INFORMATIKU
mr Ivana Kovačević
MATLAB Drugo izdanje
Beograd 2006.
Autori: mr Ivana Kovačević Recenzenti: Prof. dr Milan Milosavljević Izdavač: UNIVERZITET SINGIDUNUM FAKULTET ZA POSLOVNU INFORMATIKU Za izdava ča: Prof. dr Milovan Stanišić Dizajn korica: Aleksandar Mihajlović Goran Latinović
Godina izdanja: 2006. Tiraž: 000 primeraka Štampa: CICERO-print Beograd
SADRŽAJ: 1. VEŽBA - ALAT I I OSNOVNE FUNKCIJE .............. ................ - 1 1.1. KAKO POČETI RAD U MATLAB –U................ ........... ........... .......... ........... . - 1 1.2. OPERATORI ZA POMOĆ U RADU........... ............ ........... ............ ........... ...... - 3 1.3. UNOŠENJE PODATAKA BROJEVI I ARITMETIČKI IZRAZI....... .........- 4 1.4. ARITMETIČKI OPERATORI................. ............ ........... ........... .......... ........... . - 6 1.5. RELACIJSKI OPERATORI........ ............. .............. ............ .............. ............. ... - 7 1.6. LOGIČKI OPERATORI .................... ........... ............ ........... ............ ........... ...... - 9 1.7. KOMPLEKSNI BROJEVI .............. ............. ............ .............. ............. ............ - 10 1.8. OSNOVNE FUNKCIJE ............ ............. .............. ............ .............. ............. ..... - 11 1.9. OSNOVNE KONSTANTE U MATLAB - U....... .............. ............. ............ .... - 13 1.10. IZLAZNI FORMAT ......... ............ ........... ............ ........... ............ ............ ....... - 13 1.11. BRISANJE I ČUVANJE PODATAKA.................. ........... ............ ............ ... - 15 -
2. VEŽBA - MAT RICE I OPERAC IJE .............. ................ ......... - 17 2.1. MATRICE I VEKTORI ......... ............ ........... ............ ........... ............ ............ ... - 17 2.2. MATRICE SPECIJALNIH STRUKTURA ............ .............. ............. ............ - 20 2.3. OPERACIJE SA MATRICAMA. ............. .............. ............ .............. ............. . - 23 2.4. DETERMINANTA MATRICE......... ............. ............. .............. ............. ......... - 27 2.5. INVERZNA MATRICA ......... ............ ........... ............ ........... ............ ............ ... - 28 2.6. .DELJENJE.......... .............. ............ .............. ............. ............ .............. ............. . - 29 -
3. VEŽBA - GRAF IKA ............... ................ ............... ................ ... - 33 ČKO PREDSTAVLJANJE FUNKCIJA JEDNE 3.1. GRAFI PROMENLJIVE................ .............. ............. ............ .............. ............. ............ - 33 -
3.2. OZNAČAVANJE GRAFIKA I OSA.................... ........... ........... .......... .......... - 38 3.3. SKALIRANJE OSA ......... ........... ............ ........... ........... ........... ........... .......... ... - 41 -
4. VEŽBA - UPRA VLJANJE TOKOM PRO GRAMA ............. .. - 43 4.1. USLOVNI IZRAZ : IF .............. ............. .............. ............ .............. ............. ..... - 43 4.2. USLOVNI IZRAZ: FOR- PETLJA ............ ............ .............. ............. ............ - 48 4.3. USLOVNI IZRAZ: WHILE- PETLJ A ........... ........... ........... ........... .......... ... - 50 -
5. VEŽBA - M – FAJLOVI (DATOTEKE)........ ......... .......... ....... - 53 6. VEŽBA - REŠAVANJE JEDNAČINA I SISTEMA ALGEBARSKIH JEDNAČINA................ ................ .............. .. - 61 6.1. SREĐIVANJE POLINOMA .......... ............ ........... ........... ........... .......... .......... - 61 6.2. OPERACIJE SA POLINOMIMA .......... ........... ........... ........... ............ ...........- 62 6.3. REŠAVANJE JEDNAČINA SA JEDNOM PROMENLJIVOM......... ........ - 64 6.4. REŠAVANJE SISTEMA LINEARNIH JEDNAČINA................ ........... ...... - 66 -
7. VEŽBA - SIMBOLIČKA MATEMATIKA ............. .............. .. - 71 7.1. SIMBOLIČKI OBJEKTI I IZAZI............. ............. ............ .............. ............. . - 71 7.2. REŠAVANJE JEDNAČINA.......... .......... ........... ........... ........... ............ ...........- 74 7.3. REŠAVANJE SISTEMA JEDNAČINA............... ........... ........... .......... .......... - 75 7.4. CRTANJE GRAFIKA KRIVE SIMBOLIČKOG IZRAZA ............ ...........- 76 -
8. VEŽBA - GRANIČNA VREDNOST I IZVOD FUNKCIJE ... - 79 -
8.1. GRANIČNA VREDNOST FUNKCIJE....... ............ .............. ............. ............ - 79 8.2. IZVOD FUNKCIJE........ .............. ............. .............. ............ .............. ............. . - 80 8.3. PRIMENE IZVODA -ODEĐIVANJE EKSTREMNIH VREDNOSTI..... . - 81 -
9. VEŽBA - DES KRIPTIVNA STATISTIKA ............. .............. .. - 85 10. VEŽBA - PRUGASTI I KRUŽ NI DIJAGRA MI ................ ... - 89 11. ZADACI ZA VEŽBANJE............................ ................ ........... - 93 -
PREDGOVOR programski jezik razvijen sredinom 80-tih. Prva verzija MATLAB je napisanajeuviši Fortranu, a nove verzije napisane su na jeziku C. Distribuirala ga je softverska kuća Math Woorks Inc. MATLAB je prvenstveno bio namenjen inženjerima, ali je za kratko vreme postao standardni programski paket na univerzitetima, školama i institutima. Njegova osnovna karakteristika je numeričko rešavanje različitih vrsta matematičkih problema. Koristi se u svim matematičkim i tehničkimoblastima. MATLAB ima veoma dobru 2D i 3D grafiku, što je još više doprinelo popularnosti ovog programskog paketa. MATLAB je jednostavan za korišćenje. Problemi i rešenja se izražavaju na način sličan kao u standardnim matematičkim izračunavanjima, bez potrebe tradicionalnog programiranja. Zbog velike popularnosti, vremenom su nastale različite verzije, prilagođene računarskim sistemima..Osnovni elementi svih verzija su identični. Međusobno se razlikuju po broju raspoloživih funkcija i sistemskih ograničenja. Mi u radu koristimo MATLAB verziju 7. MATLAB pruža mogućnosti kreiranja novih funkcija za pojedine specijalne oblasti primene. Takve funkcije grupišu se u posebne pakete, module, takozvane Toolbox-ve. Neke od njih nudi i sam proizvođač, kao što su SIGNAL PROCESSING, CONTROL, SYMBOLIC MATLAB , SIMULLINK i sl. Broj funkcija koje nudi MATLAB je ogroman. U svakoj novoj verziji taj broj se povećava. Mi nismo imali potrebe, ali ni mogu ćnosti da sve funkcije pomenemo. Zadržali smo se na najvažnijim. Ovaj kurs je nastao iz potrebe da se studentima Fakulteta poslovne informatike olakša primena i korišćenje MATLAB-a. Potrebna računarska konfiguracija, instalacije, performanse i struktura MATLAB- a, nisu predmet proučavanja ovog kursa.
1. VEŽBA - ALATI I OSNOVNE FU NKCIJE 1.1. KAKO POČETI RAD U MATLAB –U MATLAB se distribuira u komprimovanom formatu na CDovima. Instalacijom, datoteke sa ovih CD-ova premeštaju se na disk, dekomprimuju se i instaliraju u Windows-ovom okruženju. Kada je program pozvan, pojavljuje se MATLAB-ov komandni prozor.
Prvi red predstavlja liniju menija (Menu bar). Linija menija sadrži uobičajene komande. Ako se na ekranu odmah ne pojavi prozor sa slike , dobićemo ga ako izaberemo View-Desktop Layout-Default. Na ekranu mogu se videti i manji prozori:
Command window Command History window. Launch Pad window
-1-
Postoje takođe još dva nova prozora:
Workspace window Current Directory window. Command window je glavni deo MATLAB-vog interaktivnog sistema. Iz tog prozora pristupamo MATLAB-ovim komandama i funkcijama. U radnom prostoru pojavljuje se znak >> , koji se naziva prompt, pored koga se nalazi kursor, vertikalna trep ćuća linija, koja predstavlja spremnost ra čunara da primi naredbu. Kada se u radnom delu otkuca naredba i pritisne taster Enter, naredba se odmah izvršava. Command History window čuva predhodne naredbe koje su bile korišćene u Command window. Launch Pad window je drugi na čin a se pristupi MATLAB u. Treba kliknuti na ikonu na vrhu prozora.i otvori će se osnovni program ili toolbox-ovi, prema želji korisnika. Workspace window pokazuje promenljive koje su korišćene tokom rada, odnosno njihovu veličinu i vrstu. Ove informacije mogu biti od velike koristi kasnije u radu. Current Directory window pokazuje korišćene fajlove.
-2-
1.2. OPERATORI ZA POMOĆ U RADU Naredbom help obezbeđena je pomoć i informacije tokom rada. To je velika pogodnost za korisnike jer je teško memorisati veliki broj funkcija koje su definisane. Postoji nekoliko verzija ove naredbe. Ako otkucamo help i pritisnemo taster na ekranu će se pojaviti spisak oblasti i uputstva za rad, tj. spisak svih opcija koje poseduje MATLAB. > help HELP topics: matlab\general - General purpose commands. matlab\ops - Operators and special characters. matlab\lang
- Programming language constructs.
Da bi se dobilo uputstvo za neku posebnu oblast, operator ili funkciju potrebno je uneti naredbu:
>> help oblast Otkucati naredbe help i videti šta se dobija na ekranu.
>> help * >> help i >> help sqrt Za ilustrovanje mogućnosti MATLAB-a priređeni su uzorci demo raznih programa, se mogu Aktiviranjem ovih koji naredbi otvara pozvati se grafinaredbam čki prozor koji. pokazuje meni demonstracionih datoteka.
-3-
1.3. UNOŠENJE PODATAKA BROJEVI I ARITMETIČKI IZRAZI Osnovni objekat nad kojim se vrše operacije u MATLAB–u je polje brojeva. Ovo polje brojeva može da se tuma či kao matrica u uobičajenom smislu. Pod skalarom se podrazumeva matrica tipa 1x1. Vektori predstavljaju matrice jedne vrste ili jedne kolone.
MATLAB je jezik izraza. Sačinjen je od konstanti, promenljivih, operatora, specijalnih znakova i funkcija. Operacije i izrazi u MATLAB–u se pišu na uobičajen način, slično kao što se piše u matematici. Rezultat izvršenja izraza je matrica. MATLAB operiše sa realnim i kompleksnim brojevima. Koristi se uobičajena decimalna notacija sa znakom i decimalnom tačkom. MATLAB može da se koristi za izra čunavanje jednostavnih matematičkih izraza. Tada on radi slično kalkulatoru. Napomena: MATLAB je veoma strog prema definisanoj
sintaksi jezika. Izostavljena zagrada ili zarez mogu da utiču da ceo program ne funkcioniše. Sa druge stane, velika olakšica u radu je što se na ekranu ispisuje vrsta u činjene greške i olakšava se korisniku da se greške isprave.
>> y=sin(x ??? y=sin(x | Error: ")" expected, "end of line" found. MATLABove promenljive mogu imati numeričke ili znakovne vrednosti ( string). Mogućnost manipulacije matematičkim izrazima bez korišćenja brojava može da bude veoma korisna. Znakovni tip podataka sastoji se iz niza ASCII znakova. i unose se pod jednostrukim apostrofima 'x'.
-4-
PRIMER 1: Napisati reč student. >> reč='student' reč = student
PRIMER 2: U reči student odrediti broj slova. >> size(reč) ans = 1 7 U ovom primeru korišćena je naredba size, koja izračunava dimenziju unete promenljive. Napomena: (Odgovor 1 7 ozna čava polje brojeva u jednom redu 7 elementa). Imena promenljivih ili funkcija, moraju početi slovom, iza koga može slediti prizvoljan niz simbola, ali se samo prvih 31 karaktera iz imena pamti. MATLAB razlikuje velika i mala slova, tj. x i X su dve različite promenljive.
Imena matrica obično se pišu velikim slovima, dok imena skalara i vektora malim slovima. Imena funkcija moraju se pisati malim slovima.
-5-
1.4. ARITMETIČKI OPERATORI Aritmetički izrazi se prave korišćenjem uobičajenih aritmeričkih operacija za koje koristimo sledeće simbole:
+ * / ^
sabiranje oduzimanje množenje deljenje stepenovanje
PRIMER 3: Izračunati vrednost izraza 2+4-6. >> 2+4-6 ans = 0 Iz ovog primera vidimo da MATLAB sam kreira veli činu pod imenom ans (answer-odgovor), ukoliko korisnik sam ne dodelili ime promenljivoj ili vrednosti izraza.
PRIMER 4: 1 Izračunati x = 2 + 2 ⋅ 4 − .
π
>> x=2+(2*4-1/pi) x= 9.6817 Broj π je definisan kao stalna veličina MATLAB-a i dovoljno je ukucati slova pi ( a ne vrednost 3.14).
-6-
PRIMER 5: Izračunati vrednost izraza y = 3 x , ako je x = 32 . >> x=3^2; >> y=3*x y= 27 Napomena: Ako ne želimo da se rezultat ili me đurezultat
odmah prikažu na ekranu, na kraju naredbe unosi se znak ; Na ovaj način se ubrzava rad na ra čunaru, jer se eliminiše ispisivanje velikog broja, često nepotrebnih međurezultata.
1.5. RELACIJSKI OPERATORI Relacijski operatori su binarni operatori i koriste se za poređenje izraza. Rezultat poređenja je je tačno ( true ) u oznaci 1 ili netačno ( false ) u oznaci 0 .
< ≤
> ≥
== :=
manje od manje ili jednako od veće od veće ili jednako od jednako nejednako
PRIMER 6: Ispitati istinitosnu vrednost izraza 5 < 3 . >> 5<3 ans = 0 Napomena: Često se greši tako što se operator = = često se
pogrešno zamenjuje sa = -7-
PRIMER 7: Izračunati vrednost izraza: >> 5<(7= =8) ans 0 Zamenimo sada = = са = >> 5<(7=8) ??? 5<(7=8) | Error: ")" expected, "=" found. U prvom primeru 7 = = 8 ima istinutosnu vrednost pogrešno, tj 0 i zato je 5 < 0 , što daje kao rezultat 0. U drugompridruživanja, primeru greška se ra javlja zatovrednosti što = predstavlja operaciju a ne čunanja koja ima samo neku istinitosnu vrednost.
-8-
1.6. LOGIČKI OPERATORI :
& |
i ili ne
Tablica vrednosti za logičke operacije p
q
p
p&q
p|q
1
1
0
1
1
1
0
0
0
1
0 0
1 0
1 1
0 0
1 0
Napomena: MATLAB tretira svaki ne nulti broj kao ta čan i
nulu kao netačan. >> ~4 ans = 0 >>
-9-
1.7. KOMPLEKSNI BROJEVI Imaginarna jedinica je definisana kao stalna veli čina. Koristi se uobičajena definicija i = − 1 ili j = − 1 . >> i=sqrt(-1) i=
0 + 1.0000i Kompleksni brojevi se definšu kao zbir z = x + iy gde je realni , a y imaginarni deo kompleksnog broja.
x
PRIMER 8: Napisati broj z = 2 + 3i . >> z=2+3*i z= 2.0000 + 3.0000i Moduo, argument, realni i imaginarni deo i konjugovano kompleksni broj dobijaju se korišćenjem naredbi abs, angle, real, imag, conj.
- 10 -
1.8. OSNOVNE FUNKCIJE se pozivaju tako što se iza imena funkcije u maloj Funkcije zagradi navede argument funkcije.
Elementarne funkcije ugrađene u MATLAB su sin, log, log10, sqrt, .... Kao što smo već napomenuli funkcije se pišu malim slovima, a argumente pišemo u zagradama.
abs sqrt sin cos tan cot exp log log10
apsolutna vrednost kvadratni koren sinus kosinus tangens kotangens eksponencijalna funkcija osnove e logaritam osnove e logaritam osnove 10
PRIMER 9: Izračunati sin
π
4
.
>> sin(pi/4) ans = 0.7071
PRIMER 10: Za x = 5 i y = 59 izračunati vrednost izraza z = ln y + x . > x=5; >> y=59; >> z=log(y)+sqrt(x) z=6.0775 - 11 -
Primetimo da vrednosti promenljivih x i y nisu prikazane na ekranu, jer se iza promenljivih nalazio znak ;
PRIMER 11: Izračunati vrednost izraza z = log x + y , za vrednosti x i y zadatih u predhodnom primeru. >> % Komentar: x i y su vrednosti promenljivih iz predhodnog primera >> z=log10(x)+abs(y) z= 59.6990
Napomena: Treba imati u vidu da MATLAB pamti predhodno
unete veličine pa ih nije potrebno ponovo definisati ako nam kasnije trebaju u radu. Napomena: Oznaka % koristi se za pisanje komentara.
- 12 -
1.9. OSNOVNE KONSTANTE U MATLAB - U ans i,j pi Inf NaN
vrednost izraza kada nije pridružen promenljivoj imaginarna jedinica − 1 π =3.14159265..... ∞ , ili rezultat 1/0 (infinity) Nije broj, ili rezultat 0/0 –(Not a Number)
Napomena: Prednost rada u MATLAB-u je što deljenje nulom
ne dovodi do prekida programa ili greške. Ispisuje se poruka upozorenja i specijalna veličina se ponaša korektno u kasnijim izračunavanjima.
1.10. IZLAZNI FORMAT Izlazni prikazivanja rezultata naredbomoblik forma t. Ova komanda utičemože samosena kontrolisati prikaz na ekranu, a ne na to kako se šta izra čunava ili smešta u memoriju. Postoje različiti izlazni formati: format long, format long e, format short, format short e, format rat. Ako nije definisan neki drugi format automatski se koristi format short, tj.standardni format sa 5 značajnih cifara.
- 13 -
PRIMER 12: Broj π prikazati koristeći različite oblike naredbe format. >> format short, pi ans = 3.1416 >> format long, pi ans = 3.14159265358979 >> format long e, pi ans =3.141592653589793e+000 >> format short e, pi ans = 3.1416e+000 >> format rat, pi ans = 355/113 Napomena: Sledeći broj sa kojim budemo radili bi će
automatski u formatu koji smo poslednji koristili. Da bi se vratili u uobičajeni, format short, dovoljno je otkucati samo naredbu format.
- 14 -
1.11. BRISANJE I ČUVANJE PODATAKA clear clear x save save ime quit , exit load
briše podatke iz radne memorije briše se promenljiva x čuva podatke u fajlu na disku za kasniju upotrebu pamti sve veličine iz radnog prostora pod zadatim imenom ostvaruje se prekid programa predstvlja obrnutu naredbu od save
VEŽBA: 1. Utvrditi šta je veće e ili π e ? (1 + i )100 2. Izračunati z , ako je z = (1 −) i 96( − i) 1 + i 5 3. Izračunati za x = 0 . π
98
.
x 0 4. Izračunati x = . 0 5. Kao znakovnu promeljivu uneti svoje ime i prezime i odrediti broj slova u njemu. 6. Korišćenjem različitih izlaznih formata ispisati broj 2 .
- 15 -
- 16 -
2. VEŽBA - MATRICE I OPERACIJE 2.1. MATRICE I VEKTORI Već smo naglasili, da su u MATLAB-u, promenljive polja brojeva, koje mogu da se tumače kao matrice u uobi čajenom smislu.
Matrica je polje brojeva koje se definiše sa dva indeksa mxn, gde prvi indeks m označava broj vrsta, a drugi n broj kolona. Elementi se uglavnom unose po vrstama, a zagrade [ , ] ograničavaju listu elemenata. U okviru liste, elementi se razdvajaju zarezom ili razmakom. Taster Enter ili ; se koriste za odvajanje vrsta matrice. PRIMER 1: 1 Uneti matricu A = − 6 7
−
2 4
8 5 . − 4 2
>> A=[1 -2 4; -6 8 5; 7 -4 2] A= 1 -2 4 -6 8 5 7 -4 2 Druga mogućnost upisa je da se razmak između elemenata zameni zarezom. >> A=[1, -2, 4; -6, 8, 5; 7, -4, 2] A= 1 -2 4 -6 8 5 7 -4 2
Vektori su matrice vrste ili kolone i unose se na isti način. Ako su vrednosti elemenata ekvidistantne (sa istim korakom) koristi se simbol : . - 17 -
PRIMER 2: Uneti vektor x=(1, 2, ... , 10). >> x=1:10; x x= 1 2 3 4
5
6
7
8
9
10
Naredba length izračunava dužinu vektora. >> length(x) ans = 10 Ako želimo proizvoljan korak, a ne 1, kao u predhodnom primeru, koristimo naredbu h=a:k:b, gde su a i b početna i krajnja vrednost, a k je korak. Kod matrica sa kompleksnim elementima možemo da koristimo dva načina unošenja podataka, tako što posebno unosimo realni i imaginarni deo ili broj kao celinu.
PRIMER 3: Uneti matricu Z
=
− 1 + 5i 2 − 6i 3 + 7i 4 + 8i , tako što ćemo posebno
unositi realne, a posebno imaginarne delove kompleksnih brojeva. >> a=[-1, 2; 3, 4] ; b=[5, -6; 7, 8] ; Z=a+b*i Z= -1.0000 + 5.0000i 2.0000 - 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i PRIMER 4: Uneti matricu Z iz prethodnog primera tako što elemente odmah unosimo kao kompleksne brojeve - 18 -
>> Z=[-1+5*i , 2-6*i ; 3+7*i , 4+8*i] Z= -1.0000 + 5.0000i 2.0000 - 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i
Element matrice A koji se nalazi u preseku i-te vrste i j-te kolone može se dobiti primenom naredbe A(i,j).
PRIMER 5: 2 1 Iz matrice A = 2 − 3 − 4 − 5 druge vrste i treće kolone.
3 1 izdvojiti element u preseku − 6
>> A=[1 2 3 ; 2 -3 1 ; -4 -5 -6] ; >> A(2 , 3) ans = 1 Ako želimo da izdvojimo vrstu koristimo komandu A(k,:) ili kolonu komandu A(:,k), gde k predstavlja traženu vrstu, odnosno kolonu.
Dimenzije matrice određuju se naredbama size(A) ili [m,n]=size(A).
PRIMER 6: Odrediti dimenzije date matrice A, koriste ći naredbu size. >> size(A) ans = 3 3
- 19 -
PRIMER 7: Odrediti dimenzije matrice A koristeći naredbu [m,n]=size(A). >> [m, n]=size(A) m= 3 n= 3
2.2. MATRICE SPECIJALNIH STRUKTURA Naredba eye definiše jediničnu matricu .
Naredba
Opis
eye(n) eye(m,n)
Jedinična matrica dimenzija nxn Jedinična matrica dimenzija mxn
eye(size(A))
Jedinična matrica dimenzija date matrice A
PRIMER 7: Formirati matricu sa dve vrste i tri kolone čiji su elementi na glavnoj dijagonali jednaki 1, a svi ostali elementi su jednaki 0. >> X=eye(2,3) X= 1 0 0 0 1 0
- 20 -
PRIMER 8: Odrediti jediničnu matricu istih dimenzije kao data matrice A . >> X=eye(size(A)) X= 1 0 0 0 1 0 0 0 1 Naredba ones definiše matricu čiji su svi elementi jedinice
Naredba ones(n) ones(m,n) ones(size(A))
Opis
Matrica dimenzije nxn čiji su svi elementi jedinice Matrica dimenzije mxn čiji su svi elementi jedinice Matrica dimenzije date matrice A čiji su svi elementi jedinice
PRIMER 9: Formirati kvadratnu matricu reda 2 čiji su svi elementi jednaki 1.
>> X=ones(2) X= 1 1 1 1 Naredba zeros definiše matricu čiji su svi elementi nule
Naredba zeros(n) zeros(m,n) zeros(size(A))
Opis
Matrica dimenzije nxn čiji su svi elementi nule Matrica dimenzije mxn čiji su svi elementi nule Matrica dimenzija date matrice A čiji su svi elementi nule - 21 -
PRIMER 10: Formirati matricu sa dve vrste i tri kolone čiji su svi elementi jednaki 0. >> X=zeros(2,3) X= 0 0 0 0 0 0 Naredba magic(n) definiše matricu sa celobrojnim elementima između 1 i n 2, dimenzija nxn, sa osobinom da je zbir elemenata po vrstama i kolonama konstantan ( čarobni kvadrat).
PRIMER 11: Formirati matricu trećeg reda koristeći naredbu magic.
>> X3=magic(3) X3=
8 3 4
1 5 9
6 7 2
Naredbom diag(A) dobijamo dijagonalnu matricu date matrice A.
- 22 -
PRIMER 12: Uočiti osobine matrica dobijenih koriš ćenjem naredbe diag. >> A , X1=diag(A) , X2=diag(diag(A)) A= 1 2 3 2 -3 1 -4 -5 -6 X1 = 1 -3 -6 X2 =
1 0 0
0 0 -3 0 0 -6
2.3. OPERACIJE SA MATRICAMA Osnovne operacije sa matricama su: sabiranje, oduzimanje, množenje, stepenovanje, deljenje i transponovanje.
SABIRANJE I ODUZIMANJE MATRICA Sabiranje i oduzimanje matrica vrši se tako što se sabiraju, odnosno oduzimaju odgovarajući elementi matrica. Tom prilikom moramo voditi računa da matrice budu istih dimenzija. PRIMER 13: 2 Sabrati datu matricu A i matricu B = 1 3
- 23 -
3 1 2
−
4 1 . −1
−
>> A , B=[2, 3,-4; 1 -1, 1; 3, 2, -1] ; C=A+B A= 12 -4 C= 3 3 -1
2 31 -3 -5 -6 5 -1 -4 2 -3 -7
Sabiranje i oduzimanje je izvodljivo i u slučaju da je jedan činilac skalar. Takav izraz MATLAB tumači tako što svakom elementu matrice dodaje ili od njega oduzima nazna čeni skalar, tj. skalar posmatra kao konstantnu matricu dimenzija prilagođenih matrici koja se sabira ili oduzima.
PRIMER 14 : Od date matrice A oduzeti skalar 1. >>A, D=A-1 A= 1 2 3 2 -3 1 -4 -5 -6 D= 0 1 2 1 -4 0 -5 -6 -7 Napomena: Skalar 1 automatski se shvata kao matrica istih
dimenzija kao što je matrica A, čiji su svi elementi jednaki 1.
- 24 -
MNOŽENJE MATRICA vršiskalara. tako štoTreba svakiimati element te Množenje matrica skalarom matrice pomnožimo vrednošću se datog u vidu da važi zakon komutativnosti tj. kA = Ak .
PRIMER 15 : Ako je k = 5 , odrediti matricu F = 5 A . >> A , F=5*A A= 1 2 3 2 -3 1 -4 -5 -6 F= 5 10 15 10 -15 5 -20 -25 -30
Množenje dve matrice: Proizvod matrica A={ ai , j } (dimenzija mxr) i B={ bi , j } (dimenzija rxn) je nova matrica C (dimenzija mxn) čiji su elementi cij
r
=
∑ aik ,k jb ,
.
k =1
PRIMER 16: 1 Pomnožiti matrice A i A1 = 2 1
2 −3 6
>> A; A1=[1, 2 ; 2, -3 ; 1, 6] ; P=A*A1 P= 8 14 -3 19 -20 -29 - 25 -
PRIMER 17: Pomnožiti matrice A1 i A . >> A1*A ??? Error using ==> * Inner matrix dimensions must agree. Napomena: Kao što smo već istakli MATLAB daje opis svih
grešaka koje smo načinili tokom rada i u ovom primeru podseća da kod množenja matrica mora da se vodi ra čuna o dimenzijama.
OPERACIJE NAD POLJEM BROJEVA Operatori nad poljem brojeva se razlikuju od operatora nad matricama. U zapisu sadrže decimalni ta čkurazlike isprednema, operatora. Kada je u pitanju sabiranje i oduzimanje, pa se i ne koriste simboli + i -. Kod ostalih operacija, napr množenja, razlika je što se operacije nad poljem brojeva obavljaju član po član, što ne mora da bude slučaj sa operacijama sa matricama.
PRIMER 18: Uočiti razliku između množenja * i .* >> A ; C=[-2 4 0 ; 4 -6 –4 ; 0 -4 -12] ; >> A*C ans = 6 -20 -44 -16 22 -12 38 >> A .*C ans = -2 8 8 18 0 20
0 92 0 -4 72 - 26 -
TRANSPONOVANJE MATRICA Transponovanje matrica sa realnim koeficijentima, je zamena vrsta i kolona. Vrši se pomoću operatora ' .
PRIMER 19 : Transponovati datu matricu A. >> A , E=A' A= 1 2 3 2 -3 1 -4 -5 -6 E= 1 2 -4 2 -3 -5 3 1 -6
2.4. DETERMINANTA MATRICE Determinanta kvadratne matrice je broj koji se u MATLAB-u izračunava pomoću operatora det.
PRIMER 20 : Izračunti determinantu matrice A. >> A , D=det(A) A= 12 -32 31 -4 -5 -6 D= -27
- 27 -
2.5. INVERZNA MATRICA 1 det( A) adjA . U MATLAB- u inverzna matrica A 1 određuje se pomoću operatora inv(A). 1
−
Inverzna matrica matrice A definiše se kao A
=
−
PRIMER 21 : Naći inverznu matricu date matrice A. >> A ; I=inv(A) I= -0.8519 0.1111 -0.4074 -0.2963 -0.2222 -0.1852 0.8148 0.1111 0.2593
PRIMER 22 : Izračunati inverznu 1 jednaka nuli) S = 4 7
matricu singularne matrice (determinanta 2 3 5 6 . 8 9
>> S=[1 2 3 ; 4 5 6 ; 7 8 9] >>det(A)=0 0 >> inv(S) Warning: Matrix is close to singular or badly scaled. Results may be inaccurate.
- 28 -
2.6. .DELJENJE DELJENJE MATRICA U matričnom računu operacija deljenja nije definisana, ali u MATLAB- u , postoje dva operatora deljenja: \ označava “deljenje” sa leva, a / označava “deljenje” sa desna Neka je A kvadratna regularna matrica. A\ B = A 1*B A/ B = B* A 1 Rezultati se dobijaju direktno, bez računanja inverzne matrice. −
−
PRIMER 23: U sledećem primeru možemo uočiti razliku između operatora “deljenja” sa leva \ i sa desna /. >> A ; B ; K=A\B , K1=A/B K= -2.8148 -3.4815 3.9259 -1.3704 -1.0370 1.1481 2.5185 2.8519 -3.4074 K1 = -2.2000 -3.0000 2.8000 0.9000 3.5000 -1.1000 4.6000 6.0000 -6.4000 DELJENJE POLJA BROJEVA
Za deljenje polja brojeva koristi se simbol . / gde tačka izpred oznake element.za deljenje ukazuje da se operacija vrši element po Elementima C=A./B podrazumeva sledeći postupak: c(i,j) = a(i,j) / b(i,j), gde su a(i,j), b(i,j) elementi matrica A, B. Na identičan način se definiše deljenje A.\B.
- 29 -
PRIMER 24: U sledećem primeru možemo uočiti razliku između A./B i A.\B >> A./B ans = 0.5000 0.6667 -0.7500 2.0000 3.0000 1.0000 -1.3333 -2.5000 -6.0000 >> A.\B ans = 2.0000 1.5000 -1.3333 0.5000 0.3333 1.0000 -0.7500 -0.4000 -0.1667 Napomena: Izraz X=A\B (X= A −1 B) predstavlja rešenje
jednačine AX=B, a izraz X=A/B (X=B A 1 ), predstavlja rešenje −
č
jedna ine XA=B. PRIMER 25: Rešiti matričnu jednačinu AX=B gde su date matrice 2 3 1 1 A = 2 − 3 1 i B = 2 . − 4 − 5 − 6 − 2 (Uputstvo: AX
=
B⇔ X
=
A 1B ) −
>> A ; B ; X=inv(A)*B X= 0.1852 -0.3704 0.5185 ili >> X=A\B X= 0.1852 -0.3704 0.5185
- 30 -
PRIMER 26: Podeliti matricu A skalarom 2, sa leva i sa desna. >> A\2 ??? Error using ==> \ Matrix dimensions must agree. >> A/2 ans = 0.5000 1.0000 1.5000 1.0000 -1.5000 0.5000 -2.0000 -2.5000 -3.0000
VEŽBA: 1.
Koristeći datu matricu A odrediti:
a) član na mestu (3,1), b) drugu vrstu matrice A, c) determinantu matrice A 2 , d) transponovanu matricu matrice A 1 . T ( A2 ) + A 1 Izračunati koristeći datu matricu A . 2. 4 + det A Rešiti matričnu jednačinu A 2 XB = C (na dva načina), 3. ako je: −
−
1 2 0 3 8 17 A= , B = − 2 1 , C = 8 11 . 1 0 č
π
Datičine su elementi , edrugu , 2 . Formirati matricu 3x3, ijua 4. prvu vrstu dati brojevi, vrstu njihovi logaritmi, treću vrstu kvadratni koreni datih brojeva.
- 31 -
- 32 -
3. VEŽBA - GRAFIKA MATLAB poseduje velike mogućnosti grafičkog predstavljanja. U ovoj vežbi biće obrađene neke najosnovnije narebe za crtanje dvodimenzionalnih grafika.
3.1. GRAFIČKO PREDSTAVLJANJE FUNKCIJA JEDNE PROMENLJIVE Najjednostavniji način za grafičko predstavljanje, sa linearnom podelom na osama, je korišćenjem naredbe plot(x). Prilikom crtanja otvara se grafički prozor za koji važe ista pravila kao kod Windows prozora.
PRIMER 1: Nacrtati vektor x = (1,2,4,8,16) . >> x=[1,2,4,8,16];plot(x) 16
14
12
10
8
6
4
2
0 1
1.5
2
2.5
3
3.5
4
4.5
5
Iz ovog primera možemo videti da je MATLAB za vrednosti nezavisno promenljive x uzeo redni broj elementa, a njihove slike su vrednosti vektora x , tj. tačke nacrtanog grafika imaju koordinate (1,1) ( , 2,2 ) ( ,) (3,4 ) , 4, 6 .... U opštem slučaju naredba plot(x) crta grafik spajaju ći tačke (i, x(i)), i=1, 2, 3,…, N, gde je N dužina vektora. - 33 -
Nezavisno promenljiva može biti zadata posebno. U tom slučaju se koristi naredba plot(x,y).
PRIMER 2: Nacrtati vektor zadat koordinatama y = (−1,2, −4,8,16) .
x = (1,2,4,8,16)
>> x=[1,2,4,8,16]; y=[-1,2,-4,8,16]; plot(x,y) 16
14
12
10
8
6
4
2
0
-2
-4 0
2
4
6
8
10
12
14
16
Naredba plot se koristi i za crtanje funkcija jedne promenljive.
- 34 -
i
PRIMER 3: Nacrtati funkciju y = 2e x u domenu x ∈ [ −1,1] sa korakom 0.1 .
>> x=-1:.1:1; y=2*exp(x); plot(x,y) 5.5 5 4.5 4 3.5
3 2.5 2 1.5 1
0.5 -1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
PRIMER 4: U istom koordinatnom sistemu nacrtati funkcije y = 2 x i y = 2e x , u domenu x ∈ [ −1,1] sa korakom 0.1 >> x=-1:.1:1; y1=2*x ;y2=2*exp(x); plot(x,y1,x,y2) 6
5
4
3
2
1
0
-1
-2 -1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
- 35 -
1
Za izbor vrste i oblika linija koristi se naredba plot(x,y,'vrsta linije'). Simbol
Opis
linije
. o h + * -. : --
Tačka Krug h-znak Plus Zvazda Puna linija Tačka – crta Tačkasta Isprekidana linija
Simbol Boja
boje
y m s r g b k w
Žuta Ljubičasta Cijan Crvena Zelena Plava Crna Bela
- 36 -
PRIMER 5: U predhodnom primeru uvedimo oznake za vrstu i boju linije. >> x=-1:.1:1;y1=2*x; y2=2*exp(x); >> plot(x1,y1,'g',x2,y2,'m+') 6 5 4 3 2 1 0 -1 -2 -1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Za crtanje grafika. funkcija možemo da koristimo naredbu fplot(f,xmin,xmax) Funkcija koju crtamo ima oblik f ( x ) , gde je x vektor čiji je prvi element xmin, a poslednji element xmax. U naredbi fplot funkcija se piše pod navodnicima ' f '.
- 37 -
PRIMER 6: Nacrtati funkciju y = x 2 − 9 u domenu x ∈ [ −3,3] . >> y='x^2-9'; fplot(y,[-3,3]) 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -3
-2
-1
0
1
2
3
3.2. OZNAČAVANJE GRAFIKA I OSA MATLAB nudi mogućnosti označavanja osa, pisanja različitog teksta i razne druge mogu ćnosti.
Oznaka title xlabel ylabel text gtext grid
Opis naziv grafika naziv x ose naziv y ose naziv teksta na grafiku tekst na poziciji označenoj mišem crtanje linija mreže
Tekst u predhodnim naredbama piše se u zagradi pod navodnicima. Naredba hold on zadržava sliku na ekranu. Suprotna njoj je naredba hold off . U naredbi gtext korisnik naknadno sam određuje mišem mesto na koje želi da smesti tekst.
- 38 -
PRIMER 9: Nacrtati funkciju y = sin x na domenu x ∈ [ −2π , 2π ] i koristeći naredbe iz tabele obeležiti sliku. >> y='sin(x)';fplot(y,[-2*pi,2*pi]) >> hold on >> grid >> title('sinusna funkcija') >> xlabel('x osa') >> ylabel('y osa') >> gtext('max') sinusna funkcija 1
max
0.8 0.6 0.4 0.2 a s o y
0 -0.2 -0.4 -0.6 -0.8 -1
-6
-4
-2
0
2 x osa
4
6
Naredba subplot(m, n, p) formira više grafika na ekranu. Ekran se deli na m × n delova, a grafik se crta u p -tom delu ekrana.
- 39 -
PRIMER 11: Koristeći naredbu subplot nacrtati funkcije: y = x
y = xe x ∈ [ 0,1] , y = cos x x ∈ [ −π , π ] .
y=x
x
>> x1=-1:1:1; y1=x1; >> x2=0:0.5:1; y2=x2.*exp(x2); >> x3=-2:.1:2; y3=x3.^2; >> x4=-pi:pi/16:pi; y4=cos(x4); >> subplot(2,2,1),plot(x1,y1) >> subplot(2,2,2),plot(x2,y2) >> subplot(2,2,3),plot(x3,y3) >> subplot(2,2,4),plot(x4,y4) 1
3
0.5 2 0 1
-0.5 -1 -1
-0.5
0
0.5
1
0
4
1
3
0.5
2
0
1
-0.5
0 -2 -
1
0
1
2
0
-1 -4
0.5
-2
0
1
2
- 40 -
4
2
x ∈ [ −2, 2] ,
x ∈ [ −1,1] ,
3.3. SKALIRANJE OSA Ose x i y automatski se postavljaju na osnovu minimalne i maksimalne vrednosti koordinata.
Oznaka
Opis
axis('equal')
Provera se da li je priraštaj po osama isti
axis(xmin,xmax,ymin,ymax)
Zadaju se granice u kojima će biti nacrtan grafik Vraćanje na prvobitne dimnezije grafika Vraćanje na prvobitno skaliranje
axis('normal') axis('axis')
Dobija se informacija o trenutnim dimenzijama
axis
PRIMER 12: Nacrtati funkciju y = sin xz a-2 π ≤ x ≤ 2 π , , a zatim postaviti da opseg po x osi bude -π ≤ x ≤ π , a po y osi bude −2, 2 . >> x=-2*pi:pi/16:2*pi; y=sin(x);plot(x,y),grid 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -8
-6
-4
-2
0
2
4
6
8
- 41 -
>> axis([-pi,pi,-2,2]) 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2
-3
-2
-1
0
1
2
3
VEŽBA: 1. Nacrtati funkcije y = sin x i y = cos x u opsegu od 0,2π . 2. Nacrtati krug sa centrom u tački (2,2) i poluprečnikom 4. 3. Nacrtati funkciju y = x 2 − 5 x + 6 u proizvoljnom opsegu i opisati je tekstom. 4. Koristeći naredbu subplot nacrtati funkcije y = x n , n ∈ [1, 6] .
- 42 -
4. VEŽBA - UPRAVLJANJE TOKOM PROGRAMA Računarski program je niz naredbi. Kada je program jednostavan naredbe se izvršavaju jedna za drugom, po redosledu kako su napisane. Me đutim, postoje složeni programi kada se naredbe ne moraju tako izvršavati. MATLAB ima više naredbi koje omogućavju korisniku da upravlja tokom programa. To su: if, for, while, else, break, error, while... Uslovni iskaz je naredba koja omogu ćava MATLABu da se odluči da li će izvršiti grupu naredbi koje slede ili će ih preskočiti. U uslovnom izrazu mora se zadati uslov.
4.1. USLOVNI IZRAZ : IF Naredba if se koristi za uslovno izvršavanje programa. Oblik petlje je: if izraz
naredbe end
ili if izraz
naredba 1 else
naredba 2 end
ili if izraz 1
naredba 1 elseif izraz 2
- 43 -
naredba 2 else
naredba 3 end
Ako uslovni izraz u iskazu ima vrednost tačno - true (1), program izvršava komande koje neposredno slede sve do komande end. Ako je uslovni izraz neta čan – false (0 ) , program preskače grupu komandi između if i end i nastavlja da izvršava komande iza end. Vrednost nezavisno promenljive može da se unese i korišćenjem naredbe input(‘tekst’). >> x=input ('unesi promenljivu x='); >> y=input ('unesi promenljivu y='); Za ispisivanje izlaznih rezultata koristi se naredba disp(‘tekst’).
- 44 -
PRIMER 1: Uneti godine starosti i ako je broj godina manji od 21 na izlazu ispisati 'zabranjen alkohol', a u suprotnom izaći iz programa. start
Unesi godine
Ako su godine manje od 21
Nema alkohola
крај
>> godine=input('god'); god12 >> if godine <21 disp('zabranjen alkohol') end zabranjen alkohol >> godine=input('god'); god33 >> if godine <21 disp('zabranjen alkohol') end U prvom slučaju uneti broj godina je bio manji od 21, pa smo na ekranu dobili ispis zabranjen alkohol. U drugom slu čaju je bio veći od 21 i na ekranu nije bilo ispisa.
- 45 -
PRIMER 2: Uneti godine starosti i ako je broj godina manji od 21 ispisati na izlazu 'zabranjen alkohol', a u suprotnom ispisati 'dozvoljen alkohol'.
>> godine =input ('godine su:'); godine su:12 >> if godine <21 disp( 'zabranjen alkohol' ) else disp( 'dozvoljen alkohol' ) end
- 46 -
PRIMER 3: Za unapred zadatu vrednost promenljive x izračunati vrednost izraza y , tako da, ako je x < 2 sledi da je y = −2 x , za x = 2 je y = 2 , inače je y = 2 x . > x=input('x=') x=4 x= 4 >> if x<2 y=-2*x; elseif x= =2 y=2; else y=2*x; disp(y) end 8 Napomena: Treba obratiti pažnju da u izrazu x= =2 koristi se
oznaka = = , a ne =, zato što se u ovom izrazu koristi logi čki oprator za upoređivanje veličina.
- 47 -
4.2. USLOVNI IZRAZ: FOR- PETLJA for omogu ćava ponavljanje puta.petlja Završava se komandom end. dela programa zadati broj
Oblik petlje: for promenljiva=izraz
naredbe end
PRIMER 4: Za sve vrednosti promenljive vrednost funkcije y = sin2 x .
x ∈ {1,2,3,4,5 } izračunati
>> for x=1:5 y (x)=sin(2*x); end >> y y= 0.9093 -0.7568 -0.2794 0.9894 -0.5440 - 48 -
PRIMER 5 : Napisati matricu A čiji se elementi izračunavaju po zakonu
a ( i, j ) =
1 , a koja ima 4 vrste i 3 kolone. 2i + j − 2
>> for i=1:4 for j=1:3 A(i,j)=1/(2*i+j-2); end end >> A A= 1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 0.1429 0.1250
0.3333 0.2000 0.1429 0.1111
U ovom primeru korišćena je dupla for petlja.
- 49 -
4.3. USLOVNI IZRAZ: WHILE- PETLJA While petlja koristi se za ponavljanje skupa naredbi dokle god
je neku uslov tačan i kada nije poznat broj prolaza kroz petlju unapred. Uslov je obično neko poređenje u kome se koriste relacijski logički operatori. Oblik petlje: while izraz
naredbe end
PRIMER 6: Izračunavati vrednosti promenljive x , po zakonu x = 2 x , dogod je x ≤ 15 . >> x=1; >> while x <=15 x=2*x; end >> x x = 16 Kako funkcioniše nareba, preciznije se može prikažemo sve među-rezultate promenljive x. >> x=1 >> while x <=15 x=2*x end x= 1 x =2 x= 4 x= 8 x= 16 - 50 -
videti, ako
Deo programa između while i end izvršava se sve dok je izraz koji sledi posle while istinit.
PRIMER 7: Izračunati zbir
n
( −1) 1 1 1 K sa = −+ −1 + − 2 4 9 16 n n 1 ∞
reda
s=∑ =
tačnošću 10 4 . −
>> s=0; >> n=1; >> while abs((-1)^n/n^2)>10^(-4) s=s+(-1)^n/n^2; n=n+1; end >> s s= -0.8225
VEŽBA: 1.Formirati matricu dimenzija 5x5 čiji su elementi a (i , j ) = i + 2 j . 2.Za unete godine starosti u zavisnosti da li je taj broj manji od 21 ispisati na izlazu 'zabranjen alkohol', ako je broj godina veći od 65 ispisati 'alkohol zabranjen iz zdravstvenih razloga', inače, ispisati 'dozvoljeno piti umereno'. 3.Izračunati 5! koristeći petlje.
- 51 -
- 52 -
5. VEŽBA - M – FAJLOVI (DATOTEKE) Svi dosadašnji primeri bili su izvršavani sa komandne linije. Nedostatak ovakvog načina rada je gubljenje unetih podataka i svih dobijenih rezultata nakon završetka rada u MATLAB-u. Zato se nameće potreba za formiranjem fajlova u koje se mogu smestiti programi, numerički rezultati, grafici, strukture, itd. koji će ostati trajno sačuvani i po potrebi biti pozivani od strane korisnika. Zavisno od toga šta se u fajlu želi sačuvati MATLAB generiše i koristi M, MAT i MEX fajlove.
MAT fajlovi sadrže binarne podatke i u imenu imaju ekstenziju .mat. MAT fajl osim strukture podataka pamti i ime podataka. Takođe se MAT fajl može upamtiti tako da bude upotrebljiv i za neke druge programe. Drugim rečima, postoji mogućnost izbora u kome formatu će se ovi podaci sačuvati. MEX fajlovi predstavnjaju proširenje mogućnosti MATLAB-a. To su programi pisani u nekom od programskih jezika C ili FORTRAN-u, a koji se mogu pozivati iz MATLAB-a. M fajlovi su specifičnost MATLAB-a. To su fajlovi koji sadrže tekst u ASCII kodu i u imenu imaju ekstenziju .m. Postoje dve vrste M fajlova: komandni (script) i funkcijski (function). Formiranje M fajlova vrši se korišćenjem editora teksta koji se u MATLAB programskom paketu pokreće tako što se iz menija File komandnog prozora bira komanda New, a zatim opcija Mfile. Tada se otvara nov prozor programa za uređivanje teksta koji služi za formiranje M fajla.
- 53 -
Biranjem opcije M - file otvara se prozor za unos fajla koji ho ćemo da zapamtimo. Posle ispisa, aktiviranjem naredbe File/Save pamtimo fajl pod imenom koje sami odaberemo. Program se izvršava ukucavanjem imena fajla bez ekstenzije.
Komandni fajl predstavlja niz MATLAB izraza i komandi koje se izvršavaju kada se fajl pozove. Fajl se poziva ukucavanjem njegovog imena u komandnoj liniji. Sve promenljive su definisane u radnom prostoru MATLAB-a , a prosle đuju se u komandni fajl i obrnuto. Ako treba da izmenite kmande u fajlu , snimite je i ponovo pokrenite. PRIMER 1: Odrediti zbir kvadrata prvih deset prirodnih brojeva i sačuvati fajl pod imenom zbir. % ime ovog m fajla je zbir x=1:10; x=[x.^2]; z=sum(x) - 54 -
Svaki put kada nam je potreban ovaj rezultat, dovoljno je samo otkucati reč zbir, pod kojim smo upamtili ovaj fajl. Kao rezultat dobijamo: z= 385 Ovako sačuvani fajl je otvoren prema podacima koje smo unosili tokom rada, tako da može da se dogodi greška. Zato je bolje formirati funkcijske fajlove koji su zatvoreni sistemi i zaštićeni od nepoželjnih podataka. Funkcijski fajl omogućava korisniku MATLAB-a da stvara nove funkcije. Funkcijski fajlovi moraju u prvoj liniji da sadrže naredbu oblika: function [y1, y2,…] = ime funkcije (x1, x2,…) function ime funkcije (x1, x2,…) function [y1, y2,…] = ime funkcije
Ulazni argumenti su x1 , x2 ,L ,a izlazni argumenti y1 , y2 ,L su funkcije, koje se dobijaju kada se funkcija pozove. Posle ovoga izraza sledi niz MATLAB komandi i izraza.
PRIMER 2: Formirati funkcijski fajl u kome se definiše nova funkcija x
f ( x) = e
+
sin x pod imenom fi.
% funkcijski fajl % ime nove funkcije je fi function y=fi(x) y=exp(x)+sin(x); - 55 -
Ako želimo da izračunamo vrednost ove funkcije, dovoljno je da pozovemo funkciju fi i definišemo vrednost promenljive, na primer x =
π
.
2 >> fi(pi/2) ans = 5.8105
PRIMER 3: Formirati funkcijski fajl u kome se definiše nova funkcija f ( x ) = e x + sin x pod imenom fa, a da se vrednost nezavisno promenljive unese korišćenjem naredbe input (‘tekst‘). % ime nove funkcije je fa function y=fa x=input('unesi promenljivu x=') y=exp(x)+sin(x); Pozivanjem funkcije fa i odgovorom na postavljeno pitanje dobićemo odgovor: >> fa unesi promenljivu x=3 x= 3 ans = 20.2267
- 56 -
PRIMER 4: Formirati funkcijski fajl pod imenom ime kojim se određuje broj slova u nekom imenu. % funkcijski fajl ime kojim se odredjuje broj slova u imenu function br(x) x=input('unesi svoje ime:','s') % oznaka s u naredbi oznacava da se unose stringovi n=length(x); disp(['broj slova u imenu je',num2str(n)]) >> ime unesi svoje ime: ivana x= ivana broj slova u imenu je 5 U naredbi disp, tekst je definisan kao dvodimenzioni vektor, čija je prva komponenta znak (string), a druga koja je kao rezultat programa broj koji mora da se naredbom num2str prebaci u znak (string).
PRIMER 5: Formirati funkcijski fajl pod imenom element, za izračunavanje elemenata matrice n × m , gde je aij = sin (ij2 i 1 za i = j , a aij = sin (ij2 i − ) + za i ≠ j . 2 % izračunavanje elemenata matrice function a=element(i,j) if i= =j a=sin(2*i*j-i); else a=sin(2*i*j-i)+0.5; end - 57 -
−
)
Ako želimo da odredimo bilo koji element naše matrice, na primer element (2,3), pozvaćemo formirani fajl pod imenom element: >> element(2,3) ans = -0.0440 Koristeći formirane fajlove možemo formirati nove funkcijske fajlove.
PRIMER 6 : Formirati funkcijski fajl pod imenom matrica, za definisanje matrice prizvoljnog reda n × m , čiji su elementi dati funkcijskim fajlom pod imenom element. % formiranje matrice ciji su elementi % sinusne funkcije iz fajla pod imenom element % ime novog fajla je matrica function A=matrica(m,n) for i=1:m for j=1:n A(i,j)=element(i,j); end,end Ako želimo da definišemo neku odre đenu matricu na primer matricu sa 2 vrste i 3 kolone možemo postupiti na sledeći način: >> matrica(2,3) ans = 0.8415 0.6411 -0.4589 1.4093 -0.2794 -0.0440
- 58 -
VEŽBA: 1.
Formirati funkcijski fajl pod imenom si
kojim se izračunava funkcija
sin( x) , zatim x
izračunati si , si ( 0 ) . 2 π
2. Formirati funkcijski fajl pod imenom ime kojim svako unosi svoje ime i prezime, prebrojava broj slova i ako je taj broj manji od 15 određuje moduo i argument kompleksnog broja z = 1 + 3i , ako je broj slova između 15 i 20 definiše jediničnu matricu 3 × 3 , a ako je veći od 20 izračunava sumu kvadrata prvih 100 prirodnih brojeva.
- 59 -
- 60 -
6. VEŽBA - REŠAVANJE JEDNAČINA I SISTEMA ALGEBARSKIH J EDNAČINA 6.1. SREĐIVANJE POLINOMA Naredba roots koristi se za izračunavanje rešenja, odnosno nula polinoma. Naredba ima oblik r = roost (p) gde je r vektor koji sadrži rešenja polinoma, a p
vektor koji sadrži koeficijente polinoma.
PRIMER 1: Odrediti nule polinoma x 2 − 5 x + 6 = 0 . >> p=[1 -5 6]; >> r=roots(p) r= 3.0000 2.0000 Sa druge strane, kada su poznata rešenja polinoma, pomoću naredbe poly mogu se odrediti koeficijenti polinoma, odnosno napisati polinom. Naredba ima oblik p=poly (r) gde je r vektor koji sadrži rešenja polinoma, a p
vektor koji sadrži koeficijente polinoma.
- 61 -
PRIMER 2: Odrediti polinom čija su rešenja x = 2 i x = 3 . >> r=[2 3]; >> p=poly(r) p= 1
-5
6
Dakle, traženi polinom je x 2 − 5 x + 6 .
6.2. OPERACIJE SA POLINOMIMA Polinomi se sabiraju i oduzimaju tako što se saberu, odnosno oduzmu koeficijenti polinoma (odgovarajućih monoma).
PRIMER 3: Sabrati polinome p1 ( x ) = 3 x−3 2−x 2+ 4 x 6 i p2 ( x ) = x+4 2−x 3 −7 x+2 3x 1 . >> p1=[3 -2 -4 6]; >> p2=[1 2 -7 -3 1]; >> p=[0 p1]+p2 p= 1
5 -9 -7
7
Kako polinomi nisu istog stepena kra ći vekror se mora dopuniti nulama da bi bio iste veličine kao duži vektor. Polinomi se množe pomoću naredbe conv. Naredba ima oblik c=conv (a,b) gde je c vektor koeficijenata polinoma rezultata, a
a i b su vektori koeficijenta polinoma koji se množe. - 62 -
PRIMER4 : Pomnožiti polinome p1 i p2 . >> c=conv(p1,p2) c= 3
4 -29
3 49 -32 -22
6
Dakle, rešenje je polinom 5 4 3 2 3 x 7 + 4 x−6 29 + x + 3 x− 49 − x + 32 x 22 x 6 Polinomi se dele pomoću naredbe deconv. Naredba ima oblik [q,r]=deconv (a,b) gde je q vektor koeficijenata polinoma
količnika, r vektor koeficijenata polinoma ostatka, a je vektor koeficijenta polinoma brojioca, b je vektor koeficijenta polinoma imenioca.
PRIMER 5: Podeliti polinome p1 ( x ) = 2 x+3 9+x 2− 7 x 6 i p2 ( x ) = x + 3 . >> p1=[2 9 7 -6]; >> p2=[1 3]; >> [q r]=deconv(p1,p2) q= 2 3 -2 r= 0
0
0
0
Dobijamo da je količnik polinom 2 x 2 + 3 x − 2 , bez ostatka.
- 63 -
6.3. REŠAVANJE JEDNAČINA SA JEDNOM PROMENLJIVOM Jednačina sa jednom promenljivom ima oblik f ( x ) = 0 . Za izračunavanje nula funkcije koristi se naredba fzero. Naredba ima oblik x=fzero('funkcija',x0)
x je skalarna vrednost Funkcija se unosi u obliku znakovnog niza ( string ). Funkcija se prethodno može definisati u funkcijskom fajlu , a ime funkcije se zadaje u obliku znakovnog niza. x0 je vrednost promenljive x u blizini mesta gde funkcija preseca x osu. x0 može biti skalar čija je vrednost bliska tački preseka funkcije sa x osom ili vektor sa dva elementa čije su vrednosti tačke na suprotnim stranama rešenja. Ako ima više rešenja svako se izračunava za sebe. Početno rešenje x0 se može odrediti grafičkim putem. Funkcija fzero pronalazi samo rešenja u kojima funkcija preseca x osu.
- 64 -
PRIMER 6: Naći rešenja jednačine xe
−
x
=
0.2
Približna rešenja određujemo grafički. >> fplot('x*exp(-x)-0.2',[0 8grid
Sa slike vidimo da su približna rešenja 0,7 i 2,8 . >> x1=fzero('x*exp(-x)-0.2',0.7) x1 = 0.2592 >> x1=fzero('x*exp(-x)-0.2',2.8) x12.5426 =
- 65 -
6.4. REŠAVANJE SISTEMA LINEARNIH JEDNAČINA Ako je determinanta sistema od n linearnih algebarskih jednačina sa n promenljivih različita od nule, tada taj sistem ima jedinstveno rešenje dato formulom
xj
=
Dj ,( D ≠ 0, j = 1, 2,..., n) , D
gde je D determinanta tog sistema, a D j determinanta dobijena tako što su u D koeficijenti uz x j zamenjeni, redom, slobodnim članovima b j . Navedene formule su poznate Kramerove formule.
PRIMER 7 : Kreirati fajl Cramer za rešavanje sistema linearnih algebarskih jednačina koristeći Kramerovo pravilo. % Novi fajl pod imenom Cramer %Resavanje sistema AX=B Cramerovim pravilom function X=Cramer(A,B) [m,n]=size(A); if m ~= n, error('Matrica nije kvadratna'), end if det(A)==0, error('Matrica je singularna'), end for j=1:n, C=A; C(:,j)=B; X(j)=det(C)/det(A); end X=X'; - 66 -
PRIMER 8: Koristeći kreirani fajl Cramer rešiti sistem jednačina 2x − 4 y − z = 0 6 − x+ 2+y =2 z 3x + 6 y =6 >> A=[2 –4 –1 ; –1 2 2 ; 3 6 0] >> B=[0 ; 6 ; 6] >> Cramer(A , B) ans = 2 0 4
PRIMER 9 : Koristeći kreirani fajl Cramer rešiti sistem jednačina 2 x 3+y = z 1 x + 3y − 2z = 1 . x − 6y + z = 3
−+
>> A1=[–2 3 1;1 3 –2;1 –6 1] A1 = -2 3 1 1 3 -2 1 -6 1 >> B1=[1;1;3] B1 1= 1 3 Cramer(A1,B1) ??? Error using ==> cramer Matrica je singularna - 67 -
PRIMER 10 : Rešiti sistem jednačina matričnom metodom 2 x 3+y = z 1 x + 3y − 2z = 1 . x − 6y + z = 3
−+
>> A=[-2 3 1;1 3 -2;1 -6 -1] A= -2 3 1 1 3 -2 1 -6 -1 >> B=[1;1;3]
B =1 1 3 >> X=INV(A)*B X= -2.5000 -0.5000 -2.5000
- 68 -
PRIMER 11: Rešiti sistem jednačina matričnom metodom i koristeći kreirani fajl Cramer. Uporediti ovako dobijena rešenja. 23x + y + z = 11 3 x + 5 y + 2 z = 19 x + 2 y + 3z = 14 >> M=[2, 3, 1 ; 3, 5, 2 ; 1, 2, 3] M= 2 3 1 3 5 2 1 2 3 >> N=[11 ; 19 ; 14] N= 11 19 14 >> X1=inv(M)*N X1 = 1.0000 2.0000 3.0000 >> X2=Cramer(M,N) X2 = 1 2 3
- 69 -
VEŽBA: 1.
Odrediti koeficijente polinoma
−2 x) 3 . y ( x )( 1− x )( = −
2.
Rešiti jednačinu x 4 − 2 x 2 + 1 = 0 .
3.
Rešiti jednačinu ax 2 + 5bx
−
2 = 0.
4. Rešiti sistem jednačina 22x 2 + x− −y = 1 0 i y − 2x −1 = 0 . 5.Rešiti sistem jednačina matričnom metodom i koristeći kreirani fajl Cramer. Uporediti ovako dobijena rešenja. 2 x − y + 3z = 9 3 x − 2 y + 4 z = 11 . x− y+ z =2
- 70 -
7. VEŽBA - SIMBOLIČKA MATEMATIKA Sve matematičke operacije koje smo do sad koristili bile su numeričke. Zadati izrazi sadržali su brojeve i promenljive kojima su predhodno dodeljene numeričke vrednosti. Rezultat takvih operacija je numerička vrednost ( broj ili vektor brojeva). Sa druge strane, mnogi matematički problemi zadati su izrazima koji sadrže simboličke promenljive, koje nemaju numeričku vrednost u trenutku izvršenja. Rezultat takvih operacija je simbolički izraz. Symbolic Math Toolbox nam omogu ćava da radimo sa simboličkim promenljivim. Komande i funkcije za simboličke operacije imaju istu sintaksu i stil rada kao komande za numeričke operacije.
7.1. SIMBOLIČKI OBJEKTI I IZAZI Simbolički objekti mogu biti promenljive ( kojoj nije dodeljena numerička vrednost ), brojevi ili izrazi sastavljeni od simboličkih promenljivih i brojeva . Naredbe za definisanje simboličkih promenljivih su sym ili syms.
Naredba ima oblik ime objekta = sym ( ' znakovni izraz' )
>> a=sym('a') a= a
- 71 -
PRIMER 1: Napisati
15 kao simboličku, a zatim kao numeričku
promenljivu. > s=sym('15') s= 15 >> s=15 s= 15 Napomena: Rezultat u prvom slučaju je simbolička promenljiva
i rezultat se prikazuje na ekranu sa uvlakom, nasuprot drugom rezultatu koji je numerički rezultat i na ekranu se prikazuje bez uvlake. Naredba syms koristi se za definisanje više simboličkih objekata. syms ime promenljive, ime promenljive,.......
PRIMER 2: Napisati simbolički izraz f
=
ax 2 + bx + c .
> syms a b c x >> f=a*x^2+b*x+c f= a*x^2+b*x+c
- 72 -
PRIMER 3: Napisati simbolički izraz f
=
ax 2 + bx + c .
>> f=’a*x^2+b*x+c’ f= a*x^2+b*x+c Napomena: Za razliku od predhodnoh primera gde smo
definisali sve ulazne promenljive i dobili simboli čki izraz f, u drugom primeru nismo definisali ulazne promenljive i samim time sa simboličkim izrazom f ne možemo vršiti nove operacije u kojima učestvuju promenljive a,b,c,x, jer ih nismo posebno definisali. Napr. Ne možemo sabrati izraz f i promenljivu x.
PRIMER 4: 2 + b za a = 3 i b = 4 . Prvo a uzeti da su a i b simboličke promenljive, a zatim ih zadati kao numeričke vrednosti. Izračunati vrednost izraza y =
> a=sym(3);b=sym(4); >> c=2/a+sqrt(b) c= 8/3 >> a=3;b=4; >> c=2/a+sqrt(b) c= 2.6667
Napomena: Ako računamo sa simboličkim promenljivim rezultat je tačna brojna vrednost i vidi se na ekranu bez uvlake, a u drugom slučaju rezultat je približna numerička vrednost.
- 73 -
7.2. REŠAVANJE JEDNAČINA Rešavanje jednačina i sistema jednačina vrši se naredbom solve. Naredba ima oblik : s=solve(jednačina) s=solve(jednačina, promenljiva )
PRIMER 5: Rešiti jednačinu 2 x − 5 = 0 > syms x >> y=solve(2*x-5) y= 5/2 Jednačina sadrži jednu ulaznu simboličku promenljivu x , a rešenje je broj, dat kao simbolička promenljiva.
PRIMER 6: Rešiti jednačinu ax 2 +bx +c
=
0
>> syms x a b c >> solve(a*x^2+b*x+c) ans = [ 1/2/a*(-b+(b^2-4*a*c)^(1/2))] [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
- 74 -
Jednačina sadrži više ulaznih simboličkih promenljivih x, a , b, c , a rešenje je simbolička promenljiva u funkciji ulaznih parametara a, b, c .
7.3. REŠAVANJE SISTEMA JEDNAČINA Naredbe imaju oblik : [r1,r2,...]=solve (jednačina 1, jednačina 2,....) rezultat=solve(jednačina 1, jednačina 2,..., promenljiva1 promenljiva2,....,)
PRIMER 7: Rešiti sistem jednačina x + 5 y = 3 i 2 x − y = 4 . >> [x,y]=solve( 'x+5*y-3','2*x-y-4') x= 23/11 y= 2/11 Napomena: Kako je sistem saglasan i ima jednoznačno rešenje,
mi ga vidimo na ekranu kao par simboličkih brojeva.
PRIMER 8: Rešiti sistem jednačina x + 5 yz = 3 i 2 x − y = 4 . >> [x,y]=solve( 'x+5*y*z-3','2*x-y-4') x= (20*z+3)/(1+10*z) y= 2/(1+10*z) - 75 -
Napomena: Kako je sistem saglasan, a ima beskonačno mnogo
rešenja, mi rešenje vidimo na ekranu kao simboličku promenljivu izraženu u funkciji promenljive z . PRIMER 9: Odrediti presek kruga x 2 + y 2
=
41 i prave
y − x1 − 0= .
>> syms x y > [x y]=solve('x^2+y^2-41','y-x-1') x= 4 -5 y= 5 -4
7.4. CRTANJE GRAFIKA KRIVE SIMBOLIČKOG IZRAZA Crtanje gragika simboličkog izraza se radi korišćenjem naredbe ezplot. Naredba ima oblik : ezplot(S) ezplot(S,[xmin,xmax,ymin,ymax])
S je simbolički izraz krive koja se crta. U prvoj naredbi
ezplot(S) grafik se crta u domenu ( −2π , 2π ) , a u drugoj sami
zadajemo domen nezavisne promenljive x i zavisno promenljive y .
- 76 -
PRIMER 10: Nacrtati grafik funkcije y = x 2 + 2 x + 1 . >> syms x >> y=x^2+2*x+1; >> ezplot(y) x 2+2 x+1
50
40
30
20
10
0 -6
-4
-2
0
2 x
4
6
VEŽBA: 5.Rešiti jednačinu x 2 − 2 x = 0 . 6.Rešiti jednačinu ax 2 + 5bx − 2 = 0 . 7.Rešiti sistem jednačina 2 x − y − 1 = 0 i x + 2 y + 4 = 0 . 8.Nacrtati funkciju y = e x + 1 . 9. Ispitati uzajamni položaj kruga x 2 + y 2 = 1 i pravih a) x + y − 4 = 0 , b) x + y − 1 = 0 , c) x + y − 2 =0 . Zadatak uraditi računski i grafički.
- 77 -
- 78 -
8. VEŽBA - GRANIČNA VREDNOST I IZVOD FUNKCIJE 8.1. GRANIČNA VREDNOST FUNKCIJE Naredbom limit računa se granična vrednost simbolički zadate funkcije. Naredba ima oblik limit(f,a)
gde je f funkcija, x nezavisna promenljiva , a vrednost kojoj teži nezavisno promenljiva x .
PRIMER 1: Naći graničnu vrednost funkcije lim x →1
>> syms x >> limit( (x.^2-1)/(x.^2+2*x-3),1) ans = 1/2
- 79 -
x2 − 1 . x + 2x − 3 2
PRIMER 2:
x2 −1 x Na i grani nu vrednost funkcije lim x2 + 2x − 3 . ć
č
→∞
>> syms x >> limit( (x.^2-1)/(x.^2+2*x-3),inf) ans = 1
8.2. IZVOD FUNKCIJE Naredbom diff dobija se izvod simbolički zadate funkcije. Naredba ima oblik prvi izvod funkcije, diff(f) diff(f,n)
n-ti izvod funkcije.
PRIMER 3: Naći prvi izvod funkcije y = x 3 sin x . >> y='x.^3*sin(x)'; >> diff(y) ans = 3*x^2*sin(x)+x^3*cos(x) >> pretty(ans)
2 3 3 x sin(x) + x cos(x)
- 80 -
PRIMER 4: Naći drugi izvod zadate funkcije. >> syms x >> y=x.^3*sin(x); >> diff(y,2) ans = 6*x*sin(x)+6*x^2*cos(x)-x^3*sin(x)
8.3. PRIMENE IZVODA -ODEĐIVANJE EKSTREMNIH VREDNOSTI Ekstremne vrednosti određujemo kao nule prvog izvoda funkcije .
PRIMER 5 : Odrediti ekstremne vrednosti funkcije >> syms x >> y=x/exp(x); >> d=diff(y) d= 1/exp(x)-x/exp(x) >> pretty(d) 1 x ------ - -----exp(x) exp(x) >> s=solve(d) s= 1 >> y1=1/exp(1) y1= 0.3679 - 81 -
y=
x . ex
PRIMER 6 : Odrediti ekstremne vrednosti funkcije
y = e x ( 3x − 2 x 2 ) .
>> y=exp(x)*(3*x-2*x.^2) >> d=diff(y) d= exp(x)*(3*x-2*x^2)+exp(x)*(3-4*x) >> s=solve(d) s= 1 -3/2 >> y1=exp(1)*(3*1-2*1.^2) y1 = 2.7183 >> y2=exp(-3/2)*(3*(-3/2)-2*(-3/2).^2) y2 = -2.0082
PRIMER 7 : Nacrtati funkciju y =
x2 x−2
i tekstom opisati sliku.
>> syms x >> y=x.^2/(x-2); >> limit(y,2) ans NaN= >> limit(y,inf) ans = Inf >> solve(y) ans = - 82 -
0 0 >> ezplot(y) >> grid, hold on >> gtext('nula(0,0)') >> d=diff(y) d= 2*x/(x-2)-x^2/(x-2)^2 >> s=solve(d) s= 0 4 >> y1=0.^2/(0-2) y1 = 0 >> y2=4.^2/(4-2) y2 = 8 >> gtext('max(0,0)') >> gtext('min(4,8)') >> xlabel('x osa') >> ylabel('y osa') x 2/(x-2) 20
15
10 min(4,8) 5 a s o y
max(0,0) nula(0,0)
0
-5
-10
-15 -6
-4
-2
0
2 x osa
4
- 83 -
6
VEŽBA:
x
1.Izračunati lim x →∞
2.Izračunati lim x→1
x
2 −
. 1
x . x2 − 1
3.Naći prvi izvod funkcije y = xe x . 2.Naći deseti izvod funkcije y = x n e x . 3.Nacrtati i opisati sliku funkcije y = xe x . x 4.Nacrtati i opisati sliku funkcije y = 2 . x −1
- 84 -
9. VEŽBA - DESKRIPTIVNA STATISTIKA U Statistics Toolbox-u Matlab 7, u glavi 2 - Descriptive Statistics, postoji nekoliko poglavlja, od kojih će za dva biti demonstrirani primeri korišćenja. To su : Measures of Central Tendency (mere centralne tendencijelokacije) Measures of Dispersion (mere disperzije-raspršenosti) U tabelama 1 i 2 data su imena i opis funkcija koje su sadržane u dva gore navedena poglavlja.
Tabela 1 Funkcije centralne tendencije - lokacije Ime funkcije
Opis
Geomean
Geometrijska sredina
Harmmean
Harmonijska sredina
Mean
Aritmetička sredina
Median
Vrednost u sredini uređene serije po veli čini
Trimmean
Trimovana srednja vrednost
Poziv funkcija je jednostavan, iza imena u zagradi dolazi ime vektora koji sadrži seriju podataka. Na primer, m=mean(x) . Ako je x vektor, mean(x) je aritmetička sredina elemenata od x. Ukoliko je x matrica, mean(x) daje vektor vrstu čiji su elementi srednje vrednosti elemenata kolona matrice x.
- 85 -
1.
PRIMER:
Naći mere centralne tendencije vektora x. >>x = [ 1 5 2 4 7 3 9 6 ] x= 1 5 2 4 7 3 9 6 centrten = [ geomean(x) harmmean(x) mean(x) median(x) trimmean(x) ] centrten = 3.8202 2.9586 4.6250 4.5000 4.5000
Tabela 2 Funkcije disperzije ( raspršenosti ) Ime funkcije
Opis
iqr
Interkvartilna razlika
mad
Srednje apsolutno odstupanje
range
Razmak ili interval varijacije
std
Standardna devijacija
var
Varijansa
Poziv funkcija je analogan kao za mere centralne tendencije. Isto se odnosi i na vektor x koji sadrži seriju podataka.
- 86 -
2.PRIMER: Naći mere disperzije ( raspršenosti ) vektora x. >>x = [ 1 5 2 4 7 3 9 6 ] x= 1 5 2 4 7 3 9 6 stats = [ iqr(x) mad(x) range(x) std(x) var(x) ] stats = 4.0000 2.1250 8.0000 2.6693 7.1250
- 87 -
- 88 -
10. VEŽBA - PRUGASTI I KRUŽNI DIJAGRAMI Prugasti dijagrami, histogrami i kružni dijagrami predstavljaju popularne tehnike za prikazivanje podataka. U tabeli 1 data su imena funkcija i opis, za crtanje gore navedenih dijagrama.
Tabela 1 Funkcije za crtanje prugastih, kružnih dijagrama i histograma Ime funkcije
Opis
bar(x)
Ako je x vektor, naredba daje vertikalni prugasti dijagram. ć
Ako je xpodatke dvodimenziona grupisati po vrstama.matrica, naredba
e
barh(x)
Naredba slična bar naredbi, samo što se crta horizontalni prugasti dijagram.
bar3(x)
Naredba daje trodimenzioni vertikalni prugasti dijagram.
pie(x)
Daje kružni dijagram ( kriške). Svaki od elemenata vektora x predstavljen je isečkom kruga.
pie3(x)
Daje trodimenzioni kružni dijagram. Svaki od elemenata vektora x predstavljen je isečkom kruga.
- 89 -
2.
PRIMER:
Nacrtati prugaste i kružne dijagrame za dati vektor x. >> x = [ 1, 2, 5, 4, 8, 3 ] x= 1 2 5 4 8 3 >> bar(x) 8
7
6
5
4
3
2
1
0 123456
>> barh(x) 6
5
4
3
2
1
012345678
- 90 -
>> bar3(x) 8
6
4
2
0 1 2 3 4 5 6
>> pie(x) 4% 13% 9%
22%
35%
17%
- 91 -
l>> pie3(x)
13% 4% 9%
35%
22% 17%
- 92 -
11. ZADACI ZA VEŽBANJE 1. Rešiti sistem jednačina matričnom metodom. x+ y+z =0 2652 x+ y+ z = 6561 x+ y+ z =
2. Rešiti sistem primenom Kramerovog pravila 2 x − 3 y+ =z− 1 x+ y+z =6 3 x + y− 2=z− 1
3. Koja je kriva u ravni predstavljena jednačinom z = 2 +Im( z) , gde je z = x + iy kopleksni broj. 4. Koja je kriva u ravni predstavljena jednačinom Re ( z 2 ) = 1 , gde je z = x + iy kopleksni broj 5. Odrediti skup tačaka u kompleksnoj ravni za koje je z −i Re = 0 i grafički predstaviti. z − 1 6. Grafifički predstaviti krivu u kompleksnoj ravni koja je određena jednačinom z z + i ( z− − z )= 2 0 .
- 93 -
7. Za razne vrednosti parametra a ispitati da li je sistem linearnih jednačina ax + y +z = 1 x + ay + z = 2 x + y+ az=− 3 određen, neodređen ili protivrečan
8. Koristeći naredbu subplot nacrtati funkcije y = x n , n ∈ [1, 6] . Svaka funkcija da bude druge boje i vrste linija. 9. Koristeći naredbu subplot nacrtati funkcije y = n x , n ∈ [1, 4] . Svaka funkcija da bude druge boje i vrste linija. 10. Formirati funkcijski fajl pod imenom ime kojim se određuje broj slova u nekom imenu, a zatim nacrtati funkciju f ( x ) = x n , gde je n broj određenih slova.
11. Rešiti sistem jednačina nekom od metoda. Zatim grafi čki rešiti sistem , obeležiti sliku i uprediti tako dobijena rešenja. x+ y =2 x + 2y = 3. 12. Nacrtati u istom koordinatnom sistemu funkcije f ( x ) = ln x , f ( x ) = log 2 x , f ( x ) = log10 x i tekstom opisati sliku. Svaka funkcija da bude druge boje i vrste linija. 13. Koristeći funkciju subplot nacrtati funkcije, f ( x ) = log n x za n = 1 ,2 , e,10 i tekstom opisati sliku. Svaka funkcija da bude 2 druge boje i vrste linija.
- 94 -
14. Nacrtati u istom koordinatnom sistemu funkcije y = x 2 , y = x3 na intervalu −1 ≤ x ≤ 1 i tekstom opisati sliku. Svaka funkcija da bude druge boje i vrste linija. 15. Nacrtati u istom koordinatnom sistemu funkcije y = x na intervalu x −1 ≤ x ≤ 1 , y = xe na intervalu 0 ≤ x ≤ 1 i y = sin x na intervalu π
x≤
π
i tekstom opisati sliku. Svaka funkcija da bude druge 2 2 boje i vrste linija. −
≤
16. Napraviti funkcijski fajl kojim se za razne vrednosti parametra k
17. izračunava vrednost determinante D =
3k 4 81 1 5 3 −1 − k . k 0 3 7 64 2k 1
18. Napraviti funkcijski fajl pod imenom element za izračunavanje elemenata matrice gde je a (i ,j ) i= j ⋅ za i ≠ ji , j< , a (i j,) =a(−i )j , za i > j a a (i j, ) i= 2 za i = j , a zatim koristeći taj fajl napraviti novi pod imenom matrica, za definisanje matice proizvoljnog reda m × n . 19. Napraviti funkcijski fajl pod imenom element za izračunavanje elemenata matrice gde je a (i ,j ) i= j ⋅ za i ≠ j , a a (i j, ) =i 2j ⋅ + 2 za i = j ., a zatim koristeći taj fajl napraviti novi pod imenom matrica, za definisanje matice proizvoljnog reda m × n . 20. Formirati funkcijski fajl pod imenom ime kojim svako unosi svoje ime i prezime, prebrojava broj slova i ako je taj broj manji od 15 određuje moduo kompleksnog broja z =1 + 3 i , ako je broj slova između 15 i 20 definiše jediničnu matricu 3x3, a ako je ve ći od 20 izračunava sumu kvadrata prvih 1000 prirodnih brojeva.
- 95 -
21. Formirati funkcijski fajl pod imenom godine kojim svako unosi svoj datum i godinu ro đenja ime, prebrojava broj simbola i ako je taj broj manji od 15 određuje argument kompleksnog broja z = 1 + i , ako slova đu sumu 15 i 20prvih definiše nultu matricu 3x3, a ako je vejećibroj od 20 izraizme 1000jeprirodnih brojeva. čunava
22. Formirati funkcijski fajl pod imenom mesto kojim svako unosi svoje ime mesta rođenja i opštinu, prebrojava broj slova i ako je taj broj manji od 15 određuje konjugovano kompleksni broj, broja z = 1 + 3i , ako je broj slova između 15 i 30 definiše magi čnu matricu 3x3, a ako je veći od 20 crta funkciju y = ln x . 23. Formirati funkcijski fajl pod imenom mesto kojim svako unosi svoje ime mesta rođenja i opštinu, prebrojava broj slova i ako je taj broj manji od 15 izračunava moduo kompleksnog broja z = (1 + 3i ) i , ako je broj slova između 15 i 30 definiše jedini čnu 1 2 matricu, matrice , A = 2 3 , a ako je ve ći od 20 crta funkciju y = ex .
24. Ispitati i grafički prikazati funkciju y = xe x . Tekstom opisati sliku. 25. Ispitati i grafički prikazati funkciju y =
2x . Tekstom opisati x2 +1
sliku.
26. Ispitati i grafički prikazati funkciju y =
x2 − 4 . Tekstom opisati x2 + 4
sliku.
27. Ispitati i grafički prikazati funkciju y = sliku.
- 96 -
1− x2 . Tekstom opisati x2
28. Ispitati i grafički prikazati funkciju y =
2 x3 . Tekstom opisati x2 +1
sliku.
29. Ispitati i grafički prikazati funkciju y = xe x . Tekstom opisati sliku. −
30. Ispitati i grafički prikazati funkciju y = x 2e sliku.
−
x2
. Tekstom opisati
31. Ispitati i grafički prikazati funkciju y = x ln x . Tekstom opisati sliku. 32. Ispitati i grafički prikazati funkciju y = x 2 ln x . Tekstom opisati sliku. 33. Ispitati i grafički prikazati funkciju y =
ln x
. Tekstom opisati sliku.
x najveću i najmanju vrednost 34. Odrediti y = x 2 ( 2−x− ) 3 ( − 12) 3x 2 na intervalu [ −3,6 ] . Slika.
35. Odrediti najveću i najmanju vrednost funkcije y =
funkcije
x 3 + na 3 x
intervalu [ −5, −1] . Slika.
36. Dokazati da sistem jednačina x+ y+z =0 2652 x+ y+ z = x+ y+ z = 6561 ima jedinstveno rešenje, a zatim rešiti sistem matričnom metodom.
- 97 -
37. Ispitati saglasnost sistema jednačina 2 x − 3 y+ =z− 1
x+ y+z =6 3x + y− 2=z− 1 a zatim rešiti sistem primenom Kramerovog pravila. 1 2 0 1 2 38. Rešiti matričnu jednačinu 1 1 1 X = 0 2 . 0 1 3 1 0 1 3 2 −2 39. Date su matrice A = 1 2 1 ,=M −− 1 0 0 1 0
jednačinu X + A2
=
3 1 11 . Rešiti 0 1
AM 1 . −
40. Rešiti jednačinu AX + BC = D , gde je 2 0 2 0 −1 5 A = 1 1 0 =, B− =0 2−=, C , D 3 0 1 3 −1 2
11 6 . 9
41. Izračunati zbir kvadrata prvih 1000 prirodnih brojeva.
- 98 -
SPISAK KOMANDI I FUNKCIJA Komande za upravljanje
help
demo clc clear who whos size format load save delete home quit exit pause
pomoć u radu sa Matlabom.
osnovni demonstracioni programi. briše se sadržaj komandnog prozora. briše sve promenljive i funkcije iz memorije. lista tekućih promenljivih. lista tekućih promenljivih, duža forma . veličina promenljive. izlazni format. učitavanje promenljivih sa diska. snimanje promenljivih na disk. brisanje fajlova. skok na početak ekrana. završetak rada. završetak rada. pauza do pritiska na neki taster.
Znakovi, aritmetički, relacijski i logički operatori + * .* ^ .^ / \ (,) [,] . ... , ; % = == <
plus. minus. množenje. množenje element po element. stepenovanje. stepenovanje element po element. deljenje udesno. deljenje ulevo. za pozivanje funkcija i redosled operacija. definišu vektore i matrice. decimalni zarez. nastavlja red. razmak između elemenata i argumenata funkcije. kraj reda ili isključuje prikazivanje rezultata. komentar. dodeljivanje vrednosti. jednakost. manje. - 99 -
> >= <=
veće. veće ili jednako. manje ili jednako.
~= & | ~
nije čjednako. logi ko i. logičko ili. logičko ne.
Unapred definisane promenljive ans pi i,j NaN inf
rezultat. π = 3.14..... kompleksna jedinica , −1 . nije numerička vrednost. beskonačno.
Elementarne matematičke funkcije abs sqrt sin cos tan cot exp log log 10 conj imag real
apsolutna vrednost. kvadratni koren. sinus. kosinus. tangens. kotangens. eksponencijalna funkcija osnove e. prirodni logaritam. dekadni logaritam. konjugovano kompleksni broj. imaginrni deo kompleksnog broja. realni deo kompleksnog broja.
- 100 -
Crtanje i formatiranje grafikona plot
crta se kriva funkcije.
crtacrta se kriva funkcije. fplot se više grafikona na istoj stranici. subplot hist formira se histogram. drži se otvoren teku ći grafik. hold on hold off suprotno od hold on. podešavanje osa. axis colormap podešavaju se boje na grafikonu. dodaje se ili oduzima rešetka na grafikonu. grid gtext dodaje se tekst na grafikon. dodaje se tekst na grafikon. text title grafikonu se dodaje naslov. dodaje se natpis na osu x. xlabel ylabel dodaje se natpis na osu y.
Komande za upravljanje tokom programa break else elseif end for if while
prekidanje izvršavanja petlje. uslovno izvršavanje komandi. uslovno izvršavanje komandi. kraj uslovnog iskaza ili petlje. ponavljanje izvršavanja grupe komandi. islovno izvršavanje komandi. ponavlja izvršavanje grupe komandi.
- 101 -
Simbolička matematika diff
diferenciranje.
double ezplot pretty simple solve subs
pretvara broj koja simboli čkog oblika u numerički. crtanje krive predstavlja izraz.
sym syms
prikazuje se izraz u matematičkom formatu.
uprošćavanje izraza. rešavanje jedna čina ili sistema jednačina. promenljive u zadatom izrazu zamenjuje vrednostima. formira se simboli čki objekat. formira se simboli čki objekat.
- 102 -