Sunteți pe pagina 1din 43

1

2. STRUCTURI DE DATE
2.1. Secvena
2.2. Lista
2.3. Mulimea
2.4. Matricea
2.5. Vectorul
2
2.1. Secvena
Secvena este structura de date de tipul exprseq reprezentat printr-o
enumerare de expresii separate prin virgule, de forma:
expr
1
, expr
2
, expr
3
, ... , expr
n
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.
3
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.
4
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 sub-
stituia 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.
5
2.2. Lista
Lista reprezint structura de date, de tip list, care const dintr-o secven-
ordonat de expresii, de forma:
[ expr
1
, expr
2
, ..., expr
n
]
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.
6
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.
7
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.
8
Funcia nops
Funcia returneaz numrul elementelor unei liste date.
Sintaxa:
nops ( L )
Argument: L - lista.
9
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.
10
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 sim-
bolul <, 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) retur-
neaz true dac a precede pe b n ordinea dorit i false n caz contrar.
11
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:
{ expr
1
, expr
2
,..., expr
n
}
Mulimea fr nici un element se numete mulime vid i se noteaz
cu simbolul {}.
12
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 Notaia operatorului MAPLE
reuniunea union
intersecia intersect
diferena minus
apartenena unui element
la o mulime member
13
2.4. Matricea
O matrice A de dimensiune mn este un tablou cu m linii i n coloane
n care a
ij
, 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
14
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 argu-
mentele 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 ele-
mente 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).
15
Funcia entermatrix
Funcia creeaz o matrice n mod interactiv.
16
Sintaxa:
entermatrix ( M )
Argument: M - matrice.
Elementele matricei sunt inserate individual, n ordinea cresctoare a
liniilor.
Utilizarea funciei trebuie precedat de comanda with (linalg).
17
Matricea diagonal
Funcia diag
Sintaxa:
diag ( M1, M2,... )
Argumente: M1, M2,... - matrice ptratice.
18
Operaii cu matrice
Denumirea Notaia Notaia
operaiei matematic MAPLE
Adunarea A+B A+B
Scderea A - B A - B
nmulirea cu un scalar c A c * A
nmulirea A B A &*B
Ridicarea la putere A
n
A^n
Inversarea A
-1
A^(-1) sau 1/ A
Pentru afiarea rezultatelor operaiilor se folosete comanda evalm.
19
20
21
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.
22
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).
23
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.
24
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.
25
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.
26
Sintaxa delcols (M, i..j ) returneaz o submatrice a matricei M obinut
prin eliminarea (tergerea) coloanelor de indici i..j.
27
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 ex-
presia expr.
28
Funcia multiply
Funcia calculeaz produsul a dou sau mai multe matrice.
Sintaxa:
multiply ( A, B,... )
Argumente: A, B - matrice.
29
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).
30
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.
31
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.
32
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.
33
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 fie-
care 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.
34
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.
35
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.
36
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 ele-
mente 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).
37
Funcia convert
Realizeaz conversia unei liste ntr-un vector cu aceleai elemente.
Sintaxa:
convert ( L, vector )
Argument: L - list.
38
Un vector existent poate fi copiat ntr-un alt vector cu aceleai dimen-
siuni cu ajutorul comenzii copy.
39
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.
40
Funcia dotprod
Funcia calculeaz produsul scalar a doi vectori.
Sintaxa:
dotprod ( u, v )
Argumente: u, v - vectori.
Vectorii pot avea componente reale sau complexe.
41
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.
42
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 ele-
mentelor din linia l i coloanele c1..c2, respectiv, lista_c.
43
Funcia vectdim
Funcia determin dimensiunea unui vector.
Sintaxa:
vectdim ( v )
Argument: v - vector.