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