La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 a -2 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Laurea Specialistica in Ingegneria Matematica a.a. 2007-2008.

Presentazioni simili


Presentazione sul tema: "1 a -2 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Laurea Specialistica in Ingegneria Matematica a.a. 2007-2008."— Transcript della presentazione:

1 1 a -2 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Laurea Specialistica in Ingegneria Matematica a.a

2 Desktop del MATLAB )Start : accesso ai tools, demos e documentazione dei prodotti MathWorks istallati sul computer. 1)workspace : riporta le variabili memorizzate. 2)Command History : riporta i comandi eseguiti nel Command Window.

3 5) Command Window: finestra di lavoro; esso viene usato per inserire variabili ed eseguire file function e file script 4) Current Directory: permette laccesso ai file memorizzati nella directory di lavoro.

4 La directory di lavoro La directory di default è C:\Programmi\MATLAB704\work Se si vuole usare unaltra directory: –si va nella directory desiderata utilizzando current directory –si inserisce la directory desiderata nel path

5 Come visualizzare il Path Per visualizzare il path si può: – digitare il comando path – selezionare con il mouse dallambiente di calcolo la voce File e dal menu a tendina che compare, la voce Set path.

6 Come utilizzare il Path Per aggiungere una directory al path preesistente, selezionare con il mouse la voce File …. Set path …… Add Folder …

7 Finestre Matlab Le finestre di lavoro del MATLAB sono tre : Comandi utili: clc:ripulisce la finestra Command window clf :ripulisce la finestra Graphic window quit o exit: per uscire da MATLAB Command window Edit window Graphic window

8 Command Window Utilizzo interattivo » 3*5^13 ans = e+009 » 3*5^13 ans = e+009 » help magic MAGIC Magic square. MAGIC(N) is an N-by-N matrix constructed from the integers 1 through N^2 with equal row, column, and diagonal sums. » help magic MAGIC Magic square. MAGIC(N) is an N-by-N matrix constructed from the integers 1 through N^2 with equal row, column, and diagonal sums. Help online

9 Edit window Per visualizzare leditor del Matlab si può: selezionare con il mouse dallambiente di calcolo la voce File e dal menu a tendina che compare, la voce New oppure Open se il file esiste già

10 Edit window Alternativamente, se il file è nuovo, si digita dal Command window il comando edit; se il file esiste già, e si vuole richiamare, si digita invece edit seguito dal nome del file.

11 Graphic window Per visualizzare ed utilizzare la finestra grafica del Matlab si possono utilizzare diversi comandi dal Command window oppure inserire tali comandi tra le istruzioni in edit window: >> x=[ ]; >> y=[ ]; >> plot(x,y) >> x=[ ]; >> y=[ ]; >> plot(x,y) Esempio 1

12 Graphic window >> f='2*cos(x)'; >> fplot(f,[0,3]) >> f='2*cos(x)'; >> fplot(f,[0,3]) Esempio 2

13 Introduzione al MATLAB »MATrix LABoratory La MATRICE è la chiave per comprendere MATLAB –nessun dimensionamento –trattata nel suo insieme –operazioni più naturali possibili Gli elementi di una matrice possono essere sia dei numeri che dei caratteri

14 Regole per i nomi delle variabili I nomi devono cominciare con una lettera possono contenere lettere, cifre e il carattere underscore _ Matlab distingue il Maiuscolo dal Minuscolo

15 Array numerici I dati sono memorizzati in Double-Precision Floating-Point » x=4 x = 4 » c=[1,2;3,4]; » x=[-1.6 sqrt(4) (7+5)*4/3] x = » x=4 x = 4 » c=[1,2;3,4]; » x=[-1.6 sqrt(4) (7+5)*4/3] x = ; indica: fine di una riga in una matrice oppure soppressione di un output Virgola/Spazio: gli elementi sono sulla stessa riga Qualunque espressione Matlab può essere usata come elemento di una matrice

16 Array numerici » x=[-1.6 sqrt(4) (7+5)*4/3]; » x(5)=abs(x(1)) x = » x=0:7 x = » y=0:0.5:3; » z=7:-1:0; » x=linspace(0,7,15); » rand(1,4) ans = » x=[-1.6 sqrt(4) (7+5)*4/3]; » x(5)=abs(x(1)) x = » x=0:7 x = » y=0:0.5:3; » z=7:-1:0; » x=linspace(0,7,15); » rand(1,4) ans = Elementi non definiti sono posti a zero Gli elementi di una matrice si possono individuare mediante numeri allinterno di parentesi tonde Senza assegnazione esplicita: ogni entità è memorizzata in ans Loperatore : crea vettori di elementi equispaziati

17 La matrice A = Righe (m) Colonne (n) Matrice: Vettore : m x 1 array 1 x n array Matrice: m x n array Scalare : 1 x 1 array Matrice: Vettore : m x 1 array 1 x n array Matrice: m x n array Scalare : 1 x 1 array

18 Come individuare gli elementi di una matrice A = >> A=magic(5); A(3,2) A(3,1) A([4,5],[2,3]) A(4:5,2:3)

19 Come estrarre elementi da una matrice A = Si vogliono estrarre gli elementi dellultima colonna. >> A=magic(5);

20 Come estrarre gli elementi dellultima colonna >> A=magic(5); >> A([1,2,3,4,5],5) >> A(1:5,5) >> A(:,5) >> A(:,end) ans = Loperatore : prende le righe 1-5 della matrice Loperatore :, senza alcuna specifica, individua tutte le righe

21 Esercizio 1 Data la matrice A=eye(4) a) estrarre la prima riga e la terza colonna; b) sostituire lultima riga di A con il vettore r=[ ]. » A=eye(4); % matrice identità 4x4 a)» p=A(1,:);q=A(:,3); b)» r=[ ]; » A(end,1:4)=r; %oppure A(end,:)=r; %oppure A(end,:)=[ ];

22 Formato delloutput Comando format Comando MATLABCifre decimaliEsempio format short Default (4 cifre) format long 14 decimali format short e 4 decimali e+01 format long e 15 decimali e+01 format rat Razionale 5911/388

23 Concatenazione di vettori >> x1=1:3 x1 = >> x2=4:6 x2 = >> x3=[x1 x2] x3 = >> x4=[x1;x2] x4 = >> >> x1=1:3 x1 = >> x2=4:6 x2 = >> x3=[x1 x2] x3 = >> x4=[x1;x2] x4 = >> Loperatore [ ] serve a concatenare vettori

24 Array di Stringhe str1= Questa e una stringa di prova; str2=che contiene 58 elementi; str=strvcat(str1,str2) % strvcat costruisce un vettore % colonna str = Questa e' una stringa di prova che contiene 58 elementi str=strcat(str1,str2) % strcat costruisce un % vettore riga str = Questa e una stringa di prova che contiene 58 elementi str1= Questa e una stringa di prova; str2=che contiene 58 elementi; str=strvcat(str1,str2) % strvcat costruisce un vettore % colonna str = Questa e' una stringa di prova che contiene 58 elementi str=strcat(str1,str2) % strcat costruisce un % vettore riga str = Questa e una stringa di prova che contiene 58 elementi Loperatore () delimita una stringa

25 Esercizio 2 1.Costruire un vettore x costituito da 10 numeri progressivi (es. da 51 a 60). 2.Si calcoli dapprima la somma delle componenti del vettore x e poi la somma della prima ed ultima componente. 3.Si costruisca un vettore p, le cui prime 10 componenti siano le stesse di x, mentre lundicesima e la dodicesima siano rispettivamente la somma e la differenza delle prime due componenti.

26 Soluzione Esercizio 2 1. » x=51:60; % oppure x=linspace(51,60,10); 2. » sum(x) %somma di tutte le componenti » x(1)+x(10) % oppure x(1)+x(end) % oppure » n=length(x); » x(1)+x(n) 3. » p=x; » p(11)=x(1)+x(2); » p(12)=x(1)-x(2); % oppure p=[x x(1)+x(2) x(1)-x(2)]; % oppure » q=[x(1)+x(2) x(1)-x(2)]; » p=[x q] 1. » x=51:60; % oppure x=linspace(51,60,10); 2. » sum(x) %somma di tutte le componenti » x(1)+x(10) % oppure x(1)+x(end) % oppure » n=length(x); » x(1)+x(n) 3. » p=x; » p(11)=x(1)+x(2); » p(12)=x(1)-x(2); % oppure p=[x x(1)+x(2) x(1)-x(2)]; % oppure » q=[x(1)+x(2) x(1)-x(2)]; » p=[x q]

27 Variabili predefinite pi i, j eps realmin realmax ans » pi ans = » eps ans = e-016 » realmin ans = e-308 » realmax ans = e+308 » pi ans = » eps ans = e-016 » realmin ans = e-308 » realmax ans = e+308

28 Variabili predefinite pi ans = >> pi=3; >> pi pi = 3 ATTENZIONE!! Nel caso si assegni il nome di una variabile predefinita ad una quantità di valore diverso, si perde il valore predefinito. ESEMPIO Il valore rimane tale finché non si conclude la sessione MATLAB.

29 Variabili non numeriche predefinite NaN (Not a Number): NaN è ottenuto come risultato di operazioni matematicamente indefinite come 0.0/0.0 e inf-inf Inf: Infinito è prodotto da operazioni tipo divisione per zero, come 1.0/0.0, oppure da overflow, esempio exp(1000) » 0/0 Warning: Divide by zero. ans = NaN » b=1/0 Warning: Divide by zero. b = Inf » 0/0 Warning: Divide by zero. ans = NaN » b=1/0 Warning: Divide by zero. b = Inf

30 Funzioni di utilità zeros(m,n): matrice mxn con tutti elem. = 0 oppure zeros(m)se la matrice è mxm; ones(m,n): matrice mxn con tutti elem. = 1 oppure ones(m) se la matrice è mxm; Se si vuole un vettore colonna (riga)di m componenti nulle oppure tutte uguali a 1, basta scrivere zeros(m,1) (zeros(1,m)) o ones(m,1)(ones(1,m)) rispettivamente. magic(m): matrice magica di dimensioni mxm eye (m): matrice identità di dimensioni mxm tril(A): matrice triang. infer. estratta da A triu(A): matrice triang. super. estratta da A diag(A): vettore contenente la diagonale di A

31 Matrici particolari tril triu diag Sintassi: comando(nome_var,k) k=0 k positivo k negativo Esempi k=0 può essere omesso k=1 codiagonale superiore k=-1 codiagonale inferiore ……

32 Esercizio 3 1.Data la matrice A=[1:3; 4:6; 7:9] a) estrarre la seconda riga e la terza colonna; b) scambiare lultima riga con la prima riga. 2. Estrarre la diagonale della matrice A data in 1. e creare una matrice diagonale avente sulla diagonale gli elementi della diagonale di A. 3. Costruire una matrice tridiagonale 5x5 che abbia tutti 4 sulla diagonale principale, 1 sulla codiagonale superiore e -1 su quella inferiore.

33 Soluzione Esercizio 3 1.» A=[1:3;4:6;7:9]; » p=A(2,:);q=A(:,3); » x=A(1,:); % x: variabile di appoggio » A(1,:)=A(end,:); » A(end,:)=x; %oppure A([1,3],:)=A([3,1],:); 2.» b=diag(A); » c=diag(b); %oppure c=diag(diag(A)); 3.» n=5; » I1=ones(n,1); » I2=ones(n-1,1); » A=diag(4*I1)+1*diag(I2,1)-1*diag(I2,-1) % in questo caso anche A=diag(4*I1)+diag(I2,1)-diag(I2,-1) 1.» A=[1:3;4:6;7:9]; » p=A(2,:);q=A(:,3); » x=A(1,:); % x: variabile di appoggio » A(1,:)=A(end,:); » A(end,:)=x; %oppure A([1,3],:)=A([3,1],:); 2.» b=diag(A); » c=diag(b); %oppure c=diag(diag(A)); 3.» n=5; » I1=ones(n,1); » I2=ones(n-1,1); » A=diag(4*I1)+1*diag(I2,1)-1*diag(I2,-1) % in questo caso anche A=diag(4*I1)+diag(I2,1)-diag(I2,-1)

34 Esercizio 4 Data la matrice A=[ ; ; ; … ] calcolarne il determinante; costruire la matrice L, triangolare inferiore, estratta da A (istruzione tril) ; costruire la matrice U, triangolare superiore, estratta da A ( istruzione triu ); costruire la matrice T, tridiagonale con gli stessi elementi di A sulla diagonale e le codiagonali ( istruzione diag ).

35 Soluzione Esercizio 4 » det(A) » L=tril(A) » U=triu(A) » T1=diag(A,-1) » T2=diag(A) » T3=diag(A,1) » T=diag(T1,-1)+ diag(T2)+diag(T3,1) » det(A) » L=tril(A) » U=triu(A) » T1=diag(A,-1) » T2=diag(A) » T3=diag(A,1) » T=diag(T1,-1)+ diag(T2)+diag(T3,1)

36 Operazioni su vettori

37 Esempio1: elevamento a potenza di matrici » format rat » a=hilb(3) a = 1 1/2 1/3 1/2 1/3 1/4 1/3 1/4 1/5 » b1=a^2 % b1=a*a b1 = 49/36 3/4 21/40 3/4 61/144 3/10 21/40 3/10 769/3600 » b2=a.^2 % b2=a.*a b2 = 1 1/4 1/9 1/4 1/9 1/16 1/9 1/16 1/25

38 A=[1:5; 2:6] A = >> B=[2:6; 3:7] B = Esempio2: moltiplicazione tra matrici >> A.*B ans = % Prodotto righe per colonne >> A*B' ans = >> A*B ??? Error using ==> mtimes Inner matrix dimensions must agree

39 Esercizio 5 1.Determinare la matrice con elementi pari al quadrato dei singoli elementi della matrice di Hilbert 6x6. 2.Calcolare il prodotto elemento per elemento tra la matrice di Hilbert 6x6 e la matrice magica 6x6. Confrontare la matrice così ottenuta con la matrice hilb(6)*magic(6). 1.Costruire due vettori: il primo x, contenente i numeri pari da 1 a 40, il secondo y, contenente i numeri dispari da 1 a 40. Calcolare il prodotto scalare dei due vettori x, y ed il vettore prodotto componente per componente.

40 Soluzione Esercizio 5 1. A=hilb(6) A.^2 2. B=hilb(6).*magic(6); C= hilb(6)*magic(6); 3. x=2:2:40; y=1:2:40; z=x*y; %(z=x*y è una matrice!!) z=x.*y; 1. A=hilb(6) A.^2 2. B=hilb(6).*magic(6); C= hilb(6)*magic(6); 3. x=2:2:40; y=1:2:40; z=x*y; %(z=x*y è una matrice!!) z=x.*y;


Scaricare ppt "1 a -2 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Laurea Specialistica in Ingegneria Matematica a.a. 2007-2008."

Presentazioni simili


Annunci Google