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

これらの分数は double に変換され、最終的な答えは double になります。計算全体で分数を保持したい。

4

1 に答える 1

1

コード サンプルに分数はありません。C# の "1.0/2" という表現は分数ではなく、二重リテラル "0.5d" の別の書き方です。実際、.Net フレームワークには小数データ型はまったくありません。

Math.NET Numerics の F# 拡張機能は、BigInteger に基づく分数を実装する BigRational 型を提供しますが、Math.NET Numerics は、この値型のベクトルまたは行列もサポートしていません。Math.NET Symbolics は将来これをサポートする可能性がありますが、まだサポートされていません。

于 2014-10-22T15:59:31.703 に答える