import java.io.*;
import java.util.Vector;
class MePointFixe {
	//Vector x;
	double xn;
	int n; // terme courant de la suite
	double eps; // precision de convergence
	int nmax; // nombre maxi dÕiterations
	MaFonction g;
	// fixe la valeur du terme initial de la suite :
	//public void set_xn(double x0) { xn = x0; }
	// fixe la valeur de la precision :
	//public void set_epsilon(double precision) { epsilon = precision; }
	// fixe le nombre maxi dÕiterations :
	//public void set_maxIter(int m) { maxIter = m; }
	// methode abstraite du calcul dÕune iteration
	// a partir de xn courant :

MePointFixe(double x0, double eeps, int nm, MaFonction fonc) {
xn=x0;
n=0;
g=fonc;eps=eeps;nmax=nm;}

public void iter()
	{
	xn=g.calcul(xn);
	n++;
	} ;
	

	
	// methode de calcul dÕune iteration
	// a partir dÕune valeur x donne :

	// calcul dÕune suite recurrente
	//a partir de iter et jusquÕa convergence :
public double caSuite() {

	try {
File fic=new File("ficPointFixe.txt");
PrintWriter ecFic= new PrintWriter(fic);
	do {
	
	System.out.println(xn);
	ecFic.println(xn);

	iter();
	} while (Math.abs(g.calcul(xn)-xn) > eps && n < nmax);
ecFic.close();	
	}
	catch(Exception e) {
	System.err.println(e);
	}
return xn;
	}
}
