10.07.2015 Views

Metodi di Interpolazione Polinomiale: Implementazione MATLAB e ...

Metodi di Interpolazione Polinomiale: Implementazione MATLAB e ...

Metodi di Interpolazione Polinomiale: Implementazione MATLAB e ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

IntroduzioneLE TECNICHE per l’approssimazione <strong>di</strong> funzioni ricoprono estremaimportanza in numerose <strong>di</strong>scipline: non <strong>di</strong> rado si ha a che fare conproblemi in cui le funzioni esatte risultano particolarmente complesseda trattare (ad esempio, nel calcolo <strong>di</strong> integrali o <strong>di</strong> zeri), o ad<strong>di</strong>ritturain cui <strong>di</strong> tali funzioni siano noti solo dei valori <strong>di</strong>screti, come adesempio accade nell’ambito delle misure sperimentali; in ambito ingegneristico,ancora, in<strong>di</strong>viduare l’andamento <strong>di</strong> una particolare funzione<strong>di</strong>viene fondamentale in problemi <strong>di</strong> sintesi, nei quali, a partire dallaconoscenza dei valori delle grandezze in ingresso si richiede <strong>di</strong> determinareuna funzione <strong>di</strong> mappatura che associ agli ingressi le uscitedesiderate.In quest’ambito si inseriscono le tecniche <strong>di</strong> interpolazione, che permettono,dato un insieme <strong>di</strong> punti noto appartenenti ad una funzioneincognita, <strong>di</strong> in<strong>di</strong>viduare una curva che in corrispondenza <strong>di</strong> tali puntiassuma il valore della funzione stessa.In questo lavoro si sono sviluppati in <strong>MATLAB</strong> alcuni dei più notimeto<strong>di</strong> <strong>di</strong> interpolazione polinomiale, dei quali si sono poi confrontatele prestazioni in termini <strong>di</strong> errore <strong>di</strong> interpolazione. In seguito sonodescritte due possibili applicazioni <strong>di</strong> tali algoritmi: l’interpolazione <strong>di</strong>curve parametriche e la verifica <strong>di</strong> un approccio matematico al problemadell’appren<strong>di</strong>mento da esempi <strong>di</strong> alberi <strong>di</strong> decisione, problema cherientra nell’ambito del machine learning <strong>di</strong> agenti intelligenti.L.S.3


Capitolo 1<strong>Meto<strong>di</strong></strong> d’<strong>Interpolazione</strong><strong>Polinomiale</strong>1.1 Approccio Generale al Problema dell’<strong>Interpolazione</strong>Siano assegnate (n + 1) coppie <strong>di</strong> numeri reali ((x i , y i ), i = 1, . . . , n): sidefinisce interpolante una funzione che in corrispondenza dei valori x i assumai valori y i ,φ(x i ) = y i , i = 1, . . . , n (1.1)Scelto quin<strong>di</strong> uno determinato spazio <strong>di</strong> funzioni F <strong>di</strong> <strong>di</strong>mensione n, con{ϕ i } base per tale spazio, si vuole approssimare una funzione f(x) me<strong>di</strong>anteun’interpolante φ ∈ F e quin<strong>di</strong> esprimibile me<strong>di</strong>ante una combinazionelineare delle {ϕ i },n∑φ(x) = α j ϕ j (x) (1.2)j=0Sostituendo le con<strong>di</strong>zioni <strong>di</strong> interpolazione (1.1) in (1.2) si ottiene ilsistema linearen∑φ(x i ) = y i = α j ϕ j (x i ), i = 1, . . . , n ⇒ Φ · α = y (1.3)j=0la cui soluzione α = (α 1 , . . . , α n ) T è l’insieme dei coefficienti della combinazionelineare; si <strong>di</strong>mostra che la funzione <strong>di</strong> interpolazione esiste ed èunica se e solo se il determinante <strong>di</strong> Φ, detto determinante <strong>di</strong> Haar, è <strong>di</strong>versoda zero (con<strong>di</strong>zione <strong>di</strong> unisolvenza), nel qual caso le funzioni {ϕ i }definiscono un sistema <strong>di</strong> Chebychev .7


1.2. L’INTERPOLAZIONE POLINOMIALE 9%calcolo della matrice <strong>di</strong> VandermodeV = vander(xi);%calcolo dei coefficienti del polinomioc = V \ yi(:);%polinomio interpolante in forma canonicap = polyval(c, x);CiaoLo script prova_polycan.m permette <strong>di</strong> valutare tre <strong>di</strong>verse funzioni,sin(πx), cos(πx) e la funzione <strong>di</strong> Runge,y =11 + 25x 2nell’intervallo [−1, 1], dato un certo numero <strong>di</strong> no<strong>di</strong> <strong>di</strong> interpolazione e sfruttando100 no<strong>di</strong> <strong>di</strong> valutazione equispaziati: i grafici 1.1 e 1.2 riportanol’interpolazione della funzione seno per 4 e 8 no<strong>di</strong> <strong>di</strong> interpolazione.L’approccio così descritto, benchè funzionante, non risulta convenienteper alcuni motivi:1. la matrice <strong>di</strong> Vandermonde risulta essere malcon<strong>di</strong>zionata al cresceredel numero dei no<strong>di</strong> <strong>di</strong> interpolazione;2. l’algoritmo risulta instabile (per piccole variazioni dei coefficienti dellacombinazione lineare si hanno gran<strong>di</strong> variazioni sul polinomio interpolante);3. la complessità dell’algoritmo è O(n 3 ).1.2.2 Il Polinomio Interpolante <strong>di</strong> LagrangeLa causa dell’instabilità della forma canonica è da ricercarsi nell’instabilitàdella base scelta: un <strong>di</strong>verso approccio prevede quin<strong>di</strong> la valutazione delpolinomio interpolante a partire da una base <strong>di</strong>versa da quella canonica.Si definiscono polinomi caratteristici <strong>di</strong> Lagrange {L j (x)} n j=0L j (x) =n∏k=0k≠jper i quali è semplice osservare cheL j (x i ) = δ ij =x − x kx j − x k(1.7){1 i = j0 i ≠ j


10 CAPITOLO 1. METODI D’INTERPOLAZIONE POLINOMIALEFigura 1.1: <strong>Interpolazione</strong> con Polinomio in forma canonica <strong>di</strong> sin(πx), 4 no<strong>di</strong> <strong>di</strong>interpolazioneFigura 1.2: <strong>Interpolazione</strong> con Polinomio in forma canonica <strong>di</strong> sin(πx), 8 no<strong>di</strong> <strong>di</strong>interpolazioneLa matrice corrispondente a tale base è quin<strong>di</strong> una matrice identità, e ilsistema <strong>di</strong> equazioni composto dai polinomi caratteristici <strong>di</strong> Lagrange è unsistema <strong>di</strong> Chebychev.Il polinomio interpolante nella forma <strong>di</strong> Lagrange assume quin<strong>di</strong> la forma


1.2. L’INTERPOLAZIONE POLINOMIALE 11n∑p n (x) = y j L j (x) (1.8)j=0dalla quale notiamo che, a <strong>di</strong>versamente dalla forma canonica, per laquale veniva scelta una base semplice e tutta la potenza <strong>di</strong> calcolo venivaimpegata per il calcolo dei coefficienti, la base utilizzata è più complessa dacalcolare e i coefficienti sono già noti.<strong>Implementazione</strong> <strong>MATLAB</strong>La function polylag.m implementa un possibile algoritmo per il calcolo delpolinomio interpolante <strong>di</strong> Lagrange:n = length(xi);m = length(x);sum = zeros(m,1);for j = 1:msum(j) = 0;for k = 1:n%Valutazione del j-esimo polinomio <strong>di</strong> Lagrangespace = [1:k-1, k+1:n];pr = prod(x(j) - xi(space))/prod(xi(k) - xi(space));endend%j-esima componente del polinomio interpolantesum(j) = sum(j) + yi(k) * pr;CiaoLo script prova_polylag.m presenta la medesima struttura dello scriptprova_polycan.m precedentemente descritto: le figure 1.3 e 1.4 mostranol’interpolazione della funzione seno me<strong>di</strong>ante polinomio <strong>di</strong> Lagrange per 4e 8 no<strong>di</strong> <strong>di</strong> interpolazione rispettivamente, con 100 punti <strong>di</strong> valutazioneequispaziati. I risultati sono del tutto simili a quelli già ottenuti con ilpolinomio in forma canonica, ma in tal caso vengono eliminati i problemilegati al con<strong>di</strong>zionamento e alla stabilità; l’algoritmo implementato presentauna complessità O(n 2 ).1.2.3 La Formula <strong>di</strong> Neville<strong>Meto<strong>di</strong></strong> come quelli descritti in precedenza permettono <strong>di</strong> ricavare l’interopolinomio interpolante: esistono dei problemi, come quelli <strong>di</strong> estrapolazione,nei quali si è interessati a conoscere tale polinomio solo in pochi punti, enel qual caso è quin<strong>di</strong> preferibile adottare una tecnica <strong>di</strong>versa. La formula


1.2. L’INTERPOLAZIONE POLINOMIALE 15<strong>Implementazione</strong> <strong>MATLAB</strong>Il calcolo del polinomio <strong>di</strong> Newton è implementato me<strong>di</strong>ante le functions<strong>MATLAB</strong> new_coeff.m, new_val.m e polynew.m: la prima valuta i coefficientidel polinomio me<strong>di</strong>ante lo schema delle <strong>di</strong>fferenze <strong>di</strong>vise (genera unvettore dei coefficienti c coincidente con la prima riga <strong>di</strong> una matrice triangolaresuperiore); la seconda sfrutta il vettore dei coefficienti così creatocalcolare il polinomio in un punto <strong>di</strong> valutazione alpha (me<strong>di</strong>ante la subroutineprdtc.m 1 ); la terza richiama iterativamente la new_val.m sull’interovettore dei punti <strong>di</strong> valutazione.% NEW_COEFF.Mn = length(xi);q = zeros(n);q(:, 1) = yi’;for j = 2:nfor i = 1:n-j+1tmp(i,j) = (q(i, j-1) - q(i+1, j-1));q(i,j) = tmp(i, j)/(xi(i) - xi(j+i-1));endendc = q(1, :);%NEW_VAL.Msum = 0;for i=1:length(xi)sum = sum + c(i)*prdct(alpha, xi, i);endpi = sum;%POLYNEW.Mc = new_coeff(xi, yi);for i = 1:length(x)p(i) = new_val(x(i), xi, c);endp1 = p’;Ciao1 tale calcolo può essere eseguito anche me<strong>di</strong>ante l’algoritmo <strong>di</strong> Horner, implementatonella function horner.m


16 CAPITOLO 1. METODI D’INTERPOLAZIONE POLINOMIALEFigura 1.6: <strong>Interpolazione</strong> con Polinomio <strong>di</strong> Newton <strong>di</strong> sin(πx), 70 no<strong>di</strong> <strong>di</strong>interpolazioneIl grafico in figura 1.6 mostra il limite fondamentale dell’interpolazionecon no<strong>di</strong> equispaziati: per un elevato numero <strong>di</strong> no<strong>di</strong> <strong>di</strong> interpolazione (i.e.,per no<strong>di</strong> <strong>di</strong> interpolazione troppo vicini tra loro) si nota una certa instabilitàdell’algoritmo, il che comporta un errore non strascurabile sull’andamentodel polinomio interpolante.1.3 L’Errore <strong>di</strong> <strong>Interpolazione</strong>Si definisce errore <strong>di</strong> interpolazione per l’interpolazione polinomiale la <strong>di</strong>fferenzatra la funzione da interpolare f(x) e il polinomio interpolante p n (x):si <strong>di</strong>mostra che se f ∈ C (n+1)[a,b]allora ∃ξ x ∈ I (x0 ,x 1 ,...,x n), con {x 1 , x 2 , . . . , x n }punti <strong>di</strong> interpolazione, tale che l’errore <strong>di</strong> interpolazione possa essere espressocomeE n (f) = f(x) − p n (x) = f (n+1) (ξ x )ω n (x) (1.15)(n + 1)!Tale relazione porta con se due importanti informazioni: se la quantitàf (n+1) (ξ x ) è certamente maggiorabile me<strong>di</strong>ante una costante, essendola funzione <strong>di</strong> classe C (n+1) , la presenza del polinomio ω n (x) implica che la<strong>di</strong>stribuzione scelta per i no<strong>di</strong> <strong>di</strong> interpolazione influisce sull’entità dell’errore(si ricor<strong>di</strong> che ω n (x) è un polinomio nella forma espressa in (1.11)).Dunque, se il Teorema <strong>di</strong> Weierstrass ci assicura che per una qualsiasi funzionecontinua esiste almeno una <strong>di</strong>stribuzone <strong>di</strong> no<strong>di</strong> che consenta <strong>di</strong> avere


1.3. L’ERRORE DI INTERPOLAZIONE 17convergenza a zero dell’errore <strong>di</strong> interpolazione per n → ∞, il risultato testèottenuto suggerisce che per ogni <strong>di</strong>stribuzione <strong>di</strong> no<strong>di</strong> esiste almeno una funzioneper la quale l’errore d’interpolazione in norma-∞ non tenda a zero pern → ∞ (Teorema <strong>di</strong> Faber).È quin<strong>di</strong> lecito chiedersi quale sia la <strong>di</strong>stribuzione <strong>di</strong> no<strong>di</strong> ottimale peril problema dell’interpolazione polinomiale: dallo stu<strong>di</strong>o del problema <strong>di</strong>ottimomin{x i }max |ω n(x)| (1.16)x∈[−1,1]si è ottenuto (Bernstein) che per una funzione f ∈ C[a,b] 1 l’errore <strong>di</strong> interpolazionetende a zero per n → ∞ se i no<strong>di</strong> <strong>di</strong> interpolazione sono gli zeridel polinomio <strong>di</strong> Chebychev,{Tn+1 (x) = cos[(n + 1)θ]x = cos θ, θ ∈ [0, π](1.17)Gli zeri <strong>di</strong> tali polinomi, valutabili ponendo pari a zero la seconda delle(1.17),( ) 2k + 1 πx k = cos, k = 0, . . . , n (1.18)n + 1 2si <strong>di</strong>mostrano essere la <strong>di</strong>stribuzione <strong>di</strong> no<strong>di</strong> ottimale per il problemadell’interpolazione polinomiale, mentre i no<strong>di</strong> equispaziati sfruttati fino adora rappresentano la peggiore delle <strong>di</strong>stribuzioni possibili.1.3.1 Stu<strong>di</strong>o dell’Errore <strong>di</strong> <strong>Interpolazione</strong> con <strong>MATLAB</strong>I no<strong>di</strong> <strong>di</strong> Chebychev sono calcolati tramite la function cheby.m, che implementasemplicemente la (1.18) per un n fornito in input.c = [0:n-1]’;c = cos((2*c + 1)/(n + 1)*(pi/2));CiaoLo script Pol_Interp.m permette <strong>di</strong> sfruttare i meto<strong>di</strong> <strong>di</strong> interpolazionefin qui descritti sulle tre funzioni già introdotte, mostrando oltre al risultatodell’interpolazione l’andamento dell’errore E n (f) e <strong>di</strong> ‖E n (f)‖ ∞al cresceredel grado n del polinomio interpolante; nei grafici che seguono sono mostratetali quantità nel caso dell’interpolazione con polinomio <strong>di</strong> Lagrange della funzione<strong>di</strong> Runge su 30 no<strong>di</strong> equispaziati e 30 no<strong>di</strong> <strong>di</strong> Chebychev. É imme<strong>di</strong>atonotare dalle figure 1.7 e 1.8 che i no<strong>di</strong> <strong>di</strong> Chebychev forniscono all’interpolazionemaggiore stabilità; dal grafico 1.9 si osserva come l’errore in norma-∞tenda a <strong>di</strong>vergere nel caso <strong>di</strong> no<strong>di</strong> equispaziati anche per gra<strong>di</strong> <strong>di</strong> polinomionon troppo elevati, mentre, benchè inizialmente più elevato, questo continuia decrescere nel caso <strong>di</strong> no<strong>di</strong> <strong>di</strong> Chebychev.


18 CAPITOLO 1. METODI D’INTERPOLAZIONE POLINOMIALEFigura 1.7: <strong>Interpolazione</strong> della funzione <strong>di</strong> Runge, polinomio <strong>di</strong> Lagrange, 30 no<strong>di</strong>Figura 1.8: Andamento dell’errore <strong>di</strong> interpolazione nel caso <strong>di</strong> figura 1.7Figura 1.9: Andamento <strong>di</strong> ‖E n (f)‖ ∞nel caso <strong>di</strong> figura 1.7 al crescere <strong>di</strong> n


Capitolo 2<strong>Interpolazione</strong> <strong>di</strong> CurveParametricheFino a questo momento abbiamo visto come le tecniche <strong>di</strong> interpolazionepolinomiale permettano <strong>di</strong> valutare l’andamento <strong>di</strong> funzioni delle quali i puntinoti fossero posti in serie: se la funzione da interpolare è parametrica el’insieme dei suoi punti <strong>di</strong>segna quin<strong>di</strong> nello spazio delle curve chiuse, nonè possibile sfruttare <strong>di</strong>rettamente i meto<strong>di</strong> fin qui analizzati; provando, adesempio, a sfruttare il polinomio interpolante <strong>di</strong> Lagrange implementato inpolylag.m su 100 no<strong>di</strong> <strong>di</strong> valutazione, e su un insieme <strong>di</strong> punti come quello infigura 2.1, vengono generati un numero consistente <strong>di</strong> errori dovuti a <strong>di</strong>visioniper zero.Figura 2.1: Esempio <strong>di</strong> <strong>di</strong>stribuzione <strong>di</strong> no<strong>di</strong> <strong>di</strong> interpolazione19


20 CAPITOLO 2. INTERPOLAZIONE DI CURVE PARAMETRICHE2.1 Una Possibile SoluzioneUna possibile soluzione consiste nello sfruttare una determinata parametrizzazioneper compiere l’interpolazione separatamente sui punti x i e y i .Siano dati i punti <strong>di</strong> interpolazione P i = (x i , y i ) , i = 0, . . . , n che seguano unandamento come quello in figura 2.1, e sia t una parametrizzazione compostada punti equispaziati o dagli zeri del polinomio <strong>di</strong> Chebychev: me<strong>di</strong>ante unadelle tecniche <strong>di</strong> interpolazione viste in precedenza, si costruiscano due polinomi,p n (x) e q n (y), che interpolino rispettivamente i punti (t i , x i ) e (t i , y i ),i = 0, . . . , n, ovvero tali che{pn (t i ) = x iq n (t i ) = y ii = 0, . . . , n (2.1)È evidente che tale scelta non mo<strong>di</strong>fica il problema d’interpolazione,poichè l’insieme definito dall’interpolazione (2.2) è composto da punti R i =(p n (t i ), q n (t i )) = (x i , y i ) = P i , i = 0, . . . n; compiendo l’interpolazione sututti i punti, si ricava la definizione parametrica del polinomio interpolante,{x = pn (t)y = q n (t)(2.2)2.1.1 <strong>Implementazione</strong> <strong>MATLAB</strong>Lo script Par_Interp.m consente <strong>di</strong> implementare la strategia descritta inprecedenza sfruttando uno a scelta dei meto<strong>di</strong> <strong>di</strong> interpolazione descritti nelCapitolo 1 su vari insiemi <strong>di</strong> punti, tra i quali quelli relativi alla <strong>di</strong>stribuzione<strong>di</strong> figura 2.1 contenenti <strong>di</strong>versi numeri <strong>di</strong> punti (15, 20, 30 e 40); i punti <strong>di</strong>valutazione sono 100 equispaziati, mentre i vettori t_eq e t_ch contengono ipunti della parametrizzazione, rispettivamente equispaziati e <strong>di</strong> Chebychev.%Punti <strong>di</strong> Valutazione e Numero <strong>di</strong> No<strong>di</strong> <strong>di</strong> <strong>Interpolazione</strong>N = 100;x = [0:N]’/N*2-1;n = length(xi)-1;%Parametrizzazione (Punti Equispaziati e Punti <strong>di</strong> Chebychev)t_eq = [0:n]’/n*2-1;t_ch = cheby(1+n);%Polinomi Interpolanti su X e Y (Punti Equispaziati)p_x_eq = g(x, t_eq, xi);


2.1. UNA POSSIBILE SOLUZIONE 21p_y_eq = g(x, t_eq, yi);%Polinomi Interpolanti su X e Y (Punti <strong>di</strong> Chebychev)p_x_ch = g(x, t_ch, xi);p_y_ch = g(x, t_ch, yi);%Graficiplot(xi, yi, ’or’, p_x_eq, p_y_eq);xlabel(’x’), ylabel(’y’);title(’<strong>Interpolazione</strong> con Tempi Equispaziati’);gridaxis([-1 1 -1.5 1.5]);figure, plot(xi, yi, ’or’, p_x_ch, p_y_ch);xlabel(’x’), ylabel(’y’);title(’<strong>Interpolazione</strong> con Tempi <strong>di</strong> Chebychev’);gridaxis([-1 1 -1.5 1.5]);CiaoI grafici 2.2 e 2.3 mostrano il risultato dell’interpolazione sfruttando polinomi<strong>di</strong> Lagrange per 30 punti <strong>di</strong> parametrizzazione: la scelta <strong>di</strong> punti equispaziatiè palesemente infelice, e risulta tanto peggiore quanto più è alto ilnumero dei punti; molto più fedele è l’andamento sfruttando una parametrizzazionecomposta dagli zeri <strong>di</strong> Chebychev.Questi risultati, che risultaano essere per gli insiemi <strong>di</strong> punti scelti del tuttosimili per tutti e quattro i meto<strong>di</strong> d’interpolazione implementati, risultanoancora più chiari sfruttando una <strong>di</strong>versa <strong>di</strong>stribuzione dei no<strong>di</strong> riportata neigrafici 2.4 e 2.5: la scelta dei no<strong>di</strong> equispaziati risulta essere poco performanterispetto a quella dei no<strong>di</strong> <strong>di</strong> Chebychev anche per un numero relativamentebasso <strong>di</strong> no<strong>di</strong> e per un andamento più semplice della curva da interpolare.


Figura 2.2: <strong>Interpolazione</strong> <strong>di</strong> una Curva Parametrica (30 punti <strong>di</strong>parametrizzazione equispaziati)Figura 2.3: <strong>Interpolazione</strong> <strong>di</strong> una Curva Parametrica (30 punti <strong>di</strong>parametrizzazione <strong>di</strong> Chebychev)


2.1. UNA POSSIBILE SOLUZIONE 23Figura 2.4: <strong>Interpolazione</strong> <strong>di</strong> una Curva Parametrica (8 punti <strong>di</strong> parametrizzazioneequispaziati)Figura 2.5: <strong>Interpolazione</strong> <strong>di</strong> una Curva Parametrica (8 punti <strong>di</strong> parametrizzazione<strong>di</strong> Chebychev)


24 CAPITOLO 2. INTERPOLAZIONE DI CURVE PARAMETRICHE


Capitolo 3Verifica <strong>di</strong> <strong>Meto<strong>di</strong></strong> <strong>di</strong> MachineLearning3.1 Una Breve Introduzione All’Intelligenza ArtificialeLa tecnologia degli ultimi venti anni è permeata dai risultati <strong>di</strong> ricerche cheaffondano le proprie ra<strong>di</strong>ci nei primi anni Cinquanta, e <strong>di</strong>venute note sottoil segno <strong>di</strong> un nome ingombrante: Intelligenza Artificiale.Lo scopo <strong>di</strong> tale <strong>di</strong>sciplina, nata dall’incontro <strong>di</strong> automatica, informatica elogica, era quello <strong>di</strong> creare delle entità, dette agenti, in grado <strong>di</strong> agire inmodo intelligente, ovvero <strong>di</strong> scegliere la miglior azione possibile allo scopo <strong>di</strong>risolvere un determinato problema in relazione alle percezioni sull’ambienteesterno ed alla conoscenza del problema stesso; altra caratteristica fondamentale<strong>di</strong> un agente intelligente deve essere la flessibilità, che gli permetta<strong>di</strong> adeguare le proprie azioni in funzione <strong>di</strong> cambiamenti dell’ambiente esternoe migliorare le proprie prestazioni me<strong>di</strong>ante una valutazione <strong>di</strong>retta deirisultati del proprio agire. Quest’ultimo problema rientra nello stu<strong>di</strong>o <strong>di</strong> algoritmiche permettano agli agenti intelligenti <strong>di</strong> apprendere dall’esperienza:tale campo è noto con il nome <strong>di</strong> machine learning.3.2 Problemi <strong>di</strong> Inferenza Induttiva e Appren<strong>di</strong>mentoda EsempiUn agente intelligente è, nella concezione più generale possibile, una funzioneche, presi determinati ingressi, produce delle uscite: tale funzione <strong>di</strong> mappaturache in generale non è completamente nota al momento della progettazione,ma che può essere mogliorata me<strong>di</strong>ante l’appren<strong>di</strong>mento dall’agentestesso.In IA sono <strong>di</strong> grande interesse problemi <strong>di</strong> appren<strong>di</strong>mento da esempi, che25


26 CAPITOLO 3. VERIFICA DI METODI DI MACHINE LEARNINGconsistono nel determinare o approssimare una funzione f ignota a partireda un insieme <strong>di</strong> esempi del suo comportamento I/O (un esempio è definitocome una coppia (x, f(x)), dove x è un determinato valore dell’ingressoed f(x) è il corrispondente valore della funzione); questo è un problema<strong>di</strong> inferenza induttiva (dato un insieme <strong>di</strong> esempi <strong>di</strong> una funzione ignotaf, trovare una funzione h appartenente ad un insieme predefinito H, dettospazio delle ipotesi, in grado <strong>di</strong> approssimare f); la maggiore <strong>di</strong>fficoltànei problemi <strong>di</strong> inferenza induttiva è chiaramente determinare se una dataipotesi h si una buona approssimazione <strong>di</strong> f (in tal senso è valido il rasoio<strong>di</strong> Ockham: l’ipotesi più semplice è anche la più verosimile) .L’approssimazione <strong>di</strong> funzioni matematiche me<strong>di</strong>ante interpolazione rappresentaun tipico caso <strong>di</strong> appren<strong>di</strong>mento induttivo.3.3 Appren<strong>di</strong>mento da Esempi per Alberi <strong>di</strong> DecisioneUn albero <strong>di</strong> decisione (decision tree, DT ) rappresenta una funzione in cuil’ingresso consiste nella descrizione <strong>di</strong> un singolo oggetto in termini <strong>di</strong> uninsieme predefinito <strong>di</strong> attributi (i cui valori possono essere <strong>di</strong>screti o continuie anche non numerici) e l’uscita è un singolo valore <strong>di</strong>screto o continuo, anchenon numerico; ogni nodo dell’albero rappresenta un test sul valore <strong>di</strong> unattributo (ed ogni arco da esso uscente rappresenta una possibile uscita deltest), e ad ogni foglia è associato un valore della funzione. Per un dato valoredegli ingresso, il valore della funzione si ottiene seguendo il percorso dal nodora<strong>di</strong>ce a una delle foglie, per il quale tutti i test sono sod<strong>di</strong>sfatti. Nel caso piùcomune <strong>di</strong> uscita <strong>di</strong>screta la funzione rappresentata dal DT, detta ipotesi,può essere vista come la descrizione <strong>di</strong> più classi <strong>di</strong> oggetti (corrispondentiai <strong>di</strong>versi valori dell’uscita) in funzione dei valori dell’insieme <strong>di</strong> attributi; sel’uscita può poi assumere solo due valori, il DT risulta equivalente ad unafunzione booleana, e in tal caso la funzione da apprendere è detta goal pre<strong>di</strong>cate.Nei problemi <strong>di</strong> appren<strong>di</strong>mento automatico <strong>di</strong> DT l’insieme degli esempi èdetto training set un esempio è costituito dai valori degli attributi e dal corrispondentevalore della funzione; nel caso <strong>di</strong> funzioni booleane,se il valoredel goal pre<strong>di</strong>cate è Yes (No), l’esempio si <strong>di</strong>ce positivo (negativo). L’obiettivoprincipale <strong>di</strong> un algoritmo <strong>di</strong> appren<strong>di</strong>mento è costruire un’ipotesiconsistente con gli esempi del training set, tale cioè da classificarli tutti correttamente:nel caso dei DT non è sufficiente tuttavia memorizzare un nodoper ogni esempio, ma deve essere raggiunto un compromesso tra consistenzadell’albero con l’insieme degli esempi e capacità <strong>di</strong> generalizzazione (i.e.,capacità <strong>di</strong> classificare correttamente anche altri oggetti).L’algoritmo che si utilizza per costruire un albero <strong>di</strong> decisione a partireda un dato training set E e da un insieme <strong>di</strong> attributi X si basa sulla


3.3. APPRENDIMENTO DA ESEMPI PER ALBERI DI DECISIONE 27scelta, ad ogni passo, dell’attributo più <strong>di</strong>scriminante rispetto all’insieme <strong>di</strong>esempi corrente, ovvero <strong>di</strong> quell’attributo i cui valori assumibili facciano essenzialmenteriferimento ad una ben determinata classe <strong>di</strong> esempi; se X r èl’attributo che rispetta tale regola per il training set iniziale, allora <strong>di</strong>vienenodo ra<strong>di</strong>ce del DT, e lo stesso training set viene sud<strong>di</strong>viso in m sottoinsiemiE i , se tale attributo assume m <strong>di</strong>versi valori.A questo punto tale procedura viene iterata su ogni singolo insieme E i cosìprodotto, seguendo una semplice regola ricorsiva:1. se in E i ci sono sia esempi positivi che negativi si crea un nodoscegliendo il miglior attributo X k tra quelli non usati nel percorso trala ra<strong>di</strong>ce e il nodo padre e si riapplica ricorsivamente l’algoritmo suogni sottoinsieme <strong>di</strong> esempi E k corrispondente alle <strong>di</strong>verse uscite deltest su X k ;2. se tutti gli esempi in E i sono positivi (negativi) si crea una fogliae la si etichetta con Yes (No);3. se in E i ci sono sia esempi positivi che negativi ma non sonorimasti attributi, significa che nel training set ci sono esempi <strong>di</strong> classe<strong>di</strong>versa ma con gli stessi valori degli attributi (causato da rumorositàdei dati, attributi non sufficienti a <strong>di</strong>stinguere tra le due classi, dominionon deterministico), e in tal caso si può creare una foglia e assegnarlel’etichetta della classe più rappresentata.Per determinare la capacità <strong>di</strong> <strong>di</strong>scriminazione <strong>di</strong> un attributo rispettoad un dato training set viene valutato il suo cosiddetto guadagno d’informazione:se un attributo X ad m valori assumibili presenta un numero p <strong>di</strong>esempi positivi ed un numero n <strong>di</strong> esempi negativi con riferimento al trainingset E, e quin<strong>di</strong> p/(p + n) ed n/(p + n) sono le corrispondenti frequenze relative,e per ogni singolo valore sia valutabile un sottoinsieme E i del trainingset, tale per cui siano p i ed n i il numero <strong>di</strong> esempi positivi e negativi incorrispondenza <strong>di</strong> ogni uscita, allora viene definita guadagno d’informazioneper l’attributo X la quantitàdoveG(X)= I= I( )pp+n , np+n− I A =( pp+n ,)np+n− p i+n i∑ ( mi=1p+nIpip i +n i,)n ip i +n i(3.1)I( αα + β ,)β= − αα + β α + β log 2αα + β −βα + β log 2βα + β(3.2)


28 CAPITOLO 3. VERIFICA DI METODI DI MACHINE LEARNINGdetermina il contenuto informativo <strong>di</strong> un determinato insieme <strong>di</strong> simboli;si pone convenzionalmente I(1, 0) = I(0, 1) = 0 (una sorgente in cui un simboloè certo non ha contenuto informativo).In definitiva il guadagno d’informazione mostra quale sia il contenuto informativo<strong>di</strong> un attributo dopo la valutazione <strong>di</strong> ogni sua possibile uscita:l’attributo che per un dato training set presenta il guadagno d’informazionepiù alto è anche il più <strong>di</strong>scriminante (perchè la quantità I A è certamente lapiù piccola, se molti dei valori assumibili dall’attributo presenta esempi <strong>di</strong>una sola classe).3.4 Un Approccio matematico al Problema?Un DT a due sole uscite è equivalente ad una funzione booleana, presentandonela medesima espressività: per questa ragione gli alberi <strong>di</strong> decisionesono utilizzati per l’appren<strong>di</strong>mento e la semplificazione <strong>di</strong> funzione logichecomplesse, il cui comportamento può essere ricostruito a partire dai ramidell’albero me<strong>di</strong>ante <strong>di</strong>sgiunzione logica.Ogni percorso che dal nodo ra<strong>di</strong>ce del DT porta verso una foglia corrispondentead una uscita positiva può essere infatti descritto me<strong>di</strong>ante la congiunzionelogica degli attributi che compongono tale percorso,A i = X 1 ∧ X 2 ∧ . . . ∧ X k (3.3)e l’intera funzione è pari alla <strong>di</strong>sgiunzione logica <strong>di</strong> tali percorsi,F = A 1 ∨ A 2 ∨ . . . ∨ A j (3.4)Se il problema <strong>di</strong> inferenza induttiva può intendersi come un problema<strong>di</strong> ricerca <strong>di</strong> una curva interpolante un certo numero <strong>di</strong> punti che rappresentanogli esempi, è lecito chiedersi se è possibile sostituire al formalismo logicoespresso dalle relazioni 3.3 e 3.4 un formalismo matematico, per generare uninsieme <strong>di</strong> punti interpolabili con uno dei meto<strong>di</strong> sviluppati nel Capitolo 1.Definizione della FunzionePer provare l’effettiva fattibilità dell’approccio matematico si è consideratauna semplice funzione d’agente per l’attraversamento <strong>di</strong> un incrocio regolatoda un semaforo: questa funzione presenta nove <strong>di</strong>versi attributi, due deiquali sono ternari, mentre gli altri sono binari. Diamo ad ogni attributoun valore intero i, i = 1, . . . , n, e se l’i-esimo attributo presenta k valoriassumibili, ognunno <strong>di</strong> questi valori verrà in<strong>di</strong>cato con il numero razionalei.j, j = 0, . . . , k; tale co<strong>di</strong>fica è riportata nella tabella 3.1.


3.4. UN APPROCCIO MATEMATICO AL PROBLEMA? 29Figura 3.1: DT relativo alla funzione esempioAttributo No. Valori dell’Attributo No.Acceso? 1Vigile? 2Colore? 3Fermata Sicura? 4Cartello? 5Tipo? 6Arrivano Veicoli? 7Ho Diritto <strong>di</strong>Precedenza a Destra?Mi Danno Precedenza? 98SINOSI, e vuole che avanziSI, e vuole che mi fermiNOVerdeGialloRossoNOSISINOStopDare PrecedenzaNOSISINOSINO1.11.22.12.12.33.13.23.34.14.25.15.26.16.27.17.28.18.29.19.2Tabella 3.1: Co<strong>di</strong>fica degli Attributi e dei loro ValoriDalla figura 3.1 è stato poi ricavato un insieme <strong>di</strong> esempi per l’addestramentodel DT: la tabella 3.2 riporta su ogni riga i valori assunti da ognisingolo attributo, e in corrispondenza l’uscita della funzione F .


30 CAPITOLO 3. VERIFICA DI METODI DI MACHINE LEARNINGEX A1 A2 A3 A4 A5 A6 A7 A8 A9 F1 1.1 2.1 3.1 4.2 5.1 6.1 7.2 8.1 9.1 12 1.1 2.2 3.3 4.1 5.1 6.2 7.1 8.1 9.2 03 1.1 2.3 3.1 4.2 5.2 6.1 7.1 8.2 9.1 14 1.1 2.3 3.2 4.1 5.1 6.1 7.2 8.1 9.2 15 1.1 2.3 3.2 4.2 5.2 6.2 7.2 8.2 9.1 06 1.1 2.3 3.3 4.1 5.2 6.2 7.1 8.2 9.2 07 1.2 2.1 3.2 4.2 5.1 6.1 7.2 8.2 9.1 08 1.2 2.2 3.3 4.2 5.1 6.2 7.1 8.1 9.1 19 1.2 2.1 3.1 4.1 5.1 6.2 7.2 8.1 9.2 010 1.2 2.1 3.3 4.1 5.2 6.1 7.1 8.1 9.1 111 1.2 2.3 3.1 4.2 5.2 6.2 7.1 8.1 9.1 012 1.2 2.1 3.2 4.1 5.2 6.1 7.1 8.2 9.1 113 1.2 2.2 3.3 4.2 5.2 6.1 7.2 8.2 9.2 014 1.1 2.1 3.2 4.2 5.2 6.2 7.1 8.1 9.2 115 1.1 2.2 3.1 4.2 5.1 6.2 7.2 8.2 9.2 016 1.2 2.3 3.3 4.2 5.1 6.2 7.2 8.2 9.1 0Tabella 3.2: Training Set per la funzione esempio3.4.1 <strong>Implementazione</strong> <strong>MATLAB</strong>La costruzione dell’albero a partire dall’insieme <strong>di</strong> attributi e dal training setè implementata nelle funzioni TrainDT.m e RecursiveDT.m: la prima, i cuiingressi sono la matrice del training set M (la cui struttura è equivalente allatabella 3.2, ma senza la prima colonna, che in<strong>di</strong>vidua solamente il numerodell’esempio), una struttura dati A contenente un vettore per ogni attributo,le cui componenti sono corrisponenti ai valori del singolo attributo, e unastruttura dati s che contiene i nomi degli attributi (il suo scopo è quello<strong>di</strong> produrre un’uscita sul prompt imme<strong>di</strong>atamente leggibile), richiama laseconda finchè è verificata una determinata con<strong>di</strong>zione sulla matrice M.Il listato seguente rappresenta il ¨cuore¨funzionale della RecursiveDT.m: perogni colonna <strong>di</strong> M, corrispondente ciascuna ad un attributo della funzione,viene registrato nei vettori pos_ex e neg_ex il numero <strong>di</strong> esempi positivie negativi per ogni valore assunto dall’attributo corrente (la posizione deicontatori in tali vettori rispecchia quella dei valori in A me<strong>di</strong>ante l’utilizzodella function pos_value.m) , e infine il numero <strong>di</strong> esempi positivi e negativiper l’intero attributo (variabili p_tot e n_tot, ottenute richiamando unafunction che sommi le componenti dei vettori pos_ex e neg_ex, sum_comp.m).Questi parametri rappresentano gli ingressi della function InfGain.m, cheimplementa la 3.1 richiamando iterativamente la function information.m,che invece implementa la 3.2.


3.4. UN APPROCCIO MATEMATICO AL PROBLEMA? 31[m, n] = size(M);G = zeros(1, n-1);for j = 1:n-1pos_ex = zeros(1, length(A(j).x));neg_ex = zeros(1, length(A(j).x));for i = 1:mif M(i, n) == 1pos_ex(pos_value(M(i,j),A(j).x)) =pos_ex(pos_value(M(i,j),A(j).x)) + 1;else if M(i, n) == 0neg_ex(pos_value(M(i,j),A(j).x)) =neg_ex(pos_value(M(i,j),A(j).x)) + 1;endendendp_tot = sum_comp(pos_ex);n_tot = sum_comp(neg_ex);G(j) = InfGain(p_tot, n_tot, pos_ex, neg_ex);end[gain, index] = max(G);CiaoDopo l’ultima iterazione, il vettore G contiene i guadagni d’informazione relativiad ogni singolo attributo: il massimo del vettore rappresenta il guadagnodell’attributo più selettivo, che resterà in<strong>di</strong>viduato in A dall’in<strong>di</strong>ce index.Nella seconda parte dello funzione viene valutato quale valore dell’attributoscelto deve essere ulteriormente espanso: per semplicità, e per evitare chela chiamata ricorsiva della RecursiveDT.m generi un albero per profon<strong>di</strong>tà(senza espandere ulteriormente dei no<strong>di</strong>, che rimarrebbero quin<strong>di</strong> senza unvalore stabilito), ad ogni passo viene espanso soltanto un valore, quello dotatodel maggior grado <strong>di</strong> incertezza (i.e., quello dotato del minimo scarto tranumero <strong>di</strong> esempi positivi e numero <strong>di</strong> esempi negativi).Una volta in<strong>di</strong>viduato tale valore devono essere approntate le tabelle perla prossima iterazione: l’attributo già espanso viene eliminato dalla listadegli attributi espan<strong>di</strong>bili, e me<strong>di</strong>ante poche righe <strong>di</strong> comando, la matricedel training set viene ridotta, eliminando da essa la colonna relativa all’attributogià espanso, e le righe in cui non compaia il valore da espandereulteriormente. La con<strong>di</strong>zione <strong>di</strong> stop della TrainDT.m consiste quin<strong>di</strong> nelvalutare che l’intera matrice degli esempi non sia stata annullata man manoche gli esempi venivano eliminati.


32 CAPITOLO 3. VERIFICA DI METODI DI MACHINE LEARNINGLo script Attraversare.m applica la TrainDT.m ai dati relativi alla funzioneprova descritta in precedenza: il risultato è riportato <strong>di</strong> seguito, ecorrisponde a quanto visibile dalla figure 3.2.Attributo più Selettivo per il Training Set Fornito:Tipo?Valore del Guadagno: 0.1812Attributo Tipo?, Uscita 6.2:Uscita della Funzione Pari a 0Attributo Tipo?, Uscita 6.1:Elemento Ulteriormente Espan<strong>di</strong>bileAttributo più Selettivo per il Training Set Fornito:Vigile?Valore del Guadagno: 0.3995Attributo Vigile?, Uscita 2.1:Uscita della Funzione Pari a 1Attributo Vigile?, Uscita 2.3:Uscita della Funzione Pari a 1Attributo Vigile?, Uscita 2.2:Elemento Ulteriormente Espan<strong>di</strong>bileAttributo più Selettivo per il Training Set Fornito:Acceso?Valore del Guadagno: 0.0000Attributo Acceso?, Uscita 1.2:Uscita della Funzione Pari a 0Attributo Acceso?, Uscita 1.1:Elemento Ulteriormente Espan<strong>di</strong>bileCiaoGià da una prima osservazione dei risultati si nota che l’albero ottenutonon risulta essere sod<strong>di</strong>sfacente (l’agente intelligente ha una concezionealquanto bizzarra delle regole <strong>di</strong> precedenza . . . ), il che è da imputarsi ad untraining set non sufficientemente accurato ed alla semplificazione introdottanell’espansione dei valori; una valutazione delle funzioni <strong>MATLAB</strong> imple-


3.4. UN APPROCCIO MATEMATICO AL PROBLEMA? 33Figura 3.2: DT ottenuto per appren<strong>di</strong>mento dal training set in tabella 3.2mentate su un problema a soluzione nota 1 ha infatti mostrato un correttofunzionamento nella valutazione dei guadagni d’informazione, dai quali si èquin<strong>di</strong> potuto evincere che il problema non è legato alla programmazione.Resta dunque da verificare se, sfruttando una co<strong>di</strong>fica matematica comequella in tabella 3.1, sia possibile sfruttare un metodo <strong>di</strong> interpolazione perla verifica dei risultati: per realizzare l’equivalente matematico della 3.3 si èscelto <strong>di</strong> sommare i valori relativi alle componenti presenti in ogni percorsodell’albero originale verso un nodo foglia, ottenendo l’insieme dei punti riportatiin rosso in figura 3.3 (i valori assumibili dalla funzione sono ’1’, corrispondentea ’SI’ e ’0’ corrispondente a ’NO’); in blu è riportato invece la partevisibile della funzione interpolante costruita sui valori ricavati dall’alberoappreso (figura 3.2). Come atteso, il risultato è largamente insod<strong>di</strong>sfacente.3.4.2 ConclusioniLa scelta <strong>di</strong> un’impostazione logica per il problema dell’appren<strong>di</strong>mento daesempi è largamente giustificata da una scarsa capacità espressiva <strong>di</strong> meto<strong>di</strong>puramente matematici: oltre ad una maggior <strong>di</strong>fficoltà implementativa, infatti,lo svantaggio nel passaggio da funzioni logiche a funzioni matematicheè palese sia da un punto <strong>di</strong> vista della descrizione del problema che da quellodella rappresentazione dei risultati. Dietro al fallimento della strategia <strong>di</strong>valutazione proposta non si trovano soltanto scelte errate sul training set oapprossimazioni troppo spinte nell’implementazione dei meto<strong>di</strong>, ma ancheuna vera e propria impossibilità <strong>di</strong> ottenere una potenza <strong>di</strong> rappresentazionesufficiente sostituendo moltiplicazioni o sommme alle rispettive operazioni1 Russel, Norvig; Intelligenza Artificiale: Un Approccio Moderno (seconda e<strong>di</strong>zione):esempio paragrafo 18.3, pagg. 570-71


Appen<strong>di</strong>ce AFunzioni <strong>MATLAB</strong>A.1 <strong>Interpolazione</strong> <strong>Polinomiale</strong>cheby.m Valutazione dei No<strong>di</strong> <strong>di</strong> Chebychev;horner.m Algoritmo <strong>di</strong> Horner per la valutazione del Polinomio Interpolante<strong>di</strong> Newton;neville.m Costruzione iterativa su un elemento noto dello Schema <strong>di</strong> Neville;new_coeff.m Valutazione dei Coefficienti del Polinomio Interpolante <strong>di</strong> Newtonme<strong>di</strong>ante lo Schema delle Differenze Divise;new_val.m Valutazione in un punto del Polinomio Interpolante <strong>di</strong> Newton;Pol_Interp.m Script per la valutazione delle tecniche <strong>di</strong> interpolazione implementatee dell’errore <strong>di</strong> interpolazione;polycan.m Polinomio Interpolante in Forma Canonica;polylag.m Polinomio Interpolante <strong>di</strong> Lagrange;polynev.m Polinomio Interpolante <strong>di</strong> Neville;polynew.m Polinomio Interpolante <strong>di</strong> Newton;prdct.m Subroutine sfruttata per la valutazione del Polinomio Interpolante<strong>di</strong> Newton (alternativa all’algoritmo <strong>di</strong> Horner);prova_polycan.m Script <strong>di</strong> prova per il Polinomio Interpolante in FormaCanonica;prova_polylag.n Script <strong>di</strong> prova per il Polinomio Interpolante <strong>di</strong> Lagrange;prova_polynev.m Script <strong>di</strong> prova per il Polinomio Interpolante <strong>di</strong> Neville;prova_polynew.m Script <strong>di</strong> prova per il Polinomio Interpolante <strong>di</strong> Newton.35


36 APPENDICE A. FUNZIONI <strong>MATLAB</strong>A.2 <strong>Interpolazione</strong> <strong>di</strong> Curve Parametrichecheby.m Valutazione dei No<strong>di</strong> <strong>di</strong> Chebychev;horner.m Algoritmo <strong>di</strong> Horner per la valutazione del Polinomio Interpolante<strong>di</strong> Newton;neville.m Costruzione iterativa su un elemento noto dello Schema <strong>di</strong> Neville;new_coeff.m Valutazione dei Coefficienti del Polinomio Interpolante <strong>di</strong> Newtonme<strong>di</strong>ante lo Schema delle Differenze Divise;new_val.m Valutazione in un punto del Polinomio Interpolante <strong>di</strong> Newton;Par_Interp.m Script per l’interpolazione <strong>di</strong> <strong>di</strong>verse curve parametriche ×secondo le tecniche <strong>di</strong> interpolazione polinomiale sviluppate;plot_points.m Script per la stampa dei soli punti <strong>di</strong> interpolazione delle<strong>di</strong>verse curve parametriche da interpolare.polycan.m Polinomio Interpolante in Forma Canonica;polylag.m Polinomio Interpolante <strong>di</strong> Lagrange;polynev.m Polinomio Interpolante <strong>di</strong> Neville;polynew.m Polinomio Interpolante <strong>di</strong> Newton;prdct.m Subroutine sfruttata per la valutazione del Polinomio Interpolante<strong>di</strong> Newton (alternativa all’algoritmo <strong>di</strong> Horner);A.3 Appren<strong>di</strong>mento <strong>di</strong> DTAttraversare.m Script per l’applicazione al problema esempio della functionTrainDT.mInfgain.m Funzione <strong>di</strong> valutazione del Guadagno d’Informazioneinformation.m Funzione per il calcolo del contenuto informativo <strong>di</strong> unasorgente binaria <strong>di</strong> simboli;plot_attraversa Script che genera il grafico dei punti del DT iniziale e lacorrispondente funzione ottenuta per appren<strong>di</strong>mento da esempi;pos_value.m Subroutine sfruttata in RecursiveDT.m per la valutazione dellaposizione <strong>di</strong> un elemento dato in un vettore;raw_not_null.m Subroutine sfruttata in RecursiveDT.m per valutare il numero<strong>di</strong> righe non nulle in una matrice data;


A.3. APPRENDIMENTO DI DT 37RecursiveDT.m Function che implementa il problema dell’appren<strong>di</strong>mentoda esempi su una serie <strong>di</strong> parametri forniti in ingresso;sum_comp.m Subroutine sfruttata in RecursiveDT.m per sommare le componenti<strong>di</strong> un vettore dato;TrainDT.m Function per la chiamata ricorsiva <strong>di</strong> RecursiveDT.m con con<strong>di</strong>zione<strong>di</strong> terminazione.


Appen<strong>di</strong>ce BLe CartelleB.1 File <strong>MATLAB</strong>Tesina - Parte I - <strong>Meto<strong>di</strong></strong> <strong>di</strong> <strong>Interpolazione</strong> <strong>Polinomiale</strong> Funzioni descrittenell’Appen<strong>di</strong>ce A.1;Tesina - Parte II - <strong>Interpolazione</strong> <strong>di</strong> Curve Parametriche Funzioni descrittenell’Appen<strong>di</strong>ce A.2;Tesina - Parte III - Appren<strong>di</strong>mento <strong>di</strong> DT Funzioni descritte nell’Appen<strong>di</strong>ceA.3.B.2 ImmaginiElenco numerato delle immagini che compaiono nella tesina.FLASH File FLASH relativi agli schemi dei DT.39

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!