Sunteți pe pagina 1din 43

2.

STRUCTURI DE DATE
2.1. Secvena 2.2. Lista 2.3. Mulimea 2.4. Matricea 2.5. Vectorul

2.1. Secvena
Secvena este structura de date de tipul exprseq reprezentat printr-o enumerare de expresii separate prin virgule, de forma: expr1 , expr2 , expr3 , ... , exprn Secvena fr nici un element se numete secven vid i se indic prin simbolul NULL. Cu ajutorul secvenelor se pot construi alte dou structuri n MAPLE: listele i mulimile. Cel mai simplu mod de a creea o secven este descrierea sa direct. Secvenele generate pot fi concatenate.

Funcia seq Funcia creeaz o secven. Sintaxe:


seq ( y, i = m..n ) seq ( y, i = x ) Argumente: y - expresie; i

- nume neevaluat; m..n - numere; x - expresie. seq (f (i), i = 1..n) genereaz secvena f(1),..., f(n). seq (f (i), i = m..n) gene-

reaz secvena f(m), f(m+1),..., f(n), fr ca m i n s fie neaprat ntregi. seq (f (i), i = x ) genereaz o secven prin aplicarea lui f fiecrui operand a lui x , de obicei x fiind o list sau o mulime.

Operatorul $ Acesta reprezint un operator de formare a unei secvene de expresii. Sintaxe:


y $ i = m..n y $ n $ m..n Parametrii: y - expresie; i - nume neevaluat; m..n

- expresii.

Apelul y $ i = m..n returneaz o secven de expresii obinute prin substituia n expresia y a valorilor lui i = m, m+1,..., n. Dac m > n, atunci rezult o secven nul. Apelul $ m..n este echivalent cu: i $ i = m..n. Apelul y $ n are acelai efect cu: y $ i =1..n.

2.2. Lista
Lista reprezint structura de date, de tip list, care const dintr-o secven ordonat de expresii, de forma: [ expr1 , expr2 , ..., exprn ] Elementele unei liste sunt incluse ntre paranteze drepte [ ] i ele i pstreaz ordinea impus la generarea listei. Lista fr nici un element se numete list vid i este indicat prin [ ].

Un alt mod de generare a unei liste este cel pornind de la o secven.


5

Funcia member Funcia testeaz apartenena unui element la o list. Sintaxa:


member ( x, L, 'k' ) Argument: x - expresie; L - list; 'k' - (op.) nume neevaluat .

Se returneaz true n cazul n care x aparine listei i false n caz contrar.

Operatorul [ ] Selecteaz anumite elemente specificate dintr-o list dat. Sintaxe:


L[i] L [ j..k ] L [ NULL ] Parametrii: L - list; i, j, k

- numere ntregi pozitive.

Comanda L[i ] returneaz elementul de pe poziia i din lista L. Comanda L[ j..k] returneaz secvena de elemente de la poziia j pn la poziia k din L. Comanda L[NULL] returneaz secvena tuturor elementelor din lista L. Funcia op Funcia selecteaz anumite elemente specificate dintr-o list dat. Sintaxe:
op ( i, L ) op ( j..k, L ) op ( L ) Argumente: L - list; i, j, k

- numere ntregi nenegative.

Funcia nops Funcia returneaz numrul elementelor unei liste date. Sintaxa:
nops ( L ) Argument: L - lista.

Funcia select Funcia selecteaz anumite elemente ale unei liste date. Sintaxa:
select ( p, L ) Argumente: p - procedur

de evaluare boolean; L - lista.

Rezultatul apelrii funciei este crearea unei noi liste format din acele elemente ale listei L ce satisfac procedura de evaluare boolean p.

Funcia sort Funcia sorteaz elementele unei liste. Sintaxe:


sort ( L ) sort ( L, F ) Argumente: L - lista; F - (op.)

procedur boolean cu dou argumente.

Funcia sorteaz elementele listei L n ordine cresctoare. Argumentul F este utilizat pentru a defini ordinea de sortare a listei. Dac F este simbolul < , atunci se execut sortarea n ordinea numeric. Dac F este lexorder , atunci sortarea se efectueaz n ordinea lexicografic. F mai poate fi o procedur boolean cu dou argumente. Astfel, F(a, b) returneaz true dac a precede pe b n ordinea dorit i false n caz contrar.

10

2.3. Mulimea
Mulimea este structura de date, de tip set, format dintr-o colecie neordonat de expresii. Elementele sale sunt incluse ntre acolade { } i fiecare element apare o singur dat. Forma general a unei mulimi este: { expr1 , expr2 ,..., exprn } Mulimea fr nici un element se numete mulime vid i se noteaz cu simbolul { }.

11

Operaia de selectare a anumitor elemente dintr-o mulime se poate realiza cu ajutorul operatorului [ ] sau cu funcia predefinit op. Numrul elementelor unei mulimi este indicat de funcia predefinit nops, acestea avnd sintaxele identice cu cele descrise la liste. Operaia matematic reuniunea intersecia diferena apartenena unui element la o mulime Notaia operatorului MAPLE
union intersect minus member

12

2.4. Matricea
O matrice A de dimensiune mn este un tablou cu m linii i n coloane n care aij , i = 1, 2,..., m, j = 1, 2,..., n sunt elementele matricei. Funcia matrix Funcia creeaz o matrice sub forma unei structuri de tip array cu dou dimensiuni, cu indici pornind de la 1. Sintaxe:
matrix ( Ll ) matrix ( m, n ) matrix ( m, n, Ll ) matrix ( m, n, f ) matrix ( m, n, L ) Argumente: Ll - list de liste/vectori de elemente; m, n - ntregi pozitivi (dimensiunile liniilor, respectiv, coloanelor); f - funcie de generare a elementelor; L - list/vector de elemente de tip algebric.

Sintaxa matrix (m, n, Ll ) creeaz o matrice cu m linii i n coloane, n care 13

prima linie este definit de lista Ll [1], a doua linie de lista Ll [2] .a.m.d. Sintaxa matrix (Ll) este echivalent cu matrix (m, n, Ll ) n care argumentele sunt : m = nops (Ll ), n = max (seq (nops (Ll [i]), i =1,...,m)). Sintaxa matrix (m, n) creeaz o matrice cu m linii i n coloane, cu elemente nespecificate. Sintaxa matrix (m, n, f) creeaz o matrice cu m linii i n coloane, ale crei elemente sunt generate de funcia f (eventual constant). Este echivalent cu sintaxa: matrix ([[f (1,1),..., f (1,n)],..., [f (m,1),..., f (m,n)]]). Sintaxa matrix (m, n, L) genereaz o matrice ale crei elemente sunt preluate, linie cu linie, din lista L. Utilizarea funciei matrix trebuie precedat de comanda with (linalg).

14

Funcia entermatrix Funcia creeaz o matrice n mod interactiv.


15

Sintaxa:
entermatrix ( M ) Argument: M - matrice.

Elementele matricei sunt inserate individual, n ordinea cresctoare a liniilor. Utilizarea funciei trebuie precedat de comanda with (linalg).

16

Matricea diagonal Funcia diag Sintaxa:


diag ( M1, M2,... ) Argumente: M1, M2,... - matrice

ptratice.

17

Operaii cu matrice Denumirea operaiei Adunarea Scderea nmulirea cu un scalar nmulirea Ridicarea la putere Inversarea Notaia matematic A +B A -B cA AB An A-1 Notaia MAPLE A +B A-B c*A A &*B A^n A^(-1) sau 1/ A

Pentru afiarea rezultatelor operaiilor se folosete comanda evalm.

18

19

20

Funcia add Funcia calculeaz suma a dou matrice. Sintaxe:


add ( A, B ) add ( A, B, c1, c2 ) Argumente: A, B - matrice; c1, c2

- (op.) scalari.

Dac sunt specificate argumentele c1, c2, atunci funcia add calculeaz matricea sum c1A + c2B.

21

Funciile addcol i addrow Funciile efectueaz transformri liniare asupra unei matrice. Sintaxe:
addcol ( M, c1, c2, k ) addrow ( M, l1, l2, k ) Argumente: M - matrice; c1, c2, l1, l2

- ntregi pozitivi; k - expresie scalar Sintaxa addcol (M, c1, c2, k ) returneaz o matrice n care coloana c2 a matricei M este nlocuit prin (k coloana c1 + coloana c2).

22

Funciile augment i concat Funciile efectueaz operaia de unificare pe orizontal (prin alturare) a dou sau mai multe matrice cu acelai numr de linii. Sintaxe:
augment ( A, B, ... ) concat ( A, B,... ) Argumente: A, B - matrice.

Rezult o matrice unic extins, cu acelai numr de linii, dar cu un numr de coloane egal cu suma numerelor coloanelor matricelor iniiale.

23

Funcia col Funcia extrage una sau mai multe coloane specificate dintr-o matrice. Sintaxe:
col ( M, i ) col ( M, i..k ) Argumente: M - matrice; i, k

- ntregi pozitivi.

Sintaxa col (M, i ) extrage coloana i din matricea M. Sintaxa col (M, i..k ) extrage secvena de coloane de indici i..k. Rezultatele sunt returnate sub form vectorial.

24

Funcia coldim Funcia determin numrul coloanelor unei matrice. Sintaxa:


coldim ( M ) Argument: M - matrice.

Funciile delcols i delrows Funciile creeaz o submatrice a unei matrice date prin eliminarea anumitor coloane, respectiv, linii ale matricei. Sintaxe:
delcols ( M, i..j ) delrows ( M, i..j ) Argumente: M - matrice; i, j

- ntregi nenegativi.

25

Sintaxa delcols (M, i..j ) returneaz o submatrice a matricei M obinut prin eliminarea (tergerea) coloanelor de indici i..j.

26

Funciile mulcol i mulrow Funcia mulcol creeaz o nou matrice prin multiplicarea unei coloane specificate cu o expresie. Sintaxe:
mulcol ( M, c, expr ) mulrow ( M, l, expr ) Argumente: M - matrice; c, l

- ntregi pozitivi; expr - expresie scalar.

Sintaxa mulcol (M, c, expr ) multiplic coloana c din matricea M cu expresia expr.

27

Funcia multiply Funcia calculeaz produsul a dou sau mai multe matrice. Sintaxa:
multiply ( A, B,... ) Argumente: A, B - matrice.

28

Funcia randmatrix Funcia creeaz o matrice cu elemente aleatoare. Sintaxa:


randmatrix ( m, n, opt ) Argumente: m, n - ntregi pozitivi; opt - (op.) nume sau ecuaii.

Matricea aleatoare are dimensiunile m n. Argumentul opt poate fi un nume predefinit - symmetric, antisymmetric, diagonal, identity, sparse - sau o ecuaie, de forma entries = f, n care funcia f este cea utilizat pentru generarea elementelor. Implicit, generatorul aleator creeaz numere n intervalul (-99, 99).

29

Funcia row Funcia extrage una sau mai multe linii specificate dintr-o matrice. Sintaxe:
row ( M, i ) row ( M, j..k ) Argumente: M - matrice; i, j, k

- ntregi pozitivi.

Sintaxa row (M, i ) extrage linia i din matricea dat M i returneaz rezultatul sub forma unui vector. Sintaxa row (M, j..k ) extrage secvena de linii de indici j..k din matricea M i returneaz rezultatul sub forma unei secvene de vectori.

30

Funcia rowdim Funcia determin numrul liniilor unei matrice. Sintaxa:


rowdim ( M ) Argument: M - matrice.

Funcia scalarmul Funcia efectueaz multiplicarea unei matrice cu o expresie scalar. Sintaxa:
scalarmul ( M, expr ) Argumente: M - matrice; expr

- expresie scalar.

31

Funcia stack Funcia creeaz o matrice nou prin alturarea (unificarea), pe vertical, a dou sau mai multe matrice sau vectori. Sintaxa:
stack ( A, B,... ) Argumente: A, B - matrice / vectori.

32

Funcia submatrix Funcia extrage o submatrice specificat dintr-o matrice dat. Sintaxe:
submatrix ( M, l1..l2, c1..c2 ) submatrix ( M, lista_l, lista_c ) Argumente: M - matrice; l1, l2, c1, c2

- ntregi pozitivi; lista_l, lista_c - lis-

te de ntregi pozitivi. Sintaxa submatrix ( M, l1..l2, c1..c2 ) returneaz o submatrice a matricei M, din care sunt selectate liniile de indici l1..l2 i coloanele de indici c1..c2. Sintaxa submatrix ( M, lista_l, lista_c ) returneaz o submatrice a matricei M, al crei element oarecare [i, j] este M [ lista_l [i], lista_c [j] ], pentru fiecare i din lista_l i fiecare j din lista_c. Submatricea rezultat conine un numr de linii (coloane) egal cu numrul elementelor din lista_l (lista_c). ntruct n cele dou liste se pot repeta elemente, exist posibilitatea ca submatricea rezultat s conin un numr mai mare de linii (coloane) dect cea din care provine. 33

Funciile swapcol i swaprow Funcile interschimb dou coloane, respectiv, dou linii ale unei matrice. Sintaxe:
swapcol ( M, c1, c2 ) swaprow ( M, l1, l2 ) Argumente: M - matrice; c1, c2, l1, l2

- ntregi pozitivi.

34

Sintaxa swapcol (M, c1, c2 ) interschimb coloanele c1 i c2 din M. Sintaxa swaprow ( M, l1, l2 ) interschimb liniile l1 i l2 din matricea M.

35

2.5. Vectorul
n MAPLE vectorul este o structur unidimensional, cu indexul pornind de la valoarea 1. Funcia vector Sintaxe:
vector ( L ) vector ( n, L ) vector ( n ) vector ( n, f ) Argumente: L -list de elemente de tip algebric; n - ntreg nenegativ;
f

- funcie de generare a elementelor vectorului.

Sintaxele vector (L) i vector (n, L) genereaz un vector de lungime n cu elemente date. Sintaxa vector (n) produce un vector de lungime n cu elemente nespecificate. Sintaxa vector (n, f) genereaz un vector de lungime n ale crui elemente sunt date de valorile funciei indexabile f : f(1),..., f(n). Utilizarea funciei vector trebuie precedat de comanda with (linalg). 36

Funcia convert Realizeaz conversia unei liste ntr-un vector cu aceleai elemente. Sintaxa:
convert ( L, vector ) Argument: L - list.
37

Un vector existent poate fi copiat ntr-un alt vector cu aceleai dimensiuni cu ajutorul comenzii copy.

38

Operaii cu vectori Funcia crossprod Funcia calculeaz produsul vectorial a doi vectori cu trei componente. Sintaxa:
crossprod ( u, v ) Argumente: u, v - vectori.

Rezultatul este un vector cu trei elemente.

39

Funcia dotprod Funcia calculeaz produsul scalar a doi vectori. Sintaxa:


dotprod ( u, v ) Argumente: u, v - vectori.

Vectorii pot avea componente reale sau complexe.

40

Funcia randvector Funcia creeaz un vector cu componente aleatoare. Sintaxa:


randvector ( n, entries = p ) Argumente: n - ntreg pozitiv; entries = p

- (op.) n care p este procedur.

Se genereaz un vector de dimensiune n. n mod implicit, generatorul aleator creeaz numere n intervalul (-99, 99).

Funcia subvector Funcia extrage un vector specificat dintr-o matrice dat.


41

Sintaxe:
subvector ( M, l1..l2, c ) subvector ( M, lista_l, c ) subvector ( M, l, c1..c2 ) subvector ( M, l, lista_c ) Argumente: M - matrice; c, c1, c2, l, l1, l2 - ntregi pozitivi; lista_l, lista_c - liste de numere ntregi pozitive.

Primele dou sintaxe returneaz un vector extras din matricea M prin selectarea elementelor din coloana c i liniile l1..l2, respectiv, lista_l. Celelalte dou sintaxe returneaz un vector extras prin selectarea elementelor din linia l i coloanele c1..c2, respectiv, lista_c.

42

Funcia vectdim Funcia determin dimensiunea unui vector. Sintaxa:


vectdim ( v ) Argument: v - vector.

43

S-ar putea să vă placă și