用蒙特卡洛方法求积分值,n=10,100,要求编写程序进行计算,程序语言不限。sarsxzy@163.com,万分感谢啊。
2个回答
展开全部
%用 MATLAB 用蒙特卡洛方法求积分值:
n=10100
Xvariance=0.5
Xmean=0.5
Xrand = (Xvariance*randn(1,n)) + Xmean*ones(1,n);
Yrand = (0.5*randn(1,n)) +0.5*ones(1,n);
Zrand = (0.5*randn(1,n)) + 0.5*ones(1,n);
p = sin(3.14159265*Xrand.*Yrand.*Zrand);
Ans=sum(p)/n
%sum(p) is the number of points within the graph
%Ans is the answer of the integral
n=10100
Xvariance=0.5
Xmean=0.5
Xrand = (Xvariance*randn(1,n)) + Xmean*ones(1,n);
Yrand = (0.5*randn(1,n)) +0.5*ones(1,n);
Zrand = (0.5*randn(1,n)) + 0.5*ones(1,n);
p = sin(3.14159265*Xrand.*Yrand.*Zrand);
Ans=sum(p)/n
%sum(p) is the number of points within the graph
%Ans is the answer of the integral
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//这是用C语言写的
#include<stdio.h>
#include<math.h>
#include<time.h>
#define pi 3.1415926536
#define random(x) (rand()%x)
void main()
{
double x,y,z,sum=0;
int i,n=10100;
srand(time(0));
for(i=0;i<n;i++)
{
x=random(1001)/1000.0;//产生随机数
y=random(1001)/1000.0;//产生随机数
z=random(1001)/1000.0;//产生随机数
sum+=sin(x*y*z*pi);
}
sum/=n;
printf("用蒙特卡罗方法计算的积分值为%g.\n",sum);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询