当前位置:   article > 正文

蒙特卡罗计算积分matlab,matlab下二重积分的蒙特卡洛算法

matlab 蒙特卡罗求二重积分

%%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法结果')<

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/608802
推荐阅读
相关标签
  

闽ICP备14008679号