You are on page 1of 13

Esercizi

1. Utilizzare un ciclo for e le istruzioni condizionali if per calcolare e rappresentare in un


diagramma la funzione:
y e x 1

per x 1

y 2 cos( x)

per 1 x 5

y 10( x 5) 1

per x 5

nel intervallo -2x6. Assegnare un titolo al diagramma. La variabile y rappresenta laltezza


in chilometri; la variabile x rappresenta il tempo in secondi.
2. Utilizzare un ciclo while per determinare quanti termini nella serie 2k (k=1,2,3,) sono
richiesti affinch la somma di questi termini sia maggiore di 2000. Qual valore della
somma di questi termini.
3. Una unit di distillazione viene caricata inizialmente con 100 moli di una miscela composta
al 60% di benzene e al 40% di toluene. Supponiamo che L sia la quantit di liquido (in moli)
che resta nel distillatore e x (moli B/moli) sia la frazione di benzene nel liquido residuo.
Applicando il principio di conservazione della massa totale al benzene e al toluene si
ottiene la seguente relazione:
1,625

0,625

x
1 x
L 100

0, 4
0, 6

Determinare la frazione residua in moli di benzene quando L=70.


4. Lenergia potenziale immagazzinata in una molla kx2/2, dove k la costante della molla e
x la compressione. La forza richiesta per comprimere la molla pari a kx. La seguente
tabella fornisce i dati per cinque molle:
Molla
Forza (N)
Costante k (N/m)

1
11
1000

2
7
800

3
8
900

4
10
1200

5
9
700

Calcolare (a) la compressione x di ogni molla; (b) lenergia potenziale immagazzinata in


ogni molla.
5. La capacit di due conduttori paralleli di lunghezza L e di raggio r, posti a una distanza d
nellaria, data da:
L
C
d r
ln

r
dove la permettivit dellaria (=8,85410-12 F/m). Scrivere un file script che accetta i
valori di input dellutente per d, L e r e poi calcola e visualizza la capacit C. Provare il file
con i seguenti valori: L=1m, r=0,0001m e d=0,004m.

6. Scrivere la funzione che accetta le temperature in gradi Fahrenheit (F) e poi calcola e
visualizza i corrispondenti valori in gradi Celsius (C). La relazione tra gradi Celsius e
Fahrenheit data dalla seguente formula:
C

5
F 32
9

7. Utilizzate un editor di testo per creare il file temperature.dat che contiene i seguenti
valori di temperature. Poi caricate i dati nella variabile temperature di MATLAB.
Calcolate il valore medio di ogni colonna:
78.8
99.5
89.5

55.9
66.8
77.0

45.9
78.0
56.7

8. La solubilit dellossigeno nellacqua funzione della temperatura dellacqua. Indichiamo


con S la solubilit dellossigeno espressa in millimoli di O2 per litro di acqua; T la
temperatura in oC. Ottenere una funzione S(T) che meglio approssima i dati della seguente
tabella. Utilizzare la curva ottenuta per prevedere il valore di S quando T=25 oC e T=50oC.
T (oC)
5
10
15
20
25
30
35
40
45

S (milimoli di O2
per litro di H2O)
1,95
1,7
1,55
1,4
1,3
1,15
1,05
1,0
0,95

9. I seguenti dati rappresentano i valori delle temperature T dellacqua che esce da un


rubinetto di acqua calda a partire dallistante t=0 in cui il rubinetto stato aperto.
Applicare linterpolazione lineare a spline per stimare i valori delle temperature nei
seguenti istanti: t=0.6, 2.5, 4.7, 8.9s.
t(s)
0
1
2
3
4
5

T(oF)
72,5
78,1
86,4
92,3
110,6
111,5

t(s)
6
7
8
9
10

T(oF)
109,3
110,2
110,5
109,9
110,2

10. La seguente equazione descrive la temperatura T(t) di un oggetto immerso in un liquido a


temperatura costante Tb:
dT
10
T Tb
dt
Supponete che la temperatura delloggetto sia inizialmente T(0)=70oF e la temperatura del
liquido sia Tb=170oF. Rappresentare in un diagramma la temperatura delloggetto T in
funzione del tempo t. Dopo quanto tempo la temperatura T delloggetto sar uguale a
quella del liquido?
11. Lequazione del livello dellacqua h contenuta in un serbatoio sferico che ha un foro di
drenaggio circolare di area A posto sul fondo la seguente:
dh
2rh h2 Cd A 2 gh
dt
Supponete che il raggio r del serbatoio sia 3m, il foro di drenaggio abbia un raggio di 2cm,
Cd=0.5 e il livello iniziale dellacqua h(0)=5m. Laccelerazione di gravit g=9.81 m/s2.
Rappresentate in un diagramma il livello dellacqua in funzione del tempo, finch h(0)=0.
Stimate approssimativamente il tempo richiesto affinch il serbatoio si svuoti
completamente.
12. Si vuole determinare il volume V occupato da un gas ad una temperatura T e soggetto ad
una pressione p. Lequazione di stato di un gas :

p a N V 2 V Nb kNT

nella quale a e b sono dei coefficienti che dipendono dallo specifico tipo di gas, N il
numero di molecole di gas contenute nel volume V e k la cosiddetta costante di
Boltzman. Per lanidride carbonica i coefficienti a e b valgono rispettivamente a=0.401Pam6
e b=42.710-6m3. Si trovi il volume occupato da 1000 molecole di anidride carbonica poste
ad una temperatura T=300K e ad una pressione p=3.5107Pa utilizzando il metodo di
bisezione con una accuratezza pari a 10-12 (la costante di Boltzmann pari a
k=1.380650310-23 Joule K-1) e utilizzando la funzione fzero di MATLAB con una
accuratezza pari a 10-12. Confrontare i tempi di calcolo per due metodi.
13. Lequazione della tensione v(t) ai capi di un condensatore una funzione del tempo:
t

1
v(t ) i (t )dt Q0
C0

dove i(t) la corrente e Q0 la carica iniziale. Un condensatore, inizialmente scarico, ha


una capacit C=10-5 farad. Se la corrente che lo attraversa i(t)=2[1+sin(5t)]10-4 ampere,
rappresentate in un diagramma la tensione v(t) in funzione del tempo per 0t1.2 s.

14. Per il progetto di una camera a raggi infrarossi si interessati a calcolare lenergia emessa
nello spettro (infrarosso) compresso tra le lunghezze donda da 3 m a 14 m da un corpo
nero. La soluzione di questo problema si ottiene calcolando il seguente integrale:
E (T ) 2.39 10

11

14104

3104

x e
5

dx

1.432 (Tx )

essendo x la lunghezza donda (in cm) e T la temperatura (in gradi Kelvin) del corpo nero. Si
calcoli la funzione E(T) per T pari a 213K con almeno 10 cifre significative.

Esercizio 1.
i=1;
for x=-2:0.05:6
if x<-1
y(i)=exp(x+1);
elseif x>=-1 && x<5
y(i)=2+cos(pi*x);
else
y(i)=10*(x-5)+1;
end
i=i+1;
end
plot(-2:0.05:6,y);
title('Esercizio 1')
xlabel('tempo [s]')
ylabel('altezza [km]')

Esercizio 2.
sum=0;
k=0;
while sum<2000
k=k+1;
sum=sum+2^k;
end
k
%numero di elementi
2^k %ultimo elemento
sum

Esercizio 3.

clc
clear all
x=[0:0.001:0.6];
L=f_esc3(x);
plot(L,x)
grid on
xlabel('L [mol]')
ylabel('x [mol B/mol]')
[L0,x0]=ginput(1)
F unzione ginput permette di determinare il valore x direttamente dal grafico; in particolare
alla fine di tutte le istruzioni che creano e formattano un diagramma il comando
[x,y]=ginput(n) acquisisce n punti e ne registra le coordinate x e y nei vettori x e y, che
hanno dimensione n. Basta posizionare il puntatore in un punto del diagramma e premere il
pulsante del mouse.
Ovviamente possiamo per trovare il valore di x possiamo risolvere l'equazione usando per esempio
il commando fzero, in tal caso dobbiamo scrivere nostra funzione nella forma di f(x)=0 (quindi
dobbiamo aggiungere -70 a destra dell'espressione).
x0=fzero('f_esc3bis',0.5)
dove f_esc3bis.m:
function y=f_esc3bis(x)
y=100*(x/0.6).^(0.625).*((1-x)/0.4).^(-1.625)-70;
O usando le funzioni anonime:

x0=fzero(@(x) 100*(x/0.6).^(0.625).*((1-x)/0.4).^(-1.625)-70,0.5)

Esercizio 4.

clc
clear all
%forza (N)
F=[11 7 8 10 9];
%costante k (N/m)
k=[1000 800 900 1200 700];
%F=k*x mentre Ep=(k*x*x)/2, quindi:
x=F./k
Ep=(k.*x.*x)./2
Attenzione! Usare gli operatori con .!

Esercizio 5.

clc
clear all
eps=8.854*10^(-12);
d=input('Distanza tra conduttori:');
L=input('Lunghezza dei conduttori:');
r=input('Raggio dei conduttori:');
C=(pi*eps*L)/log((d-r)/r);
disp(C)

Esercizio 6.

clc
clear all
%la funzione pu essere usata per i scalari, per esempio
F1=100;
C1=f_esc6(F1)
%o vettori
F2=(70:0.1:75);
C2=f_esc6(F2)
dove f_esc6.m:
function C=f_esc6(F)
C=5/9*(F-32);

Esercizio 7.
Aprire per esempio notepad e digitare:

78.8
99.5
89.5

55.9
66.8
77.0

Salvare con il nome temperature.dat.

clc
clear all
temperature=load('temperature.dat');
T1=mean(temperature(:,1));
T2=mean(temperature(:,2));
T3=mean(temperature(:,3));

45.9
78.0
56.7

Esercizio 8.

clc
clear all
T=[5:5:45];
S=[1.95 1.7 1.55 1.4 1.3 1.15 1.05 1.0 0.95];
plot(T,S,'o')
%dopo usiamo Basic Fitting Tool (nella finestra grafica, Tools ->
Basic Fitting)
%o polyfit

In alternativa si pu usare polyfit + polival.

Esercizio 9.

clc
clear all
t=[0:1:10];
T=[72.5 78.1 86.4 92.3 110.6 111.5 109.3 110.2 110.5 109.9 110.2];
ti=[0.6 2.5 4.7 8.9];
%interpolazione lineare
Ti_lin=interp1(t,T,ti,'linear')
%interpolazione spline
Ti_spl=interp1(t,T,ti,'spline')
plot(t,T,'o:')
hold on
plot(ti,Ti_lin,'rs',ti,Ti_spl,'g*')

Esercizio 10.

clc
clear all
[t,T]=ode23('f_esc10',[0:1:200], 70);
plot(t,T)
axis([0 100 0 180])
Si pu usare la funzione [x,y]=ginput(1) per stimare il tempo o meglio determinare l'indice di primo
valore uguale o maggiore di 170 usando la funzione find:
ind=find(T>=170);
t_finale=t(min(ind))
Il sistema ODE definito nel file f_esc10.m:
function Tdot=f_esc10(t,T)
Tdot=0.1*(170-T);

Esercizio 11.

2rh h2

dh
dh Cd A 2 gh Cd rA2 2 gh
Cd A 2 gh

dt
dt 2rh h2 2rh h 2

Attenzione con le unit di misura, rA=0.02m!

clc
clear all
global r rA C g
r=3;
rA=0.02;
C=0.5;
g=9.81;
%usando solver di Matlab
[t,h]=ode15s(@f_esc11,[0,26000],5);
plot(t,h)
grid on
Per poter usare i parametri allinterno di funzione le dichiariamo come global (sia nello script che nella
funzione):

function hdot=f_esc11(t,h)
global r rA C g
hdot=(-C*rA*rA*sqrt(2*g*h))/(2*r*h-h*h);
Il tempo di svuotamento circa 25200 s.

Esercizio 12.

p a N V 2 V Nb kNT

2
f (V ) p a N V V Nb kNT

clc
clear all
global p a N b k T
a=0.401;
b=42.7e-6;
N=1000;
T=300;
p=3.5e7;
k=1.3806503e-23;
v=linspace(0,0.5);
y=f_esc12(v);
plot(v,y);
grid on
hold on
%usando fzero
v0=input('Punto iniziale per fzero: ');
options=optimset('TolFun',1e-12);
tic;
v0=fzero('f_esc12',v0,options);
toc
disp(v0)
plot(v0,f_esc12(v0),'r*')
%con metodo di bisezione
A=input('Limite sinistra (punto a) per metodo di bisezione: ');
B=input('Limite destra (punto b) per metodo di bisezione: ');

k=0;
eps=1e-12;
tic;
while b-a>eps
v0=(A+B)/2;
if f_esc12(v0)==0
disp(v0)
break
elseif f_esc12(A)*f_esc12(v0)<0
B=v0;
else
A=v0;
end
k=k+1;
end
toc
Esercizio 13.
clc
clear all
C=1e-5;
v=@(t) (2e-4/C)*(1+sin(5*t));
T=linspace(0,1.2,20);
tic;
for i=1:20
V(i)=quad(v,0,T(i));
end
toc
plot(T,V)
grid on
%o meglio
tic;
V2(1)=quad(v,0,T(1))
for i=2:20
V2(i)=quad(v,T(i-1),T(i))+V2(i-1);
end
toc

Esercizio 14.
clc
clear all
format long
T=213;
E=@(x) (2.39*1e-11)./(x.^5.*(exp(1.432./(T.*x))-1));
quad(E,3e-4,14e-4)

You might also like