/**********************************************************************/ public void TestsErreur(Graphics g, Bitmap bmp) { int x, z; double z2; // image blanche for (x = 0; x < bmp.Width; x++) { for (z = 0; z < bmp.Height; z++) { bmp.SetPixel(x, z, Color.White); } } List <List <double> > lvecteursentrees = new List <List <double> >(); List <double> lsortiesdesirees = new List <double>(); List <double> lsortiesobtenues; // EN général, on reprend ici les données récupérées du fichier base de données // mais pour illustrer le fonctionnement, on se propose ici de tester 200 valeurs // de x (dimension 1 pour les entrées ici) entre 0 et 1, ramenées entre 0 et 200 // idem pour la sortie, pour permettre l'affichage dans une image. for (x = 0; x < tabValeurs.GetLength(0); x++) { // Initialisation des activations ai correspondant aux entrées xi // Le premier neurone est une constante égale à 1 List <double> vect = new List <double>(); vect.Add(tabValeurs[x, 0] / 500); // Une seule valeur ici pour ce vecteur vect.Add(tabValeurs[x, 1] / 500); lvecteursentrees.Add(vect); } lsortiesobtenues = reseau.ResultatsEnSortie(lvecteursentrees); // Affichage List <double> listIntensite = new List <double>(); List <double> listIntensiteCorrigee = new List <double>(); for (x = 0; x < tabValeurs.GetLength(0); x++) { z2 = lsortiesobtenues[x]; listIntensite.Add(z2); } double min = listIntensite[0]; double max = listIntensite[0]; // On recherche le minimum et le maximum foreach (double element in listIntensite) { if (element < min) { min = element; } else { max = element; } } for (int m = 0; m < tabValeurs.GetLength(0); m++) { int abs = Convert.ToInt32(0.4 * tabValeurs[m, 0]); // a corriger en fonction du max de datasetregression ! int ord = Convert.ToInt32(0.4 * tabValeurs[m, 1]); double intensite = listIntensite[m] * 255; //Remap( listIntensite[m], min, max, 0, 255); // il faut maper int i = Convert.ToInt32(Math.Floor(intensite)); bmp.SetPixel(abs, ord, Color.FromArgb(i, i, i)); } }