Как изменить значение функции на значение из таблицы (гамма-распределение) в C ++? - PullRequest
1 голос
/ 14 октября 2019

У меня есть задача создать программу на C ++ для вычисления вероятности с помощью гамма-распределения. Если я уже нашел значение функции, как его изменить, чтобы оно стало значением из таблицы распределения гаммы? Я не знаю формул.

Например, Fg (8; 8), в таблице 0,5470. И Fg (4; 8) в таблице составляет 0,0511.

Стандартная гамма-кумулятивная таблица

1 Ответ

1 голос
/ 14 октября 2019

Написание такой функции на «чистом» C ++ с нуля не так просто, как стандартная библиотека AFAIK C ++ ( Общие математические функции & Математические специальные функции ) не поддерживает неполная гамма-функция , необходимая для вычисления накопительная функция гамма-распределения .

Вместо этого я рекомендую использовать реализацию библиотеки Boost

// -*- compile-command: "g++ gamma.cpp; ./a.out"; -*-
//
#include <boost/math/distributions/gamma.hpp>
#include <iostream>

using namespace boost::math;

int main()
{
  gamma_distribution<> dist(8.,1);

  std::cout << "\n" << cdf(dist,8);
  std::cout << "\n" << cdf(dist,4);
}

отпечатки:

0.547039
0.0511336

как и ожидалось

...