1)

In [8]:
R.<z,a1,a2,b1,b2,c1,c2> = PolynomialRing(QQ)
A = vector((a1, a2))
B = vector((b1, b2))
C = vector((c1, c2))

$\vec{AB} \perp \vec{BC}$

In [2]:
eq1 = (A - B) * (B - C)
eq1
Out[2]:
a1*b1 - b1^2 + a2*b2 - b2^2 - a1*c1 + b1*c1 - a2*c2 + b2*c2

Centre of circle is central point of $\overline{AC}$.

In [3]:
M = 1/2 * (A + C)

All three points lie on a circle: \begin{align*} ||\vec{AM}|| = ||\vec{BM}|| = ||\vec{CM}|| \end{align*}

By definition of $M$:

\begin{align*} ||\vec{AM}|| = ||\vec{CM}|| \end{align*}

We can also take the squared norm instead of the norm. Hence, we obtain \begin{align*} ||\vec{BM}||^2 - \underbrace{||\vec{AM}||^2}_{=:r} = 0 \end{align*}

In [4]:
# r radius of circle
r = (A - M).dot_product(A - M)
dist = (B - M).dot_product(B - M)
eq2 = r - dist
In [ ]:
 

$\vec{AB} \perp \vec{BC} \Rightarrow ||\vec{BM}||^2 - ||\vec{AM}||^2 = 0$

$\vec{AB} \perp \vec{BC} \land ||\vec{BM}||^2 - ||\vec{AM}||^2 \neq 0$

In [5]:
I = ideal(eq1, eq2*z - 1)
In [6]:
I.groebner_basis()
Out[6]:
[1]

$||\vec{BM}||^2 - ||\vec{AM}||^2 = 0 \Rightarrow \vec{AB} \perp \vec{BC}$

$||\vec{BM}||^2 - ||\vec{AM}||^2 = 0 \land \vec{AB} \not\perp \vec{BC}$

In [7]:
I2 = ideal(eq1*z - 1, eq2)
In [8]:
I2.groebner_basis()
Out[8]:
[1]
In [ ]:
 
In [ ]:
 

2)

In [ ]:
 
In [1]:
# colinear
def cl(P1, P2, P3):
    return det(matrix([P1, P2, P3]))
In [2]:
R.<z1,z2,z3,z4,z5,s1,s2,a1,a2,b1,b2,c1,c2,d1,d2,e1,e2,f1,f2,h1,h2,i1,i2,j1,j2> = PolynomialRing(QQ, order = 'deglex')
In [3]:
S = [s1, s2, 1]
A = [a1, a2, 1]
B = [b1, b2, 1]
C = [c1, c2, 1]
D = [d1, d2, 1]
E = [e1, e2, 1]
F = [f1, f2, 1]
H = [h1, h2, 1]
I = [i1, i2, 1]
J = [j1, j2, 1]
In [4]:
Sys1 = [cl(S,A,D),
       cl(S,B,E),
       cl(S,C,F),
       cl(A,B,H),
       cl(D,E,H),
       cl(A,C,J),
       cl(D,F,J),
       cl(B,C,I),
       cl(E,F,I),
       cl(E,A,D) * z1 - 1,
       cl(F,A,D) * z2 - 1,
       cl(F,B,E) * z3 - 1,
       cl(C,A,D) * z4 - 1,
       cl(H,I,J) * z5 - 1]
In [5]:
Sys1
Out[5]:
[s1*a2 - s1*d2 - s2*a1 + s2*d1 + a1*d2 - a2*d1,
 s1*b2 - s1*e2 - s2*b1 + s2*e1 + b1*e2 - b2*e1,
 s1*c2 - s1*f2 - s2*c1 + s2*f1 + c1*f2 - c2*f1,
 a1*b2 - a1*h2 - a2*b1 + a2*h1 + b1*h2 - b2*h1,
 d1*e2 - d1*h2 - d2*e1 + d2*h1 + e1*h2 - e2*h1,
 a1*c2 - a1*j2 - a2*c1 + a2*j1 + c1*j2 - c2*j1,
 d1*f2 - d1*j2 - d2*f1 + d2*j1 + f1*j2 - f2*j1,
 b1*c2 - b1*i2 - b2*c1 + b2*i1 + c1*i2 - c2*i1,
 e1*f2 - e1*i2 - e2*f1 + e2*i1 + f1*i2 - f2*i1,
 z1*a1*d2 - z1*a1*e2 - z1*a2*d1 + z1*a2*e1 + z1*d1*e2 - z1*d2*e1 - 1,
 z2*a1*d2 - z2*a1*f2 - z2*a2*d1 + z2*a2*f1 + z2*d1*f2 - z2*d2*f1 - 1,
 z3*b1*e2 - z3*b1*f2 - z3*b2*e1 + z3*b2*f1 + z3*e1*f2 - z3*e2*f1 - 1,
 -z4*a1*c2 + z4*a1*d2 + z4*a2*c1 - z4*a2*d1 - z4*c1*d2 + z4*c2*d1 - 1,
 z5*h1*i2 - z5*h1*j2 - z5*h2*i1 + z5*h2*j1 + z5*i1*j2 - z5*i2*j1 - 1]
In [6]:
I = ideal(Sys1)
In [7]:
I.groebner_basis() # takes long
Out[7]:
[1]
In [ ]:
 

4)

In [15]:
R.<z,x,y> = PolynomialRing(QQ)
f = x^4*y + x^3*y^2 - 2*x^2*y^2 - 2*x*y^3 + x + y
g = x^4*y - x^3*y^3 - 2*x^2*y^2 + 2*x*y^4 + x - y^2
In [16]:
I = ideal(z*f, (z-1)*g)
In [17]:
I.elimination_ideal(z)
Out[17]:
Ideal (x^4*y^3 + x^3*y^4 - x^5*y - x^4*y^2 - 2*x^2*y^4 - 2*x*y^5 + 2*x^3*y^2 + 2*x^2*y^3 + x*y^2 + y^3 - x^2 - x*y) of Multivariate Polynomial Ring in z, x, y over Rational Field
In [18]:
I.elimination_ideal(z).groebner_basis()
Out[18]:
[x^4*y^3 + x^3*y^4 - x^5*y - x^4*y^2 - 2*x^2*y^4 - 2*x*y^5 + 2*x^3*y^2 + 2*x^2*y^3 + x*y^2 + y^3 - x^2 - x*y]
In [19]:
LCM = I.elimination_ideal(z).groebner_basis()[0]
LCM
Out[19]:
x^4*y^3 + x^3*y^4 - x^5*y - x^4*y^2 - 2*x^2*y^4 - 2*x*y^5 + 2*x^3*y^2 + 2*x^2*y^3 + x*y^2 + y^3 - x^2 - x*y
In [20]:
f*g/LCM
Out[20]:
-x^3*y + 2*x*y^2 - 1
In [21]:
f.gcd(g)
Out[21]:
-x^3*y + 2*x*y^2 - 1
In [ ]: