Example #1
0
        public void SolveMatrix()
        {
            ComplexFloatMatrix b = new ComplexFloatMatrix(3);

            b[0, 0] = 2;
            b[0, 1] = 2;
            b[0, 2] = 2;
            b[1, 0] = 13;
            b[1, 1] = 13;
            b[1, 2] = 13;
            b[2, 0] = 25;
            b[2, 1] = 25;
            b[2, 2] = 25;
            ComplexFloatMatrix x = cd.Solve(b);

            Assert.AreEqual(x[0, 0].Real, -4.500, TOLERENCE);
            Assert.AreEqual(x[0, 1].Real, -4.500, TOLERENCE);
            Assert.AreEqual(x[0, 2].Real, -4.500, TOLERENCE);
            Assert.AreEqual(x[1, 0].Real, 12.000, TOLERENCE);
            Assert.AreEqual(x[1, 1].Real, 12.000, TOLERENCE);
            Assert.AreEqual(x[1, 2].Real, 12.000, TOLERENCE);
            Assert.AreEqual(x[2, 0].Real, 8.333, TOLERENCE);
            Assert.AreEqual(x[2, 1].Real, 8.333, TOLERENCE);
            Assert.AreEqual(x[2, 2].Real, 8.333, TOLERENCE);
            Assert.AreEqual(x[0, 0].Imag, -6.500, TOLERENCE);
            Assert.AreEqual(x[0, 1].Imag, -6.500, TOLERENCE);
            Assert.AreEqual(x[0, 2].Imag, -6.500, TOLERENCE);
            Assert.AreEqual(x[1, 0].Imag, 1.000, TOLERENCE);
            Assert.AreEqual(x[1, 1].Imag, 1.000, TOLERENCE);
            Assert.AreEqual(x[1, 2].Imag, 1.000, TOLERENCE);
            Assert.AreEqual(x[2, 0].Imag, 0.000, TOLERENCE);
            Assert.AreEqual(x[2, 1].Imag, 0.000, TOLERENCE);
            Assert.AreEqual(x[2, 2].Imag, 0.000, TOLERENCE);


            b       = new ComplexFloatMatrix(3, 2);
            b[0, 0] = 2;
            b[0, 1] = 2;
            b[1, 0] = 13;
            b[1, 1] = 13;
            b[2, 0] = 25;
            b[2, 1] = 25;
            x       = cd.Solve(b);
            Assert.AreEqual(x[0, 0].Real, -4.500, TOLERENCE);
            Assert.AreEqual(x[0, 1].Real, -4.500, TOLERENCE);
            Assert.AreEqual(x[1, 0].Real, 12.000, TOLERENCE);
            Assert.AreEqual(x[1, 1].Real, 12.000, TOLERENCE);
            Assert.AreEqual(x[2, 0].Real, 8.333, TOLERENCE);
            Assert.AreEqual(x[2, 1].Real, 8.333, TOLERENCE);
            Assert.AreEqual(x[0, 0].Imag, -6.500, TOLERENCE);
            Assert.AreEqual(x[0, 1].Imag, -6.500, TOLERENCE);
            Assert.AreEqual(x[1, 0].Imag, 1.000, TOLERENCE);
            Assert.AreEqual(x[1, 1].Imag, 1.000, TOLERENCE);
            Assert.AreEqual(x[2, 0].Imag, 0.000, TOLERENCE);
            Assert.AreEqual(x[2, 1].Imag, 0.000, TOLERENCE);

            b       = new ComplexFloatMatrix(3, 4);
            b[0, 0] = 2;
            b[0, 1] = 2;
            b[0, 2] = 2;
            b[0, 3] = 2;
            b[1, 0] = 13;
            b[1, 1] = 13;
            b[1, 2] = 13;
            b[1, 3] = 13;
            b[2, 0] = 25;
            b[2, 1] = 25;
            b[2, 2] = 25;
            b[2, 3] = 25;
            x       = cd.Solve(b);
            Assert.AreEqual(x[0, 0].Real, -4.500, TOLERENCE);
            Assert.AreEqual(x[0, 1].Real, -4.500, TOLERENCE);
            Assert.AreEqual(x[0, 2].Real, -4.500, TOLERENCE);
            Assert.AreEqual(x[0, 3].Real, -4.500, TOLERENCE);
            Assert.AreEqual(x[1, 0].Real, 12.000, TOLERENCE);
            Assert.AreEqual(x[1, 1].Real, 12.000, TOLERENCE);
            Assert.AreEqual(x[1, 2].Real, 12.000, TOLERENCE);
            Assert.AreEqual(x[1, 3].Real, 12.000, TOLERENCE);
            Assert.AreEqual(x[2, 0].Real, 8.333, TOLERENCE);
            Assert.AreEqual(x[2, 1].Real, 8.333, TOLERENCE);
            Assert.AreEqual(x[2, 2].Real, 8.333, TOLERENCE);
            Assert.AreEqual(x[2, 3].Real, 8.333, TOLERENCE);
            Assert.AreEqual(x[0, 0].Imag, -6.500, TOLERENCE);
            Assert.AreEqual(x[0, 1].Imag, -6.500, TOLERENCE);
            Assert.AreEqual(x[0, 2].Imag, -6.500, TOLERENCE);
            Assert.AreEqual(x[0, 3].Imag, -6.500, TOLERENCE);
            Assert.AreEqual(x[1, 0].Imag, 1.000, TOLERENCE);
            Assert.AreEqual(x[1, 1].Imag, 1.000, TOLERENCE);
            Assert.AreEqual(x[1, 2].Imag, 1.000, TOLERENCE);
            Assert.AreEqual(x[1, 3].Imag, 1.000, TOLERENCE);
            Assert.AreEqual(x[2, 0].Imag, 0.000, TOLERENCE);
            Assert.AreEqual(x[2, 1].Imag, 0.000, TOLERENCE);
            Assert.AreEqual(x[2, 2].Imag, 0.000, TOLERENCE);
            Assert.AreEqual(x[2, 3].Imag, 0.000, TOLERENCE);
        }