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)<
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-
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(xi–h),
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 [xi–h, 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.