import ChaosDemos.*; import java.awt.*; import java.util.*; //******************************************************************** /** * Diagnostics for Map1D
* Plots histogram of x values.
* Region of x-axis can be enlarged using mouse drag. * @version 10 October 1997 * @author Michael Cross */ //******************************************************************** public class Map1DBin extends Map1DDiagnostics { /** number of data points for power spectrum (must be power of 2!) and histogram */ private int dataLength ; /** 2*dataLength */ private int dataLength2; /** index point in accumulating Fourier data */ private int fourierIndex; /** array for plotting histogram */ private double[] plotData; /** array of accumulated numbers in bins */ private int[] binData; private int binSkip=1; /** maximum bin content, for scaling histogram */ private int binMax=0; //****************************************************************** /** * @param inParent parent class * @see Map1D */ //****************************************************************** public Map1DBin(Map1D inParent) { super(inParent); parameters = new double[parent.nParameters]; } //******************************************************************** /** * Updates parameters from the text controls in parent class */ //******************************************************************** public void updateParameters() { int i; x0=parent.variables.parseTextField(5,x0); x=x0; ntrans=parent.variables.parseTextField(3,ntrans); if(ntrans>0) runTrans=true; nf=parent.variables.parseTextField(2,nf,true); parent.mapFunction.setCompose(nf); dataLength=parent.variables.parseTextField(4,10); dataLength2=2*dataLength; } //********************************************************************* /** * Restarts */ //********************************************************************* public void restart() { double data1[] = new double[6]; int i,j; double xSave; double tSave; double f; int ip=0; iterations=0; // Eliminate transient if(runTrans) { for(i=0;i0 && index < dataLength2) { binData[index]++; if(binData[index] > binMax) binMax=binData[index]; } } iterations+=dataLength; data1[0]=xmin; data1[1]=0.; data1[2]=xmax; data1[3]=1.; ncurve = parent.graph.addCurve(data1,2,Color.black,0,7,1.); for(j=1;j=0 && index binMax) binMax=binData[index]; } } iterations+=binSkip; if(parent.showTime) parent.status.setText("No. of Iterations "+ iterations); parent.graph.clearAll=true; parent.graph.paintAll=false; // if(ncurve>=0) ncurve = graph.deleteAllCurves(); // ncurve = graph.addCurve(moredata,2,Color.black,0,7,1); for(j=1;j