![]()  | 
![]() ![]() ![]() ![]()  | 
![]()  | 
BetaBoost , Math Toolkit 2.5.0 , Beta Functions
  
  
   | 
||||||||||||||||||||||||||
| 
                 Microsoft Visual C++ версия 12.0  | 
                 GNU C++ версия 5.1.0  | 
                 GNU C++ версия 5.1.0  | 
                 Солнечный компилятор версии 0x5130  | 
|
|---|---|---|---|---|
Бета-функция: малые значения  | 
Макс = 1,75ε (Средний = 0,828ε)  | 
Макс = 2.65ε (Средний = 1.22ε)  | 
Макс = 0ε (Mean = 0ε)  | 
Макс = 2.86ε (Средний = 1.31ε)  | 
Бета-функция: средние значения  | 
Макс = 99.1ε (Средний = 22.4ε)  | 
Макс = 60,4ε (Средний = 19,4ε)  | 
Макс = 0.978ε (Mean = 0,0578ε)  | 
Макс = 107ε (Средний = 24,5ε)  | 
Бета-функция: расходящиеся значения  | 
Макс = 10,7ε (Средний = 2,22ε)  | 
Max = 10.3ε (Mean = 2.41ε)  | 
Макс = 0ε (Mean = 0ε)  | 
Макс = 19,7ε (Средний = 2,75ε)  | 
Обратите внимание, что самые худшие ошибки происходят, когда а или б велики, и что, когда это так, результат очень близок к нулю, поэтому абсолютные ошибки будут очень малы.
Используется смесь точечных точечных тестов и случайно сгенерированных тестовых данных: тестовые данные были вычислены с использованиемNTL::RRс 1000-битной точностью.
Традиционные методы оценки бета-функции включают в себя либо оценку гамма-функций напрямую, либо прием логарифмов, а затем экспоненциацию результата. Тем не менее, первый склонен к переполнению даже для очень скромных аргументов, в то время как второй склонен к ошибкам отмены. В качестве альтернативы, если рассматривать гамма-функцию как белую коробку, содержащую приближение Ланчоса, то можно объединить термины мощности:
Это почти идеальное решение, однако почти вся ошибка возникает при оценке значений мощности, когдаaилиbвелики. Если мы предположим, чтоa >b, то больший из двух степеней может быть уменьшен в коэффициентеb, что сразу сокращает максимальную погрешность пополам:
Возможно, это не окончательное решение, но оно очень конкурентоспособно по сравнению с другими методами реализации.
Общий вариант осуществления, в котором нет приближенияLanczos, реализован очень похожим образом на общий вариант гамма-функции. Опять же, чтобы избежать численного переполнения, условия мощности, которые префиксируют серию и продолжающиеся части фракции, собираются вместе в:
где la, lb и lc - пределы интеграции, используемые для a, b и a+b.
Есть несколько особых случаев, которые стоит упомянуть:
Когдаaилиbменьше единицы, мы можем использовать отношения повторения:
Переехать в более благоприятный регион, где они оба больше 1.
Кроме того:
Статья Beta раздела Math Toolkit 2.5.0 Beta Functions может быть полезна для разработчиков на c++ и boost.
:: Главная :: Beta Functions ::
реклама  |