rtoy / maxima

A Clone of Maxima's repo
Other
0 stars 0 forks source link

`solve` Doesn't Solve Equation Guaranteed to Have Solution #2893

Open rtoy opened 4 months ago

rtoy commented 4 months ago

Imported from SourceForge on 2024-07-07 00:17:55 Created by adamhendry on 2021-10-07 16:46:49 Original: https://sourceforge.net/p/maxima/bugs/3873


I am attempting to find the general equation for common tangents to two ellipses:

$$
\left\{
\begin{array}{c} \frac{(x-h)^2}{a^2}+\frac{(y-k)^2}{b^2}-1=0 \\ \frac{(x-p)^2}{c^2}+\frac{(y-q)^2}{d^2}-1=0 \\ \end{array} \right. \tag{1}
$$

However, the solve function of Maxima CAS does not give me an answer (it just runs and hangs). Am I doing something wrong?

The equations are as follows:

(%i1) G1 : (b^4*c^4-2*a^2*b^2*c^2*d^2+a^4*d^4+2*b^2*c^2*d^2*h^2-2*a^2*d^4*h^2+d^4*h^4-2*b^2*c^4*k^2+2*a^2*c^2*d^2*k^2+2*c^2*d^2*h^2*k^2+c^4*k^4-2*b^4*c^2*p^2+2*a^2*b^2*d^2*p^2-2*b^2*d^2*h^2*p^2+4*b^2*c^2*k^2*p^2-2*a^2*d^2*k^2*p^2-2*d^2*h^2*k^2*p^2-2*c^2*k^4*p^2+b^4*p^4-2*b^2*k^2*p^4+k^4*p^4-4*b^2*c^2*h*k*p*q-4*a^2*d^2*h*k*p*q+4*d^2*h^3*k*p*q+4*c^2*h*k^3*p*q+4*b^2*h*k*p^3*q-4*h*k^3*p^3*q+2*a^2*b^2*c^2*q^2-2*a^4*d^2*q^2-2*b^2*c^2*h^2*q^2+4*a^2*d^2*h^2*q^2-2*d^2*h^4*q^2-2*a^2*c^2*k^2*q^2-2*c^2*h^2*k^2*q^2+2*a^2*b^2*p^2*q^2-2*b^2*h^2*p^2*q^2-2*a^2*k^2*p^2*q^2+6*h^2*k^2*p^2*q^2+4*a^2*h*k*p*q^3-4*h^3*k*p*q^3+a^4*q^4-2*a^2*h^2*q^4+h^4*q^4)*y^4+(-4*b^2*c^4*k+4*a^2*c^2*d^2*k+4*c^2*d^2*h^2*k+4*c^4*k^3-4*b^2*c^2*h*k*p-4*a^2*d^2*h*k*p+4*d^2*h^3*k*p+4*c^2*h*k^3*p+8*b^2*c^2*k*p^2-4*a^2*d^2*k*p^2-4*d^2*h^2*k*p^2-8*c^2*k^3*p^2+4*b^2*h*k*p^3-4*h*k^3*p^3-4*b^2*k*p^4+4*k^3*p^4+4*a^2*b^2*c^2*q-4*a^4*d^2*q-4*b^2*c^2*h^2*q+8*a^2*d^2*h^2*q-4*d^2*h^4*q-4*a^2*c^2*k^2*q-4*c^2*h^2*k^2*q-4*b^2*c^2*h*p*q-4*a^2*d^2*h*p*q+4*d^2*h^3*p*q+12*c^2*h*k^2*p*q+4*a^2*b^2*p^2*q-4*b^2*h^2*p^2*q-4*a^2*k^2*p^2*q+12*h^2*k^2*p^2*q+4*b^2*h*p^3*q-12*h*k^2*p^3*q-4*a^2*c^2*k*q^2-4*c^2*h^2*k*q^2+12*a^2*h*k*p*q^2-12*h^3*k*p*q^2-4*a^2*k*p^2*q^2+12*h^2*k*p^2*q^2+4*a^4*q^3-8*a^2*h^2*q^3+4*h^4*q^3+4*a^2*h*p*q^3-4*h^3*p*q^3)*y^3+(2*a^2*b^2*c^2-2*b^2*c^4-2*a^4*d^2+2*a^2*c^2*d^2-2*b^2*c^2*h^2+4*a^2*d^2*h^2+2*c^2*d^2*h^2-2*d^2*h^4-2*a^2*c^2*k^2+6*c^4*k^2-2*c^2*h^2*k^2-4*b^2*c^2*h*p-4*a^2*d^2*h*p+4*d^2*h^3*p+12*c^2*h*k^2*p+2*a^2*b^2*p^2+4*b^2*c^2*p^2-2*a^2*d^2*p^2-2*b^2*h^2*p^2-2*d^2*h^2*p^2-2*a^2*k^2*p^2-12*c^2*k^2*p^2+6*h^2*k^2*p^2+4*b^2*h*p^3-12*h*k^2*p^3-2*b^2*p^4+6*k^2*p^4-8*a^2*c^2*k*q-8*c^2*h^2*k*q+12*a^2*h*k*p*q+12*c^2*h*k*p*q-12*h^3*k*p*q-8*a^2*k*p^2*q+24*h^2*k*p^2*q-12*h*k*p^3*q+6*a^4*q^2-2*a^2*c^2*q^2-12*a^2*h^2*q^2-2*c^2*h^2*q^2+6*h^4*q^2+12*a^2*h*p*q^2-12*h^3*p*q^2-2*a^2*p^2*q^2+6*h^2*p^2*q^2)*y^2+(-4*a^2*c^2*k+4*c^4*k-4*c^2*h^2*k+4*a^2*h*k*p+12*c^2*h*k*p-4*h^3*k*p-4*a^2*k*p^2-8*c^2*k*p^2+12*h^2*k*p^2-12*h*k*p^3+4*k*p^4+4*a^4*q-4*a^2*c^2*q-8*a^2*h^2*q-4*c^2*h^2*q+4*h^4*q+12*a^2*h*p*q+4*c^2*h*p*q-12*h^3*p*q-4*a^2*p^2*q+12*h^2*p^2*q-4*h*p^3*q)*y+a^4-2*a^2*c^2+c^4-2*a^2*h^2-2*c^2*h^2+h^4+4*a^2*h*p+4*c^2*h*p-4*h^3*p-2*a^2*p^2-2*c^2*p^2+6*h^2*p^2-4*h*p^3+p^4$

(%i2) H : (2*b^2*c^6*h^2-2*a^2*c^4*d^2*h^2+2*c^4*d^2*h^4+2*a^2*c^4*h^2*k^2-2*c^4*h^4*k^2-4*a^2*b^2*c^4*h*p+4*a^4*c^2*d^2*h*p+4*b^2*c^4*h^3*p-8*a^2*c^2*d^2*h^3*p+4*c^2*d^2*h^5*p+2*a^4*b^2*c^2*p^2-2*a^6*d^2*p^2-4*a^2*b^2*c^2*h^2*p^2-6*b^2*c^4*h^2*p^2+6*a^4*d^2*h^2*p^2+4*a^2*c^2*d^2*h^2*p^2+2*b^2*c^2*h^4*p^2-6*a^2*d^2*h^4*p^2-4*c^2*d^2*h^4*p^2+2*d^2*h^6*p^2-2*a^4*c^2*k^2*p^2+2*c^2*h^4*k^2*p^2+8*a^2*b^2*c^2*h*p^3-4*a^4*d^2*h*p^3-8*b^2*c^2*h^3*p^3+8*a^2*d^2*h^3*p^3-4*d^2*h^5*p^3-2*a^4*b^2*p^4+4*a^2*b^2*h^2*p^4+6*b^2*c^2*h^2*p^4-2*a^2*d^2*h^2*p^4-2*b^2*h^4*p^4+2*d^2*h^4*p^4+2*a^4*k^2*p^4-2*a^2*h^2*k^2*p^4-4*a^2*b^2*h*p^5+4*b^2*h^3*p^5-2*b^2*h^2*p^6-4*a^2*c^4*h^2*k*q+4*c^4*h^4*k*q+4*a^4*c^2*k*p^2*q-4*c^2*h^4*k*p^2*q-4*a^4*k*p^4*q+4*a^2*h^2*k*p^4*q+2*a^2*c^4*h^2*q^2-2*c^4*h^4*q^2-2*a^4*c^2*p^2*q^2+2*c^2*h^4*p^2*q^2+2*a^4*p^4*q^2-2*a^2*h^2*p^4*q^2)*x+(b^4*c^6*h*k-2*a^2*b^2*c^4*d^2*h*k+a^4*c^2*d^4*h*k+2*b^2*c^4*d^2*h^3*k-2*a^2*c^2*d^4*h^3*k+c^2*d^4*h^5*k-2*b^2*c^6*h*k^3+2*a^2*c^4*d^2*h*k^3+2*c^4*d^2*h^3*k^3+c^6*h*k^5-3*b^4*c^4*h*k*p^2+4*a^2*b^2*c^2*d^2*h*k*p^2-a^4*d^4*h*k*p^2-4*b^2*c^2*d^2*h^3*k*p^2+2*a^2*d^4*h^3*k*p^2-d^4*h^5*k*p^2+6*b^2*c^4*h*k^3*p^2-4*a^2*c^2*d^2*h*k^3*p^2-4*c^2*d^2*h^3*k^3*p^2-3*c^4*h*k^5*p^2+3*b^4*c^2*h*k*p^4-2*a^2*b^2*d^2*h*k*p^4+2*b^2*d^2*h^3*k*p^4-6*b^2*c^2*h*k^3*p^4+2*a^2*d^2*h*k^3*p^4+2*d^2*h^3*k^3*p^4+3*c^2*h*k^5*p^4-b^4*h*k*p^6+2*b^2*h*k^3*p^6-h*k^5*p^6-a^2*b^4*c^4*p*q+2*a^4*b^2*c^2*d^2*p*q-a^6*d^4*p*q+b^4*c^4*h^2*p*q-4*a^2*b^2*c^2*d^2*h^2*p*q+3*a^4*d^4*h^2*p*q+2*b^2*c^2*d^2*h^4*p*q-3*a^2*d^4*h^4*p*q+d^4*h^6*p*q+2*a^2*b^2*c^4*k^2*p*q-2*a^4*c^2*d^2*k^2*p*q-6*b^2*c^4*h^2*k^2*p*q-4*a^2*c^2*d^2*h^2*k^2*p*q+6*c^2*d^2*h^4*k^2*p*q-a^2*c^4*k^4*p*q+5*c^4*h^2*k^4*p*q+2*a^2*b^4*c^2*p^3*q-2*a^4*b^2*d^2*p^3*q-2*b^4*c^2*h^2*p^3*q+4*a^2*b^2*d^2*h^2*p^3*q-2*b^2*d^2*h^4*p^3*q-4*a^2*b^2*c^2*k^2*p^3*q+2*a^4*d^2*k^2*p^3*q+12*b^2*c^2*h^2*k^2*p^3*q+4*a^2*d^2*h^2*k^2*p^3*q-6*d^2*h^4*k^2*p^3*q+2*a^2*c^2*k^4*p^3*q-10*c^2*h^2*k^4*p^3*q-a^2*b^4*p^5*q+b^4*h^2*p^5*q+2*a^2*b^2*k^2*p^5*q-6*b^2*h^2*k^2*p^5*q-a^2*k^4*p^5*q+5*h^2*k^4*p^5*q+2*a^2*b^2*c^4*h*k*q^2-2*a^4*c^2*d^2*h*k*q^2-2*b^2*c^4*h^3*k*q^2+4*a^2*c^2*d^2*h^3*k*q^2-2*c^2*d^2*h^5*k*q^2-2*a^2*c^4*h*k^3*q^2-2*c^4*h^3*k^3*q^2+4*a^2*b^2*c^2*h*k*p^2*q^2+6*a^4*d^2*h*k*p^2*q^2-4*b^2*c^2*h^3*k*p^2*q^2-12*a^2*d^2*h^3*k*p^2*q^2+6*d^2*h^5*k*p^2*q^2-4*a^2*c^2*h*k^3*p^2*q^2+12*c^2*h^3*k^3*p^2*q^2-6*a^2*b^2*h*k*p^4*q^2+6*b^2*h^3*k*p^4*q^2+6*a^2*h*k^3*p^4*q^2-10*h^3*k^3*p^4*q^2-2*a^4*b^2*c^2*p*q^3+2*a^6*d^2*p*q^3+4*a^2*b^2*c^2*h^2*p*q^3-6*a^4*d^2*h^2*p*q^3-2*b^2*c^2*h^4*p*q^3+6*a^2*d^2*h^4*p*q^3-2*d^2*h^6*p*q^3+2*a^4*c^2*k^2*p*q^3+4*a^2*c^2*h^2*k^2*p*q^3-6*c^2*h^4*k^2*p*q^3-2*a^4*b^2*p^3*q^3+4*a^2*b^2*h^2*p^3*q^3-2*b^2*h^4*p^3*q^3+2*a^4*k^2*p^3*q^3-12*a^2*h^2*k^2*p^3*q^3+10*h^4*k^2*p^3*q^3+a^4*c^2*h*k*q^4-2*a^2*c^2*h^3*k*q^4+c^2*h^5*k*q^4-5*a^4*h*k*p^2*q^4+10*a^2*h^3*k*p^2*q^4-5*h^5*k*p^2*q^4-a^6*p*q^5+3*a^4*h^2*p*q^5-3*a^2*h^4*p*q^5+h^6*p*q^5)*y^3+(-b^4*c^6*h+2*a^2*b^2*c^4*d^2*h-a^4*c^2*d^4*h-2*b^2*c^4*d^2*h^3+2*a^2*c^2*d^4*h^3-c^2*d^4*h^5-2*b^2*c^6*h*k^2+2*a^2*c^4*d^2*h*k^2+2*c^4*d^2*h^3*k^2+3*c^6*h*k^4+a^2*b^4*c^4*p-2*a^4*b^2*c^2*d^2*p+a^6*d^4*p-b^4*c^4*h^2*p+4*a^2*b^2*c^2*d^2*h^2*p-3*a^4*d^4*h^2*p-2*b^2*c^2*d^2*h^4*p+3*a^2*d^4*h^4*p-d^4*h^6*p-2*a^2*b^2*c^4*k^2*p+2*a^4*c^2*d^2*k^2*p-2*b^2*c^4*h^2*k^2*p-4*a^2*c^2*d^2*h^2*k^2*p+2*c^2*d^2*h^4*k^2*p+a^2*c^4*k^4*p+3*c^4*h^2*k^4*p+3*b^4*c^4*h*p^2-4*a^2*b^2*c^2*d^2*h*p^2+a^4*d^4*h*p^2+4*b^2*c^2*d^2*h^3*p^2-2*a^2*d^4*h^3*p^2+d^4*h^5*p^2+6*b^2*c^4*h*k^2*p^2-4*a^2*c^2*d^2*h*k^2*p^2-4*c^2*d^2*h^3*k^2*p^2-9*c^4*h*k^4*p^2-2*a^2*b^4*c^2*p^3+2*a^4*b^2*d^2*p^3+2*b^4*c^2*h^2*p^3-4*a^2*b^2*d^2*h^2*p^3+2*b^2*d^2*h^4*p^3+4*a^2*b^2*c^2*k^2*p^3-2*a^4*d^2*k^2*p^3+4*b^2*c^2*h^2*k^2*p^3+4*a^2*d^2*h^2*k^2*p^3-2*d^2*h^4*k^2*p^3-2*a^2*c^2*k^4*p^3-6*c^2*h^2*k^4*p^3-3*b^4*c^2*h*p^4+2*a^2*b^2*d^2*h*p^4-2*b^2*d^2*h^3*p^4-6*b^2*c^2*h*k^2*p^4+2*a^2*d^2*h*k^2*p^4+2*d^2*h^3*k^2*p^4+9*c^2*h*k^4*p^4+a^2*b^4*p^5-b^4*h^2*p^5-2*a^2*b^2*k^2*p^5-2*b^2*h^2*k^2*p^5+a^2*k^4*p^5+3*h^2*k^4*p^5+b^4*h*p^6+2*b^2*h*k^2*p^6-3*h*k^4*p^6+4*a^2*b^2*c^4*h*k*q-4*a^4*c^2*d^2*h*k*q-4*b^2*c^4*h^3*k*q+8*a^2*c^2*d^2*h^3*k*q-4*c^2*d^2*h^5*k*q-4*a^2*c^4*h*k^3*q-4*c^4*h^3*k^3*q+4*a^2*b^2*c^4*k*p*q-4*a^4*c^2*d^2*k*p*q-4*b^2*c^4*h^2*k*p*q+4*c^2*d^2*h^4*k*p*q-4*a^2*c^4*k^3*p*q+12*c^4*h^2*k^3*p*q+4*a^4*d^2*h*k*p^2*q-8*a^2*d^2*h^3*k*p^2*q+4*d^2*h^5*k*p^2*q+16*c^2*h^3*k^3*p^2*q-8*a^2*b^2*c^2*k*p^3*q+4*a^4*d^2*k*p^3*q+8*b^2*c^2*h^2*k*p^3*q-4*d^2*h^4*k*p^3*q+8*a^2*c^2*k^3*p^3*q-24*c^2*h^2*k^3*p^3*q-4*a^2*b^2*h*k*p^4*q+4*b^2*h^3*k*p^4*q+4*a^2*h*k^3*p^4*q-12*h^3*k^3*p^4*q+4*a^2*b^2*k*p^5*q-4*b^2*h^2*k*p^5*q-4*a^2*k^3*p^5*q+12*h^2*k^3*p^5*q-2*a^2*b^2*c^4*h*q^2+2*a^4*c^2*d^2*h*q^2+2*b^2*c^4*h^3*q^2-4*a^2*c^2*d^2*h^3*q^2+2*c^2*d^2*h^5*q^2-2*a^2*c^4*h*k^2*q^2-2*c^4*h^3*k^2*q^2-2*a^4*b^2*c^2*p*q^2+2*a^6*d^2*p*q^2+4*a^2*b^2*c^2*h^2*p*q^2-6*a^4*d^2*h^2*p*q^2-2*b^2*c^2*h^4*p*q^2+6*a^2*d^2*h^4*p*q^2-2*d^2*h^6*p*q^2+2*a^4*c^2*k^2*p*q^2+12*a^2*c^2*h^2*k^2*p*q^2-14*c^2*h^4*k^2*p*q^2+4*a^2*b^2*c^2*h*p^2*q^2+2*a^4*d^2*h*p^2*q^2-4*b^2*c^2*h^3*p^2*q^2-4*a^2*d^2*h^3*p^2*q^2+2*d^2*h^5*p^2*q^2-12*a^2*c^2*h*k^2*p^2*q^2+20*c^2*h^3*k^2*p^2*q^2-2*a^4*b^2*p^3*q^2+4*a^2*b^2*h^2*p^3*q^2-2*b^2*h^4*p^3*q^2+2*a^4*k^2*p^3*q^2-20*a^2*h^2*k^2*p^3*q^2+18*h^4*k^2*p^3*q^2-2*a^2*b^2*h*p^4*q^2+2*b^2*h^3*p^4*q^2+14*a^2*h*k^2*p^4*q^2-18*h^3*k^2*p^4*q^2+4*a^4*c^2*h*k*q^3-8*a^2*c^2*h^3*k*q^3+4*c^2*h^5*k*q^3+4*a^4*c^2*k*p*q^3-4*c^2*h^4*k*p*q^3-12*a^4*h*k*p^2*q^3+24*a^2*h^3*k*p^2*q^3-12*h^5*k*p^2*q^3+4*a^4*k*p^3*q^3-16*a^2*h^2*k*p^3*q^3+12*h^4*k*p^3*q^3-a^4*c^2*h*q^4+2*a^2*c^2*h^3*q^4-c^2*h^5*q^4-3*a^6*p*q^4+9*a^4*h^2*p*q^4-9*a^2*h^4*p*q^4+3*h^6*p*q^4-3*a^4*h*p^2*q^4+6*a^2*h^3*p^2*q^4-3*h^5*p^2*q^4)*y^2+(a^2*b^2*c^4*h*k+b^2*c^6*h*k-a^4*c^2*d^2*h*k-a^2*c^4*d^2*h*k-b^2*c^4*h^3*k+2*a^2*c^2*d^2*h^3*k+c^4*d^2*h^3*k-c^2*d^2*h^5*k-a^2*c^4*h*k^3+3*c^6*h*k^3-3*c^4*h^3*k^3-2*a^2*b^2*c^4*k*p+2*a^4*c^2*d^2*k*p+2*b^2*c^4*h^2*k*p-4*a^2*c^2*d^2*h^2*k*p+2*c^2*d^2*h^4*k*p+2*a^2*c^4*k^3*p+6*c^4*h^2*k^3*p-2*a^2*b^2*c^2*h*k*p^2-3*b^2*c^4*h*k*p^2+a^4*d^2*h*k*p^2+2*a^2*c^2*d^2*h*k*p^2+2*b^2*c^2*h^3*k*p^2-2*a^2*d^2*h^3*k*p^2-2*c^2*d^2*h^3*k*p^2+d^2*h^5*k*p^2+2*a^2*c^2*h*k^3*p^2-9*c^4*h*k^3*p^2+6*c^2*h^3*k^3*p^2+4*a^2*b^2*c^2*k*p^3-2*a^4*d^2*k*p^3-4*b^2*c^2*h^2*k*p^3+4*a^2*d^2*h^2*k*p^3-2*d^2*h^4*k*p^3-4*a^2*c^2*k^3*p^3-12*c^2*h^2*k^3*p^3+a^2*b^2*h*k*p^4+3*b^2*c^2*h*k*p^4-a^2*d^2*h*k*p^4-b^2*h^3*k*p^4+d^2*h^3*k*p^4-a^2*h*k^3*p^4+9*c^2*h*k^3*p^4-3*h^3*k^3*p^4-2*a^2*b^2*k*p^5+2*b^2*h^2*k*p^5+2*a^2*k^3*p^5+6*h^2*k^3*p^5-b^2*h*k*p^6-3*h*k^3*p^6-2*a^2*b^2*c^4*h*q+2*a^4*c^2*d^2*h*q+2*b^2*c^4*h^3*q-4*a^2*c^2*d^2*h^3*q+2*c^2*d^2*h^5*q-6*a^2*c^4*h*k^2*q-2*c^4*h^3*k^2*q+a^4*b^2*c^2*p*q+a^2*b^2*c^4*p*q-a^6*d^2*p*q-a^4*c^2*d^2*p*q-2*a^2*b^2*c^2*h^2*p*q-b^2*c^4*h^2*p*q+3*a^4*d^2*h^2*p*q+2*a^2*c^2*d^2*h^2*p*q+b^2*c^2*h^4*p*q-3*a^2*d^2*h^4*p*q-c^2*d^2*h^4*p*q+d^2*h^6*p*q-a^4*c^2*k^2*p*q-5*a^2*c^4*k^2*p*q+10*a^2*c^2*h^2*k^2*p*q+9*c^4*h^2*k^2*p*q-9*c^2*h^4*k^2*p*q+4*a^2*b^2*c^2*h*p^2*q-2*a^4*d^2*h*p^2*q-4*b^2*c^2*h^3*p^2*q+4*a^2*d^2*h^3*p^2*q-2*d^2*h^5*p^2*q-4*a^2*c^2*h*k^2*p^2*q+20*c^2*h^3*k^2*p^2*q-a^4*b^2*p^3*q-2*a^2*b^2*c^2*p^3*q+a^4*d^2*p^3*q+2*a^2*b^2*h^2*p^3*q+2*b^2*c^2*h^2*p^3*q-2*a^2*d^2*h^2*p^3*q-b^2*h^4*p^3*q+d^2*h^4*p^3*q+a^4*k^2*p^3*q+10*a^2*c^2*k^2*p^3*q-10*a^2*h^2*k^2*p^3*q-18*c^2*h^2*k^2*p^3*q+9*h^4*k^2*p^3*q-2*a^2*b^2*h*p^4*q+2*b^2*h^3*p^4*q+10*a^2*h*k^2*p^4*q-18*h^3*k^2*p^4*q+a^2*b^2*p^5*q-b^2*h^2*p^5*q-5*a^2*k^2*p^5*q+9*h^2*k^2*p^5*q+5*a^4*c^2*h*k*q^2+a^2*c^4*h*k*q^2-10*a^2*c^2*h^3*k*q^2-c^4*h^3*k*q^2+5*c^2*h^5*k*q^2+6*a^4*c^2*k*p*q^2+4*a^2*c^2*h^2*k*p*q^2-10*c^2*h^4*k*p*q^2-9*a^4*h*k*p^2*q^2-10*a^2*c^2*h*k*p^2*q^2+18*a^2*h^3*k*p^2*q^2+10*c^2*h^3*k*p^2*q^2-9*h^5*k*p^2*q^2+2*a^4*k*p^3*q^2-20*a^2*h^2*k*p^3*q^2+18*h^4*k*p^3*q^2+9*a^2*h*k*p^4*q^2-9*h^3*k*p^4*q^2-2*a^4*c^2*h*q^3+4*a^2*c^2*h^3*q^3-2*c^2*h^5*q^3-3*a^6*p*q^3+a^4*c^2*p*q^3+9*a^4*h^2*p*q^3-2*a^2*c^2*h^2*p*q^3-9*a^2*h^4*p*q^3+c^2*h^4*p*q^3+3*h^6*p*q^3-6*a^4*h*p^2*q^3+12*a^2*h^3*p^2*q^3-6*h^5*p^2*q^3+3*a^4*p^3*q^3-6*a^2*h^2*p^3*q^3+3*h^4*p^3*q^3)*y-a^2*b^2*c^4*h+b^2*c^6*h+a^4*c^2*d^2*h-a^2*c^4*d^2*h+b^2*c^4*h^3-2*a^2*c^2*d^2*h^3+c^4*d^2*h^3+c^2*d^2*h^5-a^2*c^4*h*k^2+c^6*h*k^2-3*c^4*h^3*k^2+a^4*b^2*c^2*p-a^2*b^2*c^4*p-a^6*d^2*p+a^4*c^2*d^2*p-2*a^2*b^2*c^2*h^2*p+b^2*c^4*h^2*p+3*a^4*d^2*h^2*p-2*a^2*c^2*d^2*h^2*p+b^2*c^2*h^4*p-3*a^2*d^2*h^4*p+c^2*d^2*h^4*p+d^2*h^6*p-a^4*c^2*k^2*p+a^2*c^4*k^2*p+2*a^2*c^2*h^2*k^2*p+3*c^4*h^2*k^2*p-c^2*h^4*k^2*p+2*a^2*b^2*c^2*h*p^2-3*b^2*c^4*h*p^2-a^4*d^2*h*p^2+2*a^2*c^2*d^2*h*p^2-2*b^2*c^2*h^3*p^2+2*a^2*d^2*h^3*p^2-2*c^2*d^2*h^3*p^2-d^2*h^5*p^2+2*a^2*c^2*h*k^2*p^2-3*c^4*h*k^2*p^2+6*c^2*h^3*k^2*p^2-a^4*b^2*p^3+2*a^2*b^2*c^2*p^3-a^4*d^2*p^3+2*a^2*b^2*h^2*p^3-2*b^2*c^2*h^2*p^3+2*a^2*d^2*h^2*p^3-b^2*h^4*p^3-d^2*h^4*p^3+a^4*k^2*p^3-2*a^2*c^2*k^2*p^3-2*a^2*h^2*k^2*p^3-6*c^2*h^2*k^2*p^3+h^4*k^2*p^3-a^2*b^2*h*p^4+3*b^2*c^2*h*p^4-a^2*d^2*h*p^4+b^2*h^3*p^4+d^2*h^3*p^4-a^2*h*k^2*p^4+3*c^2*h*k^2*p^4-3*h^3*k^2*p^4-a^2*b^2*p^5+b^2*h^2*p^5+a^2*k^2*p^5+3*h^2*k^2*p^5-b^2*h*p^6-h*k^2*p^6+2*a^4*c^2*h*k*q-2*a^2*c^4*h*k*q-4*a^2*c^2*h^3*k*q+2*c^4*h^3*k*q+2*c^2*h^5*k*q+2*a^4*c^2*k*p*q-2*a^2*c^4*k*p*q+4*a^2*c^2*h^2*k*p*q+2*c^4*h^2*k*p*q-6*c^2*h^4*k*p*q-2*a^4*h*k*p^2*q-4*a^2*c^2*h*k*p^2*q+4*a^2*h^3*k*p^2*q+4*c^2*h^3*k*p^2*q-2*h^5*k*p^2*q-2*a^4*k*p^3*q+4*a^2*c^2*k*p^3*q-4*a^2*h^2*k*p^3*q-4*c^2*h^2*k*p^3*q+6*h^4*k*p^3*q+6*a^2*h*k*p^4*q-6*h^3*k*p^4*q-2*a^2*k*p^5*q+2*h^2*k*p^5*q-a^4*c^2*h*q^2+a^2*c^4*h*q^2+2*a^2*c^2*h^3*q^2-c^4*h^3*q^2-c^2*h^5*q^2-a^6*p*q^2+a^4*c^2*p*q^2+3*a^4*h^2*p*q^2-2*a^2*c^2*h^2*p*q^2-3*a^2*h^4*p*q^2+c^2*h^4*p*q^2+h^6*p*q^2-3*a^4*h*p^2*q^2-2*a^2*c^2*h*p^2*q^2+6*a^2*h^3*p^2*q^2+2*c^2*h^3*p^2*q^2-3*h^5*p^2*q^2+3*a^4*p^3*q^2-6*a^2*h^2*p^3*q^2+3*h^4*p^3*q^2+a^2*h*p^4*q^2-h^3*p^4*q^2$

(%i3) solve([G1,H],[x,y]);

Method:

To solve, first we find the dual curves in line coordinates for the equations in $(1)$, which requires converting each to standard form and homogenizing

$$
\left\{
\begin{array}{c}
f_1(x,y,z)=b^2x^2+a^2y^2-2(hb^2x+ka^2y)z+(h^2b^2+k^2a^2-a^2b^2)z^2=0 \\ f_2(x,y,z)=d^2x^2+c^2y^2-2(pd^2x+qc^2y)z+(p^2d^2+q^2c^2-c^2d^2)z^2=0 \\ \end{array}
\right. \tag{2}
$$

and then recognizing that since

  1. the equation of a line in (homogeneous) line coordinates is $g(x,y,z)=Xx+Yy+Zz=0$, and
  2. the tangent to a curve $f$ at a point $(x_0,y_0,z_0)$ is given by $f'(x_0,y_0,z_0)=f_x(x_0,y_0,z_0)+f_y(x_0,y_0,z_0)+f_z(x_0,y_0,z_0)$

finding dual curves amounts to solving an optimization problem subject to a constraint via the method of Lagrangian multipliers

$$ \nabla f=\lambda \nabla g \ g = 0. $$

At point $(x_0,y_0,z_0)$, this becomes

$$ f_x(x_0,y_0,z_0) = \lambda X \ f_y(x_0,y_0,z_0) = \lambda Y \ f_z(x_0,y_0,z_0) = \lambda Z \ Xx_0+Yy_0+Zz_0=0. $$

(NOTE: In truth, $\lambda$ can go on either side without loss of generality since it is a proportionality constant we wish to eliminate.)

Solving the above yields our dual curves $F_1$ and $F_2$

$$ \left\{ \begin{array}{c} F_1(X,Y) = (h^2-a^2)X^2 + (2hk)XY + (k^2-b^2)Y^2 + 2hX + 2kY + 1 = 0 \\ F_2(X,Y) = (p^2-c^2)X^2 + (2pq)XY + (q^2-d^2)Y^2 + 2pX + 2qY + 1 = 0 \\ \end{array} \right. \tag{3} $$

Second, we must find the line of incidence (i.e. the "point of intersection") of the system (3), which amounts to solving the system for $X$ and $Y$. Since this is a multivariate polynomial system, we can compute the reduced Gröbner bases of the l-elimination ideals of the ideal $I=<F_1,F_2>$ generated by $F_1$ and $F_2$ to solve.

Let $K=\mathbb Q [a,b,c,d,h,k,p,q]$, which is algebraically closed, and $R = K[x,y]$ be a polynomial ring under pure lex monomial ordering. Since $R$ is Noetherian by the Hilbert Basis Theorem (i.e. $R$ is finitely generated), the varieties $V(I)$ are affine (i.e. finite and equal to the varieties of the generators of $I$).

Using Macaulay2, the generators of the Gröbner basis of $I$ are found via

i1 : R = QQ[a,b,c,d,h,k,p,q];

i2 : S = R[x, y, MonomialOrder=>Lex];

i3 : I = ideal((h^2-a^2)*x^2 + (2*h*k)*x*y + (k^2-b^2)*y^2 + 2*h*x + 2*k*y + 1, (p^2-c^2)*x^2 + (2*p*q)*x*y + (q^2-d^2)*y^2 + 2p*x + 2*q*y + 1);

i4 : G = gb I;

i5 : toString gens G

which yields a large $1 X 10$ matrix. The first elimination ideal, $G_1$, is the first entry of $G$, which is a quartic in $y$ alone. Since there are two variables in our problem, there is no second elimination ideal (it is the empty set).

Since the leading coefficients of $x$ in the other 9 entries in $G-G_1$ are constants (they do not involve $y$), the Elimination Theorem guarantees we should be able to extend our solution for $y$.

Problem:

Attempting to solve $G_1$ with any of the other entries of $G-G_1$ using solve in Maxima CAS does not give a solution. Here is my code (I call the first entry of $G-G_1$ the variable $H$):

(%i1) G1 : (b^4*c^4-2*a^2*b^2*c^2*d^2+a^4*d^4+2*b^2*c^2*d^2*h^2-2*a^2*d^4*h^2+d^4*h^4-2*b^2*c^4*k^2+2*a^2*c^2*d^2*k^2+2*c^2*d^2*h^2*k^2+c^4*k^4-2*b^4*c^2*p^2+2*a^2*b^2*d^2*p^2-2*b^2*d^2*h^2*p^2+4*b^2*c^2*k^2*p^2-2*a^2*d^2*k^2*p^2-2*d^2*h^2*k^2*p^2-2*c^2*k^4*p^2+b^4*p^4-2*b^2*k^2*p^4+k^4*p^4-4*b^2*c^2*h*k*p*q-4*a^2*d^2*h*k*p*q+4*d^2*h^3*k*p*q+4*c^2*h*k^3*p*q+4*b^2*h*k*p^3*q-4*h*k^3*p^3*q+2*a^2*b^2*c^2*q^2-2*a^4*d^2*q^2-2*b^2*c^2*h^2*q^2+4*a^2*d^2*h^2*q^2-2*d^2*h^4*q^2-2*a^2*c^2*k^2*q^2-2*c^2*h^2*k^2*q^2+2*a^2*b^2*p^2*q^2-2*b^2*h^2*p^2*q^2-2*a^2*k^2*p^2*q^2+6*h^2*k^2*p^2*q^2+4*a^2*h*k*p*q^3-4*h^3*k*p*q^3+a^4*q^4-2*a^2*h^2*q^4+h^4*q^4)*y^4+(-4*b^2*c^4*k+4*a^2*c^2*d^2*k+4*c^2*d^2*h^2*k+4*c^4*k^3-4*b^2*c^2*h*k*p-4*a^2*d^2*h*k*p+4*d^2*h^3*k*p+4*c^2*h*k^3*p+8*b^2*c^2*k*p^2-4*a^2*d^2*k*p^2-4*d^2*h^2*k*p^2-8*c^2*k^3*p^2+4*b^2*h*k*p^3-4*h*k^3*p^3-4*b^2*k*p^4+4*k^3*p^4+4*a^2*b^2*c^2*q-4*a^4*d^2*q-4*b^2*c^2*h^2*q+8*a^2*d^2*h^2*q-4*d^2*h^4*q-4*a^2*c^2*k^2*q-4*c^2*h^2*k^2*q-4*b^2*c^2*h*p*q-4*a^2*d^2*h*p*q+4*d^2*h^3*p*q+12*c^2*h*k^2*p*q+4*a^2*b^2*p^2*q-4*b^2*h^2*p^2*q-4*a^2*k^2*p^2*q+12*h^2*k^2*p^2*q+4*b^2*h*p^3*q-12*h*k^2*p^3*q-4*a^2*c^2*k*q^2-4*c^2*h^2*k*q^2+12*a^2*h*k*p*q^2-12*h^3*k*p*q^2-4*a^2*k*p^2*q^2+12*h^2*k*p^2*q^2+4*a^4*q^3-8*a^2*h^2*q^3+4*h^4*q^3+4*a^2*h*p*q^3-4*h^3*p*q^3)*y^3+(2*a^2*b^2*c^2-2*b^2*c^4-2*a^4*d^2+2*a^2*c^2*d^2-2*b^2*c^2*h^2+4*a^2*d^2*h^2+2*c^2*d^2*h^2-2*d^2*h^4-2*a^2*c^2*k^2+6*c^4*k^2-2*c^2*h^2*k^2-4*b^2*c^2*h*p-4*a^2*d^2*h*p+4*d^2*h^3*p+12*c^2*h*k^2*p+2*a^2*b^2*p^2+4*b^2*c^2*p^2-2*a^2*d^2*p^2-2*b^2*h^2*p^2-2*d^2*h^2*p^2-2*a^2*k^2*p^2-12*c^2*k^2*p^2+6*h^2*k^2*p^2+4*b^2*h*p^3-12*h*k^2*p^3-2*b^2*p^4+6*k^2*p^4-8*a^2*c^2*k*q-8*c^2*h^2*k*q+12*a^2*h*k*p*q+12*c^2*h*k*p*q-12*h^3*k*p*q-8*a^2*k*p^2*q+24*h^2*k*p^2*q-12*h*k*p^3*q+6*a^4*q^2-2*a^2*c^2*q^2-12*a^2*h^2*q^2-2*c^2*h^2*q^2+6*h^4*q^2+12*a^2*h*p*q^2-12*h^3*p*q^2-2*a^2*p^2*q^2+6*h^2*p^2*q^2)*y^2+(-4*a^2*c^2*k+4*c^4*k-4*c^2*h^2*k+4*a^2*h*k*p+12*c^2*h*k*p-4*h^3*k*p-4*a^2*k*p^2-8*c^2*k*p^2+12*h^2*k*p^2-12*h*k*p^3+4*k*p^4+4*a^4*q-4*a^2*c^2*q-8*a^2*h^2*q-4*c^2*h^2*q+4*h^4*q+12*a^2*h*p*q+4*c^2*h*p*q-12*h^3*p*q-4*a^2*p^2*q+12*h^2*p^2*q-4*h*p^3*q)*y+a^4-2*a^2*c^2+c^4-2*a^2*h^2-2*c^2*h^2+h^4+4*a^2*h*p+4*c^2*h*p-4*h^3*p-2*a^2*p^2-2*c^2*p^2+6*h^2*p^2-4*h*p^3+p^4$

(%i2) H : (2*b^2*c^6*h^2-2*a^2*c^4*d^2*h^2+2*c^4*d^2*h^4+2*a^2*c^4*h^2*k^2-2*c^4*h^4*k^2-4*a^2*b^2*c^4*h*p+4*a^4*c^2*d^2*h*p+4*b^2*c^4*h^3*p-8*a^2*c^2*d^2*h^3*p+4*c^2*d^2*h^5*p+2*a^4*b^2*c^2*p^2-2*a^6*d^2*p^2-4*a^2*b^2*c^2*h^2*p^2-6*b^2*c^4*h^2*p^2+6*a^4*d^2*h^2*p^2+4*a^2*c^2*d^2*h^2*p^2+2*b^2*c^2*h^4*p^2-6*a^2*d^2*h^4*p^2-4*c^2*d^2*h^4*p^2+2*d^2*h^6*p^2-2*a^4*c^2*k^2*p^2+2*c^2*h^4*k^2*p^2+8*a^2*b^2*c^2*h*p^3-4*a^4*d^2*h*p^3-8*b^2*c^2*h^3*p^3+8*a^2*d^2*h^3*p^3-4*d^2*h^5*p^3-2*a^4*b^2*p^4+4*a^2*b^2*h^2*p^4+6*b^2*c^2*h^2*p^4-2*a^2*d^2*h^2*p^4-2*b^2*h^4*p^4+2*d^2*h^4*p^4+2*a^4*k^2*p^4-2*a^2*h^2*k^2*p^4-4*a^2*b^2*h*p^5+4*b^2*h^3*p^5-2*b^2*h^2*p^6-4*a^2*c^4*h^2*k*q+4*c^4*h^4*k*q+4*a^4*c^2*k*p^2*q-4*c^2*h^4*k*p^2*q-4*a^4*k*p^4*q+4*a^2*h^2*k*p^4*q+2*a^2*c^4*h^2*q^2-2*c^4*h^4*q^2-2*a^4*c^2*p^2*q^2+2*c^2*h^4*p^2*q^2+2*a^4*p^4*q^2-2*a^2*h^2*p^4*q^2)*x+(b^4*c^6*h*k-2*a^2*b^2*c^4*d^2*h*k+a^4*c^2*d^4*h*k+2*b^2*c^4*d^2*h^3*k-2*a^2*c^2*d^4*h^3*k+c^2*d^4*h^5*k-2*b^2*c^6*h*k^3+2*a^2*c^4*d^2*h*k^3+2*c^4*d^2*h^3*k^3+c^6*h*k^5-3*b^4*c^4*h*k*p^2+4*a^2*b^2*c^2*d^2*h*k*p^2-a^4*d^4*h*k*p^2-4*b^2*c^2*d^2*h^3*k*p^2+2*a^2*d^4*h^3*k*p^2-d^4*h^5*k*p^2+6*b^2*c^4*h*k^3*p^2-4*a^2*c^2*d^2*h*k^3*p^2-4*c^2*d^2*h^3*k^3*p^2-3*c^4*h*k^5*p^2+3*b^4*c^2*h*k*p^4-2*a^2*b^2*d^2*h*k*p^4+2*b^2*d^2*h^3*k*p^4-6*b^2*c^2*h*k^3*p^4+2*a^2*d^2*h*k^3*p^4+2*d^2*h^3*k^3*p^4+3*c^2*h*k^5*p^4-b^4*h*k*p^6+2*b^2*h*k^3*p^6-h*k^5*p^6-a^2*b^4*c^4*p*q+2*a^4*b^2*c^2*d^2*p*q-a^6*d^4*p*q+b^4*c^4*h^2*p*q-4*a^2*b^2*c^2*d^2*h^2*p*q+3*a^4*d^4*h^2*p*q+2*b^2*c^2*d^2*h^4*p*q-3*a^2*d^4*h^4*p*q+d^4*h^6*p*q+2*a^2*b^2*c^4*k^2*p*q-2*a^4*c^2*d^2*k^2*p*q-6*b^2*c^4*h^2*k^2*p*q-4*a^2*c^2*d^2*h^2*k^2*p*q+6*c^2*d^2*h^4*k^2*p*q-a^2*c^4*k^4*p*q+5*c^4*h^2*k^4*p*q+2*a^2*b^4*c^2*p^3*q-2*a^4*b^2*d^2*p^3*q-2*b^4*c^2*h^2*p^3*q+4*a^2*b^2*d^2*h^2*p^3*q-2*b^2*d^2*h^4*p^3*q-4*a^2*b^2*c^2*k^2*p^3*q+2*a^4*d^2*k^2*p^3*q+12*b^2*c^2*h^2*k^2*p^3*q+4*a^2*d^2*h^2*k^2*p^3*q-6*d^2*h^4*k^2*p^3*q+2*a^2*c^2*k^4*p^3*q-10*c^2*h^2*k^4*p^3*q-a^2*b^4*p^5*q+b^4*h^2*p^5*q+2*a^2*b^2*k^2*p^5*q-6*b^2*h^2*k^2*p^5*q-a^2*k^4*p^5*q+5*h^2*k^4*p^5*q+2*a^2*b^2*c^4*h*k*q^2-2*a^4*c^2*d^2*h*k*q^2-2*b^2*c^4*h^3*k*q^2+4*a^2*c^2*d^2*h^3*k*q^2-2*c^2*d^2*h^5*k*q^2-2*a^2*c^4*h*k^3*q^2-2*c^4*h^3*k^3*q^2+4*a^2*b^2*c^2*h*k*p^2*q^2+6*a^4*d^2*h*k*p^2*q^2-4*b^2*c^2*h^3*k*p^2*q^2-12*a^2*d^2*h^3*k*p^2*q^2+6*d^2*h^5*k*p^2*q^2-4*a^2*c^2*h*k^3*p^2*q^2+12*c^2*h^3*k^3*p^2*q^2-6*a^2*b^2*h*k*p^4*q^2+6*b^2*h^3*k*p^4*q^2+6*a^2*h*k^3*p^4*q^2-10*h^3*k^3*p^4*q^2-2*a^4*b^2*c^2*p*q^3+2*a^6*d^2*p*q^3+4*a^2*b^2*c^2*h^2*p*q^3-6*a^4*d^2*h^2*p*q^3-2*b^2*c^2*h^4*p*q^3+6*a^2*d^2*h^4*p*q^3-2*d^2*h^6*p*q^3+2*a^4*c^2*k^2*p*q^3+4*a^2*c^2*h^2*k^2*p*q^3-6*c^2*h^4*k^2*p*q^3-2*a^4*b^2*p^3*q^3+4*a^2*b^2*h^2*p^3*q^3-2*b^2*h^4*p^3*q^3+2*a^4*k^2*p^3*q^3-12*a^2*h^2*k^2*p^3*q^3+10*h^4*k^2*p^3*q^3+a^4*c^2*h*k*q^4-2*a^2*c^2*h^3*k*q^4+c^2*h^5*k*q^4-5*a^4*h*k*p^2*q^4+10*a^2*h^3*k*p^2*q^4-5*h^5*k*p^2*q^4-a^6*p*q^5+3*a^4*h^2*p*q^5-3*a^2*h^4*p*q^5+h^6*p*q^5)*y^3+(-b^4*c^6*h+2*a^2*b^2*c^4*d^2*h-a^4*c^2*d^4*h-2*b^2*c^4*d^2*h^3+2*a^2*c^2*d^4*h^3-c^2*d^4*h^5-2*b^2*c^6*h*k^2+2*a^2*c^4*d^2*h*k^2+2*c^4*d^2*h^3*k^2+3*c^6*h*k^4+a^2*b^4*c^4*p-2*a^4*b^2*c^2*d^2*p+a^6*d^4*p-b^4*c^4*h^2*p+4*a^2*b^2*c^2*d^2*h^2*p-3*a^4*d^4*h^2*p-2*b^2*c^2*d^2*h^4*p+3*a^2*d^4*h^4*p-d^4*h^6*p-2*a^2*b^2*c^4*k^2*p+2*a^4*c^2*d^2*k^2*p-2*b^2*c^4*h^2*k^2*p-4*a^2*c^2*d^2*h^2*k^2*p+2*c^2*d^2*h^4*k^2*p+a^2*c^4*k^4*p+3*c^4*h^2*k^4*p+3*b^4*c^4*h*p^2-4*a^2*b^2*c^2*d^2*h*p^2+a^4*d^4*h*p^2+4*b^2*c^2*d^2*h^3*p^2-2*a^2*d^4*h^3*p^2+d^4*h^5*p^2+6*b^2*c^4*h*k^2*p^2-4*a^2*c^2*d^2*h*k^2*p^2-4*c^2*d^2*h^3*k^2*p^2-9*c^4*h*k^4*p^2-2*a^2*b^4*c^2*p^3+2*a^4*b^2*d^2*p^3+2*b^4*c^2*h^2*p^3-4*a^2*b^2*d^2*h^2*p^3+2*b^2*d^2*h^4*p^3+4*a^2*b^2*c^2*k^2*p^3-2*a^4*d^2*k^2*p^3+4*b^2*c^2*h^2*k^2*p^3+4*a^2*d^2*h^2*k^2*p^3-2*d^2*h^4*k^2*p^3-2*a^2*c^2*k^4*p^3-6*c^2*h^2*k^4*p^3-3*b^4*c^2*h*p^4+2*a^2*b^2*d^2*h*p^4-2*b^2*d^2*h^3*p^4-6*b^2*c^2*h*k^2*p^4+2*a^2*d^2*h*k^2*p^4+2*d^2*h^3*k^2*p^4+9*c^2*h*k^4*p^4+a^2*b^4*p^5-b^4*h^2*p^5-2*a^2*b^2*k^2*p^5-2*b^2*h^2*k^2*p^5+a^2*k^4*p^5+3*h^2*k^4*p^5+b^4*h*p^6+2*b^2*h*k^2*p^6-3*h*k^4*p^6+4*a^2*b^2*c^4*h*k*q-4*a^4*c^2*d^2*h*k*q-4*b^2*c^4*h^3*k*q+8*a^2*c^2*d^2*h^3*k*q-4*c^2*d^2*h^5*k*q-4*a^2*c^4*h*k^3*q-4*c^4*h^3*k^3*q+4*a^2*b^2*c^4*k*p*q-4*a^4*c^2*d^2*k*p*q-4*b^2*c^4*h^2*k*p*q+4*c^2*d^2*h^4*k*p*q-4*a^2*c^4*k^3*p*q+12*c^4*h^2*k^3*p*q+4*a^4*d^2*h*k*p^2*q-8*a^2*d^2*h^3*k*p^2*q+4*d^2*h^5*k*p^2*q+16*c^2*h^3*k^3*p^2*q-8*a^2*b^2*c^2*k*p^3*q+4*a^4*d^2*k*p^3*q+8*b^2*c^2*h^2*k*p^3*q-4*d^2*h^4*k*p^3*q+8*a^2*c^2*k^3*p^3*q-24*c^2*h^2*k^3*p^3*q-4*a^2*b^2*h*k*p^4*q+4*b^2*h^3*k*p^4*q+4*a^2*h*k^3*p^4*q-12*h^3*k^3*p^4*q+4*a^2*b^2*k*p^5*q-4*b^2*h^2*k*p^5*q-4*a^2*k^3*p^5*q+12*h^2*k^3*p^5*q-2*a^2*b^2*c^4*h*q^2+2*a^4*c^2*d^2*h*q^2+2*b^2*c^4*h^3*q^2-4*a^2*c^2*d^2*h^3*q^2+2*c^2*d^2*h^5*q^2-2*a^2*c^4*h*k^2*q^2-2*c^4*h^3*k^2*q^2-2*a^4*b^2*c^2*p*q^2+2*a^6*d^2*p*q^2+4*a^2*b^2*c^2*h^2*p*q^2-6*a^4*d^2*h^2*p*q^2-2*b^2*c^2*h^4*p*q^2+6*a^2*d^2*h^4*p*q^2-2*d^2*h^6*p*q^2+2*a^4*c^2*k^2*p*q^2+12*a^2*c^2*h^2*k^2*p*q^2-14*c^2*h^4*k^2*p*q^2+4*a^2*b^2*c^2*h*p^2*q^2+2*a^4*d^2*h*p^2*q^2-4*b^2*c^2*h^3*p^2*q^2-4*a^2*d^2*h^3*p^2*q^2+2*d^2*h^5*p^2*q^2-12*a^2*c^2*h*k^2*p^2*q^2+20*c^2*h^3*k^2*p^2*q^2-2*a^4*b^2*p^3*q^2+4*a^2*b^2*h^2*p^3*q^2-2*b^2*h^4*p^3*q^2+2*a^4*k^2*p^3*q^2-20*a^2*h^2*k^2*p^3*q^2+18*h^4*k^2*p^3*q^2-2*a^2*b^2*h*p^4*q^2+2*b^2*h^3*p^4*q^2+14*a^2*h*k^2*p^4*q^2-18*h^3*k^2*p^4*q^2+4*a^4*c^2*h*k*q^3-8*a^2*c^2*h^3*k*q^3+4*c^2*h^5*k*q^3+4*a^4*c^2*k*p*q^3-4*c^2*h^4*k*p*q^3-12*a^4*h*k*p^2*q^3+24*a^2*h^3*k*p^2*q^3-12*h^5*k*p^2*q^3+4*a^4*k*p^3*q^3-16*a^2*h^2*k*p^3*q^3+12*h^4*k*p^3*q^3-a^4*c^2*h*q^4+2*a^2*c^2*h^3*q^4-c^2*h^5*q^4-3*a^6*p*q^4+9*a^4*h^2*p*q^4-9*a^2*h^4*p*q^4+3*h^6*p*q^4-3*a^4*h*p^2*q^4+6*a^2*h^3*p^2*q^4-3*h^5*p^2*q^4)*y^2+(a^2*b^2*c^4*h*k+b^2*c^6*h*k-a^4*c^2*d^2*h*k-a^2*c^4*d^2*h*k-b^2*c^4*h^3*k+2*a^2*c^2*d^2*h^3*k+c^4*d^2*h^3*k-c^2*d^2*h^5*k-a^2*c^4*h*k^3+3*c^6*h*k^3-3*c^4*h^3*k^3-2*a^2*b^2*c^4*k*p+2*a^4*c^2*d^2*k*p+2*b^2*c^4*h^2*k*p-4*a^2*c^2*d^2*h^2*k*p+2*c^2*d^2*h^4*k*p+2*a^2*c^4*k^3*p+6*c^4*h^2*k^3*p-2*a^2*b^2*c^2*h*k*p^2-3*b^2*c^4*h*k*p^2+a^4*d^2*h*k*p^2+2*a^2*c^2*d^2*h*k*p^2+2*b^2*c^2*h^3*k*p^2-2*a^2*d^2*h^3*k*p^2-2*c^2*d^2*h^3*k*p^2+d^2*h^5*k*p^2+2*a^2*c^2*h*k^3*p^2-9*c^4*h*k^3*p^2+6*c^2*h^3*k^3*p^2+4*a^2*b^2*c^2*k*p^3-2*a^4*d^2*k*p^3-4*b^2*c^2*h^2*k*p^3+4*a^2*d^2*h^2*k*p^3-2*d^2*h^4*k*p^3-4*a^2*c^2*k^3*p^3-12*c^2*h^2*k^3*p^3+a^2*b^2*h*k*p^4+3*b^2*c^2*h*k*p^4-a^2*d^2*h*k*p^4-b^2*h^3*k*p^4+d^2*h^3*k*p^4-a^2*h*k^3*p^4+9*c^2*h*k^3*p^4-3*h^3*k^3*p^4-2*a^2*b^2*k*p^5+2*b^2*h^2*k*p^5+2*a^2*k^3*p^5+6*h^2*k^3*p^5-b^2*h*k*p^6-3*h*k^3*p^6-2*a^2*b^2*c^4*h*q+2*a^4*c^2*d^2*h*q+2*b^2*c^4*h^3*q-4*a^2*c^2*d^2*h^3*q+2*c^2*d^2*h^5*q-6*a^2*c^4*h*k^2*q-2*c^4*h^3*k^2*q+a^4*b^2*c^2*p*q+a^2*b^2*c^4*p*q-a^6*d^2*p*q-a^4*c^2*d^2*p*q-2*a^2*b^2*c^2*h^2*p*q-b^2*c^4*h^2*p*q+3*a^4*d^2*h^2*p*q+2*a^2*c^2*d^2*h^2*p*q+b^2*c^2*h^4*p*q-3*a^2*d^2*h^4*p*q-c^2*d^2*h^4*p*q+d^2*h^6*p*q-a^4*c^2*k^2*p*q-5*a^2*c^4*k^2*p*q+10*a^2*c^2*h^2*k^2*p*q+9*c^4*h^2*k^2*p*q-9*c^2*h^4*k^2*p*q+4*a^2*b^2*c^2*h*p^2*q-2*a^4*d^2*h*p^2*q-4*b^2*c^2*h^3*p^2*q+4*a^2*d^2*h^3*p^2*q-2*d^2*h^5*p^2*q-4*a^2*c^2*h*k^2*p^2*q+20*c^2*h^3*k^2*p^2*q-a^4*b^2*p^3*q-2*a^2*b^2*c^2*p^3*q+a^4*d^2*p^3*q+2*a^2*b^2*h^2*p^3*q+2*b^2*c^2*h^2*p^3*q-2*a^2*d^2*h^2*p^3*q-b^2*h^4*p^3*q+d^2*h^4*p^3*q+a^4*k^2*p^3*q+10*a^2*c^2*k^2*p^3*q-10*a^2*h^2*k^2*p^3*q-18*c^2*h^2*k^2*p^3*q+9*h^4*k^2*p^3*q-2*a^2*b^2*h*p^4*q+2*b^2*h^3*p^4*q+10*a^2*h*k^2*p^4*q-18*h^3*k^2*p^4*q+a^2*b^2*p^5*q-b^2*h^2*p^5*q-5*a^2*k^2*p^5*q+9*h^2*k^2*p^5*q+5*a^4*c^2*h*k*q^2+a^2*c^4*h*k*q^2-10*a^2*c^2*h^3*k*q^2-c^4*h^3*k*q^2+5*c^2*h^5*k*q^2+6*a^4*c^2*k*p*q^2+4*a^2*c^2*h^2*k*p*q^2-10*c^2*h^4*k*p*q^2-9*a^4*h*k*p^2*q^2-10*a^2*c^2*h*k*p^2*q^2+18*a^2*h^3*k*p^2*q^2+10*c^2*h^3*k*p^2*q^2-9*h^5*k*p^2*q^2+2*a^4*k*p^3*q^2-20*a^2*h^2*k*p^3*q^2+18*h^4*k*p^3*q^2+9*a^2*h*k*p^4*q^2-9*h^3*k*p^4*q^2-2*a^4*c^2*h*q^3+4*a^2*c^2*h^3*q^3-2*c^2*h^5*q^3-3*a^6*p*q^3+a^4*c^2*p*q^3+9*a^4*h^2*p*q^3-2*a^2*c^2*h^2*p*q^3-9*a^2*h^4*p*q^3+c^2*h^4*p*q^3+3*h^6*p*q^3-6*a^4*h*p^2*q^3+12*a^2*h^3*p^2*q^3-6*h^5*p^2*q^3+3*a^4*p^3*q^3-6*a^2*h^2*p^3*q^3+3*h^4*p^3*q^3)*y-a^2*b^2*c^4*h+b^2*c^6*h+a^4*c^2*d^2*h-a^2*c^4*d^2*h+b^2*c^4*h^3-2*a^2*c^2*d^2*h^3+c^4*d^2*h^3+c^2*d^2*h^5-a^2*c^4*h*k^2+c^6*h*k^2-3*c^4*h^3*k^2+a^4*b^2*c^2*p-a^2*b^2*c^4*p-a^6*d^2*p+a^4*c^2*d^2*p-2*a^2*b^2*c^2*h^2*p+b^2*c^4*h^2*p+3*a^4*d^2*h^2*p-2*a^2*c^2*d^2*h^2*p+b^2*c^2*h^4*p-3*a^2*d^2*h^4*p+c^2*d^2*h^4*p+d^2*h^6*p-a^4*c^2*k^2*p+a^2*c^4*k^2*p+2*a^2*c^2*h^2*k^2*p+3*c^4*h^2*k^2*p-c^2*h^4*k^2*p+2*a^2*b^2*c^2*h*p^2-3*b^2*c^4*h*p^2-a^4*d^2*h*p^2+2*a^2*c^2*d^2*h*p^2-2*b^2*c^2*h^3*p^2+2*a^2*d^2*h^3*p^2-2*c^2*d^2*h^3*p^2-d^2*h^5*p^2+2*a^2*c^2*h*k^2*p^2-3*c^4*h*k^2*p^2+6*c^2*h^3*k^2*p^2-a^4*b^2*p^3+2*a^2*b^2*c^2*p^3-a^4*d^2*p^3+2*a^2*b^2*h^2*p^3-2*b^2*c^2*h^2*p^3+2*a^2*d^2*h^2*p^3-b^2*h^4*p^3-d^2*h^4*p^3+a^4*k^2*p^3-2*a^2*c^2*k^2*p^3-2*a^2*h^2*k^2*p^3-6*c^2*h^2*k^2*p^3+h^4*k^2*p^3-a^2*b^2*h*p^4+3*b^2*c^2*h*p^4-a^2*d^2*h*p^4+b^2*h^3*p^4+d^2*h^3*p^4-a^2*h*k^2*p^4+3*c^2*h*k^2*p^4-3*h^3*k^2*p^4-a^2*b^2*p^5+b^2*h^2*p^5+a^2*k^2*p^5+3*h^2*k^2*p^5-b^2*h*p^6-h*k^2*p^6+2*a^4*c^2*h*k*q-2*a^2*c^4*h*k*q-4*a^2*c^2*h^3*k*q+2*c^4*h^3*k*q+2*c^2*h^5*k*q+2*a^4*c^2*k*p*q-2*a^2*c^4*k*p*q+4*a^2*c^2*h^2*k*p*q+2*c^4*h^2*k*p*q-6*c^2*h^4*k*p*q-2*a^4*h*k*p^2*q-4*a^2*c^2*h*k*p^2*q+4*a^2*h^3*k*p^2*q+4*c^2*h^3*k*p^2*q-2*h^5*k*p^2*q-2*a^4*k*p^3*q+4*a^2*c^2*k*p^3*q-4*a^2*h^2*k*p^3*q-4*c^2*h^2*k*p^3*q+6*h^4*k*p^3*q+6*a^2*h*k*p^4*q-6*h^3*k*p^4*q-2*a^2*k*p^5*q+2*h^2*k*p^5*q-a^4*c^2*h*q^2+a^2*c^4*h*q^2+2*a^2*c^2*h^3*q^2-c^4*h^3*q^2-c^2*h^5*q^2-a^6*p*q^2+a^4*c^2*p*q^2+3*a^4*h^2*p*q^2-2*a^2*c^2*h^2*p*q^2-3*a^2*h^4*p*q^2+c^2*h^4*p*q^2+h^6*p*q^2-3*a^4*h*p^2*q^2-2*a^2*c^2*h*p^2*q^2+6*a^2*h^3*p^2*q^2+2*c^2*h^3*p^2*q^2-3*h^5*p^2*q^2+3*a^4*p^3*q^2-6*a^2*h^2*p^3*q^2+3*h^4*p^3*q^2+a^2*h*p^4*q^2-h^3*p^4*q^2$

(%i3) solve([G1,H],[x,y]);
rtoy commented 4 months ago

Imported from SourceForge on 2024-07-07 00:17:56 Created by billingd on 2021-10-07 22:47:30 Original: https://sourceforge.net/p/maxima/bugs/3873/#8caa


rtoy commented 4 months ago

Imported from SourceForge on 2024-07-07 00:18:00 Created by billingd on 2021-10-07 22:57:59 Original: https://sourceforge.net/p/maxima/bugs/3873/#32cd


For maxima code to find the intersection of two conics see https://sourceforge.net/p/maxima/mailman/message/37345071/

I recently (last week) extended this to find a tangent ellipse numerically. I just used a binary search to find the value where a parametric ellipse and a fixed ellipse just intersected. It is reliable provided you maintain the condition that one end of the interval has two real points of intersection and the other has none. I don't have to deal with degenerate cases such as concentric circles.