Torna alla pagina di Analisi Numerica
:: Matlab - Differenze divise ::
% Metodo delle differenze divise
% ------------------------------
% restituisce un vettore a
% richiede due vettori come parametri, che contengono
% le coordinate x e y dei punti da interpolare
function [a] = diffdiv(xnodi,ynodi)
% ricavo il numero di nodi
n = length(xnodi);
a = ynodi;
for k=1:n-1
% A B C D
%------ ------- -------- --------------------------
a(k+1:n) = (a(k+1:n) - a(k:n-1))./(xnodi(k+1:n) - xnodi(1:n-k));
% spieghiamo a cosa corrispondono le varie parti
% A = f(x[i], ... ,x[i+k])
% B = f(x[i+1], ... ,x[i+k])
% C = f(x[i], ... , x[i+k-1])
% D = x[i+k] - x[i]
end
% esempio di utilizzo:
%
% % definisco gli estremi dell'intervallo
% estremoA = 2;
% estremoB = 5;
% % definisco il numero di nodi da interpolare
% nodi = 4;
% % utilizzo la funzione linspace per generare un vettore x
% % con 'nodi' elementi compresi tra 'estremoA' e 'estremoB'
% x = linspace(estremoA,estremoB,nodi);
% % definisco una funzione da applicare alle x
% y = 1./(x.^2+1);
% % genero il vettore a che definisce la mia equazione ricavata
% % col metodo delle differenze divise
% [a] = diffdiv(x,y);
Torna alla pagina di Analisi Numerica