1

我正在尝试使用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);

这些分数被转换成双打,最终的答案将是双打。我想在整个计算过程中保留分数。

4

1 回答 1

1

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

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

于 2014-10-22T15:59:31.703 回答