| Osnove Matlaba, rad sa matricama |
|
Pretpostavlja se da korisnik ima instaliran Matlab na operativnom sistemu Windows. Pokretanje matlaba vrši se isto kao i pokretanje bilo kojeg drugog programa, dva puta klikom na ikonicu matlaba. Nakon pokretanja programa otvara se Matlab-ov prozor koji se sastoji od tri manja prozora, a to su:
Kliknite na komandni prozor da postane aktivan. Oznaka >> u komandnom prozoru označava komandnu liniju. Ako unesemo izraz npr. 3+5, na prozoru ćemo dobiti rezultat: >> 3+5 ans = 8 >>
Slično unošenjem bilo kojeg matematičkog izraza dobićemo odgovarajući rezultat (pretpostavlja se tačan unos matematičkog izraza, npr. cos (pi/4) ili izračunavanje faktorijela factorial(5) ). Rad sa matricamaNajjednostavniji i najbrži način upoznavanja rada sa matlabom je upoznavanje rada sa matricama. Ovdje će se govoriti o načinu unosa matrica, indeksiranju elemenata, korištenje funkcija za dobijanje inverzne i transponovane matrice, izračunavanje determinante i slično. Unos matricaMatrica se može unjeti na nekoliko različitih načina:
Prvi način unošenja elemenata matrice sastoji se u sljedećem:
Primjer, u komandni prozor unesite sljedeći izraz:
>> A = [32 12 51; 18 32 25; 20 41 16] Na ekranu će se pojaviti unešena matrica u sljedećem obliku:
>> A =
Jednom kad se matrica unese, ona ostaje zapamćena u Matlab-ovom radnom prostoru. Takođe se, prilikom unosa matrice, vrste matrice se mogu odvojiti naredbom enter, a ne tačka-zarezom, kao što je prikazano:
A = [ 32 12 51 18 32 25 10 41 16 ]
Primjer generisanja matrice korištenjem internih (ugrađenih) funkcija je pomoću funkcije magic(n) , gdje je n prirodan broj. Ova funkcija generiše pravougaonu matricu dimenizija nxn. Ovako generisana matrica predstavlja tzv. magični kvadrat. Naziv potiče od toga što je suma elemenata u bilo kojoj koloni, bilo kom redu ili bilo kojoj dijagonali ista. Na primjer naredba M=magic(3) generiše matricu 3x3 čiji je oblik: M =
Indeksiranje elemenataElement u i-toj vrsti i j-toj koloni matrice A, označen je sa A(i,j). Na primjer, u našem slučaju A(2,3) je 25. Pomoću indeksiranja elemenata, svakom pojedinom elementu se može dodjeliti neka druga vrijednost. Na primjer, ako hoćemo da element A(2,3) ima vrijednost 32 umjesto 25, unesemo sljedeću naredbu: A(2,3) = 32. Sada je matrica oblika: A =
Ukoliko ne postoji element u i-toj vrsti i j-toj koloni, matlab će prikazati grešku, npr. ako stavimo A(2,4) dobićemo sljedeću poruku: ??? Index exceeds matrix dimensions. Sa druge strane, koristeći naredbu A(2,4)=5, matlab će proširiti matricu sa jednom kolonom, pri čemu su svi elementi 0, osim elementa A(2,4) čija je vrijednost 5. Na primjer ako unesemo gore navedenu naredbu, dobićemo sljedeći izraz:
>> A(2,4) = 5 >> A =
Isto važi i za dodavanje nove vrste, npr. A(4,2)=8.
Naredbe sum, transponse i diagAko primjenim0 naredbu sum direktno na gore navedenu matricu A, dobićemo sljedeći rezultat:
>> sum(A) ans =
Primjetimo, ukoliko se ne označi izlazna promjenljiva, matlab automatski koristi promjenljivu ans kao izlaznu promjenljivu za čuvanje rezultata. Možemo zaključiti da naredba sum(A) izračunava zbir kolona matrice A. Ukoliko želimo da izračunamo zbor vrst željene matrice, potrebno je prvo odrediti transponovanu matricu željene matrice, a zatim primjeniti naredbu sum. Transponovana matrica željene matrice dobija se korištenjem operatora prim ’, na primjer sljedećom naredbom određuje se transponovana matrica matrice A.
>> At = A’ At =
Matrica At je transponovana matrica matrice A. Primjenom naredbe sum na transponovanu matricu At, matrice A dobijamo zbir kolona matrice At, odnosno zbir vrsta matrice A.
>> sum(At) ans =
Mogli smo direktno primjeniti naredbu sum za proračun zbira elemenata vrsta matrice A na sljedeći način: >> sum(A’) Dobiće se isti rezultat. Naredba diag prikazuje matricu koja ima jednu kolonu, a čiji se elementi sastoje od dijagonalnih elemenata željene matrice. Na primjer ukoliko primjenimo naredbu diag na matricu A dobćemo:
>> diag(A) ans = 32 32 16 0
Zbir diagonalnih elemenata dobja se jednostavno naredbom sum(diag(željena_matrica)).
Operator dvotačka :Ovaj operator je jedan od najvažnijih operatora. Pojavljuje se u nekoliko različitih formi. Izraz 1:10 Predstavlja vektor (matrica vrsta) koji sadrži cijele brojeve od 1 do 10:
Uopšteno, izraz a:b:c predstalja interval od a do c, sa korakom b, npr.
>> 1:3:15 ans =
ili >> 100:-10:50 ans =
Ili >> 0 : pi/4 : pi ans =
Operator dvotačku možemo prijmeniti i na matricu. Na primjer izraz A(1:k,j) prikazuje k elemenata, j-te kolone matrice A. Prema tome izraz sum(A(1:3,2)) predstavlja zbir prva tri elementa, druge kolone, matrice A. Sam operator dvotačka, odnosi se na sve elemente u koloni ili vrsti, zavisno gdje se operator nalazi, a riječ end odnosi se na poslednji element u vrsti ili koloni. Prema tome izraz A(: , end) prikazuje elemente poslednje kolone, matrice A, dok izraz A(end , :) prikazuje elemente poslednje vrste, matrice A. Ove izraze pokazaćemo na primjeru sljedeće matrice:
>> A=magic(4) >> A =
>> A(:, end) ans = 13 8 12 1 >>A(end, :) ans =
Na sličan način možemo prikazati elemente bilo koje vrste i kolone, te formirati željene matrice matrice A. Na primjer, potrebno je formirati matricu B koja se sastoji od treće i četvrte kolone matrice A: >> B = A(:, 3:4) B =
U opštem slučaju, izraz A( x:y , i:j ) označava elemente u presjeku vrsta x i y i kolona i i j.
Rang, detemrinanta i inverzna matricaRang, determinanta i izverzna matrica se jednostavno određuju primjenom komandi rank(A), det(A) i inv(A), gdje je A željena matrica. Primjer ćemo pokazati na sljedećoj matrici:
>> A=[3 5 2; 9 8 2; 3 8 4]; >> R = rank(A) R= 3 >> D = det(A) D = -6 >> Ainv = inv(A) Ainv=
Obrtimo pažnju da matalb neće izlistati elemente matrice A, jer smo na kraju stavili tačkuzarez (;). Brisanje vrsta i kolonaBrisanje vrste ili koloni vrši se koristeći uglaste zagrade [ ]. Na primjer potrebno je generisati magični kvadrat 4x4 i obrisati treću kolonu: >> A=magic(4) >> A =
>> A(: , 3) = [ ] A =
Na sličan način briše se i vrsta, u sljedećem primjeru obrisaćemo drugu vrstu gornje matrice A >> A(2 , :) = [ ] A =
Generisanje matricaVeć smo se upoznali sa funkcijom magic za generisanje matrica. Postoji još funkcija kao što su: zeros, ones, rand, randn i slično. Funkcija zeros generiše matricu čiji su elementi nule, ones matricu čiji su elementi sve jedinice, rand slučajni elementi sa uniformnom raspodjelom i randn slučajni elementi sa normalnom raspodjelom. Primjer: >> zeros(3, 3) ans =
>> ones(3, 3) ans =
>> rand(1, 5) ans =
>>randn(3, 3) ans =
|