alpha.m.txt

来自「这是马尔可夫-蒙特卡罗算法的MATLAB源程序.」· 文本 代码 · 共 27 行

TXT
27
字号
function [lalpha,q] = Alpha(p,q,d,m,pperm,rperm)
% [lalpha,q] = Alpha(p,q,d,m,pperm,rperm)
% MH acceptance ratio using accurate Likelihood calculation
% Puts calculated DR, logPrior (all solvers) G, logLikelihood, (except solver=0) fields in proposal state

% Colin Fox, 29 Nov 2005

% Alpha needs to calculate and store in q:
% value of DR and logPrior for the proposed state
% Green's functions and logLikelihood for the proposed state (except solver=0 ,i.e., prior only)

% Form q.DR and calculate logPrior(q) - logPrior(p)
q.DR = p.DR;
for ind = 1:length(q.mr)                          % number of indices, move 1 has 1, move 2 has 2
    q.DR(q.mr(ind),q.nr(ind)) = q.NewR(ind); 
end
q.logPrior = logPrior(q,m,d.lic);
logPriorDiff = q.logPrior - p.logPrior;

% Calculate Green's functions and logLikelihood(q) - logLikelihood(p) using direct solver
q.G = Solver(q.DR,d,pperm,rperm);
q.logLikelihood =  logLikelihood(q,d);
logLikelihoodDiff = q.logLikelihood - p.logLikelihood;

% Calculate MH ratio
lalpha = min(0,(logLikelihoodDiff+logPriorDiff)); % no proposal ratio as proposal is symmetric

⌨️ 快捷键说明

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