当前位置: 首页>>代码示例>>C#>>正文


C# Matrix.Solve方法代码示例

本文整理汇总了C#中Matrix.Solve方法的典型用法代码示例。如果您正苦于以下问题:C# Matrix.Solve方法的具体用法?C# Matrix.Solve怎么用?C# Matrix.Solve使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Matrix的用法示例。


在下文中一共展示了Matrix.Solve方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Square

        public void Square()
        {
            // A: [2,2]((0,1),(2,0))
            // > B: [2,2]((1,0),(0,-1))
            // > X: [2,2]((0,-0.5),(1,0))

            var matrixA = new Matrix(2, 2);

            matrixA[0, 0] = 0;
            matrixA[0, 1] = 1;

            matrixA[1, 0] = 2;
            matrixA[1, 1] = 0;

            var matrixB = new Matrix(2, 2);

            matrixB[0, 0] = 1;
            matrixB[0, 1] = 0;

            matrixB[1, 0] = 0;
            matrixB[1, 1] = -1;

            var solveMatrix = matrixA.Solve(matrixB);

            Assert.AreEqual(solveMatrix.Rows, 2);
            Assert.AreEqual(solveMatrix.Columns, 2);

            Assert.AreEqual(solveMatrix[0, 0], 0);
            Assert.AreEqual(solveMatrix[0, 1], -0.5);

            Assert.AreEqual(solveMatrix[1, 0], 1);
            Assert.AreEqual(solveMatrix[1, 1], 0);
        }
开发者ID:GTuritto,项目名称:ngenerics,代码行数:33,代码来源:Solve.cs

示例2: Rectangular

        public void Rectangular()
        {
            var matrixA = new Matrix(3, 2);

            matrixA[0, 0] = 1;
            matrixA[0, 1] = 2;

            matrixA[1, 0] = 3;
            matrixA[1, 1] = 4;

            matrixA[2, 0] = 4;
            matrixA[2, 1] = 2;

            var matrixB = new Matrix(3, 2);

            matrixB[0, 0] = 3;
            matrixB[0, 1] = 4;

            matrixB[1, 0] = 4;
            matrixB[1, 1] = 2;

            matrixB[2, 0] = 1;
            matrixB[2, 1] = 2;

            var solveMatrix = matrixA.Solve(matrixB);

            Assert.AreEqual(solveMatrix.Rows, 2);
            Assert.AreEqual(solveMatrix.Columns, 2);

            Assert.AreEqual(solveMatrix[0, 0], -0.514285714, 0.00000001);
            Assert.AreEqual(solveMatrix[0, 1], -0.057142857, 0.00000001);

            Assert.AreEqual(solveMatrix[1, 0], 1.4714285714, 0.00000001);
            Assert.AreEqual(solveMatrix[1, 1], 0.8857142857, 0.00000001);
        }
开发者ID:GTuritto,项目名称:ngenerics,代码行数:35,代码来源:Solve.cs

示例3: Main

    public static void Main(String[] args)
    {
        Matrix A = new Matrix(3, 3);
            A[0,0] = 2.0; A[0,1] = 1.0; A[0,2] = 2.0;
            A[1,0] = 1.0; A[1,1] = 4.0; A[1,2] = 0.0;
            A[2,0] = 2.0; A[2,1] = 0.0; A[2,2] = 8.0;

            Console.WriteLine("A = ");
            Console.WriteLine(A.ToString());

            Console.WriteLine("A.Determinant = " + A.Determinant);
            Console.WriteLine("A.Trace = " + A.Trace);
            Console.WriteLine("A.Norm1 = " + A.Norm1);
            Console.WriteLine("A.NormInfinite = " + A.InfinityNorm);
            Console.WriteLine("A.NormFrobenius = " + A.FrobeniusNorm);

            SingularValueDecomposition svg = new SingularValueDecomposition(A);
            Console.WriteLine("A.Norm2 = " + svg.Norm2);
            Console.WriteLine("A.Condition = " + svg.Condition);
            Console.WriteLine("A.Rank = " + svg.Rank);
            Console.WriteLine();

            Console.WriteLine("A.Transpose = ");
            Console.WriteLine(A.Transpose().ToString());

            Console.WriteLine("A.Inverse = ");
            Console.WriteLine(A.Inverse.ToString());

            Matrix I = A * A.Inverse;
            Console.WriteLine("I = A * A.Inverse = ");
            Console.WriteLine(I.ToString());

            Matrix B = new Matrix(3, 3);

            Console.WriteLine("B = ");
            B[0, 0] = 2.0; B[0, 1] = 0.0; B[0, 2] = 0.0;
            B[1, 0] = 1.0; B[1, 1] = 0.0; B[1, 2] = 0.0;
            B[2, 0] = 2.0; B[2, 1] = 0.0; B[2, 2] = 0.0;

            Console.WriteLine(B.ToString());

            Matrix X = A.Solve(B);

            Console.WriteLine("A.Solve(B)");
            Console.WriteLine(X.ToString());

            Matrix T = A * X;
            Console.WriteLine("A * A.Solve(B) = B = ");
            Console.WriteLine(T.ToString());

            Console.WriteLine("A = V * D * V");

            EigenvalueDecomposition eigen = new EigenvalueDecomposition(A);

            Console.WriteLine("D = ");
            Console.WriteLine(eigen.DiagonalMatrix.ToString());

            Console.WriteLine("lambda = ");
            foreach (double eigenvalue in eigen.RealEigenvalues)
            {
                Console.WriteLine(eigenvalue.ToString());
            }
            Console.WriteLine();

            Console.WriteLine("V = ");
            Console.WriteLine(eigen.EigenvectorMatrix);

            Console.WriteLine("V * D * V' = ");
            Console.WriteLine(eigen.EigenvectorMatrix * (eigen.DiagonalMatrix * eigen.EigenvectorMatrix.Transpose()));

            Console.WriteLine("A * V = ");
            Console.WriteLine(A * eigen.EigenvectorMatrix);

            Console.WriteLine("V * D = ");
            Console.WriteLine(eigen.EigenvectorMatrix * eigen.DiagonalMatrix);
    }
开发者ID:Walgri,项目名称:Mapack,代码行数:76,代码来源:Test.cs


注:本文中的Matrix.Solve方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。