关于积分的编程

来源:百度知道 编辑:UC知道 时间:2024/05/25 15:54:29
用蒙特卡罗方法如何算这道积分题,大家给点思路,另外这道积分题的答案是多少
http://p13.freep.cn/p.aspx?u=v20_p13_p_0811052206424944_0.jpg

程序如下:
#include "stdio.h"
#include "math.h"
#define pi 3.1415926
#define e 2.7182818

double rnd1(double *r)

{ int m;
double s,u,v,p;
s=65536.0; u=2053.0; v=13849.0;
m=(int)(*r/s); *r=*r-m*s;
*r=u*(*r)+v; m=(int)(*r/s);
*r=*r-m*s; p=*r/s;
return(p);
}
double rnd1(r)
double *r;
{ int m;
double s,u,v,p;
s=65536.0; u=2053.0; v=13849.0;
m=(int)(*r/s); *r=*r-m*s;
*r=u*(*r)+v; m=(int)(*r/s);
*r=*r-m*s; p=*r/s;
return(p);
}

double mtcl(double a,double b,double (*f)())

{ int m;
double r,d,x,s;
r=1.0; s=0.0; d=10000.0;
for (m=0; m<=9999; m++)
{ x=a+(b-a)*rnd1(&r);
s=s+(*f)(x)/d;
}
s=s*(b-a);
return(s);
}
double mtclf(double x)

{ double y;
y=pow(e,cos(x*x))*sin(x)/(x*