Programiranje u fizici
- 8. DEO -

U ovom delu se će biti predstavljeni neki od efikasnijih metoda za numeričko rešavanje diferencijalnih jednačina, kao što su unapređen Ojlerov metod i Runge-Kuta metod 4. reda

1.    Unapređeni Ojlerov metod

Unapređeni Ojlerov metod za rešavanje diferencijalnih jednačina se svodi na upotrebu sledeće jednačine:

$$y_{i+1}=y_i+\frac{h}{2} (f(x_i,y_i) +f(x_{i+1},y_i+hf(x_i,y_i)))$$

Poslednja jednačina se može napisati u nešto drugačijem obliku:

$$y_{i+1}=y_i+\frac{h}{2}(k_{1i}+k_{2i})$$

gde su vrednosti \(k_{1i}\) i \(k_{2i}\):

$$k_{1i}=f(x_i,y_i)$$

$$k_{2i}=f(x_i+h,y_i+hk_{1i})$$

2. Runge-Kuta metod 4. reda

Runge-Kuta metod 4. reda za rešavanje diferencijalnih jednačina se svodi na upotrebu sledeće jednačine:

$$y_{i+1}=y(i)+\frac{1}{6}(F_1+2F_2+2F_3+F_4)$$

gde su \(F_1\), \(F_2\), \(F_3\) i \(F_4\) dati sledećim izrazima:

$$F_1=hf(x_i,y_i)$$

$$F_2=hf(x_i+\frac{h}{2},y_i+\frac{F_1}{2})$$

$$F_3=hf(x_i+\frac{h}{2},y_i+\frac{F_2}{2})$$

$$F_4=hf(x_i+h,y_i+F_3)$$

Primeri

U sledećim primerima biće demonstrirani programi u kojima su implementirani unapređeni Ojlerov metod i Runge-Kuta metod 4. reda. Metodi će biti primenjeni na slučaj RL kola. Podsećanja radi, diferencijalna jednačina koja reguliše ponašanje ovog kola je:

$$\frac{di}{dt} = \frac{V}{L} – \frac{i \cdot R}{L} = \frac{1}{L} (V – i \cdot R)$$

dok je njeno egzaktno rešenje:

$$i = \frac{V}{R} (1-e^{{-\frac{R}{L} \cdot t}})$$

Primer 8.1. Implementacija unapređenog Ojlerovog metoda za slučaj RL kola

Forma programa je identična sa primerima iz prethodnih poglavlja. Razlika je u tome što je sadržaj for petlje nešto složeniji, jer je i metod nešto složeniji. Čitaocu se ostavlja za vežbu da napiše program u kojem se porede performanse Ojlerovog, unapređenog Ojlerovog metoda i egzaktnog rešenja. Početi sa niskim brojem iteracijama.

Domaći 8.1. – Upoređivanje performansi Ojlerovog, unapređenog Ojlerovog metoda sa egzaktnim rešenjem
(kliknuti na dugme “Code” za rešenje)

Forma programa je identična sa primerima iz prethodnih poglavlja. Razlika je u tome što je sadržaj for petlje nešto složeniji, jer je i metod nešto složeniji. Čitaocu se ostavlja za vežbu da napiše program u kojem se porede performanse Ojlerovog, unapređenog Ojlerovog metoda i egzaktnog rešenja. Početi sa niskim brojem iteracijama.

Primer 8.2. – Implementacija Runge-Kuta metoda 4. reda na RL kolo

Komentari u vezi programa su praktično isti kao i kod prethodnog primera. Ovde je for petlja još složenija, a za oba primera treba naglasiti da se radi o nešto jednostavnijem obliku, jer diferencijalna jednačina zavisi samo od jedne promenljive. 

Za domaći zadatak se čitaocima ostavlja da napišu program kojim se upoređuju performanse svih do sada obrađenih metoda za numeričko rešavanje slede’e diferencijalne jednačine sa početnim uslovima:

$$\frac{dy}{dx} + 2\cdot y = 3\cdot \mathrm{e}^x$$

$$y(0) = 3$$

Egzaktno rešenje date diferencijalne jednačine je:

$$y = 2\cdot \mathrm{e}^{-2x} + \mathrm{e}^x$$

Uzeti da je konačna vrednost \(x_f=20\). Za početak uzeti da je vrednost \(n=11\), a zatim povećavati vrednosti ovog parametra do 101 u koracima od po 10. Prokomentarisati performanse različitih metoda.

 

Domaći 8.2. Upoređivanje performansi Ojlerovog, unapređenog Ojlerovog i Runge -Kuta metoda 4. reda
(kliknuti na dugme “Code” za rešenje)