Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Dodatak D – Numeričko rešavanje običnih diferencijalnih

jednačina prvog reda

Matematički modeli velikog broja procesa u hemijskom inženjerstvu imaju formu


običnih diferencijalnih jednačina (ODJ). Najjednostavniji slučaj je jedna ODJ 1. reda.

D.1 Numeričko rešavanje jedne ODJ prvog reda

Tražimo funkciju y(x), definisanu u oblasti [a, b], koja zadovoljava datu ODJ 1. reda i
dati početni uslov :
y ′ = f ( x, y ) , y (a) = y0 (D.1).
Numeričko rešenje dobijamo u vidu približnih vrednosti yi, i = 1,2,..., N tražene funkcije, u
nizu ekvidistantnih tačaka:
(b − a )
xi = x0 + ih, h = , i = 1, 2,..., N
N (D.1a)
x 0 = a, x N = b
odnosno u vidu tabele: (xi, yi), i = 0,1,...,N. Korak h se naziva integracioni korak. Na slici
su prikazani: tačno rešenje, tj. neka (nepoznata) funkcija ϕ(x) i numeričko rešenje, tj. niz
tačaka (xi, yi), i = 0,1,...,N.

y izračunata približna ϕ(x)


vrednost

yi

tačna vrednost ( yi )t = ϕ(xi )


y0

x0 xi

Slika D.1 - Tačno i numeričko rešenje ODJ 1. reda

Lokalna greška neke numeričke metode integracije dif. jednačine, je odstupanje


tačnog priraštaja tražene funkcije y(x) kada se x promeni sa xi na xi+1, od priraštaja
( yi +1 − yi ) izračunatog posmatranom metodom. Dakle, to je greška metode na jednom
integracionom koraku. Njena apsolutna vrednost opada sa smanjivanjem integracionog
koraka i u opštem slučaju je proporcionalna nekom celobrojnom pozitivnom stepenu
koraka, hn.
Pod globalnom greškom numeričke metode, podrazumeva se odstupanje tačnog od
numeričkog rešenja. Tako je globalna greška, εi+1 u nekoj tački xi+1 u intervalu integracije,
jednaka:
εi +1 = y ( xi +1 ) − yi +1 = ( yi +1 )t − yi +1
Na Sl. D.1, globalne greške u pojedinim tačkama su odstupanja krive (tačno rešenje dif.
jednačine) od tačaka (približno rešenje).

Jasno je da ako lokalna greška metode raste iz koraka u korak, to će prouzrokovati


povećanje globalne greške iz koraka u korak, tj. nagomilavanje greške. U skladu sa
definicijom stabilnosti računskog procesa, takva numerička metoda je nestabilna .
Upoznaćemo se sa najjednostavnijom Ojlerovom metodom i najšire korišćenom, u
originalnom obliku ili sa modifikacijama, Runge – Kuta metodom 4. reda.

Ojlerova metoda

Pretpostavimo sada, za momenat, da je poznata vrednost funkcije u tački xi,


yi = y ( xi ) . Kako odrediti vrednost funkcije yi+1 u sledećoj tački? Ojlerova (Euler) metoda se
zasniva na aproksimaciji prvoga izvoda količnikom priraštaja:
yi +1 − yi yi +1 − yi
= ≈ y ′( xi ) = f ( xi , yi )
xi +1 − xi h
iz koje sledi (rekurentna) formula za dobijanje približnog rešenja:
yi +1 = yi + hf ( xi , yi ), i = 0,1,...N − 1 (D.2)

( yi +1 )t
nagib = f(xi,yi )

lokalna i glo-
balna greska
yi+1
yi

xi x i+1

Slika D.2 – geometrijska interpretacija Ojlerove metode


Geometrijski interpretirano, približna vrednost funkcije yi+1 u tački xi+1 se dobija kretanjem iz
tačke (xi, yi), po tangenti krive y(x), povučene u tački xi (Sl. D.2)
PRIMER D1 Potrebno je rešiti numerički diferencijalnu jednačinu:
dy
= −25 y , 0 ≤ x ≤ 1
dx
y ( 0) = 1
a) Dobiti numeričko rešenje, deleći interval definisanosti funkcije (interval integracije) na
N = 10 podintervala (koraka) i uporediti ga sa tačnim rešenjem:
y ( x) = e −25 x
b) Ponoviti proračun sa N = 15 integracionih koraka i uporediti ga sa tačnim rešenjem.
c) Ponoviti proračun i poređenje za N = 50
d) Povećavati broj integracionih koraka, dok maksimalno odstupanje približnog od tačnog
rešenja na intervalu integracije ne postane manje od 0.01

dy
= −25 y, 0 ≤ x ≤ 1
dx
y (0) = 1

Tacno resenje:

Podaci: f ( x, y ) := −25y a := 0 b

a) b−a
N := 10 Korak integracije: h :=
N

0 0
0 1 0 1
1 -1.5 1 0.082
Tacne vrednosti : 2 2.25 2 6.738·10 -3
3 -3.375 3 5.531·10 -4

y t := 1
0 i
( i)
y t := φ x y=
4
5
5.063
-7.594
yt =
4
5
4.54·10 -5
3.727·10 -6
6 11.391 6 3.059·10 -7
7 -17.086 7 2.511·10 -8
8 25.629 8 2.061·10 -9
9 -38.443 9 1.692·10 -10
10 57.665 10 1.389·10 -11
i := 0 .. N

100

yi 50

yt
i
0

50
0 5 10
i

Numericko resenje osciluje oko tacnog, pri cemu greska raste u toku racunskog procesa

ε := y − yt

100

50
Racunski proces je nestabilan!
εi
0

50
0 5 10
i

b) b −a
N := 15 h := h = 0.067
N

Integracija : i := 1 .. N
x := x + i⋅ h
i 0

y := y
i i−1
+ h⋅ f x ( i−1 , yi−1)
0 0

Tacne vrednosti : y := φ x ()
0 1 0 1
ti i 1 -0.667 1 0.189
2 0.444 2 0.036
Greske: ε := y − y t 3 -0.296 3 6.738·10 -3
4 0.198 4 1.273·10 -3
5 -0.132 5 2.404·10 -4
6 0.088 6 4.54·10 -5
y= 7 -0.059 yt = 7 8.575·10 -6
8 0.039 8 1.62·10 -6
9 -0.026 9 3.059·10 -7
10 0.017 10 5.778·10 -8
11 -0.012 11 1.091·10 -8
12 7.707·10 -3 12 2.061·10 -9
13 -5.138·10 -3 13 3.893·10 -10
-3 14 7.353·10 -11
i := 0 .. N
14 3.425·10
15 -2.284·10 -3 15 1.389·10 -11

yi

yt 0
i

1
0 5 10 15
i

Priblizno resenje osciluje oko tacnog, ali se greska po apsolutnoj vrednosti smanjuje .

0.5

0
εi Racunski proces je stabilan
0.5
Greska metode je velika ( )
→
max ε = 0.856

1
5 10
i

c) b −a
N := 50 h := h = 0.02
N
Integracija :

i := 1 .. N x := x + i⋅ h
i 0
y := y
i i−1
+ h⋅ f x ( i−1 , yi−1)
Greske:

y t := φ x ( i) ε := y − y t
→
( )
max ε = 0.118
i

i := 0 .. N

yi

yt 0.5
i

0
0 10 20 30 40 50
i
Priblizno resenje ne osciluje. Greska ima stalni znak i po apsolutnoj vrednosti opada.

0.05
εi Racunski proces je stabilan, ali
0.1 ne dovoljno tacan

0.15
2 4 6 8 10
i

b−a
d)
N := 100 Korak integracije: h := h = 0.01
N

Integracija :

i := 1 .. N x := x + i⋅ h
i 0
y := y
i i−1 ( i−1 , yi−1)
+ h⋅f x

Greske:

y t := φ x ( i) ε := y − y t
→
( )
max ε = 0.051
i

Povecavati broj integracionih koraka dok se ne dobiju prihvatljivi


rezultati: ε < 0.01
Iz prethodnog primera zaključujemo da je jednostavna Ojlerova metoda male tačnosti i
nestabilna.

Metoda Runge-Kuta 4. reda

Zbog svoje tačnosti i relativne jednostavnosti, ovo je najverovatnije najšire korišćena


metoda za numeričku integraciju ODJ 1. reda. Formule su:

yi +1 = yi +
1
( K1 + 2 K 2 + 2 K 3 + K 4 ), i = 0,1,..., N − 1
6
K1 = hf ( xi , yi )
K 2 = hf ( xi + h 2 , yi + K1 2) (D.3)
K 3 = hf ( xi + h 2 , yi + K 2 2)
K 4 = hf ( xi + h, yi + K 3 )
Dok je lokalna greška Ojlerove metode proporcionalna kvadratu koraka integracija, lokalna
greška Runge-Kuta metode je proporcionalna 5. stepenu koraka, dakle znatno je tačnija.
Rezultat znatno veće tačnosti je i znatno veća stabilnost.

Numerička integracija ODJ u Mathcad-u

Za približno rešavanje ODJ prvog reda (D.1) i uopšte rešavanje jedne ODJ višeg reda
(za detalje videti Help System Mathcad-a), namenjen je Odesolve block:
• prvi deo bloka počinje rečju Given (analogija sa Solve block-om) iza koje se daje
formulacija problema (diferencijalna jednačina i početni uslov), u obliku vrlo
sličnom izvornom (D.1)
• drugi deo bloka je poziv funkcije Odesolve, koja definiše funkciju y(x) kao
interpolacionu funkciju za izračunatu tabelu (numeričko rešenje).
Značenja argumenata (x, xmax, nk) funkcije Odesolve su:
• x - nezavisno promenljiva
• xmax - gornja granica intervala integracije
• nk - broj integracionih koraka, N (neobavezan)
Ako se nk izostavi iz pozivne liste u okviru funkcije se automatski bira integracioni korak
da se zadovolji tačnost sa kriterijumom definisanim sistemskim parametrom TOL. Funkcija
se bazira na Runge-Kuta metodi 4. reda sa konstantnim integracionim korakom duž intervala
integracije. Postoji mogućnost izbora (desnim klikom na Odesolve) iste metode uz
promenljivi korak, duž intervala integracije sa ciljem dostizanja zadovoljavajuće tačnosti.
Pozivom funkcije y(x), čije ime je definisano u formulaciji problema, može se dobiti
vrednost funkcije, koja predstavlja rešenje date ODJ, u bilo kojoj tački iz intervala
[a, max ] , (a = x0)
PRIMER D2 Diferencijalna jednačina koja opisuje promenu koncentracije reaktanta u
reakciji prvog reda A → B koja se odigrava u idealno mešanom i idealno izolovanom
šaržnom reaktoru glasi:
E

= −k 0e R T ( C A ) C A , C A (0) = C A0
dC A −

dt
∆H R
T (C A ) = T0 + (C A − C A0 )
c pρ
gde su:
T0 , C A0 - početna temperatura i koncentracija
k0, E - predeksponencijalni faktor i energija aktivacije u Arenijusovom izrazu
R - univerzalna gasna konstanta
∆H R - toplota reakcije
cp, ρ - specifična toplota i gustina reakcione smeše
Potrebno je za podatke:
C A0 = 4.5 kmol m 3 , T0 = 300 K , ∆H = −20000 kJ kmol , c p = 2.2 kJ kmolK , ρ = 850 kg m 3
k 0 = 2 × 1013 s −1 , E R = 12000 K
a) Odrediti koncentraciju reaktanta i temperaturu u reaktoru nakon 2500s od startovanja
reaktora sa korakom integracije h = 25s
b) Nacrtati grafik promene koncentracije reaktanta u reaktoru u toku vremena
c) Pokazati da je dati korak integracije dovoljan da obezbedi tačnost traženih rezultata
od 4 sigurne cifre.
Definisanje desne strane dif. jednacine:
Er

( )
∆H

T( c) := T0 + ⋅ c − c0 f ( t , c) := −k0⋅ e ⋅c
T ( c)
cp ⋅ ρ

a)

ODESOLVE blok:

tk
Broj integracionih koraka: n := n = 100
h

Given

f ( t , c( t ) )
d
c( t )
dt

c( 0) c0

(
c := Odesolve t , t k , n )
ck := c t k( ) ck = 0.3089 Tk := T ck ( ) Tk = 344.8
b)

c( t )

0
0 1000 2000
t

c)

Sa 5 znacajnih cifara rezultat je: ck = 0.30893

Sa 10 puta manjim korakom integracije, dobija se na 5 znacajnih cifara : ck := 0.30891

Apsolutna razlika dva rezultata, ∆ 0.2⋅ 10


−4
< 0.5⋅ 10
−4
pa rezultat dobijen sa 100 integracionih
koraka ima 4 sigurne cifre. tj trazenu tacnost

D.2 Numerička integracija sistema ODJ prvog reda

Treba naći približne vrednosti n funkcija y1 ( x), y 2 ( x ),..., y n ( x ) koje zadovoljavaju


diferencijalne jednačine
dy i
= f i ( x, y1 , y 2 , … , y n ) , i = 1,2,..., n (D.4)
dx
uz uslove da svaka od njih ima zadatu vrednost u nekoj tački x . Ograničićemo se na slučaj
da su vrednosti svih traženih funkcija zadate u jednoj istoj tački, x0 :

y i ( x0 ) = y i , 0 (D.4a)
tj. na tzv. problem početnih vrednosti. Rezultat numeričke integracije je tabela vrednosti
traženih funkcija za niz ekvidistantnih vrednosti x (D.1a).
Sistem ODJ (D.4), sa početnim uslovima (D.4a) se približno rešava simultanom
primenom metoda numeričke integracije jedne ODJ 1. reda na sve jednačine sistema.

Numerička integracija sistema ODJ u Mathcad-u


Od više funkcija kojima raspolaže Mathcad za rešavanje problema početnih vrednosti
za sistem odabraćemo dve:
• rkfixed, koja se bazira na Runge-Kuta metodi, sa konstantnim integracionim
korakom u celom intervalu integracije [ x0 , x N ] ,
• Rkadapt, koja za razliku od rkfixed menja korak duž intervala integracije da bi se
zadovoljio kriterijum tačnosti, sa tolerancijom definisanom sistemskim
parametrom TOL.
Obe funkcije imaju identičnu listu argumenata: y, x0, xmax, nt, D:
• y - vektor početnih vrednosti funkcija
• [x0, xmax] interval integracije
• nt - broj izračunatih vrednosti funkcija yi ( x), i = 0,1,..., n − 1 , koje korisnik dobija
• D - prethodno definisana vektorska funkcija f(x,y) kojom se zadaje sistem (D.4)
Funkcije vraćaju matricu dimenzija [(nt+1) x (nt+1)] čija prva kolona sadrži vrednost x0 i
nt ekvidistantnih vrednosti nezavisno promenljive, a ostale kolone odgovarajuće vrednosti
traženih funkcija yi ( x), i = 0,1,..., n − 1 .
PRIMER D3 Diferencijalne jednačine koje opisuju promene koncentracija učesnika u
reakcijama prvog reda:
k0 k1
A → B → C, k 0 = 0.1s −1 , k 2 = 0.05s −1
sa vremenom, u šaržnom, idealno mešanom reaktoru, su:
dC A
= −k 0C A
dt
dC B
= k 0 C A − k1C B
dt
dC C
= k1C B
dt
Neophodni početni uslovi su polazne koncentracije supstanci A, B i C. Potrebno je za podatke:
k 0 = 0.1s −1 , k 2 = 0.05s −1 , C A (0) = 1 kmol m 3 , C B (0) = C C (0) = 0
dobiti numeričko rešenje datog sistema (vrednosti koncentracija supstanci u ekvidistantnim
vremenskim momentima) u vremenskom intervalu [0, 60 s ] .
a) Integrisati dati sistem pomoću funkcije rkfixed, sa N = 20 integracionih koraka i dati
krajnje koncentracije komponenata, sa 4 značajne cifre. Nacrtati dobijene vremenske profile
koncentracija.
b) Proveriti da li je odabrani broj koraka dovoljno veliki da obezbedi tačnost krajnjih
koncentracija od 4 sigurne cifre.
c) Izvršiti integraciju pomoću funkcije Rkadapt, pri čemu se traže koncentracije u 5
ekvidistantnih vremenskih momenata u datom intervalu. Uporediti rešenja.
 10− 1  1
k :=   c :=  0 
 −1  
Pocetne koncentracije:
 0.5⋅ 10  0
a)  −k0⋅ c0 
D( t , c) :=  k0⋅ c0 − k1⋅ c1 
 
Vektorska funkcija koja sadrzi desne strane dif. jednacina:

 
 
k ⋅c
Integracija funkcijom rkfixe d: 1 1

Interval integracije : t0 := 0 tmax := 60 Broj integracionih koraka: n := 20

S := rkfixed( c , t0 , tmax, n , D) S je matrica sa 4 kolone (z,C A,CB,CC) i n+1 vrstom

Nizovi vremenskih momenata i odgovarajucih vrednosti koncentracija:

〈0〉 〈1〉 〈2〉 〈3〉


t := S CA := S CB := S CC := S

A n = 2.48 × 10 CB = 0.09462 CC = 0.9029


−3
Krajnje koncentracije : C
n n
Vremenski profili:

CA

CB
0.5
CC

0
0 10 20 30 40 50 60
t
b) Krajnje koncentracije sa 5 znacajnih cifara, dobijene

 2.480010−3
 ⋅ 
C :=  0.094615 
 
sa 20 integ. koraka su:

 0.90290 

 2.478810−3
 ⋅ 
C :=  0.094617 
 
sa 40 integ koraka su:

 0.90290 

 2.478810−3
 ⋅ 
C :=  0.094617 
 
sa 100 integ. koraka su:

 0.90290 
Poredjenjem zakljucujemo da rezultati dobijeni sa 40 i 100 integ, koraka imaju 4 sigurne
cifre, ali ne i rezultat ( krajnja koncentracija supstance A) dobijen sa 20 koraka.

c)
Integracija funkcijom Rkadapt: n := 5

Parametar n ovde ima znacenje pocetnog broja integracionih koraka i definise broj vrsta
matrice rezultata

0 
 12 0.495 0.204
1 0 0

 
0.301

 24 0.421 0.488
S =  36 0.276 0.697
0.091
S := Rkadapt ( c , 0 , tmax, n , D)
 
0.027

 48 8.23 × 10 0.165 0.827


−3

 
 60 2.479× 10 0.095 0.903
−3

Nizovi vremenskih momenata i odg. vrednosti koncentracija:

〈0〉 〈1〉 〈2〉 〈3〉


t := S CA := S CB := S CC := S

CA = 2.479× 10
−3
Krajnje koncentracije :
n
CB = 0.09462
n
CC = 0.9029
n

Uocavamo ocekivano slaganje rezultata sa onima dobijenim sa rkfixed i 40 koraka.

You might also like