[go: up one dir, main page]

Idi na sadržaj

Numerička analiza

S Wikipedije, slobodne enciklopedije
Babilonska glinena ploča YBC 7289 (oko 1800–1600. pne) s napomenama. Aproksimacija kvadratnog korijena od 2 je četiri seksagezimalne brojke, što otprilike predstavlja broj šest u dekadom sistemu. 1 + 24/60 + 51/60 2 + 10/60 3 = 1,41421296...[1]

Numerička analiza se bavi proučavanjem algoritama koji koriste numeričku aproksimaciju (nasuprot simboličkih manipulacija) za probleme matematičke analize (za razliku od diskretne matematike). Ona proučava numeričke metode koje pokušavaju pronaći približna, a ne egzaktna rješenja problema. Numerička analiza nalazi primjenu u svim oblastima inženjerstva i prirodnih nauka, a u 21. stoljeću i u životnim i društvenim naukama, medicini, biznisu, pa čak i umjetnosti. Trenutni rast računarske snage omogućio je upotrebu složenijih numeričkih analiza, pružajući detaljne i realistične matematičke modele u nauci i inženjerstvu. Primjeri numeričke analize uključuju: obične diferencijalne jednačine koje se mogu pronaći u nebeskoj mehanici (predviđanje kretanja planeta, zvijezda i galaksija), numeričku linearnu algebru u analizi podataka,[2][3][4] te stohastičke diferencijalne jednačine i Markovljeve lance za simulacije živih ćelija u medicini i biologiji.

Prije modernih računara, numeričke metode su se često oslanjale na ručne interpolacijske formule, koristeći podatke iz velikih štampanih tabela. Od sredine 20. stoljeća, računari su preuzeli izračunavanje potrebnih funkcija, ali mnoge od prethodno korištenih formula i dalje se koriste u softverskim algoritmima.[5]

Numerička tačka gledišta seže do najranijih matematičkih spisa. Ploča iz Babilonske kolekcije Yalea (YBC 7289), daje seksagesimalnu numeričku aproksimaciju kvadratnog korijena od 2, dužine dijagonale jediničnog kvadrata.

Numerička analiza nastavlja ovu dugu tradiciju: umjesto davanja tačnih simboličkih odgovora prevedenih u cifre i primjenjivih samo na mjerenja u stvarnom svijetu, koriste se približna rješenja unutar određenih granica greške.

Primjene

[uredi | uredi izvor]

Opći cilj polja numeričke analize je dizajn i analiza tehnika za davanje približnih, ali tačnih rješenja za širok spektar teških problema, od kojih je mnoge nemoguće riješiti simbolički:

  • Napredne numeričke metode su od suštinske važnosti da bi numeričko predviđanje vremena bilo izvodljivo.
  • Izračunavanje putanje svemirskog broda zahtjeva tačno numeričko rješenje sistema običnih diferencijalnih jednačina.
  • Automobilske kompanije mogu poboljšati sigurnost svojih vozila u slučaju sudara koristeći računarske simulacije sudara. Takve simulacije se u suštini sastoje od numeričkog rješavanja parcijalnih diferencijalnih jednačina .
  • Hedge fondovi (privatni investicioni fondovi) koriste kvantitativne finansijske alate iz numeričke analize kako bi pokušali izračunati vrijednost dionica i derivata preciznije od ostalih učesnika na tržištu.[6]
  • Aviokompanije koriste sofisticirane algoritme optimizacije za odlučivanje o cijenama karata, rasporedu aviona i posada, te potrebama za gorivom. Historijski gledano, takvi algoritmi su razvijeni u okviru polja operacionih istraživanja.
  • Osiguravajuća društva koriste numeričke programe za aktuarske analize.

Historija

[uredi | uredi izvor]

Oblast numeričke analize je nastala mnogo stoljeća prije izuma modernih računara. Linearna interpolacija je već bila u upotrebi prije više od 2000 godina. Mnogi veliki matematičari u prošlosti bili su zaokupljeni numeričkom analizom,[5] što je vidljivo iz naziva važnih algoritama kao što su Newtonova metoda, Lagrangeov interpolacijski polinom, Gaussova eliminacija ili Eulerova metoda. Porijeklo moderne numeričke analize često se povezuje s radom iz 1947. Johna von Neumanna i Hermana Goldstinea,[7][8] dok drugi smatraju da moderna numerička analiza počinje s radom E. T. Whittakera iz 1912.[7]

Publikacija NIST-a

Da bi se olakšalo ručno izračunavanje, napravljene su velike knjige sa formulama i tabelama podataka kao što su interpolacione tačke i koeficijenti funkcija. Koristeći ove tabele, često izračunate do 16 decimala ili više za neke funkcije, mogle su se pronaći vrijednosti koje bi se unosile u date formule i time bi se postigli veoma dobre numeričke procjene nekih funkcija. Kanonski rad u ovoj oblasti je publikacija NIST-a koju su uređivali Abramowitz i Stegun. To je knjiga s više od 1000 stranica s veoma velikim brojem često korištenih formula i funkcija i njihovih vrijednosti u mnogim tačkama. Vrijednosti funkcija više nisu od velike koristi kada je računar dostupan, ali veliki spisak formula i dalje može biti veoma od koristi.

Mehanički kalkulator je također razvijen kao alat za ručno računanje. Ovi kalkulatori su evoluirali u elektronske računare 1940-ih, a zatim je otkriveno da su ovi računari bili korisni i za administrativne svrhe. Ali pronalazak računara uticao je i na oblast numeričke analize,[5] jer su se sada mogli raditi duži i komplikovaniji proračuni.

Leslie Fox nagradu za numeričku analizu inicirao je 1985. Institut za matematiku i njene primjene.

Ključni koncepti

[uredi | uredi izvor]

Direktne i iterativne metode

[uredi | uredi izvor]

Direktne metode izračunavaju rješenje problema u konačnom broju koraka. Ove metode bi dale precizan odgovor ako bi se izvodile u aritmetici beskonačne preciznosti. Primjeri uključuju Gaussovu eliminaciju, metodu QR faktorizacije za rješavanje sistema linearnih jednačina, te simpleks metodu linearnog programiranja. U praksi se koristi konačna preciznost i rezultat je aproksimacija pravog rješenja (pod pretpostavkom stabilnosti).

Za razliku od direktnih metoda, od iterativnih metoda se ne očekuje da će završiti u konačnom broju koraka, čak i ako je moguća beskonačna preciznost. Počevši od početnog nagađanja, iterativne metode formiraju uzastopne aproksimacije koje konvergiraju tačnom rješenju samo u graničnoj vrijednosti. Test konvergencije, koji često uključuje ostatak, određen je kako bi se odlučilo kada je pronađeno dovoljno precizno rješenje. Čak i korištenjem aritmetike beskonačne preciznosti ove metode ne bi došle do rješenja unutar konačnog broja koraka (u općem slučaju). Primjeri uključuju Newtonovu metodu, metodu bisekcije i Jacobijevu iteraciju. U računskoj matričnoj algebri, iterativne metode su općenito potrebne za rješavanje velikih problema.[9][10][11][12]

Iterativne metode se češće koriste u numeričkoj analizi od direktnih metoda. Neke od metoda su u principu direktne, ali se obično koriste kao da nisu, npr. GMRES i metoda konjugovanog gradijenta. Za ove metode broj koraka potrebnih za dobivanje tačnog rješenja je toliko velik da se aproksimacija prihvaća na isti način kao i kod iterativnih metoda.

Kao primjer, razmotrite problem rješavanja

3x3 + 4 = 28

za nepoznatu veličinu x.

Direktna metoda
3x3 + 4 = 28.
Oduzmi 4 3x3 = 24.
Podijeli sa 3 x3 = 8.
Izračnuaj kubni korijen x = 2.

Za iterativnu metodu, primijenite metodu bisekcije na f(x) = 3x3 − 24. Početne vrijednosti su a = 0, b = 3, f(a) = −24, f(b) = 57.

Iterativna metoda
a b sredina f(sredina)
0 3 1,5 −13,875
1,5 3 2,25 10,17...
1,5 2,25 1,875 −4,22...
1,875 2,25 2,0625 2,32...

Iz ove tabele se može zaključiti da se rješenje nalazi između 1,875 i 2,0625. Algoritam može dati bilo koji broj u tom rasponu s greškom manjom od 0,2.

Uslovljavanje

[uredi | uredi izvor]

Loše uslovljen problem: Uzmite funkciju f(x) = 1/(x − 1) . Imajte na umu da je f(1,1) = 10 i f(1,001) = 1000: promjena x manja od 0,1 pretvara se u promjenu f(x) od skoro 1000. Vrednovanje f(x) blizu x = 1 je loše uslovljen problem.

Dobro uslovljen problem: Nasuprot problemu iznad, vrednovanje iste funkcije f(x) = 1/(x − 1) blizu x = 10 je dobro uslovljen problem. Na primjer, f(10) = 1/9 ≈ 0,111 i f(11) = 0,1: umjerena promjena u x dovodi do umjerene promjene u f(x).

Diskretizacija

[uredi | uredi izvor]

Nadalje, kontinuirani problemi ponekad moraju biti zamijenjeni diskretnim problemom za čije rješenje je poznato da je približno rješenju kontinuiranog problema; ovaj proces se naziva diskretizacija. Na primjer, rješenje diferencijalne jednačine je funkcija. Ova funkcija mora biti predstavljena konačnom količinom podataka, na primjer njenom vrijednošću u konačnom broju tačaka u svojoj domeni, iako je ova domena kontinuum.

Generisanje i širenje grešaka

[uredi | uredi izvor]

Proučavanje grešaka čini važan dio numeričke analize. Postoji nekoliko načina na koje se može unijeti greška u rješavanje problema.

Zaokruživanje

[uredi | uredi izvor]

Greške zaokruživanja nastaju jer je nemoguće tačno predstaviti sve realne brojeve na mašini s konačnom memorijom (svi praktični digitalni računari).

Greška pri skraćivanju i diskretizaciji

[uredi | uredi izvor]

Greške skraćivanja nastaju kada se iterativna metoda prekine ili se matematički postupak aproksimira i približno rješenje se razlikuje od tačnog rješenja. Slično tome, diskretizacija izaziva grešku diskretizacije jer se rješenje diskretnog problema ne poklapa s rješenjem kontinuiranog problema. U primjeru iznad kod izračunavanja rješenja jednačine , nakon deset ponavljanja izračunati korijen je otprilike 1,99. Stoga je greška skraćivanja oko 0,01.

Jednom kada se greška generiše, ona se širi kroz proračun. Na primjer, operacija + na računaru je neprecizna. Izračun tipa je još neprecizniji.

Greška skraćivanja se stvara kada se matematički postupak aproksimira. Da bi se funkcija precizno integrisala, mora se pronaći beskonačan zbir regiona, ali numerički se može pronaći samo konačan zbir regiona, što znači samo aproksimacija tačnog rešenja. Slično tome, da bi se diferencirala funkcija, diferencijalni element mora biti približan nuli, ali numerički se za vrijednost diferencijalnog elementa može samo odabrati vrijednost različita od nule.

Numerička stabilnost i dobro postavljeni problemi

[uredi | uredi izvor]

Algoritam se naziva numerički stabilnim ako greška, bez obzira na njen uzrok, ne postaje mnogo veća tokom izračunavanja.[13] To se dešava ako je problem dobro uvjetovan, što znači da se rješenje mijenja samo za malu vrijednost ako se podaci problema mijenjaju za malu vrijednost.[13] Naprotiv, ako je problem "loše uslovljen", onda će svaka mala greška u podacima prerasti u veliku grešku.[13] I originalni problem i algoritam koji se koristi za rješavanje tog problema mogu biti dobro uvjetovani ili loše uvjetovani, a moguća je i svaka kombinacija tih opcija. Dakle, algoritam koji rješava dobro uvjetovani problem može biti ili numerički stabilan ili numerički nestabilan. Umjetnost numeričke analize je pronaći stabilan algoritam za rješavanje dobro postavljenog matematičkog problema.

Oblasti proučavanja

[uredi | uredi izvor]

Područje numeričke analize uključuje mnoge poddiscipline. Neke od glavnih su:

Izračunavanje vrijednosti funkcij

[uredi | uredi izvor]

Interpolacija: Imajući u vidu da temperatura varira od 20 stepeni Celzijusa u 1:00 do 14 stepeni u 3:00, linearna interpolacija ovih podataka bi zaključila da je temperatura u 14:00 bila 17 stepeni i 18,5 stepeni u 13:30.

Ekstrapolacija: Ako je bruto domaći proizvod jedne zemlje rastao u prosjeku 5% godišnje i iznosio je 100 milijardi prošle godine, moglo bi se ekstrapolirati da će ove godine iznositi 105 milijardi.

A line through 20 points
A line through 20 points

Regresija: U linearnoj regresiji, imamo n tačaka za koje se izračunava linija koja prolazi što je moguće bliže tim n tačkama.

How much for a glass of lemonade?
How much for a glass of lemonade?

Optimizacija: Pretpostavimo da se limunada prodaje na štandu za 1,00 € po čaši, te da se dnevno može prodati 197 čaša limunade i da će se za svako povećanje od 0,01 € prodati jedna čaša manje dnevno. Kada bi se moglo naplatiti 1,485 €, profit bi bio maksimiziran, ali zbog ograničenja da se iznos zaokružuje na cijeli cent, naplata od 1,48 € ili 1,49 € po čaši donijet će maksimalan prihod od 220,52 € po danu.

Wind direction in blue, true trajectory in black, Euler method in red
Wind direction in blue, true trajectory in black, Euler method in red

Diferencijalna jednačina: Ako je 100 ventilatora postavljeno da pušu s jednog kraja prostorije na drugi, a onda se pero ispusti u vjetar, šta će se dogoditi? Pero će pratiti vazdušne struje, koje mogu biti veoma složene. Jedna aproksimacija je izmjeriti brzinu kojom zrak puše u blizini pera svake sekunde i pustiti simulirano pero kao da se kreće pravolinijski istom brzinom u trajanju od jedne sekunde, prije nego što se ponovo izmjeri brzina vjetra. Ovo se zove Eulerova metoda za rješavanje obične diferencijalne jednačine.

Jedan od najjednostavnijih problema je vrednovanje funkcije u datoj tački. Najjednostavniji pristup jednostavnog ubacivanja broja u formulu ponekad i nije baš efikasan. Za polinome, bolji pristup je korištenje Hornerove šeme, jer smanjuje potreban broj množenja i sabiranja. Općenito, važno je procijeniti i kontrolisati greške zaokruživanja koje proizlaze iz upotrebe aritmetike s pomičnim zarezom.

Interpolacija, ekstrapolacija i regresija

[uredi | uredi izvor]

Interpolacija rješava sljedeći problem: s obzirom na vrijednost neke nepoznate funkcije u određenom broju tačaka, koju vrijednost ima ta funkcija u nekoj drugoj tački između datih tačaka?

Ekstrapolacija je vrlo slična interpolaciji, samo što se sada mora pronaći vrijednost nepoznate funkcije u tački koja je izvan datih tačaka.[14]

Regresija je također slična, ali uzima u obzir da su podaci neprecizni. Uzimajući u obzir određene tačke i mjerenje vrijednosti neke funkcije u tim tačkama (s greškom), nepoznata funkcija može biti pronađena. Metoda najmanjih kvadrata je jedan od načina da se to postigne.

Rješavanje jednačina i sistema jednačina

[uredi | uredi izvor]

Jedan od fundamentalnih problema je izračunavanje rješenja određene jednačine. Obično se razlikuju dva slučaja, ovisno o tome da li je jednačina linearna ili ne. Na primjer, jednačina je linearna, dok nije.

Mnogo truda je uloženo u razvoj metoda za rješavanje sistema linearnih jednačina . Standardne direktne metode, tj. metode koje koriste neku vrstu matričnog razlaganja su Gaussova eliminacija, LU razlaganje, Choleskyjevo razlaganje za simetričnu (ili Hermiteovu) i pozitivno definitnu matricu i QR razlaganje za nekvadratne matrice. Iterativne metode kao što su Jacobijeva metoda, Gauss–Seidelova metoda, sukcesivna prekomjerna relaksacija i metoda konjugiranog gradijenta[15] obično se preferiraju za velike sisteme. Opće iterativne metode mogu se razviti korištenjem cijepanja matrice.

Algoritmi za pronalaženje korijena koriste se za rješavanje nelinearnih jednačina (tako su nazvani jer je korijen funkcije argument za koji funkcija daje nulu). Ako je funkcija diferencibilna i izvod je poznata, onda je Newtonova metoda popularan izbor.[16][17] Linearizacija je još jedna tehnika za rješavanje nelinearnih jednačina.

Rješavanje problema svojstvenih ili singularnih vrijednosti

[uredi | uredi izvor]

Nekoliko važnih problema može se izraziti u terminima dekompozicija svojstvene vrijednosti ili dekompozicija singularne vrijednosti. Na primjer, algoritam spektralne kompresije slike[18] temelji se na razlaganju singularnih vrijednosti. Odgovarajući alat u statistici naziva se analiza glavnih komponenti.

Optimizacija

[uredi | uredi izvor]

  Problemi optimizacije traže tačku u kojoj je data funkcija maksimizirana (ili minimizirana). Često tačka mora da zadovolji i neka ograničenja.

Polje optimizacije je podijeljeno na nekoliko podoblasti, ovisno o obliku ciljne funkcije i ograničenjima. Na primjer, linearno programiranje se bavi slučajem da su i ciljna funkcija i ograničenja linearni. Poznata metoda u linearnom programiranju je simpleks metoda.

Metoda Lagrangeovih množitelja može se koristiti za redukciju problema optimizacije s ograničenjima na neograničene optimizacijske probleme.

Vrednovanje integrala

[uredi | uredi izvor]

Numerička integracija, u nekim slučajevima poznata i kao numerička kvadratura, traži vrijednost definitnog integrala.[19] Popularne metode koriste jednu od Newton-Cotesovih formula (kao što je pravilo srednje tačke ili Simpsonovo pravilo) ili Gaussovu kvadraturu. Ove metode se oslanjaju na strategiju "zavadi pa vladaj", pri čemu se integral relativno velikog skupa razlaže na integrale manjih skupova. U višim dimenzijama, gdje ove metode postaju pretjerano skupe u smislu računskog napora, mogu se koristiti Monte Carlo ili kvazi-Monte Carlo metode (vidi Monte Carlo integracija[20]) ili u umjereno velikim dimenzijama, metod prorijeđenih mreža.

Diferencijalne jednačine

[uredi | uredi izvor]

  Numerička analiza se također bavi (aproksimativnim) izračunavanjem rješenja diferencijalnih jednačina, kako običnih diferencijalnih jednadžbi, tako i parcijalnih diferencijalnih jednadžbi.[21]

Parcijalne diferencijalne jednačine rješavaju se prvo diskretizacijom jednačine, dovodeći je u konačnodimenzionalni podprostor.[22] Ovo se može učiniti metodom konačnih elemenata,[23][24][25] metodom konačnih razlika[26] ili (posebno u inženjerstvu) metodom konačnih volumena.[27] Teorijsko obrazloženje ovih metoda često uključuje teoreme iz funkcionalne analize. Ovo svodi problem na rješenje algebarske jednačine.

Softver

[uredi | uredi izvor]

Od kasnog dvadesetog stoljeća, većina algoritama je implementirana u različitim programskim jezicima. Netlib spremište sadrži različite kolekcije softverskih rutina za numeričke probleme, uglavnom u Fortranu i C-u. Komercijalni proizvodi koji implementiraju mnogo različitih numeričkih algoritama uključuju IMSL i NAG biblioteke; alternativa u slobodnom softveru je GNU naučna biblioteka.

Tokom godina Kraljevsko statističko društvo objavilo je brojne algoritme u svojoj Primijenjenoj statistici (engleski: Applied Statistics;kod za ove "AS" funkcije se može pronaći ovdje); ACM radi slično u svojim Transakcijama na matematičkom softveru (engleski: Transactions on Mathematical Software; „TOMS“ kod se može pronaći ovdje). Centar za mornaričko površinsko ratovanje je nekoliko puta objavio svoju Biblioteku matematičkih potprograma (kod ovdje).

Postoji nekoliko popularnih aplikacija za numeričko računanje kao što su MATLAB,[28][29][30] TK Solver, S-PLUS i IDL[31], te besplatne i open-source alternative kao što su FreeMat, Scilab,[32][33] GNU Octave (slično Matlabu) i IT++ (C++ biblioteka). Postoje i programski jezici kao što su R[34] (slično S-PLUS), Julia,[35] i Python s bibliotekama kao što su NumPy, SciPy[36][37][38] i SymPy. Performanse se uveliko razlikuju: dok su vektorske i matrične operacije obično brze, skalarne petlje mogu varirati u brzini više od jednog reda veličine.

Mnogi sistemi računarske algebre, kao što je Mathematica, također imaju korist od dostupnosti aritmetike proizvoljne preciznosti koja može pružiti tačnije rezultate.[39][40][41][42]

Također bilo koji softver za proračunske tablice može se koristiti za rješavanje jednostavnih problema koji se odnose na numeričku analizu. Excel, na primjer, ima stotine dostupnih funkcija, uključujući i one za matrice, koje se mogu koristiti zajedno sa njegovim integrisanim "rješavačem".

Reference

[uredi | uredi izvor]
  1. ^ "Photograph, illustration, and description of the root(2) tablet from the Yale Babylonian Collection". Arhivirano s originala, 13. 8. 2012. Pristupljeno 2. 10. 2006.
  2. ^ Demmel, J.W. (1997). Applied numerical linear algebra. SIAM. doi:10.1137/1.9781611971446. ISBN 978-1-61197-144-6.
  3. ^ Ciarlet, P.G.; Miara, B.; Thomas, J.M. (1989). Introduction to numerical linear algebra and optimization. Cambridge University Press. ISBN 9780521327886. OCLC 877155729.
  4. ^ Trefethen, Lloyd; Bau III, David (1997). Numerical Linear Algebra. SIAM. ISBN 978-0-89871-361-9.
  5. ^ a b c Brezinski, C.; Wuytack, L. (2012). Numerical analysis: Historical developments in the 20th century. Elsevier. ISBN 978-0-444-59858-5.
  6. ^ Stephen Blyth. "An Introduction to Quantitative Finance". 2013. page VII.
  7. ^ a b Watson, G.A. (2010). "The history and development of numerical analysis in Scotland: a personal perspective" (PDF). The Birth of Numerical Analysis. World Scientific. str. 161–177. ISBN 9789814469456.
  8. ^ Bultheel, Adhemar; Cools, Ronald, ured. (2010). The Birth of Numerical Analysis. 10. World Scientific. ISBN 978-981-283-625-0.
  9. ^ Saad, Y. (2003). Iterative methods for sparse linear systems. SIAM. ISBN 978-0-89871-534-7.
  10. ^ Hageman, L.A.; Young, D.M. (2012). Applied iterative methods (2nd izd.). Courier Corporation. ISBN 978-0-8284-0312-2.
  11. ^ Traub, J.F. (1982). Iterative methods for the solution of equations (2nd izd.). American Mathematical Society. ISBN 978-0-8284-0312-2.
  12. ^ Greenbaum, A. (1997). Iterative methods for solving linear systems. SIAM. ISBN 978-0-89871-396-1.
  13. ^ a b c Higham 2002
  14. ^ Brezinski, C.; Zaglia, M.R. (2013). Extrapolation methods: theory and practice. Elsevier. ISBN 978-0-08-050622-7.
  15. ^ Hestenes, Magnus R.; Stiefel, Eduard (decembar 1952). "Methods of Conjugate Gradients for Solving Linear Systems" (PDF). Journal of Research of the National Bureau of Standards. 49 (6): 409–. doi:10.6028/jres.049.044.
  16. ^ Ezquerro Fernández, J.A.; Hernández Verón, M.Á. (2017). Newton's method: An updated approach of Kantorovich's theory. Birkhäuser. ISBN 978-3-319-55976-6.
  17. ^ Deuflhard, Peter (2006). Newton Methods for Nonlinear Problems. Affine Invariance and Adaptive Algorithms. Computational Mathematics. 35 (2nd izd.). Springer. ISBN 978-3-540-21099-3.
  18. ^ Ogden, C.J.; Huff, T. (1997). "The Singular Value Decomposition and Its Applications in Image Compression" (PDF). Math 45. College of the Redwoods. Arhivirano s originala (PDF), 25. 9. 2006.
  19. ^ Davis, P.J.; Rabinowitz, P. (2007). Methods of numerical integration. Courier Corporation. ISBN 978-0-486-45339-2.
  20. ^ Geweke, John (1996). "15. Monte carlo simulation and numerical integration". Handbook of Computational Economics. 1. Elsevier. str. 731–800. doi:10.1016/S1574-0021(96)01017-9. ISBN 9780444898579.
  21. ^ Iserles, A. (2009). A first course in the numerical analysis of differential equations (2nd izd.). Cambridge University Press. ISBN 978-0-521-73490-5.
  22. ^ Ames, W.F. (2014). Numerical methods for partial differential equations (3rd izd.). Academic Press. ISBN 978-0-08-057130-0.
  23. ^ Johnson, C. (2012). Numerical solution of partial differential equations by the finite element method. Courier Corporation. ISBN 978-0-486-46900-3.
  24. ^ Brenner, S.; Scott, R. (2013). The mathematical theory of finite element methods (2nd izd.). Springer. ISBN 978-1-4757-3658-8.
  25. ^ Strang, G.; Fix, G.J. (2018) [1973]. An analysis of the finite element method (2nd izd.). Wellesley-Cambridge Press. ISBN 9780980232783. OCLC 1145780513.
  26. ^ Strikwerda, J.C. (2004). Finite difference schemes and partial differential equations (2nd izd.). SIAM. ISBN 978-0-89871-793-8.
  27. ^ LeVeque, Randall (2002). Finite Volume Methods for Hyperbolic Problems. Cambridge University Press. ISBN 978-1-139-43418-8.
  28. ^ Quarteroni, A.; Saleri, F.; Gervasio, P. (2014). Scientific computing with MATLAB and Octave (4th izd.). Springer. ISBN 978-3-642-45367-0.
  29. ^ Gander, W.; Hrebicek, J., ured. (2011). Solving problems in scientific computing using Maple and Matlab®. Springer. ISBN 978-3-642-18873-2.
  30. ^ Barnes, B.; Fulford, G.R. (2011). Mathematical modelling with case studies: a differential equations approach using Maple and MATLAB (2nd izd.). CRC Press. ISBN 978-1-4200-8350-7. OCLC 1058138488.
  31. ^ Gumley, L.E. (2001). Practical IDL programming. Elsevier. ISBN 978-0-08-051444-4.
  32. ^ Bunks, C.; Chancelier, J.P.; Delebecque, F.; Goursat, M.; Nikoukhah, R.; Steer, S. (2012). Engineering and scientific computing with Scilab. Springer. ISBN 978-1-4612-7204-5.
  33. ^ Thanki, R.M.; Kothari, A.M. (2019). Digital image processing using SCILAB. Springer. ISBN 978-3-319-89533-8.
  34. ^ Ihaka, R.; Gentleman, R. (1996). "R: a language for data analysis and graphics" (PDF). Journal of Computational and Graphical Statistics. 5 (3): 299–314. doi:10.1080/10618600.1996.10474713.
  35. ^ Bezanson, Jeff; Edelman, Alan; Karpinski, Stefan; Shah, Viral B. (1. 1. 2017). "Julia: A Fresh Approach to Numerical Computing". SIAM Review. 59 (1): 65–98. doi:10.1137/141000671. ISSN 0036-1445.
  36. ^ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open source scientific tools for Python.
  37. ^ Bressert, E. (2012). SciPy and NumPy: an overview for developers. O'Reilly. ISBN 9781306810395.
  38. ^ Blanco-Silva, F.J. (2013). Learning SciPy for numerical and scientific computing. Packt. ISBN 9781782161639.
  39. ^ Maeder, R.E. (1997). Programming in mathematica (3rd izd.). Addison-Wesley. ISBN 9780201854497. OCLC 1311056676.
  40. ^ Wolfram, Stephen (1999). The MATHEMATICA® book, version 4. Cambridge University Press. ISBN 9781579550042.
  41. ^ Shaw, W.T.; Tigg, J. (1993). Applied Mathematica: getting started, getting it done (PDF). Addison-Wesley. ISBN 978-0-201-54217-2. OCLC 28149048.
  42. ^ Marasco, A.; Romano, A. (2001). Scientific Computing with Mathematica: Mathematical Problems for Ordinary Differential Equations. Springer. ISBN 978-0-8176-4205-1.

Izvori

[uredi | uredi izvor]

Vanjski linkovi

[uredi | uredi izvor]

Časopisi

[uredi | uredi izvor]

Online tekstovi

[uredi | uredi izvor]

Materijali s online kurseva

[uredi | uredi izvor]