ecco il codice:
per alcune funzioni (come la circonferenza) funziona alla perfezione, per altre (come una qualsiasi parabola) entra in loop in prossimità del ciclo while (x<=1)codice://z(double,double) è la funzione implicita //g(double,double) ritorna (z(x+0.001,y)-z(x,y))/0.001; int main() { for (double Y=0.003;Y<=1;Y+=0.001) { double x=-1; while (x<=1) { if (z(x,Y)>0) { double tm=x; //tm è il valore di x che poi verrà approssimato con il metodo delle tangenti all'ascissa del punto sul grafico for (int i=0;i<10;i++) tm=tm-z(tm,Y)/g(tm,Y); cout<<Y<<" "<<tm<<endl; //stampo il punto while((z(x,Y)>0)&&(x<=1)) x+=0.01; } else if (z(x,Y)<0) while(z(x,Y)<0) x+=0.01; else {cout<<Y<<" "<<x<<endl; x+=0.01;} } getchar(); } }

Rispondi quotando