diff --git a/prog b/prog
index 5e114ca1adbd545e7798c5e681d8c04a5f7291e7..500cdfa1fef9ee4f743569be64c8a6487b98adc8 100755
Binary files a/prog and b/prog differ
diff --git a/src/main.c b/src/main.c
index f4e3c49d546985f2911c072ee11a8d784a926172..90cc658863668f598218459cde19a05372ed7396 100644
--- a/src/main.c
+++ b/src/main.c
@@ -10,23 +10,23 @@ int main() {
 
   point pt0;
   pt0.x=0;
-  pt0.y=0;
+  pt0.y=1;
 
   point pt1;
   pt1.x=1;
-  pt1.y=1;
+  pt1.y=2;
 
   point pt2;
   pt2.x=2;
-  pt2.y=2;
+  pt2.y=3;
 
   point pt3;
   pt3.x=3;
-  pt3.y=3;
+  pt3.y=4;
 
   point pt4;
   pt4.x=4;
-  pt4.y=4;
+  pt4.y=5;
 
   vector v;
   vector_init(&v);
@@ -37,12 +37,12 @@ int main() {
   vector_push(&v,pt4);
 
   point p = findBestDroite(v);
-  printf("Sol Analytique : %f %f\n",p.x,p.y);
+  printf("Sol Analytique : a: %f b: %f\n",p.x,p.y);
   point drt;
-  drt.x=1;
-  drt.y=0;
-  p = descenteGradient(0.00001,drt,v);
-  printf("Sol Numérique : %f %f\n",p.x,p.y);
+  drt.x=3;
+  drt.y=3;
+  p = descenteGradient(0.0001,drt,v);
+  printf("Sol Numérique : a: %f b: %f\n",p.x,p.y);
 
   vector_free(&v);
 
diff --git a/src/main.o b/src/main.o
index 65995157d7e47db285d3f2f5d61bdf31f4bee87f..add5e0e88995975bd8050fef2f4487a3a2dd8ecb 100644
Binary files a/src/main.o and b/src/main.o differ
diff --git a/src/regressionLin.c b/src/regressionLin.c
index a297cdeb801bd714881f4b9ceadedf2078dc9e25..531e0773aa527263df083c4595e2504437141534 100644
--- a/src/regressionLin.c
+++ b/src/regressionLin.c
@@ -36,37 +36,36 @@ point descenteGradient(double precision, point drt, vector pts){
   double gradienty = 0;
   double oldptx = 0;
   double oldpty = 0;
-  double testSortie;
-
-  while(1){
+  double testSortie=1;
+  double lambda = 0.000001;
+  while(testSortie > precision){
     gradientx = 0;
     gradienty = 0;
     testSortie = 0;
 
-
+    //drt.x est a et drt.y est b
     for(int i = 0; i < pts.length; i++){
-      gradientx += ((pts.content[i].x * pts.content[i].x) * drt.x) + (drt.y * pts.content[i].x) - (pts.content[i].x * pts.content[i].y);
-      gradienty += (drt.x * pts.content[i].x) - pts.content[i].y;
+      gradientx += (pow(pts.content[i].x, 2) * pt.x) + (pt.y * pts.content[i].x) - (pts.content[i].x * pts.content[i].y);
+      gradienty += (pt.x * pts.content[i].x) - pts.content[i].y;
     }
-    gradientx = gradientx*2;
+    gradientx = gradientx * 2;
 
     gradienty += drt.y * pts.length;
-    gradienty = gradienty*2;
+    gradienty = gradienty * 2;
+
 
-    double lambda = 0.1;
-    //drt.x est a et drt.b est b
     oldptx = pt.x;
     oldpty = pt.y;
 
-    pt.x = drt.x - lambda *(gradientx);
-    pt.y = drt.y - lambda *(gradienty);
+    pt.x = oldptx - (lambda * gradientx);
+    printf("ptx : %f\n",pt.x);
+    pt.y = oldpty - (lambda * gradienty);
+    printf("pty : %f\n",pt.y);
 
 
+    //Sortie
     testSortie = sqrt(pow(pt.x - oldptx,2) + pow(pt.y - oldpty,2));
-
-    if(testSortie < precision){
-      break;
-    }
+    printf("%f\n",testSortie);
   }
 
   return pt;
diff --git a/src/regressionLin.o b/src/regressionLin.o
index e848455ca599c588cea6cc7e76440a0860701014..520a921ac1bcf7da3d0836881cd8d603852387a6 100644
Binary files a/src/regressionLin.o and b/src/regressionLin.o differ