viernes, 4 de diciembre de 2009

Programa 6.3 (Derivacion basada en N + 1 nodos - pagina 365).

%Programa 6.3 (Derivacion basada en N + 1 nodos - pagina 365).
% Construccion del polinomio interpolador de Newton de grado N
% P(x)=d<0> + d<1>·(X-X<0>) + d<2>·(X-X<0>)·(X-X<1>)+···
% d·(X-X<0>)·(X-X<1>)···(X-X)
% para aproximar numericamente f'(x) usando f'(x<0>)=P'(x<0>) como respuesta final.
% El metodo debe usarse solo con x<0>. Los nodos pueden reordenarse como
% {X,X<0>,...,X,X,...,X} si se desa calcular f'(X)=P'(X)
%
%Sintaxis
% [A,df]=diffnew(X,Y)
%
%Entrada
% - X es un vector de 1 x n que contiene las absisas
% - Y es un vector de 1 x n que contiene las ordenadas
%Resultados:
% - A es el resultado 1 x n que contiene los coeficientes del
% polinomio de Newton de grado N
% - df es la derivada aproximada

A=Y;
N=length(X);

for j=2:N
for k=N:-1:j
A(k)=(A(k)-A(k-1))/(X(k)-X(k-j+1));
end
end

x0=X(1);
df=A(2);
prod=1;
n1=length(A)-1;

for k=2:n1
prod=prod*(x0-X(k));
df=df+prod*A(k+1);
end

No hay comentarios:

Publicar un comentario