source: tol/tol_tests/toltcl/Bugzilla/bug_000252/binormal_MH.tol @ d6f042d

1941-docker-image-to-testdevel
Last change on this file since d6f042d was d6f042d, checked in by Víctor de Buen <vdebuen@…>, 18 years ago

standarrd tol tests

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@18 be4846ae-f051-483a-831f-b64e7d08527f

  • Property mode set to 100644
File size: 1.2 KB
Line 
1Matrix m = Col(0,0);
2Matrix S = ((1, .9),
3            (.9, 1));
4Matrix S_1 = GaussInverse(S);
5Matrix Lt = Choleski(S);
6
7Matrix BiNormal(Matrix mu)
8{
9  Matrix mu + Lt * (Matrix Gaussian(Rows(mu), 1, 0, 1))
10};
11
12Real d1 = 0.75;
13Real d2 = 1.0;
14
15Real target_density(Matrix x, Matrix cx, Matrix join, Set data)
16{
17  //Text WriteLn("----- target_density -----");
18  Matrix xm = x - m;
19  Real den = -0.5*MatDat(Tra(xm)*S_1*xm,1,1);
20  //Set View([[x, den]], "Std");
21  //Text WriteLn("");
22  Real den
23};
24
25Matrix kernel_drawer1(Matrix x, Matrix cx, Matrix join, Set data)
26{
27  Matrix x + Col(Real Rand(-d1, d1), Real Rand(-d2, d2))
28};
29
30Set MH_def = [[
31               [[2, /* dimension */
32                 2, /* generic MH */
33                 m, /* initial state */
34                 Copy(Empty), /* block data */
35                 kernel_drawer1, /* kernel generator */
36                 target_density, /* log density evaluator */
37                 1 /* q is symmetric */
38               ]]
39             ]];
40
41Set samples = For(1, 1000, Matrix (Real i) {
42  BiNormal(m)
43});
44
45//Matrix join = BinGroup("|", samples);
46//Matrix join_t = Tra(join);
47
48// Real target_density(Col(0,0), Col(0,0), Col(0,0), Empty);
49
50Matrix chain = MetropolisHastings(MH_def, 10, 10);
51Matrix chain_t = Tra(chain);
Note: See TracBrowser for help on using the repository browser.