matlab对国内生产总值(GDP)建立马尔可夫链模型(MC)并可视化

简介: matlab对国内生产总值(GDP)建立马尔可夫链模型(MC)并可视化

本示例说明如何创建并可视化Markov链模型的结构和演化 。考虑从随机转移矩阵中创建马尔可夫链的四状态马尔可夫链,该模型模拟了国内生产总值(GDP)的动态 。

创建实际GDP的马尔可夫链模型。指定状态名称。



P = [0.5 0.5 0.0 0.0;
0.5 0.0 0.5 0.0;
0.0 0.0 0.0 1.0;
0.0 0.0 1.0 0.0];
stateNames = ["Regime 1" "Regime 2" "Regime 3" "Regime 4"];
mc = mc(P,'StateNames'

可视化马尔可夫链的一种方法是绘制转移矩阵的热图。




figure;
imagesc(P);
colormap(jet);
colorbar;
axis squar

有向图

有向图将链中的状态显示为节点,并将状态之间的可行转换显示为有向边。

绘制马尔可夫链的默认有向图。



figure;
plot(mc);

通过基于转移概率指定边缘颜色来比较转移概率。

figure;
plot(mc,'ColorEdges'


通过根据状态类型指定节点颜色和标记来识别循环状态和瞬态状态。



figure;
h = hplot(mc,'ColorEdges',true,

 

低均值状态是瞬态的,最终转移到递归的高均值状态。

节点标签的默认字体大小为8。将字体大小减少到7。


FontSize = 7;

 

混合图

可以通过在有向图中绘制目标概率和预期的第一次命中时间来可视化。

从马尔可夫链中的每个状态开始计算命中目标状态的指定子集的概率。其中节点颜色表示命中概率。

绘制马尔可夫链的有向图,其中节点颜色表示命中方案1的概率。


htp(mc,"Regime 1",'Graph


 


从马尔可夫链中的每个状态开始,计算目标状态的指定子集的预期首次命中时间。其中节点颜色表示命中时间。

绘制马尔可夫链的有向图,其节点颜色表示包含状态3和4的目标子类的预期首次命中时间。



target = ["Regime 3" "Regime 4"];
htime(mc,target

从方案1开始,该子类的预期首次命中时间为6个时间步长。

特征值图

特征值图显示了复平面上的特征值。特征值图并标识:

  • Perron-Frobenius特征值,使用粗体星号为非负矩阵。
  • 光谱间隙,即长度等于第二大特征值幅度(SLEM)的半径和长度为1的半径之间的区域。光谱间隙决定了马尔可夫链的混合时间。大间隙表示混合较快,而细间隙表示混合较慢。

在复杂平面上绘制并返回转换矩阵的特征值。



figure;
eigplt(mc)



eVals = 4×1


0.8090
-0.3090
1.0000
-1.0000

两个特征值的模量为1,表明马尔可夫链的周期为2。


重新分配图

重新分布图从初始分布绘制了状态重新分布。 使用马尔可夫链对象生成的数据来绘制重新分布 。可以将重新分布绘制为静态热图或动画直方图或有向图。

从初始分布生成10步重新分布。


redis(mc,numSteps,'X0',x0);

将重新分布绘制为热图。

 

由于状态1和状态2是瞬态的,因此马尔可夫链最终将概率集中在状态3和状态4。此外,如特征值图所示,状态3和状态4的周期为2。

绘制动画直方图。将帧速率设置为一秒。

 

仿真图

仿真图绘制了从特定初始状态开始的马尔可夫链的随机游动图。

生成100个十步随机游走,其中每个状态都会初始化游走25次。


simu(mc,numSteps,

将模拟绘制为热图,以显示每个步骤达到的状态比例。

 

绘制已实现转移矩阵的热图。



figure;
simp(mc,X,'Type','transition');

所实现的转移矩阵看起来类似于理论转移矩阵。

相关文章
|
17天前
|
数据采集 算法 调度
【电力系统】基于matlab虚拟电厂内部负荷调度优化模型(matlab+yalmip+cplex)(Matlab代码实现)
【电力系统】基于matlab虚拟电厂内部负荷调度优化模型(matlab+yalmip+cplex)(Matlab代码实现)
|
22天前
|
人工智能 供应链 算法
考虑灵活性供需平衡的电力系统优化调度模型研究(Matlab代码实现)
考虑灵活性供需平衡的电力系统优化调度模型研究(Matlab代码实现)
|
20天前
|
机器学习/深度学习 算法 5G
【天线通信】基于matlab电磁的动态超表面天线通信模型研究(Matlab代码实现)
【天线通信】基于matlab电磁的动态超表面天线通信模型研究(Matlab代码实现)
|
20天前
|
Python
【掺铒光纤放大器(EDFA)模型】掺铒光纤放大器(EDFA)分析模型的模拟研究(Matlab代码实现)
【掺铒光纤放大器(EDFA)模型】掺铒光纤放大器(EDFA)分析模型的模拟研究(Matlab代码实现)
|
20天前
|
机器学习/深度学习 算法 数据挖掘
【数据分析】基于matlab私家车充电模型(含私家车日行驶距离概率密度及累加函数,电动汽车出发时间(或者称开始充电的时间)概率)(Matlab代码实现)
【数据分析】基于matlab私家车充电模型(含私家车日行驶距离概率密度及累加函数,电动汽车出发时间(或者称开始充电的时间)概率)(Matlab代码实现)
|
21天前
|
数据采集 机器学习/深度学习 Python
【剩余寿命预测】基于matlab Wiener维纳过程模型的剩余使用寿命研究(Matlab代码实现)
【剩余寿命预测】基于matlab Wiener维纳过程模型的剩余使用寿命研究(Matlab代码实现)
103 0
|
21天前
|
机器学习/深度学习 算法 SoC
主动配电网故障恢复的重构与孤岛划分统一模型研究【升级版本】(Matlab代码实现)
主动配电网故障恢复的重构与孤岛划分统一模型研究【升级版本】(Matlab代码实现)
|
17天前
|
机器学习/深度学习 算法 新能源
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
|
17天前
|
机器学习/深度学习 存储 并行计算
【无人机】基于MPC的无人机路径规划研究(Matlab代码实现)
【无人机】基于MPC的无人机路径规划研究(Matlab代码实现)
123 6
|
17天前
|
机器学习/深度学习 边缘计算 人工智能
【无人机】采用NOMA的节能多无人机多接入边缘计算(Matlab代码实现)
【无人机】采用NOMA的节能多无人机多接入边缘计算(Matlab代码实现)

热门文章

最新文章