mirror of
https://github.com/josdejong/mathjs.git
synced 2025-12-08 19:46:04 +00:00
2.4 KiB
2.4 KiB
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 na object {Object} {Expression Node} expression: node simplified expression {Expression Node} numerator: simplified numerator of expression {Expression Node |
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]