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