numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/baznanumerika.pdf · numeriˇcka...

55
1 UNIVERZITET U BEOGRADU Numeriˇ cke metode u hidrotehnici prof. Miodrag B. Jovanovi´ c Elementi numeriˇ cke analize 1. Pojam i vrste greˇ saka 2. Numeriˇ cka interpolacija funkcija 3. Numeriˇ cka aroksimacija funkcija 3. Numeriˇ cko diferenciranje 4. Numeriˇ cka integracija Doktorski kurs skripta v.1.0 Gradjevinski fakultet Beograd, feb. 2008.

Upload: others

Post on 08-Sep-2019

26 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1

U N I V E R Z I T E T U B E O G R A D U

Numericke metodeu hidrotehnici

prof. Miodrag B. Jovanovic

Elementi numericke analize

1. Pojam i vrste gresaka2. Numericka interpolacija funkcija3. Numericka aroksimacija funkcija3. Numericko diferenciranje4. Numericka integracija

Doktorski kurs

skripta v.1.0

Gradjevinski fakultet

Beograd, feb. 2008.

Page 2: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

2

Page 3: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1

Elementi numericke analize

1.1 Uvodne napomene

Cilj predmeta ,,Numericke metode u hidrotehnici” je da pomogne polaznicimadoktorskog kursa u izboru onih numerivckih postupaka koji im mogu koristiti uizradi doktorske disertacije. U tom smislu, ova skripta imaju pre svega podsticajnuulogu za naknadno samostalno izucavanje literature (knjiga na srpskom i na drugimjezicima) i konsultovanje brojnih izvora na internetu. U ovim skriptama je navedenspisak samo malog broja naslova, pri cemu je izbor vise odraz iskustva predavaca,nego objektivne ocene kompletnosti i kvaliteta naslova.

Kako je jedino moguc nacin razumevanja numerickih postupaka i njihovog ovla-davanja izrada sopstvenih programa pomocu kojih se ove metode mogu isprobati,citaocima se, vec na pocetku, nude osnovne informacije o komercijalnim softver-skim alatima i bibliotekama gotovih programa, kao i neke napomene u vezi saprogramskim jezicima.

Matematicki softverski alati. Za resavanje siroke klase matematickih prob-lema na trzistu postoji niz softverskih alata kao sto su: Derive c©, Maple c©, Mathe-matica c©, Mathcad c©, Matlab c© i Reduce c©. Ovi alati mogu korisno posluziti zaporedjenje numerickih i analitickih resenja.

Softverske biblioteke. Ove biblioteke se sastoje od skupova gotovih inzvornih(,,source”) rutina iz raznih oblasti primenjene matematike, koje korisnici mogulako ukljuciti u sopstvene programe. Najpoznatije softverske biblioteke su IMSL c©

i Numerical Recipes c© , koja je vezana za poznatu istoimenu knjigu [10].

Kompjuterski jezici. Kompjuterski jezici su predmet posebnih kurseva. Ovdese daje samo nekoliko osnovnih napomena.

Izbor programskog jezika zasnovan je na proceni koji je jezik prikladan postavlje-nom zadatku. Medjutim, u praksi se obicno ne raspolaze vremenom i finansijskimsredstvima da bi se uvek koristio optimalni programski jezik. Danas je trend usvetu koriscenje objektno orijentisanih jezika, kao sto je C++. Mnogi smatraju

3

Page 4: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

4 1. Elementi numericke analize

da je koriscenje klasicnih proceduralnih jezika, ciji je glavni predstavnik Fortran,stvar proslosti. Istina je da oba jezika, C++ i Fortran, imaju svoje prednosti inedostatke, zavisno od zadatka koji se resava.

Procerualni jezici. Fortran je jedan od najstarijih programskih jezika procedu-ralnog tipa koji se jos koriste. Rec je o standardizovanom jeziku koji se ,,portuje”prakticno na sve tipove racunara. Standard Fortran90 je izasao 1994. KompajlerF90 prihvata sve starije verzije Fortana, sto je od velikog znacaja, jer se i danaskoristi ogroman broj programa iz nauke i tehnike koji su pisani jos sezdesetih isedamdesetih godina dvadesetog veka.

Klasican Fortran je procedurano orijentisan jezik, koji omogucava proracun poodredjenom algoritmu (ili ,,formuli” – ,,Fortran”=FormulaTranslation), sto uslov-ljava struktuiranje programa. Za razliku od ovog, objektno orijentisani jezici, cijije najpopularniji predstavnik C++, zasnovani su na podacima, pa je i struktuiranjeprograma u tom smislu usmereno.

Fortran90 ima veliki broj znacajnih poboljsanja u odnosu na prethodne verzije,po ugledu na objektno orijentisane jezike [4]. Najznacajnija su: (i) dinamickoalociranje memorije, (ii) modularni koncept, uz mogucnost formiranja ,,izvedenih”tipova promenljivih (,,klasa”), (iii) koriscenje pokazivaca (,,pointera”) za direktanpristup memoriji i (iv) mogucnost formiranja korisnickih operatora (,,overload-ing”). Fortran90, ne samo da raspolaze velikim izborom ,,ugradjenih” funkcijaneophodnih za resavanje problema u tehnici, vec sadrzi i odredjen broj ,,ugradje-nih” procedura iz matricne algebre, koje omogucavaju da se operacije sa matricamai skalarima kodiraju na isti nacin.

Objektno orijentisani jezici. Povecana slozenost zadataka, zahtevi korisnika,problemi sa odrzavanjem i daljim razvojem programa, nametnuli su potrebu da sena direktan nacin moze manipulisati mnogim slicnim (ali ne identicnim) objektima,a da se pri tome ne mora pisati poseban program za svaki objekat. Objekat semoze shvatiti kao skup podataka koji opisuju neku koherentnu celinu. Objektnostruktuiranje programa zasniva se na primeni principa: apstrakcije (formiranja,,klasa” koje sadrze objekte i njima pripadajuce funkcije), enkapsulacije – (,,skri-vanja” podataka) i nasledjivanja (izvodjenje novih klasa na osnovu slicne postojeceklase) [2, 8].

Za objektno orijentisane jezike vazi da se efikasno mogu primeniti na bilo kojizadatak, iz bilo koje oblasti. Medjutim, u praksi, ova tvrdnja se donekle rela-tivizuje. Na primer, iako C++ radi sa visedimenzionim nizovima, manje je u tompogledu efikasan od Fortrana. Pored toga, C++ zasniva svoju univerzalnost navelikom broju standarnih i specijalizovanih biblioteka, sto nije bez izvesnog uti-caja na vreme kompilacije i brzinu izvrsenja. Ali ono sto je jos vaznije, to je da sudecenijama ulagani veliki napori da se razviju optimizacione strategije Fortranskihkompajlera. Rezultat toga je da su izvrsni kodovi koje daju Fortranski kompajleriefikasniji od onih koje daju kompajleri drugih jezika u numerickim aplikacijama.

Page 5: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.2. Pojam i vrste gresaka 5

U zakljucku, C++ je moderan jezik univerzalne namene, pogodan za velike pro-jekte koje nije moguce resavati bez objektne dekompozicije problema. Fortran90je pogodan jezik za koncipiranje i zvrsenje numerickih algoritama, gde objektnadekompozicija nije presudna, ili su njene mogucnosti ogranicene.

1.2 Pojam i vrste gresaka

Ako se vrednosti neke funkcije y, posredstvom nekog operatora L, racunaju zaniz zadatih vrenosti x: y = L(x) i ako je operator L tako slozen da se ne mozeeksplicitno formulisati ili lako primeniti, zadatak se resava numericki, sto znaci dase trazi priblizno resenje problema. Greska je ocena koliko je priblizno (numericko)resenje blisko tacnom (analitickom) revsenju. Pri tome, pojam ,,bliskosti” zavisiod metrike prostora u kome je problem definisan. Pri numerickom resavanju prob-lema, moguca su tri tipa greske: neotklonjiva greska, greska metode i racunskagreska.

1.2.1 Neotklonjiva greska

Rec je o gresci koja nastaje usled neadekvatnog matematickog – deskriptivnogmodela (formule ili niza formula za opisavanje neke pojave ili resavanje nekog prob-lema), neadekvatnog numerickog postupka (algoritma), ili nepouzdanih ulaznihpodataka.

1.2.2 Greska metode

Ova greska, koja se jos zove i ,,greska otesecanja” (eng. ,,truncation error”), posle-dica je zamene funkcije polinomom, beskonacnog reda konacnim brojem clanovatog reda, ili zamene operatora, na primer, izvoda – konacnom razlikom. Tu spadai greska koja je nametnuta ogranicenim brojem racunskih iteracija.

U numerickim algoritmima obicno postoji neki parametar cija vrednost utice natacnost konacnog rezultata. Kao sto se u hidraulickim proracunima moze sprovestianaliza osetljivosti rezultata na vrednosti parametara, tako se i u numerickoj anal-izi moze izpitati da li greska tezi nuli kada vrednost parametra numericke metodetezi odredjenoj granicnoj vrednosti. Jasno je da nacin definisanja ove vrste greskezavisi od konkretne numericke metode.

1.2.3 Racunska greska

Poznato je da se neki brojevi (kao na primer brojevi e, π, 2/3 itd.) ne mogu za-pisati konacnim brojem cifara. Koriste se njihove priblizne vrednosti, sa konacnimbrojem cifara. Nacin zapisa brojeva je vrlo vazan za rad racunara. Za interni zapisbrojeva, racunari koriste fiksiran broj mesta (n). Taj broj se zove ,,duzina reci” isvojstvo je tipa racunara.

Page 6: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

6 1. Elementi numericke analize

Pri odredjenoj duzini reci postoje dva nacina zapisa brojeva:

(i) zapis u fiksnom zarezu (engl. ,,fixed point”) je definisan fiksiranim prirodnimbrojevima n1 i n2, n = n1 + n2, od kojih je n1 – broj cifara ispred decimalnogznaka (tacke/zareza), a n2 – broj cifara iza decimalnog znaka.

Primer 1.1. Ako je duzina reci n = n1 + n2: 9=4+5, dekadni zapis broja48,601 ima oblik: 0048 60100 .

(ii) zapis u pokretnom zarezu (engl. ,,floating point”) podrazumeva da polozajdecimalnog znaka nije fiksiran, tako da zapis broja moze biti razlicit. Brojevi seprikazuju u obliku: x = p·10q u dekadnom sistemu, odnosno: x = p·2q u binarnomsistemu, gde je p – mantisa, |p| < 1, a q – celobrojni eksponent.

Primer 1.2. Ako je duzina reci n = 10, broj cifara mantise m = 7, a brojcifara eksponenta n = 3, zapis broja 48,601 nije jednoznacno odredjen, jer mozebiti: 4860100 001 , 0486010 003 , . . .

U cilju konzistentnog prikaza rezultata, koristi se normalizovani zapis broja upokretnom zarezu. To je zapis u kome prva cifra mantise mora biti razlicita

od nule. Ovo je pokazano prvim zapisom iz prethodnog primera. Svaki broj uracunaru je predstavljen normalizovanim zapisom u pokretnom zarezu. Ukolikobroj ima vise od m cifara, njegov zapis predstavlja samo pribliznu vrednost broja,sa odredjenom greskom. Ta greska se unosi u sve algebarske operacije sa timbrojem, pa stoga utice i na konacni rezultat proracuna.

Racunska greska se moze izraziti na dva nacina, kao:

∆x = |x − x| − apsolutna greska (1.1)

δx =|x− x||x| (x 6= 0) − relativna greska, (1.2)

gde je x – tacna vrednost broja, a x – njegova priblizna vrednost.

Mnozenjem sa 100, odnosno 1000, relativna greska se moze izraziti u procen-tima, odnosno promilima. Pod apsolutnom i relativnom greskom cesto se po-drazumevaju njihove granicne, najvece vrednosti:

∆x ≥ |x − x| (1.3)

δx ≥∣∣∣∣

x − x

x

∣∣∣∣

(x 6= 0). (1.4)

Znacajne cifre broja su sve cifre njegovog zapisa, polazeci sa leve strane od prvecifre koja je razlicita od nule. Na primer, u dekadnom zapisu broja x = 0,04860100,

Page 7: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.2. Pojam i vrste gresaka 7

prve dve nule s leva nisu znacajne (jer se broj moze napisati u obliku: x =4,860100×10−2), za razliku od poslednje dve cifre, koje ukazuju na tacnost sakojom je broj zadat.

Znacajne cifre su cifre koje su pretvorene u broj uskladisten u memoriji racunara.Racunar neki broj svodi na onoliko cifara koliko moze da predstavi duzinomreci. To radi na dva nacina: zaokrugljivanjem ili odsecanjem viska cifara. Kodzaokrugljivanja, broj se korektno svodi na odredjeni broj docimala, a kod odsecanjase visak decimala odbacuje, unoseci sistematsku gresku u rezultate proracuna.

Greska algebarskih operacija brojevima. Apsolutna greska zbira i razlike

pribliznih brojeva x1, x2, . . . , xn jednaka je zbiru apsolutnih gresaka tih brojeva:

∆s = ∆x1 + ∆x2 + . . . + ∆xn. (1.5)

Relativna greska zbira pribliznih brojeva nije veca od najvece relativne greske bilokog sabirka.

Medjutim, relativna greska razlike pribliznih pozitivnih brojeva je veca od relativnegreske tih brojeva, narocito kada su ti brojevi priblizno jednaki.

Primer 1.3. Neka su apsolutne greske brojeva x1 = 1, 137 i x2 = 1, 073:∆x1 = ∆x2=0,011. Odrediti apsolutnu i relativnu gresku razlike datih brojeva.

Resenje. Razlika datih brojeva je: x3 = x1 − x2 = 0,064. Apsolutna greskarazlike datih brojeva je:

∆x3 = ∆x1 + ∆x2 = 2 · 0, 011 = 0, 022.

Relativna greska razlike brojeva je:

δx3 =

∣∣∣∣

∆x3

x3

∣∣∣∣=

0, 022

0, 064≈ 34%,

dok su pojedinacne relativne greske:

δx1 =

∣∣∣∣

∆x1

x1

∣∣∣∣=

0, 011

1, 137≈ 1%; δx2 =

∣∣∣∣

∆x2

x2

∣∣∣∣=

0, 011

1, 073≈ 1%.

Kada se brojevi mnoze i dele, njihove relativne (ne apsolutne!) greske se sabiraju,a odgovarajuca apsolutna greska se naknadno izracunava: ∆p = |p| δp, gde je p –proizvod ili kolicnik brojeva.

Greske pri proracunu vrednosti funkcije. Apsolutna greska pri izracunavanjuvrednosti neke diferencijabilne funkcije y = f(x), usled prisustva dovoljno malegreske argumenta ∆x, procenjuje se na sledeci nacin:

∆y = |f ′(x)|∆x (f ′(x) 6= 0). (1.6)

Page 8: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

8 1. Elementi numericke analize

Ako su vrednosti funkcije f(x) pozitivne, relativna greska je:

δy =∆y

|f(x)| =

∣∣∣∣

f ′(x)

f(x)

∣∣∣∣

∆x = | [lnf(x)]′ |∆x. (1.7)

Apsolutna greska diferencijabilne funkcije vise promenljivih, y = f(x1, x2, . . . , xn)usled dovoljno malih gresaka ∆x1 , ∆x2 , . . ., ∆xn

argumenata x1, x2, . . . , xn, pro-cenjuje se velicinom:

∆y =n∑

i=1

∣∣∣∣

∂f

∂xi

∣∣∣∣∆xi

. (1.8)

Ako su vrednosti funkcije pozitivne, relativna greska funkcije vise promenljivih je:

δy =n∑

i=1

1

f

∣∣∣∣

∂f

∂xi

∣∣∣∣

∆xi=

n∑

i=1

∣∣∣∣

∂ lnf

∂xi

∣∣∣∣

∆xi. (1.9)

√Dopunsko ucenje: Binarno predstavljanje brojeva i racunske operacije kod racu-

nara [12].

1.3 Numericka interpolacija i aproksimacija

funkcija

Ako su poznate vrednosti neke funkcije f(x), x ∈ (a, b), u tackama x1, x2, . . . , xn),cesto se javlja problem odredjivanja vrednosti funkcije f u nekoj tacki x ∈ (a, b),razlicitoj od tacaka xi. Ovaj problem se resava zamenom funkcije f(x) nekomjednostavnom neprekidnom funkcijom F (x), za koju vazi:

f(xi) = F (xi). (1.10)

Zadatak interpolacije je nalazenje funkcije F (x), pri cemu se skup tacaka x1,x2,. . .,xn cini temena ili cvorove interpolacije. Funkcija F (x) se zove interpola-

ciona funkcija.

Najjednostavniji slucaj je linearne interpolacije, u kojoj se interpolaciona funkcijaF (x) dobija formiranjem pravih izmedju dva susedna temena xi i xi+1, x1, x2, . . .,xn−1, tako da je:

F (x) = f(xi) +f(xi+1) − f(xi)

xi+1 − xi(x − xi), x ∈ (xi, xi+1). (1.11)

Page 9: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.3. Numericka interpolacija i aproksimacija funkcija 9

Ovako dobijena funkcija je ,,deo po deo” linearna, nije ,,glatka” i ima neprekidnufunkciju prvog izvoda F ′(x). Moze se koristiti u slucajevima kada se funkcija f(x)i intervalima x ∈ (xi, xi+1) malo menja. Postupak linearne interpolacije prikazanje Algoritmom 1.11.

Algoritam 1.1.

FUNCTION flin1( Nx, x, y, xx, err )

implicit none

integer, intent( in ) :: nx

real, dimension( Nx ), intent( in ) :: x, y

real :: xx, flin1

integer :: i, ip, ik, err

if( xx < x(1) .or. xx > x(Nx) ) then

err = 1; return

endif

do i = 2, Nx

if( xx <= x (i) ) then

ip = i-1; ik = i; exit

endif

enddo

flin1 = y(ip) + ( y(ik)-y(ip) )/( x(ik)-x(ip) ) * (xx-x(ip) )

err = 0

END FUNCTION flin1

U opstem slucaju funkcija f(x) se moze aproksimirati generalisanim polinomomu vidu linearne kombinacije:

f(x) ≈ Pn(x) = c0 · ϕ0(x) + c1 · ϕ1(x) + . . . cn · ϕn(x), (1.12)

gde su c0, c1, . . . , cn – slobodni parametri (koeficijenti), a ϕ0, ϕ1, . . . , ϕn – linearnonezavisne2 funkcije, koje cine osnovni sistem funkcija.

Ako se osnovni sistem funkcija sastoji od nenegativnih stepena promenljive: ϕ0(x) =1, ϕ1(x) = x, ϕ2(x) = x2, . . . , ϕn(x) = xn, interpolaciona funkcija je algebarski

polinom stepena n:

Pn =

n∑

i=1

ci · ϕi(x). (1.13)

Ako se osnovni sistem funkcija sastoji od trigonometrijskih funkcija: ϕ0(x) = 1,ϕ1(x) = cosx, ϕ2(x) = sin x, . . . , ϕ2n−1(x) = cos nx, ϕ2n(x) = sinnx, polinomPn(x) je trigonometrijski polinom reda n.

1Algoritmi su kodirani u programskom jeziku Fortran 90. Koriscene su osnovne naredbe kojese lako mogu prepoznati i koristiti u drugim jezicima. Vecina prikazanih algoritama se mogulako primeniti u komercijalnim sofverskim alatima tipa Matlab c© ili Excel c©.

2Niz funkcija ϕ0(x), . . . , ϕn(x) je linearno nezavistan u intervalu (a, b) ako je: c0ϕ0(x)+ . . .+cnϕn(x) = 0, ekvivalentno sa: c0 = c1 = . . . = cn = 0.

Page 10: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

10 1. Elementi numericke analize

Aproksimacija funkcije f(x) se zove interpolacija ako se vrednosti parametaraaproksimacije: c0, c1, . . . , cn odrede tako da su vrednosti f(x) i P (x) jednake udiskretnom skupu tacaka x0, x1, . . . , xn koji se zovu cvorovi interpolacije (Slika 1.1).

f(xk) = P (xk), (k = 0, 1, 2, . . . , n). (1.14)

Slika 1.1: Aproksimacija funkcije polinomom za potrebe interpolacije.

Vrednosti parametara interpolacije: c0, c1, . . . , cn mogu se direktno odrediti me-

todom neodredjenih koeficijenata, koja dovodi do resavanja sistema linearnih alge-barskih jednacina:

n∑

i=0

ci · ϕi(xk) = f(xk), (k = 0, 1, 2, . . . , n), (1.15)

gde indeks ,,i” ukazuje na red polinoma, a indeks ,,k” na broj interpolacionihcvorova.

1.3.1 Metode interpolacije

Izbor metode interpolacije zavisi od broja i rasporeda interpolacionih cvorova.Naime, oblik interpolacionog polinoma zavisi od toga da li su cvorovi ekvidistantni(na jednakom odstojanju) ili nisu.

1.3.1.1 Interpolacioni polinom Lagrangea

Kada se u (1.13) stavi: ϕk(x) = xk (k=0,1,. . . ,n), interpolaciona funkcija je poli-nom oblika:

Ln(x) =

n∑

i=1

ci · xi. (1.16)

Page 11: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.3. Numericka interpolacija i aproksimacija funkcija 11

Teorijski je dokazano da postoji jedinstveno odredjen polinom Ln(x) stepena nkoji u n + 1 cvorova xk, (k = 0, 1, . . . , n) zadovoljava uslove [3, 6, 9]:

Ln(xk) = f(xk), (k = 0, 1, . . . , n). (1.17)

Interpolacioni polinom Lagrangea ima opsti oblik:

Ln(x) =

n∑

i=0

fiϕi(x)

ϕi(xi), (1.18)

gde je:

ϕi(x) = (x − x0)(x − x1) . . . (x − xi−1)(x − xi+1) . . . (x − xn) =

=

n∏

j=0j 6=i

(x − xj) (1.19)

ϕi(xi) = (xi − x0)(xi − x1) . . . (xi − xi−1)(xi − xi+1) . . . (xi − xn) =

=

n∏

j=0j 6=i

(xi − xj). (1.20)

Algoritam interpolacije pomocu Lagrangeovog polinoma dat u nastavku, a proveraalgoritma se obavlja pomocu podataka iz primera 1.4.

Algoritam 1.2.

PROGRAM Lagrange0

integer :: i, j, N ! indeksi, ukupno cvorova

real, allocatable, dimension( : ) :: x ! cvorovi interpolacije

real, allocatable, dimension( : ) :: y ! vrednosti f-je u cvorovima

real, allocatable, dimension( : ) :: c ! pomocni vektor

real :: xx ! tacka u kojoj se trazi f-ja

real :: yy ! trazena vrednost f-je

real :: P ! pomocna promenljiva (proizvod)

real :: PP ! pomocna promenljiva (proizvod)

N = 5; allocate( x( N ), y( N ), c( N ) )

x = (/ -1, 1, 2, 3, 4 /) ! ulazni podaci

y = (/ 9, 9, 0, 25, 84 /)

xx = 2.5 ! zadata vrednost x

do i = 1, N

P = 1.

do j = 1, N

if( j /= i ) P = P * ( x( i ) - x( j ) )

enddo

c( i ) = y( i ) / P

enddo

Page 12: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

12 1. Elementi numericke analize

yy = 0.

do i = 1, N

PP = 1.

do j = 1, N

if( j /= i ) PP = PP * ( xx - x( j ) )

enddo

yy = yy + c( i ) * PP

enddo

print "(’ xx= ’, f8.3, ’ yy = ’, f8.3 )", xx, yy

END PROGRAM Lagrange0

Primer 1.4. Koristeci podatke iz programa za Lagrangeovu interpolaciju,odrediti vrednost f(2, 5)?

Resenje. f(2, 5) = 7, 688.

* * *

Nesto slozeniji algoritam omogucava da se, modifikovanim postupkom, ne samoobavi interpolacija funkcije u nizu zadatih tacaka, vec i da se odrede i vrednostikoeficijenata interpolacionog polinoma. U tom cilju, polinom ϕi(x) se definise uobliku:

ϕi(x) = xn−1 +

n−1∑

k=1

Ak · xn−k−1, (1.21)

gde se koeficijenti Ak racunaju po rekurentnim formulama:

An = (−1)n−1 Πnj=1 xj, za j = 1 (1.22)

An−1 =1

l

l∑

k=1

(−1)k+1 An−1+k

n∑

j=1

(

− 1

xj

)k

, l = 1, . . . , n − 2. (1.23)

Kada se odredi niz Ak, pa uvrsti u (1.21), pa u (1.18), dobijaju se koeficijentiinterpolacionog polinoma Ln−1(x) (za razliku od prethodne formulacije ovde in-deksi i, j imaju pocetnu vrednost 1, pa je zato oznaka polinoma Ln−1 umestoLn); zatim se po poznatoj Hornerovoj shemi3 racunaju trazene vrednosti u nizuzadatih tacaka: Ln−1(zj), (j = 1, . . . , M). Koristeci podatke iz primera koji sledi,postupak je prikazan algoritmom 1.3.

Primer 1.5. Odrediti vrednosti koeficijenata Lagrangeovog polinoma za ulaznepodatke koji su zadati u Primeru 1.4. Zatim naci vrednosti polinoma u tackamaz koje su zadate u programu.

Resenje. L4(x) = −x4 + 10 x3 − 18 x2 − 10 x + 28. Sracunate vrednosti su:L4(1) = 9, L4(3) = 24, 9997, L4(2, 5) = 7, 78748 i L4(1, 5) = 1, 18749.

3Videti primer na adresi: http://www.math.byu.edu/ schow/work/horner.htm

Page 13: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.3. Numericka interpolacija i aproksimacija funkcija 13

Algoritam 1.3.

PROGRAM Lagrange1

real :: s, s1, Pom, FI, R

integer :: i, j, k, l ! indeksi

integer :: N ! broj cvorova interpolacije

integer :: M ! broj tacaka u kojima treba

! odrediti vrednosti f-je

real, allocatable, dimension( : ) :: x ! cvorovi interpolacije

real, allocatable, dimension( : ) :: y ! vrednosti f-je u cvorovima

real, allocatable, dimension( : ) :: z ! niz za koji se traze vrednosti f-je

real, allocatable, dimension( : ) :: P ! vrednosti f-je u tackama z

real, allocatable, dimension( : ) :: F ! koeficijenti interp. polinoma

real, allocatable, dimension( : ) :: A ! pomocni niz za koef. polinoma

N = 5; allocate( x( N ), y( N ), F( N ), A( N ) )

M = 4; allocate( z( M ), P( M ) )

x = (/ -1, 1, 2, 3, 4 /) ! ulazni podaci

y = (/ 9, 9, 0, 25, 84 /)

z = (/ 1.0, 3.0, 2.5, 1.5 /)

A( 1 ) = 1. ! inicijalizacija

do j = 1, N

F( j ) = 0.

enddo

do i = 1, N ! glavni racunski ciklus

Pom = 1.

do k = 1, N

Pom = Pom * x( k )

enddo

A( N ) = (-1)**( N-1 ) * Pom / x( i )

do l = 1, N-2

s = 0.

do k = 1, l

s1 = 0.

do j = 1, N

s1 = s1 + (-1./x( j ))**k

enddo

s1 = s1 - (-1./x( i ))**k

s = s + (-1)**( k+1 ) * A( N-l+k ) * s1

enddo

A( N-l ) = s / l

enddo

FI = A( 1 )

do k = 1, N-1

FI = FI * x( i ) + A( k+1 )

enddo

R = y( i ) / FI

do k = 1, N

F( k ) = F( k ) + R * A( k )

enddo

enddo

Page 14: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

14 1. Elementi numericke analize

do j = 1, M ! nepoznate (Hornerova shema)

P( j ) = F( 1 )

do k = 1, N-1

P( j ) = P( j ) * z( j ) + F( k+1 )

enddo

enddo

print "(’ N=’,i2 )", N ! stampanje ulaznih podataka

print "(/’ i’, 10x, ’x’, 12x, ’y’, 8x, ’Koef.polin.F’/)"

do i = 1, N

print "(i2, 2(5x, f8.3), 5x, f12.5 )", i, x( i ), y( i ), F( i )

enddo

print "(/’ j’, 10x, ’z’, 9x, ’funkcija P’/)" ! stampanje rezultata

do j = 1, M

print "(i2, 5x, f8.3, 3x, f12.5 )", j, z( j ), P( j )

enddo

END PROGRAM Lagrange1

Greska polinomske interpolacije u proizvoljnoj tacki x je razlika vrednosti funkcijei polinoma u toj tacki: Rn(x) = f(x)−Ln(x). Najveca apsolutna vrednost |Rn(x)|predstavlja najvecu gresku polinomske aproksimacije. Ako je α = min(x0, . . . , xn)i β = max(x0 . . . , xn), moze se pokaziti da je za svako x ∈ (a, b):

|Rn(x)| =maxf(n+1)(α ≤ t ≤ β)

(n + 1)!· ωn+1(x), gde je :

ωn+1(x) =n∏

j=0

(x − xj), (j = 0, 1, . . . , n). (1.24)

Primer 1.6. Funkcija f(x) =√

x se aproksimira Lagrangeovim polinomomdrugog stepena: L2(x). Podaci za interpolacione cvorove dati su u Tabeli 1.1.Izracunati vrednost f(115) i oceniti gresku interpolacije [9].

Tabela 1.1: Podaci za primer 1.6

x0 = 100 x1 = 121 x2 = 144f0 = 10 f1 = 11 f2 = 12

Resenje. Rucnim postupkom proracuna po (1.18), ili primenom programa, dobijase: L2(x) = −0, 00009411 x2 + 0, 06842 x + 4, 099. Sledi: L2(115)=10,723.

Za ocenu greske, potrebno je sracunati vrednosti treceg izvoda:

f ′′′(x) = (3/8)x−5/2 = 0, 375 x−2,5

u svim cvorovima:

f ′′′(100)=3, 750× 10−6,f ′′′(121)=2, 328× 10−6,f ′′′(144)=1, 507× 10−6.

Page 15: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.3. Numericka interpolacija i aproksimacija funkcija 15

Merodavna je najveca apsolutna vrednost: 3, 750× 10−6. Sledi:

ω3(x) = (x − x0)(x − x1)(x − x2) = (115− 100)(115− 121)(115− 144) = 2610,

pa je, shodno (1.24), definitivno:

|R2(115)| =1

3!max|f ′′′||ω3(115)| =

1

6· 3, 750× 10−6 · 2610 = 0, 0016.

Posebno je pitanje kako izabrati cvorove u nekom intervalu (a, b), tako da greskainterpolacije Rn(x) iz formule (1.24) bude sto manja. Odgovor na ovo pitanje dajeteorija Cebisevljevih polinoma [10].√

Dopunsko ucenje: Osnovna ideja Cebisevljevih polinoma – najbolja mogucaaproksimacija funkcija polinomom.

1.3.1.2 Interpolacioni polinom Newtona

Algoritamski je za proracun polinoma pozeljno da se ovi formulisu uopstenjemparcijalne sume Taylorovog reda. Pri tome se za generalizaciju izvoda koristepodeljene razlike (kolicnici konacnih razlika). Podeljena razlika nultog reda (k = 0)je jednaka vrednosti funkcije u cvoru, a zatim se rekurentno definisu razlike prvogreda (k = 1) pomocu razlika nultog reda, razlike drugog reda (k = 2) pomocurazlika prvog reda itd. Ako se razlike oznace srednjim zagradama:

k = 0 : f [x0] = f(x0)

k = 1 : f [x0, x1] =f [x1]− f [x0]

x1 − x0=

f(x1) − f(x0)

x1 − x0

k = 2 : f [x0, x1, x2] =f [x1, x2] − f [x0, x1]

x1 − x0...

...

k : f [x0, x1, . . . , xn] =f [x1, x2, . . . , xk] − f [x0, x1, . . . , xn−1]

xk − x0.

(1.25)

Shema formiranja konacnih razlika:

x0 f(x0) f [x0, x1]

x1 f(x1)

f [x0, x1, x2]f [x1, x2]

x2 f(x2)...

......

...... . . . f [x0, x1 . . . , xk]

f [xk−1, xk]

xk f(xk)

Page 16: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

16 1. Elementi numericke analize

Formula za proracun podeljene razlike k-tog reda pomocu vrednosti funkcije ucvorovima ima ovaj oblik [9]:

f [x0, x1, . . . , xk] =∑

i=0

kfi

k∏

j=0j 6=i

(xi − xj)

. (1.26)

Umesto dokaza, evo provere za k = 1:

f [x0, x1] =f1 − f0

x1 − x0=

f0

x0 − x1+

f1

x1 − x0=

1∑

i=0

fi∏

j=0j 6=i

(xi − xj).

Napominje se da je operator podeljenih razlika linearan operator i da je podeljenarazlika simetricna funkcija svojih argumenata, tako da redosled cvorova nije bitan.

Interpolacioni polinom Lagrangea (1.18) moze se napisati na drugi nacin, pomocu

podeljenih razlika, pa se, ne ulazeci u izvodjenje, dobija:

Ln(x) = f(x0) + f [x0, x1](x − x0) + . . . +

+ f [x0, x1, . . . , xn](x − x0)(x − x1) . . . (x − xn−1). (1.27)

Ovako napisan, polinom se zove Newtonov interpolacioni polinom sa podeljenim

razlikama. Kao sto je vec receno, moze se smatrati uopstenjem parcijalne sumeTaylorovog reda funkcije f(x). Moze koristiti i kada raspored interpolacionihcvorova nije ravnomeran, odnosno nije uslovljen jednakim razmakom cvorova.

Koristeci podatke iz Primera 1.4, u nastavku se prikazuje interpolacija funkcijepomocu Newtonovog polinoma. (Obratiti paznju da je u algoritmu za proracunpolinoma po formuli (1.27), pocetna vrednost indeksa 1, a ne 0). Racun dajeidentican rezultat kao u Primeru 1.4: f(2, 5) = 7, 688.

Algoritam 1.4.

PROGRAM Newton1

integer :: k, j, N ! indeksi, ukupno cvorova

real, allocatable, dimension( : ) :: x ! cvorovi interpolacije

real, allocatable, dimension( : ) :: y ! vrednosti f-je u cvorovima

real :: xx ! tacka u kojoj se trazi f-ja

real :: yy ! trazena vrednost f-je

real :: P ! pomocna promenljiva (proizvod)

N = 5; allocate( x( N ), y( N ) )

x = (/ -1., 1., 2., 3., 4. /) ! ulazni podaci

y = (/ 9., 9., 0., 25., 84. /)

Page 17: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.3. Numericka interpolacija i aproksimacija funkcija 17

xx = 2.5

yy = y( 1 )

P = 1.

do j = 1, N-1

do k = 1, N-j

y( k ) = ( y( k+1 ) - y( k ) ) / ( x( k+j ) - x( k ) )

enddo

P = P * ( xx - x( j ) )

yy = yy + y( 1 ) * P

enddo

print "(’ xx= ’, f8.3, ’ yy = ’, f8.3 )", xx, yy

END PROGRAM Newton1

1.3.1.3 Interpolacioni polinomi sa ravnomerno rasporedjenim

cvorovima

Cvorovi: xi = x0 + i · ∆x (i = 0,±1, . . . ,±n) su ravnomerno rasporedjeni (,,ek-vidistantni”) ako je ∆x = const. Znakom indeksa (i), polozaj svakog cvora jeodredjen u odnosu na referentni cvor x0.

Kada je ovakav raspored cvorova u pitanju, umesto podeljenih, koriste se konacne

razlike. Konacne razlike prvog reda (k = 1) mogu biti:

∆fi = fi+1 − fi − razlika unapred∇fi = fi − fi−1 − razlika unazadδfi = fi+1/2 − fi−1/2 − centralna razlika.

(1.28)

Konacne razlike viseg reda (k > 1) definisu se na sledeci nacin:

∆kfi = ∆(∆k−1fi) = ∆k−1fi+1 − ∆k−1fi − unapred∇kfi = ∇(∇k−1fi) = ∇k−1fi −∇k−1fi−1 − unazadδkfi = δ(δk−1fi) = δk−1fi+1/2 − δk−1fi−1/2 − centralna.

(1.29)

U navedenim formulama koristi se skracena notacija: fi = f(xi), fi+1 = f(xi+1)itd. U nastavku se daje shema koja pokazuje nacin formiranja konacnih razlikaunapred:

x0 f0 ∆f0

x1 f1

∆2f0

∆f1

∆3f0

x2 f2

∆2f1

∆f2

x3 f3

......

......

...

Page 18: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

18 1. Elementi numericke analize

Formula za proracun konacnih razlika unapred je4:

∆kfi =

k∑

j=0

(−1)jCjk · fi+k−j, Cj

k =

(k

j

)

. (1.31)

Veza podeljenih i konacnih razlika je:

f [xi, xi+1, . . . , xi+k] =∆kfi

(∆x)k · k!(1.32)

Na primer, za k = 1: f [xi, xi+1] =fi+1 − fi

xi+1 − xi=

∆fi

∆x.

Imajuci u vidu ekvidistantne cvorove: xi = x0 + i · ∆x (i = 0,±1, . . . ,±n), mozese uvesti nova promenljiva:

q =x − x0

∆x, q ∈ (−1, 1), (1.33)

odakle sledi da se bilo koja tacka u intervalu x0 ±∆x moze definisati u odnosu nareferentnu tacku x0 izrazom: x = x0 + q · ∆x.

Newtonov interpolacioni polinom za interpolaciju unapred. Ako su in-deksi cvorova kojima je odredjen polinom: xi = x0+i ·∆x pozitivni: x1 = x0+∆x,x2 = x0 +2∆x itd., Newtonov opsti interpolacioni polinom (1.27) se moze napisatiu obliku:

Ln(x0 + q∆x) = f0 + q ∆f0 +q(q − 1)

2!∆2f0 + . . .

+q(q − 1) . . . (q − n + 1)

n!∆nf0, (1.34)

pri cemu se razlike racunaju po formulama (1.28). Za ocenu greske interpolacijemoze se koristiti izraz u kome se obicno uzima srednja vrednost konacnih razlikareda (n + 1) [9]:

R ≤ q(q − 1) . . . (q − n)

(n + 1)!∆n+1f, (1.35)

4Binomni koeficijenti u formuli racunaju se na sledeci nacin:

Cj

k=

(k

j

)=

(k − j + 1

1

) (k − j + 2

2

)

. . .

(k

j

)

za : j > k − j

k!

(k − j)!n!za : j ≤ k − j.

(1.30)

Page 19: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.3. Numericka interpolacija i aproksimacija funkcija 19

Polinom (1.34) je pogodan za interpolaciju vrednosti x koje se nalaze na pocetku

tabele zadatih vrednosti, jer se cvorovi ,,pruzaju udesno”, pa se mogu formiratisekvence konacnih razlika unapred. Izraz (1.34) zove se ,,Newtonova prva interpo-laciona formula”.

Newtonov interpolacioni polinom za interpolaciju unazad. Ako su indeksicvorova kojima je odredjen polinom negativni, cvorovi se ukljucuju u polinomredosledom: x0, x−1, . . . , x−n, pa se dobija polinom u obliku:

Ln(x0 + q∆x) = f0 + q ∆f−1 +q(q + 1)

2!∆2f−2 + . . .

+q(q + 1) . . . (q + n − 1)

n!∆nf−n. (1.36)

Ocena greske interpolacije je [9]:

R ≤ q(q + 1) . . . (q + n)

(n + 1)!∆n+1f. (1.37)

Ovaj polinom je pogodan ako se interpolovana vrednost x nalazi na kraju tabelezadatih vrednosti. Izraz 1.36) zove se ,,druga Newtonova interpolaciona formula”.

Interpolacioni polinomi (1.34) i (1.36) se mogu koristiti i za ekstrapolaciju – nala-zenje pribliznih vrednosti funkcije f(x) u tacki x koja ne pripada intervalu odre-djenom cvorovima interpolacije. Koji ce se od navedenih polinoma koristiti, zavisisa koje strane intervala se ekstrapoluje vrednost x. Medjutim, treba biti oprezan!Greska ekstrapolacije je veca od greske interpolacije, pa numericku ekstrapolacijutreba izbegavati.

Stirlingov interpolacioni polinom. Kada se interpolacija obavlja Newtonovimpolinomima unapred i unazad, koristi se informacija o funkciji koja se interpolujesamo sa jedne strane tacke x. Ako je tacka bliska sredini intervala, veca tacnostse moze postici kada se koriste cvorovi sa obe strane te tacke. Na ovoj ideji je za-snovano izvodjenje Gaussovih interpolacionih polinoma za interpolaciju unapred iunazad [9, 10, 11] itd. Aritmeticka sredina Gaussovih polinoma je Stirlingov inter-polacioni polinom, koji je pogodan za interpolaciju tacaka blizu sredini intervalasa tabelarno zadatim ekvidistantnim cvorovima:

L2n+1(x0 + q ∆x) = f0 + q∆f−1 + ∆f0

2+

+q2

2!∆2f−1 +

q(q2 − 1)

3!· ∆3f−2 + ∆3f−1

2+ . . .

+q(q2 − 1) . . . (q2 − n2)

(2n + 1)!· ∆2n+1f−(n+1) + ∆2n+1f−n

2. (1.38)

Page 20: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

20 1. Elementi numericke analize

Ovaj polinom se preporucuje za |q| ≤ 0, 25. Vrlo slican je i Besselov interpolacionipolinom [7, 9].

1.3.2 Ostali vidovi linijske interpolacije

U nastavku se samo evidentiraju neki slozeniji vidovi linijske interpolacije, za kojepostoji obilje literature.

Interpolacioni polinom Hermitea. Ovaj polinom ima dopunski uslov da su unekim od cvorova interpolacije i izvodi polinoma jednaki odgovarajucim izvodimafunkcije koja se interpoluje:

H(k)n (xi) = f

(k)i (i = 0, 1, . . . , m), (1.39)

gde je m – ukupno cvorova u kojima je zadovoljen i uslov jednakosti izvoda, ak = 0, 1, . . . , ni−1 – red izvoda.

Splajn interpolacija. Da bi se izbegle oscilacije Lagrangeovog polinoma viseg

stepena izmedju cvorova, koriste se ,,splajnovi” – najcesce kubni polinomi. Radise o interpolacionoj funkciji koja na svakom od intervala (xi, xi+1), (i = 0, 1, . . . ,n − 1) ima oblik polinoma treceg stepena. U tacki spajanja dva takva polinoma,ovi polinomi, kao i njihovi prvi i drugi izvodi, imaju jednake vrednosti.

Interpolacija racionalnim funkcijama. Ovaj, nestandardni tip interpolacijezasnovan je na interpolacionim funkcijama u obliku kolicnika dva polinoma:

Pm(x)

Qn(x)=

p0 + p1x + p2x2 + . . . + pmxm

q0 + q1x + q2x2 + . . . + qnxn. (1.40)

Interpolacija trigonometrijskim funkcijama. Za interpolaciju 2π periodicnihfunkcija moze se koristiti trigonometrijska interpolacija:

f(x) ≈n∑

i=1

n∏

j=0j 6=i

sin(x − xj)

sin(xi − xj)

f(xi). (1.41)

Navedena formula, koja nosi ime Hermitea, odgovara Lagrangeovoj formuli zaneperiodicne funkcije i koristi se za proizvoljni raspored interpolacionih cvorova.

Inverzna interpolacija. Radi se o postupku kojim se odredjuje priblizna vred-nost argumenta za koji funkcija f(x) ima zadatu vrednost y, pri cemu je y izmedjudve zadate tabelarne vrednosti yi = f(xi). Ovaj problem je interesantan sastanovista odredjivanja tacke ekstrema neke funkcije.

Page 21: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.3. Numericka interpolacija i aproksimacija funkcija 21

√Dopunsko ucenje: Hermitovi interpolacioni polinomi, splajn interpolacija, trigo-

nometrijski interpolacioni polinomi, inverzna interpolacija.

1.3.3 Interpolacija funkcije vise promenljivih

Obicno se radi o interpolaciji funkcije sa dve promenljive f(x, y). Moguca su dvapristupa.

(i) Primena visedimenzionih interpolacionih polinoma, kao sto je na primer, New-tonov polinom za interpolaciju funkcije f(x, y) unapred:

Ln(x, y) = f(x0, y0) + p∆1+0f(x0 , y0) + q∆0+1f(x0 , y0) +

+1

2!

(p(p − 1)∆2+0f(x0, y0) + 2pq∆1+1f(x0, y0)+

+ q(q − 1)∆0+2f(x0, y0))

+ . . . , (1.42)

gde su uvedene smene: p = (x − x0)/∆x i q = (y − y0)/∆y.

(ii) Mnogo jednostavniji i za primenu laksi, je postupak visestruke jednodimen-zione interpolacije. Ako je potrebno odrediti vrednost funkcije f(x, y) u tacki(x, y), na osnovu zadatih vrednosti: f(xi, yj), (i = 0, 1, . . . , m) i (j = 0, 1, . . . , n),onda se zadatak resava na sledeci nacin: jednodimenziona interpolacija se primenipo promenljivoj x, (n + 1) puta, tako da se izracunaju vrednosti f(x, yj), (j =0, 1, . . . , n), a zatim se pomocu tih vrednosti, interpolacijom po y, racuna trazenavrednost f(x, y). (Analogno bi se postupilo u slucaju funkcije vise promenljivih.)

Opisani pristup je primenjen u Algoritmu 1.5 i ilustrovan primerom iz hidrotehnickeprakse.

Primer 1.7. Na Slici 1.2 prikazana je racva u sitemu cevi ili galerija.

Slika 1.2: Racva.

Za proracun hidraulickih gubitaka energije na racvi, potrebne su, u zavisnosti odpravca strujanja(3–2 ili 3–1), vrednosti dva koeficijenta lokalnog gubitka: ξ32 iξ31. Za dati ugao skretanja (90o) i oblik poprecnog preseka, vrednost koeficijentalokalnog gubitka na racvi zavisi od povrsina poprecnog preseka i trenutnih protokau cevima: ξ31 = ξ31(A1/A3, Q1/Q3). Ova zavisnost, ustanovljena laboratorijskimmerenjima, definisana je graficki i tabelarno: xi = (A1/A3)i, (i = 1, . . . , n), yj =(Q1/Q3)j , (j = 1, . . . , m) i f(xi, yj) = ξ31(i, j) (vrednosti zadate u programu).

Page 22: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

22 1. Elementi numericke analize

Visestrukom primenom Newtonove interpolacije, odrediti vrednost ξ31 u cvoru(x = 0, 40, y = 0, 32).

Resenje. ξ32(0, 40, 0, 32) = 0, 478.

Algoritam 1.5.

PROGRAM Newton2

integer :: i, j, k ! indeksi

integer :: N, M ! broj cvorova po x i y

real, allocatable, dimension( : ) :: x,y ! cvorne vrednosti x i y

real, allocatable, dimension(:,:) :: f ! vrednosti f(x,y)

real, allocatable, dimension( : ) :: s ! pomocni vektor

real :: xx,yy ! tacka u kojoj se trazi f(xx,yy)

real :: ff ! trazena vrednost f(xx,yy)

real :: P ! pomocna promenljiva (proizvod)

N = 3; allocate( x( N ) )

M = 5; allocate( y( M ), s( M ) ); allocate( f( N,M ) )

x = (/ 0.25, 0.50, 1.00 /) ! odnos A1/A3

y = (/ 0.1, 0.2, 0.3, 0.4, 0.5 /) ! odnos Q1/Q3

! koef.lok.gub, C31

f(1,1)=0.55; f(1,2)=0.50; f(1,3)=0.60; f(1,4)=0.85; f(1,5)=1.20

f(2,1)=0.62; f(2,2)=0.48; f(2,3)=0.40; f(2,4)=0.48; f(2,5)=0.60

f(3,1)=0.67; f(3,2)=0.55; f(3,3)=0.46; f(3,4)=0.37; f(3,5)=0.32

xx = 0.40; yy = 0.32 ! zadata tacka

do i = 1, M

s( i ) = f( 1, i )

P = 1.

do j = 1, N-1

do k = 1, N-j

f( k, i ) = ( f( k+1, i ) - f( k, i ) ) / ( x( k+j ) - x( k ) )

enddo

P = P * ( xx - x( j ) )

s( i ) = s( i ) + f( 1, i ) * P

enddo

enddo

ff = s( 1 )

P = 1.

do j = 1, M-1

do k = 1, M-j

s( k ) = ( s( k+1 ) - s( k ) ) / ( y( k+j ) - y( k ) )

enddo

P = P * ( yy - y( j ) )

ff = ff + s( 1 ) * P

enddo

print "(’ xx= ’, f8.3, ’ yy = ’, f8.3, ’ ff =’, f8.3 )", xx, yy, ff

END PROGRAM Newton2

Ako se zeli interpolacija samo po jednoj promenljivoj, parametru M treba dodelitivrednost 1. Tada se Algoritam 1.5 svodi na Algoritam 1.4.

Page 23: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.3. Numericka interpolacija i aproksimacija funkcija 23

1.3.4 Aproksimacija funkcija

U praksi se cesto javljaju situacije kada funkcija f(x) nije data obrascem, vec jesamo poznat skup diskretnih vrednosti xi ∈ (a, b) i f(xi), i = 1, . . . , N , a cilj jeda se na osnovu tih podataka, dodje do drugih, priblizno vazecih za istu funkcijuu razmatranom skupu realnih brojeva (ostale vrednosti u intervalu (a, b). Ovajproblem podstice pitanje da li se pod odredjenim uslovima funkcija f(x) u datom

intervalu moze zameniti drugom – poznatom funckijom F (x) tako da razlika bilokojoj tacki x: |f(x) − F (x)| bude prihvatljivo mala:

|f(x) − F (x)| < ε, (1.43)

gde je realan pozitivan broj epsilon – prihvatljiva granica apsolutne greske.

Aproksimirati funkciju f(x) u datom intervalu nekom drugom funkcijom F (x)znaci prvo, izabrati funkciju F (x) i drugo, oceniti gresku aproksimacije |f(x) −F (x)|.

S obzirom na (1.43), u posmatranom intervalu realnih brojeva bice:

f(x) − ε < F (x) < f(x) + ε, (1.44)

pa se izmedju navedenih granica moze povuci neograniceno mnogo krivih F (x)(Slika 1.3).

Slika 1.3: Geometrijsko tumacenje opsega aproksimacije.

Pri izboru funkcije F (x), vazno je da ta funkcija bude dobro poznata i podesnasa stanovista izvodjenja racunskih operacija. U tom smislu, podesni su alge-

barski i trigonometrijski polinomi, kao i neki uopsteni polinomi korespondentnialgebarskim, odnosno trigonometrijskim polinomima.

Page 24: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

24 1. Elementi numericke analize

1.3.4.1 Aproksimacija funkcije Taylorovim polinomom

Klasicna metoda aproksimacije polinomom zasniva se na primeni Taylorove for-mule. Poznato je da razvoj funkcije f(x) u u Taylorov red, u intervalu x0−∆x, x0+∆x), zahteva da je funkcija neprekidnai da ima izovde do reda n+1. Tada za svakox iz datog intervala vazi Taylorova formula:

f(x) = f(x0) + (x − x0)f ′(x0)

1!+ (x − x0)

2 f ′′(x0)

2!+ . . . + (1.45)

+ (x − x0)n f(n)(x0)

n!+ On, (1.46)

gde svi clanovi na desnoj strani jednacine, osim poslednjeg, predstavljaju Taylorovpolinom Tn funkcije f(x), a poslednji clan je ostatak (u Lagrangeovom obliku):

On(x − x0) =(x − x0)

n+1

(n + 1)!f(n+1)[x0 + θ(x − x0)], (0 < θ < 1) (1.47)

Aproksimirati funkciju f(x) korespondentnim Taylorovim polinomom znaci uzetiu intervalu (x0−∆x, x0+∆x) taj polinom umesto funkcije, odnosno uvesti aproksi-maciju f(x) ≈ Tn(x) i oceniti gresku On(x− x0) = f(x)− Tn(x), sto ustvari znaciutvrditi gornju granicu ∆T apsolutne greske aproksimacije:

|f(x) − Tn(x)| ≤ ∆T . (1.48)

Bez dokaza, na osnovu Lagrangeovog oblika ostatka moze se za granicu apsolutnegreske uzeti broj:

∆T ≥ (∆x)n+1 · M(n + 1)!

, (1.49)

gde je M – gornja granica vrednosti |f(n+1)(x)|.

Nacin formiranja Taylorovog polinoma je dovoljno poznat, pa se na ovom mestuposebno ne opisuje. Napominje se samo da se za poznatu funkciju f(x) izvodianaliticki racunaju, a u protivnom, priblizno – numerickim diferenciranjem. Zadatu funkciju f(x) i tacku x0, mogu se resavati ovi zadaci:

(i) za usvojen stepen Taylorovog polinoma n i interval ∆x, treba odrediti gornjugranicu apsolutne greske aproksimacije ∆T ;(ii) za usvojene velicine ∆T i ∆x, odrediti stepen n;(iii) za usvojene velicine n i ∆T , odrediti interval ∆x.

Napomena: Najveca teskoca u prakticnoj primeni Taylorove aproksimacije jeocena granice apsolutne vrednosti izvoda |f(n+1)(x)| za x ∈ (x0 − ∆x, x0 + ∆x).

Page 25: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.3. Numericka interpolacija i aproksimacija funkcija 25

Ne mogu se dati opsta uputstva, jer sve zavisi od prirode funkcije, odnosno njenihizvoda. Ova cinjenica je bitno ogranicenje aproksimacije funkcija Taylorovim poli-nomima.

1.3.4.2 Aproksimacija tablicno zadate funkcije

Metoda najmanjih kvadrata. Ova, najjednostavnija metoda, minimizira var-ijansu izmedju ,,glatke” krive i eksperimentalnih tacaka. Za objasnjenje metodekoristi se sledeci primer.

Primer 1.8. U Tabeli 1.2 je dat niz izmerenih vrednosti brzine u semi-loga-ritamskoj razmeri, pri cemu je z – odstojanje od dna [m], a u – lokalna brzina[cm/s].

Tabela 1.2: Vrednosti izmerene lokalne brzine u vertikali

x = ln z 0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0

f = u 20 30 40 50 50 60 70 80 90 95 100

Poznato je da se raspored brzine u razvijenom turbulentnom toku moze prikazatiteorijskom funkcijom:

u(z) =u∗

κln

(z

z0

)

, (1.50)

gde je κ = 0.4 – fon Karmanova konstanta, u∗ =√

τ0/ρ – lokalna smicuca brzina,a z0 – referentno odstojanje od dna na kome je brzina jednaka nuli.

Problem je da se izvrsi aproksimacija funkcije pomocu diskretnog skupa zadatihvrednosti i da se, naknadno, odredi brzina na dubini 3,5 m?

Resenje. Ako se date tacke nanesu na dijagram (Slika 1.4), a na osnovu izraza(1.50), moze se zakljuciti da se podaci mogu aproksimirati pravom linijom, cija jejednacina:

f = a · x + b. (1.51)

Metoda najmanjih kvadrata (MNK) zahteva da se vrednosti parametara a i bodrede minimizacijom sume kvadrata devijacija (odstupanja) f − fi:

R =

N∑

i=1

(f − fi)2 =

N∑

i=1

(a · xi + b − fi)2 = min. (1.52)

Minimizacija (1.52) se ostvaruje iz uslova da su prvi izvodi jednaki nuli:

∂R

∂a= 0 i

∂R

∂b= 0, (1.53)

Page 26: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

26 1. Elementi numericke analize

Slika 1.4: Raspored izmerenih lokalnih brzina.

sto daje:

a =N

∑xi · fi −

∑xi

∑fi

N∑

x2i − (

∑xi)2

(1.54)

b =

∑x2

i

∑fi −

∑xi

∑xi · fi

N∑

x2i − (

∑xi)2

(1.55)

Algoritam 1.6.

PROGRAM LinInterMNK

integer :: i, N

real :: sum1, sum2, sum3, sum4

real, allocatable, dimension( : ) :: x, f

N = 11; allocate( x( N ), f( N ) )

x = (/ 0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0 /)

f = (/ 20, 30, 40, 50, 50, 60, 70, 80, 90, 95, 100 /)

sum1 = 0.; sum2 = 0.; sum3 = 0.; sum4 = 0. ! inicijalizacija

do i = 1, N ! sumiranje

sum1 = sum1 + x( i )

sum2 = sum2 + f( i )

sum3 = sum3 + x( i )**2

sum4 = sum4 + x( i) * f( i )

end do

a = ( N * sum4 - sum1 * sum2 ) / ( N * sum3 - sum1**2 )

b = ( sum3 * sum2 - sum1 * sum4 ) / ( N * sum3 - sum1**2 )

print "(/10x, ’a = ’, f10.6, 5x, ’b = ’, f10.6 )", a, b

END PROGRAM LinInterMNK

Page 27: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.3. Numericka interpolacija i aproksimacija funkcija 27

Za zadate vrednosti (xi, fi), program daje ove vrednosti parametara: a = 40, 45 ib = 21, 82. Za ln(3, 5) = 1, 25 = x, dobija se: f = u = 72, 4 cm/s.

* * *

U polinomskoj aproksimaciji viseg reda, kao i u zadacima interpolacije, funkcija sezadaje tabelarno u tackama: x0, x1 . . . , xn, a pretpostavlja se da je oblik trazenefunkcije polinom Pk(x), ciji je stepen manji od broja zadatih tacaka: k < n, pa sezato i govori o zadatku aproksimacije, a ne interpolacije, jer se ne moze garantovati

da ce vaziti uslov: Pk(xi) = f(xi), (i = 0, 1, . . . , n).

U opsem slucaju, zadatak aproksimacije se moze i ovako interpretirati. Pret-postavlja se da se aproksimacija obavlja pomocu linearne kombinacije linearno

nezavisnih funkcija:

Fm(x) = c0 · ϕo(x) + c1 · ϕ1(x) + . . . + cm · ϕm(x) (1.56)

Za ϕi(x) = xi (i = 0, 1, . . . , m), linearna kombinacija postaje generalisani (uopste-ni) polinom (1.12). S druge strane, uopstavanjem kriterijuma najmanjih kvadrata(1.52) dobija se:

R =n∑

i=0

(F (xi) − f(xi)2 = min. (1.57)

Izjednacavanjem parcijalnih izvoda funkcije (1.57), po nepoznatim parametrimac0, c1, . . . , cm sa nulom (sto je potreban i dovoljan uslov egzistencije minimuma,jer je funcija R konveksna i glatka), dobija se sistem linarnih algebarskih jednacina:

< ϕ0, ϕo > c0+ < ϕ1, ϕo > c1 + . . .+ < ϕm, ϕo > cm = (f, ϕ0)< ϕ0, ϕ1 > c0+ < ϕ1, ϕ1 > c1 + . . .+ < ϕm, ϕ1 > cm = (f, ϕ1)... =

...< ϕ0, ϕm > c0+ < ϕ1, ϕm > c1 + . . .+ < ϕm, ϕm > cm = (f, ϕm),

(1.58)

gde < f(x), g(x) > =∑n

i=0 f(xi) g(xi) predstavja skalarni proizvod funkcija f i gu intervalu (a, b). (Sistem jednacina se moze znacajno uprostiti ako su polinomiortogonalni. Pojam ortogonalnih polinoma objasnjen je u literaturi [10] i [11]).

Za resavanje sistema linearnih jednacina (1.58) mogu se koristiti odgovarajuce nu-mericke metode koje su predmet posebnog razmatranja. Kodovi nekih standardnihnumerickih postupaka dati su u Dodatku.√

Dopunsko ucenje: Ortogonalni polinomi.

Page 28: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

28 1. Elementi numericke analize

1.4 Numericko diferenciranje

Metode numerickog diferenciranja koriste se u slucajevima kada je funkcija f(x) za-data tabelarno u nizu tacaka fi = f(xi), ili kada je njen analiticki oblik jako slozen.Numericko diferenciranje je neophodno i pri resavanju diferencijalnih jednacinametodama konacnih razlika i konacnih zapremina.

Formule za numericko diferenciranje dobijaju se diferenciranjem interpolacionihpolinoma:

f(k)(x) = L(k)n (x), (1.59)

gde je Ln – polinom odredjen interpolacionim cvorovima: x0, x1 . . . , xn, a k – redizvoda.

Formule za numericko diferenciranje imaju jednostavniji oblik ako se izvedu zaizracunavanje priblizne vrednosti izvoda u cvoru. Na primer, diferenciranjemNewtonovog polinoma za interpolaciju unapred, dobija se [9]:

f ′(x0 ≈(

dLn(x)

dx

)

x=x0

=

(d

dqLn(x0 + q∆x) · dq

dx

)

q=0

=

=

d

dq

f0 +

n∑

j=1

1

j!q(q − 1) . . . (q − j + 1)∆jf0

1

∆x

q=0

=

=1

∆x

n∑

j=1

(−1)j−1(j − 1)!

j!∆jf0 =

1

∆x

n∑

j=1

(−1)j−1 ∆jf0

j. (1.60)

Slicno se dobija formula za numercko diferenciranje pomocu Newtonovog polinomaza interpolaciju unazad [9]:

f ′(x0) ≈(

dLn(x)

dx

)

x=x0

=1

∆x

n∑

j=1

∆jf−1

j. (1.61)

U nastavku se, primera radi, daje postupak numerickog diferenciranja zasnovan naNewtonovoj interpolacionoj formuli (1.27). Pri tome se pretpostavlja da je poznatanaliticki oblik funkcije f(x). Ukoliko to nije slucaj, potrebno je samo promenitinacin ucitavanja ulaznih podataka. Algoritam je slican Algoritmu 1.4.

Page 29: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.4. Numericko diferenciranje 29

Algoritam 1.7.

PROGRAM Dif_n1

real :: u, fu

fu( u ) = u**3 ! funkcijska deklaracija

integer :: i, k, n ! indeksi, ukupno cvorova

real, allocatable, dimension( : ) :: x ! cvorovi interpolacije

real, allocatable, dimension( : ) :: f ! vrednosti funkcije

real :: xx ! tacka u kojoj se trazi izvod

real :: df ! diferencijal u tacki xx

real :: A,P ! pomocne promenljive

n = 4; allocate( x( n ), f( n ) )

x = (/ 0., 2., 3., 4. /); xx = 1. ! ulazni podaci

do k = 1, n

f( k ) = fu( x(k) )

if( k > 1 ) f( k-1 ) = ( f( k ) - f( k-1 ) ) / ( x( k ) - x( k-1 ))

enddo

df = f( 1 )

A = 1.; P = 1.

do i = 1, n-2

P = P * ( xx - x( i ) )

A = A * ( xx - x( i+1 ) ) + P

do k = 1, n-i-1

f( k ) = ( f( k+1 ) - f( k )) / ( x( k+i+1 ) - x( k ))

enddo

df = df + A * f( 1 )

enddo

print "(’ xx= ’, f8.3, ’ df = ’, f8.3/)", xx, df

END PROGRAM Dif_n1

Svako diferenciranje smanjuje red tacnosti za jedan. Greska formule se u prin-cipu smanjuje sa smanjenjem koraka ∆x. Medjutim, smanjenje koraka povecavaracunsku gresku, sto utice na rast ukupne greske.

Greska formule za numericko diferenciranje, koja se dobija se diferenciranjem in-terpolacionog polinoma, jednaka je odgovarajucem izvodu greske interpolacije. Naprimer, greska formule (1.60) je:

f ′(x0) − L′

n(x0) =maxf(n+1)(α ≤ t ≤ β)

(n + 1)(−1)n (∆x)n, (1.62)

gde je α = min(x0, . . . , xn) i β = max(x0 . . . , xn).

Page 30: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

30 1. Elementi numericke analize

Analiza greske diferenciranja pokazace se na jednostavnom slucaju: n = 1 [9].Aproksimacijom prvog izvoda u cvoru pomocu formule za interpolaciju unapreddobija se:

f ′(x0) =f(x1) − f(x0)

∆x. (1.63)

Greska metode je prema (1.63):

|R1| = |f ′(x0) − L′

n(x0) =

∣∣∣∣

maxf ′′(t)

2(−1)∆x

∣∣∣∣=

∣∣∣∣

maxf ′′(t)∆x

2

∣∣∣∣=

M2∆x

2, (1.64)

gde je M2 = |maxf ′′(t)|.

Ako su vrednosti funkcije f(xi) izracunate sa greskama ei ≤ E, onda je racunska

greska aproksimacije (1.63):

|R2| =e1 + e2

∆x≤ 2E

∆x. (1.65)

Ukupna greska aproksimacije izvoda formulom (1.63) obuhvata gresku metode iracunsku gresku:

|R| = |R1 + R2| ≤ |R1|+ |R2| ≤M2∆x

2+

2E

∆x= r(∆x). (1.66)

Funkcija greske r(∆x) se sastoji od linearnog i hiperbolickog dela, kao sto pokazujegrafikon na Slici 1.5. Optimalan korak diferenciranja ∆x odgovara minimumufunkcije r(∆x).

Slika 1.5: Geometrijsko tumacenje greske numerickog diferenciranja.

Page 31: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.5. Numericka integracija 31

1.5 Numericka integracija

Problem resavanja linijskog odredjenog integrala definisan je opstim izrazom:

I =

∫ b

a

f(x) dx, (1.67)

gde je f(x) – zadata podintegralna funkcija, a a, b – granice oblasti integracije.

U hidrotehnickim problemima, podintegralne funkcije su po pravilu slozene fun-kcije, tako da se integrali ne mogu analiticki resiti, vec se mora pribeci numerickojintegraciji. Formule za numericku integraciju, ili kako se zovu ,,kvadraturne for-

mule”, izvedene su tako sto se podintegralne funkcije f(x) aproksimiraju alge-barskim interpolacionim polinomima (Slika 1.6).

Slika 1.6: Numericka integracija

Oblast integracije – kod linijskih integrala segment (a, b) – deli se na n podin-tegrala. U svakom ,,i-tom podintervalu (xi−1, xi), funkcija f(x) se aproksimirapolinomom P (x), tako da se vrednost

Ii =

∫ xi

xi−1

P (x) dx (1.68)

moze analiticki izracunati.

Priblizna vrednosti trazenog integrala jednaka je zbiru lokalnih resenja:

I ≈n∑

i=1

Ii, (1.69)

pri cemu je i ukupna greska jednaka zbiru lokalnih gresaka aproksimacije.

Page 32: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

32 1. Elementi numericke analize

U zavisnosti od stepena polinoma, numericke metode integracije linijskih inte-grala – kvadraturne formule, nose imena: ,,pravilo pravougaonika” (polinom nul-tog stepena), ,,trapezno pravilo” (polinom prvog stepena), ,,Simpsonovo pravi-lo” (polinom drugog stepena) i ,,Gaussove kvadraturne formule”. Kvadraturneformule spadaju u dve klase: sa ekvidistantnim integracionim cvorovima (pravi-lo pravougaonika, trapezno i Simpsonovo pravilo) i sa rasporedom integracionihcvorova koji daje sto vecu tacnost (Gaussova kvadratura).

U zavisnosti od toga da li granicne (krajnje) tacke intervala integracije jesu ilinisu cvorovi kvadraturne formule, ove mogu biti formule otvorenog tipa (pravilopravougaonika) i formule zatvorenog tipa (trapezno i Simpsonovo pravilo).

1.5.1 Linijski integral

Linijski integral se obicno resava trapeznim ili Simpsonovim pravilom. Medju-tim, zbog objasnjenja numericke integracije povrsinskih integrala u nastavku, biceprikazan i Gaussov postupak linijske integracije.

Trapezno pravilo. Kod ovog pristupa, polinom P (x) je prvog stepena, tako dase integracioni cvorovi spajaju pravom (Slika 1.7-(a)).

(a) (b)

Slika 1.7: Numericka integracija: (a) trapezno pravilo i (b) Simpsonovo pravilo

Lokalna vrednost integrala je:

Ii =

∫ xi

xi−1

f(x) dx ≈ fi−1 + fi

2· ∆x, (1.70)

gde je, radi kraceg pisanja, fi−1 = f(xi−1) i fi = f(xi), dok je korak integracije:∆x = xi − xi−1.

Page 33: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.5. Numericka integracija 33

Kompozitna formula za N podintervala je:

I ≈N∑

i=1

Ii =

N∑

i=1

f(xi−1) + f(xi)

2·∆x = ∆x [0.5(fa + fb) +

N−1∑

i=1

fi]. (1.71)

Simpson-ovo pravilo. Segment (a, b) se deli na paran broj podintervala duzine∆x. Polinom P (x) je drugog stepena – parabola koja prolazi kroz 3 tacke (dvasusedna podintervala, Slika 1.7-(b)). Pretpostavice se aproksimacija:

∫ xi+1

xi−1

f(x) dx ≈ A · fi−1 + B · fi + C · f1+1, (1.72)

gde su A, B, C – tezinski faktori, cije vrednosti treba odrediti iz uslova da vrednostintegrala bude tacna za svaki polinom P (x) drugog, ili nizeg, stepena5 Zamenafunkcije polinomima: f(x) = P (x) daje:

f(x) = 1 − nulti stepen;f(x) = x − xi − prvi stepen;f(x) = (x − xi)

2 − drugi stepen,(1.73)

odnosno,

∫ xi+1

xi−1

1 dx = A + B + C ⇒ 2 ∆x = A + B + C (1.74)

∫ xi+1

xi−1

(x − xi) dx = A(xi−1 − xi) + B(xi − xi) + C(xi+1 − xi) ⇒

⇒ −A · ∆x + C ·∆x = 0 (1.75)∫ xi+1

xi−1

(x − xi)2 dx = A(xi−1 − xi)

2 + B(xi − xi)2 + C(xi+1 − xi)

2 ⇒

⇒ A ·∆x2 + C · ∆x2 = 2 ∆x3/3. (1.76)

Resavanjem sistema jednacina (1.74)-(1.76) dobija se: A = C = ∆x/3 i B =(4/3)∆x. Odavde sledi:

∫ xi+1

xi−1

1dx ≈ ∆x

3(fi−1 + 4 fi + fi+1.) (1.77)

5Ovaj postupak, zasnovan na metodi neodredjenih koeficijenata, pogodan je za polinome nizegreda.

Page 34: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

34 1. Elementi numericke analize

Sabiranjem na intervalu (a, b) konacno se dobija trazena vrednost integrala:

I =

∫ b

a

f(x) dx ≈ ∆x

3(f0 + 4 f1 + 2 f2 + 4 f3 + . . .2 fn−2 + 4 fn−1 + fn) =

=∆x

3[f0 + fn + 2 (f2 + f4 + . . .+

+ fn−2) + 4 (f1 + f3 + . . . + fn−1)] . (1.78)

Napomena: formule trapeznog i Simpsonovog pravila se u literaturi zovu i ,,Newton-Cotesove formule” [10].

Gaussova kvadratura. Izborom posebnih tacaka (cvorova integracije), moze sepostici veca tacnost u odnosu na prethodne metode, sa istim brojem podintervala.Na primer, umesto 2 tacke na krajevima (trapezno pravilo – polinom prvog ste-pena), moze se izborom 2 tacke povuci kubni polinom – kubna parabola (Slika 1.8).Kubni polinom sadrzi za 2 tacke 4 parametra, cije vrednosti treba odrediti.

Slika 1.8: Numericka integracija Gaussovom metodom

Neka su granicne vrednosti oblasti integracije a = −1 i b = 1. Za specijalne tackeξ1 i ξ2 u jedinicnom intervalu (−1, 1) vazi uslov:

∫ 1

−1

f(ξ) dξ ≈ ω1 · f(ξ1) + ω2 · f(ξ2), (1.79)

gde su: ω1, ω2 – tezinski koeficijenti, cije se vrednosti odredjuju iz uslova da integralima tacnu vrednost za bilo koji polinom treceg, ili nizeg, stepena:

f(ξ) = P (ξ) = 1 − nulti stepen;f(ξ) = ξ − prvi stepen;f(ξ) = ξ2 − drugi stepen;f(ξ) = ξ3 − treci stepen.

(1.80)

Page 35: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.5. Numericka integracija 35

Ako se uzmu u obzir navedeni uslovi, sledi sistem jednacina:

∫ 1

−1

ξ3 dξ = 0 = ω1 · ξ31 + ω2 · ξ3

2

∫ 1

−1

ξ2 dξ = 2/3 = ω1 · ξ21 + ω2 · ξ2

2

∫ 1

−1

ξ dξ = 0 = ω1 · ξ1 + ω2 · ξ2

∫ 1

−1

1 dξ = 2 = ω1 + ω2.

(1.81)

Mnozenjem trece jednacine sa ξ21 i oduzimanjem od prve, dobija se:

ω2(ξ32 − ξ2

1 · ξ2) = ω2ξ2(ξ2 − ξ1)(ξ2 + ξ1) = 0. (1.82)

Resenje ima smisla samo ako je: ξ1 = −ξ2 , pa je:

ω1 = ω2 = 1 (1.83)

ξ2 = −ξ1 = 1/√

3 = 0, 57735 . . . (1.84)

Konacno se dobija izraz za racunanje vrednosti integrala:

∫ 1

−1

f(ξ) dξ ≈ ω1 · f(ξ1) + ω2 · f(ξ2) = 1 · f(−1/√

3) + 1 · f(1/√

3). (1.85)

Uopstavanjem prikazanog postupka, dolazi se do Gaussove kvadrature viseg reda,koja podrazumeva da se uzme vise specijalnih tacaka sa odgovarajucim tezinama.U tom slucaju, vrednosti r tezinskih faktora ωi i apscisa ξi odredjuju se iz uslovada resenje predstavlja tacnu vrednost integrala polinoma stepena m < 2r − 1.Dakle, u opstem slucaju je:

∫ 1

−1

f(ξ) dξ = ω1 · f(ξ1) + ω2 · f(ξ2) + . . . + ωr · f(ξr) =

r∑

i=1

ωi · f(ξi). (1.86)

Ako se funkcija f(ξ) predstavi u obliku polinoma reda 2r − 1:

f(ξ) = a1 + a2 ξ + a3 ξ2 + . . . + a2r ξ2r−1 (1.87)

i uvrsti u jednacinu (1.86), iz uslova da ona bude zadovoljena za sve vrednostikoeficijenata a1, a2, . . . , a2r, proizilazi da svaki clan na levoj strani mora biti iz-jednacen sa odgovarajucim clanom na desnoj, pa se na taj nacin formira sistem

Page 36: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

36 1. Elementi numericke analize

od 2r jednacina po nepoznatim ω i ξ, pri cemu je ωi > 0, dok je: −1 < ξi < 1,(i = 1, 2, . . . , r), sto je uopstavanje vec prikazanog postupka za kubni polinom6.

U Tabeli 1.3 date su vrednosti apscisa i tezina za linijske probleme, do 4 Gaussoveintegracione tacke. Apscise ξi su simetricne u odnosu na ξ = 0, a vrednostitezinskih faktora ωi koje odgovaraju dvema simetricnim tackama, su jednake.

Tabela 1.3: Gaussovi koeficijenti za linijske probleme [12].

Broj Najveci red Koordinate Vrednostitacaka integracionog cvorova tezinskih

polinoma faktorar (2r − 1) ξi ωi

1 1 0 2

2 3 ±0,57735 1.000003 5 ±0,77459 0,55555

0,00000 0,88888

4 7 ±0,86113 0,34785±0,33998 0,65214

Greska priblizne integracije se moze odrediti pomocu izraza koji se ovde daje bezdokaza:

e =22r+1 (r!)4

(2r + 1)[(2r)!]3· d2rf(ξ)

dξ2r. (1.88)

Integracija na jedinicnom intervalu (-1,1) predstavlja sredstvo da se, primenomlokalnog (referentnog) koordinatnog sistema (ξ), lakse dodje do resenja u globalnom

(stvarnom) koordinatnom sistemu (x), gde je racunska oblast [a, b], a integral kojise trazi (1.67).

Veza izmedju stvarne koordinate (x) i lokalne koordinate (ξ) moze se izvesti podpretpostavkom linearne korespondencije:

x(ξ) = ax · ξ + bx, (1.89)

gde su ax, bx – nepoznati koeficijenti, cije se vrednosti odredjuju iz uslova:

− za x = a : a = ax(−1) + bx

− za x = b : b = ax(−1) + bx.(1.90)

6Ranije spomenuta metoda neodredjenih koeficijenata uklapa se u opstu matematicku teorijuvec pomenutih ortogonalnih polinoma [10, 11]

Page 37: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.5. Numericka integracija 37

Sabiranjem i oduzimanjem gornjih jednacina dolazi se do vrednosti:

bx =a + b

2; ax =

b − a

2, (1.91)

tako da je:

x(ξ) =b − a

2ξ +

a + b

2, i dx =

b − a

2dξ. (1.92)

Sledi veza integrala u globalnom i lokalnom koordinatnom sistemu:

∫ n

a

f(x) dx ≈ b − a

2

∫ 1

−1

f(ξ) dξ =b − a

2

∫ 1

−1

f

[(b − a)ξ + (a + b)

2

]

︸ ︷︷ ︸

x(ξ)

dξ =

=b − a

2

N∑

i=1

ωi · f(xi), (1.93)

gde je:

xi =b − a

2ξi +

b + a

2. (1.94)

U navedenim izrazima su: ξi – tzv. ,,nule Legendreovog polinoma”, a ωi – tezinskifaktori.

Opisane teorijske postavke numericke integracije primenjene su u Algoritmu 1.8.Postupak je ilustrovan jednostavnim primerom.

Primer 1.9. Sracunati pribliznu vrednost integrala funkcije 1/(1 + x) u inter-valu [0, 0,6]. Tacno resenje je: − ln(5/8) = 0, 4700.

Resenje. Ako se usvoji 5 podintervala i broj Gaussovih tacaka 4, dobijaju sevrednosti integrala:

− Trapezno pravilo : 0, 493233− Simpsonovo pravilo : 0, 464531− Gaussova metoda : 0, 469639.

Ovaj primer daje uvid u tacnost pojedinih metoda.

Page 38: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

38 1. Elementi numericke analize

Algoritam 1.8.

!--------------------------------------------------------------

MODULE Metode

implicit none

integer :: i,j,k ! indeksi

integer :: Ndx ! broj podintervala

integer :: r ! broj Gaussovih cvorova

real :: xa,xb ! granice integracije

real :: dx ! racunski korak

real :: x,s ! cvorovi, suma, integral

contains

real FUNCTION Trapez( xa, xb, Ndx, dx )

integer, intent( in ) :: Ndx

real, intent( in ) :: xa, xb, dx

s = 0.5 * ( f( xa ) + f( xb ) )

x = xa

if( Ndx /= 1 ) then

do i = 2, Ndx

x = x + dx

s = s + f( x )

enddo

endif

Trapez = dx * s

end FUNCTION Trapez

real FUNCTION Simpson( xa, xb, Ndx, dx )

integer, intent( in ) :: Ndx

real, intent( in ) :: xa, xb, dx

s = f( xa ) + f( xb )

x = xa

do i = 1, 2*Ndx-1

x = x + 0.5 * dx

k = 4

if( i/2*2 == i ) k = 2

s = s + k * f( x )

enddo

Simpson = dx * s / 6.

end FUNCTION Simpson

real FUNCTION Gauss( xa, Ndx, dx, r )

integer, intent( in ) :: Ndx, r

real, intent( in ) :: xa, dx

real, dimension (4,4) :: g, w

g(1,1) = 0.; w(1,1) = 2.;

g(2,1) = -0.5773503; w(2,1) = 1.;

g(2,2) = 0.5773503; w(2,2) = 1.;

g(3,1) = -0.7745967; w(3,1) = 0.5555556;

g(3,2) = 0.; w(3,2) = 0.8888889;

g(3,3) = 0.7745967; w(3,3) = 0.5555556;

g(4,1) = -0.8611363; w(4,1) = 0.3478548;

g(4,2) = -0.3399810; w(4,2) = 0.6521452;

g(4,3) = 0.3399810; w(4,3) = 0.6521452;

g(4,4) = 0.8611363; w(4,4) = 0.3478548

Page 39: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.5. Numericka integracija 39

s = 0.

x = xa - 0.5 * dx

do i = 1, Ndx

x = x + dx

do j = 1, r

s = s + w(r,j) * f( 0.5 * dx * g(r,j) + x )

enddo

enddo

Gauss = s * 0.5 * dx

end FUNCTION Gauss

real FUNCTION f( xx )

real :: xx

!f = sin( xx )

f = 1 / ( 1 + x )

!f = xx**4 - 5. * xx - 6

end FUNCTION f

END MODULE Metode

!-------------------------------------------------------------------------

PROGRAM Integracija3

use Metode

real :: I1, I2, I3

xa = 0.; xb = 0.6; Ndx = 5; r = 4 ! ulazni podaci

if( Ndx < 1 .or. Ndx > 4 ) r = 4

dx = ( xb - xa ) / Ndx !

I1 = Trapez ( xa, xb, Ndx, dx )

I2 = Simpson( xa, xb, Ndx, dx )

I3 = Gauss ( xa, Ndx, dx, r )

print "(//’Vrednost integrala’//’Trapez:’,1x,f14.6/’Simpson:’,f14.6/ &

’Gauss:’,2x,f14.6//)", I1, I2, I3

END PROGRAM Integracija3

Na ovom mestu se moze prokazati jedna od mogucnosti savremenih programskihjezika, a to je formiranje korisnickih operatora, sto je poznato pod engleskimimenom ,,operator overloading”. Ovo sredstvo naprednog programiranja omoguca-va sigurnije, preglednije i ,,kompaktnije” pisanje programa i njegovo brze izvrsenje.

Primer u nastavku (Algoritam 1.9) pokazuje kako se cela procedura trapeznogpravila moze proglasiti operatorom. Na slican nacin se mogu formirati drugi ko-risnicki binarni operatori. Tipican primer su korisnicki operatori konacnih raz-lika (unapred, unazad, centralnih), koji mogu znatno da olaksaju (i skrate) pro-gramiranje racunskih shema za proracun linijskog i ravanskog tecenja u otvorenimtokovima.

Page 40: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

40 1. Elementi numericke analize

Algoritam 1.9.

!-------------------------------------------------------------

MODULE Operatori

implicit none

interface operator (.integral.)

module procedure TrapeznoPravilo

end interface

contains

FUNCTION TrapeznoPravilo( N, Delta, F ) result( I1 )

integer, intent( in ) :: N

real, intent( in ) :: Delta

real, dimension( N ), intent( in ) :: F

integer :: i

real :: I1

I1 = 0.

do i = 1, N-1

I1 = I1 + 0.5 * ( F( i ) + F( i+1 ) ) * Delta

enddo

END FUNCTION TrapeznoPravilo

END MODULE Operatori

!--------------------------------------------------------------

PROGRAM Integracija

use Operatori

real, allocatable, dimension( : ) :: a

N = 6; Delta = 2.

allocate( a( N ) )

a = (/ 10, 12, 14, 16, 18, 20 /)

print 1, a

print 2, result = .integral. a ! trapezno pravilo kao operator

1 format( 2x, 10f10.2 )

2 format(/2x, f10.2 )

END PROGRAM Integracija

√Dopunsko ucenje: koncept ,,overloading-a”. Kodirati operator konacnih razlika

unapred i unazad.

1.5.2 Povrsinski integral

Problem resavanja povrsinskog odredjenog integrala definisan je opstim izrazom:

I =

Ω

f(x, y) dxdy. (1.95)

Page 41: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.5. Numericka integracija 41

Oblast Ω deli se na n podopblasti – elemenata Ω(e) i u svakom elementu se funkcijaf(x, y) aproksimira polinomom P (x, y):

Ii =

Ω(e)

P (x, y) dxdy (i = 1, . . . , n). (1.96)

Resenje integrala je:

I ≈n∑

i=1

Ii. (1.97)

Geometrijski oblik elemenata je razlicit; najcesce su to trougaoni ili cetvorougaoni

elementi, sa pravolinijskim ili krivolinijskim stranicama (Slika 1.9).

Slika 1.9: Diskretizacija (podela) racunske oblasti na trougaone i cetvorougaone ele-

mente sa pravolinijskim (ili krivolinijskim) stranicama; Ovakva nacin diskretizacije

racunske oblasti cini sustinu Metode konacnih elemenata, koja se zasniva na

proracunu povrsinskih integrala, a koja se siroko koristi u hidrotehnici.

Trougaoni elementi. Kada se numericka integracija sistematski obavlja ve-liki broj puta, pravilo je da se proracun ubrza tako da se koristi referentni je-dinicni trougao (Ω(r)) u lokalnom (referentnom) koordinatnom sistemu, kod kogase pravci koordinatnih osa poklapaju sa pravicma na kojima leze dve stranicetrougla (Slika 1.10). Transformacija integrala iz jednog u drugi koordinatni sistemobavlja se shodno teoremi:

Ω(e)

f(x, y) dxdy =

Ω(r)

f [x(ξ, η), y(ξ, η)] detJ dξdη, (1.98)

gde je x = x(ξ, η), y = y(ξ, η), a J – Jakobijeva matrica izvoda:

J =

∂x

∂ξ

∂x

∂η∂y

∂ξ

∂y

∂η

(1.99)

Page 42: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

42 1. Elementi numericke analize

Slika 1.10: Stvarni ortogonalni koordinatni sistem (x, y) i lokalni referentni koor-

dinatni sistem (ξ, η).

Elementi Jakobijeve matrice mogu se definisati tek posto se uspostavi veza x =x(ξ, η) i y = y(ξ, η). Pretpostavlja se da je ta veza linearna:

x = x(ξ, η) = ax + bx · ξ + cx · ηy = y(ξ, η) = ay + by · ξ + cy · η. (1.100)

Konstante ax, bx, cx, ay, by, cy odredjuju se iz uslova korespondencije koordinatatemena trougla u dva koordinatna sistema:

x1 = ax + 0 + 0 y1 = ay + 0 + 0x2 = ax + bx · 1 + 0 y2 = ay + by · 1 + 0x3 = ax + 0 + cx · 1 y3 = ay + 0 + cy · 1,

(1.101)

ili u matricnom obliku:

x1

x2

x3

=

1 0 01 1 01 0 1

ax

bx

cx

;

y1

y2

y3

=

1 0 01 1 01 0 1

ay

by

cy

. (1.102)

Resavanjem ovih sistema jednacina dobija se:

ax = x1 ay = y1

bx = x2 − x1 by = y2 − y1

cx = x3 − x1 cy = y3 − y1.(1.103)

Zamenom u linearnu zavisnost (1.100):

x = x1 + (x2 − x1)ξ + (x3 − x1)η

y = y1 + (y2 − y1)ξ + (y3 − y1)η, (1.104)

Page 43: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.5. Numericka integracija 43

odnosno,

x = x1(1 − ξ − η) + x2ξ + x3η = x1ζ + x2ξ + x3η (1.105)

y = y1(1 − ξ − η) + y2ξ + y3η = y1ζ + y2ξ + y3η, (1.106)

gde je lokalni koordinatni sistem (ξ, η, ζ) cine lokalne trougaone koordinate, gdeje: ζ = 1 − ξ − η.

Sada se mogu definisati elementi Jakobijeve matrice:

∂x

∂ξ= (x2 − x1);

∂x

∂η= (x3 − x1)

∂y

∂ξ= (y2 − y1);

∂y

∂η= (y3 − y1),

(1.107)

odnosno,

J =

[x2 − x1 x3 − x1

y2 − y1 y3 − y1

]

. (1.108)

Determinanta Jakobijana je:

detJ =

∣∣∣∣

x2 − x1 x3 − x1

y2 − y1 y3 − y1

∣∣∣∣= (x2−x1)(y3−y1)−(x3−x1)(y2−y1) = 2Ai,(1.109)

gde je Ai – povrsina ,,i” – tog trougaonog elementa.

Integracija po jedinicnom trouglu ide od ξ0, 1 i od η0.1. Moze se pokazatida sa sve tacke dacke duz stranice koja spaja tacke 2 i 3 trougla u lokalnom,referentnom sistemu (1.10) vazi: ξ + η = 1.

Definitivno, osnovna jednacina (1.98) dobija opsti oblik:

Ω(i)

f(x, y) dxdy ≈ 2Ai

∫ 1

0

∫ 1−η

0

f [x(ξ, η), y(ξ, η)] dξ

dη =

= 2Ai

∫ 1

0

∫ 1−η

0

g(ξ, η, ζ) dξdη. (1.110)

Za numericku integraciju po jedinicnom trouglu koristi se Gaussova metoda:

∫ 1

0

∫ 1−η

0

g(ξ, η, ζ) dξdη ≈r∑

i=1

ωi · g(ξi, ηi, ζi), (1.111)

Page 44: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

44 1. Elementi numericke analize

Tabela 1.4: Gaussovi koeficijenti za integraciju trougaonim elementima [12].

Broj Interp. Koord. cvorova Tezinetacaka cvor i ξi ηi ζi ωi

1 1 1/3 1/3 1/3 1/31 1/2 1/2 0 1/6

2 2 0 1/2 1/2 1/63 1/2 0 1/2 1/61 1/3 1/3 1/3 -9/32

4 2 3/5 1/5 1/5 25/963 1/5 3/5 1/5 25/964 1/5 1/5 3/5 25/96

gde su i – cvorovi integracije, a ωi – odgovarajuce tezine (Tabela 1.4).

Ako je funkcija pod integralom slozena (kao sto je tipicno za hidraulicke problemeravanskih tokova):

f(x, y) = f(u,∂u

∂x,∂u

∂y) (1.112)

onda se funkcija u = u(x, y) aproksimira na isti nacin kao i koordinate (x, y):

u(ξ, η, ζ) = u1 ζ + u2 ξ + u3 η, (1.113)

a izvodi ∂u/∂x i ∂u/∂y racunaju iz uslova:

∣∣∣∣∣∣∣∣

∂u

∂x∂u

∂y

∣∣∣∣∣∣∣∣

= J

∣∣∣∣∣∣∣∣

∂u

∂ξ∂u

∂η

∣∣∣∣∣∣∣∣

. (1.114)

Cetvorougaoni elementi. Kao u prethodnom slucaju, numericka integracija se,umesto po proizvoljnom cetvorouglu , obavlja po jedinicnom kvadratu, u lokalnom– referentnom, ortogonalnom koordinatnom sistemu (Slika 1.11).

I ovde vazi veza (1.98), sa linearnom vezom izmedju dva koordinatna sistema.Izvodjenjem, koje je dato u [12], dolazi se do integrala kvadratnog referentnogelementa:

∫ 1

−1

∫ 1

−1

f(ξ, η) dξdη ≈r1∑

i=1

r2∑

j=1

ωi · ωj · f(ξi, ηj), (1.115)

Page 45: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.5. Numericka integracija 45

Slika 1.11: Stvarni ortogonalni koordinatni sistem (x, y) i lokalni referentni koor-

dinatni sistem (ξ, η).

gde koordinate ξi, ηj i tezine ωi, ωj imaju iste vrednosti kao za linijski integral(Tabela 1.3).

Izraz (1.115) predstavlja formulaciju numerickog odredjivanja povrsinskog inte-grala tzv. metodom proizvoda. Za razliku od direktne metode koja je primenjenakod trougaonog referentnog sistema, metoda proizvoda podrazumeva da se za svakipravac: ξ i η, primeni linijska numericka integracija. To znaci da, ako se koristi r1

tacaka u pravcu ξ i r2 tacaka u pravcu η, Gaussova integracija daje tacno resenjeproizvoda dva polinoma: jednog, po ξ, reda 2r1−1 i drugog, po η, reda 2r2−1. Uproracunu se koristi ukupno r = r1 · r2 tacaka. Vrednosti Gaussovih koeficijenataza cetvorougaone elemente mogu se naci u literaturi koja se odnosi na metodukonacnih elemenata.

Na kraju se napominje da objasnjenje Gaussove kvadrature moze biti dato krozopstu teoriju ortogonalnih funkcija (funkcija ciji je skalarni proizvod jednak nuli[10, 11]).√

Dopunsko ucenje: Ortogonalne funkcije i numericka integracija. Posebni pro-blemi numericke integracije: prekidne funkcije, nesvojstveni integrali, Monte Carlointegracija.

Page 46: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

46 1. Elementi numericke analize

Domaci zadaci

Zadatak 0.1. Izmerene dimenzije sobe su a = 5, 43 m i b = 3, 82 m. Ako jetacnost merenja ±1 cm, proceniti gresku proracuna povrsine sobe.

Zadatak 0.2. Sracunati vrednost funkcije u = x · y2 · z3 u tacki x = 37, 1,y = 9, 87 i z = 6, 052 i proceniti relativnu gresku ako su date vrednosti: ∆x = 0.3,∆y = 0, 11 i ∆z = 0, 016.

Zadatak 0.3. Izvesti izraze za apsolutnu i relativnu gresku nekih osnovnih funkcija– stepene: y = xa (x2,

√x, . . .), eksponencijalne: y = ax (a > 0), logaritamske:

y = lnx i y = log x i trigonometrijskih funkcija: y = sin x i y = cos x.

Zadatak 0.4. U tabeli su date vrednosti funkcije y = logx. Formirati konacnerazlike trece reda. Sta se moze zakljuciti o brojnim vrednostima razlika prvog,drugog i treceg reda? Koristeci prvu Newtonovu interpolacionu formulu, odreditivrednost log 1001 i oceniti gresku interpolacije.

x 1000 1010 1020

y 3.0000000 3.0043214 3.0086002

Zadatak 0.5. U tabeli su date vrednosti integrala verovatnoce:

y =2√π

∫ x

0

e−z2

dz.

Odrediti vrednost x za koju integral ima vrednost 1/2.

x y ∆1y ∆2y ∆3y ∆4y

0, 45 0, 4754818

917370, 46 0, 4846555

−840

90897

−11

0, 47 0, 4937452

−851

1

90046

−100, 48 0, 5027498

−861

2

89185

−8

0, 49 0, 5116683

−869

883160, 50 0, 5204999

Zadatak 0.6. Funkcija y = f(x) je zadata u tabelarnom obliku. KoristeciLagrangeov interpolacioni polinom odrediti vrednost x kojoj odgovara y = 10.

Page 47: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

1.5. Numericka integracija 47

(Uputsvo: problem inverzne interpolacije se kod monotonih funkcija moze resitiprostom zamenom promenljivih – uzimanjem y za nezavivnu promenljivu.)

x 10 15 17 20

y 3 7 11 17

Zadatak 0.7. Sastaviti i kodirati algoritam za interpolaciju pomocu Stirlingovogpolinoma. Proveru obaviti pomocu podataka iz primera 1.4.

Zadatak 0.8. Sastaviti i kodirati algoritam za interpolaciju pomocu kubnih splaj-nova.

Zadatak 0.9. Prve dve kolone u datoj tabeli daju vrednosti funkcije y = sinh 2xna razmaku ∆x=0,05. Naci vrednosti izvoda y′ i y′′ u takkama x = 0, 0 i x = 0, 1.

x y ∆1y ∆2y ∆3y ∆4y

0, 00 0, 00000

100170, 05 0, 10017

100

10117

101

0, 10 0, 20134

201

3

10318

1040, 15 0, 30452

305

3

10623

107

0, 20 0, 41075

412

110350, 25 0, 52110

Zadatak 0.10. Uzeti tabelarne vrednosti funkcije tg(x) za uglove x ∈ (0, 5÷1, 0) uradijanima. Obaviti numericko diferenciranje pomocu podataka u tabeli i uporeditirezultate sa tabelarnim vrednostima funkcije ctg(x). Utvrditi optimalan tabelarnikorak, odnosno korak za numericko diferenciranje.

Zadatak 0.11. Razvojem funkcije f(x) u Taylorov red oko tacke , , i′′, pokazatida je greska odredjivanja odredjenog integrala u granicama od xi do xi + ∆x potrapeznom pravilu: e = O(∆x3), a po Simpson-ovom pravilu: e = O(∆x5), gde jeO() – ostatak Taylorovog reda, sto znaci da je Simpsonovo pravilo dva reda tacnijeod trapeznog pravila.

Zadatak 0.12. Napisati kompjuterski algoritam za integraciju funkcije f(x)pomocu trapeznog i Simpsonovog pravila, sa mogucnoscu polovljenja racunskogkoraka ∆x i automatskog zaustavljanja proracuna kada relativna greska u suksce-sivnim iteracijama postanje manja od zadate granicne vrednosti.

Page 48: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

48 1. Elementi numericke analize

Zadatak 0.13. Sracunati priblizne vrednosti integrala razvojem u Taylorov red:

∫ π/4

0

sin(x2) dx;

∫ 1

0

e−x2

dx

Proceniti gresku ako se za prvi integral zadrze cetiri clana Taylorovog reda, a zadrugi, sedam clanova.

Zadatak 0.14. Dat je integral:

∫ 1

−1

ex dx = e − e−1 = 2, 3504.

Koristeci tri integracione tacke, odrediti pribliznu vrednost datog integrala pomocutrapeznog i Simpsonovog pravila, kao i Gaussovom kvadraturom. Uporediti rezul-tate i oceniti gresku svake od metoda.

Zadatak 0.15. Primernom trapeznog i Simpson-ovog pravila sracunati za-preminu vode koja dospe u akumulaciju formiranu pregradjivanjem reke, ciji suizmereni srednji mesecni protoci dati u tabeli.

Srednji mesecni dotok u akumulaciju

Mesec 1 2 3 4 5 6 7 8 8 10 11 12

Q [×106 m3/dan] 8 6 5 5 4 1 1 1 5 6 7 7

Kolika mora biti zapremina akumulacije da bi se obezbedila neprekidna potrosnjaod 42 m3/s? (Usvojiti ∆t=30 dana za sve mesece).

Page 49: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

Literatura 49

Literatura

[1] Bertolino, M., Opsti kurs matematike, Izdavacko-informativni centar stude-nata Univerziteta u Beogradu, 1974.

[2] Booch, G., Object-Oriented Analysis and Design, With Applications, secondedition, Addison-Wesly, Reading, Massachusetts, 1991.

[3] Carnahan, B., Luther, H.A., Wilkes, J.O. Applied Numerical Methods, JohnWiley & sons, New York, 1960.

[4] Cooper R., Upgrading to Fortran90, Springer, New York, 1995.

[5] Ferziger, J.H., Numerical Methods for Engineering Application, John Wiley& sons, New York, 1981.

[6] Hildebrand, F.B., Introduction to Numerical Analysis, McGraw-Hill, NewYork, 1974.

[7] Kopcenova, N.V., Maron, I.A., Numerivcka matematika sa primerima i

zadacima, drugo izdanje, Mir, Moskva, 1981.

[8] Milicev, D., Objektno orijentisano programiranje na jeziku C++, Mikro knji-ga, Beograd, 1995.

[9] Radunovic, D., Numericke metode, Univerzitet u Beogradu, Beograd, 1998.

[10] Press, W.H., Flannery, B.P., Teukolsky, S.A., Vetterling, W.T., Numerical

Recipes, Cambridge University Press, 1986.

[11] Rice, J.R., Numerical Methods, Software, and Analysis, International StudentEdition, McGraw-Hill, Singapore, 1985.

[12] Radojkovic, M., Klem, N., Primena racunara u hidraulici, Gradjevinska knji-ga, Beograd, 1989.

Page 50: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

50 Literatura

Stranice na internetu

Matematicki fakultet u Beogradu

http://www.matf.bg.ac.yu/~filip/nm/nm0304.html

Univerzitet u Kembridzu

http://www.damtp.cam.ac.uk/lab/people/sd/lectures/nummeth98/

index.htm#L_1_Title_Page

Opsta enciklopedija

http://en.wikipedia.org/wiki/Numerical_methods

Page 51: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

Literatura 51

Dodatak!-----------------------------------------------------------------------------

! Program: SLAJ

! Funkcija: Resenje Sistema Linearnih Algebarskih Jednacina

! Opis: Koriste se metode:

! 1. LU dekompozicije, Crout

! 2. Iterativna, Gauss-Seidel

!

! Autor: M.Jovanovic, 1992, 2000, 2004.

! Okruzenje: Visual Fortran, V.6.6, 2001.

!-----------------------------------------------------------------------------

!-----------------------------------------------------------------------------

MODULE Metode

implicit none

character(8) :: text ! komentar

integer :: kodM ! indikator metode

integer :: i,j,k ! indeksi

integer :: N ! broj jednacina

integer, parameter :: Nmax = 100 ! najveci broj jednacina

integer, allocatable, dimension( : ) :: ipiv ! vektor permutovanih redova

real, allocatable, dimension( :,: ) :: A ! matrica koeficijenata

real, allocatable, dimension( : ) :: b ! vektor slobodnih clanova

real, allocatable, dimension( : ) :: x ! vektor nepoznatih

contains

SUBROUTINE Ucitavanje( ir1, iw2 )

integer, intent( in ) :: ir1, iw2

read ( ir1, "(A)" ) text

read ( ir1, * ) N

if( N > Nmax ) stop ’Premasen broj jednacina!’

allocate( A( N,N ), b( N ), ipiv( N ), x( N ) )

read ( ir1, * ) ( ( A( i,j ), j = 1, N ), i = 1, N )

read ( ir1, * ) ( b( i ), i = 1, N )

read ( ir1, * ) kodM

if( kodM /= 1 .and. kodM /= 2 ) stop ’Metoda?’

write( iw2, "(A)" ) text

write( iw2, "(/2x,A/)" ) ’Matrica koeficijenata:’

do i = 1, N

write( iw2, "(2x,A,i4)" ) ’i = ’, i

write( iw2, "(2x,5f12.4)" ) ( A( i,j ), j = 1, N )

enddo

write( iw2, "(/2x,A/)" ) ’Vektor slobodnih clanova:’

write( iw2, "(2x,5f12.4)" ) ( b( i ), i = 1, N )

END SUBROUTINE Ucitavanje

SUBROUTINE CroutLU

! Zadata matrica [A] se, po Crout-ovoj varijanti LU razlaganja,

! na kraju svodi na matricu - kombinaciju donje trougaone matrice [L]

! i gornje trougaone matrice [U].

integer :: imax ! red najveceg pivot elementa

real :: Amax ! pivot - element

real :: Sum ! zbir

real :: Temp ! pomocna promenljiva

real :: D ! broj izmena redova: paran (+1),neparan (-1)

real, dimension( N ) :: VV ! vektor "faktora razmere" svakog reda

Page 52: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

52 Literatura

real, parameter :: eps = 1.e-10 ! zadata mala vrenost

D = 1.

do i = 1, N ! odredjivanje pivota

Amax = 0.

do j = 1, N

if( ABS( A( i,j ) ) > Amax ) Amax = ABS( A( i,j ) )

enddo

if( Amax == 0. ) pause ’Singularna matrica ...’

VV( i ) = 1. / Amax ! odredjivanje faktora razmere

enddo

do j = 1, N ! glavni ciklus Crout-ove metode (po kolonama)

if( j > 1 ) then

do i = 1, j-1 ! odredjivanje elemenata [U]

Sum = A( i,j ) ! koji odmah zauzimaju mesto u [A]

if( i > 1 ) then

do k = 1, i-1

Sum = Sum - A( i,k ) * A( k,j )

enddo

A( i,j ) = Sum

endif

enddo

endif

Amax = 0. ! inicijalizacija za najveci pivot element

do i = j, N ! odredjivanje dijag. elemenata i elemenata [L]

Sum = A( i,j ) ! koji odmah zauzimaju mesto u [A]

if( j > 1 ) then

do k = 1, j-1

Sum = Sum - A( i,k ) * A( k,j )

enddo

A( i,j ) = Sum

endif

Temp = VV( i ) * ABS( Sum )

if( Temp >= Amax ) then

Amax = Temp; imax = i

endif

enddo

if( j /= imax ) then ! izmena redova

do k = 1, N

Temp = A( imax,k ); A( imax,k ) = A( j,k ); A( j,k ) = Temp

enddo

D = - D

VV( imax ) = VV( j ) ! izmena faktora razmere

endif

ipiv( j ) = imax

if( j /= N ) then ! deli sa pivot elementom

if( A( j,j ) == 0. ) A( j,j ) = eps

Temp = 1. / A( j,j )

do i = j+1, N

A( i,j ) = A( i,j ) * Temp

enddo

endif

enddo

if( A( N,N ) == 0. ) A( N,N ) = eps

END SUBROUTINE CroutLU

Page 53: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

Literatura 53

SUBROUTINE CroutResenje

! Resavanje [A]x=b, gde [A] nije originalna matraica, vec

! LU dekompozicijom transformisana matrica u potprogramu CroutLU.

! Resenje se nalazi u vektoru b. Vektor ipiv se ne menja,

! tako da se samo ovaj potprogram moze pozivati sa drugim zadatim

! vektorima b. Vodi se racuna da vise elemenata vektora b

! mogu biti nulti elementi.

integer :: ii, ll ! pomocni indeksi

real :: Sum ! zbir

ii = 0

do i = 1, N ! zamena unapred

ll = ipiv( i )

Sum = b( ll )

if( ii /= 0 ) then

do j = ii, i-1

Sum = Sum - A( i,j ) * b( j )

enddo

elseif( Sum /= 0. ) then

ii = i

endif

b( i ) = Sum

enddo

do i = N, 1, -1 ! zamena unazad

Sum = b( i )

if( i < N ) then

do j = i+1, N

Sum = Sum - A( i,j ) * b( j )

enddo

endif

b( i ) = Sum / A( i,i )

enddo

END SUBROUTINE CroutResenje

SUBROUTINE GaussSeidel

integer :: it ! tekuca iteracija

integer, parameter :: itmax = 100 ! najveci broj iteracija

real :: Sum, Temp, Dif, Difmax ! racunski parametri

real, parameter :: eps = 1.e-4 ! tacnost

x = 0.

do it = 1, itmax

Difmax = 0.

do i = 1, N

Temp = x( i )

Sum = 0.

do j = 1, N

if( j /= i ) Sum = Sum + x( j ) * A( i,j )

enddo

x( i ) = ( b( i ) - Sum ) / A( i,i )

Dif = ABS( Temp - x( i ) )

if( Dif > Difmax ) Difmax = Dif

enddo

if( Difmax <= eps ) return

enddo

stop ’Premasen broj iteracija!’

END SUBROUTINE GaussSeidel

Page 54: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

54 Literatura

SUBROUTINE Stampanje( iw2 )

integer, intent( in ) :: iw2

write( iw2, "(/A)" ) ’Rezultati:’

select case( kodM )

case( 1 )

write( iw2, "(/2x,5f12.4)" ) ( b( i ), i = 1, N )

case( 2 )

write( iw2, "(/2x,5f12.4)" ) ( x( i ), i = 1, N )

endselect

END SUBROUTINE Stampanje

END MODULE Metode

!------------------------------------------------------------

PROGRAM Slaj

use Metode

character(12) :: datio, datu1, dati2

print "(5x,A)", "Ime fajla sa imenima I/O fajlova? "

read "(A)", datio

open( UNIT = 10, FILE = datio, STATUS = "old" )

read( 10, "(A)" ) datu1 ! ulazni podaci

read( 10, "(A)" ) dati2 ! rezultati

open( UNIT = 1, FILE = datu1, STATUS = "old" )

open( UNIT = 2, FILE = dati2, STATUS = "replace" )

call Ucitavanje( 1, 2 )

select case( kodM )

case( 1 )

call CroutLU

call CroutResenje

case( 2 )

call GaussSeidel

endselect

call Stampanje( 2 )

close( 1 ); close( 2 ); close( 10 )

END PROGRAM Slaj

Page 55: Numeriˇcke metode u hidrotehnici - grf.bg.ac.rsmjovanovic/nm/BaznaNumerika.pdf · Numeriˇcka interpolacija funkcija 3. Numeriˇcka aroksimacija funkcija 3. Numeriˇcko diferenciranje

Sadrzaj

1 Elementi numericke analize 3

1.1 Uvodne napomene . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Pojam i vrste gresaka . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2.1 Neotklonjiva greska . . . . . . . . . . . . . . . . . . . . . . . 5

1.2.2 Greska metode . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2.3 Racunska greska . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 Numericka interpolacija i aproksimacija funkcija . . . . . . . . . . 8

1.3.1 Metode interpolacije . . . . . . . . . . . . . . . . . . . . . . 10

1.3.1.1 Interpolacioni polinom Lagrangea . . . . . . . . . 10

1.3.1.2 Interpolacioni polinom Newtona . . . . . . . . . . 15

1.3.1.3 Interpolacioni polinomi sa ravnomerno rasporedje-nim cvorovima . . . . . . . . . . . . . . . . . . . . 17

1.3.2 Ostali vidovi linijske interpolacije . . . . . . . . . . . . . . . 20

1.3.3 Interpolacija funkcije vise promenljivih . . . . . . . . . . . . 21

1.3.4 Aproksimacija funkcija . . . . . . . . . . . . . . . . . . . . . 23

1.3.4.1 Aproksimacija funkcije Taylorovim polinomom . . 24

1.3.4.2 Aproksimacija tablicno zadate funkcije . . . . . . 25

1.4 Numericko diferenciranje . . . . . . . . . . . . . . . . . . . . . . . . 28

1.5 Numericka integracija . . . . . . . . . . . . . . . . . . . . . . . . . 31

1.5.1 Linijski integral . . . . . . . . . . . . . . . . . . . . . . . . . 32

1.5.2 Povrsinski integral . . . . . . . . . . . . . . . . . . . . . . . 40

55