diff --git a/prog b/prog index b4534b77f120e888a3ff9f83b6ae5c81ce6c2830..feabe8ff3336cc1eeb87e8a89fcb0e99747d551c 100755 Binary files a/prog and b/prog differ diff --git a/src/main.c b/src/main.c index 6a09da83472d773757f688cb05a1db2e9bcb51e8..b351ff45275d27e1599340d13d07fa8971fd727b 100644 --- a/src/main.c +++ b/src/main.c @@ -41,23 +41,30 @@ int main() { point drt; - drt.x = 6; - drt.y = 6; + drt.x = 0.8; + drt.y = 1.2; p = descenteGradient(0.000001,drt,v); printf("Sol Numérique : a: %f b: %f\n",p.x,p.y); //Tests point drtTest; - drtTest.x = 0; - drtTest.y = 2; + drtTest.x = 0.8; + drtTest.y = 1.2; vector vecTest = nuagePoints(drtTest, 30, 0, 20); - p = descenteGradient(0.000001,drtTest,v); - //Très proche de la sol numérique donc peut-être augmenter le bruit - printf("Sol Numérique : a: %f b: %f\n",p.x,p.y); + printf("Test n°1\n"); + p = descenteGradient(0.000001,drtTest,vecTest); + printf("Sol Numérique Test 1 : a: %f b: %f\n",p.x,p.y); + printf("Test n°2\n"); + drtTest.x = 1; + drtTest.y = 1; + vector vecTest2 = nuagePoints(drtTest, 10, 0, 10); + p = descenteGradient(0.000001,drtTest,vecTest2); + printf("Sol Numérique Test 2 : a: %f b: %f\n",p.x,p.y); vector_free(&v); vector_free(&vecTest); + vector_free(&vecTest2); return EXIT_SUCCESS; } diff --git a/src/main.o b/src/main.o index e623ffc7c056eb3aaa287713deba0cfd2c9993a8..24e9ab30a24c2b2fd28d17d9e6679a842c7a8569 100644 Binary files a/src/main.o and b/src/main.o differ diff --git a/src/regressionLin.c b/src/regressionLin.c index ba18829747e12c50a78c97e25bdba844b54e11c4..c0a6dd18a39abfce064958936508fccdb5207854 100644 --- a/src/regressionLin.c +++ b/src/regressionLin.c @@ -74,10 +74,16 @@ vector nuagePoints(point drt, int len, int minP, int maxP){ point add; // Il faut prend drt proche de la solution Analytique for(int i = 0; i < len; i++){ - bruit = ((double) rand()*(1-(-1))/(double)RAND_MAX-(-1)); + // Le bruit doit être entre -1 et 1 par ex. => ici il est entre -0.5 et 0.5 + bruit = ((double) rand()*(1)/(double)RAND_MAX-(0.5)); + // printf("%f\n",bruit); add.x = ((double) rand()*(maxP-minP)/(double)RAND_MAX-minP); add.y = drt.x * add.x + drt.y + bruit; vector_push(&vec,add); } return vec; } + +void validationCroisee(){ + +} diff --git a/src/regressionLin.h b/src/regressionLin.h index 388151b549c879837e83a755c0005dd2ece5b242..bf9c0d075083adf032456f61331e316cb65fbce3 100644 --- a/src/regressionLin.h +++ b/src/regressionLin.h @@ -12,9 +12,6 @@ // Analytique point findBestDroite(vector pts); -// vérifier que ce que l'on trouve soit correct à l'exercice (on a déjà fait dans un exo) -// on peut donc reprendre simplement A=.. et B=.. si la fonction de base ne change pas -// sinon utilise solvSystem // Numérique point descenteGradient(double precision, point drt, vector pts); @@ -22,4 +19,6 @@ point descenteGradient(double precision, point drt, vector pts); // Tests vector nuagePoints(point drt, int len, int minP, int maxP); +void validationCroisee(); + #endif diff --git a/src/regressionLin.o b/src/regressionLin.o index 7a03a7c2253cb0de671c8ea168c745aff73fa86f..c827e0018c5f7c15d79f3f39add6147ac78718c5 100644 Binary files a/src/regressionLin.o and b/src/regressionLin.o differ