C#使用mathnet學習筆記(三)


1.矩陣運算

            matrixA = 3.0 * matrixB    //數乘

            matrixA = vector * matrixB  /matrixA =  matrixB * vector  //向量乘

            matrixC = matrixA + / - / * matrixB   //矩陣加、減、乘

            resultM = (DenseMatrix)matrixA.PointwiseDivide(matrixB); //點乘

           上述所有運算符都有對應的函數,也可是利用函數進行運算,如“+”可以寫成   matrixC = (DenseMatrix)matrixA.Add(matrixB);或者matrixA.Add(matrixB, matrixC);

            matrixB = matrixA.Inverse()/Transpose()  //求逆和轉置

2.求解線性方程組

            對於一階線性方程組

     5*x + 2*y - 4*z = -7

             3*x - 7*y + 6*z = 38

             4*x + 1*y + 5*z = 43

             可以如下求解:

              var matrixA = new DenseMatrix(new[,] { { 5.00, 2.00, -4.00 }, { 3.00, -7.00, 6.00 }, { 4.00, 1.00, 5.00 } });

              var vectorB = new DenseVector(new[] { -7.0, 38.0, 43.0 });

 

               var resultX = matrixA.LU().Solve(vectorB);

或者

              resultX = matrixA.QR().Solve(vectorB);

或者

              matrixA.Svd(true).Solve(vectorB, resultX);

或者

              matrixA.GramSchmidt().Solve(vectorB, resultX);

3.矩陣秩、行列式、trace和范數

         matrix.Determinant()/Rank()/ConditionNumber()/Trace()   //行列式/秩/條件數/trace

        matrix.L1Norm()/L2Norm()/FrobeniusNorm()/InfinityNorm()   //范數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM