Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAgostina Grande Modificato 11 anni fa
1
3 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA
2
Esercizio1 - parte a Inserire nel file ciclo_if.m considerato nella lezione 2, un comando di input per gestire in maniera interattiva la dimensione della matrice; usare poi il comando disp per visualizzare il risultato. Costruire le matrici di dimensioni N=5 e N=4 (nellordine) ed analizzare i risultati.
3
Soluzione esercizio1- parte a % File ciclo_if.m N=input('Inserisci N '); for I=1:N for J=1:N if I == J A(I,J) = 2; elseif abs(I-J)== 1 A(I,J) = -1; else A(I,J) = 0; end disp('A = ');disp(A)
4
Output file ciclo_if.m >> clear all >> ciclo_if Inserisci N 5 A = 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 >> ciclo_if Inserisci N 4 A = 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 ????? Ad ogni chiamata viene aggiornata nei termini, ma non nella dimensione, la matrice A contenuta nel workspace Il nome della variabile di output non può essere modificato senza modificare il file
5
Esercizio1 – parte b Creare un file function, dal nome fun_ciclo_if.m, che contenga tutte le istruzioni del file ciclo_if.m, tranne la prima ( N=input(Inserisci N) ). Utilizzare il file fun_ciclo_if.m per costruire le matrici con dimensioni N=5 e N=4 (nellordine) ed analizzare i risultati.
6
Soluzione esercizio1 – parte b function A=fun_ciclo_if(N) for I=1:N for J=1:N if I == J A(I,J) = 2; elseif abs(I-J)== 1 A(I,J) = -1; else A(I,J) = 0; end
7
Output file fun_ciclo_if.m >> clear all >> A=fun_ciclo_if(5); A = 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 >> A=fun_ciclo_if(4); A = 2 -1 0 0 -1 2 -1 0 0 -1 2 -1 0 0 -1 2 >> Ad ogni chiamata la matrice A, contenuta nel workspace, viene sostituita Si possono avere tutte e due le matrici dando un nome diverso alla variabile di output nella chiamata della funzione
8
Esercizio 2 Scrivere un file function che assegni a y la seguente espressione: y=(x/2.4)^3-2*x/2.4+cos(pi*x/2.4); Si calcoli, quindi, il valore di y per: x=2.5, x=[2.3 4.5 6.2].
9
File function e risultati esercizio 2 >> y=p(2.5) y = -1.9445 >> x=[2.3 4.5 6.2]; >> y=p(x) ??? Error using ==> ^ Matrix must be square. Error in ==> C:\MATLAB6p1\work\p.m On line 2 ==> y=(x/2.4)^3- 2*x/2.4+cos(pi*x/2.4); function y =p(x) y=(x/2.4)^3-2*x/2.4+ … cos(pi* x/2.4);
10
Correzione file esercizio 2 >> y=p(x) y = -2.0280 3.7657 11.8147 >> >> y=p(x) y = -2.0280 3.7657 11.8147 >> function y =p(x) y=(x/2.4).^3-2*x/2.4+cos(pi*x/2.4);
11
Altro modo di risolvere lesercizio 2 >> y=p(x) y = -2.0280 3.7657 11.8147 >> >> y=p(x) y = -2.0280 3.7657 11.8147 >> function y =p(x) f='(x/2.4).^3-2*x/2.4+cos(pi*x/2.4)'; y=eval(f);
12
Esercizio 3 A- Scrivere un file script che consenta di disegnare, in [0,4] le funzioni: y=3*sin(pi*x) e y= exp(-0.2*x) sulla stessa figura. Si consideri la partizione x = 0:0.02:4 B- Inserire le label per gli assi x, y ed il titolo. C- Usare gtext per indicare i vari punti di intersezione dei grafici. D- Memorizzare il file col nome grafico.
13
Come creare un grafico 2-D Sintassi per disegnare una curva con: specifica dei dati nel vettore x e/o y specifica del colore, e dello stile della linea plot(x, y, colore_stilelinea) plot(x1, y1,r:,x2,y2,b-,...) Sintassi per disegnare più curve:
14
Risultato esercizio3 titolo » title('Grafico ed …') etichetta asse y » ylabel('y') etichetta asse x » xlabel('x') gtext »gtext('x3')
15
File grafico.m clear all x=0:0.02:4; y=3*sin(pi*x); plot(x,y,'r'),xlabel('x');ylabel('y');grid hold on y=exp(-.2*x); plot(x,y,'g') %osservare il numero delle intersezioni gtext('x1');gtext('x2');gtext('x3');gtext('x4') ; title('Grafico ed intersezioni di 3*sin(pi*x) e exp(-0.2*x)') hold off clear all x=0:0.02:4; y=3*sin(pi*x); plot(x,y,'r'),xlabel('x');ylabel('y');grid hold on y=exp(-.2*x); plot(x,y,'g') %osservare il numero delle intersezioni gtext('x1');gtext('x2');gtext('x3');gtext('x4') ; title('Grafico ed intersezioni di 3*sin(pi*x) e exp(-0.2*x)') hold off
16
Come operare con leditor grafico Accedere alla finestra property editor per migliorare il grafico, selezionando, con il mouse, la voce Edit sulla figura e, dal menu che compare, la voce Figure Properties… Le icone indicate dalle linee, consentono di inserire testo, frecce e linee su una figura
17
Come inserire un testo sulla figura 1.Selezionare licona 2.Posizionarsi nel punto desiderato e cliccare 3.Scrivere x_3 per ottenere x 3 (opp. x^3 per x 3 ) 4.cliccare fuori dal riquadro per rendere attivo lo scritto
18
Come Come inserire una freccia sulla figura 1.Selezionare licona 2.Posizionarsi nel punto di inizio della freccia, cliccare il tasto sinistro del mouse che si deve trascinare fino al punto di arrivo della freccia.
19
Esercizio 4 Scrivere un file script che consenta di disegnare, in [-2,2] e su due figure distinte, il grafico della funzione: f(x)=exp(-x 2 )cos(20x) che viene definita nella function fun, utilizzando i comandi MATLAB: plot per la figura 1 fplot per la figura 2. N.B. Si può utilizzare la partizione x=[-2:0.1:2]
20
Soluzione esercizio 4 function y=fun(x) y=exp(-x.^2).*cos(20*x); figure(1) x=[-2:0.1:2]; y=fun(x); plot(x,y),title('Comando plot') xlabel('x');ylabel('y'); grid figure(2) I=[-2,2]; fplot('fun',I), grid title('Comando fplot') xlabel('x');ylabel('y')
21
Figura 1
22
Figura 2
23
Comando subplot %file figure x=0.1:.1:5; subplot(2,3,1);plot(x,x); title('y=x');xlabel('x'); ylabel('y'); subplot(2,3,2);plot(x,x.^2); title('y= x^2');xlabel('x'); ylabel('y'); subplot(2,3,3),plot(x,x.^3); title('y= x^3');xlabel('x'); ylabel('y'); subplot(2,3,4),plot(x,cos(x)); title('y=cos(x)');xlabel('x');ylabel('y'); subplot(2,3,5),plot(x,cos(2*x)); title('y=cos(2x)');xlabel('x');ylabel('y') subplot(2,3,6),plot(x,cos(3*x)); title('y=cos(3x)');xlabel('x');ylabel('y') % I colori e lo spessore sono stati aggiunti utilizzando figure properties
24
Risultati file figure
25
Per utilizzare i file function 1.Salvare le directory: Sis_lin, eq_non_lin, Approx, ecc. … nella directory C:\MATLAB6p1\work 2. Salvare il file che si sta creando in editing e che magari contiene i dati per linput della function che si vuole utilizzare, nella directory: C:\MATLAB6p1\work 3. Mettere in Current Directory il nome della directory che contiene le function Matlab che si vogliono utilizzare ad esempio C:\MATLAB6p1\work\eq_non_lin Buon lavoro!!!!
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.