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

Κατηγορία: Μαθηματικά Θέματα

  • Euler Upside Down: An Extension of a Problem from the Spanish IMO Team, 1985

    Δίδονται 4 σημεία Α,B, C και D πάνω σε μια ευθεία, (\(\epsilon\)) με αυτή την σειρά. Από το C φέρω κάθετη στην (\(\epsilon\)) η οποία τέμνει την ημιπεριφέρεια με διάμετρο AD στο σημείο Ε. Αν Η και Ο, το ορθόκεντρο και περίκεντρο του τριγώνου \(\triangle{BED}\) αντίστοιχα, να αποδείξετε ότι \(HO\parallel (\epsilon)\) αν και μόνο αν \(\mathrm{\overline{AB}=2\cdot \overline{BC}}\).

    Aπάντηση: Ένα αντίστοιχο πρόβλημα έχει τεθεί στην ΙΜΟ το 1985 από την Ισπανική ομάδα, όπως μας πληροφoρεί ο Honsberger1. Τη λύση του προβλήματος όπως τη χρησιμοποιούμε εδώ, έχει παρουσιαστεί στο Λυγάτσικας Ζ.2 σελ. 198 ασκ.103. Αν \(D=(a,0)\) και \(B=(-a,0)\), \(a\in \mathbb{R}_{>0}\), τότε ο γεωμετρικός τόπος της κορυφής \(Ε\) του τριγώνου \(\triangle{BED}\), έτσι ώστε, με τον προηγούμενο συμβολισμό, \(ΗΟ\parallel BC\), είναι μια έλλειψη \(\mathscr{E}\) με εξίσωση $$\mathscr{E}:\ 3x^2+y^2=3a^2$$

    Έτσι, το πρόβλημα έχει λύση αν το σημείο Ε που είναι η τομή του ημικυκλίου \(\mathscr{C}\) και της ευθείας \(CE\), συμπέσει με την τομή του ημικυκλίου με την έλλειψη \(\mathscr{E}\). Ας υποθέσουμε λοιπόν ότι: $$Α=(d,0),\ B=(-a,0),\ C=(c,0),\ D=(a,0)$$ τότε η εξίσωση του κύκλου είναι: $$\mathscr{C}:\ \displaystyle{\left(x-\frac{d+a}{2}\right)^2+y^2=\left(\frac{a-d}{2}\right)^2}$$ Tα κοινά σημεία ημικυκλίου και έλλειψης είναι: $$(x,y)=\left\{ (a,0),\left(-\frac{1}{2}d-\frac{3}{2}a, \left\{\begin{array}{c} \frac{1}{2}\sqrt{-3d^2-18da-15a^2}\\ \vee \\ – \frac{1}{2}\sqrt{-3d^2-18da-15a^2}\end{array}\right .\right) \right\} $$ Αυτό που έχει σημασία είναι ότι το κοινό σημείο έχει τετμημένη \(x=\displaystyle{-\frac{1}{2}d-\frac{3}{2}a}\), ή \(x=a\) φυσικά, αλλά το δεύτερο δεν μας ενδιαφέρει εδώ. Για να έχουμε τη ζητούμενη παραλληλία πρέπει $$c=-\frac{1}{2}d-\frac{3}{2}a$$ Αλλά, $$\overline{BC}=-a-c=-a+\frac{1}{2}d+\frac{3}{2}a=\frac{a+d}{2}$$ και $$\overline{AB} = d-(-a)=a+d$$ Επομένως, $$\mathrm{\overline{AB}=2\cdot \overline{BC}}$$ Δείξαμε ότι αν \(OH\parallel (\epsilon) \) τότε \(\mathrm{\overline{AB}=2\cdot \overline{BC}}\).

    Μένει να δείξουμε το αντίστροφο: αν \(\mathrm{\overline{AB}=2\cdot \overline{BC}}\) τότε \(OH\parallel (\epsilon) \), γιατί: η τετμημένη του \(C\) είναι ίση με \(\displaystyle{c= -\frac{1}{2}d-\frac{3}{2}a} \) και ταυτίζεται με την τετμημένη της τομής της ημιπεριφέρειας \(\mathscr{C}\) και της έλλειψης \(\mathscr{E}\).

    Άρα: \(OH\parallel (\epsilon) \Leftrightarrow \mathrm{\overline{AB}=2\cdot \overline{BC}} \). \(\blacksquare\)

    1. Honsberger Ross, From Erdos to Kiev, Problems of Olymbiad Caliber. The Mathematical Association of America 1996. ↩︎
    2. Λυγάτσικας Ζήνων, Κωνικές, εκδ. Liberal, 2013. ↩︎
  • Ένας Γεωμετρικός Τόπος: Ισογωνική εικόνα ευθείας

    Απόδειξη:

    Έστω \(\triangle ABC\) σταθερό τρίγωνο του προβολικού χώρου \(\mathbb{P}_{\mathbb{R}}^2\). Κάθε σημείο \(P\) όχι επί των πλευρών του \(ABC\) έχει ομογενείς βαρυκεντρικές συντεταγμένες \([x:y:z]\) με \(x+y+z\neq 0\) και \(xyz\neq 0\) αν \(P\) δεν ανήκει στις πλευρές. Τα \(A,B,C\) έχουν συντεταγμένες \([1:0:0],\, [0:1:0],\, [0:0:1]\) αντίστοιχα.

    Ισογωνική συσχέτιση

    Ορίζουμε τη ρητή απεικόνιση $$\tau: \mathbb{P}^2 \dashrightarrow \mathbb{P}^2$$ με τύπο:

    $$\tau([x:y:z]) = [a^2yz : b^2zx : c^2xy]$$
    όπου \(a=|BC|,\ b=|C A|,\ c=|AB|\). Η \(\tau\) λέγεται ισογωνική συσχέτιση ως προς το \(\triangle ABC\).

    Περιγεγραμμένος κύκλος
    Ο περιγεγραμμένος κύκλος του \(\triangle ABC\)είναι η κωνική τομή με εξίσωση:

    $$\mathscr{O}:\ a^2yz + b^2zx + c^2xy = 0$$

    Λήμμα 1
    Η απεικόνιση \(\tau\) είναι involution, δηλαδή \(\tau^2 = id\) στο πεδίο ορισμού της. Επιπλέον, \(\tau(A)=BC,\ \tau(B)=C A,\ \tau(C)=AB\).

    Απόδειξη. Για \([x:y:z]\) με \(xyz\neq 0\),

    $$\begin{array}{lcl}
    \tau(\tau([x:y:z])) &= &\tau([a^2yz : b^2zx : c^2xy]) = [a^2 \cdot b^2zx \cdot c^2xy : b^2 \cdot c^2xy \cdot a^2yz : c^2 \cdot a^2yz \cdot b^2zx]\\
    &= & [a^2b^2c^2x^2yz : a^2b^2c^2y^2zx : a^2b^2c^2z^2xy] = [x:y:z].
    \end{array}\quad \square$$

    Λήμμα 2

    Για κάθε σημείο \(P=[x:y:z]\) με \(xyz\neq 0\), ισχύει \(P\in\mathscr{O}\) αν και μόνο αν \(\tau(P)\) ανήκει στην ευθεία \(L_\infty: X+Y+Z=0\).

    Απόδειξη. Έστω \(\tau(P)=[X:Y:Z]=[a^2yz:b^2zx:c^2xy]\). Τότε

    $$X+Y+Z = a^2yz + b^2zx + c^2xy$$
    Άρα $$X+Y+Z=0 \Leftrightarrow a^2yz + b^2zx + c^2xy=0 \Leftrightarrow P\in\mathscr{O}. \quad \square$$

    Λήμμα 3

    Αν η ευθεία \(L: ux+vy+wz=0\) δεν διέρχεται από καμία κορυφή του \(\triangle ABC\), τότε \(uvw\neq 0\).

    Απόδειξη. Αν \(u=0\), τότε το \(A=[1:0:0]\) ικανοποιεί την \(L\). Όμοια για \(v,w. \quad \square\)

    Θεώρημα

    Έστω ευθεία \(L: ux+vy+wz=0\) στο επίπεδο του \(\triangle ABC\) που δεν διέρχεται από καμία κορυφή του. Το σύνολο \(\mathscr{L}={\tau(P) : P\in L,\ xyz\neq 0}\) είναι περιγεγραμμένη κωνική τομή του \(ABC\), η \(\tau\) είναι τετραγωνική απεικόνιση. Επιπλέον:
    Αν η \(L\) τέμνει τον \(\mathscr{O}\) σε δύο διακεκριμένα σημεία, η \(\mathscr{L}\) είναι υπερβολή.
    Αν η \(L\) εφάπτεται του \(\mathscr{O}\), η \(\mathscr{L}\) είναι παραβολή.
    Αν η \(L\) δεν έχει κοινά πραγματικά σημεία με τον \(\mathscr{O}\), η \(\mathscr{L}\) είναι έλλειψη.

    Απόδειξη.
    Έστω \(P=[x:y:z]\in L\) με \(xyz\neq 0\). Τότε \(ux+vy+wz=0\).
    Έστω \([X:Y:Z]=\tau(P)=[a^2yz:b^2zx:c^2xy]\). Επειδή \(xyz\neq 0\), έχουμε \(X,Y,Z\neq 0\), άρα:

    $$x = \frac{b^2c^2YZ}{a^2b^2c^2xyz} \cdot a^2yz = \lambda a^2yz,\ \text{κ.ο.κ.}$$
    Ακριβέστερα, από \(X=a^2yz,\ Y=b^2zx,\ Z=c^2xy\) παίρνουμε:

    $$x = \frac{YZ}{b^2c^2x},\ \text{άρα}\ x^2 = \frac{Y Z}{b^2c^2} $$ %\Rightarrow x = \frac{k}{a^2}YZ$$

    για κάποιο \(k\). Απαλείφοντας, καταλήγουμε στη σχέση:

    $$\mathscr{L}:\ x : y : z = \frac{a^2}{X} : \frac{b^2}{Y} : \frac{c^2}{Z}$$
    Αντικαθιστώντας στην \(ux+vy+wz=0\):

    $$u\frac{a^2}{X} + v\frac{b^2}{Y} + w\frac{c^2}{Z} = 0 \ \Rightarrow\ ua^2YZ + vb^2ZX + wc^2XY = 0$$
    Αυτή είναι ομογενής εξίσωση 2ου βαθμού. Άρα η \(\mathscr{L}\) είναι κωνική τομή. Για \(Y=Z=0\) η εξίσωση ικανοποιείται, άρα \(A=[1:0:0]\in\mathscr{L}\). Όμοια \(B,C\in\mathscr{L}\). Άρα η \(\mathscr{L}\) είναι περιγεγραμμένη.

    Για το είδος της κωνικής, εξετάζουμε τα σημεία τομής της \(\mathscr{L}\) με την ευθεία στο άπειρο \(L_\infty: X+Y+Z=0\). Λόγω του Λήμματος 2, ένα σημείο \(\tau(P)\in\mathscr{L}\cap L_\infty\) αν και μόνο αν \(P\in L\cap\mathscr{O}\).

    Συνεπώς το πλήθος των πραγματικών σημείων στο άπειρο της \(\mathscr{L} \) ισούται με \(|L\cap\mathscr{O}|\).

    Το σύστημα \(ux+vy+wz=0,\ a^2yz+b^2zx+c^2xy=0\) έχει 0, 1 ή 2 πραγματικές λύσεις, ανάλογα αν η \(L\) δεν τέμνει, εφάπτεται ή τέμνει τον \(\mathscr{O}\). Αυτό καθορίζει αν η \(\mathscr{L}\) έχει \(0, 1\) ή \(2\) σημεία στο άπειρο, δηλαδή αν είναι έλλειψη, παραβολή ή υπερβολή αντίστοιχα. \(\blacksquare\)

    Παρακάτω δίνουμε ένα κώδικα στη Python ο οποίος μπορεί να δεχθεί στην είσοδο παραμέτρους \(a,b,c,p,q\), οι οποίες αντιπροσωπεύουν τις κορυφές του τριγώνου \(A(0,0)\), \(B(a,0)\), \(C(b,c)\) και την ευθεία \(y=px+q\).

    Python
    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.patches import Circle
    import sympy as sp
    def isogonal_locus(a, b, c, d, e, save_name='locus_output.png'):
    """
    A(0,0), B(a,0), C(b,c)
    Ευθεία: y = d*x + e
    """
    if abs(c) < 1e-12:
    raise ValueError("Το C δεν μπορεί να είναι στην ευθεία AB, δηλαδή c≠0")
    # 1. Πλευρές στο τετράγωνο
    a2 = (a - b)**2 + c**2 # BC^2
    b2 = b**2 + c**2 # CA^2
    c2 = a**2 # AB^2
    # 2. Ευθεία y = d*x + e σε βαρυκεντρικές lx + my + nz = 0
    # x = a*Y + b*Z, y = c*Z, X+Y+Z=1
    # d*(aY + bZ) + e = cZ => e*X + (d*a + e)*Y + (d*b - c + e)*Z = 0
    l = e
    m = d*a + e
    n = d*b - c + e
    # 3. Κωνική σε βαρυκεντρικές: l*a2*Y*Z + m*b2*Z*X + n*c2*X*Y = 0
    # Μετατροπή σε καρτεσιανές: X = 1-Y-Z, Y = (c*x - b*y)/(a*c), Z = y/c
    xs, ys = sp.symbols('x y')
    Zs = ys / c
    Ys = (c*xs - b*ys) / (a*c)
    Xs = 1 - Ys - Zs
    conic_eq = sp.expand(l*a2*Ys*Zs + m*b2*Zs*Xs + n*c2*Xs*Ys)
    conic_eq = sp.Eq(conic_eq, 0)
    # 4. Σχεδίαση
    def conic_xy(x, y):
    Z = y / c
    Y = (c*x - b*y) / (a*c)
    X = 1 - Y - Z
    return l*a2*Y*Z + m*b2*Z*X + n*c2*X*Y
    x_min = min(0, a, b) - 0.5*abs(a)
    x_max = max(0, a, b) + 0.5*abs(a)
    y_min = min(0, c) - 0.5*abs(c)
    y_max = max(0, c) + 0.5*abs(c)
    x_vals = np.linspace(x_min, x_max, 600)
    y_vals = np.linspace(y_min, y_max, 600)
    Xg, Yg = np.meshgrid(x_vals, y_vals)
    F = conic_xy(Xg, Yg)
    # Περιγεγραμμένος κύκλος
    D = 2 * (a*c)
    if abs(D) > 1e-10:
    ux = (a**2 * c) / D
    uy = (a * (b**2 + c**2 - a*b)) / D
    circ_center = (ux, uy)
    circ_R = np.hypot(ux, uy)
    else:
    circ_center, circ_R = (0, 0), 0
    plt.figure(figsize=(8, 8))
    plt.contour(Xg, Yg, F, levels=[0], colors='blue', linewidths=2, label='Ισογωνικός τόπος')
    plt.plot(x_vals, d*x_vals + e, 'r--', label=f'Ευθεία: y = {d}x + {e}')
    plt.plot([0, a, b, 0], [0, 0, c, 0], 'k-', lw=2, label='Τρίγωνο ABC')
    plt.scatter([0, a, b], [0, 0, c], c='k', zorder=5)
    for pt, name in [((0, 0), 'A'), ((a, 0), 'B'), ((b, c), 'C')]:
    plt.text(pt[0] + 0.1, pt[1] + 0.1, name, fontsize=12)
    if circ_R > 0:
    circ = Circle(circ_center, circ_R, fill=False, color='green',
    ls=':', lw=1.5, label='Περιγεγραμμένος κύκλος')
    plt.gca().add_patch(circ)
    plt.gca().set_aspect('equal')
    plt.grid(True, alpha=0.3)
    plt.legend()
    plt.title(f'A(0,0), B({a},0), C({b},{c}) | y={d}x+{e}')
    plt.tight_layout()
    plt.savefig(save_name, dpi=150) # Τοπικό path
    plt.show()
    return conic_eq
    if __name__ == "__main__":
    print("Δώσε τα a,b,c για A(0,0), B(a,0), C(b,c)")
    a = float(input("a = "))
    b = float(input("b = "))
    c = float(input("c = "))
    print("Δώσε τα d,e για ευθεία y = dx + e")
    d = float(input("d = "))
    e = float(input("e = "))
    eq = isogonal_locus(a, b, c, d, e)
    print("\nΕξίσωση κωνικής:")
    sp.pprint(eq)
    print("\nΤο σχήμα αποθηκεύτηκε ως 'locus_output.png'")

    Αν \(a=5,\ b=4,\ c=7,\ p=-1.5,\ q=-3\) τότε ο αλγόριθμος δίνει την εξίσωση της έλλειψης: $$16.0x^2 + 8.35714285714286xy – 80.0x + 3.92857142857143y^2 – 51.7857142857143y = 0$$
    και το Σχήμα

    To γράφημα της έλλειψης στη Python.

    Αν \(a=5,\ b=4,\ c=7,\ p=-0.5,\ q=3\) τότε ο αλγόριθμος δίνει την εξίσωση της έλλειψης: $$6.0x^2 + 0.785714285714285xy – 30.0x – 3.07142857142857y^2 + 21.7857142857143y = 0$$

    Το γράφημα της υπερβολής στη Python.

    Αν \(a=10,\ b=1,\ c=6,\ p=2.2222,\ q=4.5\), ( η ευθεία εφάπτεται του περιγεγραμμένου κύκλου στο \(\triangle ABC\) ) τότε ο αλγόριθμος δίνει την εξίσωση της παραβολής: $$-0.7222x^2 – 8.6665xy + 7.222x – 25.9998y^2 + 163.582y = 0$$

    Το γράφημα της παραβολής στη Python

  • Proof of Problem 10 – A Geometric Locus: Isogonal Image of a Line

    Let \(ABC\) be a triangle in \(\mathbb{P}^2_{\mathbb{R}}\) and \(L\) a line not through any vertex. Then the isogonal conjugate
    $$
    \mathcal{L} = {\tau(P) : P \in L}
    $$
    is a circumconic of \(ABC\). Moreover \(\mathcal{L}\) is a parabola, ellipse, or hyperbola according as \(L\) is tangent to, disjoint from, or secant to the circumcircle \(\mathcal{O}\).

    Proof
    Barycentrics: \(P=[x:y:z]\), \(A=[1:0:0],\ B[0:1:0],\ C= [0:0:1]\), etc. Let \(a=|BC|\), \(b=|CA|\), \(c=|AB|\).

    $$
    \tau([x:y:z])=[a^{2}yz : b^{2}zx : c^{2}xy], \quad \mathcal{O}: a^{2}yz + b^{2}zx + c^{2}xy =0.
    $$

    Lemma 1: \(\tau\) is an involution. \(\square\)
    Lemma 2: \(P\in\mathcal{O} \iff \tau(P)\in L_{\infty}:X+Y+Z=0\).
    Lemma 3: If \(L:\ ux+vy+wz=0\) avoids vertices then \(uvw\ne0\).

    For \([X:Y:Z]=\tau([x:y:z])\) we have \(X=a^{2}yz\) etc., hence
    $$
    x:y:z = \frac{a^{2}}{X} : \frac{b^{2}}{Y} : \frac{c^{2}}{Z}.
    $$
    Substituting in \(ux+vy+wz=0\):
    $$
    \mathcal{L}: \; u a^{2} YZ + v b^{2} ZX + w c^{2} XY = 0.
    $$
    This is degree 2, non-degenerate (\(uvw\ne0\) ), and \(A,B,C\) satisfy it, so \(\mathcal{L}\) is a circumconic.

    A conic meets \(L_{\infty}\) in \(0,1,2\) real points iff it is ellipse, parabola, hyperbola. By Lemma 2, \(\mathcal{L}\cap L_{\infty}\) corresponds bijectively to \(L\cap\mathscr{O}\), giving the three cases. \(\blacksquare\)

    Below, we provide Python code that can accept parameters \(a=5,\ b=4,\ c=7,\ p=-1.5,\ q=-3\) then, the algorithm gives the equation of the ellipse: $$16.0x^2 + 8.35714285714286xy – 80.0x + 3.92857142857143y^2 – 51.7857142857143y = 0$$

    Python
    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.patches import Circle
    import sympy as sp
    def isogonal_locus(a, b, c, d, e, save_name='locus_output.png'):
    """
    A(0,0), B(a,0), C(b,c)
    Ευθεία: y = d*x + e
    """
    if abs(c) < 1e-12:
    raise ValueError("Το C δεν μπορεί να είναι στην ευθεία AB, δηλαδή c≠0")
    # 1. Πλευρές στο τετράγωνο
    a2 = (a - b)**2 + c**2 # BC^2
    b2 = b**2 + c**2 # CA^2
    c2 = a**2 # AB^2
    # 2. Ευθεία y = d*x + e σε βαρυκεντρικές lx + my + nz = 0
    # x = a*Y + b*Z, y = c*Z, X+Y+Z=1
    # d*(aY + bZ) + e = cZ => e*X + (d*a + e)*Y + (d*b - c + e)*Z = 0
    l = e
    m = d*a + e
    n = d*b - c + e
    # 3. Κωνική σε βαρυκεντρικές: l*a2*Y*Z + m*b2*Z*X + n*c2*X*Y = 0
    # Μετατροπή σε καρτεσιανές: X = 1-Y-Z, Y = (c*x - b*y)/(a*c), Z = y/c
    xs, ys = sp.symbols('x y')
    Zs = ys / c
    Ys = (c*xs - b*ys) / (a*c)
    Xs = 1 - Ys - Zs
    conic_eq = sp.expand(l*a2*Ys*Zs + m*b2*Zs*Xs + n*c2*Xs*Ys)
    conic_eq = sp.Eq(conic_eq, 0)
    # 4. Σχεδίαση
    def conic_xy(x, y):
    Z = y / c
    Y = (c*x - b*y) / (a*c)
    X = 1 - Y - Z
    return l*a2*Y*Z + m*b2*Z*X + n*c2*X*Y
    x_min = min(0, a, b) - 0.5*abs(a)
    x_max = max(0, a, b) + 0.5*abs(a)
    y_min = min(0, c) - 0.5*abs(c)
    y_max = max(0, c) + 0.5*abs(c)
    x_vals = np.linspace(x_min, x_max, 600)
    y_vals = np.linspace(y_min, y_max, 600)
    Xg, Yg = np.meshgrid(x_vals, y_vals)
    F = conic_xy(Xg, Yg)
    # Περιγεγραμμένος κύκλος
    D = 2 * (a*c)
    if abs(D) > 1e-10:
    ux = (a**2 * c) / D
    uy = (a * (b**2 + c**2 - a*b)) / D
    circ_center = (ux, uy)
    circ_R = np.hypot(ux, uy)
    else:
    circ_center, circ_R = (0, 0), 0
    plt.figure(figsize=(8, 8))
    plt.contour(Xg, Yg, F, levels=[0], colors='blue', linewidths=2, label='Ισογωνικός τόπος')
    plt.plot(x_vals, d*x_vals + e, 'r--', label=f'Ευθεία: y = {d}x + {e}')
    plt.plot([0, a, b, 0], [0, 0, c, 0], 'k-', lw=2, label='Τρίγωνο ABC')
    plt.scatter([0, a, b], [0, 0, c], c='k', zorder=5)
    for pt, name in [((0, 0), 'A'), ((a, 0), 'B'), ((b, c), 'C')]:
    plt.text(pt[0] + 0.1, pt[1] + 0.1, name, fontsize=12)
    if circ_R > 0:
    circ = Circle(circ_center, circ_R, fill=False, color='green',
    ls=':', lw=1.5, label='Περιγεγραμμένος κύκλος')
    plt.gca().add_patch(circ)
    plt.gca().set_aspect('equal')
    plt.grid(True, alpha=0.3)
    plt.legend()
    plt.title(f'A(0,0), B({a},0), C({b},{c}) | y={d}x+{e}')
    plt.tight_layout()
    plt.savefig(save_name, dpi=150) # Τοπικό path
    plt.show()
    return conic_eq
    if __name__ == "__main__":
    print("Δώσε τα a,b,c για A(0,0), B(a,0), C(b,c)")
    a = float(input("a = "))
    b = float(input("b = "))
    c = float(input("c = "))
    print("Δώσε τα d,e για ευθεία y = dx + e")
    d = float(input("d = "))
    e = float(input("e = "))
    eq = isogonal_locus(a, b, c, d, e)
    print("\nΕξίσωση κωνικής:")
    sp.pprint(eq)
    print("\nΤο σχήμα αποθηκεύτηκε ως 'locus_output.png'")

    The graph illustrating the configuration.

    The graph of the ellipse.

    If \(a=5,\ b=4,\ c=7,\ p=-0.5,\ q=3\) then, the algorithm gives the equation of the hyperbola: $$6.0x^2 + 0.785714285714285xy – 30.0x – 3.07142857142857y^2 + 21.7857142857143y = 0$$ with the graph illustrating the configuration.

    The graph of the hyperbola.

    If \(a=10,\ b=1,\ c=6,\ p=2.2222,\ q=4.5\), (tangent to the circle) hen, the algorithm gives the equation of the parabola: $$-0.7222x^2 – 8.6665xy + 7.222x – 25.9998y^2 + 163.582y = 0$$

    The graph of the parabola.
  • 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)$$ ↩︎
  • Μια Γενίκευση του θέματος Γεωμετρίας της Ολυμπιάδας 2007

    Το πρόβλημα Γεωμετρίας στην ΙΜΟ 2007

    (ΙΜΟ 2007) Δίνεται1 τρίγωνο \(\mathrm{ABC}\) με την διχοτόμο της γωνίας \(\mathrm{\widehat{BCA}}\) να τέμνει τον περιγεγραμμένο κύκλο στο τρίγωνο, στο σημείο \(R\), την μεσοκάθετο της \(\mathrm{BC}\) στο \(P\) και την μεσοκάθετο της \(\mathrm{A\Gamma}\) στο \(Q\). Αν \(K\) το μέσο της \(\mathrm{BC}\) και \(L\) το μέσο της \(\mathrm{A\Gamma}\), αποδείξτε ότι τα τρίγωνα \(\mathrm{RPK}\) και \(\mathrm{RQL}\) έχουν το ίδιο εμβαδόν.

    Σχ. 1: IMO 2007

    Αυτό που θα μας απασχολήσει εδώ, είναι η γενίκευση του παραπάνω προβλήματος στις κωνικές. Η ιδέα της γενίκευσης μου αναφέρθηκε σε μια προφορική συζήτηση που είχα το 2012 στη Σόφια με τον Vesselin Nenkov, υποψήφιος τότε διδάκτορας υπο την επίβλεψη του prof. Sava Grozdev. Ο Nenkov θα εργαζόταν με βαρυκεντρικές συντεταγμένες εξ αιτίας του μεγάλου αριθμού πράξεων που απαιτούσε η γενίκευση καθώς είναι και προσαρμοσμένες καλύτερα σε θέματα γενίκευσης ιδιοτήτων περιγεγραμμένου κύκλου από την αναλυτική γεωμετρία (η μεθοδολογία της κλασικής γεωμετρίας καταρρέει). Δεν γνωρίζω πως εργάστηκε τελικά στο διδακτορικό του. Οι υπολογιστές όμως άλλαξαν τα δεδομένα, η υπολογιστική αξία έχει πέσει. Το ενδιαφέρον μου την εποχή εκείνη είχε επικεντρωθεί στην αλγεβρική διάσταση του γεωμετρικού προβλήματος και εργάστηκα τότε με τη μέθοδο Wu και Grοebner. Δεν ήταν δύσκολο να γενικεύσω το αποτέλεσμα του Προβλήματος, αλλά ξανακοιτώντας την άσκηση μετά από 15 χρόνια είδα ποιο κομψές και προσιτές λύσεις πάντα με τη βοήθεια των Computer Algebra Systems και της Αφινικής Γεωμετρίας όπου κατα τη γνώμη μου ανήκουν αυτές οι γενικεύσεις.

    Ένα άλλο θέμα που έχει νομίζω ενδιαφέρον διδακτικό πρωτίστως, είναι πως θα γενικευθεί το πρόβλημα στις κωνικές. Για παράδειγμα, όπως μπορείτε να δείτε όλες οι αποδείξεις που έχουν δοθεί μέχρι σήμερα, βασίζονται στο ότι τα δύο σημεία \(P\) και \(Q\) είναι σημεία των μεσοκαθέτων των πλευρών με τη διχοτόμο. Στην παραβολή όμως κέντρο είναι ένα σημείο στο άπειρο. Άρα, το σημείο \(R\) θα είναι η τομή της παραλλήλου από το μέσο \(M\) της \(BC\) προς τον άξονα της παραβολής, με την παραβολή2.

    Γενίκευση σε παραβολή

    Σε αυτήν την ενότητα, γενικεύουμε το Πρόβλημα στην περίπτωση μιας παραβολής. Αυτή η γενίκευση υποκινείται από την παρατήρηση ότι το αρχικό πρόβλημα βασίζεται σε ιδιότητες του περιγεγραμμένου κύκλου, οι οποίες δεν ισχύουν άμεσα για κωνικές τομές όπως οι παραβολές. Ωστόσο, χρησιμοποιώντας αφινική γεωμετρία, μπορούμε να επεκτείνουμε το αποτέλεσμα σε αυτήν την περίπτωση.

    Έστω \(\mathrm{\triangle ABC}\) τυχόν τρίγωνο, για το οποίο τα σημεία \(K, L\) και \(M\) είναι τα μέσα αντίστοιχα των τμημάτων \(\mathrm{BC, CA,AB}\), και \(\mathscr{P}\) είναι τυχούσα παραβολή περιγεγραμμένη γύρω από το \(\mathrm{\triangle ABC}\). Οι ευθείες \(k\), \(l\) και \(m\) διέρχονται αντίστοιχα από τα \(K, L\) και \(M\) και είναι παράλληλες προς τον άξονα της \(\mathscr{P}\). Αν \(P = k \cap RC\), \(Q = l \cap CR\) και \(R = m \cap \mathscr{P}\), τότε τα εμβαδά των τριγώνων \(\mathrm{\triangle RPK}\) και \(\mathrm{\triangle RQL}\) είναι ίσα με \(\frac{1}{8}\) του εμβαδού του \(\mathrm{\triangle ABC}\).

    Σχ. 2: Γενίκευση του προβλήματος, ΙΜΟ 2007, σε παραβολή.

    Είναι γνωστό ότι το κέντρο της παραβολής είναι στο άπειρο. Τα δύο τρίγωνα \(\mathrm{\triangle RPK}\) και \(\mathrm{\triangle RQL}\) έχουν το ίδιο εμβαδόν αλλά δεν εξαρτάται από τη διεύθυνση του άξονα της παραβολής παρά από το ίδιο το τρίγωνο.

    Για να καταλάβουμε την απόδειξη, θα σημειώσουμε ότι δουλεύουμε στον αφινικό χώρο και έτσι κανένα από τα δεδομένα του προβλήματος δεν αλλάζει. Δεν μιλάει για γωνίες, αποστάσεις ή κύκλους.

    Θεωρώ το τρίγωνο με κορυφές \(A(0,0)\), \(B(1,0)\) και \(C=(0,1)\). Ένα οποιοδήποτε τρίγωνo \(\triangle DEZ\) μέσω της αφινικής απεικόνισης
    $$T: (a,b) \rightarrow D+a (E-D)+b (Z-D)$$ πάει το τρίγωνο \(\triangle ABC\) στο \(\triangle DEZ\) με $$T(0,0)=D,\ T(1,0)=E,\ T(0,1)=Z$$ Στην περίπτωσή μας το εμβαδόν \((\triangle ABC)=\frac{1}{2}\).

    Υποθέτουμε ότι ο άξονας της παραβολής, \(\mathscr{P}\), στην οποία το τρίγωνο \(\triangle ABC\) είναι εγγεγραμμένο έχει άξονα τη διεύθυνση του διανύσματος \(\overrightarrow{w}=(p,q)\neq (0,0)\), έτσι ώστε να μην είναι παράλληλος σε καμία πλευρά του τριγώνου.

    Τα μέσα των πλευρών \(K,L,M\) έχουν αντίστοιχα συντεταγμένες:
    $$Κ=\left(\frac{1}{2},\frac{1}{2}\right),\ L=\left(0,\frac{1}{2}\right),\ M=\left(\frac{1}{2},0\right)$$

    Σχ. 3: Γενίκευση του προβλήματος σε αφινικό χώρο.

    Πρώτα θα βρούμε τώρα τον τύπο της παραβολής, έχουμε τρία σημεία της, και τη διεύθυνση του άξονα.

    Η παραβολή διέρχεται από το \((0,0)\) άρα η γενική της μορφή είναι:
    $$\mathscr{P}:\ a x^2+b xy+c y^2+d x+e y=0$$

    Συνθήκες

    • Το \(B(1,0)\) ανήκει στην \(\mathscr{P}\): \(p1:=a+d=0\).
    • Το \(C(0,1)\) ανήκει στην \(\mathscr{P}\): \(p2:=c+e=0\).
    • H \(\mathscr{P}\) είναι παραβολή3: \(p3:=b^2-4ac=0\).
    • Από το ότι το άπειρο σημείο \((p:q:0)\) ανήκει στην ομογενή εξίσωση της παραβολής:$$a x^2+b xy+c y^2+d x z+e y z +l z^2$$ έχουμε: \(p4:=a p^2+b pq+c q^2=0\).

    Χρησιμοποιώντας αλγορίθμους της βάσης Groebner μπορούμε να απαλείψουμε από τη λίστα $$\{p1,p2,p3,p4,p5\}, \hbox{ όπου } p5:=a x^2+b xy+c y^2+d x+e y$$ τις μεταβλητές \({a,b,c,d}\), θα πάρουμε το πολυώνυμο της παραβολής (με παράμετρο \(e\neq 0\) ) :

    $$\mathscr{P}: q^2x^2-q^2x+y^2p^2-yp^2-2qpyx=0\quad (1)$$

    Οι υπολογισμοί γίνανε στο Maple. Η απαλοιφή με το χέρι είναι μάταιη αν δεν χρησιμοποιηθούν βαρυκεντρικές συντεταγμένες.

    • Βρίσκω το σημείο \(R = m \cap \mathscr{P}\). To σημείο \(M=\left(\frac{1}{2},0\right)\) ανήκει στην \(m\) και είναι παράλληλη στο \(\overrightarrow{w}=(p,q)\), άρα: $$x=\frac{1}{2}+up\ \&\ y=uq$$ Αντικαθιστούμε τα \(x,y\) στην εξίσωση (1) και λύνουμε ως προς \(u\) (πάντα στο Maple): $$u=-\frac{q}{4p(p+q)}$$ Άρα το σημείο \(R=\left(\frac{2p+q}{4p(p+q)},-\frac{q^2}{4p(p+q)}\right)\).
    • Βρίσκω το σημείο \(P = k \cap RC\). Η \(RC\) περνά από \(C(0,1)\) και \(R\). H κλίση της είναι: $$m_{RC}= \frac{y_R-1}{x_R}= -\frac{2p+q}{p}$$ $$CR:\; y = 1 -\frac{2p+q}{p}x\ (2)$$ \(k\) από \(K(\tfrac12,\tfrac12):\ x=\tfrac12+sp,\;y=\tfrac12+sq\). Τομή με \(CR\), (2), δίνει \(s=-\frac{1}{4p}\): $$P=\left(\frac{1}{4},\frac{2p-q}{4p}\right)$$
    • Βρίσκω το σημείο \(Q = l \cap CR\). H ευθεία \(l\) διέρχεται από \(L(0,\tfrac12): x=tp,\;y=\tfrac12+tq\). Τομή με \(CR\), (2), (2) δίνει: \(t=\frac{1}{4(p+q)}\): $$Q=\left(\frac{p}{4(p+q)},\frac{2p+3q}{4(p+q)}\right)$$

    Βρίσκω τα εμβαδά

    • Το εμβαδόν του \((\triangle ABC)=\tfrac12\).
    • To εμβαδόν του \( (\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}$$
    • To εμβαδόν του \( (\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}$$

    Συνεπώς, \((\triangle RPK)=(\triangle RQL)=\tfrac18\cdot (\triangle ABC)\). \(\blacksquare \)

    Παρακάτω δίνουμε ένα κώδικα στη Python ο οποίος μπορεί να δεχθεί στην είσοδο παραμέτρους \(a,b,c,p,q\), οι οποίες αντιπροσωπεύουν τις κορυφές του τριγώνου \(A(0,0)\), \(B(a,0)\), \(C(b,c)\) και το διάνυσμα κατεύθυνσης του άξονα της παραβολής \(\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()

    Αν \(a=4,\ b=3,\ c=6,\ p=1,\ q=1\) τότε ο αλγόριθμος δίνει την εξίσωση της παραβολής: $$0.00173611x^2 – 0.00347222xy + 0.00173611y^2 – 0.00694444x + 0.000868056y = 0$$ τα εμβαδά των τριγώνων \( (\triangle RPK)=(\triangle RQL)=1.5\) και \( (\triangle ABC)=12\) καθώς και το γράφημα που απεικονίζει την κατάσταση στο πρόβλημα:

    Σχ. 4: To γράφημα της εξόδου της Python.

    \( \square \)

    Γενίκευση σε έλλειψη & υπερβολή

    Έχοντας γενικεύσει το πρόβλημα στην περίπτωση μιας παραβολής, επεκτείνουμε τώρα την ανάλυσή μας σε ελλείψεις και υπερβολές. Σε αντίθεση με τις παραβολές, αυτές οι κωνικές τομές έχουν ένα κέντρο, το οποίο μας επιτρέπει να χρησιμοποιήσουμε αφινικούς μετασχηματισμούς για να τις αντιστοιχίσουμε σε κύκλους, απλοποιώντας το πρόβλημα.

    Δίνεται τρίγωνο \(\triangle ABC\) και \(K,L\) και \(M\) τα μέσα των πλευρών \(BC\), \(AC\) και \(AB\) αντίστοιχα. Έστω \(\mathscr{C}\) η έλλειψη (υπερβολή) η περιγεγραμμένη στο τρίγωνο με κέντρο το σημείο \(O\). Αν \(R=\mathscr{C}\cap OM\) και \(R_1=\mathscr{C}\cap OR\), \(P=RC\cap OK\), \(Q=RC\cap OL\), \(P_1=OK\cap CR_1\) και \(Q_1=OL\cap CR_1\) . Δείξτε ότι τα ζεύγη τριγώνων \( (\triangle RPK\), \(\triangle RQL)\), \( (\triangle RPK\), \(\triangle R_1PK)\), \((\triangle RQL\), \(\triangle R_1QL)\), \( (\triangle RP_1K\), \(\triangle R_1P_1K)\), και \((\triangle RQQ_1\), \(\triangle R_1QQ_1)\), είναι ισεμβαδικά.

    Σχ. 5: Η γενίκευση σε έλλειψη.

    Η ιδέα στην κωνική με κέντρο είναι απλή. Η γενική ιδέα είναι να χρησιμοποιήσουμε αφινικό μετασχηματισμό. Η έλλειψη \(\mathscr{C}:\ \frac{x^2}{a^2}+\frac{y^2}{b^2}=1\) είναι περιγεγραμμένη στο τρίγωνο \(\triangle ABC\) με κέντρο \(O=(0,0)\). O αφινικός μετασχηματισμός4 μπορεί να στείλει την έλλειψη σε κύκλο, γιατί οι κωνικές είναι αφινικά ισοδύναμες. Επιλέγω έναν αφινικό μετασχηματισμό $$F(x,y)=\left(\frac{x}{a},\frac{y}{b}\right)$$ που στέλνει:

    • \(\mathscr{C}\stackrel{F}{\mapsto} \mathscr{C’}:\ x’^2+y’^2=1\) κύκλο με κέντρο το \(O’=(0,0)\).
    • \(A,B,C \stackrel{F}{\mapsto} A’,B’,C’\) αντίστοιχα.
    • \(K,L,M\stackrel{F}{\mapsto} K’,L’,M’\) (μέσα πλευρών, άρα διατηρούνται υπό τον αφινικό).
    • \(O\stackrel{F}{\mapsto} O’\) (το κέντρο κύκλου, δηλαδή συμπίπτει με το κέντρο του περιγεγραμμένου κύκλου του \(\triangle A’B’C’\) ).

    Ορισμός σημείων στον μετασχηματισμό

    Αν \(R=\mathscr{C}\cap OM\), τότε στον αφινικό \(R’=\mathscr{C}’\cap O’M\)$.

    Ομοίως, \(R_1=\mathscr{C}\cap OR\) δίνει \(R’_1=\mathscr{C}’\cap O’R’\), δηλαδή \(R’\) και \(R’_1\) είναι αντιδιαμετρικά στον κύκλο \(\mathscr{C}’\) ως προς \(O’\) (γιατί στην έλλειψη \(R_1\) είναι συμμετρικό του \(R\) ως προς κέντρο, εφόσον η \(OR\) είναι διάμετρος της έλλειψης).

    • \(P=CR\cap OK\) δίνει \(P’=C’R’\cap O’K’\).
    • \(Q=CR\cap OL\) δίνει \(Q’=C’R’\cap O’L’\).
    • \(P_1=OK\cap CR_1\) δίνει \(P’_1=O’K’\cap C’R’_1\) και
    • \(Q_1=OL\cap CR_1\) δίνει \(Q’_1=O’L’\cap C’R’_1\).
    Σχ. 6: Ο αφινικός μετασχηματισμός \(F\) στο Σχήμα 5.

    Σε συνδιασμό με το αρχικό Πρόβλημα, και τις συμμετρίες στη περίπτωση του κύκλου, όλα φαίνονται ελυκολα. Οι αναλογίες διατηρούνται με τον αφινικό μετασχηματισμό, δείτε το παραπάνω Σχήμα. Η ισοεμβαδικότητα των ζητούμενων τριγώνων στο αρχικό σχήμα είναι ισοδύναμη με την ισοεμβαδικότητα των εικόνων τους στο μετασχηματισμένο, αφού ο λόγος εμβαδού κάθε τριγώνου πολλαπλασιάζεται με τον ίδιο σταθερό παράγοντα \(\big|\det(F)\big|=\frac{1}{ab}\).\( \blacksquare \)

    1. Αποδείξεις μπορείτε να δείτε στα https://aops.com/community/p894655 ή https://www.cut-the-knot.org/triangle/EqualAreasIMO2007_Sol6.shtml ↩︎
    2. Λυγάτσικας Ζ., (2013): Κωνικές, Liberal, Αθήνα. Πρόβλημα 22 σελίδα 146. ↩︎
    3. Λυγάτσικας Ζ., (2013): Κωνικές, Liberal, Αθήνα. Αλγόριθμος 2.6.1 σελίδα 46. ↩︎
    4. Αν η έλλειψη είναι σε τυχαία θέση και προσανατολισμό, με εξίσωση (\(O\) το κέντρο της) και εξίσωση: \((x-O)^TM(x-O)=1\) όπου \(Μ\) συμμετρικός θετικά ορισμένος πίνακας \(2\times 2\). Ο μετασχηματισμός είναι \(F(x)=M^{\tfrac12}(x-O)\), και δίνει τον μοναδιαίος κύκλο. ↩︎
  • Άσκηση Γεωμετρίας Ευκλείδης 1974 Ε46 (Τ. Σακαλής)

    Δίδεται τρίγωνο \(ABC\) εγγεγραμμένο σε κύκλο \((O,R)\). Έστω \(D\) και \(M\) τα σημεία τομής της διχοτόμου της γωνίας \(Α\) με την \(BC\) και την περιφέρεια του \((O,R)\) αντίστοιχα.

    1. Αν \(I\) το έγκεντρο του τριγώνου \(ΑΒC\) δείξτε ότι: $$\frac{1}{ID}=\frac{1}{IA}+\frac{1}{IM}$$
    2. Αν \(K\) και \(L\) τα έγκεντρα των τριγώνων \(ABM\) και \(AC M\) αντίστοιχα, δείξτε ότι η γωνία $$\widehat{KIL}=90^o$$

    Απόδειξη:

    1. Θεωρούμε γνωστό ότι: $$MI=MB=MC\qquad (1)$$ όπως και το θεώρημα του Πτολεμαίου για το εγγεγραμμένο τετράπλευρο \(ΑBMC\) $$AB\cdot MC+AC\cdot MB=BC\cdot AM\qquad (2)$$ Από το θεώρημα διχοτόμων έχουμε: $$\begin{array}{lcl} \frac{AB}{BD}=\frac{AC}{CD}&=&\frac{AB+AC}{BD+CD}\\ &=&\frac{AB\cdot CM+AC\cdot CM}{BC\cdot CM}\\ &\stackrel{(1)}{=}& \frac{AB\cdot CM+AC\cdot BM}{BC\cdot IM}\\ &\stackrel{(2)}{=}& \frac{AM\cdot BC}{BC\cdot IM}\\ &=& \frac{AM}{IM}\\ \end{array}$$ Επίσης, \(\displaystyle{\frac{AB}{BD}=\frac{AI}{ID}=\frac{AM}{IM}}\) και: $$\frac{AM}{IM}=\frac{AI}{ID}\Leftrightarrow \frac{AI+IM}{IM\cdot IA}=\frac{1}{ID}\Leftrightarrow \frac{1}{IM}+\frac{1}{IA}=\frac{1}{ID}$$
    1. Θα δείξω πρώτα ότι τα τετράπλευρα \(AIKB\) και \(AILC\) είναι εγγράψιμμα σε κύκλο. $$\widehat{AKB}=90^o+\frac{\widehat{BMA}}{2}$$ επίσης: $$\widehat{AIB}=180^o-\widehat{BIM}=90^o+\frac{\widehat{BMA}}{2}$$ Επομένως, \(\widehat{AKB}=\widehat{AIB}\) άρα, \(AIKB\) εγγράψιμμο όπως και το \(AILC\) για την αντίστοιχη αιτία. $$\begin{array}{rcl} \widehat{ABI}=\frac{\widehat{ABM}}{2}&=&\widehat{KID}\\ \widehat{ACL}=\frac{\widehat{ACM}}{2}&=&\widehat{LID}\\ (+)\qquad \quad \qquad \quad \qquad &&\\ \hline &&\\ 90^o&=&\widehat{KID}+\widehat{LID}=\widehat{KIL} \end{array}$$ \(\blacksquare\)
  • 15 Problems in Geometry

    1. Given a triangle ABC. The centroid G, the orthocenter H, and the center E of the Euler circle belong to the line (the Euler line). Also EH = EO.
    Problem 1
    1. Given a quadrilateral \(ABCD\). If \(G_a\) is the centroid of the triangle \(BCD\) opposite the vertex A, and similarly the centroids \(G_b\), \(G_c\), \(G_d\), the centroids of the corresponding triangles, show that the lines \(ΑG_a\), \(ΒG_b\), \(CG_c\) and \(DG_d\) intersect at the point \(G\).
    Problem 2
    1. Given a quadrilateral \(ABCD\) inscribed in a circle with center O. If \(H_a\) is the orthocenter of \(BCD\), \(H_b\) is the orthocenter of \(ACD\), \(H_c\) is the orthocenter of \(ABD\), \(H_d\) is the orthocenter of \(ABC\), show that the lines \(AH_a\), \(BH_b\), \(CH_c\), \(DH_d\) intersect at the point H.
    Problem 3
    1. Given an inscribed quadrilateral \(ABCD\) in a circle with center O. If H is the point in problem 3 and G the point in problem 2, then the points O, H, G are collinear and G is the midpoint of HO. The line HO is called the Euler line of the inscribed quadrilateral. $$\frac{GO}{GH}=-1$$
    Problem 4
    1. Given a quadrilateral \(ABCD\) inscribed in a circle with center \(O\). Let \(G_a\), \(G_b\), \(G_c\), \(G_d\) , as in Problem 2. Then, these points are homocyclic and this circle is called the Euler circle for the inscribed quadrilateral \(ABCD\). Show that the center \(E\) of the Euler circle belongs to the Euler line of \(ABCD\).
    Problem 5
    1. Let I be the incenter of triangle \(ABC\). Then the Euler lines of triangles \(AIC,\ AIB,\ BIC\) and \(ABC\) converge at a point \(S_h\), which is called the Schiffler point1.
    Problem 6
    1. Let \(I_a\) be the paracenter of triangle \(ABC\). Then the Euler lines of triangles \(ABI_a\), \(ACI_a\), \(BCI_a\) are either concurrent or parallel.
    Problem 7
    1. Given an equilateral triangle \(ABC\) and a point \(P\) in its plane, the Euler lines of the triangles \(APB\), \(APC\), and \(BPC\) are either concurrent or parallel.
    Problem 8
    1. Let \(ABC\) be a triangle and \(P\) a point in the plane. An isogonal2 of \(CP\) is a line that forms an equal angle with the angle bisector of angle \(C\). Show that the isogonals of \(AP\), \(BP\), and \(CP\) intersect at a point \(Q\). We will call the point \(Q\) the isogonal conjugate of \(P\) in triangle \(ABC\).
    Problem 9
    1. Given a triangle \(ABC\) and a point \(P\) moving along a line, its isogonal conjugate \(Q\) with respect to triangle \(ABC\) moves along a conic. The conic is:
      • a parabola if it is tangent to the circumcircle,
      • an ellipse if the line does not intersect the circumcircle and
      • a hyperbola if it intersects the circumcircle.
    Problem 10
    1. Given an equilateral triangle \(ABC\) and its excenters \(I_a, I_b, I_c\). Let a point \(Q\) lie on the locus of the isogonal conjugate \(K\) of a point \(P\), where \(P\) belongs to the circumcircle of triangle \(I_a I_b I_c\). Then, the Euler lines of triangles \(QAB\), \(QAC\), and \(QBC\) are parallel.
    Problem 11
    1. Let triangle \(ABC\) be given and let \(P\) be a point in its plane. Prove that the Euler circles (nine-point circles) of the triangles \(ABC\), \(ABP\), \(ACP\), and \(BCP\) are concurrent.
    Problem 12
    1. Let \(ABC\) be a triangle and \(P\) a point in its plane. Let \(P_a, P_b\) and \(P_c\) be the points of intersection of the lines \(AP, BP\) and \(CP\) with the sides of the triangle, respectively, and let \(P’_a, P’_b\) and \(P’_c\) be the midpoints of \(AP, BP\) and \(CP\), respectively. The conic passing through these points also passes through the midpoints of the sides of the triangle. This conic is called the Euler curve of the point \(P\).
    Problem 13
    1. The Euler curve of a point \(P\) passes through the intersection points of the Euler circles of the triangles \(ABC\), \(ABP\), \(ACP\), and \(BCP\).
    Problem 14
    1. Let \(ABC\) be a triangle with orthocenter \(H\). Let \(O_a\), \(O_b\), and \(O_c\) denote the midpoints of \(AH\), \(BH\), and \(CH\), respectively.
      Let \(P\) be an arbitrary point in the plane. The line \(PH\) meets the circles with centers \(O_a\), \(O_b\), and \(O_c\) and radii \(O_aH\), \(O_bA\), and \(O_cB\) again at \(H_a\), \(H_b\), and \(H_c\), respectively.
      The tangents to these circles at \(H_a\), \(H_b\), and \(H_c\) intersect pairwise at points \(A_1\), \(B_1\), and \(C_1\).
      Prove that the circumcircles of triangles \(ABC\) and \(A_1B_1C_1\) are tangent.
    Problem 15
    1. Lev Emelyanov and Tatiana Emelyanova: A Note on the Schiffler Point, Forum Geometricorum Volume 3 (2003) 113–116.) ↩︎
    2. See wikipedia ↩︎
  • H Γεωμετρική διάσταση του θεωρήματος

    Θα προσπαθήσω να τυποποιήσω αυτό που λέμε σήμερα γεωμετρική διάσταση του θεωρήματος των ενδιάμεσων τιμών. Σε αυτό θα μας βοηθήσει ο Robin Hartshorne δείτε στο “Geometry: Euclid and Beyond, Springer, 2000″.

    Ας υποθέσουμε ότι έχουμε δύο καμπύλες \(\gamma_1\) και \(\gamma_2\) ανάμεσα από 2 σημεία \(Α\) και \(Β\). Αν πάνω από το \(A\) έχουμε τη καμπύλη \(\gamma_1\) πάνω από τη καμπύλη \(\gamma_2\) και αντίστοιχα, πάνω από το σημείο \(B\) η καμπύλη \(\gamma_2\) είναι τώρα πάνω από τη καμπύλη \(\gamma_1\), τότε οι δύο καμπύλες τέμνονται.

    Η παρατήρηση αυτή θεωρήθηκε τόσο προφανής που δεν ασχολήθηκε κανείς μαθηματικός για την απόδειξή της. Οι δε Euler και Gauss θεωρούσαν το αποτέλεσμα γεωμετρικά προφανές.

    Η πρώτη πρόταση των Στοιχείων, Πρόταση (I.1), που φαίνεται ότι αφορά στην παραπάνω παρατήρηση, είναι μια κατασκευή που μας εκπλήσσει η φαινομενική της αφέλεια στο 1ο Βιβλίο των Στοιχείων του Ευκλείδη, αλλά είναι ενδιαφέρουσα.

    (Πρόταση Ι.1 – Στοιχεία): Με πλευρά δεδομένο ευθ. τμήμα να κατασκευασθεί ισόπλευρο τρίγωνο.

    Απόδειξη: Αν γράψω δύο κύκλος με κέντρα τα \(Β\) και \(\Gamma\) και ακτίνα ίση με \(B\Gamma\), τότε αν \(Α\) είναι το σημείο που τέμνονται οι κύκλοι, τότε \(ΑΒ=Β\Gamma =A\Gamma\) και το τρίγωνο είναι ισόπλευρο.\(\blacksquare\)

    Αν παρατηρήσατε τον συλλογισμό της κατασκευής, ο οποίος δεν διαφέρει από αυτόν που κάνει ο Ευκλείδης στα Στοιχεία, θα προσέξατε ότι δεν υπάρχει αξίωμα, ή πρότερη πρόταση, που να εξασφαλίζει ότι η τομή δύο κύκλων υπάρχει! Γιατί ο Ευκλείδης δεν αισθάνθηκε την ανάγκη να πεί το πότε τέμνονται δύο κύκλοι όπως αντίστοιχα έκανε στο 5ο αίτημα για τις ευθείες; Το θεώρησε δεδομένο;

    Υπάρχουν δύο διακριτά θέματα πάνω στο σημείο αυτό τα οποία ο Ευκλείδης ίσως δεν έδωσε σημασία:

    Το πρώτο αφορά τη σχετική θέση καμπυλών ή τη σχέση της ενδιαμεσότητας, όπως θα την δούμε στην αξιωματική θεμελίωση του Hilbert και δεύτερο τη συνέχεια μιας γραμμής ή μιας καμπύλης γενικότερα.

    Γνωρίζουμε ότι δύο κύκλοι τέμνονται αν βρεθούν σε μια συγκεκριμένη θέση μεταξύ τους. Αν οι κύκλοι δεν έχουν κοινά εσωτερικά σημεία τότε δεν τέμνονται, αν όμως υπάρχει ένα μέρος του ενός που έχει εσωτερικά κοινά σημεία με τον άλλον και ένα μέρος του έχει εξωτερικά με τον ίδιο κύκλο, τότε οι κύκλοι τέμνονται. Δηλαδή κατά κάποιο τρόπο οι κύκλοι τέμνονται αν διασταυρώνονται. Το τι σημαίνει ότι οι κύκλοι διασταυρώνονται ο Ευκλείδης το επιλύει παρακάτω στη κατασκευή τριγώνου όταν δίνονται τα τρία ευθ. τμήματα των πλευρών του, \(a\), \(b\) και \(c\). Εκεί, δίνει τη γνωστή σχέση που πρέπει να ικανοποιούν τα ευθ. τμήματα έτσι ώστε να υπάρχει το τρίγωνο με τα δεδομένα ευθ. τμήματα, \(a+b>c\). Στην περίπτωσή μας, \(2a>a\). Την έννοια αυτή θα την διευκρινίσει περισσότερο μετέπειτα ο Hilbert.

    Το δεύτερο θέμα αφορά τη συνέχεια. Πρέπει να υποθέσουμε ότι υπάρχει κάτι για να τμηθεί. Σήμερα, λέμε ότι αυτό συμβαίνει επειδή οι καμπύλες είναι συνεχείς και η ύπαρξη του κοινού σημείου ακολουθεί το θεώρημα Bolzano.

    ‘Αρα, δεν αρκεί μόνο εν γένει η σχετική θέση δύο καμπυλών να είναι τέτοια ώστε οι καμπύλες να τέμνονται, αλλά πρέπει επιπλέον οι καμπύλες να είναι συνεχείς με την σύγχρονη έννοια της τοπολογίας. Αυτό ήταν εντελώς άγνωστο στην εποχή του Ευκλείδη.

    Αλλά, και κάτι άλλο που έχει σχέση με το γεωμετρικό λογισμό: αν το μήκος του \(Β\Gamma\) είναι 1 μονάδα, στη Πρόταση Ι.1, τότε η κορυφή \(Α\) είναι το σημείο \(\Big(\displaystyle{1\over 2},\displaystyle{\sqrt{3}\over 2}\Big)\) το οποίο σημείο δεν υπάρχει στο Ευκλείδειο επίπεδο! Η αναγνώριση των μετρήσιμων ποσοτήτων έκανε τους Έλληνες γεωμέτρες να πιστέψουν ότι οι γεωμετρικές ποσότητες ήταν κάτι ποιο γενικό απο τους αριθμούς. Αυτή η αίσθηση γέννησε την ιδέα μιας άλγεβρας καθαρά γεωμετρικής που θα αντικαταστούσε την αριθμητική άλγεβρα που την κληρονόμησαν από τους Βαβυλωνίους. Για τον λόγο αυτό ο μεγάλος αυτός γεωμέτρης από καθαρή μαθηματική διαίσθηση αφήνει τη πρώτη πρόταση των Στοιχείων ανοικτή στο διάλογο τον οποίο φυσικά δεν μπορεί να τον προσδιορίσει.

    Η γεωμετρική προσέγγιση του θεωρήματος του Bolzano μέσα από τα Στοιχεία του Ευκλείδη έχει πλουσιότερο διδακτικό υλικό που απαρτίζεται από έννοιες και κατασκευές γνωστές σε ένα μαθητή της Β Λυκείου. Ωστόσο, μια απλή αναφορά στο θεώρημα του Bolzano, δεν δικαιολογεί από μόνη της την αναγκαιότητα ύπαρξης σε ένα μαθηματικό syllabus, χωρίς την αναφορά στην αναλυτική υπόσταση του θεωρήματος.

    Κάθε καμπύλη στο Καρτεσιανό επίπεδο ορίζει περιοχές (συνιστώσες) σημείων ανάλογα με το πρόσημο της εξίσωσης της καμπύλης στις συντεταγμένες των σημείων αυτών. Ο προσανατολισμός του επιπέδου σε περιοχές θετικές, μηδενικές και αρνητικές είναι μια τοπολογία που δείχνει την αντιστοιχία με τις υποθέσεις στο θεώρημα Bolzano.

  • Determination of the Number of Real Roots of Polynomial Equations. Sturm’s Algorithm

    When applying the interval bisection method to approximate the real roots of a polynomial equation \(p(x)=0\), we must consider certain extreme cases for which the methodology is not effective. The first step, in order to avoid redundant computations, is to eliminate multiple roots from the polynomial. For this reason, we should work with the quotient of the division $$p(x)\div GCD\big(p(x),p'(x)\big)$$ rather than directly with the original polynomial.

    The crash test of the method concerns, among other things (primarily algorithmic ones), two special cases from mathematics: polynomials with well-separated roots and polynomials with densely clustered roots.

    1. Polynomials with well-separed roots

    These polynomials are characterized by having some roots so far removed from the rest that we can easily ignore their existence. For example, the polynomial equation:

    p(x):=360x560017045x4+5700589350x339668427100x2+300004750x333333100=0p(x):=360x^5-\frac{6001704}{5}x^4+\frac{57005893}{50}x^3-\frac{39668427}{100}x^2+\frac{3000047}{50}x-\frac{333333}{100}=0

    has 5 roots, approximated to \(10^{-10}\) $$0.1666666667,\ 0.2000000000,\ 0.2500000000,\ 0.3333333333,\ 3333.330000$$
    Since we use the Intermediate Value Theorem to work with intervals, we must select appropriate intervals where roots could, at least theoretically, exist. There are 3 well-known theorems that provide the range of the interval for the roots of a polynomial.

    Theorem (Cauchy): Show that for every real root1 ,\(\varrho\), of the polynomial \(p(x)=x^{\nu}+a_{\nu-1}x^{\nu-1}+\dots+a_1x+a_0\) the following holds:
    $$|\varrho|<1+|a_{\nu-1}|+|a_{\nu-2}|+\dots +|a_1|+|a_0|$$

    The other two theorems (Cauchy, 1829 and Knuth, 1981) provide better bounds, but they are not exploitable for our purposes.

    Cauchy’s bound for the polynomial \(p(x)\) is \(3335.3\). Therefore, we must search for its roots in the interval $$(-3335.3,3335.3)$$

    1. Polynomials with closely clustered roots.

    These are the Mignotte polynomials. These polynomials are of the form $$x^n-2(bx-1)^2,\ b\in\mathbb{R}^*$$
    An example of such a polynomial is $$p(x)=x^{17}-2(6x-1)^2$$ with its graph shown in the figure on the right.
    This particular polynomial has three real roots, which to a certain approximation are: $$0.1666666380,\ 0.1666666953,\ 1.305918236$$
    As we can see, the first two roots are not easily distinguished; on the graph it looks as if the polynomial has a double root. The graph gives completely misleading information. Try large \(n\)!

    1. Sturm Sequence

    The theorem, here in its original form, gives us the number of distinct real roots of a univariate polynomial \(p(x)\) in an interval in terms of sign changes of a sequence of derived polynomials, called a Sturm sequence, evaluated at the endpoints of the interval. If we consider the interval of real numbers \((-\infty, +\infty)\), then the theorem gives the number of distinct real roots of the polynomial2. Sturm’s method provides the most efficient algorithm, and for this reason it is preferred.

    Theorem: Let \(p(x)=0\) be a polynomial in one variable with coefficients in an integral domain (or a field; such precision is not essential here). We require that the polynomial have no multiple (real) roots. Define the following sequence of polynomials: $$\left\{\begin{array}{lcl} p_0 &=& p\\ p_1 &=& p’\\ \dots &&\\ p_{i+1} &=& -rem(p_{i-1},p_i)\\ \end{array}\right .$$ where \(rem(p,q)\) denotes the remainder of the Euclidean division of \(p\) by \(q\). The length of such a sequence is at most equal to the degree of the polynomial \(p\). This sequence is called a Sturm sequence. The number of sign changes of the Sturm sequence at \(\varrho\) is the number of sign variations – ignoring zeros – of the sequence
    $$\left(p_0(\varrho), p_1(\varrho),\dots , p_n(\varrho)\right)$$
    and is denoted by \(V(\varrho)\).

    Then:

    1. The number \(V(a)-V(b)\), gives the number of real roots of the polynomial in the interval \((a,b]\), provided that \(p(a)\cdot p(b)\neq 0\).
    2. The number \(V(-\infty)-V(+\infty)\), gives the number of distict real roots of the polynomial \(p(x)\). \(\blacksquare\)

    Let us look at some examples:

    Let \(p(x)=x^3-17x-13\). The polynomial has no multiple roots, se we do not need to replace by $$p(x):=GCD(p,p’)$$ The Sturm sequence is: $$\left\{\begin{array}{lcl}
    p_0(x) &=& x^3-17x-13\\
    p_1(x) &=& p’_0(x)=3x^2-17\\
    p_2(x) &=& -rem(p_0(x),p_1(x))=13+\displaystyle{\frac{34}{3}x}\\
    p_3(x) &=& -rem(p_1(x),p_2(x))=\displaystyle{\frac{15089}{1156}}\\
    \end{array}\right .$$

    Then, the number of real roots of the polynomial is:
    $$V(-\infty)-V(+\infty) = (-,+,-,+)-(+,+,+,+)=3-0=3$$

    The polynomial has no real roots in the interval \((0,2]\) γιατί:
    $$V(0)-V(2) = (-,-,+,+)-(-,-,+,+)=1-1=0$$
    while it has real roots in the interval \((-4,0]\):
    $$V(-4)-V(0) = (-,+,-,+)-(-,-,+,+)=3-1=2$$ Now consider the more difficult Mignotte polynomial, \( p(x)=x^{5}-2(3x-1)^2\). The polynomial has three real roots:
    $$0.3197108245,\ 0.3504729007,\ 2.368715348$$
    The Sturm sequence is:
    $$\left\{\begin{array}{lcl}
    p_0(x) &=& x^{5}-2(3x-1)^2\\
    p_1(x) &=& p’_0(x)=5x^4-36x+12\\
    p_2(x) &=& -rem(p_0(x),p_1(x))=2+\displaystyle{\frac{54}{5}x^2-\frac{48}{5}x}\\
    p_3(x) &=& -rem(p_1(x),p_2(x))=\displaystyle{-\frac{25019}{2187}+\frac{24884}{729}x}\\
    p_4(x)&=& -rem(p_2(x),p_3(x))=\displaystyle{\frac{1332801}{309606728}}
    \end{array}\right .$$

    On the interval \([0.1,0.4]\), the polynomial has two real roots:
    $$V(0.1)-V(0.4) = (-,+,+,-,+)-(-,-,-,+,+)=3-1=2$$

    1. This is a bound on the roots of a polynomial, ‘Prasolov V.V. (2004): Polynomials, Springer (Second Edition), page 2.’ Notice two things in the statement of the theorem: first, the polynomial has leading coefficient equal to 1. Such a polynomial is called monic. Every polynomial can be made monic by dividing it by its leading coefficient, which is always assumed to be nonzero. All polynomials in Algebra are considered monic because algorithms have better computational complexity in this case. For the proof, see the book for the 2nd year of upper secondary school, Algebra, p. 75, Proposition 43. ↩︎
    2. There are also other algebraic methods, as you can see in Prasolov, V.,V., (2004): Polynomials, Springer. ↩︎
  • Αλγόριθμοι

    Σχεδίαση της συνθήκης επανάληψης

    Ένα κύριο σημείο του αλγορίθμου είναι η συνθήκη επανάληψης της διαδικασίας υποδιαίρεσης του διαστήματος. Αυτό μπορεί να επιτευχθεί με δύο τρόπους.

    1. Στην Απόδειξη του Θεωρήματος των Ενδιαμέσων Τιμών είδαμε ότι οι δύο ακολουθίες \(a_n\) και \(b_n\) συγκλίνουν σε μία ρίζα της εξίσωσης \(f(x)=\eta\), έστω \(x_0\). Επειδή: $$a_n\leq x_0\leq b_n\ \&\ b_n-a_n=\frac{(\beta-\alpha)}{2^n}$$ τότε: $$\forall n\in\mathbb{Z}:\ 0\leq x_0 -a_n\leq \frac{(\beta-\alpha)}{2^n}$$ Αυτό σημαίνει ότι μπορούμε να προσεγγίσουμε τη ρίζα \(x_0\) από το \(a_n\) με οποιαδήποτε ακρίβεια θέλουμε αφού αυτή δηλωθεί στην αρχή. Δίνοντας έναν θετικό πραγματικό \(\varepsilon\) και ψάχνοντας τον ακέραιο \(n\) έτσι ώστε \(\displaystyle{\frac{(\beta-\alpha)}{2^n}\leq \varepsilon}\).
    2. Ας ξαναδούμε λίγο τον ορισμό της συνέχειας στη γλώσσα των δεκαδικών αριθμών. (\(\forall m\exists n\)) Για κάθε δεδομένο \(m\) υπάρχει ένα \(n\) έτσι ώστε για τον υπολογισμό της τιμής της \(f(x)\) με ακρίβεια της τάξης του \(10^{-m}\), να είναι αρκετό να γνωρίζουμε τον \(x\) μέχρι το \(n-\)οστό ψηφίο μετά την υποδιαστολή, δηλαδή να βρούμε τον \(x\) με \(n\) δεκαδικά ψηφία. Χρησιμοποιώντας αυτόν τον ορισμό, μπορούμε να γράψουμε το αλγόριθμο με την διχοτόμηση διαστήματος. Ας υποθέσουμε ότι θέλουμε να βρούμε το \(x\) έτσι ώστε \(f(x)=\eta\).
      • Βρίσκουμε το μεγαλύτερο δυνατό \(x(1)\) για το οποίο \(f(x(1))<\eta\) και μετά το μεγαλύτερο \(x(2)\) έτσι ώστε \(f(x(2))<\eta\), κ.ο.κ
      • Συνεχίζοντας έτσι τη διαδικασία κατoρθώσαμε να κατασκευάσουμε τον μεγαλύτερο \(n\) έτσι ώστε \(f(x(n))<\eta\), \(\forall n\). (Μπορεί να μην είναι το supremum του συνόλου των \(y\) έτσι ώστε \(f(y)<\eta\), αλλά με ελαφρώς διαφορετικό όμως επιχείρημα μπορούμε να έχουμε ένα τέτοιο \(x\)).
      • Με ένα απλό επαγωγικό επιχείρημα έχουμε ότι:$$f(x(n))<\eta\wedge f(x(n)+10^{-n})\geq \eta$$ Αφού \(f\) είναι συνεχής, μπορούμε να επιλέξουμε \(n\) έτσι ώστε τα \(f(x(n))\) και \(f(x(n)+10^{-n})\) να απέχουν από το \(f(x)\) λιγότερο από \(10^{-m}\) τότε το \(f(x)\) απέχει το πολύ \(10^{-m}\) από τον \(\eta\).
      • Αφού αυτό μπορούμε να το κάνουμε για κάθε \(m\), ο \(f(x)\) πρέπει να είναι ίσος με \(\eta\).

    Εύρεση ριζών σε διάστημα, Python

    Ας δούμε τον απλούστερο αλγόριθμο στην Python που κατασκεύασε μια τάξη του Λυκείου.

    import math
    def fun(x):
    #return math.cos(x)
    #return 360*x*x*x*x*x-6001704/5*x*x*x*x+57005893/50*x*x*x-39668427/100*x*x+3000047/50*x-333333/100
    #return x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x-2*(6*x-1)*(2*x-1)
    #return x*x*x*x*x-2*(3*x-1)*(3*x-1)
    #return x**59-2*(6*x-1)**2
    return x*x*x-17*x-13
    def main():
    a=float(input("Δώσε το αριστερό όριο του διαστήματος: "))
    b=float(input("Δώσε το δεξί όριο του διαστήματος: "))
    precision=float(input("Δώσε την επιθυμητή ακρίβεια της ρίζας: "))
    x_0=(a+b)/2
    while abs(fun(x_0)) >= precision:
    x_0=(a+b)/2
    if fun(x_0)==0:
    break
    elif fun(a)*fun(x_0)<0:
    b=x_0
    else:
    a=x_0
    print(x_0)
    print("Approximation of solution is:",x_0)
    main()

    Το πολυώνυμο στην είσοδο είναι το \(x^3-17x-13\). Το πολυώνυμο αυτό έχει 3 πραγματικές ρίζες:
    $$-3.668252782,\ -0.7941698527,\ 4.462422635$$ Μπορείτε να δουλέψετε με τον αλγόριθμο στoν On line Python Compiler.

    Για το \(x^{17}-2(6x-1)^2\) το οποίο όπως έχουμε δει, έχει 2 πραγματικές ρίζες πολύ κοντά,
    $$0.1666666380,\ 0.1666666953,\ 1.305918236$$ Στο διάστημα \((0,0.2)\) με ανοχή λάθους της τάξης \(10^{-10}\) (στην Python γράψτε \(0.0000….n,\ n\in\mathbb{N})\) ο αλγόριθμος δίνει 1 ρίζα, ενώ το πολυώνυμο έχει 2 ρίζες πάρα πολύ κοντά η μια με την άλλη. Δείτε, όλες τις αρνητικές απαντήσεις του αλγορίθμου όταν προσπαθείστε να επιλέξτε το διάστημα για να υπολογίσει τις κοντινές ρίζες.

    Ένας άλλος αλγόριθμος ικανότερος δίνει καλύτερα αποτελέσματα στο πολυώνυμο Mignotte.

    import math
    def f(x):
    #return 360*x*x*x*x*x-6001704/5*x*x*x*x+57005893/50*x*x*x-39668427/100*x*x+3000047/50*x-333333/100
    #return x**59-2*(6*x-1)**2
    # #.16666666666666382426, .16666666666666950908, 1.12738466824392800662
    #return math.sin(x)
    #return math.log(x)-x+2
    ##0.01023855228144327807 η ρίζα της λογαριθμικής sto [0.1,0.3]
    #return math.e**x-1
    #return x-x**(1/3)-2
    return x**17-2*(6*x-1)**2
    #.16666666666666666667, .16666666666666666667, 1.07154057527829735302
    def bisection(x0,x1,e):
    step = 1
    print('\n\n*** H Μέθοδος Διχοτομίας Διαστήματος ***')
    condition = True
    while condition:
    x2 = (x0 + x1)/2
    print('Iteration-%d, x2 = %0.6f and f(x2) = %0.6f' % (step, x2, f(x2)))
    if f(x0) * f(x2) < 0:
    x1 = x2
    else:
    x0 = x2
    step = step + 1
    condition = abs(f(x2)) > e
    #abs(x1-x0)/2**step > e
    #
    print('\nRequired Root is : %0.8f' % x2)
    # Input Section
    x0 = input('Αριστερό Όριο: ')
    x1 = input('Δεξιό Όριο: ')
    e = input('Aνοχή λάθους: ')
    # Converting input to float
    x0 = float(x0)
    x1 = float(x1)
    e = float(e)
    # Έλεγχος δεδομένων εισόδου
    if f(x0) * f(x1) > 0.0:
    print('To Θεώρημα Bolzano δεν είναι ικανο να εντοπισει ρίζα.')
    print('Δοκίμασε ξανά με νέα όρια')
    else:
    bisection(x0,x1,e)

    (οι 2 παραπάνω αλγόριθμοι υλοποιήθηκαν το έτος 2022)

    Αποτελεσματικότητα των αλγορίθμων

    Ο έλεγχος της αποτελεσματικότητας θα γίνει με τη χρήση των ακραίων καταστάσεων σχετικά με την πυκνότητα των ριζών που δίνουν τα πολυώνυμα Mignotte. Εδώ θα δοκιμάσουμε με τις ρίζες του πολυωνύμου $$x^{59}-2(6x-1)^2$$ To πολυώνυμο έχει 3 πραγματικές ρίζες όπως μας πληροφορεί ο αλγόριθμος sturm
    $$ \hbox{sturm}(x^{59}-2(6x-1)^2,x, -\infty,+\infty)$$
    $$3$$ Στο Maple με στρογγυλοποίηση υπολογισμών στο 1000-οστό ψηφίο και στρογγυλοποίηση εμφάνισης 100 ψηφίων, οι τρείς πραγματικές ρίζες του πολυωνύμου είναι:

    $$\begin{array}{lcl}
    \rho_1&:=&0.1666666666666666666666536608810952185499…51968244214,
    \\
    \rho_2&:=&0.1666666666666666666666679724522381147833603…732685769,\\
    \rho_3&:=&1.0715405752782973530218708513184…4612023643215342
    \end{array}$$

    Η συνάρτηση sturm του Maple δίνει στο διάστημα:
    $$[0.1666666666666666666666653, 0.1666666666666666666666655]$$
    μία ακριβώς ρίζα:

    $$\hbox{sturm} (x^{59}-2(6x-1)^2,x, 0.1666666666666666666666653, 0.1666666666666666666666655)$$ $$1$$

    Επίσης, στο διάστημα
    $$[0.1666666666666666666666655, 0.1888]$$
    δίνει μια ρίζα (τη δεύτερη ρίζα, \(\rho_2\), που βρήκαμε προηγουμένως).
    $$ \hbox{sturm}(x^{59}-2(6x-1)^2,x, 0.1666666666666666666666655, 0.1888)$$ $$1$$

    O αλγόριθμος 1 στη Python, με ανοχή λάθους της τάξης \(10^{-20}\), γυρνάει ρίζα του πολυωνύμου στο πρώτο διάστημα τον αριθμό: $$0.16666666666666666$$
    ενώ στο δεύτερο διάστημα τον αριθμό: $$0.16666700439453125$$

    Σε σύγκριση με την αποτελεσματικότητα του δευτέρου αλγορίθμου, στο πρώτο διάστημα δεν βρίσκει ρίζα και γυρνά το μήνυμα ότι:

    Ο αλγόριθμος δεν είναι ικανός να εντοπίσει ρίζα

    στο δεύτερο διάστημα δίνει ρίζα τον αριθμό: $$0.16666667$$

    Επομένως, ο πρώτος αλγόριθμος φαίνεται ότι είναι αποτελεσματικότερος, και αυτό οφείλεται στην συνθήκη επανάληψης. Και οι δύο όμως αλγόριθμοι δεν είναι αξιόπιστοι ως προς τον εντοπισμό των ριζών. Δεν βρίσκουν ρίζες που μπορεί να θεωρηθούν ότι προσεγγίζουν τις πραγματικές ρίζες του πολυωνύμου. Αν τους συγκρίνουμε με την αποτελεσματικότητα του Maple, αυτό φαίνεται να ωφείλεται στο ότι δεν ελέγχουμε την επιθυμητή προσέγγιση στον πυρήνα του συστήματος ο οποίος εκτελεί τις αριθμητικές πράξεις. Εκεί φαίνεται να υπερισχύουν οι αλγόριθμοι των συστημάτων CAS.

    Σε πολυώνυμα όπου οι ρίζες είναι διακριτές και όχι πυκνές, όπως συναντήσαμε στα πολυώνυμα Mignotte, οι αλγόριθμοι είναι αποτελεσματικοί.

    Το άλλο πολυώνυμο που παρουσιάζει ενδιαφέρον λόγω του ότι έχει απομακρυσμένες μεταξύ τους ρίζες είναι το εξής:

    p(x):=360x560017045x4+5700589350x339668427100x2+300004750x333333100p(x):=360x^5-\frac{6001704}{5}x^4+\frac{57005893}{50}x^3-\frac{39668427}{100}x^2+\frac{3000047}{50}x-\frac{333333}{100}

    το πολυώνυμο έχει 5 πραγματικες ρίζες, οι οποίες με προσεγγιση \(10^{-10}\) είναι οι εξής: $$0.1666666…66667,\ 0.200000…0000,\ 0.2500000….000,\ 0.3333333…333,\ 3333.330000$$ Βλέπουμε ότι μια ρίζα η \(3333.330000\) ξεχωρίζει. Για να αρχίσουμε να ζητάμε τις ρίζες αυτές με την μέθοδο της διχοτομίας διαστήματος, πρέπει να εντοπίσουμε το διάστημα μέσα στο οποίο βρίσκονται, Το διάστημα αυτό είναι το $$(-3335.3,3335.3)$$ όπως αυτό προέκυψε από το θεώρημα Cauchy. Με τον αλγόριθμο της ακολουθίας sturm στο Maple εντοπίζουμε τα διαστήματα μέσα στα οποία βρίσκονται οι ρίζες: $$\begin{array}{clc} \text{Επιλογή διαστήματος}& \text{Αλγόριθμος στο Maple}&\text{Αριθμός πραγματικών ριζών}\\ \hline (-3335.3, 3335.3) &\text{sturm(p,x,-3335.3, 3335.3)=}& 5\\ (0,3335.3)&\text{sturm(p,x,0,3335.3)=}&5\\ (0,1700)&\text{sturm(p,x,0,1700)=}&4\\ (1700,3335.3)&\text{sturm(p,x,1700,3335.3)=}&1\\ \dots&&\\ (0,0.5)&\text{sturm(p,x,0,0.5)=}&4\\ (0,0.25)&\text{sturm(p,x,0,0.25)=}&3\\(0.25,0.5)&\text{sturm(p,x,0.25,0.5)=}&1\\ (0.125,0.1875)&\text{sturm(p,x,0.125,0.1875)=}&1\\ (0.1875,0.21875)&\text{sturm(p,x,0.1875,0.21875)=}&1\\(0.2875,0.25)&\text{sturm(p,x,0.21875,0.25)=}&1\\ \end{array}$$

    Θα βρουμε τώρα αριθμητικά τις ρίζες με ανοχή λάθους \(10^{-5}\) χρησιμοποιώντας τον πρώτο αλγόριθμο στην Python μέσα σε κάθε διάστημα στο οποίο υπάρχει ρίζα σύμφωνα με τον παραπάνω πίνακα. $$\begin{array}{cc} \text{ Διάστημα} & \text{Ρίζα σε δεκαδική μορφή}\\ \hline (1700,3335.3)& 3333.33\\ (0.25,0.5)& 0.3333333358168602 \\ (0.125,0.1875)&0.1666666567325592 \\ (0.1875,0.21875)&0.19999998807907104\\ (0.2875,0.25) & 0.2500000178813934 \end{array}$$ Καθόλου άσχημα!

    O αλγόριθμος δίνει ρίζες συναρτήσεων σε διαστήματα, γενικά. Υπάρχουν ήδη στην είσοδο του αλγορίθμου 1 στην Python, συναρτήσεις όπως: $$\displaystyle{y=\sin(x)-\frac{x}{2},\quad y=x\log(2)-2\log(x),\quad y=(2x+1)e^{-2x},\quad y=\frac{x-\sin(x-3)}{2x+\sin(x)},\dots}$$