Pochodna w matlab / octave
Rozwiązywanie równań różniczkowych metodą Eulera
1.
Pochodna
Przybliżoną wartość pochodnej można obliczyć przez obliczenie różnic pomiędzy wartościami tych
samych współrzędnych sąsiadujących punktów funkcji zadanej numerycznie. Korzysta się tu z definicji
pochodnej funkcji:
( )
(
)
( )
i
i
i
i
x
i
i
i
i
x
x
i
i
i
i
x
x
x
x
x
x
y
y
x
x
y
y
x
x
x
y
x
y
dx
dy
y
x
y
y
i
i
i
i
−
=
∆
∆
−
=
−
−
=
−
−
=
=
=
+
+
→
∆
+
+
→
+
+
→
+
+
1
1
0
1
1
1
1
lim
lim
lim
'
1
1
(1)
Założenie:
Bierzemy ∆x „wystarczająco” małe, wtedy iloraz różnicowy
i
i
i
i
i
x
x
y
y
y
−
−
=
+
+
1
1
'
(2)
Jest przybliżeniem pochodnej funkcji y(x)
Druga i trzecia pochodna:
( )
( )
(
)
2
1
1
2
2
2
'
'
''
''
i
i
i
i
i
x
x
y
y
y
dx
dy
d
dx
y
d
y
−
−
=
=
=
+
+
(3)
( )
(
)
(
)
3
1
1
3
3
3
''
''
''
'
''
'
i
i
i
i
i
x
x
y
y
y
dx
dy
d
d
dx
y
d
y
−
−
=
=
=
+
+
(4)
Do wykonania tej operacji wykorzystuje się funkcję diff(), która oblicza różnice pomiędzy sąsiadującymi
elementami wektora.
Przykład:
>> dxdy = diff(y)./diff(x) % y jest wektorem z wartościami funkcji w
punktach x
Zadanie:
1. Napisz program main6.m, w którym oblicz 1, 2 i 3 pochodną funkcji y = x
3
w przedziale <-2,2>
Wykorzystaj funkcję diff
2. Wyniki przedstaw graficznie
2.
Równania różniczkowe
Metoda Eulera - metoda rozwiązywania równań różniczkowych opierająca się na interpretacji geometrycznej
równania różniczkowego.
Zakładamy, że mamy dane równanie różniczkowe 1 rzędu
(
)
y
x
f
y
,
'=
(5)
gdzie
( )
x
y
y =
x
– zmienna niezale
ż
na,
z warunkiem pocz
ą
tkowym
( )
0
0
x
y
y =
( )
( )
(
)
i
i
i
i
i
f
y
x
y
x
f
x
y
f
y
=
→
=
→
=
'
,
'
'
(6)
Korzystaj
ą
c ze wzoru 2:
i
i
i
i
i
f
x
x
y
y
=
−
−
+
+
1
1
(7)
dla małych przyrostów zmiennej x
∆
x
= x
i+1
-x
i
,
∆
x
≈
0
(8)
Przekształcaj
ą
c otrzymujemy wzór iteracyjny:
i
i
i
y
x
f
y
+
∆
⋅
=
+1
(9)
Zadanie:
1.
W pliku
dy_dx.m
zdefiniuj funkcj
ę
2
y
dx
dy
−
=
2.
Uzupełnij plik f_mEulera.m na podstawie wskazówek wewn
ą
trz pliku.
3.
Napisz program main7.m, w którym:
zdefiniuj przedział, w którym b
ę
dziemy poszukiwa
ć
rozwi
ą
zania
1
,
0
∈
x
krok = 0.1
warunek początkowy y
0
= 1
wywołaj funkcję reprezentującą metodę Eulera z pliku f_mEulera.m z parametrami: funkcja
dx
dy
, x, y
0
narysuj rozwiązanie równania w przedziale
1
,
0
∈
x
przy pomocy metody Eulera (linia czerwona) oraz
rozwiązanie ścisłe (linia zielona)
rozwiązanie ścisłe ma postać
( )
x
x
y
+
=
1
1
4.
Porównaj wyniki dla różnych wartości kroku; 0.01, 0.1, 0.5