63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Matlab
		
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Matlab
		
	
	
| %-----------------------------------------------------------------------
 | |
| % equals
 | |
| fg = createGaussianFactorGraph();
 | |
| fg2 = createGaussianFactorGraph();
 | |
| CHECK('equals',fg.equals(fg2,1e-9));
 | |
| 
 | |
| %-----------------------------------------------------------------------
 | |
| % error
 | |
| zero = createZeroDelta();
 | |
| actual = fg.error(zero);
 | |
| DOUBLES_EQUAL( 5.625, actual, 1e-9 );
 | |
| 
 | |
| %-----------------------------------------------------------------------
 | |
| % eliminate_x1
 | |
| fg = createGaussianFactorGraph();
 | |
| actual = fg.eliminateOne('x1');
 | |
| 
 | |
| %-----------------------------------------------------------------------
 | |
| % eliminate_x2
 | |
| fg = createGaussianFactorGraph();
 | |
| actual = fg.eliminateOne('x2');
 | |
| 
 | |
| %-----------------------------------------------------------------------
 | |
| % eliminateAll
 | |
| I = eye(2);
 | |
| cg1 = GaussianConditional('x1',[-1;-1], 10*I,[1;1]);
 | |
| 
 | |
| sig1=0.149071;
 | |
| d2=[0; .2]/sig1;
 | |
| cg2 = GaussianConditional('l1', d2, I/sig1, 'x1', -I/sig1, [1;1]);
 | |
| 
 | |
| sig2 = 0.0894427;
 | |
| A21 = -0.2*I/sig2;
 | |
| A22 = -0.8*I/sig2;
 | |
| d3 =[.2; -.14]/sig2;
 | |
| cg3 = GaussianConditional('x2',d3, I/sig2, 'l1', A21, 'x1', A22, [1;1]);
 | |
| 
 | |
| expected = GaussianBayesNet;
 | |
| expected.push_back(cg3);
 | |
| expected.push_back(cg2);
 | |
| expected.push_back(cg1);
 | |
| 
 | |
| % Check one ordering
 | |
| fg1 = createGaussianFactorGraph();
 | |
| ord1 = Ordering;
 | |
| ord1.push_back('x2');
 | |
| ord1.push_back('l1');
 | |
| ord1.push_back('x1');
 | |
| actual1 = fg1.eliminate_(ord1);
 | |
| CHECK('eliminateAll', actual1.equals(expected,1e-5));
 | |
| 
 | |
| %-----------------------------------------------------------------------
 | |
| % matrix
 | |
| 
 | |
| fg = createGaussianFactorGraph();
 | |
| ord = Ordering;
 | |
| ord.push_back('x1');
 | |
| ord.push_back('x2');
 | |
| ord.push_back('l1');
 | |
| 
 | |
| [H,z] = fg.matrix(ord);
 | |
| 
 |