ci avevo pensato... in r1 funziona bene... ma in Rn per n grande richiede troppi calcoli...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...![]()
del punto 2 non ci ho capito moltoOriginariamente 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.![]()