Metody komputerowe w edukacji technicznej – rozwiązywanie równań różniczkowych zwyczajnych za pomocą metody Eulera i jej ulepszeń
( )
0 0
0 1
( , )
( )
0,1,..., 1
, 0,1,...,
i
i i i i
i
Dla wszystkich metod Podaj liczbe krokow n Podaj krok h
Podaj warunki poczatkowe x
y
Zdefiniuj funkcje F u v
Metoda Eulera lamanych
Dla i n
Oblicz x x i h
y y h F x y
Dla i n
Wyswietl y
I ulepsze
+
= −
⎧⎪
= + ⋅
⎨⎪ = + ⋅
⎩
=
( )
( )
( )
0
*
1
*
* * *
* 1
1, 2,...,
0,1,..., 1
0.5
0.5 ,
,
0,1,...,
0,1,..., 1
i
i i
i i i
i i
i
nie Metody Eulera
Dla i n
Oblicz x x i h
Dla i n
Oblicz
x x x
y y h F x y
m F x y
y y h m
Dla i n
Wyswietl y
II ulepszenie Metody Eulera
Dla i n
Oblicz x
+
+
=
⎧⎨ = + ⋅
⎩
= −
⎧⎪
= +
⎪⎪
= + ⋅
⎨⎪
⎪ =
⎪ = + ⋅
⎩
=
= −
( )
( )
( )
0
*
*
* * *
* 1
, ,
0.5 ,
0,1,...,
i i
i i i
i i i i
i
x i h
x x h
y y h F x y
m F x y
y y h F x y m
Dla i n
Wyswietl y
+
⎧⎪ = + ⋅
⎪⎪ = +
⎪⎨ = + ⋅
⎪⎪ =
⎪⎪ = + ⋅⎡⎣ + ⎤⎦
⎩
=
UWAGI:
1. Rozwiązania w poszczególnych krokach (wartości yi) wyświetlić w okienku ListBox z zakładki Standard.
komendy do obsługi ListBox:
- ListBox->Items->Clear() – czyszczenie zawartości ListBox
- ListBox->Items->Add(FloatToStr(⋅)) – wpisywanie wartości do ListBox 2. Definiowanie własnych funkcji
double nazwa_funkcji (double argument_1, double argument_2, double …) {
double zmienna;
zmienna = …;
return zmienna;
}
Przykład: Funkcja obliczająca pole prostokąta.
double pole_prostokąta (double bok_a, double bok_b) {
double wynik;
wynik = bok_a*bok_b;
return wynik;
}