25package umontreal.ssj.probdist;
66 public double cdf(
double x) {
70 public double barF(
double x) {
94 public static double density(
double a,
double b,
double x) {
96 throw new IllegalArgumentException(
"b <= a");
106 public static double cdf(
double a,
double b,
double x) {
108 throw new IllegalArgumentException(
"b <= a");
113 return (x - a) / (b - a);
121 public static double barF(
double a,
double b,
double x) {
123 throw new IllegalArgumentException(
"b <= a");
128 return (b - x) / (b - a);
135 public static double inverseF(
double a,
double b,
double u) {
137 throw new IllegalArgumentException(
"b <= a");
139 if (u > 1.0 || u < 0.0)
140 throw new IllegalArgumentException(
"u not in [0, 1]");
146 return a + (b - a) * u;
163 public static double[]
getMLE(
double[] x,
int n) {
165 throw new IllegalArgumentException(
"n <= 0");
167 double parameters[] =
new double[2];
168 parameters[0] = Double.POSITIVE_INFINITY;
169 parameters[1] = Double.NEGATIVE_INFINITY;
170 for (
int i = 0; i < n; i++) {
171 if (x[i] < parameters[0])
172 parameters[0] = x[i];
173 if (x[i] > parameters[1])
174 parameters[1] = x[i];
189 double parameters[] =
getMLE(x, n);
190 return new UniformDist(parameters[0], parameters[1]);
199 public static double getMean(
double a,
double b) {
201 throw new IllegalArgumentException(
"b <= a");
203 return ((a + b) / 2);
215 throw new IllegalArgumentException(
"b <= a");
217 return ((b - a) * (b - a) / 12);
249 throw new IllegalArgumentException(
"b <= a");
261 double[] retour = { a, b };
269 return getClass().getSimpleName() +
" : a = " + a +
", b = " + b;
Classes implementing continuous distributions should inherit from this base class.