# why can't sage solve the equation x^n == 2*x ? This post is a wiki. Anyone with karma >750 is welcome to improve it.

sage: var('x n')
(x, n)
sage: solve(x^n==2*x,x)
[x == 1/2*x^n]


This is not what I expect.

Who can help?

Thanks.

edit retag close merge delete

One issue here is that after declaring that x and n are symbolic variables, Sage still does not know anything more than that about x and n. So, Sage does not know whether x and n are reals, integers, etc. Thus, we need to assume(n,'integer') and assume(x,'real'). Unfortunately, at this point, you still don't get a solution. Sage is calling Maxima to solve this equation, and I cannot get Maxima to solve it either. Ideas?

Sort by » oldest newest most voted

Since you named one variable n I assume you meant integer. But even this has infinitely many solutions! Sage can give them for specific n:

sage: [solve(x^n==2*x,x) for n in range(1,5)]
[[x == 0],
[x == 0, x == 2],
[x == -sqrt(2), x == sqrt(2), x == 0],
[x == 1/2*I*sqrt(3)*2^(1/3) - 1/2*2^(1/3), x == -1/2*I*sqrt(3)*2^(1/3) - 1/2*2^(1/3), x == 2^(1/3), x == 0]]

more