Instytut Sterowania i Systemów Informatycznyc Universytet Zielonogórski Wykład 9
Metoda Eulera Rozważmy równanie różniczkowe dy(t) = f (t, y(t)), y(t 0 ) = y 0 którego rozwiazanie ccemy wyznaczyć w przedziale [t 0, t f ]. Podzielmy [t 0, t f ] na N podprzedziałów o długości = t f t 0 N Wielkość nazywamy długościa kroku. Ustalamy t k = t 0 + k, k = 1,..., N
Metoda Eulera Przybliżmy pocodna w cwili t k ilorazem różnicowym: Można więc zapisać dy(t k ) y(t k+1) y(t k ) y(t k+1 ) y(t k ) = f (t k, y(t k )) Oznacza to, że dla k = 1,..., N zacodzi Scemat Eulera wprzód y(t k+1 ) = y(t k ) + f (t k, y(t k ))
Metoda Eulera Przybliżmy pocodna w cwili t k ilorazem różnicowym: Można więc zapisać dy(t k ) y(t k+1) y(t k ) y(t k+1 ) y(t k ) = f (t k, y(t k )) Oznacza to, że dla k = 1,..., N zacodzi Scemat Eulera wprzód y(t k+1 ) = y(t k ) + f (t k, y(t k ))
Alternatywne wyprowadzenie metody Eulera Całkujac obie strony równania otrzymamy dy(t) = f (t, y(t)), y(t 0 ) = y 0 tk + t k dy(t) = tk + t k f (t, y(t)) czyli y(t k + ) y(t k ) = tk + t k f (t, y(t)) }{{} g(t)
Alternatywne wyprowadzenie metody Eulera Mamy formułę prostokatów: tk + t k g(t) g(t k )
Scemat Eulera wstecz Tu inaczej przybliżmy pocodna: dy(t k ) y(t k) y(t k 1 ) Prowadzi to do scematu niejawnego: Scemat Eulera wstecz y(t k+1 ) = y(t k ) + f (t k+1, y(t k+1 )) Pytanie: Jak to rozwiazywać? Metoda Eulera nie jest zbyt dokładna, dlatego też potrzeba bardziej wyrafinowanyc tecnik.
Scemat Eulera wstecz Tu inaczej przybliżmy pocodna: dy(t k ) y(t k) y(t k 1 ) Prowadzi to do scematu niejawnego: Scemat Eulera wstecz y(t k+1 ) = y(t k ) + f (t k+1, y(t k+1 )) Pytanie: Jak to rozwiazywać? Metoda Eulera nie jest zbyt dokładna, dlatego też potrzeba bardziej wyrafinowanyc tecnik.
Scemat Eulera wstecz Tu inaczej przybliżmy pocodna: dy(t k ) y(t k) y(t k 1 ) Prowadzi to do scematu niejawnego: Scemat Eulera wstecz y(t k+1 ) = y(t k ) + f (t k+1, y(t k+1 )) Pytanie: Jak to rozwiazywać? Metoda Eulera nie jest zbyt dokładna, dlatego też potrzeba bardziej wyrafinowanyc tecnik.
Algorytm przewidywania i korekcji (metoda Heuna) Mamy formułę trapezów: tk + g(t) g(t k) + g(t k+1 ) t k 2
Algorytm przewidywania i korekcji (metoda Heuna) Z równości wynika więc tk+1 y(t k+1 ) = y(t k ) + f (t, y(t)) t k }{{} g(t) y(t k+1 ) = y(t k ) + 2 [ ] f (t k, y(t k )) + f (t k+1, y(t k+1 ) }{{} nieznane! Jest to więc scemat niejawny, który można uważać za połaczenie algortmów Eulera wprzód i wstecz (dlaczego?). Pytanie: Jak uczynić go użytecznym?
Algorytm przewidywania i korekcji (metoda Heuna) Przewidywanie (predykcja) por. metodę Eulera y (t k+1 ) = y(t k ) + f (t k, y(t k )) Korekcja y(t k + ) = y(t k ) + 2 [ ] f (t k, y(t k )) + f (t k+1, y (t k+1 ) Etap korekcji można implementowac z zastosowaniem metody iteracji prostej.
Algorytm przewidywania i korekcji (metoda Heuna) Przewidywanie (predykcja) por. metodę Eulera y (t k+1 ) = y(t k ) + f (t k, y(t k )) Korekcja y(t k + ) = y(t k ) + 2 [ ] f (t k, y(t k )) + f (t k+1, y (t k+1 ) Etap korekcji można implementowac z zastosowaniem metody iteracji prostej.
Algorytm Rungego Mamy formułę Simpsona: tk + t k g(t) 6 (x 0 + 4x 1 + x 2 )
Uzasadnienie Przybliżajac g(t) parabola at 2 + bt + c mamy x 0 = a 2 4 b 2 + c x 1 = c skad x 2 = a 2 4 + b 2 + c c = x 1 b = x 2 x 0 a = 2 2 (x 0 2x 1 + x 2 )
Uzasadnienie (c.d.) Pole pod parabola wynosi /2 /2 (at 2 + bt + c) = /2 /2 ( 2 2 (x 0 2x 1 + x 2 )t 2 + x ) 2 x 0 t + x 1 = 6 (x 0 + 4x 1 + x 2 )
Algorytm Rungego Z równości wynika więc tk+1 y(t k+1 ) = y(t k ) + f (t, y(t)) t k y(t k+1 ) = y(t k ) + 6 (m 0 + 4m 1 + m 3 ) gdzie: m 0 = f (t k, y(t k )) m 1 = f (t k + 2, y k + m 0 2 ) m 2 = f (t k +, y k + m 0 ) m 3 = f (t k +, y k + m 2 )