nemlineáris egyenletrendszerek megoldásadobos/teaching/fiznum2019/slides/09.pdf · 2019-05-06 ·...
TRANSCRIPT
Nemlineáris egyenletrendszerek megoldása
2019. május 6.
Nemlineáris egyenletrendszerek
Az egyenletrendszer a következő formában adott:
fi(x1, x2, ..., xM) = 0 i = 1...N
I az fi függvények az xj változókban nem lineárisakI egyenletrendszer esetén több függvény gyökét keressük
szimultán módon
Sokkal nehezebb probléma, mint a lineáris eset.I ott az egyenletek lineáris kombinálgatásával lehetett eliminálniI lineárisan kombinálni itt is lehet, de nem vezet megoldásra
A megoldás léte
A megoldás léteI N > M esetben általában nincsen megoldásI N ≤ M esetben sem garantáltI ha van megoldás, akkor nem garantált, hogy egyértelműI gyakori, hogy a gyökök nem diszkrétek, egész intervallum gyökI lehetnek nem valós gyökök is
Inverzfüggvény-tételI ha egy f függvény egy x pontban folytonos, és a deriváltja
nem nulla, akkor az x pont egy környezetében invertálhatóI ez általánosítható többdimenziós esetre isI N ≤ M esetben tudunk mondani valamit a megoldás létére
Mitől jobb egyik vagy másik módszer?
Függvénykiértékelések számaI minél kevesebb függvénykiértékelés mellettI minél pontosabban meg akarjuk határozni a gyökötI kovergencia sebessége
StabilitásI általában „kézzel” kell a gyök közeléből indítaniI garantálja-e valami, hogy ott is marad a közelbenI nem divergál-e el a végtelenbe
A módszerek általános tulajdonságai
Sokat segít, ha nem csak f-et, de a deriváltját is ismerjükI jóval gyorsabb algoritmusok
Egy változós esetben vannak hatékony módszerekI megfelelően jól viselkedő függvényekreI a gyököket be lehet keretezni
Iteratív módszerek
A nem lineáris módszerek mindig iteratívakI kiindulunk valamilyen értékekbőlI ez lehet egy intervallum, amin belül a gyököt sejtjükI a gyököt lépésről lépésre közelítjük meg
A közelítő módszer következményeI a gyököt általában csak közelítőleg kapjuk megI viszont tetszőlegesen kis hibával meghatározhatjuk
Nem mindig konvergálI el kell tudni dönteni, hogy konvergál-eI megfelelő helyről kell kiindulniI jó helyre konvergált-e?
Gyök bekeretezése egy dimenzióban
Példa gyök bekeretezhetőségéreI tudjuk, hogy a függvény folytonos a < x < b intervallumonI f(a) < 0 és f(b) > 0 ⇒ létezik gyök az intervallumon
Rosszul viselkedő függvények
A bekeretezős módszer nem mindig egyszerű
A fő problémát a szinguláris viselkedés okozzaI a függvény nem folytonosI valahol divergálI valamelyik deriváltja divergál
A gyök léte nem féltetlenül jelent előjelváltástI lehet, hogy a gyök minimumhelyen vanI de a minimumhely nem feltétlen gyök
Egy intervallumon belül sok gyök is lehet
Szakaszonként folytonos, divergens függvény
Függvény rosszul viselkedő deriválttal
Gyökök és minimumok konfigurációi
A nem lineáris gyökkeresés a függvény analízisével kezdődik
A nem lineáris algoritmusok nem garantáltan jókI nincsen globális megoldásI mindig valami jó becslés kell a gyökök helyére
Iteratív módszerek gyakori problémájaI ha rossz helyről eldivergálI jó kiindulási pontokat kell találniI a jó kiindulási pontok megtalálására nincsen algoritmusI analitikusan kell kezelni a függvényt
Érdemes mindig ábrázolniI ha könnyen deriválható, akkor a deriváltakat is vizsgálni
Felezős módszer
KiindulásI valamilyen módon sikerült bekeretezni a gyökötI adott tehát egy [a, b] intervallumI f(a)f(b) < 0, azaz a függvény előjelet vált
Iteratív lépésI megfelezzük az intervallumotI a felezőpont előjele megegyezik valamelyik végpont előjelévelI az előjelváltó fél intervallumot tartjuk meg
A felezős módszer leállási feltétele
A konvergenciához szükséges lépések számaI a kiindulási intervallum hossza: ϵ0I a gyök értékére előírt pontosság: ϵ
I a módszer az intervallumot felezi, így a lépések száma
n = log2ϵ0ϵ
Leállási feltételI ha az intervallum hossza eléri ϵ-t, megállunkI gyöknek az intervallum felezőpontját tekintjük
A felezős módszer tulajdonságai
Fő előny:I a módszer mindig konvergál
Fő gondok:I csak előjelváltó esetben működikI csak egy gyököt talál megI ha a függvénynek szakadása van, és ezért vált előjelet, akkor a
módszer nem a gyököt, hanem a szakadási pontot találja meg
A szekáns módszer
KiindulásI valamilyen módon megközelítettük a gyökötI nem is kell feltétlen bekeretezniI egy x0 és x1 pontból indulunk
Iteratív lépésI tekintjük az f(xi−1) és f(xi) értékeketI xi−1 és xi között lineárisan interpoláljuk a függvényI az xi+1 értéke a lineáris interpoláció gyöke lesz
A szekáns módszer
A szekáns módszer tulajdonságaiGyorsabban konvergál, mint a felezős módszerI ott az intervallum mindig a felére csökkentI itt a konvergencia sebessége ϵ gyenge hatványával megy
limi→∞
|ϵi+1| = c · |ϵi|α ,
aholα =
1 +√
52 ≃ 1,618
A módszer nem tartja bekeretezve a gyökötI nem csak ott működik, ahol a függvény előjelet váltI de ha a gyök lokális minimum környékén van, akkor eltévedI akár a végtelenbe is elmehet
Akkor működik jól, ha a függvény jól közelíthető egyenessel.
A szekáns módszer egy problémája
Regula falsi módszer
A módszer az előző kettő kombinációjaI bekeretezve tartja a gyökötI de nem az intervallumot felezgeti, hanem egyenessel metszi az
abszcisszát
A szekáns módszert így módosítjukI nem a legrégebbi pontot dobjuk elI (hiszen így kifuthatnánk az intervallumból)I hanem a metszéspont megtalálása utána azt a kettőt tartja
meg, amelyeknél a függvény előjele különböző
Regula falsi módszer
A regula falsi módszer algoritmusa
KiindulásI valamilyen módon sikerült bekeretezni a gyökötI adott tehát egy [a, b] intervallumI f(a)f(b) < 0, azaz a függvény előjelet vált
Iteratív lépésI [a, b]-n lineárisan interpolálunkI megkeressük az egyenes és az x-tengely metszéspontjátI azt az új intervallumot tartjuk meg, ahol f előjelet vált
Némileg gyorsabb, mint a felezős módszer
Magasabb rendű módszerek
A szekáns módszernél egyenessel interpoláltunkI csak kellően sima függvényekre hatékonyI interpolálhatnánk magasabb rendű függvénnyel isI ehhez nem elég az intervallum két végpontja
Például: inverz kvadratikus módszerI nem kettő, hanem három ponttal dolgozunkI ezekre parabolát illesztünk y = ax2 + bx + c alakbanI a gyököket a megoldóképlettel határozzuk meg
Magasabb rendre nehezen általánosíthatóI nem léteznek megoldóképletek
A belassulást elkerülő módszerek
Vannak függvények, ahol az elvileg gyorsabb módszereklemaradnakI pl. a regula falsi lehet lassabb a felezős módszernél isI ilyenkor érdemes a módszereket kombinálniI figyeljük a konvergencia sebességétI ha lassú, akkor más módszerre váltunk
Wijngaarden–Dekker–Brent-módszer (röviden Brent)I alapesetben az inverz kvadratikus módszert használjaI ha az új pont a kereten kívül esik, vagyI a konvergencia túl lassúI akkor inkább felezi az intervallumot
A függvény deriváltjának felhasználása
Az eddigit módszerek nem használták a függvény deriváltjátI viszont lehet, hogy az is expliciten adottI ekkor gyorsabb módszer lehetséges
A Newton–Ralphson-módszerI egyetlen pontból indulunkI meghúzzuk a függvény érintőjétI az x tengellyel vett metszet lesz az új pont
A Newton–Ralphson-módszer
A Newton–Ralphson-módszer tulajdonságai
Kellően sima függvény esetén jól működik, ugyanisI a gyök körüli Taylor-sorból elég csak az első tagot megtartani
f(x + δ) ≈ f(x) + f′(x)δ + 12 f′′(x)δ2 + ...
I ezzel a gyöktől való eltérés egy jó közelítése
δ ≈ − f(x)f′(x)
Belátható, hogy a konvergencia sebessége négyzetes:
ϵi+1 = c · ϵ2i
Newton–Ralphson-módszer: túl lapos függvény
Newton–Ralphson-módszer: „páratlan” függvény
A Newton–Ralphson-módszer javítása
A Newton–Ralphson-módszer gyakran nem konvergálI ilyenkor érdemes hibrid módszert választaniI a Wijngaarden–Dekker–Brent-módszerhez hasonlóan
Egy dimenzióban nem szabad numerikus deriváltat használniI több függvénykiértékelést igényelI nem elég pontos, így lassítja a konvergenciátI a szekáns módszer gyorsabb
A Newton–Ralphson-módszer lokálisan gyors, de globálisan instabilI érdemes ezért más módszerrel bekeretezni a gyökötI ha már közel járunk, akkor N–R-módszerrel pontosítjuk
Polinomok gyökeiAz n-ed rendű polinomnak n gyöke vanI lehetnek valósak vagy komplexekI ha az együtthatók valósak, akkor
I a gyökök valósak, vagyI komplex konjugált párok
A gyököket egyesével keressükI valamilyen módszerrel egy gyököt megtalálunk: rI leosztjuk a polinomot (x − r)-rel
Pi(x) = (x − r)Pi+1(x)
I Pi+1 meghatározására létezik egyszerű algoritmusI az eggyel alacsonyabb fokú polinom egy gyökét ismét valami
elemi algoritmussal keressük
Polinomok gyökeinek megtalálása
Problémák:I a gyökkeresés nagyon sok lépést igényelI felhalmozódnak a numerikus hibákI a megtalált gyök, amivel osztunk, sem teljesen pontos
Javítási lehetőségI megkeressük a gyököketI egyenként pontosítjuk őket a Newton–Ralphson-módszerrelI gyökök „polírozása”
Módszerek komplex gyökök megtalálásáraI ld. Numerical RecipesI pl. Laguerre-módszer
Gyökök keresése több dimenzióbanTöbb dimenzióban nincsen általánosan jó gyökkereső módszer.I a probléma már két függvény esetén is nagyon bonyolult
A többdimenziós módszer vázlata
Meg kell határozni valahogyan az fi függvények zéró-kontúrjaitI a gyökök a kontúrok metszéspontjaiban lesznekI de eleve a kontúrok meghatározása is közel lehetetlen
Mindenképpen tudnunk kell részleteket is a problémárólI hány gyököt várunkI ezeket kb. hol várjuk
Jobb híjánI olyan módszert keresünk, ami egy gyököt meg tud találniI abban az esetben, ha a gyöktől elég közelről indulunk
Newton–Ralphson-módszer több dimenzióbanA deriváltat most a teljes Jacobi-mátrix helyettesíti:
Jik =∂fi∂xk
Ezzel a függvény Taylor-sora
f(x + δx) = f(x) + Jδx + ...
Hasonlóan, mint egy dimenzióbanI keressük azt a δx vektort,I ami a gyök irányába lépteti az aktuális legjobb becslést
Ehhez a Jδx = −f lineáris egyenletrendszert kell megoldani, majd
xi+1 = xi + δx