17.1. Elméleti összefoglaló
Az y0(x) = f(x,y) differenciálegyenlet (ahol y vektormennyiség is lehet) y(x) megoldását szeretnénk meghatározni egy egész [a,b] intervallumon, vagy csak egy adott b pontban.
A legtöbb esetben valamilyen kezdeti érték, például y(a) = y0 adott. Vágjuk fel az [a,b]
intervallumoth=b−an hosszúságú darabokra (h-t lépéshossznak vagy lépésköznek nevezzük).
Legyenek az egyes szakaszok végpontjai aza=x0,x1, . . .xn=bpontok (azazxk=a+kh).
Egymás után minden xk pontban meghatározzuk a pontos y(xk) megoldás közelít˝o értékét, amityk-val jelölünk, és végül a megoldásb-beli értékének,y(b)-nek a közelítéseynlesz. Az yk értékek természetesen függnek attól, hogy milyen módszert választunk.
A legegyszer˝ubb és id˝orendben is a legkorábbi módszer azon a felismerésen alapul, hogy minden differenciálható függvény jól közelíthet˝o az érint˝ojével, márpedig a derivált (amit a differenciálegyenletb˝ol ismerünk) pont az érint˝o meredekségét adja meg. Ezért úgy konstruáljuk meg a közelít˝o megoldást, hogy az(a,y0)pontból az érint˝o irányába mozdulunk el az (a+h,y0+ f(a,y0)) pontba, majd minden (xk,yk) pontból az ottani érint˝o irányába megyünk tovább az(xk+h,yk+h f(xk,yk))pontba. Ez azt jelenti, hogy a megoldásxk+1-beli közelít˝o értéke,
yk+1=yk+h f(xk,yk). (EE) Ez az explicit Euler-módszer (EE).
0.2 0.4 0.6 0.8 1
1.25 1.5 1.75 2 2.25 2.5
17.1. ábra. Az y0 = y+xy−x, y(0) = 1 kezdetiérték-probléma EE módszerrel kapott közelít˝o megoldása. A lépésköz 0,1
178
17.1.1.PÉLDA Az y0 = y+xy−x, y(0) = 1 kezdetiérték-probléma pontos megoldása y(x) = x+√
1+2x2. Az y0 = y+xy−x, y(0) = 1 kezdetiérték-probléma tíz lépéses, 0,1 lépésköz˝u EE módszerrel kapott közelít˝o megoldása látható a 17.1 ábrán. y1 = y0+h f(x0,y0) = 1+0,11+01−0 =1,1, y2=y1+h f(x1,y1) =1,1+0,11,1+0,11,1−0,1 =1,22, stb. Az y(1)-et közelít˝o y10 értéke közelít˝oleg 2,69165. A feladat pontos megoldása egyébként y(x) =x+√
1+2x2, azazy(1)≈2,73205.
Mekkora a hiba?y(x+h) =y(x) +hy0(x) +h22y00(ξ), azaz minden lépésbenconst·h2hibát követünk el. Összesenn=b−ah lépés van, tehát a hiba összesenconst·hlesz.
Egy másik lehet˝oség, ha mindig oda lépünk tovább, ahonnan az (ottani) érint˝o irányába visszalépve az jelenlegi pontunkat kapjuk, azaz yk+1−h f(xk+1,yk+1) =yk, szokásosabb formájában
yk+1=yk+h f(xk+1,yk+1). (IE) Ez az implicit Euler-módszer (IE).
Az EE módszernél csak ki kellett számolni f értékét egy adott pontban, most viszontyk+1 -re egy egyenletet kell megoldanunk, ami f-t˝ol függ˝oen bonyolult is lehet. Ez a különbség az explicit és az implicit módszerek között. Akkor hívunk egy módszert explicitnek, ha minden újabb függvényérték kiszámításához csak a korábbi, meglév˝o értékek valamilyen függvényét kell kiszámolnunk, egyenletmegoldás nélkül, különben a módszer implicit.
Az (IE) egyenlet megoldását kereshetjük fixpont-iterációval. LegyenYk+1[0] =yk,Yk+1[n+1]= yk+h f(xk+1,Yk+1[n] ).1 Ha |Yk+1[n+1]−Yk+1[n] |<t, ahol t el˝ore adott pontosság, ún. tolerancia, akkor megállunk, ésyk+1=Yk+1[n+1].
Látszólag az implicit módszerek bonyolultabbak, több számítást igényelnek. Az explicit módszerek nagy hátránya azonban, hogy „nem látnak a jöv˝obe”, azaz elegend˝oen kis lépés-hossz esetén konvergálnak ugyan, de nagyobb lépéslépés-hosszakra teljesen rossz eredményeket adnak – azt pedig nem mindig lehet el˝ore tudni, hogy mi az elegend˝oen kicsi. Egy példa a17.2ábrán látható.
Az Euler-módszer hibája a h lépéshosszal arányos, azaz a módszer els˝orend˝u. Egy módszer rendje az a legnagyobb k egész szám, amelyre teljesül, hogy (k-szor folytonosan differenciálható jobb oldal esetén) a hiba h→0 eseténhk-nal osztva korlátos. A magasabb-rend˝u módszerek sokkal gyorsabban konvergálnak: ha a lépéshosszt a tizedére csökkentjük, az els˝orend˝u módszerek hibája a tizedére, a másodrend˝ueké a századára, a harmadrend˝ueké az ezredére csökken.
Hogyan juthatunk magasabbrend˝u módszerekhez? Az els˝o ötlet, hogy ne csak a kiindulási vagy a végpontbeli érint˝o meredekségét használjuk fel, hanem mindkett˝ot, és ezeket átlagoljuk, vagy súlyozzuk. Így kapjuk aCrank–Nicholson-módszert:
yk+1=yk+1
2h[f(xk,yk) +f(xk+1,yk+1)]. (CN)
180 GÉPÉSZKARI MATEMATIKA MSC
A Crank–Nicholson-módszer másodrend˝u. A rend további növelésére két lehet˝oségünk van. Az egyik, hogy az (xk,yk) pontból nem egy adott irányú szakaszt húzunk, hanem több lépcs˝oben közbüls˝o értékeket számolunk ki, és az ottani deriváltakat is figyelembe vesszük yk+1 értékének a kiszámításához. A még ma is használt többlépcs˝os módszerek az ún. Runge–Kutta módszerek. 1895-ben Runge egy negyedrend˝u módszert talált, hat évvel kés˝obb Kutta egy ötödrend˝ut. Ez a két módszer egy rendkívül bonyolult általános sémába illeszkedik, amellyel további magasabbrend˝u módszerek nyerhet˝ok; ma ezeket hívják összefoglaló néven Runge–Kutta módszereknek, és ezen belül Runge-módszerére rendszerint az RK41, Kuttáéra RK5 néven hivatkoznak. Mindkett˝o explicit módszer; ezek képletét is lásd a matematikai háttérnél.
A másik lehet˝oség magasabb rend elérésére, hogy nem több közbüls˝o értéket használunk föl, hanem a korábban kiszámolt y értékek közül használunk fel többet; így kevesebb számítással is elérhetjük a kívánt pontosságot. Többlépéses módszereknek nevezzük azokat, amelyek több el˝oz˝o (xk,yk) pontbeli függvényértéket használnak fel. Ilyenek az Adams–
Moulton és az Adams–Bashforth-módszerek (lásd a matematikai háttérnél).
Ahhoz, hogy egy többlépéses módszer konvergens lehessen, két egyszer˝u feltételnek meg kell felelnie. Az egyik ilyen a konzisztenciája: akkor hívjuk konzisztensnek a módszert, ha két nagyon egyszer˝u egyenlet esetében pontos kiindulási értékekb˝ol továbbra is pontos értékeket szolgáltat. Egy másik feltétel a stabilitás(vagy zéró-stabilitás): a lehet˝o legegyszer˝ubb,y0(x) =0 egyenletnél a hibák nem n˝onek végtelen nagyra. Ami érdekes, hogy ez a két tulajdonság már garantálja a konvergenciát.
17.2. Kidolgozott példák
17.2.1.KIDOLGOZOTT FELADAT Közelítsük az y0(x) = x−y(x), y(0)=1 kezdetiérték-probléma megoldásának1-beli értékét az explicit Euler-módszerrel. Legyen h= 14.
MEGOLDÁS Az explicit Euler-módszer úgy m˝uködik, hogy felosztjuk az(a,b)(jelen esetben a(0,1)) intervallumot aza=x0,x1, . . . ,xn=bosztópontokkalhhosszúságú szakaszokra. A megadott kezdeti értékb˝ol indulunk, és ha azy(x)megoldásxk-beli értékétyk-val közelítettük, akkor az(xk,yk)-beli érint˝o irányába lépünk tovább, azazyk+1=yk+h f(xk,yk) =yk+h(xk−
tankonyvtar.ttk.bme.hu Kiss Márton - Nagy Katalin, BME
17.2.2.KIDOLGOZOTT FELADAT Közelítsük az y0(x) = x−y(x), y(0)=1 kezdetiérték-probléma megoldásának1-beli értékét az implicit Euler-módszerrel. Legyen h= 14.
MEGOLDÁS Az implicit Euler-módszer úgy m˝uködik, hogy felosztjuk az (a,b) (jelen esetben a (0,1)) intervallumot az a = x0,x1, . . . ,xn = b osztópontokkal h hosszúságú szakaszokra. A megadott kezdeti értékb˝ol indulunk, és ha azy(x)megoldásxk-beli értékétyk -val közelítettük, akkor azyk+1pontot úgy választjuk, hogy onnan az(xk+1,yk+1)-beli érint˝o irányába visszalépve pont(xk,yk)-t kapjuk, azazyk+1=yk+h f(xk+1,yk+1) =yk+h(xk+1−
17.2.3.KIDOLGOZOTT FELADAT Keressük meg az y0=−100y, y(0) =1
kép. közelít˝o megoldásának1-beli értékét az explicit és az implicit Euler-módszerrel is, ha h= 15! Mit tapasztalunk? Aztán mutassuk meg, hogy h= 1n és n→∞ esetén a közelítés a pontos értékhez tart.
MEGOLDÁS Hay(t) egy rezg˝o test adott pontjának a kitérése az id˝o függvényében, akkor minél merevebb a test, annál gyorsabban hal el a rezgés, azaz annál gyorsabban tart y a nullához. Az olyan egyenletet, amelynek van gyorsan nullához tartó megoldása, merev (stiff) egyenletnek nevezzük. Ez az egyenlet is merev, hiszen a pontos megoldás y(t) = e−100t, rettent˝o gyorsan tart a nullához.
Az EE módszerrel yk+1 =yk−100hyk = (1−100h)yk, azaz h= 15-nél yk+1=−19yk. Ezek szerinty1=−19,y2=361, és nullához tartás helyett egyre nagyobb számokat kapunk.
Ez azért lehetséges, mert az érint˝o annyira meredek, hogy bár a t tengelyen csak h= 15-öt lépünk, az ytengelyen jóval többet. Megjavul-e a módszer, ha kisebb lépésközt választunk?
Általában yn = (1−100h)yn−1 =. . . = (1−100h)ny0, azaz h= 1n és y0 =1 esetén y(1) közelítése,yn= (1−100n )n. Hantart a végtelenhez, akkor(1−100n )n→e−100, ami a pontos megoldás.
Az IE módszerrel yk+1 =yk−100hyk+1, ahonnan yk+11+100h1 yk. Eszerinth= 15 esetén yk+1= 211yk, azaz y1= 211, y2= 2112, . . ., ezek az értékek nullához tartanak. Általábanyn=
182 GÉPÉSZKARI MATEMATIKA MSC
a pontos megoldáshoz tart.
Tehát elég kis lépésközt választva mindkét módszer a pontos megoldáshoz közelít. Mégis, f˝oleg az ún. merev egyenleteknél, nem mindig látható, hogy elég kis lépésközt választottunk-e, ezért az implicit módszernek is megvannak az el˝onyei (nem száll el), még ha nehezebb is
számolni vele. 2
17.2.4.KIDOLGOZOTT FELADAT
y01=−16y1+12y2+16 cosx−13 sinx
y02=12y1−9y2−11 cosx+9 sinx (17.1) y1(0) =1, y2(0) =0.
Próbáljuk meg megoldani az explicit Euler-módszerrel n lépésben, h= πn lépéshosszal. Mi történik? A pontos megoldás y1(x) =cosx, y2(x) =sinx.
MEGOLDÁS Az el˝oz˝o feladat mintájára tekintsük az y0(x) =−Ny(x) egyenletet! A pontos megoldásy(x) =c·e−Nx, azazy(xy(xk+1)
k) =e−Nh, deyk+1=yk+h(−Nyk) = (1−hN)yk. Ha 1−Nh<−1, azaz h> N2, akkor |yk+1| növekedni fog! Ilyenkor vagy a lépéshosszt változtatjuk, vagy implicit módszereket alkalmazunk.
10-2 10-1.5 10-1 10-0.5 100
17.2. ábra. Az explicit és az implicit Euler-módszer hibája a lépéshossz függvényében a (17.1.) egyenlet esetén
A feladat egyenlete lineáris. Ilyenkor többnyire a megoldás és a deriváltja közötti nagyságrendet a homogén rész mátrixának a legnagyobb abszolútérték˝u sajátértéke határozza meg, ez most−25. Teháth>252 esetén számíthatunk rá, hogy a hiba növekedni fog, míg elég kish-ra a hibah-val arányosan csökken. Valóban ez a helyzet, lásd a17.2ábrát [1]. 2
tankonyvtar.ttk.bme.hu Kiss Márton - Nagy Katalin, BME
17.2.5.KIDOLGOZOTT FELADAT Egy y(x)függvény értékeit numerikusan határoztuk meg az x±h, x±2h, stb. pontokban. Jelölje y(x+kh) értékét yk. Milyen nagyságrend˝u hibát követünk el, ha y0(x)értékét a
9y−3−16y−4+7y−5 2h
képlettel számítjuk ki?
MEGOLDÁS Azy(x+h) =y(x) +hy0(x) +h22y00(x) +h63y000(x) +O(h4)sorfejtés alapján y−3=y(x)−3hy0(x) +9h2
2 y00(x)−27h3
6y000(x) +O(h4), y−4=y(x)−4hy0(x) +16h2
2 y00(x)−64h3
6y000(x) +O(h4), y−5=y(x)−5hy0(x) +25h2
2 y00(x)−125h3
6y000(x) +O(h4).
A megadott képlet számlálója 9-szer az els˝o sor - 16-szor a második sor + 7-szer a harmadik sor, azaz 2hy0(x)−94h3y000(x) +O(h4). Ezt 2h-val osztva y0(x)−47h2y000(x) +O(h3)-öt kapunk, vagyis a hibah2-tel arányos, a képlet másodrendben közelíti a deriváltat. 2
17.3. Gyakorló feladatok
17.3.1.FELADAT Közelítsüky(1)értékét az implicit Euler-módszer segítségével, hayaz y0=−4y, y(0) =3
kezdetiérték-probléma megoldása. Legyenh=0,05.
17.3.2.FELADAT Bizonyítsuk be, hogy y1−y2h−1 azy0(x)másodrend˝u közelítése!
17.3.3.FELADAT Bizonyítsuk be, hogy (azyk=y(x+kh)rövidítéssel élve)
−y−1+3y0−3y1+y2 h3
azy000(x)harmadik derivált els˝orend˝u közelítése!
17.4. Matematikai háttér
Többlépcs˝os módszerek
184 GÉPÉSZKARI MATEMATIKA MSC
• Heun-módszer, vagy egyszer˝usített Runge–Kutta-módszer:
y∗k+1=yk+h f(xk,yk), majd
• Kutta (egyik) módszere ([1], 174. old):
yk+1=yk+ h
tankonyvtar.ttk.bme.hu Kiss Márton - Nagy Katalin, BME
Többlépéses módszerek
ynkiszámításához több el˝oz˝o értéket használunk fel:
yn=α1yn−1+α2yn−2+. . .+αkyn−k+ (17.2)
+h(β0f(xn,yn) +β1f(xn−1,yn−1) +. . .+βk(xn−k,yn−k)).
Speciális esetek:
• Adams–Moulton-módszer: α1=1,α2=. . .=αk=0.
• Adams–Bashforth-módszer: az el˝oz˝oeken felülβ0=0.
Néhány „természetes” elvárás:
• prekonzisztencia: y0(x) =0-t jól oldja meg, ha az els˝o k érték pontosan adott, azaz 1=α1+α2+. . .+αk.
• konzisztencia: ha prekonzisztens, ésy0(x) =1,y(0) =0-t jól oldja meg, azaz nh=α1h(n−1) +α2h(n−2) +. . .+αkh(n−k) +h(β1+. . .+βk),
α1+2α2+. . .+kαk=β1+. . .+βk.
• (zéró-)stabilitás:y0(x) =0 közelít˝o megoldásai korlátosak maradnak pontatlany0,y1, . . . ,yk−1 esetén is.
• konvergencia: Tegyük fel, hogy az y0,y1, . . . ,yk−1 kezdeti értékek y(x0) ésh függvé-nyében adottak úgy, hogy h→0 esetén mindegyik y(x0)-hoz tart. Ebben az esetben bármilyenm≥k-raym→y(xm), hah→0.
17.4.1.TÉTEL ([1], Theorem 406D) A (17.2.) többlépéses módszer pontosan akkor konvergens, ha konzisztens és (zéró-)stabil.