QzDecomposeSample.java
01 /*
02  * $Id: QzDecomposeSample.java,v 1.8 2008/02/02 03:06:27 koga Exp $
03  *
04  * Copyright (C) 2004 Koga Laboratory. All rights reserved.
05  *
06  */
07 package matxbook.chap08;
08 
09 import org.mklab.nfc.matrix.DoubleMatrix;
10 import org.mklab.nfc.matrix.Matrix;
11 
12 
13 /**
14  @author koga
15  @version $Revision: 1.8 $, 2004/04/15
16  */
17 public class QzDecomposeSample {
18 
19   /**
20    * メインメソッド
21    
22    @param args コマンドライン引数
23    */
24   @SuppressWarnings("nls")
25   public static void main(String[] args) {
26     DoubleMatrix a = new DoubleMatrix(new double[][] { {12}{65}});
27     DoubleMatrix b = new DoubleMatrix(new double[][] { {34}{21}});
28     Matrix[] abqzx = a.qzDecompose(b);
29     Matrix aa = abqzx[0];
30     Matrix bb = abqzx[1];
31     Matrix q = abqzx[2];
32     Matrix z = abqzx[3];
33     Matrix x = abqzx[4];
34 
35     q.conjugateTranspose().multiply(a).multiply(z).subtract(aa).print("Q#*A*Z - AA");
36     q.conjugateTranspose().multiply(b).multiply(z).subtract(bb).print("Q#*B*Z - BB");
37     Matrix m1 = a.multiply(x).multiply(bb.diagonalToVector());
38     Matrix m2 = b.multiply(x).multiply(aa.diagonalToVector());
39     m1.subtract(m2).print("A*X*diag_vec(BB) - B*X*diag_vec(AA)");
40   }
41 }