Quale libreria java calcola la funzione di distribuzione normale standard cumulativa?
-
22-07-2019 - |
Domanda
Per un progetto ho una specifica con formule, devo implementare. In queste formule esiste una funzione di distribuzione normale standard cumulativa, che prende un float e genera una probabilità. La funzione è simboleggiata da un & # 934 ;. Esiste una libreria Java, che calcola questa funzione?
Altri suggerimenti
Apache Commons - Math ha quello che stai cercando.
Più specificamente, controlla NormalDistribution
classe.
Se vuoi il codice esatto, questo sembra essere la stessa funzione usata in OpenOffice Calc (ho apportato alcune modifiche affinché funzioni in java):
// returns the cumulative normal distribution function (CNDF)
// for a standard normal: N(0,1)
double CNDF(double x)
{
int neg = (x < 0d) ? 1 : 0;
if ( neg == 1)
x *= -1d;
double k = (1d / ( 1d + 0.2316419 * x));
double y = (((( 1.330274429 * k - 1.821255978) * k + 1.781477937) *
k - 0.356563782) * k + 0.319381530) * k;
y = 1.0 - 0.398942280401 * Math.exp(-0.5 * x * x) * y;
return (1d - neg) * y + neg * (1d - y);
}
Trovato qui: http://www.codeproject.com/ messaggi / 2622967 / Re-NORMSDIST-function.aspx
SuanShu, una libreria di analisi numerica Java , calcola la distribuzione normale e molte altre distribuzioni statistiche.
È possibile utilizzare la formula delle serie di potenze, che occupa solo circa 10 righe di codice ... vedere ad esempio http://introcs.cs.princeton.edu/java/22library/Gaussian.java.html (la funzione Phi
)