Add length checks to the wood functions, and fix wood_hessian1().
authorMichael Orlitzky <michael@orlitzky.com>
Thu, 7 Mar 2013 01:04:11 +0000 (20:04 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Thu, 7 Mar 2013 01:04:11 +0000 (20:04 -0500)
optimization/test_functions/wood1.m
optimization/test_functions/wood_gradient1.m
optimization/test_functions/wood_hessian1.m

index 6c3f31901f542bcb2d827fe98c641ef80d29dcca..c34de26a9dfe738f59f595b5a5f3731cef472f32 100644 (file)
@@ -4,5 +4,9 @@ function f = wood1(x)
   ## instead of four distinct arguments. See wood.m for more
   ## information.
   ##
-  f = wood(x(1), x(2), x(3), x(4));
+  if (length(x) == 4)
+    f = wood(x(1), x(2), x(3), x(4));
+  else
+    f = NA;
+  end
 end
index 0191f54bdf7b0c7461ae7238e14e9ae92576ec8e..eabccc94175b38fc9cb6c50757f78e4b66749122 100644 (file)
@@ -4,5 +4,9 @@ function g = wood_gradient1(x)
   ## 4-vector instead of four distinct arguments. See wood_gradient.m
   ## for more information.
   ##
-  g = wood_gradient(x(1), x(2), x(3), x(4));
+  if (length(x) == 4)
+    g = wood_gradient(x(1), x(2), x(3), x(4));
+  else
+    g = NA;
+  end
 end
index 60d98544724801228bf2d52003cf8a508fed0604..106cb403aef60337b946767d7b82df8ab5adf19e 100644 (file)
@@ -4,21 +4,9 @@ function H = wood_hessian1(x)
   ## 4-vector instead of four distinct arguments. See wood_hessian.m
   ## for more information.
   ##
-  H = zeros(4,4);
-  H(1,1) = 1200*x(1)^2 - 400*x(2) + 2;
-  H(1,2) = -400*x(1);
-  H(1,3) = 0;
-  H(1,4) = 0;
-  H(2,1) = H(1,2);
-  H(2,2) = 220.2;
-  H(2,3) = 0;
-  H(2,4) = 19.8;
-  H(3,1) = H(1,3);
-  H(3,2) = H(2,3);
-  H(3,3) = 1080*x(3)^2 - 360*x(4) + 2;
-  H(3,4) = -360*x(3);
-  H(4,1) = H(1,4);
-  H(4,2) = H(2,4);
-  H(4,3) = H(3,4);
-  H(4,4) = 200.2;
+  if (length(x) == 4)
+    H = wood_hessian(x(1), x(2), x(3), x(4));
+  else
+    H = NA;
+  end
 end