Estratto del documento

Homework #2 per il corso di calcolo numerico a.a. 2014/2015

A cura di Lettiero Marco, Matricola 0124/893

Acquisizione dei punti della curva chiusa

Tramite la console di Matlab, sono stati prelevati in prima battuta dei punti da una figura tramite il comando ginput(39). In particolare, si è utilizzata la funzione imread() per caricare l'immagine, imagesc() e set() per visualizzarla con il corretto orientamento degli assi, e poi si è proceduto a prelevare i punti come sopra descritto.

Inoltre, si è poi completato il processo di creazione dei due vettori x e y che contengono le coordinate di tali punti chiudendo la spezzata con il comando x=[x; x(1)]; (e analogamente si è fatto lo stesso con il vettore y).

Si è poi salvato il workspace con il comando save(), così da poter utilizzare semplicemente il comando load() per eseguire l'elaborazione di questo script. Infine, l'immagine utilizzata rappresenta una delle prime versioni del DualShock di Sony Computer Entertainment® (l'immagine utilizzata non è però originale).

Definizione del parametro t e griglia fitta

Dal momento che saranno utilizzate praticamente in tutto lo svolgimento dell'Homework, definiamo il parametro t (di 40 componenti in [-1,1]) e la griglia fitta tt. Per comodità, essendo x e y vettori colonna poiché creati tramite ginput(), il vettore t è stato dichiarato anch'esso colonna mediante trasposizione.

Inoltre, è stata definita in un file .m la funzione che permette di calcolare il perimetro, il cui codice è il seguente:

function lunghezza = perimetro(xVertici, yVertici)
lunghezza=sum(sqrt(diff(xVertici).^2+diff(yVertici).^2));
end

Calcolo del perimetro della spezzata

Dopo aver calcolato il perimetro della spezzata che unisce i 40 punti, è utilizzata la plot che mostrerà sul grafico i nodi da interpolare e la spezzata che li unisce.

t=linspace(-1,1,40)';
tt=linspace(-1,1,500);
lunghezzaSpezzata=perimetro(x,y);
plot(x,y,'og',x,y,'g');
xlabel('Ascisse');
ylabel('Ordinate');

Visualizzazione dei grafici

Si faccia attenzione che le considerazioni che andrebbero fatte sono tutte state rimandate alla fine, nel paragrafo Conclusioni. Questo perché, per comodità, sono stati mostrati tutti i grafici e tutte le lunghezze dei perimetri in modo da consentire una consultazione più rapida dei dati.

Parte prima: interpolazione con spline cubica

Adesso si procederà con l'interpolazione tramite spline cubica. Trattandosi di una curva chiusa, sarà necessario interpolare tramite il parametro t sopra definito. È quindi utilizzata la funzione spline() con input:

  • T, il parametro
  • X, il vettore delle ascisse
  • Tt, la griglia fitta di valutazione del polinomio a tratti interpolante.

In particolare, procedendo in questo modo, si ottengono i valori delle ascisse al variare del parametro t (ossia i valori di x(t)). Se ne mostra anche il grafico:

xSpline=spline(t,x,tt);
plot(t,x,'or',tt,xSpline,'r');
axis([-1.1 1.1 -1.1 1.1]);
xlabel('Parametro t');
ylabel('Ascissa x(t)');

Interpolazione del vettore delle ordinate

Per quanto riguarda il vettore delle ordinate, il ragionamento da seguire è perfettamente analogo e non presenta alcuna differenza. Anche in questo caso, è mostrato il grafico che mostra l'interpolazione delle ordinate al variare del parametro t.

ySpline=spline(t,y,tt);
plot(t,y,'or',tt,ySpline,'r');
axis([-1.1 1.1 -1.1 1.1]);
xlabel('Parametro t');
ylabel('Ordinata y(t)');

Calcolo della lunghezza del perimetro

Svolti i due passaggi di intermezzo, si calcola, come richiesto, la lunghezza del perimetro con la funzione sopra definita. Inoltre, si utilizzano i due vettori xSpline e ySpline come a...

Anteprima
Vedrai una selezione di 3 pagine su 6
Appunti Calcolo Numerico via HW2 Pag. 1 Appunti Calcolo Numerico via HW2 Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Appunti Calcolo Numerico via HW2 Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche MAT/08 Analisi numerica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Wenress di informazioni apprese con la frequenza delle lezioni di Calcolo Numerico e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Napoli - Parthenope o del prof Giunta Giulio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community