Hej, mam pewien problem z tymi schematami dla r-nia:
\(\displaystyle{ y' = e^{x}, y_{0} = 1}\)
Mam je rozwiązać za pomocą Eulera i Kutty. Nie wiem kompletnie, czy dobrze zrobiłem. Mam obliczyć za ich pomocą do \(\displaystyle{ y_{3}}\), gdzie \(\displaystyle{ h = 0.2}\).
Dla Eulera:
\(\displaystyle{ 0 krok:
x _{0} = 0, y_{0} = 1,
1 krok: x_{1} = x_{0} + h = 0 + 0.2 = 0.2,
y_{1} = y_{0} + e^{x_{0}} = 1 + 0.2*(2.71^{0}) = 1.2 \Rightarrow y_{1} = 1.2,
czyli x_{1} = 0.2, y_{1} = 1.2,
2 krok:
x_{2} = 0.2 + h = 0.4,
y_{2} = y_{1} + 0.2*(e^{x_{1}}) = 1.44
czyli x_{2} = 0.4, y_{2} = 1.44,
3 krok:
x_{3} = 0.4 + 0.2 = 0.6,
y_{3} = y_{2} + 0.2*(e^{x_{2}}) = 1.74
czyli x_{3} = 0.6, y_{3} = 1.74,}\)
Dla Kutty:
Rozpisałem sb ogólne wzory, i wg nich liczyłem:
\(\displaystyle{ k_{1} = h*e^{x_{n}},
k_{2} = h*(e^{x_{n}} + 1/2*h + 1/2*k_{1}),
k_{3} = h*(e^{x_{n}} + 1/2*h + 1/2*k_{2}),
k_{4} = h*(e^{x_{n}} + h + k_{3}),}\)
co do obliczeń, podam tylko dla 0 i 1 kroku, bo resztę liczyłem wg powyższych wzorów, i jeśli te kroki są ok, to i następne też. Proszę jedynie o zweryfikowanie tych metod, czy dobrze rozpisałem wzory dla funkcji \(\displaystyle{ e^{x}}\).
\(\displaystyle{ 0 krok:
x_{0} = 0, y_{0} = 1
1 krok:
x_{1} = 0 + 0.2 = 0.2,
k_{1} = 0.2*e^{x_{0}} = 0.2,
k_{2} = 0.2*(e^{x_{0}} + 0.1 + 0.5*0.2) = 0.24,
k_{3} = 0.2*(e^{x_{0}} + 0.1 + 0.5*0.24) = 0.244,
k_{4} = 0.2*(e^{x_{0}} + 0.2 + 0.244) = 0.28,
y_{1} = y_{0} + 1/6*(k_{1} + 2*k_{2} + 2*k_{3} +k4) = 1.24
czyli x_{1} = 0.2, y_{1} = 1.24,}\)
Jakby ktoś mógł potwierdzić, że dobrze to liczę, byłbym bardzo wdzięczny. Dziękuję:)
-- 03 lis 2011 16:48 --
nikt nie wie czy to jest ok?-- 03 lis 2011 16:49 --:(
Metoda Eulera i Rungego-Kutty - dla r-nia exp(x)
Metoda Eulera i Rungego-Kutty - dla r-nia exp(x)
Kilka uwag na początek.
1. Twój sposób liczenia jest mało czytelny. Nie dziw się, że do tej pory nikt nie chciał poświecić swojego czasu na analizę - co poeta miał na myśli.
2. Rozwiązanie numeryczne - jeśli obliczamy 'na piechotę' - prowadzi się w tablicy. Zmniejsza to prawdopodobieństwo popełnienia błędu i analiza jest łatwiejsza.
3. Metoda Eulera. Zastosowałeś właściwy algorytm i otrzymałeś dobry wynik. Do pełni szczęścia zabrakło porównania Twoich obliczeń z rozwiązaniem dokładnym, które wynosi: \(\displaystyle{ \left[ y=e ^{x} \right]}\)
4. Metoda Runge-Kutta. Tych metod jest kilka. Ty przedstawiłeś algorytm RK4 (rzędu 4-tego). Czy tak miało być ???. Obliczenia wyszły źle.
Niżej pokażę Ci jak należy takie obliczenia wykonać i przedstawić.
4.1 Równanie różniczkowe, rozwiązanie przybliżone, metoda RK4.
\(\displaystyle{ \frac{ \mbox{d}y }{ \mbox{d}x }=e ^{x} \ \to y(0)=1}\)
4.2 Algorytm metody RK4, odniesiony ściśle do zadania.
\(\displaystyle{ y(n+1) = y(n) + \Delta y(n)}\)
gdzie:
\(\displaystyle{ \Delta y(n) = \frac{h}{6}\left( k _{1} + 2k _{2} + 2k _{3} +k _{4} \right)}\)
\(\displaystyle{ k _{1} = exp\left( x _{n} \right)}\)
\(\displaystyle{ k _{2} = exp\left( x _{n}+ \frac{h}{2} \right)}\)
\(\displaystyle{ k _{3} = exp\left( x _{n}+ \frac{h}{2} \right)}\)
\(\displaystyle{ k _{4} = exp\left( x _{n}+ h \right)}\)
\(\displaystyle{ h=0.2 \to}\) długość kroku obliczeniowego, wg zadania
\(\displaystyle{ n=0, 1, 2, ... \to}\) numer kroku obliczeniowego
przy czym, dla n=0 zachodzi y(0)=1
Dodatkowo w tablicy niżej są przedstawione - dla porównania - liczby wynikające z rozwiązania ścisłego.
\(\displaystyle{ \begin{tabular}{|c|c|c|c|c|c|c|c|c|}
\hline
n & x(n) & y(n) & k1 & k2 & k3 & k4 & \Delta y(n) & y(n) ścisłe\\ \hline
0 & 0.000 & 1.000 & 1.000 & 1.105 & 1.105 & 1.221 & 0.221 & 1.000 \\ \hline
1 & 0.200 & 1.221 & 1.221 & 1.350 & 1.350 & 1.492 & 0.270 & 1.221 \\ \hline
2 & 0.400 & 1.492 & 1.492 & 1.649 & 1.649 & 1.822 & 0.330 & 1.492 \\ \hline
3 & 0.600 & 1.822 & 1.822 & 2.014 & 2.014 & 2.226 & 0.403 & 1.822 \\ \hline
\end{tabular}}\)
Patrząc na wyniki w tablicy, widzimy jak znakomicie działa algorytm RK4.
Jednocześnie należy dodać, że tak świetnie jest tylko w równaniach dobrze uwarunkowanych. W równaniach różniczkowych, tzw sztywnych, tak pięknie nie jest.
Pozdrawiam
1. Twój sposób liczenia jest mało czytelny. Nie dziw się, że do tej pory nikt nie chciał poświecić swojego czasu na analizę - co poeta miał na myśli.
2. Rozwiązanie numeryczne - jeśli obliczamy 'na piechotę' - prowadzi się w tablicy. Zmniejsza to prawdopodobieństwo popełnienia błędu i analiza jest łatwiejsza.
3. Metoda Eulera. Zastosowałeś właściwy algorytm i otrzymałeś dobry wynik. Do pełni szczęścia zabrakło porównania Twoich obliczeń z rozwiązaniem dokładnym, które wynosi: \(\displaystyle{ \left[ y=e ^{x} \right]}\)
4. Metoda Runge-Kutta. Tych metod jest kilka. Ty przedstawiłeś algorytm RK4 (rzędu 4-tego). Czy tak miało być ???. Obliczenia wyszły źle.
Niżej pokażę Ci jak należy takie obliczenia wykonać i przedstawić.
4.1 Równanie różniczkowe, rozwiązanie przybliżone, metoda RK4.
\(\displaystyle{ \frac{ \mbox{d}y }{ \mbox{d}x }=e ^{x} \ \to y(0)=1}\)
4.2 Algorytm metody RK4, odniesiony ściśle do zadania.
\(\displaystyle{ y(n+1) = y(n) + \Delta y(n)}\)
gdzie:
\(\displaystyle{ \Delta y(n) = \frac{h}{6}\left( k _{1} + 2k _{2} + 2k _{3} +k _{4} \right)}\)
\(\displaystyle{ k _{1} = exp\left( x _{n} \right)}\)
\(\displaystyle{ k _{2} = exp\left( x _{n}+ \frac{h}{2} \right)}\)
\(\displaystyle{ k _{3} = exp\left( x _{n}+ \frac{h}{2} \right)}\)
\(\displaystyle{ k _{4} = exp\left( x _{n}+ h \right)}\)
\(\displaystyle{ h=0.2 \to}\) długość kroku obliczeniowego, wg zadania
\(\displaystyle{ n=0, 1, 2, ... \to}\) numer kroku obliczeniowego
przy czym, dla n=0 zachodzi y(0)=1
Dodatkowo w tablicy niżej są przedstawione - dla porównania - liczby wynikające z rozwiązania ścisłego.
\(\displaystyle{ \begin{tabular}{|c|c|c|c|c|c|c|c|c|}
\hline
n & x(n) & y(n) & k1 & k2 & k3 & k4 & \Delta y(n) & y(n) ścisłe\\ \hline
0 & 0.000 & 1.000 & 1.000 & 1.105 & 1.105 & 1.221 & 0.221 & 1.000 \\ \hline
1 & 0.200 & 1.221 & 1.221 & 1.350 & 1.350 & 1.492 & 0.270 & 1.221 \\ \hline
2 & 0.400 & 1.492 & 1.492 & 1.649 & 1.649 & 1.822 & 0.330 & 1.492 \\ \hline
3 & 0.600 & 1.822 & 1.822 & 2.014 & 2.014 & 2.226 & 0.403 & 1.822 \\ \hline
\end{tabular}}\)
Patrząc na wyniki w tablicy, widzimy jak znakomicie działa algorytm RK4.
Jednocześnie należy dodać, że tak świetnie jest tylko w równaniach dobrze uwarunkowanych. W równaniach różniczkowych, tzw sztywnych, tak pięknie nie jest.
Pozdrawiam
Metoda Eulera i Rungego-Kutty - dla r-nia exp(x)
Pieknie dziekuje za odpowiedz. Juz myslalem, ze nikt sie nie odezwie!
Co do Twojego sposobu liczenia: a czy to jest poprawne, ze do wyliczenia [przyblizenia] funkcji exp(x) uzywamy jej samej? Bo bo wyliczenia k1,k2, .. uzywasz exp(x), ktore nalezy przyblizyc.
To nieco zbilo mnie z tropu. Nie wiedzialem, jak mam to napisac czytelniej ... i przepraszam za brak polskich znaczkow.
Co do Twojego sposobu liczenia: a czy to jest poprawne, ze do wyliczenia [przyblizenia] funkcji exp(x) uzywamy jej samej? Bo bo wyliczenia k1,k2, .. uzywasz exp(x), ktore nalezy przyblizyc.
To nieco zbilo mnie z tropu. Nie wiedzialem, jak mam to napisac czytelniej ... i przepraszam za brak polskich znaczkow.
Metoda Eulera i Rungego-Kutty - dla r-nia exp(x)
W celu zastosowania metody numerycznej musimy odpowiednio przekształcić równanie różniczkowe.
\(\displaystyle{ 1. \qquad \frac{ \mbox{d}y }{ \mbox{d}x } = F\left( x,y\right)}\)
W Twoim zadaniu po prawej stronie nie występuje jawnie zmienna (y).
Jeśli po prawej stronie równania występuje jawnie zmienna (y), wówczas współczynniki (k) liczymy, jak następuje.
\(\displaystyle{ k _{1} = F\left( x _{n}, \ y _{n} \right)}\)
\(\displaystyle{ k _{2} = F\left( x _{n}+ \frac{h}{2}, \ y _{n}+ \frac{h}{2}k _{1} \right)}\)
\(\displaystyle{ k _{3} = F\left( x _{n}+ \frac{h}{2}, \ y _{n}+ \frac{h}{2}k _{2} \right)}\)
\(\displaystyle{ k _{4} = F\left( x _{n}+h, \ y _{n}+hk _{3} \right)}\)
Przykład:
\(\displaystyle{ 2. \qquad y' + \frac{2y}{x} = e ^{x}}\)
\(\displaystyle{ 3. \qquad \frac{ \mbox{d}y }{ \mbox{d}x } = - \frac{2y}{x} + e ^{x}}\)
Jak widać mamy po prawej stronie równania (3) jawnie występujący (y). W nomenklaturze numerycznej można to nazwać, że mamy funkcję dwóch zmiennych - \(\displaystyle{ y' = F(x,y)}\). Zgodnie z definicją RK4 otrzymujemy,
\(\displaystyle{ k _{1} = -2 \cdot \frac{y _{n} }{x _{n} } + e ^{x _{n} }}\)
\(\displaystyle{ k _{2} = -2 \cdot \frac{y _{n}+ \frac{h}{2} k _{1} }{x _{n} + \frac{h}{2} } + e ^{x _{n}+ \frac{h}{2} }}\)
\(\displaystyle{ k _{3} = -2 \cdot \frac{y _{n}+ \frac{h}{2} k _{2} }{x _{n} + \frac{h}{2} } + e ^{x _{n}+ \frac{h}{2} }}\)
\(\displaystyle{ k _{4} = -2 \cdot \frac{y _{n}+ h k _{3} }{x _{n} + h} + e ^{x _{n}+h }}\)
stąd
\(\displaystyle{ \Delta y _{n} = \frac{h}{6} \left( k _{1} + 2k _{2} + 2k _{3} + k _{4} \right)}\)
oraz
\(\displaystyle{ y _{n+1} = y _{n} + \Delta y _{n}}\)
W przypadku takich równań różniczkowych konieczne jest stosowanie komputera. Zastosowanie choćby arkusza 'excel' jest lepsze niż liczenie 'na piechotę'
Pozdrawiam.
\(\displaystyle{ 1. \qquad \frac{ \mbox{d}y }{ \mbox{d}x } = F\left( x,y\right)}\)
W Twoim zadaniu po prawej stronie nie występuje jawnie zmienna (y).
Jeśli po prawej stronie równania występuje jawnie zmienna (y), wówczas współczynniki (k) liczymy, jak następuje.
\(\displaystyle{ k _{1} = F\left( x _{n}, \ y _{n} \right)}\)
\(\displaystyle{ k _{2} = F\left( x _{n}+ \frac{h}{2}, \ y _{n}+ \frac{h}{2}k _{1} \right)}\)
\(\displaystyle{ k _{3} = F\left( x _{n}+ \frac{h}{2}, \ y _{n}+ \frac{h}{2}k _{2} \right)}\)
\(\displaystyle{ k _{4} = F\left( x _{n}+h, \ y _{n}+hk _{3} \right)}\)
Przykład:
\(\displaystyle{ 2. \qquad y' + \frac{2y}{x} = e ^{x}}\)
\(\displaystyle{ 3. \qquad \frac{ \mbox{d}y }{ \mbox{d}x } = - \frac{2y}{x} + e ^{x}}\)
Jak widać mamy po prawej stronie równania (3) jawnie występujący (y). W nomenklaturze numerycznej można to nazwać, że mamy funkcję dwóch zmiennych - \(\displaystyle{ y' = F(x,y)}\). Zgodnie z definicją RK4 otrzymujemy,
\(\displaystyle{ k _{1} = -2 \cdot \frac{y _{n} }{x _{n} } + e ^{x _{n} }}\)
\(\displaystyle{ k _{2} = -2 \cdot \frac{y _{n}+ \frac{h}{2} k _{1} }{x _{n} + \frac{h}{2} } + e ^{x _{n}+ \frac{h}{2} }}\)
\(\displaystyle{ k _{3} = -2 \cdot \frac{y _{n}+ \frac{h}{2} k _{2} }{x _{n} + \frac{h}{2} } + e ^{x _{n}+ \frac{h}{2} }}\)
\(\displaystyle{ k _{4} = -2 \cdot \frac{y _{n}+ h k _{3} }{x _{n} + h} + e ^{x _{n}+h }}\)
stąd
\(\displaystyle{ \Delta y _{n} = \frac{h}{6} \left( k _{1} + 2k _{2} + 2k _{3} + k _{4} \right)}\)
oraz
\(\displaystyle{ y _{n+1} = y _{n} + \Delta y _{n}}\)
W przypadku takich równań różniczkowych konieczne jest stosowanie komputera. Zastosowanie choćby arkusza 'excel' jest lepsze niż liczenie 'na piechotę'
Pozdrawiam.