Bonjour, j'ai eu un problème dans les résulats de la formule qui calcul le cosinus entre deux vecteurs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Cos ( X,Y) = ( somme( xi*yi) / Racine [somme(xi²)*somme(yi²) ]
j'ai vérfier le programme et il es jsute mais qu'and je teste pour deux vecteurs de dimension 24 , le resulat est supprieur à 1 ( hors il foudrais être entre [-1, 1] ) .
voici le programme que j'ai fait :

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
  private double calcCos(int ha[] , int hb[]){
	int l=ha.length;	
 
	double x=0;
	double y=0;
	double d=0;	
 
	for (int i=0;i<l;i++)
	{	
	 //System.out.println(ha[i]+" * "+hb[i]);
	 d+=(ha[i]*hb[i]);
	 x=x+(ha[i]*ha[i]);
	 y=y+(hb[i]*hb[i]);	 
 
	}
	System.out.println("d="+d);
             x=Math.sqrt(x);
             y=Math.sqrt(y);
             System.out.println("x="+x);
             System.out.println("y="+y);	       
             double s=x*y;
             System.out.println("s="+s);
	d=d/(s);  
             System.out.println("d="+d);  
	return d;	
 
  }

et les deux vecteurs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
ha[]={
23952 ,22776, 14528, 4961 ,4176 ,3547 ,1680, 1180, 28971 ,26939, 7407 4344 ,4597 ,2653 ,1076, 813, 40018, 19433, 5566 ,4615 ,4479 ,1645, 396 648};
 
hb[]={
38285, 19960, 29100, 21662 ,8784 ,3111 ,1444 ,874 ,35708, 5900, 24121 32617 ,18394 ,5882 ,562 ,36 ,50777, 29165, 17759 ,11567 ,6849 ,5855 ,1125 123};

j'aimerai bien qu'elle qu'un qui m'aide ou de m'expliquer pour quoi .

merci d'avance .