Skip to content

Files

Latest commit

ca4cd66 · Apr 2, 2025

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Apr 2, 2025
Aug 19, 2023
Apr 2, 2025
Apr 2, 2025
Apr 2, 2025
Apr 2, 2025
Apr 2, 2025
Apr 2, 2025
Apr 2, 2025
Apr 2, 2025
Apr 2, 2025
Apr 2, 2025

Moment-Generating Function

Exponential distribution moment-generating function (MGF).

The moment-generating function for an exponential random variable is

M X ( t ) := E [ e t X ] = λ λ t ,  for  t < λ

where lambda > 0 is the rate parameter. For t >= lambda, the MGF is undefined.

Usage

var mgf = require( '@stdlib/stats/base/dists/exponential/mgf' );

mgf( t, lambda )

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

mgf.factory( lambda )

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

Examples

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 ) );
}

C APIs

Usage

#include "stdlib/stats/base/dists/exponential/mgf.h"

stdlib_base_dists_exponential_mgf( t, lambda )

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 );

Examples

#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 );
    }
}