package com.company.hillclimping; public class HillClimbing { private static final double START_INTERVAL = -2; private static final double END_INTERVAL = 2; private double f(double x) { return -(x-1)*(x-1)+2; } public void hillClimning() { double dx = 0.01; double actualPointX = START_INTERVAL; double max = f(actualPointX); while( f( actualPointX+dx ) >= max ) { max = f( actualPointX+dx ); System.out.println("x="+actualPointX+" f(x)="+f(actualPointX)); actualPointX = actualPointX + dx; } System.out.println("Max with hill climbing: " + max); } }