2014-10-07 4 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"는 분수가 아니며 double 리터럴 "0.5d"를 작성하는 또 다른 방법입니다. 실제로 .Net 프레임 워크에는 소수 데이터 유형이 없습니다.

Math.NET Numerics의 F # 확장은 BigIntegers를 기반으로하는 분수를 구현하는 BigRational 유형을 제공하지만 Math.NET Numerics는이 값 유형의 벡터 또는 행렬도 지원하지 않습니다. Math.NET Symbolics는 앞으로 이것을 지원할지도 모르지만 아직 없습니다.