Matlab
Matrici, vectori si polinoameMatrici, vectori si polinoame Pentru a lucra usor si bine cu limbajul MATLAB trebuie in primul rand sa se invete manipularea matricilor. In MATLAB, o matrice este un tablou dreptunghiular de numere. Scalarii de exemplu sunt matrici 1 x 1, iar matricile cu o singura linie sau coloana sunt de fapt vectori. Introducerea matricilor Matricile se pot introduce in mai multe moduri.
Vom introduce matricea lui Dürer mai intai ca o lista de elemente. Trebuie respectate cateva conventii simple: q Elementele unei linii sunt separate prin virgule sau spatii. q Sfarsitul unei linii se marcheaza cu punct si virgula. q Lista de elemente care formeaza matricea se delimiteaza cu paranteze drepte: Pentru introducerea matricii lui Dürer tastam: » A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1] MATLAB-ul va afisa matricea: A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 O
data introdusa, matricea este memorata in workspace si
poate fi apelata simplu, ca Sa vedem acum: de ce este magica? sum, transpose, diag Caracterul magic deriva din faptul ca prin efectuarea unor operatii asupra elementelor matrici rezulta numere interesante si surprinzatoare. Daca de exemplu insumam elementele pe orice linie sau coloana sau de pe cele doua diagonale, vom obtine acelasi numar. Sa verificam acest lucru cu MATLAB-ul. Suma elementelor de pe cele 4 coloane se calculeaza rapid cu: » sum(A)ans = 34 34 34 34 Pentru calcularea sumelor pe linii, efectuam intai transpunerea matricii si apoi aplica din nou comanda sum. Transpusa se calculeaza cu: » A'ans = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1 si apoi » sum(A')'ans = 34 34 34 34
Suma
elementelor de pe diagonala se calculeaza cu tot cu functia sum,
dar dupa ce in prealabil vom sorta cu functia ans = 16 10 7 1 » sum(diag(A)) ans = 34 Un anume
element al matricii, de exemplu elementul din linia Prin urmare o alta cale (mai putin rapida) de a calcula suma de pe patra coloana de exemplu este urmatoarea: » A(1,4) + A(2,4) + A(3,4) + A(4,4) ans = 34 Daca specificam un element care nu exista in matrice, primim un mesaj de eroare: » t = A(4,5) Index exceeds matrix dimensions. Operatorul : Operatorul este un vector linie ans = 1 2 3 4 5 6 7 8 9 10Alte exemple: ans = 100 93 86 79 72 65 58 51» 0:pi/4:pi ans = 0 0.7854 1.5708 2.3562 3.1416Expresia A(1:k,j)Se refera la primele Daca este utilizat in paranteze operatorul : atunci inseamna ca ne referim la toate elementele unei linii sau coloane » sum(A(:,3)) calculeaza suma elementelor din coloana a treia a
lui 34 O alta proprietate interesanta a patratului magic este ca suma magica 34 este obtinuta si prin insumarea elementelor matricii si prin impartirea la dimensiunea matricii (4): » sum(1:16)/4 ans = 34 Observatie: suma magica pentru orice patrat magic n x n este (n3 + n)/2 (se poate calcula cu ajutorul Symbolic Math Toolbox). Functia magic MATLAB-ul are o functie built-in care creeaza patrate magice de orice dimensiune (functie pe care deja am utilizat-o): » B = magic(4) B = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 Aceasta matrice este aproape
identica cu matricea lui Dürer singura diferenta fiind ca
cele doua coloane din mijloc sunt schimbate intre ele. Pentru
obtinerea din » A = B(:,[1 3 2 4]) A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 Polinoame Polinoamele sunt descrise in MATLAB prin vectori linie ale caror elemente sunt de fapt coeficientii polinoamelor in ordinea descrescatoare a puterilor. Exemplu: polinomul p(x)=x3+5x+6 este reprezentat in MATLAB astfel: p = [1 0 5 6] Un polinom poate fi evaluat pentru o valoare a lui x cu ajutorul functiei polyval: » polyval(p,1) ans= 12 In exemplul de mai sus este evaluat polinomul p in punctul x =1. Se pot afla cu usurinta radacinile polinomului folosind functia roots: » r=roots(p) r = 0.5000 + 2.3979i 0.5000 - 2.3979i -1.0000 Exista numeroase alte functii si comenzi care se ocupa cu operatii asupra polinoamelor, functii care vor fi abordate intr-un capitol special. Dintre acestea amintim comanda care permite inmultirea a doua polinoame, si anume conv: » p1=[1 3 5] p1 = 1 3 5 » p2=[2 0 1 0 5] p2 = 2 0 1 0 5 » p3=conv(p1,p2) p3 = 2 6 11 3 10 15 25
|