X-Git-Url: http://gitweb.michael.orlitzky.com/?p=octave.git;a=blobdiff_plain;f=divided_difference_coefficients.m;fp=divided_difference_coefficients.m;h=53d5799e922af57d70c74604cca5814d4d4b7b4d;hp=0000000000000000000000000000000000000000;hb=c2dbf1f8827b39b5f5916675f7d319ec1e728e96;hpb=ef3b3ec9dcffcb4751b7f2215efd918eab84d8a5 diff --git a/divided_difference_coefficients.m b/divided_difference_coefficients.m new file mode 100644 index 0000000..53d5799 --- /dev/null +++ b/divided_difference_coefficients.m @@ -0,0 +1,26 @@ +function coefficients = divided_difference_coefficients(xs) + ## Compute divided difference coefficients of `f` at points `xs`. + ## + ## INPUTS: + ## + ## * ``xs`` - A vector containing x-coordinates. + ## + ## OUTPUTS: + ## + ## * ``coefficients`` - The vector of coefficients such that + ## dot(coefficients, f(xs)) == dd. Used to solve linear systems. + ## + + coefficients = []; + + for xj = xs + this_coeff = 1; + for xi = xs + if (xi != xj) + ## Append (xj - xi) to the vector of coefficients. + this_coeff = this_coeff * (1 / (xj - xi)); + end + end + coefficients(end+1) = this_coeff; + end +end