Simo K. Kivelä

Frégier'n lause

Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

Suorakulmaisen kolmion kaikki kärjet sijaitsevat paraabelilla y  =  (x^2); suoran kulman kärki on paraabelin huipussa. Osoita, että jokaisen tällaisen kolmion hypotenuusa leikkaa paraabelin akselin samassa pisteessä. Määritä tämä piste.

Kyseessä on yleisemminkin voimassa oleva tulos, jota kutsutaan Frégier'n lauseeksi. Suoran kulman kärjen ei tarvitse olla paraabelin huipussa eikä käyränkään tarvitse olla paraabeli. Se voi olla mikä tahansa toisen asteen käyrä — ellipsi, paraabeli tai hyperbeli — ja suoran kulman kärki voi olla mikä tahansa sen piste. Tällöin kolmion hypotenuusa kulkee aina saman pisteen kautta. Paraabelin akselia vastaa tällöin sellainen käyrän normaali, joka kulkee suoran kulman kärkipisteen kautta. Yleinen Frégier'n lause kuuluu siten seuraavasti:

Olkoon P toisen asteen käyrällä sijaitseva piste ja olkoot PA ja PB kaksi tämän pisteen kautta kulkevaa toisiaan vastaan kohtisuoraa käyrän jännettä. Tällöin on olemassa kiinteä piste Q, jonka kautta suora AB kulkee riippumatta siitä, missä asennossa jänteet PA ja PB ovat. Piste Q sijaitsee pisteeseen P asetetulla käyrän normaalilla.

Kuva tilanteesta ellipsitapauksessa on edempänä.

Frégier´n lauseen todistus voi perustua analyyttiseen geometriaan. Ylioppilastehtävässä tämä on hyvinkin yksinkertainen, mutta esimerkiksi ellipsitapauksessa laskuista tulee jonkin verran hankalia. Tämän johdosta on luontevaa käyttää hyväksi jotakin symbolisen laskennan ohjelmaa, jolloin ei tarvitse huolehtia monimutkaisista sievennyksistä ja näissä herkästi syntyvistä virheistä. Ei symbolisten ohjelmienkaan käyttö ongelmatonta ole: niillä on omat heikkoutensa, joita on opittava varomaan.

Seuraavassa esitetään Frégier'n lauseen todistus ellipsitapauksessa Mathematica-nimistä symbolista ohjelmaa käyttäen, jolloin mekaaniset laskut voidaan antaa ohjelman tehtäviksi. Itse asiassa tämä kirjoitus on kokonaisuudesaan laadittu Mathematican avulla; se nimittäin sisältää myös ainakin jonkintasoiset mahdollisuudet tekstinkäsittelyyn ja matemaattisten kaavojen kirjoittamiseen.

Todistus

Tarkasteltavana oleva ellipsi voidaan sijoittaa origokeskiseksi, ilman että probeemaa mitenkään rajoitetaan. Muodostetaan siis aluksi origokeskisen ellipsin yhtälö ja talletetaan tämä nimelle ellipsi:

ellipsi =  x^2/a^2  +  y^2/b^2  ==  1

Lauseessa esiintyvä piste P valitaan ellipsin kehältä. Jokainen kehäpiste voidaan esittää muodossa ( a cos(t),  b sin(t) ). Tässä t on ns. parametri, joka voi saada arvot väliltä 0  ≤  t  <  2 π; tällöin jokainen kehäpiste tulee huomioiduksi. Annetaan pisteen koordinaateille lyhyemmät nimet x0 ja y0, jolloin niihin on helpompi myöhemmin viitata.

{x0, y0} = {a Cos[t], b Sin[t]}

Pisteen koordinaatit voidaan sijoittaa ellipsin yhtälöön, jolloin se todellakin toteutuu:

ellipsi /. {x -> x0, y -> y0} // Simplify

Tämän pisteen kautta asetetaan kaksi toisiaan vastaan kohtisuoraa suoraa. Annetaan näiden yhtälöt vektorimuodossa, jolloin niitä on näppärää käsitellä. Vektorit esitetään Mathematicassa kahden alkion listoina, esimerkiksi \(TraditionalForm\`2\ i\&_\  + \ 3\ j\&_\) muodossa {2,3}.  Koska suorat ovat kohtisuoria, tulee niiden suuntavektoreiden skalaaritulon olla = 0. Jos suuntavektorit kirjoitetaan muotoon {p,q} ja {-q,p} tämä ehto täyttyy, mutta muulla tavoin ei suorien suuntia ole rajoitettu. Vektoriesityksessä tarvittava parametri olkoon u:

suora1 =  {x, y} == {x0, y0} + u {p, q}

suora2 = {x, y} == {x0, y0}  +  u {-q, p}

Etsitään erikseen kummankin suoran ja ellipsin leikkauspisteet. Näitä on kummassakin tapauksessa kaksi ja niistä toinen on luonnollisesti ellipsillä oleva piste P eli {x0,y0}, jonka kautta suorat asetettiin. Ratkaisujen sieventäminen edellyttää useampaa sievennyskäskyä peräkkäin aseteltuina: //FullSimplify//PowerExpand//FullSimplify :

ratk1 =  Solve[{ellipsi, suora1}, {x, y, u}] // FullSimplify // 
          PowerExpand // FullSimplify

ratk2 =  Solve[{ellipsi, suora2}, {x, y, u}] // FullSimplify // 
          PowerExpand // FullSimplify

Edellisessä tapauksessa edellinen ratkaisu antaa etsityn pisteen. Jälkimmäisessä tapauksessa tämä on jälkimmäinen. Talletetaan saatujen toisten leikkauspisteiden A ja B koordinaatit omille nimilleen:

{x1, y1} =  {x, y} /. First[ratk1]

{x2, y2} =  {x, y} /. Last[ratk2]

Saatujen pisteiden kautta kulkeva suora on kolmion hypotenuusan määräämä suora. Muodostetaan sille tavanomainen x- ja y-koordinaatit sitova yhtälö:

hypo =  
      y  -  y1 ==  (y2 - y1)/(x2 - x1) (x  -  
              x1)

Lukija saattaa ihmetellä, miksi toisinaan suoralle käytetään vektorimuotoista, toisinaan xy-muotoista yhtälöä. Molemmat ovat periaatteessa yhtä hyviä. Edellä olevat valinnat on tehty tavoitteena mahdollisimman yksinkertaiset ja toisaalta symbolisen ohjelman käyttömahdollisuuksia mahdollisimman hyvin valaisevat laskut.

On ehkä aika piirtää tilanteesta kuvio. Tätä varten on aluksi ladattava Mathematican lisäpaketti:

Needs["Graphics`ImplicitPlot`"]

Piirtämistä varten muodostetaan suorille PA ja PB xy-muotoiset yhtälöt eliminoimalla vektoriesityksestä parametri:

suora1xy =  Eliminate[suora1, u]

suora2xy =  Eliminate[suora2, u]

Kuvio piirretään seuraavilla lukuarvoilla:

lukuarvot =  {a -> 3,  b ->  2,  t ->  1.2,  p -> 2, 
        q -> 3}

Lähtökohtana oleva piste P on tällöin

{x0, y0} /. lukuarvot

Tämän jälkeen voidaan piirtää itse kuva:

kuva1 =  
      ImplicitPlot[
        Evaluate[{ellipsi, suora1xy, suora2xy,  hypo} /. 
            lukuarvot], {x, -5, 5}, {y, -5, 5}]

Frégier'n lause väittää, että hypotenuusasuora kulkee aina saman pisteen kautta riippumatta kohtisuorien suorien asennosta. Miten tämä piste voidaan löytää?

Yhtenä mahdollisuutena on toistaa edellä oleva lasku siten, että suorien PA ja PB suunnat ovat erilaiset (mutta edelleen toisiaan vastaan kohtisuorat), jolloin saadaan jokin toinen hypotenuusasuora. Kahden hypotenuusasuoran leikkauspisteestä saadaan ainakin sopiva ehdokas etsityksi pisteeksi.

Uudet suuntavektorit olkoot {r,s} ja {-s,r}.Uusi hypotenuusasuora saadaan hyvin yksinkertaisesti: korvataan aiemmassa hypotenuusasuorassa vanhat suuntavektorin komponentit uusilla:

hypo2 =  hypo /. {p -> r, q -> s}

Tämän jälkeen voidaan ratkaista hypotenuusasuorien leikkauspiste ja sievennetään se:

ratk =  Solve[{hypo, hypo2}, {x, y}]

piste =  {x, y} /. ratk[[1]] // Simplify

Sieventämättömänä tulos monimutkainen, mutta se sievenee yllättäen sangen yksinkertaiseen muotoon. Lopputulos näyttää lisäksi olevan riippumaton suuntavektoreiden komponenteista p, q, r ja s. Mutta tämä merkitsee, että Frégier´n lause on tullut todistetuksi: On löytynyt kahdella hypotenuusasuoralla sijaitseva piste, joka ei riipu lähtökohtana olleista suuntavektoreista; se siis sijaitsee hypotenuusasuoralla valittiinpa suuntavektorit miten tahansa!

Ratkaisu ei luonnollisestikaan mene edellä esitetyllä tavalla, jos p = r ja q = s. Tätä ei laskussa ole mitenkään suljettu pois. Mathematica kuitenkin käsittelee tällaisessa tilanteessa ns. geneeristä tapausta, ts. tapausta, missä mitään rajoittavia erikoisehtoja ei vallitse. Itse asiassa oletetaan siis p ≠ r, q ≠ s.

Lukija miettiköön, mistä seuraa, että löydetty piste on pisteen P kautta kulkevalla ellipsin normaalilla. Aivan lopussa oleva animaatio antanee ainakin viitteitä.

Esimerkkitapauksessa hypotenuusasuorien leikkauspiste on

numpiste =  piste /. lukuarvot

Tilanteesta saadaan havainnollisempi kuva piirtämällä kaksi keskenään kohtisuoraa suoraparia, näitä vastaavat hypotenuusasuorat ja hypotenuusasuorien leikauspiste:

lukuarvot2 =  {a -> 3,  b ->  2,  t ->  1.2,  p -> 3, 
        q -> 1}

kuva2 =  
        ImplicitPlot[
          Evaluate[{ellipsi, suora1xy, suora2xy, hypo} /. 
              lukuarvot2], {x, -5, 5}, {y, -5, 5}, 
          DisplayFunction -> Identity];
Show[kuva1, kuva2, 
      Graphics[{PointSize[0.03], Point[numpiste]}]]

Asiaa voidaan havainnollistaa myös animaatiolla. Tämä tulee ensin ajaa, napauttaa sen jälkeen eri kuvia yhdistävä hakanen aktiiviseksi ja animaation käynnistämiseksi painaa ctrl-y.

Table[
      Show[Graphics[{ImplicitPlot[
                Evaluate[{ellipsi, suora1xy, suora2xy,  hypo} /. {a -> 3,  
                      b ->  2,  t ->  1.2,  p -> Cos[w], 
                      q -> Sin[w]}], {x, -5, 5}, {y, -5, 5}, 
                DisplayFunction -> Identity][[1]], {PointSize[0.03], 
              Point[numpiste]}}, PlotRange -> {{-5, 5}, {-5, 5}}], 
        DisplayFunction -> $DisplayFunction, AspectRatio -> 1], {w, 0, Pi/2, 
        Pi/48}]