From f41e969dbe128ff3a3e458aaf3fe22fd8967d72c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Karam=C3=A9?=
 <frederic.karame@univ-lemans.fr>
Date: Fri, 16 Nov 2012 11:35:39 +0100
Subject: [PATCH] computes the weights and the nodes for approximating gaussian
 distributions using the scaled unscented approach.

---
 matlab/particle/unscented_sigma_points.m | 42 ++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 matlab/particle/unscented_sigma_points.m

diff --git a/matlab/particle/unscented_sigma_points.m b/matlab/particle/unscented_sigma_points.m
new file mode 100644
index 000000000..26fcc4b5c
--- /dev/null
+++ b/matlab/particle/unscented_sigma_points.m
@@ -0,0 +1,42 @@
+function [nodes,W_m,W_c] = unscented_sigma_points(n,DynareOptions) 
+%
+% Computes nodes and weigths for a scaled unscented transform cubature 
+% INPUTS
+%    n                  [integer]   scalar, number of variables.
+%
+% OUTPUTS
+%    nodes          [double]    nodes of the cubature
+%    weigths        [double]    associated weigths
+%
+% REFERENCES
+%
+% 
+%
+% NOTES
+% 
+% Copyright (C) 2009-2012 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% Dynare is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+lambda = (DynareOptions.particle.unscented.alpha^2)*(n+DynareOptions.particle.unscented.kappa) - n ; 
+nodes = [ zeros(n,1) ( sqrt(n+lambda).*([ eye(n) -eye(n)]) ) ]' ;
+W_m = lambda/(n+lambda) ;
+W_c = W_m + (1-DynareOptions.particle.unscented.alpha^2+DynareOptions.particle.unscented.beta) ;
+temp = ones(2*n,1)/(2*(n+lambda)) ;
+W_m = [W_m ; temp] ; 
+W_c = [W_c ; temp]  ; 
+
+
-- 
GitLab