• 大小: 3.88MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-29
  • 语言: C/C++
  • 标签: Monter  Carlo  Integral  

资源简介

蒙特卡洛积分方法,包括随机点法和均值法。C语言实现,包括封装成动态库的工程!

资源截图

代码片段和文件信息

#include “MonterCarloIntegral.h“
#include 
#include 
#include 


static double ffun(pfun g double x double a double b double c double d)
{
return (g(a + (b - a)*x) - c) / (d - c);
}

 MCI_EXTERN double MCI_API(MCI_RandomPoint)(pfun g double a double b double gmin double gmax)
{
double S0 = (b - a)*(gmax - gmin);
double J = 0;
const static int RandNum = 1E6;
int _count = 0;
srand((unsigned)time(NULL));
for (int i = 0; i < RandNum; i++)
{
double x = (double)rand() / (RAND_MAX + 1);
double y = (double)rand() / (RAND_MAX + 1);
double f = ffun(g x a b gmin gmax);
if (y <= f)_count++;
}
J = _count*1.0 / RandNum;
return S0*J + gmin*(b - a);;
}

 MCI_EXTERN double MCI_API(MCI_RandomPoint_V2)(pfun g double a double b)
{
double gmin = 100000;
double gmax = -100000;
double x y;
const static int RandNumX = 1E6;
for (int i = 0; i < RandNumX; i++)
{
x = a + (b - a) *i / RandNumX;
y = g(x);
if (gmin>y)gmin = y;
if (gmax < y)gmax = y;
}
gmin -= 0.1;
gmax += 0.1;
return MCI_RandomPoint(g a b gmin gmax);
}

 MCI_EXTERN double MCI_API(MCI_Mean)(pfun g double a double b double gmin double gmax)
{
double S0 = (b - a)*(gmax - gmin);
double J = 0;
const static int RandNum = 1E6;
double y = 0;
srand((unsigned)time(NULL));
for (int i = 0; i < RandNum; i++)
{
double x = (double)rand() / (RAND_MAX + 1);
y += ffun(g x a b gmin gmax);
}
J = y / RandNum;
return S0*J + gmin*(b - a);;
}

 MCI_EXTERN double MCI_API(MCI_Mean_V2)(pfun g double a double b)
{
double gmin = 100000;
double gmax = -100000;
double x y;
const static int RandNumX = 1E6;
for (int i = 0; i < RandNumX; i++)
{
x = a + (b - a) *i / RandNumX;
y = g(x);
if (gmin>y)gmin = y;
if (gmax < y)gmax = y;
}
gmin -= 0.1;
gmax += 0.1;
return MCI_Mean(g a b gmin gmax);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-11-04 10:54  MonterCarloIntegral\
     目录           0  2017-11-04 10:51  MonterCarloIntegral\Debug\
     文件       32256  2017-11-04 10:51  MonterCarloIntegral\Debug\MonterCarloIntegral.dll
     文件        1039  2017-11-04 10:51  MonterCarloIntegral\Debug\MonterCarloIntegral.exp
     文件      201524  2017-11-04 10:51  MonterCarloIntegral\Debug\MonterCarloIntegral.ilk
     文件        2574  2017-11-04 10:51  MonterCarloIntegral\Debug\MonterCarloIntegral.lib
     文件      363520  2017-11-04 10:51  MonterCarloIntegral\Debug\MonterCarloIntegral.pdb
     目录           0  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\
     文件     2359296  2017-11-04 10:52  MonterCarloIntegral\MonterCarloIntegral.sdf
     文件        1003  2017-11-04 09:58  MonterCarloIntegral\MonterCarloIntegral.sln
     文件       18944  2017-11-04 10:52  MonterCarloIntegral\MonterCarloIntegral.v12.suo
     目录           0  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\
     目录           0  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\MonterCa.DEB9AF95.tlog\
     文件         912  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\MonterCa.DEB9AF95.tlog\cl.command.1.tlog
     文件        2210  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\MonterCa.DEB9AF95.tlog\CL.read.1.tlog
     文件         560  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\MonterCa.DEB9AF95.tlog\CL.write.1.tlog
     文件        1370  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\MonterCa.DEB9AF95.tlog\link.command.1.tlog
     文件        3034  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\MonterCa.DEB9AF95.tlog\link.read.1.tlog
     文件         508  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\MonterCa.DEB9AF95.tlog\link.write.1.tlog
     文件         160  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\MonterCa.DEB9AF95.tlog\MonterCarloIntegral.lastbuildstate
     文件         774  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\MonterCa.DEB9AF95.tlog\MonterCarloIntegral.write.1u.tlog
     文件        2522  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\MonterCarloIntegral.log
     文件       12955  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\MonterCarloIntegral.obj
     文件       52224  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\vc120.idb
     文件       86016  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Debug\vc120.pdb
     文件        1933  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\MonterCarloIntegral.cpp
     文件        1140  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\MonterCarloIntegral.h
     文件        4195  2017-11-04 10:04  MonterCarloIntegral\MonterCarloIntegral\MonterCarloIntegral.vcxproj
     文件        1092  2017-11-04 10:04  MonterCarloIntegral\MonterCarloIntegral\MonterCarloIntegral.vcxproj.filters
     目录           0  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Release\
     目录           0  2017-11-04 10:51  MonterCarloIntegral\MonterCarloIntegral\Release\MonterCa.DEB9AF95.tlog\
............此处省略80个文件信息

评论

共有 条评论

相关资源