public static double[][] inverse(double[][]m){
		int n =m.length;
		boolean bool = false;
		double[][] A = new double[n][n];
		double[][] C = new double[n][n];
		for (int i=0; i<n;i++){
			for (int j=0;j<n;j++){
				C[i][j]=0;
				A[i][j]=m[i][j];
			}
			C[i][i]=1;
		}
		
		for (int k=0;k<n;k++){
			for (int i=k;i<n && bool==false;i++){
				double aik = A[i][k];
				if (!(aik == 0)){
					bool=true;
					echangeLigne(A,i,k);
					echangeLigne(C,i,k);
					multiplieLigne(A,k,1.0/aik);
					multiplieLigne(C,k,1.0/aik);			
				}
			}
			if (bool == false){
				System.out.println("Matrice non inversible");
				return null;
			} else {
				bool = false; //pour le prochain tour de boucle
				for (int i=0;i<n;i++){
					if (i==k){
					} else {
						double aik = A[i][k];
						ligneMoinsLigneMultipliee(A,i,k,aik);
						ligneMoinsLigneMultipliee(C,i,k,aik);
					}
				}
			}
		}
		return C;
	}