Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Sage wrongly suggests there are only trivial solutions, why?

I have a system of two quadratic equations which I want to solve. WolframAlpha shows me whole families of solution, but sage says there are only trivial solutions. The equations are

\begin{align} d\cdot\lvert\alpha\rvert^2 + \alpha^* \beta + \alpha\beta^* ==&0, \end{align} \begin{align} d\cdot\lvert\beta\rvert^2 + \alpha^* \beta + \alpha\beta^* ==&0, \end{align} where $d$ is constant and I want to solve for the complex numbers $\alpha, beta$

I have the following minimal working example

var('a,b,q')
assume(a, 'complex')
assume(b, 'complex')
assume(q, 'real')

eq(x,y) = q*norm(x) + conjugate(x)*y + x*conjugate(y)

solution = solve([eq(a,b) == 0, eq(b,a) == 0], [a,b])
polySolution = solve([eq(a,b) == 0, eq(b,a) == 0], [a,b], to_poly_solve=True)

and the output then is

sage: solution
[[a == 0, b == 0]]
sage: polySolution
[[a == 0, b == 0]]

which is simply not correct.

Now, as I said, I have found solutions with WolframAlpha, but the next candidate I have to compute gives 18 equations in 5 complex variables, which I cannot possibly solve with WA. Sage, again, tells me that there are only trivial solutions, but because of this smaller example presented here, I believe that that is wrong.

Does anyone know how to force sage to give solutions?