Esercizi scalari 10*10^6 + 3; (Usare la notazione esponenziale) coseno(30 ) - seno(pi greco/2) + pi greco /6 (0.3896) (3j+2)/(4+5J) (0.5610 + 0.0488i) a=42; b=25; c=a* b Risultato c=210 Cancellare b dal workspace con il comando clear b b=36; Ricalcolare c Risultato c=252 Cancellare tutte le variabili dal workspace
Esercizi con workspace -Creare 2 variabili dal workspace di nome j e k ed assegnarli il valore numero 5 e 7. -Salvare l intero workspace sul desktop. -Utilizzare il comando clear all per eliminare tutte le variabili dal workspace. -Aprire le variabili salvate. -Calcolare m=(j*3)+(k*sqrt(5))+5^(2/6);
Esercizio script Utilizzare uno script che in automatico calcoli e visualizzi la variabile c opportunamente calcolata. a=42; b=25; c=a* b; -Salvare lo script con lo stesso nome con cui si intende richiamarlo -Visualizzare il risultato digitando c nel Command Window -Visualizzare il risultato utilizzando il comando disp nello script. (N.B. Dopo la modifica salvare lo script prima di lanciarlo!!)
Esercizio function Utilizzare una function che ha in ingresso a,b e come variabile d uscita c. (Ovviamente nella function i nomi delle variabili possono essere diversi!!) -Salvare la function con lo stesso nome con cui si intende richiamarla -Esempio function [output]=esempio_function(input1,input2) output=input1*sqrt(input2); end
Esercizio script 2 Utilizzare uno script che in automatico acquisisca le variabili a e b dal Command Window e calcoli e visualizzi la variabile c opportunamente calcolata. -Utilizzare il comando input per acquisire il valore di a facendo apparire a video (Inserire il valore numerico di a). -Utilizzare il comando input per acquisire il valore di b facendo apparire a video (Inserire il valore numerico di b). -Calcolare c = a b -Utilizzare il comando disp per visualizzare a video il risultato facendo apparire il testo (Il valore di c è: ) (Suggerimento: E possibile utilizzare due comandi disp: uno per il testo e l altro per la variabile) disp( Il valore di c è: ) disp(c)
Caricamento di un vettore Caricare un vettore di 5 elementi dal Command Window v=zeros(3,1); for i=1:3 a=num2str(i); b=['inserire il valore del ',a,' elemento\n']; v(i)=input(b); end
Esercizio sulle pompe centrifughe Assegnata la portata Q in l/h e la prevalenza H in m, calcolare la potenza meccanica all albero conoscendo i seguenti rendimenti: h v Rendimento volumetrico= 0,98 h y Rendimento idraulico= 0,97 h m Rendimento meccanico= 0,98 P= g Q H h v h y h m g=9,81*1000; Q=40000l/h; H=40m; Risultato P= 4.6802 kw Creare uno script che sia in grado di acquisire Q,H e un vettore eta contenente tutti i rendimenti con il seguente ordine: eta(1)= h v eta(2)= h y eta(3)= h m. Per convertire Q in m3/s e calcolare P creare la function pump_power che ha come ingressi Q,H e il vettore eta, come uscita la potenza meccanica della pompa. Dopo far restituire il valore di P mediante comando disp nello script. Utilizzare il costrutto WHILE per uscire o rilanciare il programma.
Q [m3/s]=q[l/h]/1000/3600 Esercizio sulle pompe Aiuto Per caricare il vettore eta è possibile utilizzare un ciclo for del tipo: for i=1:3 Switch i Caso 1 Far apparire la scritta Inserire il rendimento volumetrico Caso 2 Far apparire la scritta Inserire il rendimento idraulico Caso 3 Far apparire la scritta Inserire il rendimento meccanico end eta(i)=input( ); end While scelta== ripeti -Programma -Acquisire scelta mediante comando input=( Programma terminato. Digitare ripeti per rieseguire il programma oppure un qualsiasi tasto per terminare \n ); end
Esercizio con plot x=[0.1:0.001:5]; Y=1/x Y=x^2 Y=3*x-8 Plottare le seguenti funzioni nella stessa figura con il comando hold on. Plottare le tre funzioni nella stessa figura senza comando hold on (plot(x,y1,x,y2,x,y3)). Plottare le tre funzioni in tre figure separate tramite il comando figure. figure(1) Istruzioni plot figure(2) Istruzioni plot figure(3) Istruzioni plot
Esercizio con funzione seno x=[0:0.001:2*pi]; Y=2*sin(x) Y1=sin(3*x) Y3=Y+Y1 Risultato N.B. Utilizzare i comandi: legend grid on title xlabel ylabel
Esercizio con funzione seno 2 Data la funzione seno di x, plottare la seguente figura x=[0:0.001:2*pi]; Y=sin(x); Aiuto: -E possibile porre pari a 0 metà degli elementi di Y tramite il comando zeros. -La metà degli elementi di Y è uguale alla metà degli elementi di x. (N.B. Per conoscere il numero di elementi è possibile usare il comando length)
Esercizio su politropica Un turbocompressore comprime aria con un rapporto manometrico di compressione B=2.2. L aria è considerata come un gas perfetto quindi vale la relazione: P 1 V 1 m = P 2 V 2 m con costante R = 287,1 J/Kkg. La temperatura di ingresso è pari a T1=288K. Le perdite dovute alle resistenze passive sono pari a Lw=3 kcal/kg. (Convertire in J) Valutare m permetterebbe di calcolare il volume specifico e la temperatura in uscita dallo stadio di compressione. Per valutare l espressione di m è possibile risolvere la seguente equazione: (B m 1 k m -1)*( k 1 m m 1 ) L w R T 1 =0
Esercizio su politropica Tracciare la funzione con il comando plot e calcolare l intersezione con l asse delle ascisse tramite Data Cursor. Creare una m-file che sia in grado di calcolare il valore numerico dell intersezione in automatico. Aiutino: E possibile utilizzare un ciclo for che controlla i valori del vettore y in modo che quando uno di questi valori è prossimo a zero restituisce il valore di x corrispondente. dim=size(m); j=1; for i=1:1:dim(2) if y(i)>=0.00001 && y(i)<=0.00005; u(j)=m(i); j=j+1; end end disp(max(u)); Risultato m=1.5011
Esercizi sulle matrici Data la seguente matrice A sostituire la 2 riga con il vettore a e la 3 colonna con il vettore b. a=[5 4 1]; b=[5 1 1]; A = 5 2 6 0 2 3 1 4 7 Modificare l elemento A(3,3) e porlo pari a 4. Calcolare determinante, traccia ed inversa della matrice A così ottenuta. A = 5 2 5 5 4 1 1 4 4 Determinante=102 Traccia=13 inv(a) 0.1176 0.1176-0.1765-0.1863 0.1471 0.1961 0.1569-0.1765 0.0980
Media ponderata Creare un programma che sia in grado di acquisire elemento per elemento il vettore voti e il vettore pesi in modo da calcolare la media pesata tramite una function da costruire in modo opportuno. Si considerino 5 materie (Analisi, Fisica, Elettrotecnica, Meccanica, Inglese) con pesi pari a (8,12,8,8,3) e con voti pari a ( 20,25,30,22,30). Risultato MP=24.7692. Per caricare il vettore utilizzare un ciclo for con comando di input. Es. (per il vettore Voti) num_esami=input('inserire il numero di esami \n'); for i=1:num_esami; Messaggio_voto=[' Voto numero ',num2str(i)]; disp(messaggio_voto); Voti(i)=input('Inserire il valore \n'); end Per il vettore Pesi procedere in modo analogo. Dopo aver acquisito i vettori procedere al calcolo della media pesata: MP=Voti*(Pesi) /(Somma degli elementi del vettore Pesi).
Risoluzione di un sistema di 7 equazioni in 7 incognite 5x 1 + x 2 + 3 x 5 + x 6 = 23 x 1 + 25 x 3 + 58 x 4 + x 7 = 14 x 5 + 18 x 7 = 0 25 x 1 + x 4 x 7 = 1 x 2 + 48 x 6 x 7 = 3 x 1 + 2 x 3 = 0 x 2 + x 4 + 5 x 5 = 18 X = 0.0365 31.9799-0.0182 0.2459-2.8452-0.6269 0.1581 Costruire uno script che richiede in ingresso i vettori riga dei coefficienti e il vettore colonna dei termini noti. Dopo costruire la matrice dei coefficienti e calcolare il vettore x. Per verificare la correttezza della soluzione sostituire i valori trovati nel sistema.
Utilizzo del vettore a 3 dimensioni per calcolare la media ponderata di una classe di 3 studenti 5 materie (Analisi,Fisica,Elettrotecnica,Meccanica,Inglese) Pesi (8,12,8,8,3) Voti alunno 1 = (25 18 22 26 30) Voti alunno 2 = (30 28 30 25 29) Voti alunno 3 = (18 18 25 20 26) >> Pesi=[8 12 8 8 3]; >> Voti_1=[25 18 22 26 30]; >> Voti_2=[30 28 30 25 29]; >> Voti_3=[18 18 25 20 26]; >> Alunno_1=[Pesi' Voti_1']; >> Alunno_2=[Pesi' Voti_2']; >> Alunno_3=[Pesi' Voti_3']; >> Classe(:,:,1)=Alunno_1; >> Classe(:,:,2)=Alunno_2; >> Classe(:,:,3)=Alunno_3;
Utilizzo del vettore a 3 dimensioni per calcolare la media ponderata di una classe di 3 studenti Risultato >> MP_1=(Classe(:,1,1)'*Classe(:,2,1))/sum(Classe(:,1,1)) MP_1 = 22.8205 >> MP_2=(Classe(:,1,2)'*Classe(:,2,2))/sum(Classe(:,1,2)) MP_2 = 28.2821 >> MP_3=(Classe(:,1,3)'*Classe(:,2,3))/sum(Classe(:,1,3)) MP_3 = 20.4615