Számítási módszerek a térképészetben

 

 

Nem-lineáris egyenletek gyökének meghatározása

 

Nem-lineáris egyenletekkel gyakran találkozhatunk a térképészeti és a geodéziai számítások során. Egy ilyen egyenlet általánosságban

           

alakú, ahol  h1(x) és h2(x)  nem-lineáris függvények. Az egyenlet megoldása olyan   gyök meghatározását jelenti, amelyet az egyenletbe helyettesítve, az egyenlőség teljesül:

           

Grafikusan az    gyök a közös koordinátarendszerben ábrázolt

           

és az

           

függvények grafikonja metszéspontjának  x  koordinátájaként állítható elő (???ábra).

 

Célunk az egyenlet gyökének kívánt pontosságú numerikus előállítása.

 

Tekintsünk egy példát a nem-lineáris egyenletre. Ismert, hogy a forgási ellipszoidról gömbre történő szögtartó leképezésben (az ún. szögtartó gömbvetületben) az  ellipszoidi  F,L  és a gömbi  j, l  koordináták között az alábbi egyenletek adják meg az összefüggést:

és

           

A szélességekre vonatkozó egyenletből a  j  gömbi szélesség kifejezhető:

             ,

a  F  ellipszoidi szélesség azonban nem írható fel explicit alakban a  j  gömbi szélesség függvényében. Ha adott  j -ből  kell  F-t kiszámítanunk, akkor a geodéziai szakirodalom az egyenlet átrendezését ajánlja:

             ,

majd a baloldali képletből a  F  kifejezését:

             .

Rögzített  j  gömbi szélesség mellett – a jobb oldali kifejezésbe a  F  ellipszoidi szélesség egy közelítését behelyettesítve – ez a képlet a  F  javított értékét eredményezi. Ezt az eljárást többször megismételve, az ellipszoidi szélesség egyre pontosabb közelítéseit kapjuk. Felmerül a kérdés, hogy mi biztosítja a fenti eljárás konvergenciáját (azaz hogy valóban egyre pontosabb és pontosabb közelítéseket kapunk), továbbá hogy más átrendezés esetén mikor várható hasonló eredmény.

 

Példa-egyenletünk bármely alakjában a  F  ismeretlen helyére  x-et írva és  j -t konstansnak tekintve, visszatérhetünk a bevezetőben alkalmazott jelölésre. A legutóbbi alaknál pl.:

             ,

vagyis ebben a

           

alakú egyenletben

           

és

           

 

Visszatérve az általános alakhoz, a továbbiakban a

           

egyenletet rendezzük  0-ra:

           

A kiindulási egyenletünk megoldását tehát az  f(x)  nem-lineáris függvény    zérushelyének meghatározására vezetjük vissza (???ábra).

 

 

Az

           

egyenlet közelítő megoldására több módszer ismeretes. Ezek közül tekintünk át néhányat az alábbiakban.

 

 

A fokozatos közelítések módszere

 

Alakítsuk át az

egyenletet oly módon, hogy kifejezzük az egyenletből az  x  ismeretlent, ami többnyire megtehető. Az átalakított egyenletünk ekkor az alábbi alakú:

           

ahol  g(x)  6nem-lineáris függvény. Képezzük ennek segítségével az  xi  sorozatot az

           

képlet alapján. Ha ez a sorozat konvergens, akkor az  -mal jelölt  határértéke lesz az egyenlet gyöke, vagyis

           

 

 

A konvergenciához elégséges feltételre van szükségünk. Tegyük fel, hogy az egyenletünk jobb oldalán álló  g(x)  függvény  x1  és    között differenciálható, és

           

Ekkor   felhasználva a Lagrange féle középértéktételt:

             ,

ahol  u  az  xi  és    közé esik. Hasonlóan látható, hogy

             .

Az eljárást  -ig folytatva, teljes indukcióval látható, hogy

             .

K<1  miatt  Ki®0,  és ez a jobboldali kifejezés 0-hoz tartása miatt biztosítja a konvergenciát, vagyis:               

.

Adjunk meg még egy korlátot az    hibához a fenti elégséges feltétel fennállása esetére.

Induljunk ki ehhez a háromszög-egyenlőtlenségből:

           

A Lagrange-középértéktétel fenti következményéből adódik, hogy

           

A két egyenlőtlenség együttes alkalmazásából átrendezéssel következik, hogy

           

Kiemelés és átszorzás után:

           

Eszerint ha két egymást követő közelítés eltérése kicsi, akkor a közelítésünknek a gyöktől való eltérése is kicsi.

 

A fokozatos közelítések módszere nem mindig előnyös, mert egyrészt bonyolultabb egyenletek esetén  x  kifejezése az egyenletből hosszabb számolást igényelhet, másrészt a konvergencia elégséges feltételének biztosítása, illetve fennállásának ellenőrzése sem mindig egyszerű. A továbbiakban egyszerűbb módszert igyekszünk találni.

 

Gyökkeresés az intervallumfelezés módszerével

 

Ha egy intervallumon értelmezett folytonos  f(x)  függvényhez van olyan  x1  és  x2 pont, melyekben ellenkező előjelű értékeket vesz fel, vagyis

            ,

akkor Bolzano tétele miatt a függvénynek  x1  és  x2  között van    zérushelye, amely gyöke az egyenletünknek:

           

Határozzuk meg az  [x1, x2]  intervallum  x3  felezőpontját:

           

Kivételesen előfordulhat, hogy éppen

            ,

és ezzel találtunk egy gyököt. Amennyiben viszont  f(x3)¹0, akkor vagy  f(x3)>0, vagy  f(x3)<0. A két fél-intervallum közül az egyikben biztosan kell lennie gyöknek, éspedig abban, amelynek végpontjaiban a függvényértékek különböző előjelűek. Ezt tovább felezve kapjuk az  x4  pontot (???ábra), stb.

           

A gyököt biztosan tartalmazó intervallum hossza az  i-edik felezés után:

           

Ez biztosítja az eljárás konvergens voltát. Az eljárást akkor tekinthetjük befejezettnek, ha az i-edik felezés eredményeképpen kapott intervallum hossza a megkívánt pontosságnál kisebb; a gyököt ekkor pl. ezen intervallum felezőpontjával közelíthetjük. Az eljárás azonban nincs tekintettel az  f(x)  függvény menetére, ezért konvergenciája lassú lehet.

 

A húrmódszer

 

Tekintsük ismét az

           

egyenletet, ahol  f(x) folytonos. Az  x1, x2  kezdőértékekre vonatkozólag itt is kikötjük, hogy álljon fenn az

           

egyenlőtlenség. A húrmódszer az intervallumfelezéses módszer javításának tekinthető annyiban, hogy az  f(x)  függvény görbéjének  x1, f(x1)  és  x2, f(x2)  koordinátájú pontjait összekötő egyenes metszi ki az  x  tengelyen az  x3  pontot (???ábra). A két ponton áthaladó egyenes egyenlete:

           

Ez egy lineáris függvény, melynek zérushelyét jelöljük  x3 –mal:

           

Az egyenletből  x3  kifejezhető:

           

Ez után  x1  és  x2  pontok közül azt tartjuk meg, amelyre igaz, hogy

               (i=1,2) ,

a másik pontba  x3  értékét visszahelyettesítve, az eljárást a szükséges pontosság eléréséig ismételgetjük (???ábra).

           

 

A konvergencia megfelelő feltételek mellett felgyorsítható. Ha ugyanis az  [x1, x2]  intervallumon teljesülnek az első és második derivált abszolút értékére az alábbi korlátossági feltételek:

           

(az  f(x) szigorúan monoton), és

            ,

továbbá a

           

jelölés mellett feltesszük, hogy

            ,

akkor

            ,

tehát  i®¥  esetén  xi®.

 

A tétel belátásához vegyük az  f(x)  függvény másodfokú közelítését az  [x1, x2]  intervallumban. Ezt a másodfokú közelítést írjuk fel a lineáris  l(x)  függvény és egy másodfokú  p(x)  függvény összegeként (ahol  l(x)  az  x1, f(x1)  és  x2, f(x2)  koordinátájú pontokon áthaladó egyenes,  p(x)  pedig az  x1, x2 végpontokban  0  értéket felvevő függvény):

           

ahol  v0[x1, x2]. Ekkor az  l(x)  lineáris függvénynek az  -mal jelölt gyökben felvett értéke egyrészt:

            ,

ahol  w0[x1, x2],  másrészt:

           

(Felhasználtuk            itt Lagrange középérték-tétele mellett azt, hogy  l(x3)=0  és  .)

A fenti két egyenletből kapjuk, hogy

           

A feltételek miatt

             ,

amiből adódik, hogy

           

Ehhez hasonlóan látható, hogy

           

(ahol  i=1 vagy 2). Innen következik

           

Ennek analógiájára

           

(ahol  j=i, azaz 1 és 2 közül valamelyik, vagy 3). Innen

           

stb., és ezzel a tételünket beláttuk.

 

A szelőmódszer

 

A húrmódszer kezdőpontjaiban a függvényértékek különböző előjelűeknek kell lenniük. A szelőmódszer a húrmódszer olyan módosítása, amely ezt kikerüli, és csak a kezdőpontokban felvett függvényértékek különbözőségét írja elő, továbbá a húrmódszernél általában gyorsabb konvergenciát biztosít.

 

Messe az  x1, f(x1)  és  x2, f(x2)  koordinátájú pontokat összekötő egyenes az  x  tengelyt az  x3  pontban (???ábra). Ezt – feltéve, hogy  f(x1)¹ f(x2) –  a húrmódszernél megismert képlettel kapjuk meg,:

           

Ez után – tekintet nélkül  f(x3)  előjelére, de kikötve, hogy  f(x2) ¹ f(x3)    hasonlóan kapjuk

f(x4) –et. Általánosságban

           

ahol  f(xi-1) ¹ f(xi) (???ábra).

           

 

A szelőmódszer tehát – bár a konvergencia nincs mindig garantálva – általánosabb feltételek között alkalmazható, mint a húrmódszer. Emellett ha fennáll a konvergencia, akkor az a húrmódszerénél gyorsabb. Ennek belátásához induljunk ki a húrmódszernél kikötött feltételekből, vagyis    mellett az  [x1, x2]  intervallumon legyen

           

és

            ,

továbbá

            .

 

A kezdőértékre vonatkozó feltételünk miatt  f(x1)¹ f(x2), ezért a fenti képletből kiszámítható x3,  amely megegyezik a húrmódszerből származó értékkel, és a szigorú monotonitás következményeként különbözik mind  x1-től, mind  x2-től. Továbbra is  -mal jelölve a gyököt, a húrmódszernél látottak alapján kapjuk, hogy

           

és

             ,

innen pedig

.

 

f ’(x3)¹0 miatt  f(x3) ¹ f(x2), tehát a fenti képletből  x4  is képezhető. Az előbbiekhez hasonlóan látható, hogy

            és   ,

ezért  x3 ¹ x4 ,  és a szigorú monotonitás miatt  f(x3) ¹ f(x4) ,  tehát a fenti képlet alapján  x5  is képezhető. Továbbá

            ,

majd ugyanígy

            .

(Megjegyezzük, hogy a húrmódszer konvergenciájának bizonyításában ezen a ponton  x3  helyett  xj  áll, ahol j értéke lehet 1 vagy 2 is, és ebben az esetben csak annyit tudunk, hogy

            .)

Ezt folytatva kapjuk, hogy

            , stb.

Általában

            ,

ahol  k1=1,  k2=1,  és  ki=ki-2+ ki-1 ,  ha  i>2.  Emiatt  i>4  esetén  ki>i–1,  q  hatványai tehát i növelésével gyorsabban növekednek, ami biztosítja a gyorsabb konvergenciát.

 

 

Numerikus differenciálás és integrálás

 

Legyen példaként egy térképi vonalunk, és tekintsük ezt egy  y=f(x)  függvény grafikonjának. Ismeretes, hogy a differenciálható  f(x) függvény-görbe  xÎ[a,b]  intervallumhoz tartozó s ívének a hosszát az

           

képlet adja meg. Ha tehát ismerjük az  f(x)  függvényt, akkor e képlet alapján határozhatjuk meg az  s  ívhosszat. A térképészeti gyakorlatban inkább az fordul elő, hogy az egyébként ismeretlen  f(x)  függvény értékeit bizonyos pontokban (például hosszméréssel) meg tudjuk állapítani, és ezekből az értékekből kell – közelítőleg – kiszámítani  s  értékét (???ábra).

 

Általában adottnak tételezzük fel az ismeretlen  f(x)  függvény értékeit  azon  a=x0, x1, x2, … , b=xn  pontokban, amelyek az  [a,b]  intervallum n  részre (éspedig rendszerint egyenlő részekre) való felosztásából adódnak.  Az  s  ívhossz mint integrál közelítőleg meghatározandó ezen  xi, f(xi)  (i=0,1, …, n)  értékekből (???ábra).

 

A térképhasználat során a térképi hosszakon kívül egyéb térképi mennyiségek, pl. vetületi torzulások pontos kiszámításánál is szükségünk lehet függvények differenciálhányadosára és határozott integráljára, legalábbis ezek közelítő értékeire. A közelítő, másként numerikus differenciáláshoz és integráláshoz viszont a polinomos interpoláció alapjaiból indulunk ki.

 

Interpoláció alatt bonyolultabb függvényeknek egyszerűbb függvényekkel való közelítését értjük. Erre többnyire polinomokat használnak, de trigonometrikus függvények és racionális törtfüggvények felhasználása is előfordul. Tekintsük a polinomos interpoláció azon alkalmazását, amelynél az  x0,  x1, …, xn   pontokban adott  f(x0),  f(x1), …,  f(xn)  függvényértékekhez keresünk a megfelelő pontokban ugyanazt az értékeket felvevő n-edfokú 

           

polinomot (???ábra), vagyis:

           

 

Ez egy  n+1  egyenletből álló,  n+1  ismeretlent tartalmazó lineáris egyenletrendszer a  c0,  c1, …, cn  együtthatókra mint ismeretlenekre nézve. Az egyenletrendszer determinánsa:

           

Ez egy ún. Vandermonde determináns, amely nem nulla, ha minden  xi  különböző;  az egyenletrendszer tehát egyértelműen megoldható. A ci  együtthatókat ki lehet számítani például a  Cramer szabály alapján, de a gyakorlatban inkább más megoldásokat alkalmaznak.

 

Állítsuk elő a szóbanforgó interpolációs polinomot Lagrange képletével, mely olyan n-edfokú ai(x) -szel jelölt  (i=0,1,2,…,n)  polinomokból (az úgynevezett alappolinomokból) indul ki, amelyek az  xi  pontban  1  értéket, az összes többi  xk  pontban  0  értéket vesznek fel. Könnyen meggyőződhetünk róla, hogy az

           

polinomok rendelkeznek mindezekkel a tulajdonságokkal. Az alappolinomok segítségével most már előállítható a  pn(x)  interpolációs polinom, amely valóban átmegy az  xi, f(xi) 

(i=0, 1, …, n)  koordinátájú pontokon:

           

 

Tekintsük pl. az  xi-1, f (xi-1),  az  xi, f(xi)  és az  xi+1, f(xi+1)  pontokon áthaladó másodfokú p2(x)  interpolációs polinomot:

A továbbiakban olyan interpolációs polinomokat fogunk használni, amelyeknél az  x0,  x1, …, xn  alappontok ekvidisztánsak, azaz egymástól egyenlő,  h –val jelölt távolságra vannak (???ábra):

 

ahol   

 

Ekkor az  xi-h, xi, xi+h  pontokon átmenő másodfokú  p2(x)  polinom az alábbi alakú:

           

illetve ugyanez a

           

vagyis az

           

helyettesítéssel:

           

(ahol  xi-h £ x £ xi+h  esetén  -1 £ t £ 1) .

 

Ez utóbbi változatban a negyedfokú polinom a következőképpen néz ki:

           

 

Megjegyezzük, hogy az egymáshoz törésmentesen csatlakozó, legfeljebb harmadfokú interpolációs polinomokat, az ún. spline-okat a számítógépes grafikában is alkalmazzák.

 

 

Numerikus differenciálás

 

Célunk egy olyan, differenciálhatónak feltételezett  f(x)  függvény  xi  pontbeli differenciálhányadosának közelítő meghatározása, amelynek  f(x0),  f(x1), …,  f(xn)  értékeit csak egyes  x0,  x1, …, xn   pontokban ismerjük (???ábra). Ilyenkor a keresett differenciálhányadost az interpolációs polionom differenciálhányadosával közelítjük. Tételezzük fel, hogy a függvényérték az  xi-h,  xi,  xi+h  helyeken sorra  f(xi-h),  f(xi),  f(xi+h).  A három ponton áthaladó másodfokú polinom deriváltja a fentiek alapján:

           

 A polinom deriváltja az  x=xi  helyen:

           

Tehát a differenciálhányados közelítő értéke:

           

Többször differenciálható függvény esetén pontosíthatjuk ezt az eredményt pl. negyedfokú polinom alkalmazásával, amelyet az  f(xi-2h),  f(xi-h),  f(xi),  f(xi+h),  f(xi+2h)  függvényértékekből számolunk a fenti képletből hasonló gondolatmenettel:

           

                                   

Végül a derivált az  x=xi  helyen:

           

Kiemelés után innen kapjuk a differenciálhányados pontosabb közelítését:

           

           

 

Numerikus integrálás

 

Az  f(x)  függvény  [a,b]  intervallumon vett

           

határozott integrálját (ami szemléletesen a függvénygörbe alatti - előjeles - területtel egyenlő, ld. ???ábra):

 

elméletileg pontosan ki lehet számítani a Newton-Leibnitz szabály segítségével:

           

ahol a  F(x)  függvény az integrálandó  f(x) primitív függvénye:

            .

Ha azonban a primitív függvény nem írható fel elemi függvények segítségével, vagy nem ismerjük, akkor numerikus integrálásra kerül sor.

 

Osszuk fel az  [a,b]  intervallumot  n  egyenlő részre, és jelöljük az osztásközök hosszát  h-val:

            .

Helyettesítsük az  f(x) függvényt minden  [xi-1, xi]  (i=1, 2, …, n)  osztásközben a lineáris interpolációs polinommal, vagyis az  xi-1, f(xi-1)  és  az  xi, f(xi)  koordinátájú pontokat összekötő egyenes szakasszal (???ábra).

Ekkor függvény görbéje alatti terület a vizsgált osztásközben közelítőleg megegyezik egy olyan trapézzal, amelynél az alapok hossza  f(xi-1)  és  f(xi), a trapéz magassága  h=xi-xi-1. Az osztásközben számított határozott integrált a trapéz területével közelítjük:

           

 

A teljes integrált az így kapott rész-integrálok összegezésével kapjuk:

A megfelelő tagok összevonásából adódik, hogy

           

Ez az ún. trapéz-formula.

 

A határozott integrál definíciója alapján könnyen belátható, hogy az osztásközök  n  számának növelésével a trapéz-formula a határozott integrálhoz tart, ezzel együtt természetesen a képlet számítás-igénye is növekszik. Az  [a,b]  intervallumban kétszer folytonosan differenciálható  f(x)  esetén az adott  n-hez megállapítható, hogy a

           

trapéz-összeg eléggé megközelíti-e az integrált. Bebizonyítható ugyanis a következő hibabecslő formula:

           

A jobb oldalon álló képletben az  n  kivételével minden konstans, így  n  értékének megfelelő megválasztásával a szükséges pontosság elérhető. A gyakorlatban azonban az  f ’’(x) függvény [a,b]  intervallumbeli maximumának meghatározása hosszadalmas lehet, ezért páros  n  esetén kiváltható az egyszerűbb

           

hibabecslő képlettel, ahol  a minden második osztáspont elhagyásával kapott trapéz-összeg.

A trapéz-formula hátránya főleg akkor mutatkozik meg, ha a függvény az integrálási tartományban végig konvex vagy konkáv; ebben az esetben az egyes trapézokon keletkezett hibák halmozódnak.

 

Hatékonyabb integrál-közelítő összeget kapunk, ha az integrálandó  f(x)  függvény görbéjét az [a,b]  intervallumon parabola-ívekkel közelítjük. Ennek alapfeltétele, hogy az  [a,b]  intervallum felosztásánál a rész-intervallumok  n  száma páros. Kettesével összepárosítva a rész-intervallumokat, az így kapott  xi-h, f(xih),  xi, f(xi),  xi+h, f(xi+h)  pontokhoz (az  i  páratlan)  egy másodfokú interpolációs polinomot illesztünk (???ábra):

és ennek integráljával közelítjük az  f(x)  függvény integrálját az  [xih, xi+h]  rész-intervallumon:

           

           

               

               

(Az    helyettesítés következtében az integrandus   -val szorzódott.)

 

A teljes  [a,b]  intervallumon vett integrál a rész-intervallumon vett integrálok összege, tehát

Az összevonások után kapjuk a Simpson-féle integrál-közelítő összeget:

Az előzőekhez hasonlóan a Simpson-formulából adódó  sn  közelítő összegre is kapható hibabecslő formula. Négyszer folytonosan differenciálható  f(x)  függvény esetén belátható ugyanis, hogy

             .

Ez a képlet a nevezőben álló  n4  miatt azt mutatja, hogy – a feltételnek eleget tevő függvény esetén – a felosztás finomításával a közelítő összeg a trapéz-összegnél gyorsabban tart a határozott integrálhoz. Más szóval: megegyező számú osztáspont esetén a Simpson-formula jobb közelítést ad, mint a trapéz-formula. Az  f (4)(x) függvény [a,b]  intervallumbeli maximumának meghatározási nehézségei miatt itt is előnyösebb egy közelítő hibabecslő képlet:

                  

 

A Simpson-formula tehát kis mértékben bonyolultabb a trapéz-formulánál, de annál lényegesen hatékonyabb a határozott integrálok közelítő kiszámításában.