Файл FDF.h
#ifndef __FDF_H__ /* To prevent redefinition */
#define ENTRY extern #define LOCAL static
double FDF(double n1, double n2, double x); /* Вычисляет вероятность того, что случайная величина, * подчиняющаяся центральному F-распределению с параметрами n1 и n2, * не превосходит заданного значения x. */ double inv_FDF(double n1, double n2, double p); /* Ищет точку, в которой функция F-распределения * с параметрами n1 и n2 равняется p */
#define __FDF_H__ /* Prevents redefinition */ #endif /* Ends #ifndef__FDF_H__ */
Файл FDF.cpp
#include <math.h> #include <assert.h>
#include "betaDF.h"
ENTRY double FDF(double n1, double n2, double x) // Вычисляется вероятность того, что случайная величина, // подчиняющаяся центральному F-распределению с параметрами n1 и n2, // не превосходит заданного значения x. { assert(x >= 0.0); return 1.0 - BetaDF(0.5 * n2, 0.5 * n1).value(n2 / (n2 + n1 * x)); }/*FDF*/
ENTRY double inv_FDF(double n1, double n2, double p) // Ищет точку, в которой функция F-распределения // с параметрами n1 и n2 равняется p { double y=BetaDF(0.5 * n1, 0.5 * n2).inv(p); return n2*y/n1/(1-y); }/*inv_FDF*/
1 2
8 8 8
|