SSJ
V. 2.6.

## umontreal.iro.lecuyer.probdist Class PowerDist

```java.lang.Object
umontreal.iro.lecuyer.probdist.ContinuousDistribution
umontreal.iro.lecuyer.probdist.PowerDist
```
All Implemented Interfaces:
Distribution

`public class PowerDistextends ContinuousDistribution`

Extends the class `ContinuousDistribution` for the power distribution with shape parameter c > 0, over the interval [a, b], where a < b. It has density

f (x) = c(x - a)c-1/(b - a)c

for a < x < b, and 0 elsewhere. It has distribution function

F(x) = (x - a)c/(b - a)c        for a <= x <= b,

with F(x) = 0 for x <= a and F(x) = 1 for x >= b.

Field Summary

Fields inherited from class umontreal.iro.lecuyer.probdist.ContinuousDistribution
`decPrec`

Constructor Summary
`PowerDist(double c)`
Constructs a PowerDist object with parameters a = 0, b = 1 and c = c.
```PowerDist(double b, double c)```
Constructs a PowerDist object with parameters a = 0, b = b and c = c.
```PowerDist(double a, double b, double c)```
Constructs a PowerDist object with parameters a = a, b = b and c = c.

Method Summary
` double` `barF(double x)`
Returns the complementary distribution function.
`static double` ```barF(double a, double b, double c, double x)```
Computes the complementary distribution function.
` double` `cdf(double x)`
Returns the distribution function F(x).
`static double` ```cdf(double a, double b, double c, double x)```
Computes the distribution function.
` double` `density(double x)`
Returns f (x), the density evaluated at x.
`static double` ```density(double a, double b, double c, double x)```
Computes the density function.
` double` `getA()`
Returns the parameter a.
` double` `getB()`
Returns the parameter b.
` double` `getC()`
Returns the parameter c.
`static PowerDist` ```getInstanceFromMLE(double[] x, int n, double a, double b)```
Creates a new instance of a power distribution with parameters a and b, with c estimated using the maximum likelihood method based on the n observations x[i], i = 0,…, n - 1.
` double` `getMean()`
Returns the mean.
`static double` ```getMean(double a, double b, double c)```
Returns the mean a + (b - a)c/(c + 1) of the power distribution with parameters a, b and c.
`static double[]` ```getMLE(double[] x, int n, double a, double b)```
Estimates the parameter c of the power distribution from the n observations x[i], i = 0, 1,…, n - 1, using the maximum likelihood method and assuming that a and b are known.
` double[]` `getParams()`
Return a table containing the parameters of the current distribution.
` double` `getStandardDeviation()`
Returns the standard deviation.
`static double` ```getStandardDeviation(double a, double b, double c)```
Computes and returns the standard deviation of the power distribution with parameters a, b and c.
` double` `getVariance()`
Returns the variance.
`static double` ```getVariance(double a, double b, double c)```
Computes and returns the variance (b - a)2c/[(c + 1)2(c + 2)] of the power distribution with parameters a, b and c.
` double` `inverseF(double u)`
Returns the inverse distribution function x = F-1(u).
`static double` ```inverseF(double a, double b, double c, double u)```
Computes the inverse of the distribution function.
` void` ```setParams(double a, double b, double c)```
Sets the parameters a, b and c for this object.
` String` `toString()`

Methods inherited from class umontreal.iro.lecuyer.probdist.ContinuousDistribution
`getXinf, getXsup, inverseBisection, inverseBrent, setXinf, setXsup`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### PowerDist

```public PowerDist(double a,
double b,
double c)```
Constructs a PowerDist object with parameters a = a, b = b and c = c.

### PowerDist

```public PowerDist(double b,
double c)```
Constructs a PowerDist object with parameters a = 0, b = b and c = c.

### PowerDist

`public PowerDist(double c)`
Constructs a PowerDist object with parameters a = 0, b = 1 and c = c.

Method Detail

### density

`public double density(double x)`
Description copied from class: `ContinuousDistribution`
Returns f (x), the density evaluated at x.

Specified by:
`density` in class `ContinuousDistribution`
Parameters:
`x` - value at which the density is evaluated
Returns:
density function evaluated at x

### cdf

`public double cdf(double x)`
Description copied from interface: `Distribution`
Returns the distribution function F(x).

Parameters:
`x` - value at which the distribution function is evaluated
Returns:
distribution function evaluated at x

### barF

`public double barF(double x)`
Description copied from class: `ContinuousDistribution`
Returns the complementary distribution function. The default implementation computes bar(F)(x) = 1 - F(x).

Specified by:
`barF` in interface `Distribution`
Overrides:
`barF` in class `ContinuousDistribution`
Parameters:
`x` - value at which the complementary distribution function is evaluated
Returns:
complementary distribution function evaluated at x

### inverseF

`public double inverseF(double u)`
Description copied from class: `ContinuousDistribution`
Returns the inverse distribution function x = F-1(u). Restrictions: u∈[0, 1].

Specified by:
`inverseF` in interface `Distribution`
Overrides:
`inverseF` in class `ContinuousDistribution`
Parameters:
`u` - value at which the inverse distribution function is evaluated
Returns:
the inverse distribution function evaluated at u

### getMean

`public double getMean()`
Description copied from class: `ContinuousDistribution`
Returns the mean.

Specified by:
`getMean` in interface `Distribution`
Overrides:
`getMean` in class `ContinuousDistribution`
Returns:
the mean

### getVariance

`public double getVariance()`
Description copied from class: `ContinuousDistribution`
Returns the variance.

Specified by:
`getVariance` in interface `Distribution`
Overrides:
`getVariance` in class `ContinuousDistribution`
Returns:
the variance

### getStandardDeviation

`public double getStandardDeviation()`
Description copied from class: `ContinuousDistribution`
Returns the standard deviation.

Specified by:
`getStandardDeviation` in interface `Distribution`
Overrides:
`getStandardDeviation` in class `ContinuousDistribution`
Returns:
the standard deviation

### density

```public static double density(double a,
double b,
double c,
double x)```
Computes the density function.

Parameters:
`a` - left limit of interval
`b` - right limit of interval
`c` - shape parameter
`x` - the value at which the density is evaluated
Returns:
returns the density function

### cdf

```public static double cdf(double a,
double b,
double c,
double x)```
Computes the distribution function.

Parameters:
`a` - left limit of interval
`b` - right limit of interval
`c` - shape parameter
`x` - the value at which the distribution is evaluated
Returns:
returns the distribution function

### barF

```public static double barF(double a,
double b,
double c,
double x)```
Computes the complementary distribution function.

Parameters:
`a` - left limit of interval
`b` - right limit of interval
`c` - shape parameter
`x` - the value at which the complementary distribution is evaluated
Returns:
returns the complementary distribution function

### inverseF

```public static double inverseF(double a,
double b,
double c,
double u)```
Computes the inverse of the distribution function.

Parameters:
`a` - left limit of interval
`b` - right limit of interval
`c` - shape parameter
`u` - the value at which the inverse distribution is evaluated
Returns:
returns the inverse of the distribution function

### getMLE

```public static double[] getMLE(double[] x,
int n,
double a,
double b)```
Estimates the parameter c of the power distribution from the n observations x[i], i = 0, 1,…, n - 1, using the maximum likelihood method and assuming that a and b are known. The estimate is returned in a one-element array: [c].

Parameters:
`x` - the list of observations to use to evaluate parameters
`n` - the number of observations to use to evaluate parameters
`a` - left limit of interval
`b` - right limit of interval
Returns:
returns the shape parameter [hat(c)]

### getInstanceFromMLE

```public static PowerDist getInstanceFromMLE(double[] x,
int n,
double a,
double b)```
Creates a new instance of a power distribution with parameters a and b, with c estimated using the maximum likelihood method based on the n observations x[i], i = 0,…, n - 1.

Parameters:
`x` - the list of observations to use to evaluate parameters
`n` - the number of observations to use to evaluate parameters
`a` - left limit of interval
`b` - right limit of interval

### getMean

```public static double getMean(double a,
double b,
double c)```
Returns the mean a + (b - a)c/(c + 1) of the power distribution with parameters a, b and c.

Parameters:
`a` - left limit of interval
`b` - right limit of interval
`c` - shape parameter
Returns:
returns the mean

### getVariance

```public static double getVariance(double a,
double b,
double c)```
Computes and returns the variance (b - a)2c/[(c + 1)2(c + 2)] of the power distribution with parameters a, b and c.

Parameters:
`a` - left limit of interval
`b` - right limit of interval
`c` - shape parameter
Returns:
returns the variance

### getStandardDeviation

```public static double getStandardDeviation(double a,
double b,
double c)```
Computes and returns the standard deviation of the power distribution with parameters a, b and c.

Returns:
the standard deviation of the power distribution

### getA

`public double getA()`
Returns the parameter a.

Returns:
the left limit of interval a

### getB

`public double getB()`
Returns the parameter b.

Returns:
the right limit of interval b

### getC

`public double getC()`
Returns the parameter c.

Returns:
the shape parameter c

### setParams

```public void setParams(double a,
double b,
double c)```
Sets the parameters a, b and c for this object.

Parameters:
`a` - left limit of interval
`b` - right limit of interval
`c` - shape parameter

### getParams

`public double[] getParams()`
Return a table containing the parameters of the current distribution. This table is put in regular order: [a, b, c].

Returns:
[a, b,c]

### toString

`public String toString()`
Overrides:
`toString` in class `Object`

SSJ
V. 2.6.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.