Blog Μαθηματικών και Εκπαιδευτικών Θεμάτων

Generalizing a Geometric Problem from IMO 2007

(ΙΜΟ 2007) Given a triangle \(ABC\), let the bisector of angle \(BCA\) meet the circumcircle again at \(R\), the perpendicular bisector of side \(BC\) at \(P\), and the perpendicular bisector of \(AC\) at \(Q\). If \(K\) is the midpoint of side \(BC\) and \(L\) is the midpoint of side \(AC\), prove that the triangles \(RPK\) and \(RQL\) have the same area.

Fig. 1: The Problem in IMO 2007.

The subject of generalizing Problem (ΙΜΟ 2007) was mentioned to me in a discussion in 2012 in Sofia with Vesselin Nenkov, who was then a PhD candidate under the supervision of Professor Sava Grozdev. Nikolai Nenkov would use barycentric coordinates, as the generalization required extensive computations. These coordinates are also ideal for generalizing circumcircle properties from analytic geometry – a context where classical geometry’s methodology fails.

While computers have since reduced the “cost” of such computations, my interest at the time focused on the algebraic dimension of the geometric problem, utilizing the Wu’s method and Groebner basis methods. Revisiting the problem 15 years later, I found more elegant and accessible solutions using Computer Algebra Systems (CAS) and affine geometry, which, in our opinion, provide the natural setting for these generalizations

Another interesting educational point is how the problem generalizes to conics. Existing proofs typically rely on points \(P\) and \(Q\) being the intersections of side perpendicular bisectors with the angle bisector. However, in a parabola, the “center” lies at infinity. Thus, the point \(R\) becomes the intersection of the parabola with a line from the midpoint \(M\) of \(AB\) parallel to the parabola’s axis.

Generalization to a Parabola

In this section, we generalize Problem (IMO 07) to the case of a parabola. This generalization is motivated by the observation that the original problem relies on properties of the circumcircle, which do not directly apply to conic sections like parabolas. However, by using affine geometry, we can extend the result to this case.

Let \(\triangle ABC\) be an arbitrary triangle where \(K, L\) and $M$ are the midpoints of sides \(BC, CA\) and \(AB\), respectively. Let \(\mathscr{P}\) be a parabola passing through \(\triangle ABC\). The lines \(k, l\) and \(m\) pass through \(K, L\) and \(M\) respectively and are parallel to the axis of parabola \(\mathcal{P}\). If \(P = k \cap RC\), \(Q = l \cap RC\), and \(R = m \cap \mathcal{P}\), then ach of the triangles \(\triangle RPK\) and \(\triangle RQL\) has area equal to one eighth of the area of \(\triangle ABC\).

Fig. 2: Generalizing Problem, IMO 2007.

Proof:
It is well known that the center of a parabola is at infinity. The two triangles \(\triangle RPK\) and \(\triangle RQL\) have the same area, only on the triangle \(\triangle ABC\) and not on the direction of the parabola’s axis.

The analysis is conducted in affine geometry, where notions such as angles, distances, and circles are not fundamental, yet the essential data of the problem remain unchanged.

We consider a triangle with vertices \(A(0,0), B(1,0)\) and \(C(0,1)\). The triangle \(\triangle ABC\) can be mapped to \(\triangle DEZ\) via an affine transformation: $$T: (a,b) \rightarrow D+a (E-D)+b (Z-D)$$
that maps \(\triangle ABC\) to \(\triangle DEZ\):
$$T(0,0)=D,\ T(1,0)=E,\ T(0,1)=Z$$

In our case, the area of \((\triangle ABC) = \frac{1}{2}\).

We assume that the axis of the parabola \(\mathscr{P}\) has the direction vector \(\overrightarrow{w} = (p,q) \neq (0,0)\), such that it is not parallel to any side of the triangle.

$$K=\left(\frac{1}{2},\frac{1}{2}\right),\ L=\left(0,\frac{1}{2}\right),\ M=\left(\frac{1}{2},0\right)$$

Fig. 3: Generalizing Problem in Affine Space.

First, we will now find the equation of the parabola. We have three points on it and the direction of its axis of symmetry.

The parabola passes through (0,0), so its general equation is:

$$\mathscr{P}:\ a x^2+b xy+c y^2+d x+e y=0$$

Conditions

  • \(B(1,0)\in \mathscr{P}\): \(p1:=a+d=0\).
  • \(C(0,1)\in \mathscr{P}\): \(p2:=c+e=0\).
  • \(\mathscr{P}\) is parabola: \(p3:=b^2-4ac=0\).
  • The point at infinity \( (p:q:0) \) belongs to the homogeneous equation of the parabola: $$a x^2+b xy+c y^2+d x z+e y z +l z^2$$ we have: \(p4:=a p^2+b pq+c q^2=0\).

Using computations with Groebner bases in Maple to eliminate the variables \(\{a,b,c,d\}\) by the polynomial list $$\{p1,p2,p3,p4,p5\}, \hbox{ where } p5:=a x^2+b xy+c y^2+d x+e y$$
we obtain the equation of the parabola:
$$\mathscr{P}: q^2x^2-q^2x+y^2p^2-yp^2-2qpyx=0\quad (1)$$

The calculations were performed in Maple. Manual elimination is impractical unless barycentric coordinates are used.

Calculating Points

  • The point: \(R = m \cap \mathscr{P}\): The point \(M=\left(\frac{1}{2},0\right)\) belongs to \(m\) which is parallel to \(\overrightarrow{w}=(p,q)\), therefore:
    $$x=\frac{1}{2}+up\ \&\ y=uq$$
    We substitute \(x,y\) into equation (1) and solve for \(u\) (always in Maple):
    $$u=-\frac{q}{4p(p+q)}$$
    Thus, $$R=\left(\frac{2p+q}{4p(p+q)},-\frac{q^2}{4p(p+q)}\right)$$
  • The point \(P = k \cap RC\): \(RC\) passes through \(C(0,1)\) and \(R\). Its slope is: $$m_{RC}= \frac{y_R-1}{x_R}= -\frac{2p+q}{p}$$ $$CR:\; y = 1 -\frac{2p+q}{p}x \tag{2}$$ The line \(k\) passing through \(K(\tfrac12,\tfrac12)\) is given by \(\ x=\tfrac12+sp,\ y=\tfrac12+sq\) The intersection with (2) gives \(s=-\frac{1}{4p}\): $$P=\left(\frac{1}{4},\frac{2p-q}{4p}\right)$$
  • The point \(Q = l \cap CR\): Line \(l\) passes through \(L(0,\tfrac12): x=tp,\ y=\tfrac12+tq\). Intersection with (2) gives: \(t=\frac{1}{4(p+q)}\): $$Q=\left(\frac{p}{4(p+q)},\frac{2p+3q}{4(p+q)}\right)$$

Calculating Areas

  • Area \( (\triangle RPK)\) $$\begin{array}{lcl} (\triangle RPK)&=&\tfrac12\Bigg|det\left(\begin{array}{c} R-P\\ K-P\end{array}\right)\Bigg|\\ &=& \tfrac12\Bigg|det\left( \begin{array}{cc} \frac{p}{4(p+q)}&-\frac{2p+q}{4(p+q)}\\ \frac{1}{4}&\frac{q}{4p} \end{array}\right)\Bigg|\\ &=& \tfrac12\cdot \tfrac18\\ &=&\frac{1}{16} \end{array}$$
  • Area \( (\triangle RQL)\) $$\begin{array}{lcl} (\triangle RQL)&=&\tfrac12\Bigg|det\left(\begin{array}{c} R-Q\\ L-Q\end{array}\right)\Bigg|\\ &=& \tfrac12\Bigg|det\left( \begin{array}{cc} \frac{1}{4}&-\frac{2p+q}{4p}\\ -\frac{p}{4(p+q)}&-\frac{q}{4(p+q)} \end{array}\right)\Bigg|\\ &=& \tfrac12\cdot \big|-\tfrac18\big|\\ &=&\frac{1}{16} \end{array}$$

Since the area of the triangle \((\triangle ABC) = \frac{1}{2}\), we conclude that:
$$(\triangle RPK) = (\triangle RQL) = \frac{1}{8} \cdot (\triangle ABC)$$ \(\blacksquare \)

Below, we provide Python code that can accept parameters \(a,b,c,p,q\) as input, where \(a,b,c\) determine the vertices \(A(0,0)\), \(B(a,0)\), \(C(b,c)\) and the direction vector of the parabola’s axis \(\overrightarrow{w}=(p,q)\).

Python
import numpy as np
import matplotlib.pyplot as plt
def coeffs_and_params(a, b, c, p, q):
"""coefficients of Ax^2 + Bxy + Cy^2 + Dx + Ey = 0"""
qp = q / c
pp = (p*c - b*q) / (a*c)
A = qp**2 / a**2
B = -2*qp/(a*c)*(qp*b/a + pp)
C = (qp*b/a + pp)**2 / c**2
D = -qp**2 / a
E = (qp**2*b/a - pp**2) / c
return A, B, C, D, E, pp, qp
def map_uv(a, b, c, uv):
u, v = uv
return np.array([a*u + b*v, c*v])
def triangle_area(p1, p2, p3):
return 0.5 * abs(np.linalg.det(np.vstack([p2-p1, p3-p1])))
def main():
print("Parabola through A(0,0), B(a,0), C(b,c) with axis direction (p,q)")
a = float(input("a for B(a,0): "))
b = float(input("b for C(b,c): "))
c = float(input("c for C(b,c): "))
p = float(input("p (axis direction): "))
q = float(input("q (axis direction): "))
A, B, C, D, E, pp, qp = coeffs_and_params(a, b, c, p, q)
# --- equation ---
print("\nParabola equation:")
eq = (f"{A:.6g}x^2 {'+' if B>=0 else '-'} {abs(B):.6g}xy "
f"{'+' if C>=0 else '-'} {abs(C):.6g}y^2 "
f"{'+' if D>=0 else '-'} {abs(D):.6g}x "
f"{'+' if E>=0 else '-'} {abs(E):.6g}y = 0")
print(eq)
# points in (u,v)
Kp, Lp, Mp = (0.5,0.5), (0.0,0.5), (0.5,0.0)
u = - qp / (4*pp*(pp+qp))
Rp = (0.5 + u*pp, u*qp)
s = -1/(4*pp)
Pp = (Kp[0] + s*pp, Kp[1] + s*qp)
t = 1/(4*(pp+qp))
Qp = (Lp[0] + t*pp, Lp[1] + t*qp)
pts = {}
for name, uv in {"K":Kp,"L":Lp,"M":Mp,"R":Rp,"P":Pp,"Q":Qp}.items():
pts[name] = map_uv(a,b,c, uv)
pts["A"] = np.array([0.0, 0.0])
pts["B"] = np.array([a, 0.0])
pts["C"] = np.array([b, c])
# --- areas ---
area_abc = triangle_area(pts["A"], pts["B"], pts["C"])
area_rpk = triangle_area(pts["R"], pts["P"], pts["K"])
area_rql = triangle_area(pts["R"], pts["Q"], pts["L"])
print("\nTriangle areas:")
print(f"ABC = {area_abc:.6g}")
print(f"RPK = {area_rpk:.6g} (ratio RPK/ABC = {area_rpk/area_abc:.6g})")
print(f"RQL = {area_rql:.6g} (ratio RQL/ABC = {area_rql/area_abc:.6g})")
# parabola for plotting
ts = np.linspace(-4, 4, 800)
vs = (ts**2 - qp*ts) / (pp*(pp+qp))
us = (ts + pp*vs) / qp
parab = np.array([map_uv(a,b,c,(u,v)) for u,v in zip(us, vs)])
fig, ax = plt.subplots(figsize=(8,7))
# triangle ABC
tri = np.vstack([pts["A"], pts["B"], pts["C"], pts["A"]])
ax.plot(tri[:,0], tri[:,1], 'k-', lw=1.5, label='ABC')
# parabola
ax.plot(parab[:,0], parab[:,1], 'b-', lw=1.8, label='parabola')
# k, l, m
dir_vec = np.array([p, q])
for start, name, col in [(pts["K"],"k",'r'), (pts["L"],"l",'g'), (pts["M"],"m",'m')]:
line = np.vstack([start-3*dir_vec, start+3*dir_vec])
ax.plot(line[:,0], line[:,1], '--', color=col, lw=0.9, label=name)
# CR
Cpt, Rpt = pts["C"], pts["R"]
cr_dir = Rpt - Cpt
cr_line = np.vstack([Cpt - 2*cr_dir, Rpt + 2*cr_dir])
ax.plot(cr_line[:,0], cr_line[:,1], 'k--', lw=1.0, label='CR')
# points
for name, pt in pts.items():
ax.plot(pt[0], pt[1], 'o', ms=5)
ax.text(pt[0], pt[1], f' {name}', fontsize=9)
# shaded triangles
for tri_pts, col in [([pts["R"],pts["P"],pts["K"]],'r'),
([pts["R"],pts["Q"],pts["L"]],'g')]:
tpoly = np.vstack(tri_pts + [tri_pts[0]])
ax.fill(tpoly[:,0], tpoly[:,1], color=col, alpha=0.18)
ax.set_aspect('equal')
ax.grid(True, alpha=0.3)
ax.legend(loc='best')
ax.set_title(f"a={a}, b={b}, c={c}, p={p}, q={q}")
plt.show()
if __name__ == "__main__":
main()

If \(a=4,\ b=3,\ c=6,\ p=1,\ q=1\) then, the algorithm gives the equation of the parabola: $$0.00173611x^2 – 0.00347222xy + 0.00173611y^2 – 0.00694444x + 0.000868056y = 0$$ the areas of the triangles \((\triangle RPK)=(\triangle RQL)=1.5\) and \((\triangle ABC)=12\) together with the graph illustrating the configuration.

Fig. 4: The graph of the Python output.

If you want to see the results in the Python compiler (but not the figure, since it does not support matplotlib), go to ΗΕRΕ

Generalization to Ellipse & Hyperbola

Having generalized the problem to the case of a parabola, we now extend our analysis to ellipses and hyperbolas. Unlike parabolas, these conic sections have a center, which allows us to use affine transformations to map them to circles, simplifying the problem.

Given a triangle \(\triangle ABC\) and \(K,L\) and \(M\) the midpoints of sides \(BC\), \(AC\) and \(AB\) respectively. Let \(\mathscr{C}\) be the ellipse (hyperbola) circumscribed about the triangle with center at point \(O\). If \(R=\mathscr{C}\cap OM\) and \(R_1=\mathscr{C}\cap OR\), \(P=RC\cap OK\), \(Q=RC\cap OL\), \(P_1=OK\cap CR_1\) and \(Q_1=OL\cap CR_1\). Show that the pairs of triangles \( (\triangle RPK\), \(\triangle RQL)\), \( (\triangle RPK\), \(\triangle R_1PK)\), \((\triangle RQL,\ \triangle R_1QL)\), \((\triangle RP_1K,\ \triangle R_1P_1K)\), and \( (\triangle RQQ_1,\ (\triangle R_1QQ_1)\), have equal area.

Fig. 5: Generalizing Problem in ellipse.

The idea regarding a conic with a center is simple. The general idea is to use an affine transformation. The ellipse $\mathscr{C}:\ \frac{x^2}{a^2}+\frac{y^2}{b^2}=1$ is circumscribed about triangle $\triangle ABC$ with center $O=(0,0)$. An affine transformation1 maps the ellipse to a circle, because all nondegenerate ellipses are affinely equivalent to the circle. I choose an affine transformation \(F(x,y)=\left(\frac{x}{a},\frac{y}{b}\right)\) that maps:

  • \(\mathscr{C}\stackrel{F}{\mapsto} \mathscr{C’}:\ x’^2+y’^2=1\) a circle with center \(O’=(0,0)\).
  • \(A,B,C \stackrel{F}{\mapsto} A’,B’,C’\), respectively.
  • \(K,L,M\stackrel{F}{\mapsto} K’,L’,M’\) (since affine transformations preserve midpoints).
  • \(O\stackrel{F}{\mapsto} O’\) (the center of the circle, which coincides with the circumcenter of \(\triangle A’B’C’\) ).

Definition of points in the transformation

If \(R=\mathscr{C}\cap OM\), then in the affine transformation \(R’=\mathscr{C}’\cap O’M’\).

Similarly, \(R_1=\mathscr{C}\cap OR\) implies that \(R’_1=\mathscr{C}’\cap O’R’\), meaning \(R’\) and \(R’_1\) are diametrically opposite on the circle \(\mathscr{C}’\) with respect to \(O’\) (since in the ellipse \(R_1\) is symmetric to \(R\) with respect to the center, as \(OR\) is a diameter of the ellipse).

  • \(P=CR\cap OK\) then \(P’=C’R’\cap O’K’\).
  • \(Q=CR\cap OL\) then \(Q’=C’R’\cap O’L’\).
  • \(P_1=OK\cap CR_1\) then \(P’_1=O’K’\cap C’R’_1\).
  • \(Q_1=OL\cap CR_1\) then \(Q’_1=O’L’\cap C’R’_1\).
Fig. 6: The affine transformation \(F\) in Figure 5.

Combination this with the initial problem and the symmetries in the case of the circle, the conclusion becomes straightforward. Ratios are preserved under the affine transformation (see previous Figure). The equality of areas of the required triangles in the original figure is equivalent to the equality of the areas of their images in the transformed one, since the area ratio of every triangle is multiplied by the same constant factor \(\big|\det(F)\big|=\frac{1}{ab}\). \(\blacksquare\)

  1. If the ellipse is in an arbitrary position and orientation:
    Suppose it has center \(O\) and equation: $$(x-O)^T M(x-O)=1$$ where \(M\) is a symmetric positive – definite \(2\times 2\) matrix. The transformation, in this case, is $$F(x)=M^{\frac{1}{2}}(x-O)$$ ↩︎
Fediverse reactions

Discover more from Blog Μαθηματικών και Εκπαιδευτικών Θεμάτων

Subscribe now to keep reading and get access to the full archive.

Continue reading