52
Differenciálegyenletek numerikus integrálása 2019. február 25.

Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Differenciálegyenletek numerikus integrálása

2019. február 25.

Page 2: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Differenciálegyenletek

Olyan egyenletek, aholI a megoldást függvény alakjában keressükI az egyenletben a függvény és deriváltjai szerepelnekI adottak még kezdeti feltételek és határfeltételek

Példa: leejtett kő mozgásegyenlete

d2x(t)dt2 =

Fm

Kezdeti feltételek:

x(t = 0) = x0dxdt

∣∣∣∣t=0

= v0

Page 3: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Tipikus fizikai problémák

I n-test szimulációk (csillagászat)I molekuladinamika (kölcsönható részecskék)I hővezetésI hidrodinamika (turbulens áramlások)I magnetohidrodinamika (csillagmodellek, plazmafizika)I gravitációs hullámokI molekulapályák számítása (időfüggetlen Schrödinger-egyenlet)I stb.

Page 4: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Példa egyszerű egyenlet megoldására

Az előbbi egyszerű mozgásegyenletet kétszer integrálva dt szerint:

d2x(t)dt2 =

Fm

dx(t)dt =

Fmt + v0

x(t) =F

2mt2 + v0t + x0

Page 5: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Differenciálegyenletek csoportosítása

Változók száma szerintI közönséges: egyváltozós, az x = x(t) megoldás csak t-től függI parciális differenciálegyenlet: többváltozós

ilyenkor parciális deriváltak is szerepelnek

Lineáris vagy nem lineárisI lineáris: ha az x(t) és deriváltjai mind első rendben szerepelnekI nem lineáris: az x(t) vagy deriváltjai magasabb hatványon

A differenciálegyenlet rendjeI az a legmagasabb derivált, ami szerepel az egyenletbenI minden magasabb rendű differenciálegyenlet átírható

többváltozós csatolt elsőrendű egyenletek rendszerére

Page 6: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Közönséges vs. parciális differenciálegyenlet

Közönséges: a keresett függvénynek csak egy változója vanEbben a példában x = x(t) időfüggő

m d2x(t)dt2 = −kx(t)

Parciális: a keresett függvénynek több változója is vanaz egyenletben szerepelnek a parciális deriváltak isMost a ϕ = ϕ(x, t) függvény hely és időfüggő is

∂ϕ(x, t)∂t = D∂2ϕ(x, t)

∂x2

Page 7: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Lineáris vs. nem lineáris differenciálegyenletA tananyagban általában lineáris differenciálegyenletek fordulnakelő, de pl. a folyadékáramlás vagy az általános relativitáselméletegyenletei nem azok.(Nem is nagyon lehet őket általános esetben megoldani.)

Lineáris differenciálegyenlet, példa: harmonikus oszcillátorBár szerepel második derivált, minden derivált lineáris

m d2x(t)dt2 = −kx(t)

Nem lineáris differenciálegyenletPélda: Navier–Stokes-egyenletek

ρ

(∂v∂t + v · ∇v

)= −∇p

Page 8: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Elsőrendű vs. magasabb rendű differenciálegyenlet

Az első rendű egyenletben legfeljebb első rendű derivált szerepelPélda: az I = I(x) fényintenzitás csökkenése fényelnyelő közegben:

dI(x)dx = −kx

A dinamikai törvények többsége lineáris másodrendűdifferenciálegyenletPélda: ismét a harmonikus oszcillátor

m d2x(t)dt2 = −kx(t)

Page 9: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Differenciálegyenletek rendszere

Ha egyszerre több ismeretlen függvényünk is van, és ezekre többegyenletünk, akkor az egy differenciálegyenlet-rendszer.I az egyenletek ugyanazoktól a változóktól függnek

Az egyenletrendszer általában csatoltI ugyanaz a függvény több egyenletben is szerepel, pl:

dy(t)dt = z(t)

dz(t)dt = t − t2z(t)

Page 10: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Másodrendű lineáris egyenletek átírásaMásodrendű (vagy akár magasabb rendű) egyenletek numerikusmegoldása általában nem probléma, ha az egyenlet maga lineáris.

Megoldás menete: átírjuk az egyenletet elsőrendű egyenletekrendszerére, és azokat párhuzamosan integráljuk.

Példa: rugó egyenlete

d2x(t)dt2 = −kx(t)

m

Átírva:

dv(t)dt = −kx(t)

mdx(t)

dt = v(t)

Page 11: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Differenciálegyenletek numerikus megoldása

Lineáris egyenletek analitikus megoldásakorI a homogén egyenlet megoldása az általános megoldásI a konkrét kezdeti feltételeket megkövetelve partikuláris

megoldást kapunk

Numerikus integráláskorI majdnem mindig csak partikuláris megoldást adunkI a függvény értékeit csak diszkrét helyeken adjuk megI bízunk abban, hogy ez nagyon hasonlít az analitikus

megoldáshoz

Mi csak közönséges kezdeti érték problémákat fogunk nézni.

Page 12: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Térbeli határfeltételek

A végtelen fázisteret általában nem szimuláljukI a fizikai folyamatok valamilyen dobozba vannak zárvaI a doboz falán van valamilyen határfeltétel

Példa: molekuladinamikaI mi történik a részecskével a doboz falán?I rugalmasan visszapattanI kimegy az egyik oldalon és bejön a másikon

ezt periodikus határfeltételnek hívjuka nagyon nagy vagy végtelen teret szimulálja

A határfeltétel parciális differenciálegyenleteknél bonyolult.

Page 13: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Közönséges első rendű egyenletek rendszere

Az általános probléma: N darab egyenlet rendszere

dyi(x)dx = fi(x, y1, y2, ..., yN)

I az fi függvények tetszőlegesek, de nem tartalmazzák az yi-kderiváltjait.

I kezdeti feltételek: yi(x = x(0)) = y(0)i

A továbbiakban az i indexet elhagyjuk, és y-t mindig vektornaktételezzük fel.

Page 14: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Kezdeti- és peremfeltételek

Általában a keresett függvények értékei a kiindulási pontbanvannak megadvaI ez persze nem mindig van ígyI lehet, hogy a kezdeti és végpont is adottI vagy nem azonos időpontban adottak a kezdeti paraméterek

Példák:I kisbolygók pozícióját eltérő időpontokban sikerült csak

meghatározni, integrálni kell a pályájukatI ismerjük a részecske kezdőpontját és a végpontbeli sebességét,

meg kell határozni a pályáját

Page 15: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Az Euler-módszerÖtlet:I kezeljük a problémát iteratívanI írjük át a dx differenciálokat véges ∆x differenciákraI a ∆x lépéshosszt általában h-val jelöljükI léptessük a változók értékét diszkrét lépésekbenI az összes változót egyszerre!

yn+1 = yn + h · f(xn, yn)

Eközben a független változó is lép:

xn+1 = xn + h

Ez az ún. Euler-módszerI nem jó módszerI még akkor sem, ha a lépéseket nagyon picire vesszük

Page 16: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Az Euler-módszer hibája

Az Euler-módszer esetében a deriváltak értékét mindig a lépéselején vesszükI ha a derivált a lépés során túl gyorsan változik, akkor a

lépésnek lesz valamekkora hibájaI idővel nagy lesz az eltérés az analitikus megoldástólI az Euler-módszer hibája ugyan O(h2)

I viszont a lépések számával a hiba felösszegződikI ha a lépést felére csökkentjük, a hiba a negyedére csökken, de

kétszer több lépésre van szükség

Page 17: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

v

Page 18: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

0 5 10 15 20 25 30 35 40

dt = 0.01

Page 19: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

0 5 10 15 20 25 30 35 40

dt = 0.001

Page 20: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

0 5 10 15 20 25 30 35 40

dt = 0.05

Page 21: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

A hiba kiszámításaEuler-módszer formulája:

yn+1 = yn + h · f(xn, yn)

Tegyük fel, hogy xn helyen a diszkréten számított yn és az egzakty(xn) megoldás azonos volt.I nézzük meg az eltérést egy lépés utánI ez lesz a lokális hibaI tekintsük y Taylor-sorát x körül az x + h helyen:

yn+1 = y(x + h) = y(x) + dydxh +

12

d2ydx2 h2 + ...

I hasonlítsuk össze az Euler-módszer formulájávalI mivel a módszer kifejezése ennek csak az első két tagját adja

meg, nem lehet pontosabb O(h2)-nélMivel a teljes számolás során ∼ 1/h lépés végzünk, ezért a globálishiba nem lehet kisebb O(h)-nál.

Page 22: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Energiamegmaradás

Az előző példában: harmonikus oszcillátorI a test minden kilengéskor egy kicsit túllendültI ez a módszer módszer pontatlansága miatt volt ígyI a test minden kitéréskor plusz potenciális energiát nyertI ez kinetikus energiává konvertálódott

Dinamikai rendszerek szimulációjakor az energiamegmaradásalapkövetelmény ⇒I az Euler-módszer nem lesz jó!I túl nagy energia nyereség/veszteség lépésenkéntI vagy keresünk olyan módszert, ami megtartja az energiát1,I vagy megpróbáljuk csökkenteni a hibát

1ún. szimplektikus integrátorok

Page 23: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

A leapfrog2 módszer

Másodrendű dinamikai egyenleteknél működikI a sebességeket és a koordinátákat külön-külön lépésben

frissítjükI másodrendű módszer, a hiba O(h4)

xn = xn−1 +∆t · vn−1/2

an =F(xn)

m

vn+1/2 = vn−1/2 +∆t · an

A hiba lecsökkent, mégis ugyanannyi számolást kell csak végezni!

2bakugrás

Page 24: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Az integrálási idő invertálhatósága

Vajon visszafele integrálható-e egy rendszerI ha nem disszipatív, akkor elvileg igenI megmarad az energiaI nincsen belső súrlódás, viszkozitás stb.

Érdekes kérdés:I visszafele léptetve egy diszkrét integrátort,

visszajutunk-e az eredeti kiindulási pontba?I egyszerű integrátorral általában nemI a numerikus hibák összeadódnakI kaotikus egyenleteknél pedig fel is erősödnek

Page 25: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Az Euler-módszer

Page 26: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Az Euler-módszer javításaAz Euler-módszer aszimmetrikus:I Fejezzük ki most yn-et yn+1-ből:

yn = yn+1 − h · f(xn, yn)

I az aszimmetria ott jelenik meg, hogy a deriváltat mindig az xnhelyen vesszük.

Javítsunk a módszeren:I kiszámoljuk a deriváltat egy középső pontbanI ezt használjuk a teljes lépésben

k1 = h · f(xn, yn)

k2 = h · f(

xn +h2 , yn +

k12

)yn+1 = yn + k2 + O(h3)

Page 27: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Az Euler-módszer javítása

Page 28: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Az Euler-módszer

Az összes változót egyszerre léptetjük:

yn+1 = yn + h · f(xn, yn) + O(h2)

Majd végül léptetjük a független változót is:

xn+1 = xn + h

Az y itt több változó vektora:I tetszőleges fizikai mennyiségekből állI pl.: fázistér: koordináták és sebességek

Az x változó skalár, és általában az időnek felel meg.

Figyelem: a potenciálokat is mindig az időlépés kezdetén kellkiértékelni!

Page 29: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Az Euler-módszer

Page 30: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Példa Euler-módszerreHarmonikus oszcillátor: d2x

dt2 = −kxm

Mivel ez másodrendű, átírjuk elsőrendű egyenletek rendszeréredvdt = −kx

mdxdt = v

Felírjuk az egyenletrendszer diszkretizált változatát

vn+1 = vn −k · xn

m ·∆txn+1 = xn + vn ·∆t

Majd az idő léptetése

tn+1 = tn +∆t

Itt most x és v felel meg a korábbi y vektor elemeinek, t a korábbix független változónak és ∆t a h lépésköznek.

Page 31: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

void e u l e r _ s t e p ( double∗ x , double∗ y ,double∗ yn , double h ,i n t N)

{i n t i ;f o r ( i = 0 ; i < N; i ++){

yn [ i ] += y [ i ] + h ∗ dy ( x , y , i ) ;}∗x += h ;

}

double dy ( double∗ x , double∗ y , i n t i ){

// i t t k i s z a m o l j u k az i . d e r i v a l t a t}^^ I

Page 32: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Példa a leapfrog módszerre

Korábbi egyenlet: harmonikus oszcillátor

Először a sebességet léptetjük(az összes komponenst, bár itt most csak egy van)

vn+1/2 = vn −k · xn

m ·∆t

majd a koordinátát

xn+1 = xn + vn+1/2 ·∆t

végül az időttn+1 = tn +∆t

Page 33: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Az Euler-módszer javítása: középponti módszerAz Euler-módszer aszimmetrikus:I Fejezzük ki most yn-et yn+1-ből:

yn = yn+1 − h · f(xn, yn)

I az aszimmetria ott jelenik meg, hogy a deriváltat mindig az xnhelyen vesszük.

Javítsunk a módszeren:I teszünk egy fél lépéstI kiszámoljuk a deriváltat egy középső pontbanI ezt használjuk a teljes lépésben

k1 = h · f(xn, yn)

k2 = h · f(

xn +h2 , yn +

k12

)yn+1 = yn + k2 + O(h3)

Page 34: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

A középponti módszer

Page 35: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

A hiba további csökkentése: a Runge–Kutta-módszer

A lépést több részlépésből előállítva bízhatunk abban, hogy a hibatovább csökken.

k1 = h · f(xn, yn)

k2 = h · f(xn +12h, yn +

12k1)

k3 = h · f(xn +12h, yn +

12k2)

k4 = h · f(xn + h, yn + k3)

yn+1 = yn +16k1 +

13k2 +

13k3 +

16k4 + O(h5)

Page 36: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

A negyedrendű Runge–Kutta-módszer

Page 37: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Módszerek összehasonlítása

f kiértékeléseinekszáma

hiba

Euler-módszer 1 O(h2)középponti módszer 2 O(h3)4-ed rendű Runge–Kutta 4 O(h5)

A Runge–Kutta-módszer magasabb rendekre is általánosíthatóI meddig érdemes elmenni?I a több köztes pont mindig nagyobb pontosságot jelent?I nem feltétlenülI viszont több függvénykiértékeléssel jár

Page 38: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Adaptív lépéshossz-változtatásEddig a h lépéshosszt rögzítettnek vettükI a megoldás van, ahol gyorsan változik, van ahol lassanI ahol lassan változik, ott léphetnénk nagyobbatI valahogyan meg kell becsülni, hogy h megváltoztatásával

mekkora hibát vétünkI ha kellően kicsit, akkor megéri h-t növelni

Végezzük el az előbbi RK4 lépéstI egyetlen lépésbenI két fél lépésben

Ez jóval több függvénykiértékelést igényel (12, de kettő azonoshelyen van véve, így csak 11)I megéri-e?I a konkrét problémától függ

Page 39: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

A Runge–Kutta-lépés hibájának becslése

Az RK4 lépést előbb egy, majd két fél lépésben végezzük:

Tekintsük a végeredmények különbségét

∆ = y2 − y1

I több koordináta esetén a maximum ∆ kell

Page 40: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Az optimális lépéshossz kiválasztása

A negyedrendű Runge–Kutta-módszer hibája O(h5)

I h1 nagyságú lépést téve a hiba ∆1I mekkora legyen h0, hogy a hiba ∆0 legyen?

h0 = h1

∣∣∣∣∆0∆1

∣∣∣∣ 15

I h1-et az előző lépésből vesszükI ∆1-et számoljukI ∆0 viszont adottI megmondjuk, hogy mekkora hibát engedünk az integrálás

során

Page 41: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Az adaptív lépéshossz előnye és hátránya

ElőnyeI nem kell előre megbecsülni a lépéshossztI azt a módszer automatikusan kitaláljaI a megoldás lapos szakaszain nagyon gyorsan halad

HátrányaI nem becsülhető előre a futásidőI ha a megoldás végig gyorsan változó, nagyon belassul

Példa: Naprendszer szimulációjaI nagyon pontos számítást igényel (akár RK8)I a Merkúr nagyon közel van a NaphozI miatta folyton nagyon belassul

Page 42: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

A Runge–Kutta-együtthatók meghatározása

Az együtthatók meghatározása nagyon nehézI minden módszer egy külön cikket ér!I az együtthatókat egy ún. Butcher-táblában adják megI RK4 táblázata:

0

12

12

12 0 1

2

1 0 0 1

16

13

13

16

Page 43: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában
Page 44: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

A Richardson-extrapolációHa garantált, hogy a megoldás simaI tegyünk meg egy lépést először kettőI majd 4, 6, 8 stb. részlépésbenI nézzük a megoldás konvergenciájátI extrapoláljunk a h = 0 esetre

Page 45: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

A függvénykiértékelések számának minimalizálásaA Richardson-extrapoláció rengeteg függvénykiértékelést igényelI próbáljunk ezen optimalizálniI egy H lépést tegyünk meg n kis lépésben: h = H

n

z0 = y(x)z1 = z0 + h · f(x, z0)

zm+1 = zm−1 + 2h · f(x + mh, zm),

ahol az harmadik sor m = 1, 2, ..., n − 1 esetekre vonatkozik.I ezekből az n részlépéses próbalépés végül

y(x + H) ≈ 12 [zn + zn−1 + h · f(x + H, zn)]

I belátható, hogy – szemben a Runge–Kuttával, ahol egylépéshez négy függvénykiértékelés kellett – most csak egykiértékelés kell

Page 46: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Az extrapoláció numerikus stabilitása

Richardson-extrapolációkorI a lépésközt n növelésével finomítani kellI extrapolálni kell a h = 0, azaz n = ∞ esetre

Bulirsch–Stoer-módszerI végezzük az extrapolációt racionális törtfüggvényekkelI ez numerikusan stabil leszI tovább bonyolítható: adaptív lépéshossz-változtatás

Page 47: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Extrapoláció racionális törtfüggvényekkelÍrjuk a kiszámolt értékeket egy táblázatba:

T11T21 T22T31 T32 T33... ... ... ...

I Tk1 = yk, ahol yk = y(x + H), ahol a H lépést nk kisebbh = H/nk lépésből tettük meg

I a sorokat így lehet polinommal interpolálni:

Tk,j+1 = Tkj +Tkj − Tk−1,j

(nk/nk−j)2 − 1 j = 1, 2, ..., k − 2

I a hibát a sor két utolsó eleme adja

Page 48: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Problémás egyenletek

Ha az integrálás során megjelenő értékek sok nagyságrenddeleltérnekI a numerikus stabilitás problémásI a stabilitáshoz irreálisan kis lépéseket kell tenni

Példa egyenlety′ = −cy c > 0

I a megoldást ismerjük: y(x) = exp (−cx), deI ha az Euler-formulát írjuk fel, akkor

yn+1 = yn + hy′(xn) = (1 − ch)yn

I ha h > 2/c, akkor |yn| végtelenhez tart, pedig 0-hoz kellene

Page 49: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Egész ártatlan, de problémás egyenletekEgyszerű egyenlet u(0) = 1 és v(0) = 0 peremfeltételekkel:

u′ = 998u + 1998vv′ = −999u − 1999v

Megoldás helyettesítéssel:

u = 2y − z v = −y + z

vagyis

u = 2e−x − e−1000x

v = −ex + e−1000x

A stabilitásához h = 2/1000 kellene, pedig a második tagokteljesen elhanyagolhatók.

Page 50: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Implicit integrálási módszerek

Eredeti Euler-lépés:

yn+1 = yn + hf(xn, yn)

Vegyük ezt visszafelé, azaz a deriváltakat a lépés végén tekintsük:

yn+1 = yn + hf(xn+1, yn+1)

I yn+1 az egyenlet mindkét oldalán szerepelI ez egy implicit egyenlet yn+1-reI f tetszőlegesen bonyolult, de ismert függvényI konkrét f esetén yn+1 kifejezhető explicit alakban

Page 51: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Példa implicit módszerre

Korábbi problémás egyenlet:

y′ = −cy c > 0

Expliciten diszkretizálva:

yn+1 = yn + h · y′(xn) = yn − h · cyn

Impliciten diszkretizálva:

yn+1 = yn + h · y′(xn+1) = yn − h · cyn+1

Kifejezve yn+1-et:yn+1 =

yn1 + hc

Ez már szépen konvergál 0-hoz, ha c > 0

Page 52: Differenciálegyenletek numerikus integrálása - vo.elte.hudobos/teaching/fiznum2019/slides/05.pdf · Differenciálegyenletek Olyan egyenletek, ahol I a megoldást függvény alakjában

Implicit módszerek differenciálegyenlet-rendszerekre

Ha lineáris differenciálegyenlet-rendszerünk vanI f az yn+1-nek csak lineáris függvényeI ekkor minden lépésben lineáris egyenlet kell megoldani

Ha f általános függvényI ezt nem tudjuk egzaktul megoldaniI csak iteratív módszerekkel lehet kezelni az implicit kifejezést