Я использую gsl версии 2.5 для вычисления обратных cdf некоторых значений для бета-дистрибутива ( документация ). Однако у меня, похоже, возникают проблемы сходимости при больших значениях параметров. Например:
#include <math.h>
#include <stdlib.h>
#include <gsl/gsl_cdf.h>
int main(void){
gsl_cdf_beta_Pinv(0.999810, 4.0, 499997.0);
return(0);
}
Возвращает следующую ошибку:
ERROR: inverse failed to converge
Эта проблема отмечена в нескольких местах, но я не могу найти последовательного решения. Эта проблема была замечена в 2015 здесь , но не ясно, была ли она решена в более поздних версиях gsl (я думаю, нет). Я мог бы попытаться изменить источник, как предложено в ветке электронной почты (я не уверен, где именно в источнике должно быть сделано изменение), но мне было любопытно, есть ли приемлемое решение этой проблемы (или если другая библиотека в C может сделать тот же расчет без проблем сходимости).