//*********************************************************************************** /** Class to return iterate of Duffing map function.
*/ //*********************************************************************************** public class DuffingMapFunction extends Map2DFunction { double X,Y; DuffingMapFunction() { nParameters=2; a = new double[nParameters]; aDefault = new double[nParameters]; aDefault[0]=2.75; aDefault[1]=0.2; title = "Duffing Map"; xminDefault=-2.0; xmaxDefault=2.0; yminDefault=-2.0; ymaxDefault=2.0; } //*********************************************************************************** /** 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; x[1] = -a[1]*X+a[0]*Y-Y*Y*Y; 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; t[1] = -a[1]*X+a[0]*Y-3*x[1]*x[1]*Y; } //*********************************************************************************** }