Introduzione a MatlabMetodi Numerici
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)
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)
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
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)
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)
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.
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
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);
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.
Esercizio 2
Tracciare il grafico e il grafico delle curve di livello delle seguenti funzioni e commentare eventuali punti stazionari (vedi slides intro):
Esercizio 3 (tipico da esame)
Esercizio 4
Verificare se i due scripts seguenti terminano come ci si aspetta: