Home > . > forcst.m

forcst

PURPOSE ^

SYNOPSIS ^

function [yf,var_yf]=forcst(dr,y0,k,m)

DESCRIPTION ^

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [yf,var_yf]=forcst(dr,y0,k,m)
0002   global M_  oo_ options_
0003   
0004   options_.periods = k;
0005   make_ex_;
0006   yf = simult_(y0,dr,oo_.exo_simul(1:k,:),1);
0007 
0008   nstatic = dr.nstatic;
0009   npred = dr.npred;
0010   j = find(kstate(dr.kae,2) <= ykmin_+1);
0011   kae = dr.kae(j);
0012   nh = size(dr.ghx,2);
0013   hx = dr.ghx(nstatic+1:nstatic+npred,:);
0014   hu = dr.ghu(nstatic+1:nstatic+npred,:);
0015   if ~isempty(kae)
0016     n = length(kae);
0017     tmp = sparse([1:n]',kae-sum(dr.kstate(:,2)>M_.maximum_lag+1),ones(n,1),n,nh);
0018     hx = [hx; tmp];
0019     hu = [hu; zeros(n,M_.exo_nbr)];
0020   end
0021   gx  = [];
0022   k2  = [];
0023   if nstatic > 0
0024     gx = dr.ghx(1:nstatic,:);
0025     k2 = [1:nstatic]';
0026   end
0027   if size(dr.ghx,1) > nstatic+npred
0028     gx = [gx; dr.ghx(nstatic+npred+1:end,:)];
0029     k2 = [k2; [nstatic+npred+1:size(dr.ghx,1)]'];
0030   end
0031   
0032   k1 = dr.order_var([nstatic+1:nstatic+npred]);
0033   k2 = dr.order_var(k2);
0034   
0035   sigma_u = hu*M_.Sigma_e*hu';
0036   sigma_y1 = 0;
0037   var_yf = zeros(k,M_.endo_nbr);
0038   
0039 
0040   if isempty(k2)
0041     for i=1:k
0042       sigma_y1 = sigma_y1+sigma_u;
0043       var_yf(i,k1) = diag(sigma_y1(1:npred,1:npred))';
0044       if i == k
0045     break
0046       end
0047       sigma_u = hx*sigma_u*hx';
0048     end
0049   else
0050     for i=1:k
0051       sigma_y1 = sigma_y1+sigma_u;
0052       var_yf(i,k1) = diag(sigma_y1(1:npred,1:npred))';
0053       sigma_y2 = gx*sigma_y1*gx';
0054       var_yf(i,k2) = diag(sigma_y2)';
0055       if i == k
0056       break
0057       end
0058       sigma_u = hx*sigma_u*hx';
0059     end
0060   end
0061   
0062 
0063 
0064 
0065 
0066 
0067 
0068 
0069 
0070 
0071 
0072 
0073

Generated on Fri 16-Jun-2006 09:09:06 by m2html © 2003