[gnumeric] Document nlsolve a bit.



commit 851d916625aec2e9d87f9da7819f96fdbc52434d
Author: Morten Welinder <terra gnome org>
Date:   Fri Apr 24 10:47:46 2015 -0400

    Document nlsolve a bit.

 plugins/nlsolve/gnm-nlsolve.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)
---
diff --git a/plugins/nlsolve/gnm-nlsolve.c b/plugins/nlsolve/gnm-nlsolve.c
index ed35213..ece76c7 100644
--- a/plugins/nlsolve/gnm-nlsolve.c
+++ b/plugins/nlsolve/gnm-nlsolve.c
@@ -12,6 +12,25 @@
 #include <glib/gi18n-lib.h>
 #include <string.h>
 
+/*
+ * This is based on the algorithm from "An Automatic Method for finding
+ * the Greatest or Least Value of a Function" by H. H. Rosenbrock
+ * published in _The Computer Journal_ (1960) 3(3): 175-184.
+ *
+ * It is thus 50+ years old.  You would think that advances in computer
+ * science would have produced improvements that would run circles
+ * around this, but that is not obviously true.
+ *
+ * There are a couple of attrictive features of the Rosenbrock method:
+ * 1. It's monotonic.  Unlike Newton-style methods it cannot suddenly
+ *    warp far away.
+ * 2. We don't need the Hessian.
+ *
+ * Note, that in order to speed convergence we occasionally perform
+ * a tentative Newton iteration step.  (It's tentative because we will
+ * discard it if it doesn't lead to an immediate improvement.)
+ */
+
 #define PRIVATE_KEY "::nlsolve::"
 
 /*


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]