Drukuj stronę
Problem początkowy, metody Eulera i Runge-Kutty
PMiKNoM seminaria - zajęcia 3
Problem Początkowy Cauchy’ego
- Co to jest problem początkowy Cauchy'ego i jakie są jego zastosowania?
Równanie różniczkowe postaci: | `y' = f(x,y)` |
Warunek początkowy: | `y(x_0) = y_0` |
Metoda Jawna Eulera
Rozpatrywany problem: | ` y’(x)=y(x)+x ` |
Warunek początkowy: | `y(0) = 1` |
Szukane: | `y(1)=?` |
Metoda Jawna Eulera - wyprowadzenie
- Dzielimy szukany odcinek `(0,1)` na n przedziałów, każdy o długości `h = \frac{1}{n}`
- Kolejne punkty `x` mają zatem położenie `x_i = h \cdot i`
- Z definicji, pochodna `y'=\lim_{h->0} {y(x+h)-y(x)}/h`
- Używając zapisu `y_i = y(x_i)` i pozbywając się granicy (założenie: h bliskie 0) otrzymujemy: `y_i ' = {y_{i+1}-y_i}/h`
- Przekształcając powyższe równanie i zapisując pochodną jako `y_i ' = f(x_i,y_i)` otrzymujemy wzór znany jako Metoda Jawna Eulera: `y_{i+1} = y_i + h \cdot f(x_i, y_i) `
- W ten sposób otrzymujemy kolejne punkty, które przybliżają rozwiązanie.
Metoda Eulera - algorytm programu
- Zapisz definicję funkcji pochodnej `f(x,y) = y + x`
- Zadeklaruj zmienne (w tym zmienne tablicowe)
- Oblicz krok metody (`h`)
- Wylicz wartość punktów położenia `x(i)` - pętla for
- Zapisz wartość funkcji w punkcie początkowym `y(0) = 1`
- Wylicz wartość funkcji w kolejnych punktach metodą Eulera - pętla for
- Zapisz obliczoną wartość do arkusza
Metody Runge-Kutty
Metoda Runge-Kutty II rzędu
Metoda ta znana jest również jako metoda punktu środkowego (midpoint). Podczas, gdy w metodzie Eulera wyznaczamy wartość funkcji w kolejnym punkcie korzystając z wartości pochodnej w punkcie bieżącym, tj.
` y_{i+1} = y_i + h \cdot f(x_i, y_i) `
W metodzie punktu środkowego wyznaczamy wartość funkcji w kolejnym punkcie korzystając z wartości pochodnej w punkcie pośrednim:
` y_{i+1} = y_i + h \cdot f(x_{i+ \frac 1 2}, y_{i+ \frac 1 2}) `
gdzie `x_{i+1/2} = x_i +h/2`, natomiast `y_{i+1/2}` wyznaczany jest (metodą Eulera) jako:
` y_{i+ \frac 1 2} = y_i + \frac h 2 \cdot f(x_i, y_i) `
Wzór metody Runge-Kutty II rzędu wygląda zatem następująco:
` y_{i+ 1} = y_i + h \cdot f ( x_i + \frac h 2, y_i + \frac h 2 \cdot f(x_i, y_i) ) `
Metoda Runge-Kutty IV rzędu
Iteracyjny wzór metody Rungego-Kutty 4. rzędu to:
` y_{i+1} = y_i + \frac 1 6 (k_1 + 2 \cdot k_2 + 2 \cdot k_3 + k_4) `
gdzie:
` k_1 = h \cdot f(x_i, y_i) `
` k_2 = h \cdot f(x_i + \frac h 2, y_i + \frac {k_1} 2) `
` k_3 = h \cdot f(x_i + \frac h 2, y_i + \frac {k_2} 2) `
` k_4 = h \cdot f(x_i + h, y_i + k_3) `
Metody Runge-Kutty - algorytm programów
- Zapisz definicję funkcji pochodnej `f(x,y) = y + x`
- Zadeklaruj zmienne (w tym zmienne tablicowe)
- Oblicz krok metody (`h`)
- Wylicz wartość punktów położenia `x(i)` - pętla for
- Zapisz wartość funkcji w punkcie początkowym `y(0) = 1`
- Wylicz wartość funkcji w kolejnych punktach metodą Runge-Kutty - pętla for
- Zapisz obliczoną wartość do arkusza
Porównanie rozwiązań numerycznych i analitycznego
- Rozwiązanie analityczne: `y(x)= 2e^x-x-1`
- Zależność pomiędzy dokładnością a lością punktów dyskretyzacji (ilością kroków) i rzędem metody.
Dodatkowe materiały:
- Skrypt: R. Filipek, K. Szyszkiewicz-Warzecha "Metody Matematyczne dla Ceramików", strony 85-95.