From 86cac3922728add657fc45642a477742e53bbcfb Mon Sep 17 00:00:00 2001 From: michel Date: Sun, 11 Feb 2007 13:02:29 +0000 Subject: [PATCH] v4 adding test for kalman filter and smoother git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1184 ac1d8469-bf42-47a9-8791-bf33cf982152 --- tests/kalman_filter_smoother/test.mat | Bin 0 -> 4464 bytes tests/kalman_filter_smoother/testsmoother.m | 54 ++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 tests/kalman_filter_smoother/test.mat create mode 100644 tests/kalman_filter_smoother/testsmoother.m diff --git a/tests/kalman_filter_smoother/test.mat b/tests/kalman_filter_smoother/test.mat new file mode 100644 index 0000000000000000000000000000000000000000..95db1c32c5e5181af8588cbd8421672a2748aa76 GIT binary patch literal 4464 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 J2ZTiTe*l2gc&PvY literal 0 HcmV?d00001 diff --git a/tests/kalman_filter_smoother/testsmoother.m b/tests/kalman_filter_smoother/testsmoother.m new file mode 100644 index 000000000..344956afb --- /dev/null +++ b/tests/kalman_filter_smoother/testsmoother.m @@ -0,0 +1,54 @@ +load test +% $$$ Y = Y(1:2,:); +% $$$ mf = mf(1:2); +% $$$ H=H(1:2,1:2); +% $$$ pp = pp-1; +% $$$ trend =trend(1:2,:); +Pinf1(1,1) = 1; +Pstar1(1,1) = 0; +Pstar1(4,1) = 0; +Pstar1(1,4) = 0; +[alphahat1,epsilonhat1,etahat1,a11, aK1] = DiffuseKalmanSmootherH1(T,R,Q,H, ... + Pinf1,Pstar1,Y,trend,pp,mm,smpl,mf); +[alphahat2,epsilonhat2,etahat2,a12, aK2] = DiffuseKalmanSmootherH3(T,R,Q,H, ... + Pinf1,Pstar1,Y,trend, ... + pp,mm,smpl,mf); +max(max(abs(alphahat1-alphahat2))) +max(max(abs(epsilonhat1-epsilonhat2))) +max(max(abs(etahat1-etahat2))) +max(max(abs(a11-a12))) +max(max(abs(aK1-aK2))) + +return +[alphahat1,etahat1,a11, aK1] = DiffuseKalmanSmoother1(T,R,Q, ... + Pinf1,Pstar1,Y,trend,pp,mm,smpl,mf); +[alphahat2,etahat2,a12, aK2] = DiffuseKalmanSmoother3(T,R,Q, ... + Pinf1,Pstar1,Y,trend,pp,mm,smpl,mf); + +max(max(abs(alphahat1-alphahat2))) +max(max(abs(etahat1-etahat2))) +max(max(abs(a11-a12))) +%max(max(abs(aK1-aK2))) + + +H = zeros(size(H)); +[alphahat1,etahat1,a11, aK1] = DiffuseKalmanSmoother1(T,R,Q, ... + Pinf1,Pstar1,Y,trend,pp,mm,smpl,mf); +[alphahat2,epsilonhat2,etahat2,a12, aK2] = DiffuseKalmanSmootherH1(T,R,Q,H, ... + Pinf1,Pstar1,Y,trend, ... + pp,mm,smpl,mf); +max(max(abs(alphahat1-alphahat2))) +max(max(abs(etahat1-etahat2))) +max(max(abs(a11-a12))) +%max(max(abs(aK1-aK2))) + + +[alphahat1,etahat1,a11, aK1] = DiffuseKalmanSmoother3(T,R,Q, ... + Pinf1,Pstar1,Y,trend,pp,mm,smpl,mf); +[alphahat2,epsilonhat2,etahat2,a12, aK2] = DiffuseKalmanSmootherH3(T,R,Q, H, ... + Pinf1,Pstar1,Y,trend,pp,mm,smpl,mf); + +max(max(abs(alphahat1-alphahat2))) +max(max(abs(etahat1-etahat2))) +max(max(abs(a11-a12))) +%max(max(abs(aK1-aK2)))