/* * NMApplet.java * Created on Mar 27, 2005 */ package search; /** * A type. */ public final class NMMain { private static final Function NMMFun = new NMMFunction(); private static final double dev = 1.0 / Math.sqrt(2); private static final Point[] initialSimplex = { new Point(new double[]{-10.0, -10.0}), new Point(new double[]{ -9.0, -10.0}), new Point(new double[]{-10.0, -9.0})}; public static void main(String args[]) { NelderMead nm = new NelderMead(NMMFun, initialSimplex); Point minP = nm.search(); double min = NMMFun.at(minP); System.out.println(minP + " = " + min); } private static class NMMFunction implements Function { public double at(Point p) { final double x = p.get(1), y = p.get(2); return 0.2 * (sq(x) + sq(y)) - 2 * Math.exp(-(sq(x) + sq(y))) - Math.exp(-0.5 * (sq(x) + sq(y + 4))); } private static double sq(double a) { return a * a; }; } }