001/*
002 * $Id$
003 */
004
005package edu.jas.vector;
006
007
008import edu.jas.arith.BigInteger;
009import edu.jas.arith.BigRational;
010// import edu.jas.arith.ModInteger;
011
012
013/**
014 * Examples for basic linear algebra.
015 * @author Heinz Kredel
016 */
017
018public class Examples {
019
020
021    /**
022     * main.
023     */
024    public static void main(String[] args) {
025        example1();
026        example2();
027        example3();
028        // ComputerThreads.terminate();
029    }
030
031
032    /**
033     * example1.
034     */
035    public static void example1() {
036        System.out.println("\n\n example 1");
037
038        BigInteger cfac;
039        GenMatrixRing<BigInteger> mfac;
040
041        cfac = new BigInteger();
042        System.out.println("cfac = " + cfac);
043
044        mfac = new GenMatrixRing<BigInteger>(cfac, 5, 5);
045        System.out.println("mfac = " + mfac);
046
047        GenMatrix<BigInteger> m;
048        m = mfac.random(3, 0.4f);
049        System.out.println("\nm = " + m);
050
051        m = m.multiply(m);
052        System.out.println("\nm = " + m);
053    }
054
055
056    /**
057     * example2.
058     */
059    public static void example2() {
060        System.out.println("\n\n example 2");
061
062        BigRational cfac;
063        GenMatrixRing<BigRational> mfac;
064
065        cfac = new BigRational();
066        System.out.println("cfac = " + cfac);
067
068        mfac = new GenMatrixRing<BigRational>(cfac, 5, 5);
069        System.out.println("mfac = " + mfac);
070
071        GenMatrix<BigRational> m;
072        m = mfac.random(3, 0.4f);
073        System.out.println("\nm = " + m);
074
075        m = m.multiply(m);
076        System.out.println("\nm = " + m);
077    }
078
079
080    public static void example3() {
081        System.out.println("\n\n example 3");
082        BigRational r1, r2, r3, r4, r5, r6, fac;
083        r1 = new BigRational(1, 10);
084        r2 = new BigRational(6, 5);
085        r3 = new BigRational(1, 9);
086        r4 = new BigRational(1, 1);
087        r5 = r2.sum(r3);
088        r6 = r1.multiply(r4);
089
090        fac = new BigRational();
091
092        BigRational[][] aa = new BigRational[][] { { r1, r2, r3 }, { r4, r5, r6 }, { r2, r1, r3 } };
093        GenMatrixRing<BigRational> mfac = new GenMatrixRing<BigRational>(fac, aa.length, aa[0].length);
094        GenMatrix<BigRational> a = new GenMatrix<BigRational>(mfac, aa);
095        System.out.println("system = " + a);
096
097        BigRational[] ba = new BigRational[] { r1, r2, r3 };
098        GenVectorModul<BigRational> vfac = new GenVectorModul<BigRational>(fac, ba.length);
099        GenVector<BigRational> b = new GenVector<BigRational>(vfac, ba);
100        System.out.println("right hand side = " + b);
101
102        LinAlg<BigRational> lu = new LinAlg<BigRational>();
103        GenVector<BigRational> x = lu.solve(a, b);
104        System.out.println("solution = " + x);
105    }
106
107}