⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 forwardpass.m

📁 基于变分贝叶斯方法的状态空间模型学习程序
💻 M
字号:
%Function to perform a variational forward filtering pass on one sequence.%%v3.0 Matthew J. Beal GCNU 01/03/03function [lnZp,mua,nua] = forwardpass(y,u,nup,mup,A,AA,AB,B,BB,rho,lnrho,CrhoC,rhoC,CrhoD,rhoD,DrhoD,cFbool);k = size(mup,1); [p T] = size(y);lnZp = zeros(1,T);nua = zeros(k,k,T);mua = zeros(k,T);t=1;  tmp = inv( nup + AA );  nua(:,:,t) = eye(k,k) + CrhoC - A*tmp*A';  mua(:,t) = inv(nua(:,:,t))*( (B-CrhoD-A*tmp*AB)*u(:,t) + rhoC'*y(:,t) +A*tmp*nup*mup );  if cFbool==1    lnZp(1,t) = -lndet(nup)-lndet(tmp)+lndet(nua(:,:,t))-sum(lnrho,1)+p*log(2*pi) ...	+u(:,t)'*BB*u(:,t)+mup'*nup*mup ...	-(nup*mup-AB*u(:,t))'*tmp*(nup*mup-AB*u(:,t)) ...	+y(:,t)'*rho*y(:,t)-2*y(:,t)'*rhoD*u(:,t)+u(:,t)'*DrhoD*u(:,t)-mua(:,t)'*nua(:,:,t)*mua(:,t);  endfor t=2:T  tmp = inv( nua(:,:,t-1) + AA );  nua(:,:,t) = eye(k,k) + CrhoC - A*tmp*A';  mua(:,t) = inv(nua(:,:,t))*( (B-CrhoD-A*tmp*AB)*u(:,t) + rhoC'*y(:,t) +A*tmp*nua(:,:,t-1)*mua(:,t-1) );  if cFbool==1    lnZp(1,t) = -lndet(nua(:,:,t-1))-lndet(tmp)+lndet(nua(:,:,t))-sum(lnrho,1)+p*log(2*pi) ...	+u(:,t)'*BB*u(:,t)+mua(:,t-1)'*nua(:,:,t-1)*mua(:,t-1) ...	-(nua(:,:,t-1)*mua(:,t-1)-AB*u(:,t))'*tmp*(nua(:,:,t-1)*mua(:,t-1)-AB*u(:,t)) ...	+y(:,t)'*rho*y(:,t)-2*y(:,t)'*rhoD*u(:,t)+u(:,t)'*DrhoD*u(:,t)-mua(:,t)'*nua(:,:,t)*mua(:,t);  endendif cFbool==1  lnZp = -.5*lnZp;else  lnZp = [];end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -