X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;ds=sidebyside;f=divided_difference.m;h=785b66f27e812ff0d908bdbf317b05077e15d694;hb=437324f2edf6b26c772080f8cbe3b321dda8d70f;hp=2b8f8df0d5e75ca126b618acb8e81257235e79c2;hpb=66a777a08fdad85ff6f07e98e144ba87602eb0e3;p=octave.git diff --git a/divided_difference.m b/divided_difference.m index 2b8f8df..785b66f 100644 --- a/divided_difference.m +++ b/divided_difference.m @@ -16,6 +16,7 @@ function dd = divided_difference(f, xs) ## ## * ``dd`` - The divided difference f[xs(1), xs(2),...] ## + addpath('../homework1/src'); order = length(xs) - 1; if (order < 0) @@ -23,16 +24,10 @@ function dd = divided_difference(f, xs) dd = NA; elseif (order == 0) ## Our base case. - dd = f(xs(1)) + dd = f(xs(1)); else - ## Order >= 1, recurse. - - ## f[x0,...,x_n-1] - f0 = divided_difference(f, xs(1:end-1)); - ## f[x1,...,x_n] - f1 = divided_difference(f, xs(2:end)); - - # http://mathworld.wolfram.com/DividedDifference.html - dd = (f0 - f1)/(xs(1) - xs(end)); + ## Order >= 1. + cs = divided_difference_coefficients(xs); + dd = dot(cs, f(xs)); end end