# Roots of a function

Hello,

Given the following function

f(x)=1/(x+1)^(1/3)


I would like to assign the 3 roots of this function to three different functions; say f1(x),f2(x),f3(x). How can I do that with sage?

edit retag close merge delete

What do you mean by root ? Do you mean branch of the cube root ?

Sort by » oldest newest most voted

Assuming that, as suggested by tmonteil, you mean a function per cube root branch, the following one-liner :

sage: (f1,f2,f3)=tuple(((1/u)*1/(x+1)^3).function(x) for u in (x^3==1).roots(multiplicities=False))


does what you mean :

sage: [f1, f2, f3]
[x |--> 1/((x + 1)^3*(1/2*I*sqrt(3) - 1/2)),
x |--> 1/((x + 1)^3*(-1/2*I*sqrt(3) - 1/2)),
x |--> (x + 1)^(-3)]


But remember that the expression 1/(1+x)^(1/3) will evaluate to some cube root of x+1, with no specification of which one :

sage: ((x+1)^(1/3)).subs(x=7)
2
sage: ((x+1)^(1/3)).subs(x=-9)
2*(-1)^(1/3)
sage: ((x+1)^(1/3)).subs(x=-9).n()
1.00000000000000 + 1.73205080756888*I


Caveat emptor... HTH,

more