import java.util.*; //*********************************************************************************** /** Class to return iterate of Yorke map function.
*/ //*********************************************************************************** public class YorkeFunction extends Map2DFunction { double X,Y; YorkeFunction() { nParameters=2; a = new double[nParameters]; aDefault = new double[nParameters]; aDefault[0]=3.0; aDefault[1]=0.25; title = "Yorke Map"; xminDefault=0.0; xmaxDefault=1.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] = mod(a[0] * X); x[1] = a[1] * Y + Math.cos(2*Math.PI * 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] = a[0] * X; t[1] = a[1] * Y - 2*Math.PI*Math.sin(2*Math.PI * x[0])*X; } //*********************************************************************************** }