Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto...

13
Introduzione a Matlab Metodi Numerici

Transcript of Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto...

Page 1: Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto stazionario della funzione: f(x,y) = x 2–y Determinare se il punto stazionario è un minimo

Introduzione a MatlabMetodi Numerici

Page 2: Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto stazionario della funzione: f(x,y) = x 2–y Determinare se il punto stazionario è un minimo

1. Tipi di variabili

• Numeri:>> a = 1; (senza il “;” stampa l’assegnamento a video)

>> b = 3 + 4i; (numero complesso)

• Valori logici:>> a = true (true viene valutato come 1)

>> b = false (true viene valutato come 0)

• Vettori (1-D array):>> v1 = [1, -1, 2] (vettore “riga”)

>> v2 = [1; -1; 2] (vettore colonna”)

• Matrici (2-D array):>> A = [[1, -1]; [2,3]]; (matrice quadrata)

>> B = [[1,2,3]; [-1,2,-3]]; (matrice rettangolare)

Page 3: Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto stazionario della funzione: f(x,y) = x 2–y Determinare se il punto stazionario è un minimo

2.1 Operatori

• Su scalari:>> a = 7; b = 3;

>> ((a + b)*a/b-3)^3;

• Su vettori:>> v1 = [1, -1, 2]’ (vettore trasporto)

>> 2+v1; 2*v1; v1/2

>> v1 * v1 (cosa dice il messaggio di errore?)

>> v1*v1’ (il risultato è uno scalare o un vettore?)

>> v1’*v1 (il risultato è uno scalare o un vettore?)

>> v1^2 (cosa dice il messaggio di errore?)

>> v1.^2 (operatore applicato per componente)

Page 4: Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto stazionario della funzione: f(x,y) = x 2–y Determinare se il punto stazionario è un minimo

2.2 Operatori

• Su matrici:>> A = [[1, -1]; [2,3]];

>> At = A’

>> 2+A; 3*A;

>> v1 = [2,-1]; v1*A

>> A*v1’

>> B = [[2,3,1];[-1,1,-1]]

>> B*A

>> A*B

>> B’*A

>> A+v1

Page 5: Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto stazionario della funzione: f(x,y) = x 2–y Determinare se il punto stazionario è un minimo

3.1 Funzioni

• Su scalari:>> a=16; b = sqrt(a)

>> a=pi; b = sin(a)

>> a=10; b = log(exp(10))

• Su vettori:>> v1 = [2, -1]

>> sqrt(v1)

>> sin(v1)

>> exp(sin(v1))

>> v2 = zeros(10,1)

>> v2 = ones(1,10)

>> sum(v1)

>> prod(v1)

Page 6: Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto stazionario della funzione: f(x,y) = x 2–y Determinare se il punto stazionario è un minimo

3.2 Funzioni

• Su matrici:>> A = [[1, 4]; [16, 25]];

>> sqrt(A)

>> sin(A)

>> exp(sin(A))

>> B = zeros(10)

>> C = ones(5,10)

>> inv(A) (matrice inversa)

>> det(A) (determinante)

>> trace(A) (traccia)

>> eig(A) (autovalori)

>> (trace(A) == sum(eig(A))) (vedi slides intro)

>> (det(A) == prod(eig(A))) (vedi slides intro)

Page 7: Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto stazionario della funzione: f(x,y) = x 2–y Determinare se il punto stazionario è un minimo

Esercizio 1

Calcolore il punto stazionario della funzione:

f(x,y) = x2 – y2

Determinare se il punto stazionario è un minimo relativo, un massimorelative, o un punto di sella. Usare la funzione eig() per trovare gliautovalori dell’Hessiana di f(x,y) nel punto stazionario trovato.

Tracciare un grafico qualitativo di f(x,y) e delle sue curve di livello.

Page 8: Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto stazionario della funzione: f(x,y) = x 2–y Determinare se il punto stazionario è un minimo

4. Definizione di Funzioni

• Anonymous functions>> cubo = (@)(x) x^3

>> cubo(2)

>> cubo(cubo(2))

>> cubo(2*ones(3,3)) (cosa si ottiene?)

>> cubo = (@)(x) x.^3

>> cubo(2*ones(3,3)) (cosa si ottiene?)

>> f = @(x,y) x.^2 + y.^2;

>> c = f(2,1);

• Script .m file: DEMO

Page 9: Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto stazionario della funzione: f(x,y) = x 2–y Determinare se il punto stazionario è un minimo

5. Plots

• Plot in 2-D:>> f = @(x) 2*sin(x);

>> X = [-2*pi:0.1:2*pi]

>> Y = f(X)

>> plot(X,Y)

• Plot in 3-D:>> [X, Y]= meshgrid(-3:0.2:3, -3:0.2:3);

>> Z = (X.^2+3*Y.^2).*exp(1-X.^2-Y.^2);

>> figure;

>> surf(X,Y,Z);

>> colorbar;

>> figure;

>> contour(X,Y,Z);

Page 10: Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto stazionario della funzione: f(x,y) = x 2–y Determinare se il punto stazionario è un minimo

Esercizio 1

Calcolore il punto stazionario della funzione:

f(x,y) = x2 – y2

Determinare se il punto stazionario è un minimo relativo, un massimorelative, o un punto di sella.

Tracciare un grafico qualitativo di f(x,y) e delle sue curve di livello.

Page 11: Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto stazionario della funzione: f(x,y) = x 2–y Determinare se il punto stazionario è un minimo

Esercizio 2

Tracciare il grafico e il grafico delle curve di livello delle seguenti funzioni e commentare eventuali punti stazionari (vedi slides intro):

Page 12: Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto stazionario della funzione: f(x,y) = x 2–y Determinare se il punto stazionario è un minimo

Esercizio 3 (tipico da esame)

Page 13: Introduzione a Matlab - gualandi/metodi/IntroMatLab.pdf · Esercizio 1 Calcolore il punto stazionario della funzione: f(x,y) = x 2–y Determinare se il punto stazionario è un minimo

Esercizio 4

Verificare se i due scripts seguenti terminano come ci si aspetta: