From 66a777a08fdad85ff6f07e98e144ba87602eb0e3 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 14 Sep 2012 19:44:43 -0400 Subject: [PATCH] Clean up the divided_difference function. --- divided_difference.m | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/divided_difference.m b/divided_difference.m index 7b8020e..2b8f8df 100644 --- a/divided_difference.m +++ b/divided_difference.m @@ -3,16 +3,29 @@ function dd = divided_difference(f, xs) ## is assumed to be a vector containing at least one element. If it ## contains n elements, the (n-1)st divided difference will be ## calculated. - order = length(xs); + ## + ## INPUTS: + ## + ## * ``f`` - The function whose divided differences we want. + ## + ## * ``xs`` - A vector containing x-coordinates. The length of `xs` + ## determines the order of the divided difference. + ## + ## + ## OUTPUTS: + ## + ## * ``dd`` - The divided difference f[xs(1), xs(2),...] + ## + order = length(xs) - 1; - if (order < 1) + if (order < 0) ## Can't do anything here. Return nothing. dd = NA; - elseif (order == 1) + elseif (order == 0) ## Our base case. dd = f(xs(1)) else - ## Order > 1, recurse. + ## Order >= 1, recurse. ## f[x0,...,x_n-1] f0 = divided_difference(f, xs(1:end-1)); @@ -20,6 +33,6 @@ function dd = divided_difference(f, xs) f1 = divided_difference(f, xs(2:end)); # http://mathworld.wolfram.com/DividedDifference.html - dd = (f0 - f1)/(xs(1) - xs(end)) + dd = (f0 - f1)/(xs(1) - xs(end)); end end -- 2.43.2