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

Posted 佩雷尔曼的信徒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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法结果‘)
ans_int=int(int(z,y,y1,y2),x,x1,x2)
%蒙特卡洛法计算结果
disp(‘monte_carlo法结果‘)
ans_monte_carlo=monte_carlo(1,2,3,4,10000,20000)
%二者误差
disp(‘误差‘)
error=abs(ans_monte_carlo-ans_int)

以上是关于matlab下二重积分的蒙特卡洛算法的主要内容,如果未能解决你的问题,请参考以下文章

蒙特卡洛方法

蒙特卡洛方法

飞行器基于matlab蒙特卡洛和控制算法四旋翼无人机路径规划含Matlab源码 1988期

物理应用基于matlab蒙特卡洛算法电动汽车充电含Matlab源码 1164期

什么是蒙特卡洛学习,时序差分算法

蒙特卡罗方法生成指定状态空间下对应长度的马尔可夫链--MATLAB源程序