Numeričke metode u hidrotehnici

Σχετικά έγγραφα
3.1 Granična vrednost funkcije u tački

Osnovne teoreme diferencijalnog računa

APROKSIMACIJA FUNKCIJA

4 Numeričko diferenciranje

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

SISTEMI NELINEARNIH JEDNAČINA

Elementi spektralne teorije matrica

Zavrxni ispit iz Matematiqke analize 1

4.7. Zadaci Formalizam diferenciranja (teorija na stranama ) 343. Znajući izvod funkcije x arctg x, odrediti izvod funkcije x arcctg x.

IZVODI ZADACI (I deo)

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

Računarska grafika. Rasterizacija linije

Ispitivanje toka i skiciranje grafika funkcija

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

III VEŽBA: FURIJEOVI REDOVI

MATEMATIKA 2. Grupa 1 Rexea zadataka. Prvi pismeni kolokvijum, Dragan ori

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

Teorijske osnove informatike 1

Numerička matematika 2. kolokvij (1. srpnja 2009.)

numeričkih deskriptivnih mera.

Računarska grafika. Rasterizacija linije

Pismeni ispit iz matematike GRUPA A 1. Napisati u trigonometrijskom i eksponencijalnom obliku kompleksni broj, zatim naći 4 z.

5. Karakteristične funkcije

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

5 Ispitivanje funkcija

Prvi pismeni zadatak iz Analize sa algebrom novembar Ispitati znak funkcije f(x) = tgx x x3. 2. Naći graničnu vrednost lim x a

NUMERIČKA INTEGRACIJA

Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A

Teme za seminarski iz NIZ. 1. tema: Crtanje funkcije skaliranja i talasića piramidalnim algoritmom

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

NUMERIČKI METODI I PROGRAMIRANJE. I Aritmetičke operacije, izrazi i simbolička izračunavanja u Mathematici.

IZVODI ZADACI (I deo)

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

Prvi kolokvijum. y 4 dy = 0. Drugi kolokvijum. Treći kolokvijum

Verovatnoća i Statistika I deo Teorija verovatnoće (zadaci) Beleške dr Bobana Marinkovića

Prediktor-korektor metodi

7 Algebarske jednadžbe

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI)

2log. se zove numerus (logaritmand), je osnova (baza) log. log. log =

Desanka P. Radunović N U M E R I Č K E M E T O D E

Fakultet tehničkih nauka, Softverske i informacione tehnologije, Matematika 2 KOLOKVIJUM 1. Prezime, ime, br. indeksa:

18. listopada listopada / 13

MATERIJAL ZA VEŽBE. Nastavnik: prof. dr Nataša Sladoje-Matić. Asistent: dr Tibor Lukić. Godina: 2012

Program testirati pomoću podataka iz sledeće tabele:

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

Univerzitet u Nišu, Prirodno-matematički fakultet Prijemni ispit za upis OAS Matematika

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

41. Jednačine koje se svode na kvadratne

radni nerecenzirani materijal za predavanja

8 Funkcije više promenljivih

4 Izvodi i diferencijali

1 UPUTSTVO ZA IZRADU GRAFIČKOG RADA IZ MEHANIKE II

Numerička analiza - Prof. Aleksandar Ivić

(y) = f (x). (x) log ϕ(x) + ψ(x) Izvodi parametarski definisane funkcije y = ψ(t)

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

Zadatak 2 Odrediti tačke grananja, Riemann-ovu površ, opisati sve grane funkcije f(z) = z 3 z 4 i objasniti prelazak sa jedne na drugu granu.

6 Polinomi Funkcija p : R R zadana formulom

Mašinsko učenje. Regresija.

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama.

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

Zadaci iz trigonometrije za seminar

Dodatak B Numerička interpolacija, diferenciranje i integracija

Riješeni zadaci: Limes funkcije. Neprekidnost

Osnovni problem interpolacije je egzistencija funkcije koja u tačkama

Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako doći do rešenja zadatog problema Algoritmi se mogu opisivati:

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta.

DRUGI KOLOKVIJUM IZ MATEMATIKE 9x + 6y + z = 1 4x 2y + z = 1 x + 2y + 3z = 2. je neprekidna za a =

Kaskadna kompenzacija SAU

Matematka 1 Zadaci za drugi kolokvijum

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

Funkcije dviju varjabli (zadaci za vježbu)

( ) ( ) 2 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET. Zadaci za pripremu polaganja kvalifikacionog ispita iz Matematike. 1. Riješiti jednačine: 4

1.4 Tangenta i normala

1. zadatak , 3 Dakle, sva kompleksna re{ewa date jedna~ine su x 1 = x 2 = 1 (dvostruko re{ewe), x 3 = 1 + i

ELEKTROTEHNIČKI ODJEL

TAČKA i PRAVA. , onda rastojanje između njih računamo po formuli C(1,5) d(b,c) d(a,b)

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.

ASIMPTOTE FUNKCIJA. Dakle: Asimptota je prava kojoj se funkcija približava u beskonačno dalekoj tački. Postoje tri vrste asimptota:

SKUPOVI I SKUPOVNE OPERACIJE

TRIGONOMETRIJSKE FUNKCIJE I I.1.

SOPSTVENE VREDNOSTI I SOPSTVENI VEKTORI LINEARNOG OPERATORA I KVADRATNE MATRICE

Diferencijabilnost funkcije više promenljivih

Linearna algebra 2 prvi kolokvij,

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

RAČUNSKE VEŽBE IZ PREDMETA POLUPROVODNIČKE KOMPONENTE (IV semestar modul EKM) IV deo. Miloš Marjanović

OSNOVI ELEKTRONIKE. Vežbe (2 časa nedeljno): mr Goran Savić

KVADRATNA FUNKCIJA. Kvadratna funkcija je oblika: Kriva u ravni koja predstavlja grafik funkcije y = ax + bx + c. je parabola.

Ispit održan dana i tačka A ( 3,3, 4 ) x x + 1

Obrada rezultata merenja

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

5 Sistemi linearnih jednačina. a 11 x 1 + a 12 x a 1n x n = b 1 a 21 x 1 + a 22 x a 2n x n = b 2.

Algoritmi i strukture podataka - 1.cas

Betonske konstrukcije 1 - vežbe 3 - Veliki ekscentricitet -Dodatni primeri

Transcript:

1 U N I V E R Z I T E T U B E O G R A D U Numeričke metode u hidrotehnici prof. Miodrag B. Jovanović Elementi numeričke analize 1. Pojam i vrste grešaka 2. Numerička interpolacija funkcija 3. Numerička aroksimacija funkcija 3. Numeričko diferenciranje 4. Numerička integracija Doktorski kurs skripta v.1.0 Gradjevinski fakultet Beograd, feb. 2008.

2

1 Elementi numeričke analize 1.1 Uvodne napomene Cilj predmeta,,numeričke metode u hidrotehnici je da pomogne polaznicima doktorskog kursa u izboru onih numerivckih postupaka koji im mogu koristiti u izradi doktorske disertacije. U tom smislu, ova skripta imaju pre svega podsticajnu ulogu za naknadno samostalno izučavanje literature (knjiga na srpskom i na drugim jezicima) i konsultovanje brojnih izvora na internetu. U ovim skriptama je naveden spisak samo malog broja naslova, pri čemu je izbor više odraz iskustva predavača, nego objektivne ocene kompletnosti i kvaliteta naslova. Kako je jedino moguć način razumevanja numeričkih postupaka i njihovog ovladavanja izrada sopstvenih programa pomoću kojih se ove metode mogu isprobati, čitaocima se, već na početku, nude osnovne informacije o komercijalnim softverskim alatima i bibliotekama gotovih programa, kao i neke napomene u vezi sa programskim jezicima. Matematički softverski alati. Za rešavanje široke klase matematičkih problema na tržištu postoji niz softverskih alata kao što su: Derive c, Maple c, Mathematica c, Mathcad c, Matlab c i Reduce c. Ovi alati mogu korisno poslužiti za poredjenje numeričkih i analitičkih rešenja. Softverske biblioteke. Ove biblioteke se sastoje od skupova gotovih inzvornih (,,source ) rutina iz raznih oblasti primenjene matematike, koje korisnici mogu lako uključiti 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. Ovde se daje samo nekoliko osnovnih napomena. Izbor programskog jezika zasnovan je na proceni koji je jezik prikladan postavljenom zadatku. Medjutim, u praksi se obično ne raspolaže vremenom i finansijskim sredstvima da bi se uvek koristio optimalni programski jezik. Danas je trend u svetu korišćenje objektno orijentisanih jezika, kao što je C ++. Mnogi smatraju 3

4 1. Elementi numeričke analize da je korišćenje klasičnih proceduralnih jezika, čiji je glavni predstavnik Fortran, stvar prošlosti. Istina je da oba jezika, C ++ i Fortran, imaju svoje prednosti i nedostatke, zavisno od zadatka koji se rešava. Procerualni jezici. Fortran je jedan od najstarijih programskih jezika proceduralnog tipa koji se još koriste. Reč je o standardizovanom jeziku koji se,,portuje praktično na sve tipove računara. Standard Fortran90 je izašao 1994. Kompajler F90 prihvata sve starije verzije Fortana, što je od velikog značaja, jer se i danas koristi ogroman broj programa iz nauke i tehnike koji su pisani još šezdesetih i sedamdesetih godina dvadesetog veka. Klasičan Fortran je procedurano orijentisan jezik, koji omogućava proračun po odredjenom algoritmu (ili,,formuli,,fortran =Formula Translation), što uslovljava struktuiranje programa. Za razliku od ovog, objektno orijentisani jezici, čiji je najpopularniji predstavnik C ++, zasnovani su na podacima, pa je i struktuiranje programa u tom smislu usmereno. Fortran90 ima veliki broj značajnih poboljšanja u odnosu na prethodne verzije, po ugledu na objektno orijentisane jezike [4]. Najznačajnija su: (i) dinamičko alociranje memorije, (ii) modularni koncept, uz mogućnost formiranja,,izvedenih tipova promenljivih (,,klasa ), (iii) korišćenje pokazivača (,,pointera ) za direktan pristup memoriji i (iv) mogućnost formiranja korisničkih operatora (,,overloading ). Fortran90, ne samo da raspolaže velikim izborom,,ugradjenih funkcija neophodnih za rešavanje problema u tehnici, već sadrži i odredjen broj,,ugradjenih procedura iz matrične algebre, koje omogućavaju da se operacije sa matricama i skalarima kodiraju na isti način. Objektno orijentisani jezici. Povećana složenost zadataka, zahtevi korisnika, problemi sa održavanjem i daljim razvojem programa, nametnuli su potrebu da se na direktan način može manipulisati mnogim sličnim (ali ne identičnim) objektima, a da se pri tome ne mora pisati poseban program za svaki objekat. Objekat se može shvatiti kao skup podataka koji opisuju neku koherentnu celinu. Objektno struktuiranje programa zasniva se na primeni principa: apstrakcije (formiranja,,klasa koje sadrže objekte i njima pripadajuće funkcije), enkapsulacije (,,skrivanja podataka) i nasledjivanja (izvodjenje novih klasa na osnovu slične postojeće klase) [2, 8]. Za objektno orijentisane jezike važi da se efikasno mogu primeniti na bilo koji zadatak, iz bilo koje oblasti. Medjutim, u praksi, ova tvrdnja se donekle relativizuje. Na primer, iako C ++ radi sa višedimenzionim nizovima, manje je u tom pogledu efikasan od Fortrana. Pored toga, C ++ zasniva svoju univerzalnost na velikom broju standarnih i specijalizovanih biblioteka, što nije bez izvesnog uticaja na vreme kompilacije i brzinu izvršenja. Ali ono što je još važnije, to je da su decenijama ulagani veliki napori da se razviju optimizacione strategije Fortranskih kompajlera. Rezultat toga je da su izvršni kodovi koje daju Fortranski kompajleri efikasniji od onih koje daju kompajleri drugih jezika u numeričkim aplikacijama.

1.2. Pojam i vrste grešaka 5 U zaključku, C ++ je moderan jezik univerzalne namene, pogodan za velike projekte koje nije moguće rešavati bez objektne dekompozicije problema. Fortran90 je pogodan jezik za koncipiranje i zvršenje numeričkih algoritama, gde objektna dekompozicija nije presudna, ili su njene mogućnosti ograničene. 1.2 Pojam i vrste grešaka Ako se vrednosti neke funkcije y, posredstvom nekog operatora L, računaju za niz zadatih vrenosti x: y = L(x) i ako je operator L tako složen da se ne može eksplicitno formulisati ili lako primeniti, zadatak se rešava numerički, što znači da se traži približno rešenje problema. Greška je ocena koliko je približno (numeričko) rešenje blisko tačnom (analitičkom) revsenju. Pri tome, pojam,,bliskosti zavisi od metrike prostora u kome je problem definisan. Pri numeričkom rešavanju problema, moguća su tri tipa greške: neotklonjiva greška, greška metode i računska greška. 1.2.1 Neotklonjiva greška Reč je o grešci koja nastaje usled neadekvatnog matematičkog deskriptivnog modela (formule ili niza formula za opisavanje neke pojave ili rešavanje nekog problema), neadekvatnog numeričkog postupka (algoritma), ili nepouzdanih ulaznih podataka. 1.2.2 Greška metode Ova greška, koja se još zove i,,greška otesecanja (eng.,,truncation error ), posledica je zamene funkcije polinomom, beskonačnog reda konačnim brojem članova tog reda, ili zamene operatora, na primer, izvoda konačnom razlikom. Tu spada i greška koja je nametnuta ograničenim brojem računskih iteracija. U numeričkim algoritmima obično postoji neki parametar čija vrednost utiče na tačnost konačnog rezultata. Kao što se u hidrauličkim proračunima može sprovesti analiza osetljivosti rezultata na vrednosti parametara, tako se i u numeričkoj analizi može izpitati da li greška teži nuli kada vrednost parametra numeričke metode teži odredjenoj graničnoj vrednosti. Jasno je da način definisanja ove vrste greške zavisi od konkretne numeričke metode. 1.2.3 Računska greška Poznato je da se neki brojevi (kao na primer brojevi e, π, 2/3 itd.) ne mogu zapisati konačnim brojem cifara. Koriste se njihove približne vrednosti, sa konačnim brojem cifara. Način zapisa brojeva je vrlo važan za rad računara. Za interni zapis brojeva, računari koriste fiksiran broj mesta (n). Taj broj se zove,,dužina reči i svojstvo je tipa računara.

6 1. Elementi numeričke analize Pri odredjenoj dužini reči postoje dva načina zapisa brojeva: (i) zapis u fiksnom zarezu (engl.,,fixed point ) je definisan fiksiranim prirodnim brojevima n 1 i n 2, n = n 1 + n 2, od kojih je n 1 broj cifara ispred decimalnog znaka (tačke/zareza), a n 2 broj cifara iza decimalnog znaka. Primer 1.1. Ako je dužina reči n = n 1 + n 2 : 9=4+5, dekadni zapis broja 48,601 ima oblik: 0048 60100. (ii) zapis u pokretnom zarezu (engl.,,floating point ) podrazumeva da položaj decimalnog znaka nije fiksiran, tako da zapis broja može biti različit. Brojevi se prikazuju u obliku: x = p 10 q u dekadnom sistemu, odnosno: x = p 2 q u binarnom sistemu, gde je p mantisa, p < 1, a q celobrojni eksponent. Primer 1.2. Ako je dužina reči n = 10, broj cifara mantise m = 7, a broj cifara eksponenta n = 3, zapis broja 48,601 nije jednoznačno odredjen, jer može biti: 4860100 001, 0486010 003,... U cilju konzistentnog prikaza rezultata, koristi se normalizovani zapis broja u pokretnom zarezu. To je zapis u kome prva cifra mantise mora biti različita od nule. Ovo je pokazano prvim zapisom iz prethodnog primera. Svaki broj u računaru je predstavljen normalizovanim zapisom u pokretnom zarezu. Ukoliko broj ima više od m cifara, njegov zapis predstavlja samo približnu vrednost broja, sa odredjenom greškom. Ta greška se unosi u sve algebarske operacije sa tim brojem, pa stoga utiče i na konačni rezultat proračuna. Računska greška se može izraziti na dva načina, kao: x = x x apsolutna greška (1.1) δ x = x x x (x 0) relativna greška, (1.2) gde je x tačna vrednost broja, a x njegova približna vrednost. Množenjem sa 100, odnosno 1000, relativna greška se može izraziti u procentima, odnosno promilima. Pod apsolutnom i relativnom greškom često se podrazumevaju njihove granične, najveće vrednosti: x x x (1.3) δ x x x x (x 0). (1.4) Značajne cifre broja su sve cifre njegovog zapisa, polazeći sa leve strane od prve cifre koja je različita od nule. Na primer, u dekadnom zapisu broja x = 0,04860100,

1.2. Pojam i vrste grešaka 7 prve dve nule s leva nisu značajne (jer se broj može napisati u obliku: x = 4,860100 10 2 ), za razliku od poslednje dve cifre, koje ukazuju na tačnost sa kojom je broj zadat. Značajne cifre su cifre koje su pretvorene u broj uskladišten u memoriji računara. Računar neki broj svodi na onoliko cifara koliko može da predstavi dužinom reči. To radi na dva načina: zaokrugljivanjem ili odsecanjem viška cifara. Kod zaokrugljivanja, broj se korektno svodi na odredjeni broj docimala, a kod odsecanja se višak decimala odbacuje, unoseći sistematsku grešku u rezultate proračuna. Greška algebarskih operacija brojevima. Apsolutna greška zbira i razlike približnih brojeva x 1, x 2,..., x n jednaka je zbiru apsolutnih grešaka tih brojeva: s = x1 + x2 +... + xn. (1.5) Relativna greška zbira približnih brojeva nije veća od najveće relativne greške bilo kog sabirka. Medjutim, relativna greška razlike približnih pozitivnih brojeva je veća od relativne greške tih brojeva, naročito kada su ti brojevi približno jednaki. Primer 1.3. Neka su apsolutne greške brojeva x 1 = 1, 137 i x 2 = 1, 073: x1 = x2 =0,011. Odrediti apsolutnu i relativnu grešku razlike datih brojeva. Rešenje. Razlika datih brojeva je: x 3 = x 1 x 2 = 0,064. Apsolutna greška razlike datih brojeva je: x3 = x1 + x2 = 2 0, 011 = 0, 022. Relativna greška razlike brojeva je: δ x3 = x3 0, 022 x 3 = 0, 064 34%, dok su pojedinačne relativne greške: δ x1 = x1 0, 011 x 1 = 1, 137 1%; δ x 2 = x2 x 2 = 0, 011 1, 073 1%. Kada se brojevi množe i dele, njihove relativne (ne apsolutne!) greške se sabiraju, a odgovarajuća apsolutna greška se naknadno izračunava: p = p δ p, gde je p proizvod ili količnik brojeva. Greške pri proračunu vrednosti funkcije. Apsolutna greška pri izračunavanju vrednosti neke diferencijabilne funkcije y = f(x), usled prisustva dovoljno male greške argumenta x, procenjuje se na sledeći način: y = f (x) x (f (x) 0). (1.6)

8 1. Elementi numeričke analize Ako su vrednosti funkcije f(x) pozitivne, relativna greška je: δ y = y f(x) = f (x) f(x) x = [lnf(x)] x. (1.7) Apsolutna greška diferencijabilne funkcije više promenljivih, y = f(x 1, x 2,..., x n ) usled dovoljno malih grešaka x1, x2,..., xn argumenata x 1, x 2,..., x n, procenjuje se veličinom: n y = f x i x i. i=1 (1.8) Ako su vrednosti funkcije pozitivne, relativna greška funkcije više promenljivih je: δ y = n i=1 1 f f x i x i = n lnf x i i=1 x i. (1.9) Dopunsko učenje: Binarno predstavljanje brojeva i računske operacije kod računara [12]. 1.3 Numerička interpolacija i aproksimacija funkcija Ako su poznate vrednosti neke funkcije f(x), x (a, b), u tačkama x 1, x 2,..., x n ), često se javlja problem odredjivanja vrednosti funkcije f u nekoj tački x (a, b), različitoj od tačaka x i. Ovaj problem se rešava zamenom funkcije f(x) nekom jednostavnom neprekidnom funkcijom F(x), za koju važi: f(x i ) = F(x i ). (1.10) Zadatak interpolacije je nalaženje funkcije F(x), pri čemu se skup tačaka x 1, x 2,...,x n čini temena ili čvorove interpolacije. Funkcija F(x) se zove interpolaciona funkcija. Najjednostavniji slučaj je linearne interpolacije, u kojoj se interpolaciona funkcija F(x) dobija formiranjem pravih izmedju dva susedna temena x i i x i+1, x 1, x 2,..., x n 1, tako da je: F(x) = f(x i ) + f(x i+1) f(x i ) x i+1 x i (x x i ), x (x i, x i+1 ). (1.11)

1.3. Numerička interpolacija i aproksimacija funkcija 9 Ovako dobijena funkcija je,,deo po deo linearna, nije,,glatka i ima neprekidnu funkciju prvog izvoda F (x). Može se koristiti u slučajevima kada se funkcija f(x) i intervalima x (x i, x i+1 ) malo menja. Postupak linearne interpolacije prikazan je Algoritmom 1.1 1. 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 flin1 = y(ip) + ( y(ik)-y(ip) )/( x(ik)-x(ip) ) * (xx-x(ip) ) err = 0 END FUNCTION flin1 U opštem slučaju funkcija f(x) se može aproksimirati generalisanim polinomom u vidu linearne kombinacije: f(x) P n (x) = c 0 ϕ 0 (x) + c 1 ϕ 1 (x) +...c n ϕ n (x), (1.12) gde su c 0, c 1,..., c n slobodni parametri (koeficijenti), a ϕ 0, ϕ 1,..., ϕ n linearno nezavisne 2 funkcije, koje čine osnovni sistem funkcija. Ako se osnovni sistem funkcija sastoji od nenegativnih stepena promenljive: ϕ 0 (x) = 1, ϕ 1 (x) = x, ϕ 2 (x) = x 2,..., ϕ n (x) = x n, interpolaciona funkcija je algebarski polinom stepena n: n P n = c i ϕ i (x). i=1 (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, polinom P n (x) je trigonometrijski polinom reda n. 1 Algoritmi su kodirani u programskom jeziku Fortran 90. Korišćene su osnovne naredbe koje se lako mogu prepoznati i koristiti u drugim jezicima. Većina prikazanih algoritama se mogu lako primeniti u komercijalnim sofverskim alatima tipa Matlab c ili Excel c. 2 Niz funkcija ϕ 0 (x),..., ϕ n(x) je linearno nezavistan u intervalu (a, b) ako je: c 0 ϕ 0 (x)+...+ c nϕ n(x) = 0, ekvivalentno sa: c 0 = c 1 =... = c n = 0.

10 1. Elementi numeričke analize Aproksimacija funkcije f(x) se zove interpolacija ako se vrednosti parametara aproksimacije: c 0, c 1,..., c n odrede tako da su vrednosti f(x) i P(x) jednake u diskretnom skupu tačaka x 0, x 1,..., x n koji se zovu čvorovi interpolacije (Slika 1.1). f(x k ) = P(x k ), (k = 0, 1, 2,..., n). (1.14) Slika 1.1: Aproksimacija funkcije polinomom za potrebe interpolacije. Vrednosti parametara interpolacije: c 0, c 1,..., c n mogu se direktno odrediti metodom neodredjenih koeficijenata, koja dovodi do rešavanja sistema linearnih algebarskih jednačina: n c i ϕ i (x k ) = f(x k ), (k = 0, 1, 2,..., n), (1.15) i=0 gde indeks,,i ukazuje na red polinoma, a indeks,,k na broj interpolacionih čvorova. 1.3.1 Metode interpolacije Izbor metode interpolacije zavisi od broja i rasporeda interpolacionih čvorova. Naime, oblik interpolacionog polinoma zavisi od toga da li su čvorovi ekvidistantni (na jednakom odstojanju) ili nisu. 1.3.1.1 Interpolacioni polinom Lagrangea Kada se u (1.13) stavi: ϕ k (x) = x k (k=0,1,...,n), interpolaciona funkcija je polinom oblika: n L n (x) = c i x i. i=1 (1.16)

1.3. Numerička interpolacija i aproksimacija funkcija 11 Teorijski je dokazano da postoji jedinstveno odredjen polinom L n (x) stepena n koji u n + 1 čvorova x k, (k = 0, 1,..., n) zadovoljava uslove [3, 6, 9]: L n (x k ) = f(x k ), (k = 0, 1,..., n). (1.17) Interpolacioni polinom Lagrangea ima opšti oblik: L n (x) = gde je: n i=0 f i ϕ i (x) ϕ i (x i ), (1.18) ϕ i (x) = (x x 0 )(x x 1 )...(x x i 1 )(x x i+1 )...(x x n ) = n = (x x j ) (1.19) j=0 j i ϕ i (x i ) = (x i x 0 )(x i x 1 )...(x i x i 1 )(x i x i+1 )...(x i x n ) = n = (x i x j ). (1.20) j=0 j i Algoritam interpolacije pomoću Lagrangeovog polinoma dat u nastavku, a provera algoritma se obavlja pomoću 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 ) ) c( i ) = y( i ) / P

12 1. Elementi numeričke analize yy = 0. do i = 1, N PP = 1. do j = 1, N if( j /= i ) PP = PP * ( xx - x( j ) ) yy = yy + c( i ) * PP print "( xx=, f8.3, yy =, f8.3 )", xx, yy END PROGRAM Lagrange0 Primer 1.4. Koristeći podatke iz programa za Lagrangeovu interpolaciju, odrediti vrednost f(2, 5)? Rešenje. f(2, 5) = 7, 688. * * * Nešto složeniji algoritam omogućava da se, modifikovanim postupkom, ne samo obavi interpolacija funkcije u nizu zadatih tačaka, već i da se odrede i vrednosti koeficijenata interpolacionog polinoma. U tom cilju, polinom ϕ i (x) se definiše u obliku: n 1 ϕ i (x) = x n 1 + k=1 A k x n k 1, (1.21) gde se koeficijenti A k računaju po rekurentnim formulama: A n = ( 1) n 1 Π n j=1 x j, za j = 1 (1.22) A n 1 = 1 l l ( 1) k+1 A n 1+k k=1 n j=1 ( 1 x j ) k, l = 1,..., n 2. (1.23) Kada se odredi niz A k, pa uvrsti u (1.21), pa u (1.18), dobijaju se koeficijenti interpolacionog polinoma L n 1 (x) (za razliku od prethodne formulacije ovde indeksi i, j imaju početnu vrednost 1, pa je zato oznaka polinoma L n 1 umesto L n ); zatim se po poznatoj Hornerovoj shemi 3 računaju tražene vrednosti u nizu zadatih tačaka: L n 1 (z j ), (j = 1,..., M). Koristeći podatke iz primera koji sledi, postupak je prikazan algoritmom 1.3. Primer 1.5. Odrediti vrednosti koeficijenata Lagrangeovog polinoma za ulazne podatke koji su zadati u Primeru 1.4. Zatim naći vrednosti polinoma u tačkama z koje su zadate u programu. Rešenje. L 4 (x) = x 4 + 10 x 3 18 x 2 10 x + 28. Sračunate vrednosti su: L 4 (1) = 9, L 4 (3) = 24, 9997, L 4 (2, 5) = 7, 78748 i L 4 (1, 5) = 1, 18749. 3 Videti primer na adresi: http://www.math.byu.edu/ schow/work/horner.htm

1.3. Numerička interpolacija i aproksimacija funkcija 13 Algoritam 1.3. PROGRAM Lagrange1 real :: s, s1, Pom, FI, R integer :: i, j, k, l integer :: N integer :: M! indeksi! broj cvorova interpolacije! 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 /) y = (/ 9, 9, 0, 25, 84 /) z = (/ 1.0, 3.0, 2.5, 1.5 /)! ulazni podaci A( 1 ) = 1.! inicijalizacija do j = 1, N F( j ) = 0. do i = 1, N! glavni racunski ciklus Pom = 1. do k = 1, N Pom = Pom * x( k ) 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 s1 = s1 - (-1./x( i ))**k s = s + (-1)**( k+1 ) * A( N-l+k ) * s1 A( N-l ) = s / l FI = A( 1 ) do k = 1, N-1 FI = FI * x( i ) + A( k+1 ) R = y( i ) / FI do k = 1, N F( k ) = F( k ) + R * A( k )

14 1. Elementi numeričke 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 ) 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 ) 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 ) END PROGRAM Lagrange1 Greška polinomske interpolacije u proizvoljnoj tački x je razlika vrednosti funkcije i polinoma u toj tački: R n ( x) = f( x) L n ( x). Najveća apsolutna vrednost R n ( x) predstavlja najveću grešku polinomske aproksimacije. Ako je α = min(x 0,..., x n ) i β = max(x 0..., x n ), može se pokaziti da je za svako x (a, b): R n ( x) = maxf(n+1) (α t β) ω n+1 ( x), gde je : (n + 1)! n ω n+1 ( x) = ( x x j ), (j = 0, 1,..., n). (1.24) j=0 Primer 1.6. Funkcija f(x) = x se aproksimira Lagrangeovim polinomom drugog stepena: L 2 (x). Podaci za interpolacione čvorove dati su u Tabeli 1.1. Izračunati vrednost f(115) i oceniti grešku interpolacije [9]. Tabela 1.1: Podaci za primer 1.6 x 0 = 100 x 1 = 121 x 2 = 144 f 0 = 10 f 1 = 11 f 2 = 12 Rešenje. Ručnim postupkom proračuna po (1.18), ili primenom programa, dobija se: L 2 (x) = 0, 00009411 x 2 + 0, 06842 x + 4, 099. Sledi: L 2 (115)=10,723. Za ocenu greške, potrebno je sračunati vrednosti trećeg izvoda: f (x) = (3/8)x 5/2 = 0, 375 x 2,5 u svim čvorovima: f (100)=3, 750 10 6, f (121)=2, 328 10 6, f (144)=1, 507 10 6.

1.3. Numerička interpolacija i aproksimacija funkcija 15 Merodavna je najveća apsolutna vrednost: 3, 750 10 6. Sledi: ω 3 ( x) = ( x x 0 )( x x 1 )( x x 2 ) = (115 100)(115 121)(115 144) = 2610, pa je, shodno (1.24), definitivno: R 2 (115) = 1 3! max f ω 3 (115) = 1 6 3, 750 10 6 2610 = 0, 0016. Posebno je pitanje kako izabrati čvorove u nekom intervalu (a, b), tako da greška interpolacije R n (x) iz formule (1.24) bude što manja. Odgovor na ovo pitanje daje teorija Čebiševljevih polinoma [10]. Dopunsko učenje: Osnovna ideja Čebiševljevih polinoma najbolja moguća aproksimacija funkcija polinomom. 1.3.1.2 Interpolacioni polinom Newtona Algoritamski je za proračun polinoma poželjno da se ovi formulišu uopštenjem parcijalne sume Taylorovog reda. Pri tome se za generalizaciju izvoda koriste podeljene razlike (količnici konačnih razlika). Podeljena razlika nultog reda (k = 0) je jednaka vrednosti funkcije u čvoru, a zatim se rekurentno definišu razlike prvog reda (k = 1) pomoću razlika nultog reda, razlike drugog reda (k = 2) pomoću razlika prvog reda itd. Ako se razlike označe srednjim zagradama: k = 0 : f[x 0 ] = f(x 0 ) k = 1 : f[x 0, x 1 ] = f[x 1] f[x 0 ] = f(x 1) f(x 0 ) x 1 x 0 x 1 x 0 k = 2 : f[x 0, x 1, x 2 ] = f[x 1, x 2 ] f[x 0, x 1 ] x 1 x 0.. k : f[x 0, x 1,..., x n ] = f[x 1, x 2,..., x k ] f[x 0, x 1,..., x n 1 ] x k x 0. (1.25) Shema formiranja konačnih razlika: x 0 f(x 0 ) x 1 f(x 1 ) } f[x0, x 1 ] } f[x1, x 2 ] } f[x0, x 1, x 2 ] x 2 f(x 2 )........ f[x 0, x 1..., x k ] } f[xk 1, x k ] x k f(x k )

16 1. Elementi numeričke analize Formula za proračun podeljene razlike k-tog reda pomoću vrednosti funkcije u čvorovima ima ovaj oblik [9]: f[x 0, x 1,..., x k ] = i=0 k f i. (1.26) k (x i x j ) j=0 j i Umesto dokaza, evo provere za k = 1: f[x 0, x 1 ] = f 1 f 0 x 1 x 0 = f 0 x 0 x 1 + f 1 x 1 x 0 = 1 i=0 f i (x i x j ). j=0 j i Napominje se da je operator podeljenih razlika linearan operator i da je podeljena razlika simetrična funkcija svojih argumenata, tako da redosled čvorova nije bitan. Interpolacioni polinom Lagrangea (1.18) može se napisati na drugi način, pomoću podeljenih razlika, pa se, ne ulazeći u izvodjenje, dobija: L n (x) = f(x 0 ) + f[x 0, x 1 ](x x 0 ) +... + + f[x 0, x 1,..., x n ](x x 0 )(x x 1 )...(x x n 1 ). (1.27) Ovako napisan, polinom se zove Newtonov interpolacioni polinom sa podeljenim razlikama. Kao što je već rečeno, može se smatrati uopštenjem parcijalne sume Taylorovog reda funkcije f(x). Može koristiti i kada raspored interpolacionih čvorova nije ravnomeran, odnosno nije uslovljen jednakim razmakom čvorova. Koristeći podatke iz Primera 1.4, u nastavku se prikazuje interpolacija funkcije pomoću Newtonovog polinoma. (Obratiti pažnju da je u algoritmu za proračun polinoma po formuli (1.27), početna vrednost indeksa 1, a ne 0). Račun daje identičan 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. /) y = (/ 9., 9., 0., 25., 84. /)! ulazni podaci

1.3. Numerička 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 ) ) P = P * ( xx - x( j ) ) yy = yy + y( 1 ) * P print "( xx=, f8.3, yy =, f8.3 )", xx, yy END PROGRAM Newton1 1.3.1.3 Interpolacioni polinomi sa ravnomerno rasporedjenim čvorovima Čvorovi: x i = x 0 + i x (i = 0, ±1,..., ±n) su ravnomerno rasporedjeni (,,ekvidistantni ) ako je x = const. Znakom indeksa (i), položaj svakog čvora je odredjen u odnosu na referentni čvor x 0. Kada je ovakav raspored čvorova u pitanju, umesto podeljenih, koriste se konačne razlike. Konačne razlike prvog reda (k = 1) mogu biti: f i = f i+1 f i razlika unapred f i = f i f i 1 razlika unazad δf i = f i+1/2 f i 1/2 centralna razlika. (1.28) Konačne razlike višeg reda (k > 1) definišu se na sledeći način: k f i = ( k 1 f i ) = k 1 f i+1 k 1 f i unapred k f i = ( k 1 f i ) = k 1 f i k 1 f i 1 unazad δ k f i = δ(δ k 1 f i ) = δ k 1 f i+1/2 δ k 1 f i 1/2 centralna. (1.29) U navedenim formulama koristi se skraćena notacija: f i = f(x i ), f i+1 = f(x i+1 ) itd. U nastavku se daje shema koja pokazuje način formiranja konačnih razlika unapred: x 0 f 0 } f0 x 1 f 1 } 2 f 0 } f1 } 3 f 0 x 2 f 2 } 2 f 1 } f2 x 3 f 3.....

18 1. Elementi numeričke analize Formula za proračun konačnih razlika unapred je 4 : k k f i = ( 1) j C j k f i+k j, j=0 C j k = ( k j ). (1.31) Veza podeljenih i konačnih razlika je: f[x i, x i+1,..., x i+k ] = k f i ( x) k k! (1.32) Na primer, za k = 1: f[x i, x i+1 ] = f i+1 f i x i+1 x i = f i x. Imajući u vidu ekvidistantne čvorove: x i = x 0 + i x (i = 0, ±1,..., ±n), može se uvesti nova promenljiva: q = x x 0, q ( 1, 1), (1.33) x odakle sledi da se bilo koja tačka u intervalu x 0 ± x može definisati u odnosu na referentnu tačku x 0 izrazom: x = x 0 + q x. Newtonov interpolacioni polinom za interpolaciju unapred. Ako su indeksi čvorova kojima je odredjen polinom: x i = x 0 +i x pozitivni: x 1 = x 0 + x, x 2 = x 0 +2 x itd., Newtonov opšti interpolacioni polinom (1.27) se može napisati u obliku: q(q 1) L n (x 0 + q x) = f 0 + q f 0 + 2 f 0 +... 2! q(q 1)...(q n + 1) + n f 0, (1.34) n! pri čemu se razlike računaju po formulama (1.28). Za ocenu greške interpolacije može se koristiti izraz u kome se obično uzima srednja vrednost konačnih razlika reda (n + 1) [9]: R q(q 1)...(q n) (n + 1)! n+1 f, (1.35) 4 Binomni koeficijenti u formuli računaju se na sledeći način: ( ) ( ) ( ) ( k j + 1 k j + 2 k... za : j > k j C j k = k 1 2 j = j) k! za : j k j. (k j)!n! (1.30)

1.3. Numerička interpolacija i aproksimacija funkcija 19 Polinom (1.34) je pogodan za interpolaciju vrednosti x koje se nalaze na početku tabele zadatih vrednosti, jer se čvorovi,,pružaju udesno, pa se mogu formirati sekvence konačnih razlika unapred. Izraz (1.34) zove se,,newtonova prva interpolaciona formula. Newtonov interpolacioni polinom za interpolaciju unazad. Ako su indeksi čvorova kojima je odredjen polinom negativni, čvorovi se uključuju u polinom redosledom: x 0, x 1,..., x n, pa se dobija polinom u obliku: q(q + 1) L n (x 0 + q x) = f 0 + q f 1 + 2 f 2 +... 2! q(q + 1)...(q + n 1) + n f n. (1.36) n! Ocena greške interpolacije je [9]: R q(q + 1)...(q + n) (n + 1)! n+1 f. (1.37) Ovaj polinom je pogodan ako se interpolovana vrednost x nalazi na kraju tabele zadatih vrednosti. Izraz 1.36) zove se,,druga Newtonova interpolaciona formula. Interpolacioni polinomi (1.34) i (1.36) se mogu koristiti i za ekstrapolaciju nalaženje približnih vrednosti funkcije f(x) u tački x koja ne pripada intervalu odredjenom čvorovima interpolacije. Koji će se od navedenih polinoma koristiti, zavisi sa koje strane intervala se ekstrapoluje vrednost x. Medjutim, treba biti oprezan! Greška ekstrapolacije je veća od greške interpolacije, pa numeričku ekstrapolaciju treba izbegavati. Stirlingov interpolacioni polinom. Kada se interpolacija obavlja Newtonovim polinomima unapred i unazad, koristi se informacija o funkciji koja se interpoluje samo sa jedne strane tačke x. Ako je tačka bliska sredini intervala, veća tačnost se može postići kada se koriste čvorovi sa obe strane te tačke. Na ovoj ideji je zasnovano izvodjenje Gaussovih interpolacionih polinoma za interpolaciju unapred i unazad [9, 10, 11] itd. Aritmetička sredina Gaussovih polinoma je Stirlingov interpolacioni polinom, koji je pogodan za interpolaciju tačaka blizu sredini intervala sa tabelarno zadatim ekvidistantnim čvorovima: L 2n+1 (x 0 + q x) = f 0 + q f 1 + f 0 + 2 + q2 2! 2 f 1 + q(q2 1) 3 f 2 + 3 f 1 +... 3! 2 + q(q2 1)...(q 2 n 2 ) (2n + 1)! 2n+1 f (n+1) + 2n+1 f n. (1.38) 2

20 1. Elementi numeričke analize Ovaj polinom se preporučuje za q 0, 25. Vrlo sličan je i Besselov interpolacioni polinom [7, 9]. 1.3.2 Ostali vidovi linijske interpolacije U nastavku se samo evidentiraju neki složeniji vidovi linijske interpolacije, za koje postoji obilje literature. Interpolacioni polinom Hermitea. Ovaj polinom ima dopunski uslov da su u nekim od čvorova interpolacije i izvodi polinoma jednaki odgovarajućim izvodima funkcije koja se interpoluje: H (k) n (x i ) = f (k) i (i = 0, 1,..., m), (1.39) gde je m ukupno čvorova u kojima je zadovoljen i uslov jednakosti izvoda, a k = 0, 1,..., n i 1 red izvoda. Splajn interpolacija. Da bi se izbegle oscilacije Lagrangeovog polinoma višeg stepena izmedju čvorova, koriste se,,splajnovi najčešće kubni polinomi. Radi se o interpolacionoj funkciji koja na svakom od intervala (x i, x i+1 ), (i = 0, 1,..., n 1) ima oblik polinoma trećeg stepena. U tački spajanja dva takva polinoma, ovi polinomi, kao i njihovi prvi i drugi izvodi, imaju jednake vrednosti. Interpolacija racionalnim funkcijama. Ovaj, nestandardni tip interpolacije zasnovan je na interpolacionim funkcijama u obliku količnika dva polinoma: P m (x) Q n (x) = p 0 + p 1 x + p 2 x 2 +... + p m x m q 0 + q 1 x + q 2 x 2 +... + q n x. (1.40) n Interpolacija trigonometrijskim funkcijama. Za interpolaciju 2π periodičnih funkcija može se koristiti trigonometrijska interpolacija: f(x) n n i=1 j=0 j i sin(x x j ) f(x i ). (1.41) sin(x i x j ) Navedena formula, koja nosi ime Hermitea, odgovara Lagrangeovoj formuli za neperiodične funkcije i koristi se za proizvoljni raspored interpolacionih čvorova. Inverzna interpolacija. Radi se o postupku kojim se odredjuje približna vrednost argumenta za koji funkcija f(x) ima zadatu vrednost ȳ, pri čemu je ȳ izmedju dve zadate tabelarne vrednosti y i = f(x i ). Ovaj problem je interesantan sa stanovišta odredjivanja tačke ekstrema neke funkcije.

1.3. Numerička interpolacija i aproksimacija funkcija 21 Dopunsko učenje: Hermitovi interpolacioni polinomi, splajn interpolacija, trigonometrijski interpolacioni polinomi, inverzna interpolacija. 1.3.3 Interpolacija funkcije više promenljivih Obično se radi o interpolaciji funkcije sa dve promenljive f(x, y). Moguća su dva pristupa. (i) Primena višedimenzionih interpolacionih polinoma, kao što je na primer, Newtonov polinom za interpolaciju funkcije f(x, y) unapred: L n (x, y) = f(x 0, y 0 ) + p 1+0 f(x 0, y 0 ) + q 0+1 f(x 0, y 0 ) + + 1 ( p(p 1) 2+0 f(x 0, y 0 ) + 2pq 1+1 f(x 0, y 0 )+ 2! + q(q 1) 0+2 f(x 0, y 0 ) ) +..., (1.42) gde su uvedene smene: p = (x x 0 )/ x i q = (y y 0 )/ y. (ii) Mnogo jednostavniji i za primenu lakši, je postupak višestruke jednodimenzione interpolacije. Ako je potrebno odrediti vrednost funkcije f(x, y) u tački ( x, ȳ), na osnovu zadatih vrednosti: f(x i, y j ), (i = 0, 1,..., m) i (j = 0, 1,..., n), onda se zadatak rešava na sledeći način: jednodimenziona interpolacija se primeni po promenljivoj x, (n + 1) puta, tako da se izračunaju vrednosti f( x, y j ), (j = 0, 1,..., n), a zatim se pomoću tih vrednosti, interpolacijom po y, računa tražena vrednost f( x, ȳ). (Analogno bi se postupilo u slučaju funkcije više promenljivih.) Opisani pristup je primenjen u Algoritmu 1.5 i ilustrovan primerom iz hidrotehničke prakse. Primer 1.7. Na Slici 1.2 prikazana je račva u sitemu cevi ili galerija. Slika 1.2: Račva. Za proračun hidrauličkih gubitaka energije na račvi, potrebne su, u zavisnosti od pravca strujanja(3 2 ili 3 1), vrednosti dva koeficijenta lokalnog gubitka: ξ 32 i ξ 31. Za dati ugao skretanja (90 o ) i oblik poprečnog preseka, vrednost koeficijenta lokalnog gubitka na račvi zavisi od površina poprečnog preseka i trenutnih protoka u cevima: ξ 31 = ξ 31 (A 1 /A 3, Q 1 /Q 3 ). Ova zavisnost, ustanovljena laboratorijskim merenjima, definisana je grafički i tabelarno: x i = (A 1 /A 3 ) i, (i = 1,..., n), y j = (Q 1 /Q 3 ) j, (j = 1,..., m) i f(x i, y j ) = ξ 31 (i, j) (vrednosti zadate u programu).

22 1. Elementi numeričke analize Višestrukom primenom Newtonove interpolacije, odrediti vrednost ξ 31 u čvoru (x = 0, 40, y = 0, 32). Rešenje. ξ 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 /) y = (/ 0.1, 0.2, 0.3, 0.4, 0.5 /)! odnos A1/A3! 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 ) ) P = P * ( xx - x( j ) ) s( i ) = s( i ) + f( 1, i ) * P 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 ) ) P = P * ( yy - y( j ) ) ff = ff + s( 1 ) * P print "( xx=, f8.3, yy =, f8.3, ff =, f8.3 )", xx, yy, ff END PROGRAM Newton2 Ako se želi interpolacija samo po jednoj promenljivoj, parametru M treba dodeliti vrednost 1. Tada se Algoritam 1.5 svodi na Algoritam 1.4.

1.3. Numerička interpolacija i aproksimacija funkcija 23 1.3.4 Aproksimacija funkcija U praksi se često javljaju situacije kada funkcija f(x) nije data obrascem, već je samo poznat skup diskretnih vrednosti x i (a, b) i f(x i ), i = 1,..., N, a cilj je da se na osnovu tih podataka, dodje do drugih, približno važećih za istu funkciju u razmatranom skupu realnih brojeva (ostale vrednosti u intervalu (a, b). Ovaj problem podstiče pitanje da li se pod odredjenim uslovima funkcija f(x) u datom intervalu može zameniti drugom poznatom funckijom F(x) tako da razlika bilo kojoj tački x: f(x) F(x) bude prihvatljivo mala: f(x) F(x) < ɛ, (1.43) gde je realan pozitivan broj epsilon prihvatljiva granica apsolutne greške. Aproksimirati funkciju f(x) u datom intervalu nekom drugom funkcijom F(x) znači prvo, izabrati funkciju F(x) i drugo, oceniti grešku aproksimacije f(x) F(x). S obzirom na (1.43), u posmatranom intervalu realnih brojeva biće: f(x) ɛ < F(x) < f(x) + ɛ, (1.44) pa se izmedju navedenih granica može povući neograničeno mnogo krivih F(x) (Slika 1.3). Slika 1.3: Geometrijsko tumačenje opsega aproksimacije. Pri izboru funkcije F(x), važno je da ta funkcija bude dobro poznata i podesna sa stanovišta izvodjenja računskih operacija. U tom smislu, podesni su algebarski i trigonometrijski polinomi, kao i neki uopšteni polinomi korespondentni algebarskim, odnosno trigonometrijskim polinomima.

24 1. Elementi numeričke analize 1.3.4.1 Aproksimacija funkcije Taylorovim polinomom Klasična metoda aproksimacije polinomom zasniva se na primeni Taylorove formule. Poznato je da razvoj funkcije f(x) u u Taylorov red, u intervalu x 0 x, x 0 + x), zahteva da je funkcija neprekidnai da ima izovde do reda n+1. Tada za svako x iz datog intervala važi Taylorova formula: f(x) = f(x 0 ) + (x x 0 ) f (x 0 ) 1! + (x x 0 ) n f (n) (x 0 ) n! + (x x 0 ) 2 f (x 0 ) 2! +... + (1.45) + O n, (1.46) gde svi članovi na desnoj strani jednačine, osim poslednjeg, predstavljaju Taylorov polinom T n funkcije f(x), a poslednji član je ostatak (u Lagrangeovom obliku): O n (x x 0 ) = (x x 0) n+1 (n + 1)! f (n+1) [x 0 + θ(x x 0 )], (0 < θ < 1) (1.47) Aproksimirati funkciju f(x) korespondentnim Taylorovim polinomom znači uzeti u intervalu (x 0 x, x 0 + x) taj polinom umesto funkcije, odnosno uvesti aproksimaciju f(x) T n (x) i oceniti grešku O n (x x 0 ) = f(x) T n (x), što ustvari znači utvrditi gornju granicu T apsolutne greške aproksimacije: f(x) T n (x) T. (1.48) Bez dokaza, na osnovu Lagrangeovog oblika ostatka može se za granicu apsolutne greške uzeti broj: T ( x)n+1 M, (n + 1)! (1.49) gde je M gornja granica vrednosti f (n+1) (x). Način formiranja Taylorovog polinoma je dovoljno poznat, pa se na ovom mestu posebno ne opisuje. Napominje se samo da se za poznatu funkciju f(x) izvodi analitički računaju, a u protivnom, približno numeričkim diferenciranjem. Za datu funkciju f(x) i tačku x 0, mogu se rešavati ovi zadaci: (i) za usvojen stepen Taylorovog polinoma n i interval x, treba odrediti gornju granicu apsolutne greške aproksimacije T ; (ii) za usvojene veličine T i x, odrediti stepen n; (iii) za usvojene veličine n i T, odrediti interval x. Napomena: Najveća teškoća u praktičnoj primeni Taylorove aproksimacije je ocena granice apsolutne vrednosti izvoda f (n+1) (x) za x (x 0 x, x 0 + x).

1.3. Numerička interpolacija i aproksimacija funkcija 25 Ne mogu se dati opšta uputstva, jer sve zavisi od prirode funkcije, odnosno njenih izvoda. Ova činjenica je bitno ograničenje aproksimacije funkcija Taylorovim polinomima. 1.3.4.2 Aproksimacija tablično zadate funkcije Metoda najmanjih kvadrata. Ova, najjednostavnija metoda, minimizira varijansu izmedju,,glatke krive i eksperimentalnih tačaka. Za objašnjenje metode koristi se sledeći primer. Primer 1.8. U Tabeli 1.2 je dat niz izmerenih vrednosti brzine u semi-logaritamskoj razmeri, pri čemu 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 može prikazati teorijskom funkcijom: u(z) = u ( ) z κ ln, z 0 (1.50) gde je κ = 0.4 fon Karmanova konstanta, u = τ 0 /ρ lokalna smičuća brzina, a z 0 referentno odstojanje od dna na kome je brzina jednaka nuli. Problem je da se izvrši aproksimacija funkcije pomoću diskretnog skupa zadatih vrednosti i da se, naknadno, odredi brzina na dubini 3,5 m? Rešenje. Ako se date tačke nanesu na dijagram (Slika 1.4), a na osnovu izraza (1.50), može se zaključiti da se podaci mogu aproksimirati pravom linijom, čija je jednačina: f = a x + b. (1.51) Metoda najmanjih kvadrata (MNK) zahteva da se vrednosti parametara a i b odrede minimizacijom sume kvadrata devijacija (odstupanja) f f i : N N R = (f f i ) 2 = (a x i + b f i ) 2 = min. (1.52) i=1 i=1 Minimizacija (1.52) se ostvaruje iz uslova da su prvi izvodi jednaki nuli: R a = 0 i R = 0, (1.53) b

26 1. Elementi numeričke analize što daje: Slika 1.4: Raspored izmerenih lokalnih brzina. a = N x i f i x i fi N x 2 i ( x i ) 2 (1.54) b = x 2 i fi x i xi f i N x 2 i ( x i ) 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

1.3. Numerička interpolacija i aproksimacija funkcija 27 Za zadate vrednosti (x i, f i ), program daje ove vrednosti parametara: a = 40, 45 i b = 21, 82. Za ln(3, 5) = 1, 25 = x, dobija se: f = ū = 72, 4 cm/s. * * * U polinomskoj aproksimaciji višeg reda, kao i u zadacima interpolacije, funkcija se zadaje tabelarno u tačkama: x 0, x 1..., x n, a pretpostavlja se da je oblik tražene funkcije polinom P k (x), čiji je stepen manji od broja zadatih tačaka: k < n, pa se zato i govori o zadatku aproksimacije, a ne interpolacije, jer se ne može garantovati da će važiti uslov: P k (x i ) = f(x i ), (i = 0, 1,..., n). U opšem slučaju, zadatak aproksimacije se može i ovako interpretirati. Pretpostavlja se da se aproksimacija obavlja pomoću linearne kombinacije linearno nezavisnih funkcija: F m (x) = c 0 ϕ o (x) + c 1 ϕ 1 (x) +... + c m ϕ m (x) (1.56) Za ϕ i (x) = x i (i = 0, 1,..., m), linearna kombinacija postaje generalisani (uopšteni) polinom (1.12). S druge strane, uopštavanjem kriterijuma najmanjih kvadrata (1.52) dobija se: n R = (F(x i ) f(x i ) 2 = min. (1.57) i=0 Izjednačavanjem parcijalnih izvoda funkcije (1.57), po nepoznatim parametrima c 0, c 1,..., c m sa nulom (što je potreban i dovoljan uslov egzistencije minimuma, jer je funcija R konveksna i glatka), dobija se sistem linarnih algebarskih jednačina: < ϕ 0, ϕ o > c 0 + < ϕ 1, ϕ o > c 1 +...+ < ϕ m, ϕ o > c m = (f, ϕ 0 ) < ϕ 0, ϕ 1 > c 0 + < ϕ 1, ϕ 1 > c 1 +...+ < ϕ m, ϕ 1 > c m = (f, ϕ 1 ). =. < ϕ 0, ϕ m > c 0 + < ϕ 1, ϕ m > c 1 +...+ < ϕ m, ϕ m > c m = (f, ϕ m ), (1.58) gde < f(x), g(x) > = n i=0 f(x i)g(x i ) predstavja skalarni proizvod funkcija f i g u intervalu (a, b). (Sistem jednačina se može značajno uprostiti ako su polinomi ortogonalni. Pojam ortogonalnih polinoma objašnjen je u literaturi [10] i [11]). Za rešavanje sistema linearnih jednačina (1.58) mogu se koristiti odgovarajuće numeričke metode koje su predmet posebnog razmatranja. Kodovi nekih standardnih numeričkih postupaka dati su u Dodatku. Dopunsko učenje: Ortogonalni polinomi.

28 1. Elementi numeričke analize 1.4 Numeričko diferenciranje Metode numeričkog diferenciranja koriste se u slučajevima kada je funkcija f(x) zadata tabelarno u nizu tačaka f i = f(x i ), ili kada je njen analitički oblik jako složen. Numeričko diferenciranje je neophodno i pri rešavanju diferencijalnih jednačina metodama konačnih razlika i konačnih zapremina. Formule za numeričko diferenciranje dobijaju se diferenciranjem interpolacionih polinoma: f (k) (x) = L (k) n (x), (1.59) gde je L n polinom odredjen interpolacionim čvorovima: x 0, x 1..., x n, a k red izvoda. Formule za numeričko diferenciranje imaju jednostavniji oblik ako se izvedu za izračunavanje približne vrednosti izvoda u čvoru. Na primer, diferenciranjem Newtonovog polinoma za interpolaciju unapred, dobija se [9]: f (x 0 = = ( ) dln (x) dx d f 0 + dq 1 x n j=1 x=x 0 = n j=1 ( d dq L n(x 0 + q x) dq ) = dx q=0 1 j! q(q 1)...(q j + 1) j f 0 1 x ( 1) j 1 (j 1)! j f 0 = 1 j! x n j=1 q=0 = ( 1) j 1 j f 0. (1.60) j Slično se dobija formula za numerčko diferenciranje pomoću Newtonovog polinoma za interpolaciju unazad [9]: ( ) f dln (x) (x 0 ) = 1 dx x=x 0 x n j=1 j f 1. (1.61) j U nastavku se, primera radi, daje postupak numeričkog diferenciranja zasnovan na Newtonovoj interpolacionoj formuli (1.27). Pri tome se pretpostavlja da je poznat analitički oblik funkcije f(x). Ukoliko to nije slučaj, potrebno je samo promeniti način učitavanja ulaznih podataka. Algoritam je sličan Algoritmu 1.4.

1.4. Numeričko 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 )) 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 )) df = df + A * f( 1 ) print "( xx=, f8.3, END PROGRAM Dif_n1 df =, f8.3/)", xx, df Svako diferenciranje smanjuje red tačnosti za jedan. Greška formule se u principu smanjuje sa smanjenjem koraka x. Medjutim, smanjenje koraka povećava računsku grešku, što utiče na rast ukupne greške. Greška formule za numeričko diferenciranje, koja se dobija se diferenciranjem interpolacionog polinoma, jednaka je odgovarajućem izvodu greške interpolacije. Na primer, greška formule (1.60) je: f (x 0 ) L n(x 0 ) = maxf(n+1) (α t β) (n + 1) gde je α = min(x 0,..., x n ) i β = max(x 0..., x n ). ( 1) n ( x) n, (1.62)

30 1. Elementi numeričke analize Analiza greške diferenciranja pokazaće se na jednostavnom slučaju: n = 1 [9]. Aproksimacijom prvog izvoda u čvoru pomoću formule za interpolaciju unapred dobija se: f (x 0 ) = f(x 1) f(x 0 ). (1.63) x Greška metode je prema (1.63): R 1 = f (x 0 ) L n(x 0 ) = maxf (t) 2 gde je M 2 = maxf (t). ( 1) x = maxf (t) x 2 = M 2 x, (1.64) 2 Ako su vrednosti funkcije f(x i ) izračunate sa greškama e i E, onda je računska greška aproksimacije (1.63): R 2 = e 1 + e 2 x 2E x. (1.65) Ukupna greška aproksimacije izvoda formulom (1.63) obuhvata grešku metode i računsku grešku: R = R 1 + R 2 R 1 + R 2 M 2 x 2 + 2E = r( x). (1.66) x Funkcija greške r( x) se sastoji od linearnog i hiperboličkog dela, kao što pokazuje grafikon na Slici 1.5. Optimalan korak diferenciranja x odgovara minimumu funkcije r( x). Slika 1.5: Geometrijsko tumačenje greške numeričkog diferenciranja.

1.5. Numerička integracija 31 1.5 Numerička integracija Problem rešavanja linijskog odredjenog integrala definisan je opštim izrazom: I = b a f(x) dx, (1.67) gde je f(x) zadata podintegralna funkcija, a a, b granice oblasti integracije. U hidrotehničkim problemima, podintegralne funkcije su po pravilu složene funkcije, tako da se integrali ne mogu analitički rešiti, već se mora pribeći numeričkoj integraciji. Formule za numeričku integraciju, ili kako se zovu,,kvadraturne formule, izvedene su tako što se podintegralne funkcije f(x) aproksimiraju algebarskim interpolacionim polinomima (Slika 1.6). Slika 1.6: Numerička integracija Oblast integracije kod linijskih integrala segment (a, b) deli se na n podintegrala. U svakom,,i-tom podintervalu (x i 1, x i ), funkcija f(x) se aproksimira polinomom P(x), tako da se vrednost I i = xi x i 1 P(x)dx (1.68) može analitički izračunati. Približna vrednosti traženog integrala jednaka je zbiru lokalnih rešenja: n I I i, i=1 (1.69) pri čemu je i ukupna greška jednaka zbiru lokalnih grešaka aproksimacije.

32 1. Elementi numeričke analize U zavisnosti od stepena polinoma, numeričke metode integracije linijskih integrala kvadraturne formule, nose imena:,,pravilo pravougaonika (polinom nultog stepena),,,trapezno pravilo (polinom prvog stepena),,,simpsonovo pravilo (polinom drugog stepena) i,,gaussove kvadraturne formule. Kvadraturne formule spadaju u dve klase: sa ekvidistantnim integracionim čvorovima (pravilo pravougaonika, trapezno i Simpsonovo pravilo) i sa rasporedom integracionih čvorova koji daje što veću tačnost (Gaussova kvadratura). U zavisnosti od toga da li granične (krajnje) tačke intervala integracije jesu ili nisu čvorovi kvadraturne formule, ove mogu biti formule otvorenog tipa (pravilo pravougaonika) i formule zatvorenog tipa (trapezno i Simpsonovo pravilo). 1.5.1 Linijski integral Linijski integral se obično rešava trapeznim ili Simpsonovim pravilom. Medjutim, zbog objašnjenja numeričke integracije površinskih integrala u nastavku, biće prikazan i Gaussov postupak linijske integracije. Trapezno pravilo. Kod ovog pristupa, polinom P(x) je prvog stepena, tako da se integracioni čvorovi spajaju pravom (Slika 1.7-(a)). (a) (b) Slika 1.7: Numerička integracija: (a) trapezno pravilo i (b) Simpsonovo pravilo Lokalna vrednost integrala je: I i = xi f(x)dx f i 1 + f i x i 1 2 x, (1.70) gde je, radi kraćeg pisanja, f i 1 = f(x i 1 ) i f i = f(x i ), dok je korak integracije: x = x i x i 1.

1.5. Numerička integracija 33 Kompozitna formula za N podintervala je: N N I I i = i=1 i=1 f(x i 1 ) + f(x i ) 2 N 1 x = x [0.5(f a + f b ) + i=1 f i ]. (1.71) Simpson-ovo pravilo. Segment (a, b) se deli na paran broj podintervala dužine x. Polinom P(x) je drugog stepena parabola koja prolazi kroz 3 tačke (dva susedna podintervala, Slika 1.7-(b)). Pretpostaviće se aproksimacija: xi+1 x i 1 f(x)dx A f i 1 + B f i + C f 1+1, (1.72) gde su A, B, C težinski faktori, čije vrednosti treba odrediti iz uslova da vrednost integrala bude tačna za svaki polinom P(x) drugog, ili nižeg, stepena 5 Zamena funkcije polinomima: f(x) = P(x) daje: f(x) = 1 nulti stepen; f(x) = x x i prvi stepen; f(x) = (x x i ) 2 drugi stepen, (1.73) odnosno, xi+1 x i 1 1 dx = A + B + C 2 x = A + B + C (1.74) xi+1 x i 1 (x x i )dx = A(x i 1 x i ) + B(x i x i ) + C(x i+1 x i ) xi+1 A x + C x = 0 (1.75) (x x i ) 2 dx = A(x i 1 x i ) 2 + B(x i x i ) 2 + C(x i+1 x i ) 2 x i 1 A x 2 + C x 2 = 2 x 3 /3. (1.76) Rešavanjem sistema jednačina (1.74)-(1.76) dobija se: A = C = x/3 i B = (4/3) x. Odavde sledi: xi+1 x i 1 1dx x 3 (f i 1 + 4 f i + f i+1.) (1.77) reda. 5 Ovaj postupak, zasnovan na metodi neodredjenihkoeficijenata, pogodan je za polinome nižeg

34 1. Elementi numeričke analize Sabiranjem na intervalu (a, b) konačno se dobija tražena vrednost integrala: I = b a f(x)dx x 3 (f 0 + 4 f 1 + 2 f 2 + 4 f 3 +...2 f n 2 + 4 f n 1 + f n ) = = x 3 [f 0 + f n + 2 (f 2 + f 4 +...+ + f n 2 ) + 4 (f 1 + f 3 +... + f n 1 )]. (1.78) Napomena: formule trapeznog i Simpsonovog pravila se u literaturi zovu i,,newton- Cotesove formule [10]. Gaussova kvadratura. Izborom posebnih tačaka (čvorova integracije), može se postići veća tačnost u odnosu na prethodne metode, sa istim brojem podintervala. Na primer, umesto 2 tačke na krajevima (trapezno pravilo polinom prvog stepena), može se izborom 2 tačke povući kubni polinom kubna parabola (Slika 1.8). Kubni polinom sadrži za 2 tačke 4 parametra, čije vrednosti treba odrediti. Slika 1.8: Numerička integracija Gaussovom metodom Neka su granične vrednosti oblasti integracije a = 1 i b = 1. Za specijalne tačke ξ 1 i ξ 2 u jediničnom intervalu ( 1, 1) važi uslov: 1 1 f(ξ)dξ ω 1 f(ξ 1 ) + ω 2 f(ξ 2 ), (1.79) gde su: ω 1, ω 2 težinski koeficijenti, čije se vrednosti odredjuju iz uslova da integral ima tačnu vrednost za bilo koji polinom trećeg, ili nižeg, stepena: f(ξ) = P(ξ) = 1 nulti stepen; f(ξ) = ξ prvi stepen; f(ξ) = ξ 2 drugi stepen; f(ξ) = ξ 3 tre ci stepen. (1.80)