我正在尝试使用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);
这些分数将转换为双打,最终答案将为双打。我希望在整个计算过程中保留分数。
谢谢!
答案 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可能在将来支持这一点,但它还没有。