]> gitweb.michael.orlitzky.com - octave.git/blobdiff - optimization/test_functions/himmelblau.m
Add the Himmelblau function, as defined in Applied Nonlinear Programming.
[octave.git] / optimization / test_functions / himmelblau.m
diff --git a/optimization/test_functions/himmelblau.m b/optimization/test_functions/himmelblau.m
new file mode 100644 (file)
index 0000000..c973a86
--- /dev/null
@@ -0,0 +1,17 @@
+function f = himmelblau(x1, x2)
+  ##
+  ## The eponymous function defined by Himmelblau in his Applied
+  ## Nonlinear Programming, 1972.
+  ##
+  ## It has four identical local minima,
+  ##
+  ##   * f(3,2)                                    == 0
+  ##
+  ##   * f(-2.805118086952745,  3.131312518250573) == 0
+  ##
+  ##   * f(-3.779310253377747, -3.283185991286170) == 0
+  ##
+  ##   * f(3.584428340330492, -1.848126526964404)  == 0
+  ##
+  f = (x1^2 + x2 - 11)^2 + (x1 + x2^2 - 7)^2;
+end