background image

Politechnika Świętokrzyska

Wydział Elektrotechniki, Automatyki i Informatyki

Katedra Zastosowań Informatyki

Metody obliczeniowe – laboratorium

Instrukcja laboratoryjna nr 10A: 
Rozwiązywanie równań różniczkowych zwyczajnych

Opracował: dr inż. Andrzej Kułakowski
Data: 15.11.2013 r.

1. Wprowadzenie

Sformułowanie zadania przybliżonego rozwiązywania równań różniczkowych zwyczajnych:

Najprostszym równaniem różniczkowym zwyczajnym jest  równanie różniczkowe pierwszego 
rzędu o postaci:

y

(1)

(x) = f(x, y(x))

(1)

z warunkiem początkowym:   y(x

0

) = y

0

Zakładamy że funkcja f(x, y(x)) jest określona i ciągła 

w obszarze x

0

 

  x  

  b ,   -

 

  y  

 

 ,  gdzie: x

0

 i b są skończone 

CELEM przybliżonego rozwiązywania równań różniczkowych zwyczajnych jest  obliczenie 
wartości funkcji y(x) dla ciągu wartości x=xi, dla i =1,2,...   
czyli znajdowanie punktów na krzywej całkowej y(x)

2. Metoda Eulera

Niech będzie dane równanie różniczkowe zwyczajne wyrażone zależnością  (1), 

z warunkiem początkowym  y(x

0

) = y

0

   

Metoda Eulera polega na zastąpieniu krzywej całkowej y=y(x) przechodzącej przez punkt 
M

0

(x

0

 ,y

0

)., odpowiadający warunkom początkowym, 

łamaną M

0

M

1

M

2

...   o wierzchołkach M

i

(x

i

 ,y

i

) i=0,1,2, składająca się z odcinków prostych.

Punkt rozpoczęcia i-tego odcinka łamanej określony jest punktem osiągnięcia przez  (i-1) - szy  
odcinek prostej odciętej       x

i

=x

0

+ih 

gdzie: h - stały krok obliczeń

Punkt M0 rozpoczęcia pierwszego odcinka łamanej jest określony 
warunkiem początkowym  y(x0) = y0. 

Odcinki Mi Mi+1 i=0,1,2.. łamanej mają współczynnik kątowy wyrażony następującą zależnością:

y

i+1

y

i

h

=f

(

x

i

,y

i

)

=y

i

(

1

)

=y

(

1

)

(

x

i

)

(2)

Ze wzoru (2) wynika również, ze wartości yi można znaleźć z następujących wzorów 

background image

yi+1=yi+

yi

yi = h·f(xi,yi)   i=0,1,2..

Przykład 1:

Rozwiązać równanie różniczkowe:

y

(1)

(x) = 2xy(x)

z warunkiem początkowym y(0)=1; długość kroku h=0.1

Rozwiązanie:

i

x

y

f(x,y)=2xy

y = h·f(x,y)  

0

0

1

0

0

1

0,1

1

0,2

0,02

2

0,2

1,02

0,408

0,0408

3

0,3

1,06080

0,63648

0,06365

4

0,4

1,12445

0,89956

0,08996

5

0,5

1,21441

1,121441

0,11214

6

0,6

1,33585

Po sześciu krokach uzyskano wynik: 1,33585

background image

3. Metoda Rungego-Kutty

Metoda Rungego-Kutty  jest metodą jednokrokową charakteryzująca się tym, że przy obliczaniu 
wartości funkcji w kolejnym punkcie x

i

=x

0

+i·h bierze się pod uwagę również punkty 

wewnątrz i-tego kroku. W zależności od liczby punktów wziętych pod uwagę, mówimy o rzędzie 
metody.

Poniżej opisano metodę Rungego-Kutty 4-go rzędu (RK4).

Niech będzie dane równanie różniczkowe zwyczajne z warunkiem początkowym, wyrażone 
zależnością  (1).

Wybierzmy krok całkowania h i wprowadźmy oznaczenia x

i

=x

0

+i·h  oraz  y

i

=y(x

i

)   dla i=0,1,...

W metodzie RK4 kolejne wartości y

i

 szukanej krzywej całkowej y=y(x) znajdujemy ze wzoru

y

i+1

=y

i

+

y

i

gdzie:

Δy

i

=

1
6

(

k

1

(

i

)

+

2k

2

(

i

)

+

2k

3

(

i

)

+k

4

(

i

)

)

     i=0,1,2..

oraz

k

1

(

i

)

=h⋅ f

(

x

i

,y

i

)

,

k

2

(

i

)

=hf

(

x

i

+

1
2

h,y

i

+

1
2

k

1

(

i

)

)

,

k

3

(

i

)

=hf

(

x

i

+

1
2

h,y

i

+

1
2

k

2

(

i

)

)

,

k

4

(

i

)

=hf

(

x

i

+h,y

i

+k

3

(

i

)

)

,

Wartości k

n

(i)

   n=1,2,3,4, są różne w każdym kroku   i.   

W celu ułatwienia korzystania z metody RK4 można podać następujący schemat rozwiązywania 
równania różniczkowego:

i

x

y

k=h·f(x,y)

y

0

x

0

y

0

k

1

(0)

k

1

(0)

x

0

+½h

y

0

+½k

1

(0)

k

2

(0)

2k

2

(0)

x

0

+½h

y

0

+½k

2

(0)

k

3

(0)

2k

3

(0)

x

0

+h

y

0

+k

3

(0)

k

4

(0)

k

4

(0)

1

·

Σ = ∆

y

0

  

1

jak wyżej, ale ze zmianą indeksu  „0” na „1”

 

background image

Przykład 2:

Rozwiązać równanie różniczkowe:

y

(1)

(x) = 2xy(x)

z warunkiem początkowym y(0)=1; długość kroku h=0.1

Rozwiązanie:

i

x

y

k=h·f(x,y)

y

0

0

1

0

0

0,05

1

0,01

0,02

0,05

1,005

0,01005

0,0201

0,1

1,01005

0,020201

0,02

1

·

Σ = ∆

y

0

  = 0,01005

1

0,1

1,01005

0,02201

0,02201

0,15

1,01101

0,03033

0,06066

0,15

1,01517

0,03046

0,06091

0,2

1,01523

0,04061

0,04061

1

·

Σ = ∆

y

0

  = 0,02737

2

0,2

1,04058

itd....do końca zakresu dla x

i

  

4. Zadania do wykonania

a) dla podanego przez prowadzącego zajęcia przykładu, rozwiązać równanie różniczkowe metodą 
Eulera.

b) dla podanego przez prowadzącego zajęcia zadania domowego:

- opisać metodę będącą modyfikacją metody Eulera; 

- napisać program komputerowy rozwiązujący  podane równanie różniczkowe zwyczajne przy 
pomocy metody RK4.