我想在给定的大小范围内整合数学函数(numberdensity-function)。我想要整合的功能通常包括分数,指数,euler数和根。我可以使用哪些代码?
例如我找到了类“math”,但是在这个类中找不到任何集成函数。此外,我不知道上面提到的元素的语法(euler number ...)
问候直播
答案 0 :(得分:2)
您可能正在寻找numerical integration。
这是一种与积分的数值“足够接近”的方法,通常足以满足大多数应用。
维基百科页面链接到AlgLib作为具有C ++实现的实现库。
答案 1 :(得分:1)
这是我刚才开发的代码。它使用Simpson方法。
#include <iostream>
#include <math.h>
using namespace std;
double NormSDist(double x);
template <typename T> T SimpsonMethod(T (*pfunc)(T), float a, float b,int n=100);
int main()
{
double area=SimpsonMethod<double>(&NormSDist,-5,1.2);
cout << area << endl;
return 0;
}
template <typename T> T SimpsonMethod(T (*pfunc)(T), float a, float b,int n)
{
T h,x,y,retVal;
h=(b-a)/n;
x=a;
y=(*pfunc)(x);retVal=y;
for(int i=1;i<n;i++)
{
x=a+i*h;
if(i%2==0) y=2*(*pfunc)(x);
if(i%2==1) y=4*(*pfunc)(x);
retVal=retVal+y;
}
x=b;y=(*pfunc)(x);retVal=retVal+y;
return retVal*h/3;
}
double NormSDist(double x)
{
return 1/sqrt(2*3.1415926536)*exp(-0.5*x*x);
}
希望它有所帮助。