Originariamente inviato da sacristofelico
Vedo dalla tua firma che conosci il linguaggio C

Mah,si potrebbe usare il metodo che io definirei del "trenino" cioè si percorre la funzione lungo
l'intero suo dominio e si determinano i punti di inversioni di tendenza.

calcolo()
{
double x,xp,xq,step,a;

step=0.1;
xp=0.0; /* xp,xq= estremi dominio della funzione */
xq=100.0;

a=1.0; /* a è un interuttore */

/* fu()=funzione in esame */

if((fu(xp+step)-fu(xp))<0.0)
a=-1.0;

for (x=xp;x<=xq;x+=step)
{

if((fu(x+a*step)-fu(x))<0.0)
{
printf("zero=%lf",x);
a*=-1;
}
}

return;
}


Ah,naturalmente l'algoritmo proposto vale per R1,vedi un po' si ti può essere di aiuto come spunto per Rn...
ci avevo pensato... in r1 funziona bene... ma in Rn per n grande richiede troppi calcoli...


Originariamente inviato da taddeus
Mmmmhhh, i casi sono quindici

1) potresti copiare gli algoritmi usati dagli m-files di octave (matlab), sono script.
2) A fantasia, potresti definire il campo nei naturali,definisci epsilon, calcoli funzione e piazzi i reali in una matrice nx1 (con FIFO), scansioni la matrice dei reali verificando la costanza dei membri entro l'epsilon fissato, ovviamente anche i numeri naturali devono essere 'conservati' in una matrice nx1 , per 'ricordare' per quale naturale si ha la tangente nulla (variazione tra un membro e l'altro inferiore ad epsilon).
Credo che il problema più grosso sia la definizione di epsilon.
del punto 2 non ci ho capito molto