Esercizi 1 Calcolo di espressioni con Matlab Calcolare le seguenti espressioni con Matlab: r 31 a) 3 4π b) (sin(30◦ ))2 √ 3 c) arctan(− ) 3 Soluzione a) >>(3/(4*pi))ˆ(1/3) ans= 0.6204 b) >>(sin(pi/6))ˆ2 ans= 0.2500 c) >>atan(-sqrt(3)/3) ans= -0.5236 2 Definizione di variabili 2.1 Assegnare le variabili x = e3 , y = π/6. Calcolare le seguenti espressioni: a) log(x2 ) b) 1 sin(y) c) log(x1/3 ) sin y 1 Soluzione >>x=exp(3); >>y=pi/6; a) >>log(xˆ2) ans= 6 b) >>1/sin(y) ans= 2 b) >>log(xˆ(1/3))*sin(y) ans= 0.5000 2.2 Definire la variabile >>pi=1. Osservare che le variabili predefinite in Matlab possono essere ridefinite dall’utente. Quanto vale ora l’espressione >>sin(pi/2)? Quale istruzione si può utilizzare per eliminare la nostra definizione di pi? Soluzione >>pi=1; >>sin(pi/2) ans= 0.4794 Per eliminare la definizione di pi digitiamo: >>pi e valutiamo di nuovo la stessa espressione: >>sin(pi/2) ans= 1 La variabile pi ha di nuovo il valore predefinito, π. 2 3 3.1 Inserire i vettori v = [1, 1, 0] e t = [0; −1; 0] (rispettivamente riga e colonna). Eseguire il prodotto scalare con *, quindi verificare che si ottiene lo stesso risultato con il comando dot (sintassi: >>dot(vettore1,vettore2)). Soluzione >>v=[1,1,0]; >>t=[0;-1;0]; >>v*t ans= -1 >>dot(v,t) ans= -1 3.2 Creare la matrice 4X4 A con il comando >>A=pascal(4). Creare il vettore 4X1 x = [1; 1; 1; 1] (suggerimento: potete usare il comando ones). Creare il vettore b, assegnandogli il prodotto Ax, dopo avere verificato che è possibile eseguirlo. Verificare che >>A\b dà in uscita il vettore x, e osservare che otteniamo lo stesso risultato moltiplicando l’inversa di A per b (suggerimento: per calcolare l’inversa di A digitare inv(A)). Soluzione >>A=pascal(4); >>x=ones(4,1); É possibile eseguire il prodotto Ax perché A ha 4 colonne e x ha 4 righe. >>b=A*x b= 4 10 20 35 >>A\b 3 ans= 1 1 1 1 >>inv(A)*b ans= 1 1 1 1 4 Grafici di funzioni 4.1 Rappresentare le funzioni trigonometriche (seno, coseno, tangente), segliendo opportunamente i valori di x. Soluzione Definiamo un vettore x di 101 punti equispaziati nell’intevallo [0, 2π]. >>x=[0:2*pi/100:pi]; >>y1=sin(x); >>plot(x,y1) >>y2=cos(x); >>figure(2) >>plot(x,y2) Si può aggiungere una griglia sullo sfondo con il comando grid on, oppure dal menu della figura: Edit→Axes Properties. (Vedere la figura 1) Per il grafico della tangente scegliamo l’intervallo (−π/2, π/2) (escludiamo i valori (2k + 1)/2π): >>x=[pi/2+pi/100:pi/100:pi/2-pi/100]; >>y3=tan(x); >>figure(3) >>plot(x,y3) (Vedere la figura 2) 4.2 Rappresentare in colori diversi, sullo stesso grafico, y = x, y = x2 , y = x3 . 4 Figura 1: Grafici di sin(x) e cos(x) Figura 2: Grafico di tan(x) 5 Figura 3: Grafici di x, x2 , x3 Soluzione >>x=[-1:0.02:1]; >>y1=x; >>y2=x.ˆ2; >>y3=x.ˆ3; >>plot(x,y1,’b’) >>hold on >>plot(x,y2,’r’) >>plot(x,y3,’g’) >>grid on (Vedere la figura 3) 4.3 Disegnare il grafico di |x|, della sua traslata in alto di 2 unità, e della sua traslata a destra di 1 unità. Soluzione >>x=[-3:0.05:3]; >>y=abs(x); >>plot(x,y,’b’) >>hold on >>plot(x,y+2,’r’) >>plot(x+1,y,’g’) >>grid on (Vedere la figura 4) 6 Figura 4: Grafico di |x| e delle sue traslate 6 Numeri complessi 6.1 Dati i seguenti numeri complessi in forma polare, trovarne la forma cartesiana, a mano e utilizzando Matlab: a) ρ = 2, θ = π/3 b) ρ = 10, θ = 3π/2 c) ρ = 1/2, θ = −π/4 (Comandi: sin, cos, exp) Soluzione Definiamo ρ e θ: >>rho=2; >>theta=pi/6; Per ottenere la forma cartesiana possiamo ricavare separatamente la parte reale e immaginaria: >>x=rho*cos(theta); >>y=rho*sin(theta); e scrivere il numero complesso cosı̀: >>a=x+i*y; oppure semplicemente digitare: >>a=rho*exp(i*theta). a) 1.0000 + 1.7321i b) -0.0000 -10.0000i c) 0.3536 - 0.3536i 7 6.2 Dati i seguenti numeri complessi in forma cartesiana, trovarne la forma polare, a mano e utilizzando Matlab: a) z = −10i √ √ b) z = − 2/2 − i 2/2 √ c) z = 1/2 − i 3/2 (Comandi: atan2, real, imag, abs) Soluzione Una volta inserito il numero z >>z=-10*i calcoliamo il modulo con il comando abs >>rho=abs(z); e l’argomento con il comando atan2 che calcola l’arcotangente su 4 quadranti. Per farlo riceve in ingresso (vedere l’help di Matlab) le coordinate y e x del punto quindi nel nostro caso la parte immaginaria e reale: theta=atan2(imag(z),real(z)); Per calcolare θ in gradi digitiamo: theta g=theta*180/pi a) ρ = 10, θ = 270◦ b) ρ = 1, θ = 225◦ c) ρ = 1, θ = 300◦ 6.3 Scrivere una function che riceve in ingresso due numeri complessi, ne calcola e restituisce somma e prodotto e rappresenta i due numeri, la somma e il prodotto nel piano complesso. Eventualmente utilizzare due figure diverse: >>figure(1) >>compass(...) >>figure(2) >>compass(...) Oppure utilizzare il comando subplot, come mostrato di seguito: >>subplot(2,1,1) >>compass(...) >>subplot(2,1,2) >>compass(...) Calcolare a mano somma e prodotto di z1 = 3 + 2i, z2 = −1 − i, quindi verificare il risultato con la funzione Matlab. 8 Soluzione function [s,p]=somma prod comp(z1,z2); s=z1+z2; p=z1*z2; figure(1) compass(z1,’b’) hold on compass(z2,’r’) compass(s,’g’) axis auto figure(1) compass(z1,’b’) hold on compass(z2,’r’) compass(p,’g’) axis auto 6.4 Utilizzando la funzione comp roots calcolare le radici n-sime, con n=2,3,4 di 1 e i. Soluzione Vedere la figura 5. 9 Figura 5: Radici complesse di 1 ed i 10