Kontinuum modellek 2. Közönséges differenciálegyenletek numerikus megoldásának alapjai közönséges differenciálegyenletek Euler módszer Runge-Kutta módszer példák
Közönséges differenciálegyenletek Dr. Erdélyi Zoltán Számítógépes modellezés 2
Közönséges differenciálegyenletek Dr. Erdélyi Zoltán Számítógépes modellezés 3
Közönséges differenciálegyenletek Dr. Erdélyi Zoltán Számítógépes modellezés 4
Közönséges differenciálegyenletek Dr. Erdélyi Zoltán Számítógépes modellezés 5
Euler módszer Az előzőekben leírt módszer „szószerinti” algoritmizálása jelenti az Euler módszert. általában nem javasolják a használatát vannak lényegesen jobbak (jobb közelítést adnak) általában nem túl stabil az algoritmus Dr. Erdélyi Zoltán Számítógépes modellezés 6
Euler módszer Dr. Erdélyi Zoltán Számítógépes modellezés 7
Euler módszer Dr. Erdélyi Zoltán Számítógépes modellezés 8 y(x) x x1x1 x2x2 x3x3 1 2
Euler módszer Pszeudo kód: f(x,y) definiálása – ez az y(x) függvény deriváltja x 0 és y 0 kezdőértékek megadása a h lépéshossz és az n lépésszám megadása. for j from 1 to n do y 1 = y 0 + h*f(x 0, y 0 ) x 1 = x 0 + h x 1 és y 1 kiíratása x 0 = x 1 és y 0 = y 1 end Dr. Erdélyi Zoltán Számítógépes modellezés 9 for ciklus: a do és az end közötti utasítássorozat n-szer kerül végrehajtásra for ciklus: a do és az end közötti utasítássorozat n-szer kerül végrehajtásra
Euler módszer Dr. Erdélyi Zoltán Számítógépes modellezés 10
Euler módszer Dr. Erdélyi Zoltán Számítógépes modellezés 11
Euler módszer Az Euler algoritmus akár Excel-ben is megvalósítható Relatív és abszolút hivatkozások alkalmazásával ennyit kell beírni az Excel-be, innen másolható a művelet. Dr. Erdélyi Zoltán Számítógépes modellezés 12 xf(x,y)y x0f(x0,y0)y0 x1=x0+hf(x1,y1)y1=y0+h*f(x0,y0) kezdeti érték, előre ismert kezdeti érték, előre ismert
Euler módszer A megvalósítás Excel táblája Dr. Erdélyi Zoltán Számítógépes modellezés 13 Bemeneti paraméterek x0=0 y0=1 h=0.1 xf(x,y)= 2-exp(-4x)-2yy_numy_anal = *exp(-4x)-0.5*exp(-2x)hiba = (y_num-y_anal)/y_anal % % % % % %
Euler módszer A numerikus és az analitikus megoldás grafikus összehasonlítása Dr. Erdélyi Zoltán Számítógépes modellezés 14 h = 0.1
Euler módszer A numerikus és az analitikus megoldás grafikus összehasonlítása Dr. Erdélyi Zoltán Számítógépes modellezés 15 Látható, hogy a lépésköz, azaz h csökkentésével javul a közelítés, azaz csökken a hiba. h = 0.01
Runge-Kutta módszer Dr. Erdélyi Zoltán Számítógépes modellezés 16
Runge-Kutta módszer Dr. Erdélyi Zoltán Számítógépes modellezés 17
Runge-Kutta módszer Dr. Erdélyi Zoltán Számítógépes modellezés 18 y(x) x x1x1 x2x2 x3x
Runge-Kutta módszer Dr. Erdélyi Zoltán Számítógépes modellezés 19
Implementált algoritmusok A megoldási algoritmusokat általában nem szükséges nekünk megvalósítanunk, mert számos program, vagy kód elérhető. Ezek egy része ingyenesen is elérhető, más része pedig megvásárolható. Előnyeik: optimalizáltak, megbízhatóak, stb. Programok Wolfram Mathematica (fizetős programcsomag, de létezik online ingyenesen használható verziója is) MathLab (fizetős programcsomag) Dr. Erdélyi Zoltán Számítógépes modellezés 20
Implementált algoritmusok SciLab (ingyenes programcsomag, a MathLab-hoz nagyon hasonló, szintaktikája is nagymértékben átfed vele) Numerical Recepies (eljárásgyűjtemény C, C++, Fortan nyelven, mely beépíthető saját programkódba) Stb. Dr. Erdélyi Zoltán Számítógépes modellezés 21
Implementált algoritmusok Dr. Erdélyi Zoltán Számítógépes modellezés 22 h = 0.01 A kód által adott eredmény