Corso di Laurea in Ingegneria Energetica POLINOMI IN MATLAB Bologna, 13 marzo 2008
Polinomi Un polinomio in Matlab viene rappresentato mediante un vettore contenente i suoi coefficienti. Per esempio, il polinomio x 3 +2 2x 2 +7 7x +5 viene rappresentato mediante il vettore p1 >> p1=[1 2 7 5] p1 = 1 2 7 5-1-
Polinomi: i comandi poly e root Sui polinomi possono essere fatte una grande quantità di operazioni Creazione di un polinomio mediante i poli >> p2=poly([0 l 1]) p2 = 1-1 0 Calcolo delle radici di un polinomio >> p3=[1 3 2]; >> roots(p3) ans = -2-1 -2-
Polinomi: il comando polyder Un polinomio può essere derivato >> p1 p1 = 1 2 7 5 >> polyder(p1) ) ans = 3 4 7-3-
Polinomi: il comando polyfit Molto interessanti sono le operazioni messe a disposizione per determinare il polinomio che più approssima una serie di punti >> x=0:0.1:1; >> y=[-.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2]; >>p = polyfit(x,y,2) ans = -9.8108 20.1293-0.0317 In quest'ultimo esempio sono stati individuati i coefficienti di un polinomio p(x) di grado 2 che associa i valori p(x i ) ai valori y i. p è un vettore riga di lunghezza (n+1) che contiene i coefficienti del polinomio -4-
Polinomi: il comando polyval Il comando polyval determina il risultato dell'applicazione del polinomio a un vettore di punti x1 >> p=polyfit(x,y,2) p = >> x1=0:0.01:1; -9.8108 20.1293-0.0317 >> y1=polyval(p,x1); y y1 contiene i valori del polinomio p per ogni elemento di x1-5-
Corso di Laurea in Ingegneria Energetica GRAFICA 2D Bologna, 13 marzo 2008
Grafica 2D In Matlab è possibile utilizzare comandi per grafica 2D e 3D. Esistono inoltre comandi per creare delle animazioni. Le funzioni principali per gestire grafici 2D sono: -7-
Grafica 2D: il comando plot Se si vuole per esempio costruire il grafico lineare della funzione y = (senx)/x nell intervallo 0 10, è necessario seguire i seguenti passi: 1. definizione di un vettore x con un numero elevato di valori equispaziati tra 0 e 10 ; 2. definizione di un vettore y in cui ciascun elemento è pari a (senx i )/x i dove x i è il corrispondente elemento di x; 3. esecuzione del comando plot. Il codice potrebbe quindi essere: x=0:.1:10; % oppure x=linspace(0,10,100); y=(sin(x))./x; plot(x,y) -8-
Grafica 2D: il comando plot Il risultato che si ottiene è: 1 0.8 0.6 0.4 0.2 0-0.2-0.4 04 0 1 2 3 4 5 6 7 8 9 10-9-
Grafica 2D: il comando plot Il comando plot può anche essere usato nella forma >>plot(x,y,'s'); dove s è una stringa di caratteri scelti da una o più delle seguenti colonne: Colore Connotazione dei punti Connotazione della linea y giallo. Punto - continua (default) m magenta o circolo : tratteggiata c ciano x croce -. punto-linea r rosso + segno più -- a tratteggio lungo g verde b blu (default) w bianco k nero * asterisco s quadrato d diamante v triangolo (in giù) ^ triangolo (in su) < triangolo (verso sinistra) > triangolo (verso destra) p pentagramma h esagramma -10-
Grafica 2D: il comando plot Possono inoltre essere specificate le caratteristiche della linea utilizzando le proprietà dei grafici plot (...,'PropertyName',PropertyValue,...) LineWidth Specifica lo spessore (in punti) della linea. MarkerEdgeColor Specifica il colore del punto o il colore del contorno in caso di punti pieni. MarkerFaceColor Specifica il colore della faccia di punti pieni. MarkerSize Specifica la dimensione dei punti in unità di punti. -11-
Grafica 2D: altri comandi Mediante il comando grid è possibile far comparire una griglia di riferimento sul grafico. Ad un grafico possono inoltre essere assegnati alcuni elementi di testo mediante i seguenti comandi: title('xyz') ') titolo del grafico xlabel('xyz') etichetta sull asse orizzontale ylabel('xyz') gtext('xyz') etichetta sull asse verticale testo posizionato nel grafico usando il mouse Il comando legend consente di posizionare una legenda nel grafico corrente utilizzando le stringhe specifiche come etichette >>legend(string1,string2,string3, i i...) -12-
Grafica 2D: i comandi hold on e figure Matlab riscrive sempre lo stesso grafico, sostituendo quello vecchio con quello nuovo. E possibile mettere due grafici sulla stessa finestra con due comandi distinti utilizzando il comando hold on. >> plot(x,y1) >> hold on >> plot(x,y2) >> hold off Per creare un nuovo grafico senza perdere quello precedente è possibile farlo disegnare in una nuova finestra creata mediante il comando figure. -13-
Grafica 2D: esempio Nei seguenti script tutti i comandi di plot creano lo stesso grafico >> plot(x,y1,x,y2); >> plot(x,[y1;y2]); >> plot(x,y1) >> hold on >> plot(x,y2) >> hold off -14-
Altri comandi utili Il comando strcat consente di concatenare orizzontalmente stringhe. Tutti gli array in input devono avere lo stesso numero di righe, o possono essere singole stringhe di caratteri. >>T = strcat(s1,s2,s3,...) Il comando num2str consente di trasformare un numero in una stringa di caratteri. >>T = num2str(x) Questi due comandi, anche utilizzati insieme, possono essere utili per etichettare grafici mediante i comandi title, xlabel, ylabel, legend e text -15-
Calcolo del fattore di condizionamento Il fattore di condizionamento K(A) di una matrice A misura la sensibilità della soluzione di un sistema di equazioni lineari Ax=b agli errori relativi introdotti sui dati in ingresso (cioè in A e in b). Valori del numero di condizionamento vicino ad uno indicano una matrice ben condizionata. In Matlab il numero di condizionamento è calcolato mediante il comando cond c = cond(a) % numero di condizionamento di Ain norma 2 c = cond(a,p) % numero di condizionamento di A in norma p -16-