Skip to content

Instantly share code, notes, and snippets.

@zdravkoandonov
Created December 12, 2016 07:28
Show Gist options
  • Save zdravkoandonov/67f810164e70f384663301181e805f44 to your computer and use it in GitHub Desktop.
Save zdravkoandonov/67f810164e70f384663301181e805f44 to your computer and use it in GitHub Desktop.
dividedDiff[f_, xs_]:=dividedDiff[f, xs]=Piecewise[{
{(dividedDiff[f, Drop[xs, 1]]-dividedDiff[f,Drop[xs, -1]])/(Last[xs]-First[xs]), First[xs]!=Last[xs]},
{(D[f[x], {x, Length[xs]-1}]/.x->First[xs])/(Length[xs]-1) !, First[xs]==Last[xs]}
}];
P[n_, f_, xks_, x_]:=Sum[dividedDiff[f,Take[xks,i]]*Product[x-xks[[j]], {j,1,i-1}], {i, 1, n+1}];
f1[x_]:=1/(1+x x);
xks1 = 0.2 * Range[0, 6];
polynomial1=Expand[P[6,f1,xks1,x]]
Plot[Abs[f1[x]-polynomial1], {x, 0, 1.2}]
f2[x_]:=E^(2x);
xks2={0, 0,0,1,1};
polynomial2=Expand[P[4, f2, xks2, x]]
Plot[Abs[f2[x]-polynomial2], {x, 0, 1}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment