Käyräparven kohtisuorat leikkaajat

Käyräparven kohtisuoriksi leikkaajiksi kutsutaan toista käyräparvea, jonka käyrät leikkaavat ensinmainitun parven käyrät kohtisuorasti jokaisessa leikkauspisteessä. Kahden käyrän kohtisuora leikkaaminen tarkoittaa leikkauspisteeseen asetettujen tangenttien kohtisuoruutta.

Ongelma on luonteeltaan geometrinen, mutta sillä on merkitys myös sovelluksissa: esimerkiksi sähkökentän kenttäviivat ja tasapotentiaalipinnat (tai tasokuvassa tasapotentiaalikäyrät) ovat toisiaan vastaan kohtisuorat.

Poistetaan mahdolliset aikaisemmat muuttujat:

Remove["Global`*"]

Yksinkertainen esimerkki käyräparven kohtisuorista leikkaajista on origokeskinen ympyräparvi, jonka kohtisuorat leikkaajat ovat origon kautta kulkevat suorat, kuten seuraava kuvio osoittaa:

ympyraparvi =  
        ParametricPlot[
          Evaluate[
            Table[{r Cos[2 n Pi/20], r Sin[2 n Pi/20]}, {r, 1, 
                7}]], {n, 0, 20}, 
          DisplayFunction ->  
            Identity];
suoraparvi =  
        Graphics[
          Table[Line[{{0, 0}, {7.5 Cos[2 n Pi/20], 
                  7.5  Sin[2 n Pi/20]}}], {n, 0, 
              20}]];
Show[ympyraparvi, suoraparvi, 
      PlotRange -> {{-8, 8}, {-8, 8}}, AspectRatio -> 1, 
      DisplayFunction -> $DisplayFunction]

Annetun käyräparven kohtisuorat leikkaajat voidaan löytää differentiaaliyhtälöiden avulla. Tällöin muodostetaan ensin annetulle parvelle sen differentiaaliyhtälö. Tämä on periaatteessa muotoa y'  =  f(x, y) ja antaa siis pisteen (x, y) kautta kulkevan käyrän tangentin kulmakertoimen tässä pisteessä. Saman pisteen kautta kulkevan kohtisuoran leikkaajan kulmakerroin on tällöin y'  =  -1/f(x, y). Tämä on kohtisuorien leikkaajien differentiaaliyhtälö. Se voidaan kirjoittaa myös muotoon -1/y'  =  f(x, y), mistä näkyy, että alkuperäisen parven differentiaaliyhtälöstä päästään kohtisuorien leikkaajien yhtälöön tekemällä korvaus

y' ↦ -(1/(y')).

Korvausta tehtäessä ei yhtälön tarvitse olla normaalimuodossa y'  =  f(x, y).

Lopuksi ratkaistaan saatu kohtisuorien leikkaajien differentiaaliyhtälö. Yleisessä ratkaisussa esiintyvä määräämätön vakio, integroimisvakio, on parven parametri. Kutakin tämän (sallittua) arvoa vastaa jokin parven käyrä.

Seuraava esimerkki valaissee menettelyä.

Olkoon annettuna käyräparvi, missä parven parametriksi on merkitty C:

yhtalo =  y  ==  C x Exp[x^2 + y^2]

Koska yhtälöä ei voida ratkaista muuttujan y suhteen, on kuva parvesta piirrettävä kirjoittamalla yhtälö muotoon

C = 
      (y/(x (E^((x^2) + (y^2)))))

ja piirtämällä oikeana puolena olevan kahden muuttujan funktion korkeuskäyriä. Tämä voidaan tehdä Mathematican funktiolla ContourPlot:

carvot =  {-0.64, -0.32, -0.16, -0.08, -0.04, -0.02, -0.01, 0, 0.01, 0.02, 0.04, 0.08, 0.16, 
          0.32, 0.64};
kuva1 =  
      ContourPlot[
        y/(x Exp[x^2 + y^2]), {x, -2, 2}, {y, -2, 2}, 
        Contours -> carvot, ContourShading -> False, 
        PlotPoints -> 100]

Parven differentiaaliyhtälön johtamiseksi ajatellaan, että muuttuja y on x:n funktio:

parvi =  yhtalo /. y -> y[x]

Differentiaaliyhtälö saadaan derivoimalla parven yhtälö ja eliminoimalla alkuperäisestä ja derivoidusta yhtälöstä parviparametri c:

derivparvi =  D[parvi, x]

diffyht =  Eliminate[{parvi, derivparvi}, C]

Tästä saadaan kohtisuorien leikkaajien differentiaaliyhtälö tekemällä edellä esitetty korvaus:

diffyht2 =  
      diffyht /. y'[x] -> -1/y'[x]

Differentiaaliyhtälö ratkaistaan ja saadun ratkaisun avulla muodostetaan kohtisuorien leikkaajien yhtälö:

ratk = DSolve[diffyht2, y[x], x]

parvi2 =  
      y[x]^2  ==  (y[x]^2 /. Last[ratk] // 
            Simplify)

yhtalo2 =  
      parvi2 /. {y[x] -> y, Exp[4 C[1]] -> C}

Parviparametrina on integroimisvakio C[1], jota on merkitty lyhyemmin C samalla lauseketta hieman sieventäen.

Kohtisuorien leikkaajien parvi voidaan piirtää samalla menettelyllä kuin alkuperäinen parvi:

lauseke2 = C /. First[Solve[yhtalo2, C]]

carvot =  {-0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0, 0.1, 0.2, 0.4, 0.7, 1.1, 1.6, 2.2, 
        2.9, 3.7}; 
    kuva2 =  
      ContourPlot[lauseke2, {x, -2, 2}, {y, -2, 2}, 
        Contours -> carvot, ContourShading -> False, 
        PlotPoints -> 100]

Molemmat parvet samassa kuvassa:

Show[kuva1, kuva2]

Tehtävä

Muodosta hyperbeliparven (x^2)  -  2 (y^2)  =  C kohtisuorat leikkaajat.

SKK 10.05.2001