赞
踩
%%monte_carlo_ff.m
%被积函数(二重)
function ff=monte_carlo_ff(x,y)
ff=x*y^2;%函数定义处
end
%%monte_carlo.m
%蒙特卡洛计算二重积分
function result=monte_carlo(a,b,c,d,n,m)
%先y后x积分,a是x积分下限,b是x积分上限,c是y积分下限,d是y积分上限,n,m是蒙特卡洛参数
sumxff=0;
for i=1:n
sumyff=0;
xff=a+(b-a)*rand();
for j=1:m
yff=c+(d-c)*rand();
sumyff=sumyff+monte_carlo_ff(xff,yff);
end
aversumyff=sumyff/m;
sumxff=sumxff+(b-a)*aversumyff;
end
result=sumxff/n;
end
%%show.m
clear all;
clc;
format long;
%二重积分的int函数法,用于校对蒙特卡洛法
syms x y;
z=x^2*y^2;
x1=1;
x2=2;
y1=3;
y2=4;
disp('int法结果')<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。