Bonjour,

je dois résoudre un système d'équation à n équations et n inconnus, chose pas très difficile avec la méthode de cramer.

Voilà, je remplis les coefficients de l'équation avec les valeurs d'un tableau que j'ai construit, et j'ai en sorti mon les résultats, c'est à dire les solutions des équations.

Cependant je ne trouve que des 0.

Pourquoi?

Voilà mon code,

En espérant que vous me serez d'une grande aide,

Margueritian


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import java.util.Scanner.*;
import java.util.*;
 
public class cramersrule{
 
double A[][];
double m[][];
int N = 9;
double B[];
 
	public void input(double Valtab[][]){ // permet davoir les systemes que nous cherchons pour pouvoir les resoudres ensuite
 
		Scanner s = new Scanner(System.in);
 
		//System.out.println("enter no of equations of matrix");
		A = new double[N][];
			for(int i=0;i<N;i++) {
				A[i]= new double[N];
			}
 
		//System.out.println("enter the co-efficient of equations");
 
			for(int i=0;i<N;i++){
				//System.out.println("enter the co-efficient of equation" + (i+1));
				for(int j=0;j<N;j++){
					//double k=s.nextDouble();
					A[i][j] = Valtab[j][i];
	}
}
 
B = new double[N];
//System.out.println("enter the RHS of equations");
		for(int i=0;i<N;i++){
			//System.out.println("enter the RHS of equations" + (i+1));
			B[i] = 0;
		}
	}
 
public double determinant(double A[][],int N){
 
double det=0;
double res;
if(N == 1)
res = A[0][0];
 
else if (N == 2){
res = A[0][0]*A[1][1] - A[1][0]*A[0][1];
}else{
res=0;
 
for(int j1=0;j1<N;j1++){
m = new double[N-1][];
 for(int k=0;k<(N-1);k++)
   m[k] = new double[N-1];
	for(int i=1;i<N;i++){
		int j2=0;
		for(int j=0;j<N;j++){
			if(j == j1)
				continue;
				m[i-1][j2] = A[i][j];
				j2++;
		}
	}
		res += Math.pow(-1.0,1.0+j1+1.0)* A[0][j1] * determinant(m,N-1);
	}
}
return res;
}
 
 
public double[] cramers(double A[][],double B[]){ // permet de resoudre les systemes
  double temp[][] = new double[N][N];
double x[] = new double[N];
  for(int i=0;i<N;i++){
      for(int j=0;j<N;j++){
         for(int k=0;k<N;k++){
           if(k == i){
            temp[j][k] = B[j];
            }else{
             temp[j][k] = A[j][k];      
           }
		}
       x[i]=determinant(temp,N)/determinant(A,N);
    }
}
 for(int i=0;i<N;i++){
		System.out.println("x"+(i+1)+"="+x[i]);
		//System.out.print(;}
		}
		return x;
}
 
 
public static void main(String args[]){
 
	double res;
	double tableau[][]={{1,9,5,2,5,5,6,7,8},{100,4,5,7,7,1,5,7,8},{1,2,2,5,5,1,7,4,5},{2,5,8000,8,9,2,5,47,5},{5,7,1,5,2,2,5,8,7},{100,4,5,7,7,1,4,52,2},{1,2,2,5,5,1,45,2,8},{2,5,8,8,9,2,5,4,7},{5,7,1,5,2,1,4,7,5}};
//{{3,1,2},{3,4,5},{6,7,8}};
		cramersrule d = new cramersrule();
		d.input(tableau);
		d.cramers(d.A,d.B);
   }
}