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)

时间: 2024-10-09 10:32:48

matlab下二重积分的蒙特卡洛算法的相关文章

matlab下kmeans及pam算法对球型数据分类练习

clear all; clc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %数据初始化 Data=zeros(3,20000); %加噪声 for i=1:4000 Data(1,i)=200; Data(2,i)=200; Data(3,i)=200; end for i=4001:12000 p=unifrnd(0,50); a=unifrnd(0,2*pi); b=unifrnd(

用蒙特卡洛算法解概率相关的路线规划问题

写给小陈~ 参考文献: Chou X., Gambardella L.M., Montemanni R. (2018) Monte Carlo Sampling for the Probabilistic Orienteering Problem. In: Daniele P., Scrimali L. (eds) New Trends in Emerging Complex Real Life Problems. AIRO Springer Series, vol 1. Springer -

解密SVM系列(五):matlab下libsvm的简单使用

本节简单介绍一下libsvm的使用方法.关于libsvm似乎曾经使用过,那个时候主要用libsvm进行简单的人脸识别实验.当时还翻译过关于libsvm里面的matlab英文文档 那么现在最新版本的libsvm为3.2.0,下载地址如下: http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 下载下来的libsvm其实包含好多个平台的工具箱软件,c++,matlab,java,python都有.他们的函数使用方法是一样的. 那么在下载完以后,点击里面的matlab下平

蒙特卡洛算法及其实现

从今天开始要研究Sampling Methods,主要是MCMC算法.本文是开篇文章,先来了解蒙特卡洛算法. Contents    1. 蒙特卡洛介绍    2. 蒙特卡洛的应用    3. 蒙特卡洛积分 1. 蒙特卡洛介绍 蒙特卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的 发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法.是指使 用随机数(或伪随机数)来解决很多计算问题的方法.与它对应的是确定性

HMM条件下的 前向算法 和 维特比解码

一.隐马尔科夫HMM假设: 有且只有3种天气:0晴天,1阴天,2雨天 各种天气间的隔天转化概率mp: mp[3][3] 晴天 阴天 雨天 晴天 0.33333 0.33333 0.33333 阴天 0.33333 0.33333 0.33333 雨天 0.33333 0.33333 0.33333 有2种活动:            0去公园,1不去公园 各种天气下进行各种活动的概率: w2a[3][2] 去公园 不去公园 晴天 0.75 0.25 阴天 0.4 0.6 雨天 0.25 0.75

2014腾讯实习生笔试——蒙特卡洛算法求圆周率

这是2014腾讯实习生笔试(西安,武汉站)的第26题.给出二个函数,让你去理解其含义.答案是:第一个函数式用来产生(a,b)之间的随机小数.第二个函数式用蒙特卡洛概率算法求近似圆周率. 先介绍一下该方法(蒙特卡洛算法): 以 概率和统计理论方法为基础的一种计算方法.将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解.比方,给定 x=a ,和 x=b ,你要求某一曲线 f 和这两竖线,及 x 轴围成的面积,你能够起定 y 轴一横线 y=c 当中 c>=f(a) a

蒙特卡洛算法

从今天开始要研究Sampling Methods,主要是MCMC算法.本文是开篇文章,先来了解蒙特卡洛算法. Contents    1. 蒙特卡洛介绍    2. 蒙特卡洛的应用    3. 蒙特卡洛积分 1. 蒙特卡洛介绍 蒙特卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的 发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法.是指使 用随机数(或伪随机数)来解决很多计算问题的方法.与它对应的是确定性

解密SVM系列(五):matlab下libsvm的简单使用:分类与回归

本节简介一下libsvm的用法. 关于libsvm似乎以前使用过.那个时候主要用libsvm进行简单的人脸识别实验.当时还翻译过关于libsvm里面的matlab英文文档 介绍与分类实验 那么如今最新版本号的libsvm为3.2.0,下载地址例如以下: http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 下载下来的libsvm事实上包括好多个平台的工具箱软件,c++.matlab,java,python都有. 他们的函数用法是一样的. 那么在下载完以后,点击里面的

Matlab下imwrite,Uint16的深度图像

Matlab下imwrite,Uint16的深度图像 1. 在Matlab命令窗口输入命令: help imwrite 会有如下解释: If the input array is of class uint16 and the format supports 16-bit data (JPEG, PNG, and TIFF), imwrite outputs the data as 16-bit values. If the format does not support 16-bit valu