background image

 

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 

 

background image

 
 

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

=

 

x

 – zmienna niezale

Ŝ

na, 

z warunkiem pocz

ą

tkowym 

( )

0

0

x

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

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

xy

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