【隐马尔可夫模型】观测概率的后向算法matlab实现

%隐马尔可夫后向算法:求观测序列概率P
%A状态转移概率矩阵
%B观测概率矩阵
%pai初始状态概率矩阵
%beita后向概率矩阵 先储存在b中
%T总时刻
%Q={1,2,3}状态集合,V={红,白}观测集合
%课本p213 习题10.1

A=[0.5 0.2 0.3;0.3 0.5 0.2;0.2 0.3 0.5];
B=[0.5 0.5;0.4 0.6;0.7 0.3];
pai=[0.2;0.3;0.5];
T=4;
O=[1;2;1;2];%1代表红球,2代表白球
b=zeros(T,size(pai,1));

%最后一个时刻T=4
for i=1:size(pai,1)
    b(1,i)=1;
end
for t=2:T
    for i=1:size(pai,1)
        b(t,i)=A(i,:).*b(t-1,:)*B(:,O(T+2-t));
    end
end
beita=flipud(b);%上下翻转矩阵b,得到后向概率矩阵
P=beita(1,:)*(pai.*B(:,O(1)));
P
beita

后向算法是从后往前推,迭代的时候我先正着递推,要注意真实时刻与代码中的t的关系:真实时刻=T+1-t

最后把算出来的b翻转一下就是正确的后向概率 存放在矩阵里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值