J'ai un souci à la dernière boucle "for" dans laquelle apparaît un "if".
Le programme ne trouve pas le point B8.
Une idée svp ? Merciiiiii

Code : Tout sélectionner
unitsize(1cm);
pen vert = rgb(0,0.95,0.07),
bleu = rgb(0.31,0.73,0.87),
jaune = rgb(1,0.92,0.09);
draw((0,0)--(7,0), 0.1mm + black);
draw((0,0)--(0,6), 0.1mm + black);
real f(real x) {return 0.24*x^3-2.19*x^2+5.17*x+1;}
pair[] points, y;
int Nb = 5;
real[] A, racines, racine_ordonnees;
for(int i = 0; i < Nb; ++i){
y[i] = (0, 1 + i*(5-1)/(Nb-1));
draw(y[i]--(6, y[i].y), 0.05mm + linetype("12 14 12 14"));// Trace l'horizontale
label(format("$y_{%i}$",i), y[i], W, fontsize(4pt));
racines = cubicroots(0.24, -2.19, 5.17, 1-(y[i].y)); // Recherche des racines de f(x)=yi
A.append(racines); // On ajoute chaque racine trouvée au tableau A
racine_ordonnees = sort(A);
}
write(racine_ordonnees.length);
//
//
for(int k = 0; k < racine_ordonnees.length; ++k){
draw((racine_ordonnees[k], -0.05)--(racine_ordonnees[k], 0), 0.2mm + black);
points[k] = (racine_ordonnees[k], f(racine_ordonnees[k])); // coordonnées des points
dot(points[k], 0.4mm + blue);//on place les points
label(format("$r_{%i}$",k), racine_ordonnees[k], 2S, fontsize(4pt));
label(format("$B_{%i}$",k), points[k], E, fontsize(4pt));
}
for(int k = 0; k < racine_ordonnees.length; ++k){
if ( f(racine_ordonnees[k]) == 3 ) {
//write(racine_ordonnees[k]);
draw((racine_ordonnees[k],0)--(racine_ordonnees[k], 3), 0.2mm + blue);
}
}

