MtxIntDiff::MonteCarlo Function

double MonteCarlo(TRealFunction Fun, double lb, double ub, const TMtxFloatPrecision FloatPrecision, TVec *Constants, const DewArray<tObject *> &ObjConst, int N = 65536);

Numerical integration by Monte Carlo method.

#NameTypeDescription
1FunTRealFunctionIntegrating function.
2lbdoubleDefines lower bound.
3ubdoubleDefines pper bound.
4FloatPrecisionconst TMtxFloatPrecisionDefines the computational precision to be used by the routine.
5ConstantsTVec *Additional constants defining Fun function, usually nil/null.
6ObjConstconst DewArray<tObject *> &Additional objects defining Fun function, usually nil/null.
7N = 65536intNumber of random points in [lb,ub] interval (see comments above).

Returns: the numerical approximate on integral of function Fun between limits lb and ub.

Remarks:

Performs a numerical integration of function of single variable by using Monte Carlo method.

Examples
#include "MtxIntDiff.h"
#include "MtxVec.h"
#include "Units.Math387.h"
#include "Units.MtxIntDiff.h"

using namespace Dew;
using namespace Dew::Math;
using namespace Dew::Math::Units;
using namespace Dew::Math::Units::Math387;

static double IntFun(TVec* Parameters, TVec* c, const DewArray<tObject*>& o)
{
    double x = (*Parameters)[0];
    return Sin(x);
}

void Example()
{
    TIntStopReason sr;
    double area = MtxIntDiff::MonteCarlo(IntFun, 0.0, PI, TMtxFloatPrecision::mvDouble, null, null, 65536);
}
See Also: MtxIntDiff::QuadGauss
Declared in Dew::Math::Units::MtxIntDiff · Dew.Math/Units.MtxIntDiff.h · Cross-compiler