orttrxy.mws
Sovellukset : Geometria

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:

> restart;

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

> with(plots): with(plottools):

Warning, the name changecoords has been redefined

> ympyraparvi:= seq(plot([r*cos(t), r*sin(t), t=0..2*Pi]), r=1..7):

> suoraparvi:= seq(line([0,0], [7.5*cos(2*t*Pi/20), 7.5*sin(2*t*Pi/20)]), t=0..20):

> display(suoraparvi, ympyraparvi, scaling=constrained);

[Maple Plot]

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

[Maple Bitmap]

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 valaisee menettelyä.

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

> yhtalo:= y=C*x*exp(x^2+y^2);

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*exp(x^2+y^2))

ja piirtämällä oikeana puolena olevan kahden muuttujan funktion korkeuskäyriä. Tämä voidaan tehdä Maple n komennolla 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], grid=[50, 50], color=black):

> display(kuva1, scaling=constrained);

[Maple Plot]

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

> parvi:= subs(y=y(x), yhtalo);

parvi := y(x) = C*x*exp(x^2+y(x)^2)

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

> derivparvi:= diff(parvi, x);

derivparvi := diff(y(x),x) = C*exp(x^2+y(x)^2)+C*x*...
derivparvi := diff(y(x),x) = C*exp(x^2+y(x)^2)+C*x*...

> eliminoi:= eliminate({parvi, derivparvi}, C);

eliminoi := [{C = y(x)/(x*exp(x^2+y(x)^2))}, {-diff...
eliminoi := [{C = y(x)/(x*exp(x^2+y(x)^2))}, {-diff...

Eliminate -komento antaa listan, jonka viimeisenä alkiona on eliminoinnin tulos polynomin muodossa. Ratkaisu muunnetaan yhtälömuotoon merkitsemällä polynomi nollaksi.

> diffyht:= eliminoi[-1][]=0;

diffyht := -diff(y(x),x)*x+y(x)+2*y(x)*x^2+2*y(x)^2...

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

> diffyht2:= subs(diff(y(x), x)=-1/diff(y(x), x), diffyht);

diffyht2 := x/diff(y(x),x)+y(x)+2*y(x)*x^2-2*y(x)^2...

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

> ratk:= dsolve(diffyht2, y(x));

ratk := y(x) = -1/2*sqrt(2+4*_C1+8*_C1*x^2), y(x) =...

> parvi2:= y(x)^2=rhs(ratk[2])^2;

parvi2 := y(x)^2 = 1/2+_C1+2*_C1*x^2

> yhtalo2:= subs({y(x)=y, _C1=C}, parvi2);

yhtalo2 := y^2 = 1/2+C+2*C*x^2

Parviparametrina on integroimisvakio _C1 , jota on merkitty lyhyemmin C .

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

> lauseke2:= solve(yhtalo2, C);

lauseke2 := 1/2*(-1+2*y^2)/(1+2*x^2)

> 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;

carvot := -.8, -.7, -.6, -.5, -.4, -.3, -.2, -.1, 0...

> kuva2:= contourplot(lauseke2, x=-2..2, y=-2..2, contours=[carvot], grid=[50, 50], color=black):

> display(kuva2, scaling=constrained);

[Maple Plot]

Molemmat parvet samassa kuvassa:

> display(kuva1, kuva2, scaling=constrained);

[Maple Plot]

Tehtävä

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


Teoria: käyräparven differentiaaliyhtälö
Sovelluksia: käyräparven kohtisuorat leikkaajat napakoordinaateissa

SKK & MS 12.07.2001