Discussione: Funzione ERF in C++
View Single Post
Old 13-10-2002, 14:43   #3
KRYHAWOK
Senior Member
 
L'Avatar di KRYHAWOK
 
Iscritto dal: Sep 2001
Città: COMO, sul maestoso LARIO
Messaggi: 248
E' sorto un altro problema; pensavo che una volta trovata una formula analitica per il calcolo il gioco fosse finito.

Ho provato a tradurre in C++ la funzione che ho riportato sopra nel modo più ovvio, ossia:

*****************************************
long double normale(float x) {
long double sum=0;
for(i=0; i<=15; i++)
sum=sum+(pow(2,-i)*pow(x,2*i+1)*pow(-1,i))/((2*i+1)*fatt(i));
return sum/sqrt(1/(2*3.1415926)); }
*****************************************

..che traduce la formula. Ma i valori ottenuti non sono soddisfacenti: la stessa equazione, in Derive, dà un risultato mooolto migliore.

Ho provato allora ad eliminare il ciclo FOR, espcitando la sommatoria e scrivendo esplicitamente i coefficienti. In questo modo i valori sono nettamente più simili a quelli di Derive, ma non oltre x=0.7. Considerando che la normale è praticamente costante dopo x=3.7.... non ci siamo ancora.

Come posso tradurre in C++ la formula dell'immagine in modo decente?????

Grazie dell'aiuto!
__________________
Athlon FX-53 / MSI K8N Neo2 Platinum / Corsair TwinX 1024 XL / 2 x WesternDigital Raptor 74GB - RAID 0 / Gainward PowerPack! 2200 GeF. 6800 256MB / Pioneer DVR-108 / LiteOn LTR-52327S / Enermax 550W / HP P1100 21" CRT
KRYHAWOK è offline   Rispondi citando il messaggio o parte di esso