在MathNet矩阵中表示分数

时间:2014-10-07 13:48:42

标签: mathnet

我正在尝试使用MathNet.Numerics库来解决一些矩阵计算。一切正常,双数字。但是现在我想将数字表示为分数,并希望将计算的答案作为分数得出。我怎么能这样做?

我目前正在做的是这个。

    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);

这些分数将转换为双打,最终答案将为双打。我希望在整个计算过程中保留分数。

谢谢!

1 个答案:

答案 0 :(得分:0)

您的代码示例中没有分数。表达式&#34; 1.0 / 2&#34;在C#中不是一个分数,而是另一种写双字的方式&#34; 0.5d&#34;。事实上,.Net框架中根本没有分数数据类型。

Math.NET Numerics的F#扩展提供了一个BigRational类型,它实现了基于BigIntegers的分数,但Math.NET Numerics也不支持此值类型的向量或矩阵。 Math.NET Symbolics可能在将来支持这一点,但它还没有。