У меня есть некое кол-во случайных величин float в диапазоне [0;1] и эти величины имеют равномерное распределение.
Если такая величина X имеет нормальное распределение, то, величина
K = m + a * tan(PI*(X-0.5)) имеет распределение коши.
Возможно ли по аналогии преобразовать такую величину X, в величину имеющую нормальное распределение?
Ответ
Написал грубо и точно ;) функцию InverseErf. Она очень сложна для вычислений.
// g++ inverf.cpp -o inverf
# include
double SimpleToNormal(double x , double med , double sigma){
return med + sqrt(2.0)*sigma*InverseErf(2.0*x-1.0);}
int main() {
std::cout<<"inverf(0.999)="<
double InverseErf2(double x){
double result = sqrt(-log(1.0-x*x))*0.9;
return (x < 0.0) ? -result : result ; }
Комментариев нет:
Отправить комментарий