Swappa : Uni / Matlab - Differenze divise
Creative Commons License

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

(Printable View of http://www.swappa.it/wiki/Uni/AN-Matlab-DifferenzeDivise)