Ask Your Question

Numerical approximation of coefficients in fractions

asked 2018-07-25 20:50:29 -0500

Isamu gravatar image

updated 2018-07-26 01:50:47 -0500

I am aware that for expressions in the type $$eq = c_0 + c_1x + c_2x^2...$$ the coefficients of x can be expressed as decimals by doing eq.polinomial(RR) however, I noticed that if it is in the form $$eq = \dfrac{c_0 + c_1x}{c_2 + c_3x}$$ or in any form where it is impossible to express as $c_0 + c_1x^n$ where n is some power of x, the eq.polinomial(RR) only returns an error giving TypeError: fraction must have unit denominator. How can I approximate $eq = \dfrac{c_0 + c_1x}{c_2 + c_3x}$ where $c_0, c_1, c_2, c_3$ becomes some decimals? I am aware that $\dfrac{c_0 + c_1x}{c_2 + c_3x}$ is not a polynomial however I do not know what it is.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2018-07-26 02:56:33 -0500

updated 2018-07-26 03:02:24 -0500

The result of expr.polynomial(RR) is a polynomial ring element. Dividing two polynomials gives an element of the fraction field of the polynomial ring (which are called rational functions). You can do e.g.

sage: expr = (pi + e*x)/(e + pi*x)
sage: expr.numerator().polynomial(RR) / expr.denominator().polynomial(RR)
(2.71828182845905*x + 3.14159265358979)/(3.14159265358979*x + 2.71828182845905)

Better yet, you can construct the fraction field yourself so you can use conversion:

sage: K = FractionField(PolynomialRing(RR, 'x'))
sage: K(expr)
(2.71828182845905*x + 3.14159265358979)/(3.14159265358979*x + 2.71828182845905)
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2018-07-25 20:49:12 -0500

Seen: 41 times

Last updated: Jul 26