La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Lezione 3 Vettori e Matrici.

Presentazioni simili


Presentazione sul tema: "Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Lezione 3 Vettori e Matrici."— Transcript della presentazione:

1 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Lezione 3 Vettori e Matrici

2 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Matrici: introduzione matematica Cenni di Algebra Matriciale

3 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 3 Algebra Matriciale Lalgebra matriciale è una branca della matematica che si occupa delle proprietà delle matrici è definisce le seguenti operazioni fra matrici: Somma Sottrazione Prodotto Divisione (solo per matrici quadrate) Trasposizione Con il termine matrice si intendono in questo caso anche i vettori

4 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 4 Definizione di Matrice Tutte le variabili numeriche in MATLAB vengono trattate come matrici, ossia come tabelle bidimensionali di numeri, organizzate in righe e colonne: n x m n righem colonne A è una matrice di ordine (n x m) in quanto è formata da n righe ed m colonne Ogni elemento a i,j della matrice A è contraddistinto da un indice di riga (i) e di colonna (j) che ne individuano la posizione allinterno della matrice stessa.

5 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 5 Simbolismo e Ordine della Matrice Una Matrice viene rappresentata con una lettere maiuscola in grassetto o con una lettera minuscola fra parentesi tonde: Indice di colonna Indice di riga Elemento generico 1 i n = numero di righe ordine della matrice (n x m) 1 j m = numero di colonne LOrdine di una Matrice è dato dal numero delle sue righe e delle sue colonne

6 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 6 Matrice Rettangolari e Quadrate 1 i n = numero di righe 1 j m = numero di colonne n = mn m Matrici quadrate Matrici rettangolari

7 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 7 Vettori Gli scalari altro non sono che matrici formate da una solo riga ed una sola colonna Vengono chiamate vettori quelle matrici che hanno o numero di righe o di colonne unitario: Vettore Colonna Vettore Riga

8 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 8 Matrice Reale e Matrice Complessa Una matrice A è detta Matrice Reale se tutti i suoi elementi sono numeri reali: Una matrice A è detta Matrice Complessa se almeno uno dei suoi elementi è un numero complesso: Numero complesso: z = a + i b Parte reale Parte Immaginaria A Matrice reale A Matrice complessa a i,j R a i,j C Unità immaginaria

9 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 9 Matrice Complessa Coniugata Data una matrice complessa A, è detta Matrice Complessa Coniugata di A e denotata con il simbolo Ã, la matrice che ha per elementi i complessi coniugati degli elementi di A: Numero Complesso Complesso Coniugato Corollario Corollario: la matrice A è Reale se e solo se è uguale alla sua Complessa coniugata Il complesso coniugato di un numero complesso si ottiene cambiando di segno alla parte immaginaria

10 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 10 Matrici Trasposte Data la matrice A la sua trasposta A' si ottiene scambiando le righe con le colonne:

11 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 11 Matrici Rettangolari Trasposte Loperazione di trasposizione di una matrice rettangolare inverte lordine della matrice: Loperazione di trasposizione di un vettore colonna restituisce un vettore riga e viceversa:

12 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 12 Matrici Quadrate Trasposte Loperazione di trasposizione di una matrice quadrata mantiene fissi gli elementi sulla diagonale principale e scambia quelli fuori diagonale Gli elementi sulla diagonale principale sono quelli che hanno uguali lindice di riga e di colonna a i,j i=j elemento sulla diagonale i j elemento fuori diagonale

13 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 13 Prodotto Matrice Scalare Data una matrice A di ordine (n x m) ed un numero c, reale o complesso, il prodotto: B = c A è una matrice di ordine (n x m) i cui elementi sono i corrispondenti elementi di A moltiplicati per il numero c b i,j = c · a i,j

14 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 14 Esempi: c = 5

15 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 15 Somma Algebrica di Matrici c i,j = b i,j ± a i,j C = B ± A Date due matrici A e B di uguale ordine (n x m), resta definita la matrice C, di ordine (n x m), ottenuta dalla somma algebrica delle matrici date: e i cui elementi sono dati dalla somma algebrica elemento a elemento degli elementi corrispondenti delle matrici A e B. Due Matrici A e B possono essere sommate o sottratte solo se hanno lo stesso ordine.

16 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 16 Esempi: Somma Matrici Somma Vettori riga

17 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 17 Prodotto di Matrici C (nxm) = A (nxs) x B (sxm) Il prodotto di una matrice A, di ordine (n x s), per la matrice B di ordine (s x m), è la matrice C, di ordine (n x m): il cui elemento generico c i,j è dato dalla somma dei prodotti degli elementi della riga i-esima della matrice A per i corrispondenti elementi della j-esima colonna della matrice B. Due Matrici A e B possono essere moltiplicate fra loro solo se il numero di colonne di A è uguale al numero di righe di B.

18 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 18 Esempi Anche se esiste C = A x B non è detto che sia definito il prodotto: B x A !

19 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 19 Prodotti esempi Prodotto matrice x vettore Prodotto vettore riga x vettore colonna Prodotto vettore colonna x vettore riga

20 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 20 Divisione Date due Matrici A=(a i,j ) e B=(b i,j ) viene definita loperazione di divisione della matrice A per B come il prodotto della matrice A per linversa della matrice B: A / B = A x B -1 dove B -1 è la matrice inversa della matrice B e resta definita solo per matrici quadrate, non singolari, ossia a determinante non nullo. Per cui matrici rettangolari e vettori non possono essere i divisori in un operazione di divisione fra matrici

21 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Vettori in Matlab Creazione Operazioni con Scalari Operazioni fra Vettori

22 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 22 Creazione di Vettori Per creare un vettore in MatLab è necessario semplicemente definirlo, ossia porlo sulla sinistra di unequazione di assegnazione: r_x =... dove a destra dovrà comparire unespressione che possa essere valutata come appunto un vettore. Esistono vari modi per definire lespressione di destra: 1.Per valori 2.Usando le funzioni di libreria 3.Usando la notazione colon : NOTA BENE: Utilizzeremo la convenzione di far precedere i nomi dei vettori dal prefisso r_ se vettori riga e c_ se colonna ones, zeros, linspace, logspace, rand

23 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 23 Per Valori Un vettore riga può essere creato inserendo in sequenza i valori dei suoi elementi separati da spazi o da virgole e compresi fra parentesi quadre: >> r_x = [ ] r_x = >> r_x = [1,2,3,4,5] r_x = >> c_x = [1; 2; 3] c_x = Un vettore colonna può essere creato inserendo in sequenza i valori dei suoi elementi separati da punti e virgola e compresi fra parentesi quadre: Vettore colonna Vettore riga

24 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 24 Funzione ones >> c_y = ones(3,1) c_y = 1 La funzione ones permette di creare un vettore riga o colonna delle dimensioni volute i cui elementi sono tutti unitari >> r_x = ones(1,5) r_x = m_array = ones(n,m) Numero righe La funzione ones(n,m) restituisce una matrice di ordine (nxm) con valori tutti uguali ad uno Numero colonne Nome Variabile Vettore riga Vettore colonna

25 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 25 Funzione zeros >> c_y = zeros(3,1) c_y = 0 La funzione zeros permette di creare un vettore riga o colonna delle dimensioni volute i cui elementi sono tutti nulli >> r_x = zeros(1,5) r_x = m_array = zeros( n, m ) Numero righe La funzione zeros(n,m) restituisce una matrice di ordine (nxm) con valori tutti uguali a zero Numero colonne Nome Variabile Vettore riga Vettore colonna 5 colonne 3 righe

26 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 26 Funzione linspace >> r_y = linspace(2.1, 4, 5) r_y = r_array = linspace( x1, x2, n ) Valore iniziale La funzione linspace (x1,x2, n) restituisce vettore riga di ordine (1xn) con valori linearmente equispaziati fra il valore iniziale x1 ed il valore finale x2: Valore finaleNome Vettore Numero elementi del vettore Vettore di 5 elementi

27 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 27 Funzione logspace r_array=logspace( x1, x2, n ) Esponente valore iniziale La funzione logspace (x1,x2, n) restituisce vettore riga di ordine (1xn) con valori logaritmicamente equispaziati fra il valore iniziale 10 x1 ed il valore finale 10 x2 : Esponente valore finale Nome Vettore Numero elementi del vettore >> r_z = logspace(1,4,4) r_z =

28 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 28 Funzione rand >> c_y = rand(3,1) c_y = La funzione rand permette di creare un vettore riga o colonna delle dimensioni volute i cui elementi siano casualmente distribuiti fra 0 e 1 >> r_x = rand(1,4) r_x = m_matrice = rand( n, m ) Numero righe La funzione rand(n,m) restituisce una matrice di ordine (nxm) con valori casuali nellintervallo ]0, 1[. Numero colonne Nome Variabile Vettore riga Vettore colonna

29 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 29 Notazione colon : E una notazione molto compatta per creare un vettore riga definendo il valore iniziale, lincremento fra elementi successi ed il valore finale: >> r_x = 1.5 : 3.5 r_x = >> r_x = 1 : 0.6 : 3 r_x = r_array = x1: xpasso : x2 Valore iniziale Valore finale Nome Vettore riga Incremento fra elementi successi Se il passo è omesso viene assunto 1 automaticamente Non è detto che il valore finale sia x2

30 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 30 Funzioni e Vettori Se ad una funzione viene passato come argomento una variabile vettore la funzione restituisce come valore un vettore di uguale dimensione i cui valori sono >> r_x = 0:0.1: 0.5; >> r_y = cos(r_x) r_y = r_y =

31 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 31 Funzione plot (r_X, r_Y) La funzione plot è una funzione che prende come argomenti due vettori entrambi riga o colonna di uguale lunghezza e restituisce come output il grafico del primo vettore (variabile indipendente asse X orizzontale) contro il secondo vettore (variabile dipendente asse Y verticale) >> r_x = 1:0.1: 2; >> r_y = exp(r_x); >> plot (r_x, r_y)

32 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 32 Verifica Si crei un script Matlab che crei il grafico della funzione seno, coseno nellintervallo gradi NB.: per poter far apparire più curve sullo stesso grafico si devono semplicemente passare alla funzione plot tutte le relative coppie di vettori di coordinate X, Y: plot (r_x1, r_y1, r_x2, r_y2, r_x3, r_y3…)

33 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Matrici in Matlab Creazione

34 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 34 Creazione di Matrici Le matrici possono essere create analogamente ai vettori 1.Per valori 2.Usando le funzioni di libreria 3.Creazione di Matrici a blocchi 4.Matrici caricate da file

35 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 35 Per valori Una matrice può essere creata inserendo in sequenza i valori dei suoi elementi separati da spazi o da virgole e compresi fra parentesi quadre usando come separatore di riga il punto e virgole o andando a capo >> m_A = [ 1 2 3; 4 5 6] m_A = >> m_A = [ 1, 2, 3; 4, 5, 6] m_A = >> m_A = [ 1, 2, 3 4, 5, 6] m_A = N.B.: i tre modi proposti sono assolutamente equivalenti fra loro

36 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 36 Funzioni: zeros e ones ones(n) matrice unitaria restituisce una matrice quadrata di ordine (nxn) in cui tutti gli elementi sono uguali ad uno: matrice unitaria. ones(n, m) matrice unitaria una matrice rettangolare di ordine (nxn) in cui tutti gli elementi sono uguali ad uno: matrice unitaria >> m_A = ones(3) m_A = >> m_A = ones(2,3) m_A =

37 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 37 Funzioni: zeros zeros(n) restituisce una matrice quadrata di ordine (nxn) in cui tutti gli elementi sono nulli. zeros(n,m) una matrice rettangolare di ordine (nxm) in cui tutti gli elementi sono uguali a zero >> m_A = zeros(2,3) m_A = >> m_A = zeros(3) m_A = 0 0 0

38 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 38 Funzioni: magic e eye magic(n) restituisce una matrice quadrata di ordine (nxn) in cui righe, colonne e diagonali hanno la somma degli elementi uguale. >> m_A = magic(3) m_A = eye(n) restituisce la matrice identità di ordine (nxn). >> m_A = eye(3) m_A = >> m_A = eye(2,3) m_A = eye(n,m) restituisce la matrice di ordine (nxm) che ha tutti valori nulli tranne quelli con indici fra loro uguali che sono unitari: a i,i =1 Solo per matrici quadrate

39 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 39 Funzioni: rand e randn rand(n, m) restituisce una matrice rettangolare di ordine (nxm) i cui elementi hanno valori random uniformemente distribuiti fra 0 e 1. >> A = rand(2, 3) A = >> A = randn(3,2) A = randn(n, m) restituisce una matrice rettangolare di ordine (nxm) i cui elementi valori distribuiti normalmente con media 0 e varianza 1.

40 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 40 Operazioni con Scalari Tutte le operazioni di somma (+), sottrazione (-), prodotto (*), divisione (/) di una matrice o vettore per uno scalare sono definite, in Matlab come operazioni elemento ad elemento: il risultato è una matrice o un vettore i cui elementi sono ottenuti sommando, sottraendo, moltiplicando, dividendo i singoli elementi della matrice o del vettore per lo scalare. >> y = 10; >> r_x = 1 : 4 r_x = >> r_x + y ans = >> y - r_x ans = >> r_x * y ans = >> r_x / y ans = somma sottraz. prodot. divisione N.B.: Si noti come in algebra matriciale solo il prodotto scalare matrice sia in realtà definito

41 Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli 41 Operazioni con Scalari Tutte le operazioni fra matrici e scalari in matlab sono commutative eccetto la divisione >> m_x = [1 2; 3 4]; y = 10 >> m_x + y ans = >> y + m_x ans = somma N.B.: E possibile dividere un vettore o una matrice per uno scalare, ma non uno scalare per un vettore o una matrice >> m_x = [1 2; 3 4]; y = 10 >> m_x / y ans = >> y / m_x ?? Error using ==> / Matrix dimensions must agree. divisione


Scaricare ppt "Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Lezione 3 Vettori e Matrici."

Presentazioni simili


Annunci Google