You are on page 1of 14

3

Numeriko diferenciranje

Zadatak numerikog diferenciranja

Numeriko diferenciranje je postupak priblinog izraunavanja izvoda funkcije zadate


tabelom: ( xi , f ( xi )), i = 0,1,..., n i bazira se na aproksimaciji funkcije interpolacionim
polinomom:

f(x) Pm(x), mn

df ( k ) ( x ) dPm( k ) ( x )
, km
dx k dx k

Pm(x) f (x)

nagib = f '(x)

nagib = Pm'(x)

x
Slika 3.1 - Procenjivanje 1. izvoda funkcije numerikim diferenciranjem

Tipian primer primene je diferenciranje PVT podataka, radi izraunavanja rezidualne entalpije
i entropije realnog fluida.

61
Numeriko diferenciranje je manje tano od interpolacije. Tako, u interpolacionom
voru je greka interpolacije jednaka nuli, a greka diferenciranja moe da bude vrlo velika
(vidi sliku 3.1). Najjednostavnija formula za procenjivanje prvog izvoda funkcije u
interpolacionom voru je:

f ( xi +1 ) f ( xi )
f ( xi ) , i = 0,..., n 1 (3.1)
xi +1 xi

i predstavlja izvod IP 1. stepena, provuenog kroz vorove xi , xi +1 (seica). Da bi kolinik


prirataja funkcije i argumenta (3.1) to bolje aproksimirao prvi izvod funkcije, razlika izmeu
vorova xi i xi +1 treba da budu to manja, to znai i bliske vrednosti f ( xi +1 ) i f ( xi ) . To
meutim ukljuuje "opasnu" raunsku operaciju oduzimanja bliskih brojeva, praenu
gubitkom znaajnih cifara. Moemo da zakljuimo da numeriko diferenciranje moe da
bude nestabilan raunski proces.

3.1 GREKA NUMERIKE PROCENE PRVOG IZVODA

Neka smo funkciju zadatu tabelom ( xi , f ( xi )),


i = 0,1,..., n aproksimirali sa IP n-tog
stepena, Pn (x) . Interesuje nas greka numerikog diferenciranja:

En ( x) = f ( x) Pn( x )

Uoavamo da je ona jednaka prvom izvodu greke interpolacije (2.6):

En ( x) = Rn ( x)

Treba dakle diferencirati izraz (2.7):

Rn ( x) = n+1 ( x)
f ( n +1) ()
= n+1 ( x ) g ( x)
(n + 1)!

(
)
Rn ( x) = n+1 ( x ) g ( x) + n +1 ( x) g ( x)

to ukljuuje diferenciranje funkcije g(x):


f ( n+1) ()
g ( x) = , ( x0 , xn )
(n + 1)!
koje nije mogue, jer funkcija (x ) nije poznata. Kako se funkcija

n+1 ( x) = ( x xi )
n

i =0

62
anulira u interpolacionim vorovima, mogue je nai greku prvog izvoda u interpolacionom
voru. U poglavlju 2.1 smo pokazali da je:

( x j ) = ( x j xi )
n
'
n +1
i =0
i j

pa za greku numerikog diferenciranja u interpolacionom voru dobijamo:

En ( xi ) = ( xi x j )
f ( n+1) ()
( x0 , xn ), i = 0,1,...n
n
, (3.2)
j =0 (n + 1)!
j i

3.2 PRVI IZVOD U EKVIDISTANTNIM VOROVIMA

Formulu za numeriko procenjivanje prvog izvoda tabelarno zadate funkcije, ako su


interpolacioni vorovi ekvidistantni, moemo da dobijemo diferenciranjem NJIP1,

dP dP ( ) d
Pn ( x ) = n = n = Pn ( )
1
dx d dx h
x x0
=
h
gde je izraz Pn ( ) dat jednainom (2.15):

1 1 2 1 2 3 2 6 + 2 3 2 3 9 2 + 11 3 4
f ( x) Pn () = y0 + y0 + y0 + y0 + ...
h h 2 6 12
(3.3)
Poto je za ekvidistantne vorove xi = x0 + ih, i = 0,1,..., n ,

xi x j = (i j )h

greka prvog izvoda (3.2), izraunatog formulom (3.3) je:

(i j )
n

(x0, xn )
j =0
En ( xi ) = h n f ( n+1) (),
j i
(3.3a)
(n + 1)!

Korak izmeu ekvidistantnih vorova h se u kontekstu numerikog diferenciranja zove korak


diferenciranja. Iz jednaina (3.3, 3.3a) dobijaju se sledee formule za numeriko
procenjivanje prvih izvoda f ( xi ) = yi , i za greke metode:

za n = 2:
y0 = (3 y0 + 4 y1 y 2 ), E ( x0 ) = h 2 y ( 0 )
1 1
(3.4a)
2h 3

63
y1 = ( y0 + y2 ), E ( x1 ) = h 2 y(1 )
1 1
(3.4b)
2h 6

y 2 = ( y0 4 y1 + 3 y2 ), E ( x2 ) = h 2 y ( 2 )
1 1
(3.4c)
2h 3

za n = 4:

y0 =
h 4 (5)
(25 y0 + 48 y1 36 y2 + 16 y3 3 y4 ), E ( x0 ) = y ( 0 )
1
(3.5a)
12h 5

y1 =
h 4 (5)
(3 y0 10 y1 + 18 y2 6 y3 + y4 ), E ( x1 ) = y (1 )
1
(3.5b)
12h 20

y 2 =
h 4 ( 5)
( y0 8 y1 + 8 y3 y 4 ), E ( x2 ) = y ( 2 )
1
(3.5c)
12h 30

y3 =
h 4 (5)
( y0 + 6 y1 18 y2 + 10 y3 + 3 y4 ), E ( x3 ) = y ( 3 )
1
(3.5d)
12h 20

y 4 =
h 4 (5)
(3 y0 16 y1 + 36 y 2 48 y3 + 25 y4 ), E ( x4 ) = y ( 4 )
1
(3.5e)
12h 5

Primetimo da je u svim formulama zbir koeficijenata uz vrednosti funkcije jednak nuli.


To znai da pri smanjivanju koraka diferenciranja h, zbog smanjivanja razlika u
vrednostima funkcija, vrednosti izraza u zagradi tee nuli. To ukazuje na oduzimanje
bliskih brojeva i u vezi sa njim gubljenje sigurnih cifara u nestabilan raunski proces. S
druge strane, smanjivanjem koraka h se smanjuje greka numerike metode, E i to utoliko
bre ukoliko je stepen IP koji aproksimira funkciju vii (vidi jednainu 3.3a). Iz dosadanje
diskusije moemo da izvedemo zakljuke:

numeriko diferenciranje, kao numeriku metodu, karakterie relativno mala tanost,


tj. velika greka metode. Tako je numeriko diferenciranje manje tano od interpolacije
(slika 3.1);
ako se radi smanjenja greke metode (koja raste sa n-tim stepenom koraka h), korak
diferenciranja h smanjuje, poveava se nestabilnost raunskog procesa, tj. gubitak
sigurnih cifara i veoma je teko proceniti tanost rezultata;
da bi se uz malu greku metode (mali korak h) smanjio efekat gubitka sigurnih cifara,
neophodno je da polazni podaci sadre to vei broj sigurnih cifara;
dakle, treba izbegavati numeriko diferenciranje podataka male tanosti, kao to su
eksperimentalni podaci.

64
Zadatak 3.1 U tabeli su date vrednosti faktora stiljivosti z pare izobutana za razne pritiske i
temperature (kolone 2-5). Proceniti, za temperaturu T = 360K i date pritiske, vrednosti

z 1
funkcije:

T p
p

z 1
10
p T [K]
T p
4
(bar) 340 350 360 370 380
0.1 0.99700 0.99719 0.99737 0.99753 0.99767 1.7083
0.5 0.98745 0.98830 0.98907 0.98977 0.99040 1.4683
2 0.95895 0.96206 0.96483 0.96730 0.96953 1.3058
4 0.92422 0.93069 0.93635 0.94132 0.94574 1.3233
6 0.88742 0.89816 0.90734 0.91529 0.92223 1.4199
8 0.84575 0.86218 0.87586 0.88745 0.89743 1.5675
10 0.79659 0.82117 0.84077 0.85695 0.87061 1.7685
12 0.77310 0.80103 0.82315 0.84134 2.0854
14 0.75506 0.78531 0.80923 2.3868
15.41 0.71727 2.5900

Reenje:
Tabelarne vrednosti su ucrtane u dijagram (slika uz zadatak). Vrednosti funkcije koju
raunamo zahtevaju vrednosti parcijalnog izvoda, pa je neophodno numeriko
diferenciranje datih podataka, tj. diferenciranje po T funkcije z (T , p ) p= const. , za razliite
fiksirane vrednosti p, u taki T = 360. Geometrijski, procenjujemo nagibe tangenti na
skiciranim krivama u taki T = 360.

z
1 p = 0 .1

p=14

T
340 350 360 370 380

65
p = 0.1 - 10 bar:

Na raspolaganju je po 5 taaka, pa moemo da koristimo jednu od formula (3.5a-e),


dobijenih diferenciranjem IP 4. stepena (n = 4). Poto je u pitanju srednja taka (i = 2),
odgovarajua formula je (3.5c):

z

T

0.1
= z =
2
1
12h 0
[
z + 8( z z ) z
3 1 4
]
=
1
[0.997 + 8(0.99753 0.99719) 0.99767] = 1.7082 105
120

f (0.1) = z 2 / p = 1.7082 10 5 / 0.1 = 1.7082 10 4

Greke u rezultatima potiu od


greaka polaznih podataka i

greke numerike metode (numeriko diferenciranje)


Poto su polazni podaci dati sa 5 znaajnih cifara, rezultate ima smisla prikazati sa
najvie 5 znaajnih cifara. Poto u ovom primeru, zbog relativno velikog koraka
integracije nema oduzimanja bliskih brojeva, raunski proces je stabilan i u skladu sa
optim pravilom procenjivanja tanosti rezultata (poglavlje 1.3), rezultate emo dati sa
5 znaajnih cifara. To svakako ne znai da su to i sigurne cifre, jer rezultati sadre,
pored greke koja potie od greaka u polaznim podacima i greku numerike metode
(3.3a).

p = 12 bar:
Raspolaemo sa 4 take (i-butan je na 340K u tenom stanju) i trebalo bi koristiti
formule bazirane na IP 3. stepena. Poto mi imamo samo formule za n = 2, odabraemo
od etiri date take, tri i to tako da taka T = 360 bude srednja (prema jednainama
3.4a-c, najtanija je procena 1. izvoda u srednjoj taki). To su take T = 350, 360,
370:

z
= z1 = ( z2 z0 ) = (0.82315 0.7731) = 2.5025 10 3
1 1
T 12 2h 20
f (12) = z1 / p = 2.5025 10 3 / 12 = 2.085 10 4

p = 14 bar:
Imamo samo tri take, pa je jedini izbor, formula (3.4a):

66
z
= z 0 = (3 z0 + 4 z1 z 2 ) =
1
T 14 2h

= (3 0.75506 + 4 0.78531 0.80923) = 3.3415 10 3


1
20
f (14) = 3.3415 10 3 / 14 = 2.387 10 4

p = 15.41 bar:

Imamo samo jednu taku, pa je numeriko diferenciranje nemogue. Jedini nain da


ipak procenimo vrednost funkcije (z T ) p p na tom pritisku je ekstrapolacija iz
vrednosti dobijenih za nie pritiske (poslednja kolona tabele) pomou odabranog IP.
Imajui u vidu da je ekstrapolacija vrlo "opasna" operacija, naroito sa polinomima
viih stepena, odabraemo polinom NJIP1 drugog stepena kroz tri poslednje take
(p=10, 12, 14):

z 1
T p
p

2.5

2.0 P2(p)

p0=10 p1=12 p2=14 p=15.41

Startna taka je p0 = 10 i traenu vrednost dobijamo kao vrednost polinoma


( 1) 2
f ( p) P2 ( ) = y0 + y0 + y0
2
za
p p0 15.41 10
= = = 2.705
h 2
Potrebne su nam konane razlike:
y0 = y1 y0 = 2.0854 1.7685 = 0.3169
y1 = y2 y1 = 2.3868 2.0854 = 0.3014
2 y0 = y1 y0 = 0.3014 0.3169 = 0.0155

Konano, dobijamo:
2.705 1.705
P2 (2.705) = 1.7685 + 2.705 0.3169 + (0.0155) = 2.5900
2

67
3.3 NUMERIKO DIFERENCIRANJE U MATHCAD-u

U Mathcad-u, ne postoji alat za numeriko diferenciranje tabelarno zadate funkcije.


Numeriko diferenciranje funkcije definisane analitiki, se realizuje pomou operatora
diferenciranja iz calculus toolbar-a, koji zahteva
prethodno definisanu funkciju, koju diferenciramo i
vrednost nezavisno promenljive za koju traimo izvod.
Tako, numeriko diferenciranje tabelarnih podataka zahteva dva koraka:
definisanje interpolacionog polinoma, kojim aproksimiramo funkciju, u vidu
Mathcad funkcije
numeriko diferenciranje definisane interpolacione funkcije, pomou operatora
Prema informacijama iz Help sistema Mathcad-a, algoritam koji se koristi u Mathcad-u
garantuje relativno visoku tanost numeriki odreenog prvog izvoda neke funkcije od 7-8
sigurnih cifara, pod uslovom da su vrednosti funkcije tane (tj. sa 15 sigurnih cifara, koliki je
kapacitet memorijske lokacije) i da taka u kojoj se trai izvod nije blizu vertikalnoj asimptoti
funkcije. Zahvaljujui ovakvoj tanosti, koja je dovoljna za proraune u hemijskom
inenjerstvu, praktino se analitiko diferenciranje moe zameniti numerikim.
Kao interpolacioni polinom koji aproksimira tabelarno zadatu funkciju koju
diferenciramo, preporuuje se zbog svojih dobrih osobina (poglavlje 2.5) kubni splajn. Pri
tom e se dobiti razliiti rezultati, zavisno od izbora splajn funkcije: lspline, pspline ili cspline.
Kod izbora splajn funkcije, treba imati u vidu da je:
splajn formiran kroz 4 take, pomou cspline funkcije, identian obinom
kubnom IP za te take, to ne vai za splajnove formirane sa lspline ili pspline
splajn formiran kroz 3 take, pomou pspline funkcije, identian obinom
kvadratnom IP za te take , to ne vai za splajnove formirane sa lspline ili
cspline

Zadatak 3.2 Za podatke iz prethodnog primera,


a) izraunati traenu funkciju za pritiske p = 10, 12 i 14bar,
b) za vrednosti funkcije izraunatih u prethodnom primeru za pritiske 0.1-14bar
ekstrapolacijom pomou kubnog splajna proceniti vrednost funkcije za p = 15.41bar.
Uporediti rezultate sa onim dobijenim u prethodnom primeru i diskutovati izbor splajn funkcije.

Reenje (Mathcad):
a) p := 10

T0 := 340 h := 10 i := 1 .. 4 Ti := T0 + ih

340 0.79659
350 0.82117

T = 360 z := 0.84077
370 0.85695

380 0.87061

68
Definisanje kubnog splajna:

koef := cspline ( T , z)

f ( x) := interp ( koef , T , z , x)

Diferenciranje:

Tx := 360

z0 + 8 (z3 z1) z4
12 h
1
Formula(3.5c): dzdt0 :=

Mathcad : dzdt1 :=
d
dTx
( )
f Tx

Vrednosti funkcije:

1.7685 10 4
dzdti
4
Formula(3.5c)
i := 0 .. 1 fz i := fz =
1.7685 10
p Mathcad

4
Mathcad sa lspline: fz := 1.7583 10
4
Mathcad sa pspline: fz := 1.7644 10

Napomena: Kubni splajn formiran pomocucspline daje identicne rezultate


(sa 5 znacajnih cifara) kao formula (3.5c)
------------------------------------------------------------------------------------

p := 12

350 0.7731

360 0.80103
370 0.82315
T := z :=

380 0.84134

Za aproksimaciju funkcije treba, postoimamo 4 tacke, koristiti


splajn formiran sacspline (vidi primedbe u tekstu, koji prethodi ovom primeru)
Definisanje kubnog splajna:

koef := cspline ( T , z) f ( x) := interp ( koef , T , z , x)

Diferenciranje:

Tx := 360

( z2 z0)
1
Formula(3.4b): dzdt 0 :=
2 h

69
Mathcad: dzdt1 :=
d
dTx
( )
f Tx

Vrednosti funkcije:

2.0854 10 4

dzdti Formula(3.4b)
i := 0 .. 1 fz i :=
4
fz =
2.0593 10
p
Mathcad
------------------------------------------------------------------------------------

p := 14

360 0.75506


T := 370 z := 0.78531
380 0.80923

Za aproksimaciju funkcije treba, postoimamo 3 tacke, koristiti


splajn formiran sapspline (vidi primedbe u tekstu, koji prethodi ovom primeru)

Definisanje kubnog splajna:

koef := pspline ( T , z) f ( x) := interp ( koef , T , z , x)

Diferenciranje:

Tx := 360

( 3 z0 + 4 z1 z2)
1
Formula(3.4a): dzdt0 :=
2 h

Mathcad: dzdt1 :=
d
dTx
f Tx ( )

Vrednosti funkcije:
2.3868 10 4
dzdti
4
i := 0 .. 1 fz i := fz =
2.3868 10
p Formula(3.4b)

Mathcad
Napomena: Rezultati se poklapaju jer je splajn identican sa kvadratnim polinomom,
cijim diferenciranjem je dobijena formula (3.4a) !

b) Spline ekstrapolacija :

70
0.1 1.7083

0.5 1.4683
2 1.3058
4 1.3233

p := 6 fz := 1.4199
8 1.5675

10 1.7685
12 2.0854

14 2.3868

2.5

fz

1.5

1
0 5 10 15
p

Ekstrapolacija i interpolacija:
Linearna:
koef := lspline( p , fz )

f ( x) := interp ( koef , p , fz , x)
f ( 15.41 ) = 2.5952
f ( 7.5 ) = 1.5283
Kvadratna:
koef := pspline( p , fz )

f ( x) := interp ( koef , p , fz , x) f ( 15.41 ) = 2.5664


f ( 7.5 ) = 1.5281
Kubna:
koef := cspline ( p , fz )

f ( x) := interp ( koef , p , fz , x)
f ( 15.41 ) = 2.4895
f ( 7.5 ) = 1.5279

Komentar: Uociti znacajne razlike u rezultatima ekstrapolacije.

71
ZADACI

3.1 a) Izvesti izraze za greke formula:


f ( x1 ) f ( x0 ) y1 y0
f ( x0 ) = = (1)
x1 x0 h
f ( x2 ) f ( x1 ) y2 y1
f ( x1 ) = = ( 2)
x2 x1 h
f ( x2 ) f ( x0 ) y 2 y0
f ( x1 ) = = (3)
x2 x0 2h
b) Koja od formula (2) i (3) daje taniju procenu prvog izvoda u taki x1 i zato? Koja je
geometrijska interpretacija formula (2) i (3).

3.2 Date su vrednosti funkcije f(x):


x -1 0 1 2 3 4
f(x) 6 5 4 9 26 61

a) Proceniti prvi izvod funkcije u taki x = 1 pomou formula (2) i (3) iz prethodnog
zadatka.
b) Znajui da je u pitanju funkcija:
f (x ) = x 3 2 x + 5
proceniti greke rezultata dobijenih u a) pomou odgovarajuih formula i uporediti sa pravim
veliinama greke.
Reenje: a) f'(1) = 5 - Formula(2), f'(1) = 2 - Formula(3)
b) Greke: 1 = -4, 2 = -1
Procena greaka : E1 = - 6, E2 = - 1

3.3 Data je formula za procenjivanje prvog izvoda funkcije f(x) u taki x0 i njena greka:
11 y0 + 18 y1 9 y2 + 2 y3
, E ( x0 ) = f (), ( x0 , x3 )
h3 (4)
f ( x0 ) =
6h 4
a) Na polinomu kog stepena se bazira formula ?
b) Koristei tu formulu, proceniti izvod funkcije ije su vrednosti date tabelom u prethodnom
zadatku, u taki x = 1
c) Isti problem reiti koristei jednu od formula (3.5a-e).
d) Isti problem reiti numerikim diferenciranjem u Mathcad-u, Lagranovog IP provuenog
kroz sve take u tabeli.
e) Isti problem reiti numerikim diferenciranjem u Mathcad-u kubnog splajna formiranog
pomou funkcija lspline, pspline i cspline
f) Uporediti i diskutovati dobijena reenja.
Reenje: a) na polinimu 3 stepena
b) f'(1) = 1

72
c) f'(1) = 1
d) f'(1) = 1
e) lspline - f'(1) = 1.01
psline - f'(1) = 0.929
cspline - f'(1) = 1
3.4 Potrebno je nai izvode koeficijenta stiljivosti po pritisku (z p )T za T = 360 i
p = 0.1, 0.5, 2, 4, 6, 8, 10, 14 i 15.41bar,
numerikim diferenciranjem podataka datih u Zadatku 3.1. Izvode na pritiscima 2 -14 bar,
raunati korienjem odbrane od formula (35a-e), a na pritiscima p = 0.1, 0.5 i 15.41,
numerikim diferenciranjem LIP-a u Mathcadu.
Reenje:

- (z p )T 102
p (bar) 0.1 0.5 2 4 6 8 10 12 14 15.41
2.226 1.937 1.453 1.418 1.499 1.655 1.86 2.127 2.487 2.879

3.5 Date su vrednosti specifinih entalpija h(kJ kg ) i specifinih toplota c p (kJ kgK ) azota na
pritisku p = 10bar i razliitim temperaturama:
T(K) 110 120 130 140 160 180
h 96.8 110.4 123.0 135.2 158.4 180.8
cp 1.417 1.304 1.237 1.192 1.136 1.104
Numerikim diferenciranjem kubnog splajna formiranog iz podataka o entalpiji, treba izraunati
specifine toplote azota na temperaturama u tabeli. Uporediti rezultate dobijene korienjem
funkcija lspline, pspline i cspline sa tanim vrednostima, datim u tabeli i odabrati funkciju
koja daje najbolje rezultate.
Reenje: cspline - 1.436 1.297 1.236 1.2 1.13 1.12 (7.42910-4)
psline - 1.418, 1.302 1.235 1.2 1.133 1.107 (8.1110-5)
lspline - 1.385 1.311 1.232 1.201 1.131 1.114 (1.32910-3)
U zagradi su date suma kvadrata odstupanja iz kojih se vidi da pspline daje najmanje
odstupanje od eksperimentalnih podataka

3.6 Potrebno je iz podataka u prethodnom zadatku proceniti specifine toplote azota na


temperaturama:
T = 115, 150, 170K
a) Nai traene specifine toplote diferenciranjem kubnog splajna, formiranog sa funkcijom
pspline u prethodnom zadatku
b) Isti problem reiti splajn interpolacijom u nizu cp vrednosti izraunatih diferenciranjem
kubnog splajna (dobijenog sa funkcijom pspline) u prethodnom zadatku. Kubni splajn za
interpolaciju formirati pomou pspline funkcije.
c) Uporediti rezultate sa literaturnim vrednostima:
c p (115) = 1.350, c p (150) = 1.160, c p (170) = 1.118

i na osnovu toga izvesti zakljuak, da li jedna od metoda a) i b) daje tanije procene ili obe
metode daju procene priblino istog kvaliteta, pa se ne moe dati prednost jednoj od njih
Reenje: a) 1.36, 1.157, 1.12

73
b) 1.354, 1.165, 1.113
c) suma kvadrata odstupanja a) 1.14610-4, b) 6.25610-5. Procene su priblino istog
kvaliteta

74

You might also like