Exponential distribution moment-generating function (MGF).
The moment-generating function for an exponential random variable is
where lambda > 0
is the rate parameter. For t >= lambda
, the MGF is undefined.
var mgf = require( '@stdlib/stats/base/dists/exponential/mgf' );
Evaluates the moment-generating function (MGF) for an exponential distribution.
var y = mgf( 2.0, 3.0 );
// returns 3.0
y = mgf( 0.4, 1.2 );
// returns 1.5
If provided NaN
as any argument, the function returns NaN
.
var y = mgf( NaN, 0.0 );
// returns NaN
y = mgf( 0.0, NaN );
// returns NaN
If provided lambda < 0
or t >= lambda
, the function returns NaN
.
var y = mgf( -2.0, -1.0 );
// returns NaN
y = mgf( 3.0, 2.0 );
// returns NaN
Returns a function for evaluating the moment-generating function of an exponential distribution with parameter lambda
(rate parameter).
var mymgf = mgf.factory( 4.0 );
var y = mymgf( 3.0 );
// returns 4.0
var randu = require( '@stdlib/random/base/randu' );
var mgf = require( '@stdlib/stats/base/dists/exponential/mgf' );
var lambda;
var t;
var y;
var i;
for ( i = 0; i < 10; i++ ) {
t = randu() * 10.0;
lambda = randu() * 10.0;
y = mgf( t, lambda );
console.log( 'x: %d, λ: %d, M_X(t;λ): %d', t.toFixed( 4 ), lambda.toFixed( 4 ), y.toFixed( 4 ) );
}
#include "stdlib/stats/base/dists/exponential/mgf.h"
Evaluates the moment-generating function (MGF) for an exponential distribution.
double out = stdlib_base_dists_exponential_mgf( 2.0, 3.0 );
// returns 3.0
The function accepts the following arguments:
- t:
[in] double
input value. - lambda:
[in] double
rate parameter.
double stdlib_base_dists_exponential_mgf( const double t, const double lambda );
#include "stdlib/stats/base/dists/exponential/mgf.h"
#include <stdlib.h>
#include <stdio.h>
static double random_uniform( const double min, const double max ) {
double v = (double)rand() / ( (double)RAND_MAX + 1.0 );
return min + ( v*(max-min) );
}
int main( void ) {
double lambda;
double t;
double y;
int i;
for ( i = 0; i < 25; i++ ) {
t = random_uniform( -1.0, 1.0 );
lambda = random_uniform( 1.1, 10.0 );
y = stdlib_base_dists_exponential_mgf( t, lambda );
printf( "t: %lf, λ: %lf, M_X(t;λ): %lf\n", t, lambda, y );
}
}