Inversa di una matrice quadrata. L operatore inv() inverte una matrice quadrata non singolare (cioè in cui il determinate è diverso da zero).

Documenti analoghi
3. Matrici e algebra lineare in MATLAB

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

MATRICI E VETTORI APPROFONDIMENTO PER IL CORSO DI LABORATORIO DI INFORMATICA SARA POLTRONIERI

= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con

Anno 4 Matrice inversa

I. Foglio di esercizi su vettori linearmente dipendenti e linearmente indipendenti. , v 2 = α v 1 + β v 2 + γ v 3. α v 1 + β v 2 + γ v 3 = 0. + γ.

MATLAB parte II. Array

Arrays. Vector array. Matrix array. Row vector. 2D matrix. 1 2 Column vector

Corso di Matematica e Statistica 3 Algebra delle matrici. Una tabella rettangolare: la matrice. Una tabella rettangolare: la matrice

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Introduzione. MATLAB è l acronimo di MATrix LABoratory

Inversa di una matrice

Corso di Calcolo Numerico

ALGEBRA LINEARE PARTE II

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

( ) TEORIA DELLE MATRICI. A. Scimone a.s pag 1

Esercitazione di Analisi Matematica II

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Sistemi lineari - Parte Seconda - Esercizi

(VX) (F) Se A e B sono due matrici simmetriche n n allora anche A B è una matrice simmetrica.

SISTEMI LINEARI. x y + 2t = 0 2x + y + z t = 0 x z t = 0 ; S 3 : ; S 5x 2y z = 1 4x 7y = 3

Esercitazione 6 - Soluzione

Variabile, costante ed espressione

A = Quindi > b=a(:) b =

Esercitazione di Matematica su matrici e sistemi lineari

Vettori e matrici. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Autovalori e autovettori, matrici simmetriche e forme quadratiche (cenni) (prof. M. Salvetti)

Informatica B

Matematica II,

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Formulario sui Prodotti Hermitiani Marcello Mamino Pisa, 24 v 2010

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

ESERCITAZIONE MATLAB

3. Vettori, Spazi Vettoriali e Matrici

a + 2b + c 3d = 0, a + c d = 0 c d

La codifica digitale

Introduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard

MATRICI Vol.1. Pag. 1/24

Problema. Vettori e matrici. Vettori. Vettori

Autovalori ed autovettori di una matrice

2x 5y +4z = 3 x 2y + z =5 x 4y +6z = A =

Metodi per la risoluzione di sistemi lineari

POTENZE DI MATRICI QUADRATE

08 - Matrici, Determinante e Rango

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Matrici quadrate particolari

ALGEBRA E GEOMETRIA Esercizi Corso di Laurea in Chimica - anno acc. 2015/2016 docente: Elena Polastri,

Sistemi di equazioni lineari

Corso di Geometria BIAR, BSIR Esercizi 2: soluzioni

Progetto Matlab N 2. Calcolo Numerico 6 CFU. Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014

ESERCIZI SULLE MATRICI

04 - Numeri Complessi

Geometria BIAR Esercizi 2

Esercizi di Matematica di Base Scienze biologiche e Scienze e Tecnologie dell Ambiente

Applicazioni lineari e diagonalizzazione. Esercizi svolti

CORSO ZERO DI MATEMATICA

Esercizi svolti. risolvere, se possibile, l equazione xa + B = O, essendo x un incognita reale

Alcuni esercizi sulla diagonalizzazione di matrici. campo dei reali. Se lo è calcolare una base spettrale e la relativa forma diagonale di A.

Aritmetica in Floating Point

Introduzione a Matlab (e al Calcolo Numerico)

Corso di Geometria Ing. Informatica e Automatica Test 1: soluzioni

1 Definizione di sistema lineare omogeneo.

Programma di Algebra 1

Per esempio, una matrice 4 4 triangolare alta ha la forma. 0 a. mentre una matrice di ordine 4 triangolare bassa è del tipo

Massimi e minimi relativi in R n

SISTEMI LINEARI, METODO DI GAUSS

Sistemi lineari: bilanciamento di reazioni chimiche

Definizioni e operazioni fondamentali

FONDAMENTI DI ALGEBRA LINEARE E GEOMETRIA

Elementi di Algebra Lineare. Spazio Vettoriale (lineare)

APPLICAZIONI LINEARI

Il teorema di Rouché-Capelli

Numeri interi relativi

5 Un applicazione: le matrici di rotazione

Metodo di Gauss-Jordan 1

ha come obiettivo quello di costruire a partire da A una matrice U, m n, che abbia il

La lunghezza dei vettori e legata alle operazioni sui vettori nel modo seguente: Consideriamo due vettori v, w e il vettore v + w loro somma.

Endomorfismi e matrici simmetriche

ottenuta scambiando in A, le righe con le colonne, così, ad esempio, posto

RICHIAMI DI ALGEBRA LINEARE E NORME DI MATRICI E VETTORI. a 11 a 12 a 1n a 21 a 22 a 2n. a m1 a m2 a mn

Esercitazione di Calcolo Numerico 1 22 Aprile Determinare la fattorizzazione LU della matrice a 1 1 A = 3a 2 a 2a a a 2 A =

Esercizi di MATEMATICA PER RCHITETTURA prima parte: Algebra Lineare e Geometria

1.4 PRODOTTI NOTEVOLI

1 Forme quadratiche 1. 2 Segno di una forma quadratica Il metodo dei minori principali Soluzioni degli esercizi 7.

Appunti su Indipendenza Lineare di Vettori

1 Determinante di una matrice 1. 2 Calcolo della matrice inversa 7. 3 Calcolo del rango 8. 4 Soluzioni degli esercizi 12. n! = n.

Appendice A. Richiami di algebra lineare. A.1 Matrici

Corso di Matematica II Anno Accademico Esercizi di Algebra Lineare. Calcolo di autovalori ed autovettori

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

Esercizi per Geometria II Geometria euclidea e proiettiva

Rappresentazione in complemento a 2: caratteristiche generali

Lezione 11: Il Determinante

La codifica. dell informazione

Analisi Matematica T1 (prof.g.cupini) (CdL Ingegneria Edile Polo Ravenna) REGISTRO DELLE LEZIONI A.A

IV-2 Forme quadratiche

Noi ci occuperemo esclusivamente dei casi n = 2 e n = 3. Se n = 2, la quadrica Q p sarà detta conica di equazione p, e indicata con C p.

Sistemi lineari: bilanciamento di reazioni chimiche

Soluzione. (a) L insieme F 1 e linearmente indipendente; gli insiemi F 2 ed F 3 sono linearmente

Si consideri il sistema a coefficienti reali di m equazioni lineari in n incognite

Transcript:

Inversa di una matrice quadrata L operatore inv() inverte una matrice quadrata non singolare (cioè in cui il determinate è diverso da zero).

richiami di algebra lineare TRASPOSIZIONE DI MATRICE Il calcolo del determinante di una matrice quadrata del 3 ordine si sviluppa secondo gli elementi di una riga o di una colonna. Nell esempio sviluppiamo secondo la prima riga DETERMINANTE DI UNA MATRICE Ogni elemento della prima riga viene moltiplicato con il suo minore complementare, ovvero il determinante del 2 ordine ottenuto sopprimendo la prima riga e la prima colonna; i prodotti vengono poi sommati algebricamente tra loro considerando il segno positivo se la somma degli indici dell elemento considerato è pari, o negativo se è dispari. Sviluppando i tre determinanti del 2 ordine, si ottiene: N.B. Il determinante di una matrice quadrata non cambia se lo sviluppo viene eseguito rispetto ad una qualsiasi altra riga (non solo la prima) o un altra colonna.

Una matrice quadrata A (nxn) è detta invertibile se esiste una matrice B (nxn) tale che: AB=BA=I n dove I n denota la matrice identità nxn. Esistono vari metodi per il calcolo dell inversa di una matrice quadrata invertibile A. Consideriamo il metodo della matrice dei cofattori, che risulta rapido quando non interessa calcolare tutti gli elementi della matrice inversa e quando la matrice è di dimensione contenuta. Il cofattore in posizione i,j è definito come: MATRICE DEI COFATTORI (o dei complementi algebrici) dove minor(a,i,j) rappresenta il minore di A che si ottiene cancellando la riga i-esima e la colonna j-esima. Il segno (-1) i+j varia nel modo seguente:

Esempio: La matrice inversa di una matrice 2x2 invertibile è la seguente Data invece una matrice 3x3 invertibile la sua inversa è

Somma di tutti gli elementi per riga o colonna Un operatore di fondamentale utilizzo è sum(), che somma gli elementi della matrice. L operazione di somma avviene di default per colonna, ma è altresì possibile effettuarla per riga specificando sum(matrice,2).

Prodotto di tutti gli elementi per riga o colonna Analogo è il comando prod() che applica il prodotto.

Autovalori di una matrice Data una matrice quadrata A i suoi autovalori, siano essi reali o complessi, sono calcolati con rapidità e memorizzati in un array tramite la funzione eig().

richiami di algebra lineare Data una matrice quadrata A si definiscono autovalori e autovettori rispettivamente quei valori reali o complessi e quei vettori non nulli che verificano il sistema: Tale sistema è equivalente al sistema omogeneo: che ammette soluzioni non banali (u 0) se e solo se è tale che: Si verifica che tale determinante coincide con un polinomio di grado n (Polinomio caratteristico): Pertanto gli autovalori di una matrice, che sono gli zeri di tale polinomio, sono, contando la molteplicità, n. L insieme formato con tali autovalori si denota con (A).

richiami di algebra lineare Quindi se A è una matrice quadrata, un autovalore di A è un numero che, se sottratto a ciascun elemento della diagonale di A, trasforma A in una matrice singolare (determinante nullo). Esempio) Sia data la matrice diagonale A=(2 3; 0 3) Se sottraiamo 2 a ciascun elemento della diagonale si ottiene la matrice singolare (0 3; 0 1) Inoltre se si sottrae 3 si ottiene la matrice singolare (-1 3; 0 0) Quindi 2 e 3 sono autovalori della matrice A

Dimensioni di una matrice Assegnata la matrice A per sapere le sue dimensioni si usa l istruzione >>p = size(a) Questa fornisce un vettore a due componenti; la prima componente indica il numero di righe, la seconda quello delle colonne. Il numero delle righe si può leggere con >>a = size(a,1) mentre il numero delle colonne si può leggere con >>b = size(a,2) oppure con >>b = p(2)

Analisi degli elementi di una matrice Se si vogliono localizzare gli elementi di una matrice che soddisfano una data condizione si usa l istruzione find. Così, indicata con M una matrice, le istruzioni: f=find(m) crea un vettore f i cui elementi sono gli indici della matrice M corrispondenti agli elementi della matrice diversi da zero. g=find(m>2) crea un vettore g i cui elementi sono gli indici della matrice M corrispondenti agli elementi della matrice maggiori di 2. s=find(m<0) crea un vettore s i cui elementi sono gli indici della matrice M corrispondenti agli elementi negativi della matrice.

Vettore con elementi in progressione aritmetica Un uso frequente è quello di creare una sequenza nel modo start:step:stop ossia viene creata in un vettore riga una sequenza di numeri che iniziano dal numero start, vengono incrementati del valore step e si fermano quando raggiungono lo stop. Per assegnare un vettore i cui elementi differiscano di una costante, ad esempio il vettore di componenti 0,1,2,3,4 si può scrivere con uno dei modi equivalenti Quando lo step non è indicato il passo di default è 1. Se la costante è diversa da 1 basta scrivere in uno dei modi equivalenti:

Matrici particolari Le quattro matrici più importanti per la programmazione sono le matrici di zeri, di uno, random ottenibili con i seguenti comandi: zeros(i,j) : permette di creare una matrice di zeri con i righe e j colonne ones(i,j) : permette di creare una matrice di tutti uno con i righe e j colonne eye(i,j) : permette di creare una matrice di i righe e j colonne con uno sulla diagonale principale e zero altrove rand(i,j) : permette di generare una matrice con elementi a caso con i righe e j colonne Per generare una matrice 2 x 5 i cui elementi siano tutti nulli si usa l istruzione >>P = zeros(2,5); Per generare una matrice 4 x 3 i cui elementi siano tutti uguali ad uno si usa l istruzione >>Q = ones(4,3); Se per esempio dobbiamo creare una matrice 3x4 con tutti 5 possiamo applicare la moltiplicazione scalare >>M=5*ones(3,4); Per generare una matrice unità 4 x 4 si usa l istruzione >>R = eye(4); Per generare una matrice 3 x 3 con elementi a caso compresi tra zero ed 1 si usa l istruzione >>S = rand(3);

Altro uso dei due punti Il comando : è un sostituto del ciclo for. Abbiamo già visto come esso consenta di creare semplicemente vettori con componenti che differiscono di una costante. Vediamone ora un secondo utilizzo. Data una matrice A si voglia prelevare da essa una sotto-matrice formata da alcune righe e alcune colonne. Ricordiamo che, come in matematica, negli elementi a hk di una matrice il primo indice indica la riga, il secondo la colonna. Ad esempio se si vuol prelevare la sotto-matrice B formata dalla sola prima colonna di A basta usare l istruzione >>B = A(:,1) che significa: B è formato da tutte le righe di A ma solo dalla colonna 1. Si voglia ora prelevare da A la sotto-matrice C formata dalle colonne 2,3 basta usare l istruzione >>C = A(:,2:3) che significa: C è formato da tutte le righe di A ma solo dalle colonne 2 e 3. Si voglia ora prelevare la sotto-matrice D formata dalle righe 2 e 3 di A basta usare l istruzione >>D = A(2:3,:) che significa: D è formato dalle righe 2 e 3 di A e da tutte le colonne.

Concatenazione di matrici Due matrici con ugual numero di righe possono essere concatenate orizzontalmente, cioè affiancate orizzontalmente per formare una matrice unica. Definite cioè A (2x3) e B (2x4) possiamo definire C (2x7) come la matrice che otteniamo affiancandole con le parentesi quadre e lo spazio; quindi le trattiamo come gli elementi di una matrice: >>C=[A B]; Due matrici con ugual numero di colonne possono essere concatenate verticalmente, cioè affiancate verticalmente per formare una matrice unica. Definite D (2x3) e F (4x3), possiamo definire E (6x3) come la matrice che otteniamo affiancandole con le parentesi quadre e il punto e virgola. >>E=[D;F];

Altri comandi fondamentali length(v): calcolato su di un vettore o su una serie, ne dà la lunghezza size(m): calcolato su di una matrice, ne dà il numero di righe e di colonne E possibile cancellare righe e colonne di una matrice usando le parentesi quadre [ ], attribuendole alla riga/colonna che si vuole cancellare >>m=ones(3,4); >>m(:,4)=[ ]; %si cancella la quarta colonna di m Non è possibile scrivere >>m(2,2)=[ ]; altrimenti cancellerei un solo elemento e m non sarebbe più una matrice reshape(x,m,n): considera una matrice X e dà come output una matrice di MxN elementi presi da X partendo dalla prima colonna. Se X non ha ugual numero di elementi (MxN) fornisce un messaggio di errore. abs(): calcola il valore assoluto di un numero o la matrice contenente i valori assoluti della matrice cui è applicato fix(): tronca un numero all intero round(): calcola l arrotondamento per eccesso/difetto

max() e min(): calcola di un vettore il max o il min elemento; di una matrice produce un vettore con il max o min degli elementi per colonne fliplr(): inverte l ordine degli elementi di un vettore eig(): calcola gli autovalori di una matrice quadrata rank(): calcola il rango di una matrice (massimo numero di righe o colonne linearmente indipendenti) trace(): calcola la traccia di una matrice (somma degli elementi sulla diagonale principale) cumprod(x): restituisce un vettore o una matrice con il prodotto cumulato per colonna cumsum(x): restituisce un vettore o una matrice con la somma cumulata per colonna

Efficienza MATLAB è un linguaggio non strutturato e in quanto tale non necessita di allocare variabili, vettori o matrici prima dell uso. Questo semplifica il lavoro del programmatore ma può essere fonte di errori ed inefficienze. Ad esempio, se vogliamo generare un vettore del tipo x=(1,2,3,4,,10 6 ) è sufficiente digitare: Ma vi accorgerete che la generazione del vettore x richiede molto tempo. Il motivo di tale inefficienza risiede nel fatto che MATLAB non conosce a priori la dimensione del vettore, perciò ad ogni ciclo alloca un nuovo elemento in coda al vettore generato ai cicli precedenti. Tutti sanno che l operazione di allocazione ha un costo elevato in quanto coinvolge primitive del sistema operativo che devono cercare una locazione di memoria libera ecc. In questo caso MATLAB deve eseguire 10 6 allocazioni! Per ovviare a questo inconveniente si può forzare MATLAB ad allocare (ed inizializzare) il vettore x (o una matrice) prima del suo utilizzo tramite la funzione zeros: In questo caso la generazione è immediata in quanto l allocazione avviene in un colpo solo, in modo analogo alla malloc del C.