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:
y = y( x)
dy
y( x )− y( x ) y
− y
y
− y
i+1
i
i+1
i
i+1
i
y'=
= lim
= lim
= lim
(1)
x
→ x
x
→ x
x
dx
∆ →0
i +1
i
x
− x
i +1
i
x
− x
∆ x
i+1
i
i+1
i
x
∆ = x
− x
i+1
i
Założenie:
Bierzemy ∆ x „wystarczająco” małe, wtedy iloraz różnicowy y
− y
i+1
i
y '=
i
(2)
x
− x
i+1
i
Jest przybliżeniem pochodnej funkcji y( x) Druga i trzecia pochodna:
2
d y
d ( dy)
y''=
=
2
dx
( dx)2
(3)
y '− y '
i 1
y ''
+
i
=
i
( x − x )2
i 1
+
i
3
d y
d ( d ( dy))
y'''=
=
3
3
dx
dx
(4)
y ''− y ''
i 1
y '''
+
i
=
i
( x − x )3
i 1
+
i
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 = x3
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'= f ( x, y) (5)
gdzie
y = y( x)
x – zmienna niezależna,
z warunkiem początkowym
y = y( x )
0
0
y' = f → y' ( x ) = f ( x , y( x )) → y ' = f (6)
i
i
i
i
i
Korzystając ze wzoru 2:
y
− y
i+1
i = f
i
(7)
x
− x
i+1
i
dla małych przyrostów zmiennej x
∆ x = xi+1- xi , ∆ x ≈ 0
(8)
Przekształcając otrzymujemy wzór iteracyjny: y
= f ⋅ ∆ x + y
(9)
i+1
i
i
Zadanie:
1. W pliku dy_dx.m zdefiniuj funkcję dy
2
= − y
dx
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 x ∈
1
,
0
krok = 0.1
warunek początkowy y0 = 1
dy
wywołaj funkcję reprezentującą metodę Eulera z pliku f_mEulera.m z parametrami: funkcja
, x, y0
dx
narysuj rozwiązanie równania w przedziale x ∈
1
,
0
przy pomocy metody Eulera (linia czerwona) oraz rozwiązanie ścisłe (linia zielona)
1
rozwiązanie ścisłe ma postać y( x) =
1 + x
4. Porównaj wyniki dla różnych wartości kroku; 0.01, 0.1, 0.5