Inženýrská matematika Robert Mařík © 2007-2012 

1 Metody s konstatním krokem

Řešíme počáteční úlohu pro diferenciální rovnici prvního řádu rozřešenou vzhledem k derivaci:1 \( \displaystyle \left \{\begin{aligned}y' & = f(x,y)& \\y(x_{0})& = y_{0} \\ \end{aligned}\right .\)

Řešení aproximujeme po částech lomenou čarou (viz obrázky 5.2 a 5.3), vodorovná vzdálenost mezi jednotlivými uzly se nazývá krok, označujeme jej \( \displaystyle h\), má-li další část lomené čáry směrnici \( \displaystyle k\), dostaneme další bod pomocí vztahů \( \displaystyle \left \{\begin{aligned}x_{i+1}& = x_{i} + h & \\y_{i+1}& = y_{i} + kh \\ \end{aligned}\right .\)

Uvedeme si na ukázku metody s pevným krokem, kdy neměníme krok, ale pouze směr lineární funkce, která aproximuje integrální křivku. Podle toho, jak v jednotlivých krocích volíme směrnici aproximační funkce, rozlišujeme několik metod.

Eulerova metoda
Jako směrnici tečny použijeme hodnotu směrového pole v bodě, ze kterého vycházíme: \( \displaystyle k = k_{1} := f(x_{i},y_{i})\)
RK
(metoda Runge-Kutta druhého řádu) Jako směrnici tečny použijeme hodnotu směrového pole v bodě, do kterého bychom se dostali po provedení půlky kroku Eulerovou metodou. Podíváme se tedy, kam bychom se dostali Eulerovou metodou, podíváme se jak po cestě vypadá směrové pole a podle toho zvolíme výchozí směr: \( \displaystyle k = k_{2} := f\left (x_{i} +{ h \over 2} ,y_{i} + k_{1}{ h \over 2} \right )\)
RK4
(metoda Runge-Kutta čtvrtého řádu) Zde se jedná o poněkud rafinovanější variantu předchozího. Hlavní myšlenka spočívá v tom že podobně jako u metody druhého řádu uděláme fiktivně půl kroku směrem \( \displaystyle k_{1}\) podle Eulerovy metody a ze směrového pole v bodě do kterého se dostaneme získáme směr \( \displaystyle k_{2}\). Poté podobně provedeme opět fiktivně půl kroku směrem \( \displaystyle k_{2}\) a ze směrového pole v bodě, do kterého se dostaneme, získáme směr \( \displaystyle k_{3}\). Konečně, směrem \( \displaystyle k_{3}\) provedeme fiktivně celý krok a získáme směr \( \displaystyle k_{4}\). Ze všech těchto směrů vypočítáme vážený průměr ve kterém jsou \( \displaystyle k_{2}\) a \( \displaystyle k_{3}\) zastoupeny dvojnásobnou vahou oproti \( \displaystyle k_{1}\) a \( \displaystyle k_{4}\) a získáme směr pro provedení dalšího kroku metody. K předešlým vzorcům tedy přidáváme: \( \displaystyle k ={ 1 \over 6} (k_{1} + 2k_{2} + 2k_{3} + k_{4})\),
kde \( \displaystyle k_{3} := f\left (x_{i} +{ h \over 2} ,y_{i} + k_{2}{ h \over 2} \right )\) a \( \displaystyle k_{4} := f(x_{i} + h,y_{i} + k_{3}h)\)

                                                 Euler-
1.8                       ###
                          #k2
1.6
  ###                     ###
1.k41#                     #k3
                                                 RK--
1.2

  1                                              RK4--
                                             ------------
0.8                                           Pˇresn´e#ˇreˇsen´i
                                                 #k4
0.6

  0.2                                            0.4

Obrázek 5.1: Jeden krok pro každou z metod a počáteční úlohu \( \displaystyle y' ={ 3 \over 2} y^{3} -\left ({ 11 \over 2} x\right )^{4}\), \( \displaystyle y(0.2) = 1.4\)


   ##############|###############   ------------
   ####′######2##|#xn+1#=#xn +#h#   Pˇresn´e ˇreˇsen´i-RK-
   ###y#=#x#+y###|#y####=#y#+#kh#                -RK4-
   #y(0) =#1#####|##n+1####n#####
1.6                   h = 0.2                     ------
                                                  Euler

1.4


1.2                       ################
                          #k1 pro#druhy´krok
               ###
               k2#
  1#k1
   ###
   0                     0.2                     0.4

Obrázek 5.2: Numerické řešení počáteční úlohy \( \displaystyle y' = x + y^{2}\), \( \displaystyle y(0) = 1\)


   ##############|###############   ------------
2.4####′######3##|#xn+1 =#xn#+#h#   Pˇresn´e ˇreˇsen´i
   ###y#=#x+#y###|#y###=#y##+#kh#
2.2#y(0)#=#1######|##n+1###n######                -----
                      h = 0.2                    RK4-
  2                                              RK

1.8
                                                 ------
1.6                                              Euler

1.4
                          ################
1.2           ###         k1#pro druh´y#krok
   ###        #k2
  1k1#
  0                      0.2                    0.4

Obrázek 5.3: Numerické řešení počáteční úlohy \( \displaystyle y' = x + y^{3}\), \( \displaystyle y(0) = 1\)

Robert Mařík, Ústav matematiky, Lesnická a dřevařská fakulta Mendelovy univerzity v Brně © 2007-2012