//*********************************************************************************** /** Class to return iterate of Henon map function.
*/ //*********************************************************************************** public class HenonFunction extends Map2DFunction { double X,Y; HenonFunction() { nParameters=2; a = new double[nParameters]; aDefault = new double[nParameters]; aDefault[0]=1.4; aDefault[1]=0.3; title = "Henon Map"; xminDefault=-1.0; xmaxDefault=1.5; yminDefault=-0.5; ymaxDefault=0.5; } //*********************************************************************************** /** iterates the map function * @param x input value * @return iterated value */ //*********************************************************************************** public void iterate(double[] x) { X = x[0]; Y = x[1]; x[0] = Y + 1 - a[0]*X*X; x[1] = a[1]*X; x[2]=X; x[3]=Y; } //*********************************************************************************** /** iterates the tangent space to the map * @param x input value and returns updated values * x[0] and x[1] contain the new values of X and Y * x[2] and x[3] contain the previous values * @param t value of tangent vector (updated by iteration) */ //*********************************************************************************** public void iterateTangent(double[] x, double[] t) { X = t[0]; Y = t[1]; t[0] = Y - 2*a[0]*x[0]*X; t[1] = a[1]*X; } //*********************************************************************************** }