| Osnove Matlaba, promjenljive, aritmetičke operacije, kompleksni brojevi |
|
PromjenljiveU matlabu se promjenljive definišu na veoma jednostavan način. Dovoljno je u komandnoj liniji unjeti naziv promjenljive i dodjeliti joj vrijdenost, na primjer:
>> a = 5 a = 5 >> ab_25_test = 234 ab_25_test = 234
U ovom primjeru definisane su promjenljive a i ab_25_test. Kao što se vidi nije potrebna nikakva dodatna deklaracija promjenljive. Kada matlab sretne, odnosno naiđe na novu promjenljivu, on automatski kreira i dodjeli joj odgovarujći memorijski prostor. Ako promjenljiva već postoji, tada se mjenja samo njena vrijednost i ako je potreblo dodjeli se novi memorijski prostor. Ime promjenljive sastoji se od slova a do z, brojeva od 0 do 9 i znaka donje crte _, pri čemu je potrebno obratiti pažnju da prvi znak promjenljive mora biti slovo. U primjeru je namjerno definisana promjenljiva ab_25_test da se vidi kombinacija slova, brojeva i donje crte. Ako sa n označimo maksimalnu dužinu imena promjenljive koju matlab dozvoljava, tada matlab, ukoliko je ime promjenljive duže od n znakova, uzima samo prvih n znakova, a ostale ignoriše. Maksimalnu dužinu imena promjenljive koju matlab dozvoljava može se odrediti naredbom namelengthmax, u ovom slučaju to je ukupno 63 znaka:
>> N = namelengthmax N = 63 Tipovi podatakaMatlab ima 14 različitih tipova podataka. Osnovni podatak za čuvanje brojeva je dvostruka preciznost (double-precision), pri čemu su svi proračuni u matlabu urađeni sa ovim tipom podataka. Ukoliko se koriste neki drugi tipovi podataka, kao što su označene i neoznačene cjelobrojne vrijednosti (int8, uint8) ili podaci sa jednostrukom-preciznošću (float) ili slični, tada se prilikom izvođenja aritmetičkih operacija, oni konvertuju u podatke dvostruke preciznosti.
Aritmetičke operacije
Aritmetičke operacije sa matricama
Sabiranje, oduzimanje, množenje i dijeljenje dvije matrice A i B se vrši jednostavno naredbama:
Slično, sabiranje, oduzimanje, množenje i dijeljenje matrice A sa skalarom n je:
Potrebno je obratiti pažnju kod operacija množenja i dijeljenja matrica A i B. U gore navedenim izrazima vrši se normalno množenje i dijeljenje matrica. Međutim, može se izvršiti množenje iili djeljenje po principu množenja ili dijeljenja "element sa elementom". Za ovo se koriste operatori .* i ./ (obratite pažnju da se nalazi tačka ispred željenog operatora). Primjer:
>> A=[3 5 2; 8 2 3; 9 7 3] A =
>> B=[2 9 1; 3 7 2; 2 8 5] B =
>> A*B ans =
>> A.*B ans =
Iz gornjeg primjera vidimo da izraz A*B nije isto što i izraz A.*B. U drugom izrazu vrši se množenje matrica po principu „element sa elementom“. Analogno je i sa izrazima A / B i A ./ B.
Izraz A/B predstavlja množenje matrice A sa inverznom matricom B, tj. A*B-1, dok izraz A\B (lijevo djeljenje) predstavlja množenje A-1*B.
Stepenovanje kvadratne matrice A na n-ti stepen, vrši se istom naredbom kao i stepenovanje brojeva na n-ti stepen, a to je A^n. Sa druge strane, naredba A.^n znači stepenovanje svakog elementa u matrici na n-ti stepen, a ne stepenovanje matrice. Primjer: >> A=[3 5 2; 8 2 3; 9 7 3] A =
>> A^2 ans =
>> A.^2 ans =
Iz primjera se vidi da je u prvom slučaju izvšeno kvadriranje matrice A, što je ekvivalentno izrazu A*A, dok u drugoj naredbi A.^2, kvadriran svaki element matrice.
Za izračunavanje sopstvenih vrijednosti i sopstvenih vektora matrice, u matlabu postoji funkcija eig. Izraz V = eig(A) određuje sopstveni vektor matrice A, dok izraz [V, lambda] = eig(A) određuje sopstveni vektor i sopstvene vrijednosti matrice A Primjer: >> A=[3 5 2; 8 2 3; 9 7 3] A =
>> V=eig(A) V = 12.8086 -3.8839 -0.9247 >> [V,lambda]=eig(A) V =
lambda =
Kompleksni brojeviRad sa kompleksinm brojevima u Matlabu je veoma jednostavno. Da bi vidjeli kako matlab prikazuje kompleksne brojeve, dovoljno je u komandni prozor unjeti izraz sqrt(-1). Prilikom unosa kompleksnih brojeva za imaginarnu jedinicu može se koristiti slovo i ili j. Slijedi primjer unosa kompleksnog broja i aritmetičkih operacija: >> z1 = 3+5*j z1 = 3.0000 + 5.0000i >> z2 = 7+2j z2 = 7.0000 + 2.0000i >> z3 = 8-2i z3 = 8.0000 - 2.0000i >> z1-z2 ans = -4.0000 + 3.0000i >> z2*z3 ans = 60.0000 + 2.0000i >> z1 / z3 ans = 0.2059 + 0.6765i >> 4+j3 ??? Undefined function or variable 'j3'.
Jasno se vide realni i imaginarni dio kompleksnog broja. Obratimo pažnju da se imaginarni dio može unjeti bez operatora množenja *, ali da imaginarna jedinica (slovo i ili j) moraju biti poslije broja, a ne prije broja, jer ako se nalazi prije broja matlab će prijaviti grešku ??? Undefined function or variable 'j3'. Svi aritmetički operatori rade i sa kompleksnim brojevima. Funkcije, specifične za kompleksne brojeve su: real(z) – prikazuje realni dio kompleksnog broja z imag(z) – prikazuje imaginarni dio kompleksnog broja z conj(z) – prikazuje konjugovanu vrijednost kompleksnog broja z abs(z) – moduo kompleksnog broja z angle(z) – argument kompleksnog broja z
Komplekni broj predstavljen u polarnom zapisu je z=re(jθ), gdje je r moduo, a θ argument kompleksnog broja. Korištenjem funkcija abs i angle jednostavno se određuju modul i argument kompleksnog broja zapisanog u obliju a+jb. Potrebno je obratiti pažnju na to kad se koriste komplekni brojevi da se promjenljive ne označavaju sa slovima i i/ili j, jer će u suprotmon vrijednost -1 biti promjenjena sa novom definisanom vrijednošću.
Postoji još jedan način kreiranja kompleksnih brojeva, a to je koristeći funkcju complex(a,b). Ova funkcija kreira kompleksni broj čiji je realni dio broj a, a imaginarni broj je broj b. Kada se radi o kompleksnim matricama, tada operatori prim ’ i tačka-prim .’ ponašaju se različito. Operator prim (’) kreira transponovanu konjugovano-kompleksnu matricu, a to znači da su vrste i kolone međusobno zamjenjene i da su znakovi imaginarnih dijelova promjenjeni. Sa druge strane operator tačka-prim ( .’ ) kreira čisto transponovanu kompleksnu matricu. Slijedi primjer:
>> Z = [2+3i 5+i; 4+2i 9+3i] Z =
>> Z' ans =
>> Z.' ans =
|