Lab5, poch1

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

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


Wyszukiwarka

Podobne podstrony:
Lab5 poch1
lab5 prezentacja
C lab5
lab5 Proxy
ZG lab5 6 id 589867 Nieznany
ZwUE lab5
Lab5 Analiza sygnalu mowy Lab5 Nieznany
Podstawy Robotyki lab5
Architekrura SystemAlw Lab5 (1) Nieznany
Lab5
lab5
SI2 lab5 raport
Lab5
[LAB5]Tutorial do kartkówki
pme lab5
Lab5 Modelowanie dynamiki id 25 Nieznany
Lab5 OZE id 259971 Nieznany
Lab5 7 id 259904 Nieznany

więcej podobnych podstron