2014-10-07 101 views
1

我正在嘗試使用MathNet.Numerics庫解決一些矩陣計算。這一切工作正常,雙數。但是現在我想將數字表示爲分數,並希望以分數的形式獲得計算結果。我怎樣才能做到這一點?在MathNet矩陣中表示分數

我現在正在做的是這樣的。

var M = Matrix<double>.Build; 
    var V = Vector<double>.Build; 

    double [,] x1 = { 
     {0,  0,  0}, 
     {1.0/2, 0 , 0}, 
     {1.0/2, 1.0, 1.0} 
    }; 

    var m = M.DenseOfArray(x1); 

這些分數被轉換成雙打,最終答案將在雙打中。我想在整個計算過程中保留分數。

謝謝!

回答

0

代碼示例中沒有小數。 C#中的表達式「1.0/2」不是分數,而是另一種編寫雙字「0.5d」的方法。事實上,.Net框架中根本沒有零件數據類型。

Math.NET Numerics的F#擴展提供了BigRational類型,它基於BigIntegers實現分數,但Math.NET Numerics不支持該值類型的向量或矩陣。 Math.NET Symbolics未來可能會支持這一功能,但目前還沒有。