La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica

Presentazioni simili


Presentazione sul tema: "Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica"— Transcript della presentazione:

1 Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica vigogna@dima.unige.it http://www.dima.unige.it/~vigogna/

2 Lezione 1 Cosè MATLAB Primo utilizzo Vettori e matrici Esercizi

3 Cosè MATLAB MATLAB sta per Matrix Laboratory. È un ambiente informatico che integra diverse funzionalità: Calcolo Sviluppo Grafica Analisi dati Simulazione

4 Alcune potenzialità di MATLAB Calcoli matriciali e operazioni su matrici Risoluzione di sistemi lineari Calcolo di autovalori e autovettori Grafici 2D e 3D Programmazione

5 Primo utilizzo command window history workspace current directory

6 Diary e commenti >> diary lezione1 crea nella directory corrente un file di testo lezione1 che registra lintera sessione. Per inserire titoli o commenti: >> % Ad esempio: >> % lezione 1 Alla fine della lezione, >> diary off Per riaprire il diary: >> diary on

7 Calcolatrice In MATLAB sono definite le operazioni elementari: + - * / ^. Il risultato viene salvato nella variabile ans. È possibile definire e ridefinire una variabile. Ad esempio, >> x = 0 >> x = x + 1

8 Alcuni utili comandi (1) >> clear x cancella la variabile x. >> clear cancella tutte le variabili. >> who e >> whos stampano sulla finestra dei comandi la lista delle variabili, rispettivamente senza e con informazioni. >> clc ripulisce la finestra dei comandi.

9 Alcuni utili comandi (2) Con le frecce è possibile richiamare comandi precedenti della storia. Premere Esc per cancellare la riga.

10 Formati numerici (1) Es: >> 123.45678 >> format short virgola fissa 5 cifre. Es: 123.4568 >> format short e virgola mobile 5 cifre. Es: 1.2346e+02 >> format short g MATLAB sceglie la rappresentazione migliore a 5 cifre. Es: 123.46

11 Formati numerici (2) >> format long virgola fissa 15 cifre. Es: 1.234567800000000e+02 >> format long e virgola mobile 15 cifre. Es: 1.234567800000000e+02 >> format long g Rappresentazione migliore a 15 cifre. Es: 123.45678

12 Formati numerici (3) >> format bank fissa dollari e centesimi. Es: 123.46 >> format rat notazione frazionaria (rapporto fra interi eventualmente approssimante). Es: 10000/81 NB: format determina solo la modalità di stampa, non la precisione di calcolo.

13 Costanti pi : pi greca i, j : unità immaginaria eps : precisione di macchina realmax, realmin : massimo e minimo numero rappresentabile (realmax * 2 = inf) inf : numero maggiore di realmax NaN (Not a Number): forma indeterminata (0/0, inf/inf, 0*inf, …)

14 Funzioni In MATLAB sono definite (quasi) tutte le funzioni matematiche: sqrt, exp, log, sin, cos … Per una lista di tutte le funzioni elementari, ordinate per categoria: >> help elfun Per ciascuna funzione, >> help

15 Help Il comando help è molto utile per ottenere informazioni su funzioni, operatori, caratteri, sintassi, comandi… >> help Es: >> help format … compreso se stesso: >> help help

16 Vettori e matrici In MATLAB tutte le variabili sono trattate come matrici: scalari : matrici 1 x 1 vettori riga : matrici 1 x n vettori colonna : matrici n x 1 matrici : matrici m x n

17 Vettori vettore riga: >> v = [1 2 3 4 5] oppure >> v = [1,2,3,4,5] vettore colonna: >> v = [1; 2; 3; 4; 5] oppure >> v = [1 2 3 4 5] ; cambia riga, traspone. Per selezionare li-esima entrata: >> v(i) In particolare, lultima entrata è v(end).

18 Alcune funzioni sui vettori >> max(v) restituisce la massima entrata di v. >> min(v) restituisce la minima entrata di v. >> sum(v) restituisce la somma delle entrate di v. >> lenght(v) restituisce la lunghezza di v.

19 Vettori progressivi Vettore progressione aritmetica di valore iniziale a, valore finale b e passo p (anche negativo): >> x = a:p:b Se il passo è 1, si può omettere. Es: >> x = 1:10 x = 1 2 3 4 5 6 7 8 9 10 NB: Loperatore : è molto importante.

20 Matrici Per definire una matrice, ad esempio >> A = [ 3 0 3 ; 1 2 0 ] oppure >> A = [ 3 0 3 1 0 2] Per selezionare lentrata (i,j): >> A(i,j)

21 Alcune funzioni sulle matrici Le funzioni max e min operano anche sulle matrici con lo stesso significato. >> sum(A) restituisce un vettore riga le cui entrate sono le somme delle entrate di ciascuna colonna di A. >> size(A) restituisce un bivettore con le dimensioni di A. >> length(A) Restituisce la dimensione massima di A.

22 Esercizio 1 Costruire un vettore v composto da 40 elementi in modo che: i primi 20 elementi siano 1,2,…,20 gli ultimi 20,19,…,1

23 Note >> ; Matlab esegue il comando senza stampare il risultato. Per spezzare un comando su più righe: >> … Per terminare forzatamente un comando in esecuzione, digitare ctrl c.

24 Matrici come vettori >> A(:) produce un vettore colonna contenente tutte le entrare di A, colonna per colonna. >> A(i) seleziona li-esima entrata di A(:). Se i è un vettore di indici, A(i) seleziona le entrate corrispondenti.

25 Entrate inesistenti (1) Se si cerca di usare unentrata inesistente, i.e. di riga o colonna troppo grande, Matlab stampa un messaggio di errore. Es: >> A = [1 2 ; 3 4] ; >> A(1,3) errore

26 Entrate inesistenti (2) È però possibile definire entrate inesistenti: Matlab definirà automaticamente le entrate mancanti, ponendole uguali a 0. Es: >> A(1,3) = 5 >> A = 1 2 5 3 4 0

27 Concatenazione di matrici >> A = [v w] crea la matrice le cui colonne sono i vettori colonna v e w, nellordine. >> A = [v ; w] crea la matrice le cui righe sono i vettori riga v e w. >> A = [B C ; D E] crea la matrice di blocchi B C D E, nella posizione indicata. NB: attenzione alla consistenza delle dimensioni! Altrimenti errore…

28 Estrazione di matrici (1) >> A(i,:) estrae li-esima riga della matrice A. >> A(:,j) estrae la j-esima colonna di A. >> A([p,q, ],[r,s, ]) estrae la sottomatrice di A costituita dalle righe p,q,… e dalle colonne r,s,…

29 Cancellazioni È possibile cancellare righe e colonne, ridefinendole come la matrice vuota. Es: >> A(:,1) = [ ] NB: Il tentativo di cancellare altri tipi di sottomatrici (es: singole entrate) produce un errore dimensionale.

30 Estrazione di matrici (2) >> diag(A) estrae la diagonale di A in un vettore colonna. >> diag(v) crea la matrice diagonale con diagonale il vettore v. >> triu(A) e >> tril(A) estraggono rispettivamente la matrice triangolare superiore (up) e inferiore (low).

31 Matrici notevoli identità n x n : >> eye(n) (in inglese, la lettera I e la parola eye si pronunciano entrambe/aɪ/) matrice nulla m x n : >> zeros(m,n) matrice m x n tutti 1 : >> ones(m,n) quadrato magico n x n : >> magic(n) Per un elenco di tutte le matrici elementari: >> help elmat

32 Esercizio 2 Verificare che nella matrice magic(4) ciascuna riga e colonna, nonché la diagonale, ha somma uguale.

33 Esercizio 3 a)Costruire una matrice A 3 x 7 tale che: – prima riga = 7,6,…,1 – seconda riga = 1,1,…,1 – terza riga = 0,0,…,0 b) Estrarre due sottomatrici di A: – una costituita dalle ultime 3 colonne – una costituita dagli elementi della riga 1 e 3, colonna 2 e 4.

34 Numeri casuali >> rand genera un numero (pseudo)casuale con distribuzione uniforme nellintervallo [0,1]. >> randn genera un numero (pseudo)casuale con distribuzione normale di media 1 e deviazione standard 1. >> rand(m,n) e >> randn(m,n) generano matrici (pseudo)casuali (per matrici quadrate basta un parametro).

35 Funzioni parte intera >> floor(x) è il massimo intero x. >> round(x) è lintero più vicino a x. >> fix(x) è il massimo intero x se x0, il minimo intero x se x<0 (è lintero che si ottiene da x cancellando le cifre dopo la virgola).

36 Esercizio 4 Scrivere un comando che generi matrici in cui tutte le entrate sono numeri interi casuali, con una ragionevole distribuzione di probabilità.

37 Fine Ricordo: >> diary off per chiudere il diary. La tastiera è spesso preferibile al mouse. Per terminare il programma: >> quit


Scaricare ppt "Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica"

Presentazioni simili


Annunci Google