Estratto del documento

Spline cubica naturale interpolante

Scopo

Effettuare l'interpolazione polinomiale mediante spline cubica naturale.

Specifiche e Parametri

s=splin(x,y,space)

Parametro Tipo Input/output Descrizione
x Vettore Input Ascisse dei nodi
y Vettore Input Ordinate dei nodi
space Vettore Input Insieme di definizione (Opzionale)
s Vettore Output Punti di interpolazione

Routine Ausiliarie

È stata utilizzata la routine x=tridsys(d,a,f,b).

Descrizione

La funzione valuta la spline nei punti compresi nell'insieme di definizione. Opera mediante la costruzione di una matrice A e del vettore dei termini noti tn. Il sistema tridiagonale A*j=tn, nel quale der2 rappresenta le derivate seconde nei nodi, viene risolto mediante l'algoritmo di Gauss per matrici tridiagonali. Infine, tramite un algoritmo di ricerca binaria, vengono calcolati i coefficienti del polinomio rappresentante la spline. Sono state rese nulle le condizioni di contorno per poter ottenere una spline naturale interpolante.

Complessità ed Accuratezza

L'accuratezza dipende dalla macchina su cui viene eseguito l'algoritmo. La complessità di tempo è pari a T(n)=O(n). Per quanto riguarda la complessità di spazio è pari a S(n)=O(n).

Indicatori di Errore

La funzione esegue prioritariamente un controllo sui parametri inseriti, ed avverte l'utente in caso di un inserimento errato dei dati. Nel caso avvenga il mancato inserimento dell'intervallo, la funzione provvederà a generarne uno automaticamente prendendo come estremi il valore minimo ed il valore massimo delle ascisse.

  • Errore dovuto alla coerenza delle dimensioni dei vettori: Dimensioni di x, y diverse tra loro.
  • Errori di inserimento dei nodi: Numero di nodi inseriti minore di 4.
  • L'intervallo di valutazione della funzione si estende oltre gli estremi dettati dai nodi.
  • Inserimento di nodi coincidenti.

Testo della Funzione

function s=splin(x,y,space)
%Controllo dei parametri inseriti
if nargin < 2
    error('Hai dimenticato di Inserire le coordinate dei nodi')
end
%Controllo sui nodi inseriti
alfa=[x y];
if length(x)<4 %Numero di nodi
    error('I nodi inseriti sono troppo pochi per poter valutare la funzione')
elseif length(x)~=length(y) %Coerenza nella dimensione dei vettori
    error('L''ascissa e l''ordinata devono avere lo stesso numero di elementi')
elseif ischar(alfa) %Inserimento di elementi alfanumerici
    error('Non si possono inserire dei caratteri nei vettori')
end
%Controllo sull'intervallo
if exist('space')==0
    space = linspace(min(x),max(x));
elseif ischar(space) %Presenza di Caratteri
    error('Non si possono inserire dei caratteri nei vettori')
elseif (max(space)>max(x))|(min(space)<min(x)) %Coerenza del dominio
    ... % Continuazione del controllo
end
Anteprima
Vedrai una selezione di 4 pagine su 12
Spline interpolante Pag. 1 Spline interpolante Pag. 2
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Spline interpolante Pag. 6
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Spline interpolante Pag. 11
1 su 12
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher cecilialll di informazioni apprese con la frequenza delle lezioni di Algoritmi e strutture dati 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 Federico II o del prof D'Alessio Alessandra.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community