170 likes | 408 Views
Osnovi r ačunar a II. Matlab- II termin. Matrice u Matlab-u - nastavak Matlab posjeduje i neke već unaprijed definisane matrice, kao što su:. Matrice u Matlab-u - nastavak
E N D
Osnovi računaraII Matlab-II termin
Matrice u Matlab-u - nastavak • Matlab posjeduje i neke već unaprijed definisane matrice, kao što su:
Matrice u Matlab-u - nastavak • Unaprijed definisane matrice se mogu kombinovati međusobno, ili sa matricama ručno zadatim od strane korisnika, kako bi se na jednostavan način (bez direktnog unošenja elemenata)dobile složene matrice. • Pravila za kombinovanje više matrica su jednostavna: • Kada želimo spojiti dvije ili više matrica u jednu, imena promjenljivih u kojima se nalaze matrice, ili naredbe kojima se definišu matrice se pišu u uglastim zagradama [ ]. • Ukoliko želimo nadovezati drugu matricu sa desne strane postojeće, odvajamo ih zarezom. U ovom slučaju obije matrice moraju imati isti broj vrsta. • Ukoliko želimo dodati matricu ispod postojeće, odvajamo ih tačka zarezom ;. U ovom slučaju obije matrice moraju imati isti broj kolona.
Formiranje složenih matrica • Primjer: Bez direktnog unošenja elemenata, formirati matricu: • >> A=[eye(3),ones(3,2);zeros(2,5)] • A = • 1 0 0 1 1 • 0 1 0 1 1 • 0 0 1 1 1 • 0 0 0 0 0 • 0 0 0 0 0 • sa desne strane jedinične matrice je dodata matrica koja se sastoji od jedinica.Ovo je učinjeno postavljanjem zareza između komandi kojima se zadaju ove dvije matrice. Postavljanjem ; u nastavku, ispod ovako dobijene matrice je dodata matrica sa nulama.
Matrice u Matlab-u - nastavak • Osim unaprijed definisanih matrica, i matrica dobijenih njihovim kombinovanjem, bez direktnog navođenja elemenata se mogu zadavati i vektori koji predstavljaju aritmetički red, odnosno vektori kod kojih se svaka dva susjedna elementa razlikuju za istu vrijednost. Tako možemo zadati: • Vektor sukcesivnih vrijednosti iz intervala [a,b] sa korakom 1: >>x = a : b, čime dobijamo vektor [a, a+1, a+2 ... b]. Dakle, kreće se od a, a svaki sljedeći element se dobija dodavanjem jedinice tekućem elementu. Najveći element mora biti manji ili jednak gornjoj granici intervala b. • Vektor vrijednosti iz intervala [a,b] se može dobiti i sa definisanim korakom c: >>x = a : c : b • Matrica se može dobiti i kao rezultat izvršavanja ugrađene naredbe ili funkcije (Matlab-ove unutrašnje funkcije).
Formiranje aritmetičkog reda – primjeri >> A=1:7 A = 1 2 3 4 5 6 7 >> B=0.2:5 B = 0.2000 1.2000 2.2000 3.2000 4.2000 >> C=0.2:0.1:0.6 C = 0.2000 0.3000 0.4000 0.5000 0.6000 >> D=9:-1:1 D = 9 8 7 6 5 4 3 2 1
Kreiranje podmatrice i proširivanje matrice • Navođenjem u uglastim zagradama brojeva vrsta i kolona, međusobno odvojenih zarezom, formira se podmatrica postojeće matrice sastavljena od elemenata koji se nalaze u presjeku navedenih vrsta i kolona. • Navođenjem samo operatora : uzimaju se sve vrste, ili kolone, zavisno od toga gdje je naveden. Elementi prve vrste, prve i druge kolone Elementi u koji pripadaju prvoj i drugoj vrsti i prvoj i drugoj koloni
Primjer: • Data je matrica A. Od zaokruženih djelova matrice formirati nove promjenljive b, c, d i e
Matrične operacije • – sabiranje + • – oduzimanje - • – množenje * • – dijeljenje (lijevo) / (X=B/A je rješenje sistema X*A=B) • – desno dijeljenje \ (X=A\B je rješenje sistema A*X=B) • – stepenovanje ^ • – transponovanje ’ • Operacije nad elementima matrice (tačka ispred operatora!!!): • – množenje .* • – dijeljenje (lijevo) ./ • – desno dijeljenje .\ • – stepenovanje .^ • Primjer: • >> a=[1 2; 3 4]; • >> b=a .\ 3 • b = • 3.0000 1.5000 • 1.0000 0.7500 >> b=a ./ 3 b = 0.3333 0.6667 1.0000 1.3333
Formiranje složenih matrica • Primjer: Bez direktnog unošenja elemenata, formirati matricu: • >> A=[2*eye(3),-3*ones(3,2);zeros(2,5)] • A = • 2 0 0 -3 -3 • 0 2 0 -3 -3 • 0 0 2 -3 -3 • 0 0 0 0 0 • 0 0 0 0 0
Matrične operacije – primjeri • Sabiranje, oduzimanje i množenje matrica • >> a=[1 2;3 4], b=[2 2;2 2] • a = • 1 2 • 3 4 • b = • 2 2 • 2 2 • >> c=a+b,d=a-b, e=a*b • c = • 3 4 • 5 6 • d = • -1 0 • 1 2 • e = matrično množenje dvije matrice • 6 6 • 14 14
Operacije nad poljem brojeva – primjeri • Množenje, dijeljenje i stepenovanje polja brojeva – element po element • >> a=[1 2;3 4], b=[2 2;2 2] • a = • 1 2 • 3 4 • b = • 2 2 • 2 2 • >> f=a.*b,g=a./b,h=a.^2 • f = • 2 4 • 6 8 • g = • 0.5000 1.0000 • 1.5000 2.0000 • h = • 1 4 • 9 16 Množenje polja brojeva Dijeljenje polja brojeva Stepenovanje polja brojeva
Matrice i funkcije • Parametri i povratne vrijednosti funkcije su matrice • Elementarne matrične funkcije: • – determinanta matrice det(x) • – inverzija inv(x) • – ... (help matfun) • Funkcija se poziva njenim imenom,tj. imenom M-datoteke • Ako funkcija ima parametre navode se u malim zagradama ( ) razdvojeni zarezom • Ako funkcija vraća vrijednosti, promjenljive koje ih prihvataju se navode u uglastim zagradama [ ] razdvojene zarezom • Redosled parametara je bitan • Primjer a=[1,2,3;4,5,6];[m,n]=size(a) • m = n= • 2 2 m-broj vrsta, n-broj kolona
Neke od najviše korišćenih funkcija • Korjenovanje: sqrt(x) • Srednja vrijednost : mean(x) (radi po kolonama) • Dimenzije matrice: [m,n]=size(x) • Determinanta matrice: det(x) • Inverzna matrica: inv(x) • Zaokruživanje ka najbližem cijelom broju: round(x) • Apsolutna vrijednost: abs(x) • Ostatak pri dijeljenju: rem(x,y) • Prirodni logaritam: log(x) • Logaritam osnove 10: log10(x), osnove 2: log2(x)
Rješavanje sistema jednačina u matlabu • Neka je zadat sistem jednačina x+2y-z=2 2x+z=5 x-y+z=8 • Ovaj sistem se može predstaviti matrično • I riješiti korišćenjem matričnog računa kao >> A=[1 2 -1;2 0 1;1 -1 1]; >> Y=[2;5;8]; >> X=inv(A)*Y X = 13 -16 -21
ZA VJEŽBU: Unijeti matricu A: Prekopirati matricu A u B Izmijeniti elemenat (2,2) matrice B u vrijednost 7.5 Iz matrice B napraviti vektor C dimenzija 1x3, gdje je C=[8 7.5 4] Napraviti matrice: Podijeliti elemente matrice Asaelementima matrice B Pomnožiti elemente matrice Asa odgovarajućim elementimamatrice B Iz matrice D izbaciti 1. vrstu i 3. kolonu Snimiti matrice D i F udatoteke matD i matF Kreirati matricu
RJEŠENJA: • A=[5 2 18; 8 7 4; 3 9 12] • B=A; • B(2,2)=7.5; • C=B(2,[1:3]) • D=[A; C]; E=[C; A]; F=[A C'] • A ./B • A.*B • D= D([2:4], [1:2]) • save matD D • save matF F • Q=A+sqrt(B)