]> gitweb.michael.orlitzky.com - octave.git/blobdiff - divided_difference_coefficients.m
Move several functions out of the homework1/src directory and into the top-level...
[octave.git] / divided_difference_coefficients.m
diff --git a/divided_difference_coefficients.m b/divided_difference_coefficients.m
new file mode 100644 (file)
index 0000000..a40f559
--- /dev/null
@@ -0,0 +1,25 @@
+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)) == f[xs]. Used to solve linear systems.
+  ##
+
+  coefficients = [];
+
+  for xj = xs
+    this_coeff = 1;
+    for xi = xs
+      if (xi != xj)
+       this_coeff = this_coeff * (1 / (xj - xi));
+      end
+    end
+    coefficients(end+1) = this_coeff;
+  end
+end