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()   //范数

转载于:https://www.cnblogs.com/ice-daigua/archive/2012/10/10/2718279.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值