matlab--蒙特卡罗Monte Carlo

版权声明:转载请署名 https://blog.csdn.net/drunkpragrammer/article/details/79263484

                Monte Carlo:               以某个事件的出现概率估算随机事件的概率。另一种是得到随机事件的数字特征,将其作为问题的解。用于求问题的准确解,但求到的解可能不正确。正确的可能性随着计算时间的增加而增加。


随机数:随机数在概率算法设计中扮演着十分重要的角色。在现实计算机上无法产生真正的随机数,因此在概率算法中使用的随机数都是一定程度上随机的,即伪随机数。


              产生随机数最常用的方法是线性同余法。由线性同余法产生的随机序列a1,a2,...,an满足

               a0=d

              an=(ban-1+c)mod m n=1,2.......

              其中,b>=0, c>=0,d>=m。d称为该随机序列的种子。(1)


【matlab随机数】


Y = random(name,A,B,C,D)

Parameter A:平均值

Parameter B:标准偏差

Parameter C:行数

Parameter D:列数


a=random('normal',1,2,2,2)

a =

    3.7637    3.8177

    0.8119    0.5266


normal:正态分布。https://cn.mathworks.com/help/stats/random.html?searchHighlight=random&s_tid=doc_srchtitle    有其他方法。



X = rand(m,n) %在区间(0,1)中返回一个均匀分布的随机数。

Parameter m:行数         

Parameter n:列数     

    

a=rand(2,2)

a =

   0.9120    0.4364

   0.7349    0.3341


[monte carlo求解椭圆面积]

clear

n=500000;  % 随机生成n个点

x=rand(1,n);

y=rand(1,n);

x=2.*x;

y=3.*y;

r=(1/4).*x.*x+(1/9).*y.*y;  % 计算点到圆心的距离

m=find(r<=1);  % 找到落在椭圆里面的点

mm=length(m);  % 落在椭圆里面点的个数

S=(mm/n)*24    % 求椭圆面积

 



【monte carlo模拟状态空间模型】

状态空间模型是动态时域模型,以隐含着的时间为自变量。状态空间模型在经济时间序列分析中的应用正在迅速增加。其中应用较为普遍的状态空间模型是由Akaike提出并由Mehra进一步发展而成的典型相关(canonical correlation)方法。

状态空间模型起源于平稳时间序列分析。当用于非平稳时间序列分析时需要将非平稳时间序列分解为随机游走成分(趋势)和弱平稳成分两个部分分别建模。含有随机游走成分的时间序列又称积分时间序列,因为随机游走成分是弱平稳成分的和或积分。当一个向量值积分序列中的某些序列的线性组合变成弱平稳时就称这些序列构成了协调积分(cointegrated)过程。非平稳时间序列的线性组合可能产生平稳时间序列这一思想可以追溯到回归分析,Granger提出的协调积分概念使这一思想得到了科学的论证。 AokiCochrane等人的研究表明:很多非平稳多变量时间序列中的随机游走成分比以前人们认为的要小得多,有时甚至完全消失。

load iddata1 z1 %加载估算数据。

sys = ssest(z1,3);%z1是存储输入输出估计数据的iddata对象.估计一个三阶状态空间模型.

simsd(sys,z1);%使用蒙特卡洛方法和输入估计数据模拟估计模型的响应,并绘制响应。

 

ssest:  使用时域或频域数据估计状态空间模型
simsd: 用蒙特卡洛方法模拟不确定性的线性模型



[monte carlo模拟不确定性的线性模型]

更多例子:https://cn.mathworks.com/help/ident/ref/simsd.html?s_tid=doc_ta


猜你喜欢

转载自blog.csdn.net/drunkpragrammer/article/details/79263484