Function rationalize
Transform a rationalizable expression in a rational fraction.
If rational fraction is one variable polynomial then converts
the numerator and denominator in canonical form, with decreasing
exponents, returning the coefficients of numerator.
Syntax
rationalize(expr)
rationalize(expr, detailed)
rationalize(expr, scope)
rationalize(expr, scope, detailed)
Parameters
Parameter |
Type |
Description |
expr |
Node | string |
The expression to check if is a polynomial expression |
optional |
Object | boolean |
scope of expression or true for already evaluated rational expression at input |
detailed |
Boolean |
optional True if return an object, false if return expression node (default) |
Returns
Type |
Description |
Object | Node |
The rational polynomial of expr or an object {expression, numerator, denominator, variables, coefficients} , where expression is a Node with the node simplified expression, numerator is a Node with the simplified numerator of expression, denominator is a Node or boolean with the simplified denominator or false (if there is no denominator), variables is an array with variable names, and coefficients is an array with coefficients of numerator sorted by increased exponent {Expression Node} node simplified expression |
Throws
Examples
math.rationalize('sin(x)+y')
// Error: There is an unsolved function call
math.rationalize('2x/y - y/(x+1)')
// (2*x^2-y^2+2*x)/(x*y+y)
math.rationalize('(2x+1)^6')
// 64*x^6+192*x^5+240*x^4+160*x^3+60*x^2+12*x+1
math.rationalize('2x/( (2x-1) / (3x+2) ) - 5x/ ( (3x+4) / (2x^2-5) ) + 3')
// -20*x^4+28*x^3+104*x^2+6*x-12)/(6*x^2+5*x-4)
math.rationalize('x/(1-x)/(x-2)/(x-3)/(x-4) + 2x/ ( (1-2x)/(2-3x) )/ ((3-4x)/(4-5x) )') =
// (-30*x^7+344*x^6-1506*x^5+3200*x^4-3472*x^3+1846*x^2-381*x)/
// (-8*x^6+90*x^5-383*x^4+780*x^3-797*x^2+390*x-72)
math.rationalize('x+x+x+y',{y:1}) // 3*x+1
math.rationalize('x+x+x+y',{}) // 3*x+y
const ret = math.rationalize('x+x+x+y',{},true)
// ret.expression=3*x+y, ret.variables = ["x","y"]
const ret = math.rationalize('-2+5x^2',{},true)
// ret.expression=5*x^2-2, ret.variables = ["x"], ret.coefficients=[-2,0,5]
See also
simplify