Sei sulla pagina 1di 10

2.

Algebra lineare, vettori, matrici


Dichiarazione di vettori: b =[1, 2, 3, 4] b=[1 2 3 4] b=[1; 2; 3; 4] vettore colonna b=[1:10] (=(1 2 3 10)) b=[1:10]; b=[1:2:10] (=(1 3 5 7 9)) b=[10:-3:0] (=(10 7 4 1)) Coniugata di b: b; Trasposta di b: b. Attenzione: bisogna sempre sommare vettori della stessa dimensione

Operazioni su vettori
a*b = prodotto riga-colonna (per vettori riga: a*b) Operazione elemento per elemento: Esempio: a=[1 2 3], b=[1 2 3] a.*b=(1 4 9) a./b=(1 1 1) a.^b=(1 4 27) Luso di questa operazione (.) molto frequente, perch consente di valutare una funzione su un insieme di punti. Esempio: valutare y=3 x^2+1 per x=1,2,,10: >> x=1:10; >> y=3*x.^2+1 y = 4 13 28 49 301

Matrici ed elementi
m=[1 2;3 4] Elementi del vettore b: b(5) = 5a componente del vettore b b(1:3) = componenti 1a, 2a, 3a b([1:2,6,9:10]) = componenti 1, 2, 6, 9, 10 Elementi della matrice m: m(2,3) = elemento 2a riga, 3a colonna m(1,:) = 1a riga m(:,3) = 3a colonna m([1:2,4],3) = pi righe e 3a colonna m(2:4,1:2:5) = pi righe e pi colonne m(:) = tutti gli elementi in colonna

Matrici a blocchi
B=[1 2;3 4], C=[5 6;7 8] A=[B, C] A= 1 2 5 6 3478 12 34 56 78

A=[B; C]

A=

Operazioni su matrici
A + B oppure A B tra matrici con stesso numero di righe e di colonne A * B tra matrici (m x n) * (n x p) = m x p inv(A) = inversa di A pinv(A) = pseudo-inversa di A = X tale che A*X*A=A e X*A*X=X A / B = A * inv(B) (per matrici non quadrate si usa pinv) A \ B = inv(A)*B . = operazioni elemento per elemento A(1,:) = [] elimina la 1a riga

Funzioni intrinseche per vettori e matrici


eye(m,n) = matrice identit di ordine mxn ones(m,n) = matrice mxn con elementi 1 zeros(m,n) = matrice mxn con elementi 0 rand(m,n) = matrice mxn con elementi pseudocasuali eye(n), ones(n), zeros(n), rand(n) = matrici quadrate diag(v) = matrice diagonale con elementi v diag(v,i)=matrice con diagonale i-esima data da v size(M) = dimensioni mxn di M size(v) = dimensione del vettore v length(v) = lunghezza del vettore v

diag(X) pu essere usato anche con una matrice X come argomento: ha come output la diagonale della matrice sotto forma di vettore diag(X,n) = n-esima diagonale della matrice, sempre sotto forma di vettore max(X), min(X) = danno in output un vettore con componente v(i) uguale al massimo dei numeri nella colonna i sum(X), prod(X) = danno in output un vettore con somma e prodotto degli elementi di ogni singola colonna hilb(n) = crea una matrice nxn di Hilbert (per una matrice quadrata) con elementi H(i,j)=1/(i+j-1).

tril(M,i) = matrice triangolare inferiore estratta da M a partire dalla (i-1)-esima diagonale triu(M,i) = matrice triangolare superiore estratta da M a partire dalla (i-1)-esima diagonale Esempio: M=[1 2 4; 4 5 6; 7 8 9]
tril(M,1)=

120 456 789

triu(M,-1)=

124 456 089

max(v), min(v) = max/min delle componenti di v [a,i] = max(v), [a,i] = min(v) d il max/min valore a delle componenti di v e relativo indice i sum(v) = somma degli elementi di v prod(v) = prodotto degli elementi di v

sort(M) = ordina gli elementi delle colonne di M in ordine crescente det(M) = determinante di M rank(M) = rango di M orth(M) = base ortonormale dellimmagine di M, cio dellinsieme di vettori y con y=Mx al variare di x, cio lo spazio generato dalle colonne di M eig(M) = autovalori di M [V,D] = eig(M) d gli autovalori e autovettori di M con V-1MV=D, dove V la matrice le cui colonne sono gli autovettori di M e D la matrice diagonale degli autovalori di M trace(M) = traccia di M inv(M) = inversa di M

M\v = risolve il problema lineare Mx=v con il metodo di eliminazione di Gauss (usare M\v se v e un vettore riga) n norm(v) = (i=1 vi2)0.5 = ||v||2 norm(v,1) = n i=1 |vi| = ||v||1 e analogamente per norm(v,j) n |v | = ||v|| norm(v,inf) = maxi=1 i norm(M) = ||M||2 =((MTM))0.5, dove se 1(X),, n(X)sono gli autovalori della matrice X, (X) indica il raggio spettrale e (X)= max_i=1^n || i(X) ||
norm(M,1) = ||M||1 = maxi=1 j=1 |mij| e analogamente per norm(M,1) norm(v,'fro') = norma di Frobenius = sqrt(sum(diag(v'*v)))
n