Документация к Math.NET Symbolics


Rational.rationalize

1: 
val rationalize: _arg1 : Expression ->  Expression
CompiledName: Rationalize

Описание

Приводит дробь к общему знаменателю.


Пример

 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
let expr = "x/(2*(x+2)) + (x+1)*(x-2)" |> Infix.parseOrUndefined
let rat = expr |> Rational.rationalize

expr
|> Infix.format
|> printfn "%s"

rat
|> Infix.format
|> printfn "%s"

Вывод

1: 
2: 
(-2 + x)*(1 + x) + ((1/2)*x)/(2 + x)
((1/2)*(x + 2*(-2 + x)*(1 + x)*(2 + x)))/(2 + x)

Дополнительная информация

Название может ввести в заблуждение, что после применение функции, Rational.isRational вернет true. На самом деле это не так. Чтобы привести дробь к рациональному виду, нужно применить Rational.expand.