No BSD License  

Highlights from
Several kinds of Mathematical examples!

from Several kinds of Mathematical examples! by Giovani Tonel
Here there are several kinds of Mathematical problems!

D=DIVDIF(X,F)
function D=DIVDIF(X,F)

%function D=DIVDIF(X,F)
%
%Berechnung der Koeffizienten des Interpolationspolynoms in Newtonscher Form
%
%Input:  X ... Vektor der Laenge n (Stuetzstellen), wobei die Elemente der
%              Groesse nach geordnet sein sollen
%        F ... Vektor der Laenge n, der die zu X gehoerenden Daten enthaelt,
%              die interpoliert werden sollen (Funktionswerte/Ableitungen)
%
%Output: D ... Vektor der Laenge n, der die Koeffizienten des Newtonschen
%              Interpolationspolynoms in aufsteigender Reihenfolge angibt
%
%written by Silke Schmid, Dezember 1995
%
%Dieses Programm dient zur Interpolation von Funktionswerten oder Ableitungen
%(geg. in F) an gegebenen Stuetzstellen X. Dabei wird die Rekursion der
%dividierten Differenzen benutzt, die letztendlich zu den Koeffizienten des
%Newtonschen Interpolationspolynoms fuehrt (vgl. Vektor D).
%Das Prinzip der Berechnung sieht folgendermassen aus. Zunaechst muss unter-
%schieden werden, an welchen Stellen a) Ableitungen und an welchen b) Funk-
%tionswerte interpoliert werden. Die entsprechenden Rechenregeln lauten:
%
%a) f[X(1),...,X(m)]=f^(m)(y)/m!, falls X(1)=...=X(m)=:y  (1<=m<=n)
%
%b) f[X(1),...,X(m)]=(f[X(2),...,X(m)]-f[X(1),...,X(m-1)])./(X(m)-X(1)), falls
% X(1)~=X(m) (1<=m<=n)
%
%Der Vektor D setzt sich dann aus den folgenden dividierten Differenzen zusam-
%men: D=[f[X(1)], f[X(1),X(2)],...,f[X(1),...,X(n)]].


n=length(X);
JJ=find((X([2:n])-X([1:n-1]))==0)+1;
D=F;

for m=1:length(JJ)
  F(JJ(m))=F(JJ(m)-1);
end

for j=2:n
  IND=[j:n];
  JJ=find((X(IND)-X(IND-j+1))==0)+j-1;
   K=find((X(IND)-X(IND-j+1))~=0)+j-1;
   F(K)=(F(K)-F(K-1))./(X(K)-X(K-j+1));

   if length(JJ)>0
     F(JJ(1))=D(JJ(1))/prod(1:j-1);

     for m=2:length(JJ)

       if JJ(m)==JJ(m-1)+1
         F(JJ(m))=F(JJ(m-1));
       else
         F(JJ(m))=D(JJ(m))/prod(1:j-1);
       end
     end
   end
end

D=F;










Contact us at files@mathworks.com