1 | initial version |
The problem is that "conjugate" isn't C-linear, so the system of equations you are presenting isn't polynomial. Conjugation is R-linear, so if you write everything out in terms of real and imaginary parts, you're fine:
sage: var("x1,x2,y1,y2,d")
(x1, x2, y1, y2, d)
sage: alpha=x1+i*y1
sage: beta=x2+i*y2
sage: alpha_star=x1-i*y1
sage: beta_star=x2-i*y2
sage: Nalpha=alpha*alpha_star
sage: Nbeta=beta*beta_star
sage: eq1=d*Nalpha+alpha_star*beta+alpha*beta_star
sage: eq2=d*Nbeta+alpha_star*beta+alpha*beta_star
In order to solve these equations, you should split them in real and imaginary parts as well, but in this case the equations are already real:
sage: eq1.expand()
d*x1^2 + d*y1^2 + 2*x1*x2 + 2*y1*y2
sage: eq2.expand()
d*x2^2 + d*y2^2 + 2*x1*x2 + 2*y1*y2
Now you can just solve. To get better performance you might want to look into using polynomial rings instead.