根据我的理解简单的说就是以部分估计整体,利用随机数来解决问题的方法称为
蒙特卡罗算法,记得课本上讲了个例题:
在数值积分法中,我们利用求单位圆的1/4的面积来求得Pi/4从而得到Pi 。单
位圆的1/4面积是一个扇形,它是边长为1单位正方形的一部分(若能画图就好
了!)只要能求出扇行面积S1在正方形面积S 中占的比例K=S1/S就立即能得
到S1,从而得到Pi 的值.
怎样求出扇形面积在正方形面积中占的比例K 呢?一个办法是在正方形中随机
投入很多点,使所投的点落在正方形中每一个位置的机会相等看其中有多少个点
落在扇形内。将落在扇形内的点数m 与所投点的总数n 的比m/n作为k 的近似
值。
怎样实现这样的随机投点呢?任何一款计算机语言都有这种功能,能够产生在区
间[0,1]内均匀分布的随机数,在mathematica 中,产生区间[0,1]内均匀分布
随机数的语句是
Random[ ]
产生两个这样的随机数x,y, 则以(x,y)为坐标的点就是单位正方形内的一点P ,它
落在正方形内每个位置的机会均等,P 落在扇形内的充要条件是x^2+y^2
蒙特卡罗算法计算Pi
n=10000;p=();
Do[m=0;Do[x=Random[];y=Random[];If[x^2+y^2
AppendTo[p,N[4m/n]],{t,1,10}];
Print[p];
Sum[p[[t]],{t,1,10}]/10
注:以上语句的功能是:n=10000,每次投10000个点得出Pi 的近似值存放到数
组p 中;一共做10次得到10个近似值,通过语句Print[p]将这10个近似值全
部显示出来观察。最后再求这10个近似值的平均值,相当于随机投点100000
次得到的近似值。
蒙特卡罗(Monte Carlo)方法,或称计算机随机模拟方法,是一种基于" 随机数"
的计算方法。这一方法源于美国在第一次世界大战进研制原子弹的" 曼哈顿计划
" 。该计划的主持人之一、数学家冯? 诺伊曼用驰名世界的赌城-摩纳哥的Monte
Carlo-来命名这种方法,为它蒙上了一层神秘色彩。
Monte Carlo方法的基本思想很早以前就被人们所发现和利用。早在17世纪,
人们就知道用事件发生的" 频率" 来决定事件的" 概率" 。19世纪人们用投针试验的
方法来决定圆周率π。本世纪40年代电子计算机的出现,特别是近年来高速电
子计算机的出现,使得用数学方法在计算机上大量、快速地模拟这样的试验成为
可能。
考虑平面上的一个边长为1的正方形及其内部的一个形状不规则的" 图形" ,如何
求出这个" 图形" 的面积呢?Monte Carlo方法是这样一种" 随机化" 的方法:向该
正方形" 随机地" 投掷N 个点落于" 图形" 内,则该" 图形" 的面积近似为M/N。
可用民意测验来作一个不严格的比喻。民意测验的人不是征询每一个登记选民的
意见,而是通过对选民进行小规模的抽样调查来确定可能的优胜者。其基本思想
是一样的。
科技计算中的问题比这要复杂得多。比如金融衍生产品(期权、期货、掉期等)
的定价及交易风险估算,问题的维数(即变量的个数)可能高达数百甚至数千。
对这类问题,难度随维数的增加呈指数增长,这就是所谓的" 维数的灾难"(Course
Dimensionality) ,传统的数值方法难以对付(即使使用速度最快的计算机)。
Monte Carlo方法能很好地用来对付维数的灾难,因为该方法的计算复杂性不再
依赖于维数。以前那些本来是无法计算的问题现在也能够计算量。为提高方法的
效率,科学家们提出了许多所谓的" 方差缩减" 技巧。
另一类形式与Monte Carlo方法相似,但理论基础不同的方法-" 拟蒙特卡罗方法
"(Quasi-Monte Carlo方法)-近年来也获得迅速发展。我国数学家华罗庚、王元提
出的" 华-王" 方法即是其中的一例。这种方法的基本思想是" 用确定性的超均匀分
布序列(数学上称为Low Discrepancy Sequences)代替Monte Carlo方法中的随
机数序列。对某些问题该方法的实际速度一般可比Monte Carlo方法提出高数百
倍,并可计算精确度。
http://www.chinainfo.gov.cn/data/200108/1_20010830_13234.html
在建立以上实施整合管理体系企业的绩效模糊综合评价模型和引入模糊数学理
论的基础上,我们可以开始对企业绩效的指标进行下列步骤的分析,最终得到企
业管理体系整合绩效评价等级。
步骤一:依据所建立的企业绩效综合评价指标体系,使用层次分析法计算,获得
首层各个评价方面的权重 wA 、wB 、wC 和wD ,并得到二层三个方面的各个指
标的权重 wij(i=A、B 、C 、D, j=1,2,…10)。
步骤二: 根据的实施质量、环境和职业健康安全整合管理体系的企业实际情况
和对评定指标的模糊集规定,请专家评审团对四个方面指标的各个分指标进行评
定,列出评定表。
步骤三: 首先对于财务评价评价指标,用 ri 表示专家对于这个方面的影响企业
绩效评价等级的各个指标 i 的评定等级,wi 表示该项指标的权重等级
(i=1,2…10)。按照表 4-8 和表 4-10 所列出的参数确定其各自的隶属函数
f(x)。对每一项 f(x),用积分法计算其累积函数 F(x),并计算 F(x)的最大值
max(F(x))。假设 x 服从β分布,应用蒙特卡罗模拟方法,对每一项所求出的
F(x),随机生成一个均匀随机数,其生成范围为[0, max(F(x))],然后令 F(x)=所
生成的随机数,这样可以反解得到一个 x ,这样得到的 x 是一个随机值,代表
其模糊集合。这样就可以得到一组随机的 x 值,分别代表专家评审的各项因素
的权重和评定等级的随机模拟值。
步骤四:按下面的公式(1)计算企业绩效评价等级在财务评价指标方面的等级 R
其 ri 、wi 分别为上一步中所计算的 x 值。
R= (1)
R 值代表企业绩效评价等级在管理者及员工评价方面的综合等级, 指数β用公式
(2)计算:
β = (2)
至此完成了一步迭代计算.
步骤五:大量重复计算步骤二和步骤三,为了得到理想结果所需的循环次数或模
拟次数可以通过试算程序来估计. 基于专家所进行的试验,模拟 1000 次结果比
较理想,该蒙特卡罗模拟可由在个人计算机上运行的 VB 程序运行,速度很快。
步骤六:确定步骤三所得的 R 的最小值、最大值、平均值和标准偏差,然后根
据所选用的 5 点尺度进行归一化,归一化后的上述 4 个参数分别用 a 、b 、μ、
σ来表示。然后,将这几个参数代入β-M 隶属函数,如下所示:
g(x)=C(x-a)a(b-x)β (3)
C= aaββ[ ]a+β –1 (4)
a=P2 (5)
β= (6)
p= (7)
q= (8)
这里 g(x)定义了代表专家对于影响指标的综合评价的模糊数字。β-M 隶属函数
是一个隶属函数,而不是一个概率密度函数。然而,它具备β概率密度分布函数
的理想性质,即它是一个有界函数,可以被偏移至右边,偏移至左边,或表示成
对称形式。在β-M 函数的现有形式中,参数α和β是非整数,并不需要复杂计
算,这是一个优势。
步骤七:计算衡量专家对于影响指标的综合评价模糊数字的实用数。按上述步骤
得到了关于每个方面的影响指标等级的模糊集合,但没有直接计算模糊数字的办
法。因此需要一个实用数来表示影响企业绩效评价等级的百分比,该实用数包含
模糊性,采用图 4-3 所示的实用数模型:
1.0
g(x) AL AR
0 a b 1.0 x
β-M 隶属函数
按下面的公式计算企业绩效综合评价在财务评价方面的评价值 LA :
LA=( AL– AR+1)/2 (9)
这里 AR 是非模糊实数,AL 是以坐标域为界,位于所得到模糊集隶属函数左侧
的区域面积,AR 是右侧的区域面积。R 的数值分布在 0~1 范围内。
步骤八:对于管理者及员工评价方面、顾客评价方面、社会环境评价方面的指标,
按照以上步骤三到步骤七所示,分别计算 LB 、 LC 和LD 。
步骤九:按照财务评价、管理者及员工评价、顾客评价及社会环境评价的权重
(wA ,wB ,wC ,wD ), 计算最后的企业绩效评价等级指数:
EPEI =wALA +wBLB +wCLC+wDLD (10)
四 企业实施管理体系整合绩效评价模型的计算机实现
根据上文提到的计算方法与步骤可以编写相应的计算机程序,自动评定待评企业
的管理体系整合绩效综合评价等级。该企业绩效综合评价模型的计算过程所示,
通过使用 Visual Basic 6.0 以及 Matlab 5.3 ,可以设计和实现该企业绩效综合
评价模型。
步骤一:只需在 VB 程序中输入财务评价方面的各个评价指标的权重等级(wi )
与评价等级(ri ), 就能利用该程序自动得到计算 R 的最小值 a 、最大值 b 、平
均值μ和标准偏差σ;
步骤二:将所得的 a 、b 、μ、σ输入到已设定好的 EXCEL 表中,可得α、β以
及 C 值;
步骤三:在 Matlab 程序中输入所得的 R 的最小值 a 、最大值 b 、α、β以及C
值, 得到企业绩效综合评价在财务评价方面的评价值 LA ,按照以上步骤分别得到
LB 、 LC 、LD ;
步骤四:将所得的 LA 、LB 、 LC 、LD 代入公式(10)中得到企业绩效评价等
级指数 EPEI 。
http://www.madio.net/Article/Class3/Class12/200509/1049.html
应用
蒙特卡罗法(Monte Carlo method)是以概率和统计的理论、方法为基础的一种
计算方法,将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模
拟或抽样,以获得问题的近似解,故又称统计模拟法或统计试验法。
蒙特卡洛法是一种计算积分的方法~
要计算f 在[a,b]区间上的积分,蒙特卡洛算法就是不断产生在[a,b]间的随机数c ,
计算所有f (c )*(a-b )的平均值,取的次数越多越接近要计算的积分的真实值
应用的话,应该是用在某些数值积分的计算上吧~
源程序 这个是普罗克斯或者译为普罗金斯的现代通信系统使用matlab 一书上的吧。这
个是多幅度信号仿真。使用的的是蒙特卡罗仿真方法,就是用很多次实验的到的
结果仿真理论值,容易理解的就是投10000次硬币,5005次整,4995次反,
等到正的概率与反的概率。
Function[p]=smldPe58(snr_in_dB) 函数名,输入变量时信噪比dB 形式的
d=1; 这里表示电信号幅度,一个单位
SNR=exp(snr_in_dB*log(10)/10); 将信噪比化成正常的形式,dB 你知道吧
Sgma=sqrt((5*d^2)/(4*SNR)); 噪声标准差,出自理论公式
N=10000; 实验次数
for i=1:N,
temp=rand; 产生一个随机数0-1的
if(temp
同
dsource(i)=0: 0-0.25是0
elseif(temp
dsource(i)=1; 0.25-0.5是1
elseif(temp
dsource(i)=2 0.5-0.75是2
else
dsource=3 0.75-1是3刚好四种
end
end;
numoferr=0; 这是个计数器,积累错误个数
for i=1:N,
if(dsource(i)==0),
r=-3*d+gngauss(sgma); 这里把四种电平对应了四种幅度
elseif(dsource(i)==1), -3*d -d d 3*d 间隔2d 是信号大小
r=-d+gngauss(sgma); gngauss 函数在该书前几章有
elseif(dsuorce(i)==2), 产生高斯分布噪声,
r=d+gngauss(sgma); 这里就是信号加噪声,相当于信号
else 通过信道
r=3*d+gngauss(sgma);
end:
if(r
decis=0; 按接收大小来判决属于0.1.2.3哪种信号 elseif(r
decis=1;
elseif(r
decis=2;
elseif
decis=3;
end;
if(decis=dsource(i)), 判决信号和发送的原始信号比较
numoferr=numoferr+1; 不一样就说明错了一个,误码1
end;
end;
p=numoferr/N; 错了多少除以总数,误码率
已经分布是均匀分布(连续),区间为(12,62),请问各位大侠,如何用matlab
编程实现此蒙特卡罗模拟,我想模拟2000次,得到概率密度图与累积概率密度
图,程序应该如何编,麻烦大家指教,期待帮助,谢谢。小妹现在没有分数,还是希望大家能帮我,谢谢1
问题补充:
我的邮箱是[email protected],谢谢大家的帮忙。
最佳答案
n=2000; %随机点数(可增加点数)
x=12+(62-12)*rand(1,n); %产生2000个12到62的随机数
xx=12:2:62; %画概率密度图的区间
nx=histc(x,xx); %计算x 在xx 每个小区间内的点数。
px=nx/n;
sumpx=cumsum(px);
subplot(1,2,1)
bar(xx(1:end-1),px(1:end-1));
title('概率密度')
subplot(1,2,2)
plot(xx(1:end-1),sumpx(1:end-1));
title('累积概率密度')
用蒙特卡罗法计算体积(用matlab 编程实现)
悬赏分:30 | 解决时间:2010-1-27 23:18 | 提问者:go309641
要有具体程序
最佳答案
N=10000;
xx=2*rand(N,1)-1; %产生x 坐标,范围为[-1,1];
yy=2*rand(N,1)-1; %产生y 坐标,范围为[-1,1];
zz=2*rand(N,1); %产生z 坐标,范围为[0,2];
V_total=2*2*2;
rr=xx.^2+yy.^2;
cnt=sum((rrsqrt(rr)) & (rr+(zz-1).^2
V=V_total*cnt/N
%
理论值应当是pi 吧。
根据我的理解简单的说就是以部分估计整体,利用随机数来解决问题的方法称为
蒙特卡罗算法,记得课本上讲了个例题:
在数值积分法中,我们利用求单位圆的1/4的面积来求得Pi/4从而得到Pi 。单
位圆的1/4面积是一个扇形,它是边长为1单位正方形的一部分(若能画图就好
了!)只要能求出扇行面积S1在正方形面积S 中占的比例K=S1/S就立即能得
到S1,从而得到Pi 的值.
怎样求出扇形面积在正方形面积中占的比例K 呢?一个办法是在正方形中随机
投入很多点,使所投的点落在正方形中每一个位置的机会相等看其中有多少个点
落在扇形内。将落在扇形内的点数m 与所投点的总数n 的比m/n作为k 的近似
值。
怎样实现这样的随机投点呢?任何一款计算机语言都有这种功能,能够产生在区
间[0,1]内均匀分布的随机数,在mathematica 中,产生区间[0,1]内均匀分布
随机数的语句是
Random[ ]
产生两个这样的随机数x,y, 则以(x,y)为坐标的点就是单位正方形内的一点P ,它
落在正方形内每个位置的机会均等,P 落在扇形内的充要条件是x^2+y^2
蒙特卡罗算法计算Pi
n=10000;p=();
Do[m=0;Do[x=Random[];y=Random[];If[x^2+y^2
AppendTo[p,N[4m/n]],{t,1,10}];
Print[p];
Sum[p[[t]],{t,1,10}]/10
注:以上语句的功能是:n=10000,每次投10000个点得出Pi 的近似值存放到数
组p 中;一共做10次得到10个近似值,通过语句Print[p]将这10个近似值全
部显示出来观察。最后再求这10个近似值的平均值,相当于随机投点100000
次得到的近似值。
蒙特卡罗(Monte Carlo)方法,或称计算机随机模拟方法,是一种基于" 随机数"
的计算方法。这一方法源于美国在第一次世界大战进研制原子弹的" 曼哈顿计划
" 。该计划的主持人之一、数学家冯? 诺伊曼用驰名世界的赌城-摩纳哥的Monte
Carlo-来命名这种方法,为它蒙上了一层神秘色彩。
Monte Carlo方法的基本思想很早以前就被人们所发现和利用。早在17世纪,
人们就知道用事件发生的" 频率" 来决定事件的" 概率" 。19世纪人们用投针试验的
方法来决定圆周率π。本世纪40年代电子计算机的出现,特别是近年来高速电
子计算机的出现,使得用数学方法在计算机上大量、快速地模拟这样的试验成为
可能。
考虑平面上的一个边长为1的正方形及其内部的一个形状不规则的" 图形" ,如何
求出这个" 图形" 的面积呢?Monte Carlo方法是这样一种" 随机化" 的方法:向该
正方形" 随机地" 投掷N 个点落于" 图形" 内,则该" 图形" 的面积近似为M/N。
可用民意测验来作一个不严格的比喻。民意测验的人不是征询每一个登记选民的
意见,而是通过对选民进行小规模的抽样调查来确定可能的优胜者。其基本思想
是一样的。
科技计算中的问题比这要复杂得多。比如金融衍生产品(期权、期货、掉期等)
的定价及交易风险估算,问题的维数(即变量的个数)可能高达数百甚至数千。
对这类问题,难度随维数的增加呈指数增长,这就是所谓的" 维数的灾难"(Course
Dimensionality) ,传统的数值方法难以对付(即使使用速度最快的计算机)。
Monte Carlo方法能很好地用来对付维数的灾难,因为该方法的计算复杂性不再
依赖于维数。以前那些本来是无法计算的问题现在也能够计算量。为提高方法的
效率,科学家们提出了许多所谓的" 方差缩减" 技巧。
另一类形式与Monte Carlo方法相似,但理论基础不同的方法-" 拟蒙特卡罗方法
"(Quasi-Monte Carlo方法)-近年来也获得迅速发展。我国数学家华罗庚、王元提
出的" 华-王" 方法即是其中的一例。这种方法的基本思想是" 用确定性的超均匀分
布序列(数学上称为Low Discrepancy Sequences)代替Monte Carlo方法中的随
机数序列。对某些问题该方法的实际速度一般可比Monte Carlo方法提出高数百
倍,并可计算精确度。
http://www.chinainfo.gov.cn/data/200108/1_20010830_13234.html
在建立以上实施整合管理体系企业的绩效模糊综合评价模型和引入模糊数学理
论的基础上,我们可以开始对企业绩效的指标进行下列步骤的分析,最终得到企
业管理体系整合绩效评价等级。
步骤一:依据所建立的企业绩效综合评价指标体系,使用层次分析法计算,获得
首层各个评价方面的权重 wA 、wB 、wC 和wD ,并得到二层三个方面的各个指
标的权重 wij(i=A、B 、C 、D, j=1,2,…10)。
步骤二: 根据的实施质量、环境和职业健康安全整合管理体系的企业实际情况
和对评定指标的模糊集规定,请专家评审团对四个方面指标的各个分指标进行评
定,列出评定表。
步骤三: 首先对于财务评价评价指标,用 ri 表示专家对于这个方面的影响企业
绩效评价等级的各个指标 i 的评定等级,wi 表示该项指标的权重等级
(i=1,2…10)。按照表 4-8 和表 4-10 所列出的参数确定其各自的隶属函数
f(x)。对每一项 f(x),用积分法计算其累积函数 F(x),并计算 F(x)的最大值
max(F(x))。假设 x 服从β分布,应用蒙特卡罗模拟方法,对每一项所求出的
F(x),随机生成一个均匀随机数,其生成范围为[0, max(F(x))],然后令 F(x)=所
生成的随机数,这样可以反解得到一个 x ,这样得到的 x 是一个随机值,代表
其模糊集合。这样就可以得到一组随机的 x 值,分别代表专家评审的各项因素
的权重和评定等级的随机模拟值。
步骤四:按下面的公式(1)计算企业绩效评价等级在财务评价指标方面的等级 R
其 ri 、wi 分别为上一步中所计算的 x 值。
R= (1)
R 值代表企业绩效评价等级在管理者及员工评价方面的综合等级, 指数β用公式
(2)计算:
β = (2)
至此完成了一步迭代计算.
步骤五:大量重复计算步骤二和步骤三,为了得到理想结果所需的循环次数或模
拟次数可以通过试算程序来估计. 基于专家所进行的试验,模拟 1000 次结果比
较理想,该蒙特卡罗模拟可由在个人计算机上运行的 VB 程序运行,速度很快。
步骤六:确定步骤三所得的 R 的最小值、最大值、平均值和标准偏差,然后根
据所选用的 5 点尺度进行归一化,归一化后的上述 4 个参数分别用 a 、b 、μ、
σ来表示。然后,将这几个参数代入β-M 隶属函数,如下所示:
g(x)=C(x-a)a(b-x)β (3)
C= aaββ[ ]a+β –1 (4)
a=P2 (5)
β= (6)
p= (7)
q= (8)
这里 g(x)定义了代表专家对于影响指标的综合评价的模糊数字。β-M 隶属函数
是一个隶属函数,而不是一个概率密度函数。然而,它具备β概率密度分布函数
的理想性质,即它是一个有界函数,可以被偏移至右边,偏移至左边,或表示成
对称形式。在β-M 函数的现有形式中,参数α和β是非整数,并不需要复杂计
算,这是一个优势。
步骤七:计算衡量专家对于影响指标的综合评价模糊数字的实用数。按上述步骤
得到了关于每个方面的影响指标等级的模糊集合,但没有直接计算模糊数字的办
法。因此需要一个实用数来表示影响企业绩效评价等级的百分比,该实用数包含
模糊性,采用图 4-3 所示的实用数模型:
1.0
g(x) AL AR
0 a b 1.0 x
β-M 隶属函数
按下面的公式计算企业绩效综合评价在财务评价方面的评价值 LA :
LA=( AL– AR+1)/2 (9)
这里 AR 是非模糊实数,AL 是以坐标域为界,位于所得到模糊集隶属函数左侧
的区域面积,AR 是右侧的区域面积。R 的数值分布在 0~1 范围内。
步骤八:对于管理者及员工评价方面、顾客评价方面、社会环境评价方面的指标,
按照以上步骤三到步骤七所示,分别计算 LB 、 LC 和LD 。
步骤九:按照财务评价、管理者及员工评价、顾客评价及社会环境评价的权重
(wA ,wB ,wC ,wD ), 计算最后的企业绩效评价等级指数:
EPEI =wALA +wBLB +wCLC+wDLD (10)
四 企业实施管理体系整合绩效评价模型的计算机实现
根据上文提到的计算方法与步骤可以编写相应的计算机程序,自动评定待评企业
的管理体系整合绩效综合评价等级。该企业绩效综合评价模型的计算过程所示,
通过使用 Visual Basic 6.0 以及 Matlab 5.3 ,可以设计和实现该企业绩效综合
评价模型。
步骤一:只需在 VB 程序中输入财务评价方面的各个评价指标的权重等级(wi )
与评价等级(ri ), 就能利用该程序自动得到计算 R 的最小值 a 、最大值 b 、平
均值μ和标准偏差σ;
步骤二:将所得的 a 、b 、μ、σ输入到已设定好的 EXCEL 表中,可得α、β以
及 C 值;
步骤三:在 Matlab 程序中输入所得的 R 的最小值 a 、最大值 b 、α、β以及C
值, 得到企业绩效综合评价在财务评价方面的评价值 LA ,按照以上步骤分别得到
LB 、 LC 、LD ;
步骤四:将所得的 LA 、LB 、 LC 、LD 代入公式(10)中得到企业绩效评价等
级指数 EPEI 。
http://www.madio.net/Article/Class3/Class12/200509/1049.html
应用
蒙特卡罗法(Monte Carlo method)是以概率和统计的理论、方法为基础的一种
计算方法,将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模
拟或抽样,以获得问题的近似解,故又称统计模拟法或统计试验法。
蒙特卡洛法是一种计算积分的方法~
要计算f 在[a,b]区间上的积分,蒙特卡洛算法就是不断产生在[a,b]间的随机数c ,
计算所有f (c )*(a-b )的平均值,取的次数越多越接近要计算的积分的真实值
应用的话,应该是用在某些数值积分的计算上吧~
源程序 这个是普罗克斯或者译为普罗金斯的现代通信系统使用matlab 一书上的吧。这
个是多幅度信号仿真。使用的的是蒙特卡罗仿真方法,就是用很多次实验的到的
结果仿真理论值,容易理解的就是投10000次硬币,5005次整,4995次反,
等到正的概率与反的概率。
Function[p]=smldPe58(snr_in_dB) 函数名,输入变量时信噪比dB 形式的
d=1; 这里表示电信号幅度,一个单位
SNR=exp(snr_in_dB*log(10)/10); 将信噪比化成正常的形式,dB 你知道吧
Sgma=sqrt((5*d^2)/(4*SNR)); 噪声标准差,出自理论公式
N=10000; 实验次数
for i=1:N,
temp=rand; 产生一个随机数0-1的
if(temp
同
dsource(i)=0: 0-0.25是0
elseif(temp
dsource(i)=1; 0.25-0.5是1
elseif(temp
dsource(i)=2 0.5-0.75是2
else
dsource=3 0.75-1是3刚好四种
end
end;
numoferr=0; 这是个计数器,积累错误个数
for i=1:N,
if(dsource(i)==0),
r=-3*d+gngauss(sgma); 这里把四种电平对应了四种幅度
elseif(dsource(i)==1), -3*d -d d 3*d 间隔2d 是信号大小
r=-d+gngauss(sgma); gngauss 函数在该书前几章有
elseif(dsuorce(i)==2), 产生高斯分布噪声,
r=d+gngauss(sgma); 这里就是信号加噪声,相当于信号
else 通过信道
r=3*d+gngauss(sgma);
end:
if(r
decis=0; 按接收大小来判决属于0.1.2.3哪种信号 elseif(r
decis=1;
elseif(r
decis=2;
elseif
decis=3;
end;
if(decis=dsource(i)), 判决信号和发送的原始信号比较
numoferr=numoferr+1; 不一样就说明错了一个,误码1
end;
end;
p=numoferr/N; 错了多少除以总数,误码率
已经分布是均匀分布(连续),区间为(12,62),请问各位大侠,如何用matlab
编程实现此蒙特卡罗模拟,我想模拟2000次,得到概率密度图与累积概率密度
图,程序应该如何编,麻烦大家指教,期待帮助,谢谢。小妹现在没有分数,还是希望大家能帮我,谢谢1
问题补充:
我的邮箱是[email protected],谢谢大家的帮忙。
最佳答案
n=2000; %随机点数(可增加点数)
x=12+(62-12)*rand(1,n); %产生2000个12到62的随机数
xx=12:2:62; %画概率密度图的区间
nx=histc(x,xx); %计算x 在xx 每个小区间内的点数。
px=nx/n;
sumpx=cumsum(px);
subplot(1,2,1)
bar(xx(1:end-1),px(1:end-1));
title('概率密度')
subplot(1,2,2)
plot(xx(1:end-1),sumpx(1:end-1));
title('累积概率密度')
用蒙特卡罗法计算体积(用matlab 编程实现)
悬赏分:30 | 解决时间:2010-1-27 23:18 | 提问者:go309641
要有具体程序
最佳答案
N=10000;
xx=2*rand(N,1)-1; %产生x 坐标,范围为[-1,1];
yy=2*rand(N,1)-1; %产生y 坐标,范围为[-1,1];
zz=2*rand(N,1); %产生z 坐标,范围为[0,2];
V_total=2*2*2;
rr=xx.^2+yy.^2;
cnt=sum((rrsqrt(rr)) & (rr+(zz-1).^2
V=V_total*cnt/N
%
理论值应当是pi 吧。