function dd = divided_difference(f, xs)
- ## Compute divided difference of `f` at points `xs`. The argument `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.
- ##
- ## 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),...]
- ##
- addpath('../homework1/src');
+ % Compute divided difference of `f` at points `xs`. The argument `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.
+ %
+ % 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 < 0)
- ## Can't do anything here. Return nothing.
+ % Can't do anything here. Return nothing.
dd = NA;
elseif (order == 0)
- ## Our base case.
+ % Our base case.
dd = f(xs(1));
else
- ## Order >= 1.
+ % Order >= 1.
cs = divided_difference_coefficients(xs);
dd = dot(cs, f(xs));
end