蒙特卡洛方法的详细过程

2024-05-08 14:29

1. 蒙特卡洛方法的详细过程

在控制方面,蒙特卡洛方法就是通过大量随机过程,类似于穷举法,验证控制系统的性能,主要是检验系统的鲁棒性,比方说:PID控制器参数已经整定完毕,但是被控对象的参数在某个范围内发生变化,这时,将系统的输出,比方说调整时间和超调亮在坐标图上以点的形式画出,那么如果进行100次试验,就会在图上形成一百个点,如果这些点排列相对集中,那么系统的鲁棒性就相对较好,并且,如果这些点离坐标原点的距离都很近,那么,这个PID控制器的调节时间和超调量性能也就比较好,这是我在控制领域见到的一种蒙特卡洛方法的运用,在经济领域,蒙特卡洛也有运用,可以简化过去的算法,将积分变为直接的随机试验,这样可以降低系统的运行时间,提高效率。

蒙特卡洛方法的详细过程

2. 蒙特卡洛法图解

参考答案	按猪的审美观,我基本算得上是个帅哥。

3. 蒙特卡洛在哪里

蒙特卡洛是摩纳哥最大的城市。蒙特卡洛之名的由来是1856年查尔三世亲王为解除财政危机,在旧市区北边的岬角上开设了首家赌场,后人为了纪念他,将该地区命名为蒙特卡洛。这里拥有世界闻名的大赌场,始建于1865年的蒙特卡洛大赌场,世界各地的赌客赌博之余在这个小而精致的城市里还可以去豪华的歌剧院听歌剧,去明媚的海滩洗日光浴。蒙特卡洛的大赌场海滨俱乐部和旅部、体育俱乐部、高尔夫球乡村俱乐部、歌剧院都是世界一流的。

蒙特卡洛在哪里

4. 蒙特卡罗是啥意思?

我帮你搜了下,是个玩游戏的地方,我自己也玩游戏,时间也不短了,我都没听说过这,只能给你说下我玩那里,反正我帮到的就这么点了,你要有兴趣就去看看,还是不错的,我是不会坑你的,反正也耽误不了你多少时间,好玩就玩,顺便采纳我。呵呵!

5. 蒙特卡洛算法的实际应用举例

比较简单的有随机抽样,通过坐标的变换产生球面,圆面,正方体面等等所需要的抽样。在某些计算机模拟过程中,可以随机产生噪声,比如说水中花粉随机行走之类的问题,可以用来随机产生外界水分子的作用力,用来模拟现实情况。当然也可以用这种方式来近似某些科学计算,最简单的例子就是近似计算积分。对于某些计算机无法完全枚举的优化问题,也可以用蒙特卡洛方法得到较好的解,常见的比如模拟退火,量子退火等优化方法,都用到了蒙特卡洛算法。

蒙特卡洛算法的实际应用举例

6. MATLAB程序的注释 蒙特卡洛模拟!数学帝进啊!

Randn('seed',0);%设定初始随机变量seed为0
nuT=(r-0.5*sigma^2)*T;%计算过程,计算nuT=(r-0.5*sigma^2)*T
Sit=sigma*sqrt(T);%给T开方后乘以sigma等于Sit
Discpayoff=exp(-r*T)*max(0,s0*exp(nuT+sit*randn(Nu,1))-K);%0和s0乘以e的nuT+sit*randn(Nu,1))-K的最大值乘以e的-r*T次方
[eucall,varorice,ci}=normfit(discpayoff)%返回给定数据discapayoff的正太分布参数估计

Randn('seed',0);%设定初始随机变量seed为0
nuT=(r-0.5*sigma^2)*T;%计算过程,计算nuT=(r-0.5*sigma^2)*T
Sit=sigma*sqrt(T);%给T开方后乘以sigma等于Sit
Rand=randn(Nu,1);%产生Nu个随机数,列矩阵
discpayoff=exp(-r*T)*max(0.s0*exp(nuT+sit*rand)-K);%0和s0乘以e的nuT+sit*rand-K的最大值乘以e的-r*T次方
Discpayoff1=exp(-r*T)*max(0,s0*exp(nuT+sut*-rand)-K);%仍然是乘法运算,max的意思是在括号中取他们的最大值
[eucall,varproce,ci]=normfit([discpayoff;discpayoff1])%返回给定数据的正太分布参数估计
%eucall是给定数据的正太分布均值mu,varproce是标准差sigma,95%置信区间

Dt=T/NSteps;%计算Dt
Nudt=(r-0.5*sigma^2)*dt;%%计算过程,计算nuT=(r-0.5*sigma^2)*dt
Sidt=sigma*sqrt(dt);%dt的开方然后乘以sigma
Randn('seed',0);%设定初始随机变量seed为0
Rand=randn(NRep1,NSteps);%产生NSteps列,每列NRep1个随机变量
% Rand1=nudt+sidt*rand;
% Rand1=nudt+sidt*rand;
% Rand2=cumsum(rand1,2);%这三行都是产生随机变量,
Path=s0*exp(rand2);%Path是e的Rand2次方和s0的乘机
Payoff=zeros(NRep1,1);%产生4行1列0矩阵
For i=1;Nrep1%循环,i从1到Nrep1
Payoff=max(0,mean(path(i,:))-k);%payoff的值等于0和path的第i行-k的最大值
End%结束
[p.aux,CI]=normfit(exp(-r*T)*payoff)%返回payoff乘以e的(-r*T)次方的正态分布均值mu和sigma
%P.aux=mu,CI=sigma

7. 蒙特卡罗随机模拟

楼主这个题目有点问题,灾害损失数据不知道,所以不知道你给出的数据是否符合你所说的那种特定分布(比如正态分布、泊松分布),但你要从某种分布(我用你给出的分布:正态、泊松分布做出模拟)的数据中找出最大值还是有办法的,希望能对你具体计算有所启发。如下:
    (我用随机数模拟的方法,假设灾害损失数据个数为200个,灾害损失次数为200个)Matlab程序:
     %%%%%%%%%%
     %蒙特卡罗方法模拟灾害问题
     clc;clear;
     r=normrnd(9.1388,1.3577,[1 200])  %建立灾害损失程度随机数组(u为 9.1388, sigama为1.3577的正态分布,数据为200个)
     p=poissrnd(8,[1 200])  %建立灾害次数随机数组(lamda等于8的poisson分布,数据为200个)
     rmax=max(max(r))  %输出正态矩阵中最大值
     pmax=max(max(p))  %输出泊松矩阵中最大值
     %%%%%%%%%%
结果如下:
rmax =12.6008
pmax = 21
这个很简单的。掌握了这两个函数就行了。有什么问题欢迎探讨QQ:182335530
6月1日·回答补充
    首先,normrnd这个函数是存在的。其次,看了你发的数据图,我对你问的问题有点迷惑,请问你要的“从每年当中选出一个极大值”这个“极大值”是否是指的:“每年最有可能遭到的最大经济损失”?如果是的话,答案很明显,是1亿元乘以每年发生的灾害次数,并不需要matlab计算,直接观察就可以得到答案;如果指的是:“每年最有可能遭受的经济损失”,那么这是一个二维随机变量的计算,容易求出。 
6月2日·回答补充
    首先说声对不起,问题反复研究,我发现你给出的条件不够,问题在于给出的灾害经济损失数据是确定的,而又说其服从对数正态分布,其实此处服的数据服从哪种分布已经不重要了,因为数据是确定的。如果这个数据需要用对数正态分布的蒙特卡罗方法模拟的话或许会有其他办法,因为你问题的题目是用的蒙特卡罗方法。除此之外,我能力有限,暂时想不到其他方法来有效解决你所提出的问题,再次再次说声抱歉。
    现在按照我的理解解这道题,我求的最终结果是每年最有可能遭受的经济损失,而不是求其中某次最大的。蒙特卡罗方法的体现在于对于其中年份数据(年灾害次数)的模拟,使用了lamda=8的泊松分布,函数为poissrnd;然后求出每年最有可能遭受的经济损失(期望);再给出年灾害次数与各类灾害造成经济损失(亿元)的二维随机变量分布;最后计算出这个分布列中期望与频数的数量积,此值就为:每年最有可能遭受的经济损失。
%%%%%%%%%%%%%Matlab程序如下:%%%%%%%%%%%%%%%
format long;clc;clear;
%相应灾害等级的损失频数:
f1=[142 50 26 13 6 4 1 1 0 1];
%1990年到2006年的灾害次数数据
fa=[8 8 5 8 7 5 9 9 9 9 7 10 4 18 10 11 7];
%模拟1990年之前对应183年间每年发生的灾害次数,服从参数为8的泊松分布如下:
fb=poissrnd(8,[1 183]) ;
%连接前后两组数据
f2=cat(2,fa,fb);         %实际数据
subplot(2,1,1);
plot(1807:2006,f2,'*r'); %自1807年至2006年每年发生灾害的次数图像
title('每年灾害次数服从amda为8的泊松分布');
subplot(2,1,2);
plot(1:10,f1,'*b');
title('灾害经济损失服从对数正态分布')
%每次灾害时发生相应经济损失(亿元)的概率:
for i=1:10
    p1(i)=f1(i)/sum(f1);
end
%200年间每年发生灾害的概率
for j=1:200
    p2(j)=f2(j)/sum(f2);
end
%关于经济损失和年份的二维随机变量
for j=1:200
    for i=1:10
        c(j,i)=p2(j)*p1(i);
    end
end
%计算每年造成的经济损失期望emax
for i=1:10
    e(i)=p1(i)*i;
end
emax=sum(e);
%损失期望指数;参考:周俊华《中国台风灾害风险评估》p52-p55
%计算相应年份发生灾害的损失
f3=f2' ;%转置每年灾害次数
money=f3*emax;
disp('相应年份最可能造成的经济损失');
money
fp=fopen('d:\money.txt','wt');
fprintf(fp,'%4.2f ',money);
fclose(fp);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
计算结果如下:
14.79 14.79 9.24 14.79 12.94 9.24 16.64 16.64 16.64 16.64 12.94 18.48 7.39 33.27 18.48 20.33 12.94 16.64 7.39 11.09 11.09 12.94 12.94 14.79 14.79 12.94 7.39 11.09 12.94 12.94 12.94 11.09 18.48 16.64 12.94 12.94 14.79 9.24 25.88 11.09 29.57 14.79 20.33 14.79 16.64 14.79 9.24 18.48 16.64 14.79 11.09 20.33 9.24 18.48 7.39 11.09 24.03 20.33 14.79 5.55 14.79 16.64 5.55 11.09 14.79 12.94 9.24 7.39 14.79 24.03 3.70 33.27 11.09 5.55 9.24 7.39 11.09 16.64 18.48 18.48 12.94 14.79 20.33 11.09 7.39 12.94 9.24 14.79 20.33 20.33 9.24 18.48 7.39 18.48 14.79 14.79 18.48 11.09 9.24 9.24 12.94 35.12 29.57 22.18 9.24 16.64 5.55 12.94 9.24 20.33 12.94 20.33 14.79 16.64 18.48 9.24 12.94 25.88 7.39 12.94 11.09 9.24 16.64 9.24 11.09 14.79 14.79 16.64 16.64 7.39 11.09 14.79 11.09 16.64 16.64 18.48 5.55 18.48 14.79 16.64 14.79 11.09 9.24 11.09 16.64 11.09 12.94 22.18 12.94 16.64 20.33 12.94 11.09 12.94 11.09 11.09 16.64 11.09 7.39 18.48 16.64 12.94 12.94 18.48 20.33 7.39 14.79 3.70 9.24 24.03 25.88 14.79 20.33 12.94 9.24 20.33 29.57 9.24 12.94 20.33 16.64 18.48 14.79 18.48 7.39 29.57 9.24 24.03 22.18 9.24 7.39 12.94 12.94 11.09 24.03 18.48 14.79 11.09 14.79 11.09
%%%%%%%%文件存储于D:/money.txt,是short型数据%%%%%%%%%%%% 
模拟点如下:

蒙特卡罗随机模拟

8. 序列蒙特卡洛检测算法与马尔科夫链蒙特卡洛检测算法有区别吗

楼主是打算编围棋程序的吗?看这个问的感觉好像不是实战派而好像是 准备考试 遇到所谓的难点提出的问题。 
你问的问题,印象在北京邮电大学出的《现代计算机围棋基础》上有比较详细的陈述。
最新文章
热门文章
推荐阅读