Numerička analiza – razlika između verzija

Izvor: Wikipedija
Prijeđi na navigaciju Prijeđi na pretragu
Uklonjeni sadržaj Dodani sadržaj
Red 100: Red 100:


== Generacija i propagacija grešaka ==
== Generacija i propagacija grešaka ==
Izučavanje grešaka sačinjava važan deo numeričke analize. Postoji nekoliko načina na koji se može uneti greška u rešenje problema.
The study of errors forms an important part of numerical analysis. There are several ways in which error can be introduced in the solution of the problem.


=== Zaokruživanje ===
=== Zaokruživanje ===


[[Greška zaokruživanja|Greške zaokruživanja]] nastaju zato što je nemoguće precizno predstaviti sve [[realni broj|realne brojeve]] na mašini sa konačnom memorijom (što je slučaj sa praktično svim [[računar|digitalnim računarima]]).
[[Round-off error]]s arise because it is impossible to represent all [[real number]]s exactly on a machine with finite memory (which is what all practical [[digital computer]]s are).


=== Skraćivanje i greške diskretizacije ===
=== Skraćivanje i greške diskretizacije ===


Greške [[Skraćivanje|skraćivanja]] nastaju kad se iterativni metod završi ili kad se matematička procedura aproksimira, i približno rešenje se razlikuje od tačnog rešenja. Slično tome, diskretizacija unosi [[Greška diskretizacije|grešku diskretizacije]] zato što se rešenje diskretnog problema ne poklapa sa rešenjem kontinualnog problema. Na primer, u iteraciji prikazanoj na desnoj strani da bi se izračunalo rešenje jednačine <math>''3x^3+4=28''</math>, nakon 10 ili više iteracija, zaključuje se (na primer) da je koren oko 1,99. Stoga imamo grešku skraćivanja od 0,01.
[[Truncation]] errors are committed when an iterative method is terminated or a mathematical procedure is approximated, and the approximate solution differs from the exact solution. Similarly, discretization induces a [[discretization error]] because the solution of the discrete problem does not coincide with the solution of the continuous problem. For instance, in the iteration in the sidebar to compute the solution of <math>''3x^3+4=28''</math>, after 10 or so iterations, we conclude that the root is roughly 1.99 (for example). We therefore have a truncation error of 0.01.


Nakon generisanja greške, ona se generalno uvećava tokom proračuna. Na primer, već smo napomenuli da operacija + na kalkulatoru (ili računaru) nije precizna. Iz toga sledi da je sabiranje tipa a+b+c+d+e još nepreciznije.
Once an error is generated, it will generally propagate through the calculation. For instance, we have already noted that the operation + on a calculator (or a computer) is inexact. It follows that a calculation of the type a+b+c+d+e is even more inexact.


Gore je pomenuto da dolazi do greške skraćivanja, kad se aproksimira matematička procedura. Poznato je da je za preciznu integraciju funkcije neophodno naći zbir beskonačno velikog broja trapezoida. U praksi se međutim može odrediti jedino zbir konačnog broja trapezoida, i stoga dolazi do aproksimacije matematičke procedure. Slično tome, da bi se diferencirala funkcija, diferencijalni element treba da teži nuli, dok je numerički moguće jedino izabrati konačnu vrednost diferencijalnog elementa.
What does it mean when we say that the truncation error is created when we approximate a mathematical procedure? We know that to integrate a function exactly requires one to find the sum of infinite trapezoids. But numerically one can find the sum of only finite trapezoids, and hence the approximation of the mathematical procedure. Similarly, to differentiate a function, the differential element approaches to zero but numerically we can only choose a finite value of the differential element.


=== Numerička stabilnost i dobro postulirani problemi ===
=== Numerička stabilnost i dobro postulirani problemi ===


[[Numerička stabilnost]] je važan pojam u numeričkoj analizi. Algoritam se smatra ''numerički stabilnim'' ako se greška, nezavisno od izvora, znatno ne uvećava tokom proračuna. Do toga dolazi ako je problem ''stabilan'', što znači da se rešenje malo menja sa malom promenom ulaznih podataka. U kontrastu s tim, ako je problem ''nestabilan'', onda svaka mala greška u ulaznim podacima narasta u veliku grešku u rešenju.
[[Numerical stability]] is an important notion in numerical analysis. An algorithm is called ''numerically stable'' if an error, whatever its cause, does not grow to be much larger during the calculation. This happens if the problem is ''[[condition number|well-conditioned]]'', meaning that the solution changes by only a small amount if the problem data are changed by a small amount. To the contrary, if a problem is ''ill-conditioned'', then any small error in the data will grow to be a large error.


Originalni problem i algoritam koji se koriste za rešavanje problema mogu da budu ''stabilni'' i/ili ''nestabilni'', ili bilo koja kombinacija. Stoga algoritam koji rešava stabilni problem može da bude bilo numerički stabilan ili numerički nestabilan. Umetnost numeričke analize je da se nađe stabilan algoritam za rešavanje dobro postavljenog matematičkog problema. Na primer, izračunavanje kvadratnog korena iz 2 (koji je oko 1,41421) je stabilan problem. Mnogi algoritmi rešavaju taj problem počevši od inicijalne aproksimacije ''x''<sub>1</sub> od <math>\sqrt{2}</math>, na primer ''x''<sub>1</sub>=1,4, i zatim izračunavaju poboljšanje pretpostavke ''x''<sub>2</sub>, ''x''<sub>3</sub>, etc.. Jedan takav metod je poznati [[Metode izračunavanja kvadratnih korena|Vavilonski metod]], koji je dat sa ''x''<sub>''k''+1</sub> = ''x<sub>k</sub>''/2 + 1/''x<sub>k</sub>''. Još jedan iterativni pristup, koji ćemo zvati Metod X, je dat sa ''x''<sub>''k'' + 1</sub> = (''x''<sub>''k''</sub><sup>2</sup>&minus;2)<sup>2</sup> + ''x''<sub>''k''</sub>.<ref>This is a [[fixed point iteration]] for the equation <math>x=(x^2-2)^2+x=f(x)</math>, whose solutions include <math>\sqrt{2}</math>. The iterates always move to the right since <math>f(x)\geq x</math>. Hence <math>x_1=1.4<\sqrt{2}</math> converges and <math>x_1=1.42>\sqrt{2}</math> diverges.</ref> Izračunali smo nekoliko iteracija ovog algoritma u donjoj tabeli, sa inicijalnim pretpostavkama ''x''<sub>1</sub> = 1,4 i ''x''<sub>1</sub> = 1,42.
Both the original problem and the algorithm used to solve that problem can be ''well-conditioned'' and/or ''ill-conditioned'', and any combination is possible.

So an algorithm that solves a well-conditioned problem may be either numerically stable or numerically unstable. An art of numerical analysis is to find a stable algorithm for solving a well-posed mathematical problem. For instance, computing the square root of 2 (which is roughly 1.41421) is a well-posed problem. Many algorithms solve this problem by starting with an initial approximation ''x''<sub>1</sub> to <math>\sqrt{2}</math>, for instance ''x''<sub>1</sub>=1.4, and then computing improved guesses ''x''<sub>2</sub>, ''x''<sub>3</sub>, etc.. One such method is the famous [[Babylonian method]], which is given by ''x''<sub>''k''+1</sub> = ''x<sub>k</sub>''/2 + 1/''x<sub>k</sub>''. Another iteration, which we will call Method X, is given by ''x''<sub>''k'' + 1</sub> = (''x''<sub>''k''</sub><sup>2</sup>&minus;2)<sup>2</sup> + ''x''<sub>''k''</sub>.<ref>This is a [[fixed point iteration]] for the equation <math>x=(x^2-2)^2+x=f(x)</math>, whose solutions include <math>\sqrt{2}</math>. The iterates always move to the right since <math>f(x)\geq x</math>. Hence <math>x_1=1.4<\sqrt{2}</math> converges and <math>x_1=1.42>\sqrt{2}</math> diverges.</ref> We have calculated a few iterations of each scheme in table form below, with initial guesses ''x''<sub>1</sub> = 1.4 and ''x''<sub>1</sub> = 1.42.


{| class="wikitable"
{| class="wikitable"
|-
|-
! Vavilonski metod
! Babylonian
! Vavilonski metod
! Babylonian
! Method X
! Metod X
! Method X
! Metod X
|-
|-
| ''x''<sub>1</sub> = 1.4
| ''x''<sub>1</sub> = 1.4
Red 155: Red 153:
|}
|}


Može se uočiti da Vaviloniski metod brzo konvergira nezavisno od inicijalne pretpostavke, dok Metod X konvergira ekstremno sporo sa inicijalnom pretpostavkom od 1,4 i divergira počevši od inicijalne pretpostavke 1,42. Stoga je Vavilonski metod numerički stabilan, dok je Metod X numerički nestabilan.
Observe that the Babylonian method converges fast regardless of the initial guess, whereas Method X converges extremely slowly with initial guess 1.4 and diverges for initial guess 1.42. Hence, the Babylonian method is numerically stable, while Method X is numerically unstable.
:'''Numerička stabilnost''' je zavisna od broja značajnih cifara koje data mašina podržava, ako se koristi mašina koja radi sa prve četiri cifre pokretnog zareza dolazi do znatnog gubitka preciznosti
:'''Numerical stability''' is affected by the number of the significant digits the machine keeps on, if we use a machine that keeps on the first four floating-point digits, a good example on loss of significance is given by these two equivalent functions
:<math>
:<math>
f(x)=x\left(\sqrt{x+1}-\sqrt{x}\right)
f(x)=x\left(\sqrt{x+1}-\sqrt{x}\right)
\text{ and } g(x)=\frac{x}{\sqrt{x+1}+\sqrt{x}}.
\text{ and } g(x)=\frac{x}{\sqrt{x+1}+\sqrt{x}}.
</math>
</math>
:Ako se uporede rezultati od
:If we compare the results of
:: <math> f(500)=500 \left(\sqrt{501}-\sqrt{500} \right)=500 \left(22.3830-22.3607 \right)=500(0.0223)=11.1500</math>
:: <math> f(500)=500 \left(\sqrt{501}-\sqrt{500} \right)=500 \left(22.3830-22.3607 \right)=500(0.0223)=11.1500</math>
:and
:i
:<math>
:<math>
\begin{alignat}{3}g(500)&=\frac{500}{\sqrt{501}+\sqrt{500}}\\
\begin{alignat}{3}g(500)&=\frac{500}{\sqrt{501}+\sqrt{500}}\\
Red 170: Red 168:
\end{alignat}
\end{alignat}
</math>
</math>
: uočava se da '''[[gubitak značaja]]''', koji se takođe naziva '''poništavanja oduzimanjem''', ima ogromni efekat na rezultate, mada su funkcije ekvivalentne; da bi se pokazalo da su ekvivalentne jednostavno se polazi od f(x) i završava sa g(x), tako da je
: by looking to the two results above, we realize that '''[[loss of significance]]''' which is also called '''Subtractive Cancelation''' has a huge effect on the results, even though both functions are equivalent; to show that they are equivalent simply we need to start by f(x) and end with g(x), and so
:: <math> \begin{alignat}{4}
:: <math> \begin{alignat}{4}
f(x)&=x \left(\sqrt{x+1}-\sqrt{x} \right)\\
f(x)&=x \left(\sqrt{x+1}-\sqrt{x} \right)\\
Red 180: Red 178:
\end{alignat}</math>
\end{alignat}</math>


:The true value for the result is 11.174755..., which is exactly ''g''(500) = 11.1748 after rounding the result to 4 decimal digits.
:Istinska vrednost rezultata je 11,174755..., što je tačno ''g''(500) = 11,1748 nakon zaokruživanja rezultata na 4 decimalna mesta.
:Now imagine that lots of terms like these functions are used in the program; the error will increase as one proceeds in the program, unless one uses the suitable formula of the two functions each time one evaluates either ''f''(''x''), or ''g''(''x''); the choice is dependent on the parity of&nbsp;''x''.
:Sad zamislimo da se koristi mnoštvo članova kao što su ove funkcije u programu; greške će se uvećavati tokom rada programa, osim ako se koristi podesna formula za ove dve funkcije svaki put kad se izračunavaju ''f''(''x''), ili ''g''(''x''); izbor je zavistan od pariteta &nbsp;''x''.
*The example is taken from Mathew; Numerical methods using matlab, 3rd ed.
*Primer je uzet iz: Mathew; Numerical methods using matlab, 3rd ed.


== Oblasti izučavanja ==
== Oblasti izučavanja ==

Verzija na datum 16 juni 2015 u 12:22

Vavilonska glinena pločica (c. 1800–1600 p.n.e.) sa anotacijama. Aproksimacija kvadratnog korena iz 2 sa četiri šezdesetne cifre, koje su oko šest decimalnih cifara. 1 + 24/60 + 51/602 + 10/603 = 1.41421296...[1]

Numerička analiza je grana numeričke matematike koja se bavi pronalaženjem i unapređivanjem algoritama za numeričko izračunavanje vrijednosti vezanih uz matematičku analizu, poput numeričkog integriranja, numeričkog deriviranja i numeričkog rješavanja diferencijalnih jednadžbi. Sastavni dio numeričke analize je i ocjenjivanje grešaka metoda (algoritama) i to na dvije razine -- analiza grešaka same metode, te analiza grešaka koje nastaju izvrednjavanjem, a vezane su uz arhitekturu računala [2].

Potrebe za numeričkim rješavanjem matematičkih problema su višestruke. Kod nekih problema, dokazano je da analitičko rješenje (rješenje zapisano pomoću elementarnih funkcija) ne postoji -- primjerice rješenje integrala nemoguće je zapisati pomoću elementarnih funkcija. Pa ipak, određeni integral predstavlja konkretnu, jedinstveno određenu površinu. Do te vrijednosti, koja ima široku upotrebu npr. u statistici, moguće je doći samo numeričkim metodama. Osim toga, numeričke metode često se koriste za određivanje rješenja matematičkih problema koji bi zbog svoje veličine, kroz standardni postupak rješavanja, predugo trajali -- primjerice, kada je potrebno riješiti sustav od 10 000 jednadžbi s 10 000 nepoznanica. I konačno, numeričke metode su nezaobilazne u aproksimativnom računu, kada se aproksimacijama (i ocjenama pripadnih grešaka) zamjenjuje stvarna vrijednost funkcije do koje je nemoguće ili preteško doći. To su metode poput metode konačnih elemenata ili pak kubičnih splineova kojima se aproksimira ponašanje nepoznate funkcije o kojoj znamo tek konačan broj vrijednosti, najčešće dobijenih mjerenjima.

Opšti uvod

Sveukupni cilj polja numeričke analize je razvoj i analiza tehnika koje daju aproksimativna ali precizna rešenja teških problema. Njihova raznovrstnost je sumirana sledećim pregledom:

  • Napredni numerički metodi su esencijalni u omogućavanju numeričkih metereoloških predviđanja.
  • Proračunavanje putanje svemirske letilice se vrši putem numeričkog rešavanja sistema običnih diferencijalnih jednačina.
  • Automobilske kompanije mogu da poprave bezbednost vozila koristeće računarske simulacije automobilskih udesa. Takve simulacije se esencijalno sastoje od numeričkog rešavanja parcijalnih diferencijalnih jednačina.
  • Hedž fondovi (privatni investicioni fondovi) koriste oruđa iz svih polja numeričke analize u proračunima vrednosti akcija i derivata.
  • Aviokompanije koriste sofisticirane optimizacione algoritme u određivanju ceni karti, raspodele aviona i posade, i potrebe za gorivom. Istorijski, takvi algoritmi su razvijeni u okviru preklapajućeg polja operacionih istraživanja.
  • Družtva za osiguranje koriste numeričke programe za aktuarne analize.

Ostatak ove sekcije razmatra nekoliko važnih tema numeričke analize.

Istorija

Polje numeričke analize prethodi razvoju modernih računara za par milenijuma. Linearna interpolacija je bila u upotrebi pre više od 2000 godina. Mnogi veliki matematičari su se bavili numeričkom analizom, kao što sledi iz imena važnih algoritama, kao što su Njutnov metod, Lagranžov interpolacioni polinom, Gausova eliminacija, ili Ojlerov method.

Da bi se omogućili ručni proračuni, proizvedene su velike knjige sa formulama i tabelama podataka kao što su interpolacione tačke i koeficijenti funkcija. Koristeći te tabele, koje su često računate sa 16 decimalnih mesta ili više za pojedine funkcije, mogle su se naći vrednosti za uključivanje u formule i tim putem su se mogle ostvariti veoma dobre numeričke procene nekih funkcija. Kanonički rad u polju je NIST publikacija koji su uredili Abramowitz and Stegun. To je knjiga sa više od 1000 strana, u kojoj je obrađen veoma veliki broj ćesto korišćenih formula i funkcija i njihove vrednosti u mnogim tačkama. Štampane vrednosti funkcija više nisu od velike koristi jer su dostupni računari, mada su veliki spiskovi formula još uvek podesni za upotrebu.

Mehanički računar je razvijen kao oruđe za ručno računanje. Ti kalkulatori su evoluirali u elektronske računare tokom 1940-tih, i nakon toga je uočeno da su takvi računari isto tako korisni za administrativne svrhe. Izum računara je takođe uticao na polje numeričke analize, pošto su se sad mogli vršiti duži i kompkovaniji proračuni.

Direktni i iterativni metodi

Direktni vs iterativni metodi

Razmotrimo problem rešavanja

3x3 + 4 = 28

za nepoznatu promenljivu x.

Direktni metod
3x3 + 4 = 28.
Oduzmi 4 3x3 = 24.
Podeli sa 3 x3 = 8.
Uradi kubni koren x = 2.

Za iterativni metod, primeni bisekcioni metod na f(x) = 3x3 − 24. Inicijalne vrednosti su a = 0, b = 3, f(a) = −24, f(b) = 57.

Iterativni metod
a b mid f(mid)
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 zaključujemo da je rešenje između 1,875 i 2,0625. Algoritam može da vrati bilo koji broj u tom opsegu sa greškom manjom od 0,2.

Diskretizacija i numerička integracija

Tokom dvočasovne trke smo izmerili brzinu kola tri puta, i zapisali smo merenja u sledećoj tabeli.

Vreme 0:20 1:00 1:40
km/h 140 150 180

Diskretizacija bi bila da se kaže da je brzina kola bila konstantna od 0:00 do 0:40, zatim od 0:40 do 1:20 i konačno od 1:20 do 2:00. Na primer, totalno rastojanje pređeno u prvih 40 minuta je aproksimativno (2/3h &puta; 140 km/h) = 93.3 km. To bi nam omogučilo da procenimo totalno pređeno rastojanje kao 93.3 km + 100 km + 120 km = 313.3 km, što je primer numeričke integracije (vidite ispod) koristeći Rimanovu sumu, pošto je rastojanje integral brzine.

Nestabilan problem: Uzmimo funkciju f(x) = 1/(x − 1). Uočimo da f(1,1) = 10 i f(1,001) = 1000: promena x od manje od 0,1 odgovara promeni f(x) od skoro 1000. Evaluacija f(x) u blizini x = 1 je nestabilni problem.

Stabilan problem: U kontrastu s tim evaluacija iste funkcije f(x) = 1/(x − 1) u blizini x = 10 je stabilan problem. Na primer, f(10) = 1/9 ≈ 0,111 i f(11) = 0,1: skromna promena x dovodi do skromne promene f(x).

Direktni metodi računaju rešenja problema u konačnom broju koraka. Ti metodi bi dali precizan odgovor, kad bi se izvodili aritmetikom beskonačne preciznosti. Primeri obuhvataju Gausovu eliminaciju, metod QR faktorizacije za rešavanje sistema linearnih jednačina, i simpleks metod linearnog programiranja. U praksi se koristi konačna preciznost i rezultat je aproksimacija istinskog rešenja (podrazumevajući stabilnost).

U kontrastu sa direktnim metodima, od iterativnih metoda se ne očekuje da završe u konačnom broju koraka. Počevši od inicijalne pretpostavke, iterativni metodi formiraju sukcesivne aproksimacije koje konvergiraju do preciznog rešenja jedino u limitu. Test konvergencije, koji obično obuhvata ostatak, se specificira da bi se odredilo kad je dovoljno precizno rešenje nađeno. Čak kad bi se koristila i aritmetika beskonačne preciznosti ovi metodi (generalno) ne bi dostigli rešenje u konačnom broju koraka. Primeri obuhvataju Njutnov metod, bisekcioni metod, i Jakobijevu iteraciju. U računarskoj matričnoj algebri, iterativni metodi su generalno neophodni za velike probleme.

Iterativni metodi se češće sreću od direktnih u numeričkoj analizi. Neki metodi su direktni u principu, ali se obično koriste kao da nisu, e.g. GMRES i metod konjugovanog gradijenta. Za te metode broj koraka koji su neophodni da bi dobilo precizno rešenje je toliko veliki da se aproksimacija prihvata u istom maniru kao kod iterativnog metoda.

Diskretizacija

Kontinualni problemi se ponekad moraju zameniti diskretnim problemima čije rešenje je poznato da bi se aproksimiralo rešenje kontinualnog problema; taj proces se naziva diskretizacijom. Na primer, rešenje diferencijalne jednačine je funkcija. Ta funkcija se mora zameniti konačnom količinom podataka, na primer njenom vrednošću u konačnom broju tačaka njenog domena, mada je taj domen kontinuum.

Generacija i propagacija grešaka

Izučavanje grešaka sačinjava važan deo numeričke analize. Postoji nekoliko načina na koji se može uneti greška u rešenje problema.

Zaokruživanje

Greške zaokruživanja nastaju zato što je nemoguće precizno predstaviti sve realne brojeve na mašini sa konačnom memorijom (što je slučaj sa praktično svim digitalnim računarima).

Skraćivanje i greške diskretizacije

Greške skraćivanja nastaju kad se iterativni metod završi ili kad se matematička procedura aproksimira, i približno rešenje se razlikuje od tačnog rešenja. Slično tome, diskretizacija unosi grešku diskretizacije zato što se rešenje diskretnog problema ne poklapa sa rešenjem kontinualnog problema. Na primer, u iteraciji prikazanoj na desnoj strani da bi se izračunalo rešenje jednačine , nakon 10 ili više iteracija, zaključuje se (na primer) da je koren oko 1,99. Stoga imamo grešku skraćivanja od 0,01.

Nakon generisanja greške, ona se generalno uvećava tokom proračuna. Na primer, već smo napomenuli da operacija + na kalkulatoru (ili računaru) nije precizna. Iz toga sledi da je sabiranje tipa a+b+c+d+e još nepreciznije.

Gore je pomenuto da dolazi do greške skraćivanja, kad se aproksimira matematička procedura. Poznato je da je za preciznu integraciju funkcije neophodno naći zbir beskonačno velikog broja trapezoida. U praksi se međutim može odrediti jedino zbir konačnog broja trapezoida, i stoga dolazi do aproksimacije matematičke procedure. Slično tome, da bi se diferencirala funkcija, diferencijalni element treba da teži nuli, dok je numerički moguće jedino izabrati konačnu vrednost diferencijalnog elementa.

Numerička stabilnost i dobro postulirani problemi

Numerička stabilnost je važan pojam u numeričkoj analizi. Algoritam se smatra numerički stabilnim ako se greška, nezavisno od izvora, znatno ne uvećava tokom proračuna. Do toga dolazi ako je problem stabilan, što znači da se rešenje malo menja sa malom promenom ulaznih podataka. U kontrastu s tim, ako je problem nestabilan, onda svaka mala greška u ulaznim podacima narasta u veliku grešku u rešenju.

Originalni problem i algoritam koji se koriste za rešavanje problema mogu da budu stabilni i/ili nestabilni, ili bilo koja kombinacija. Stoga algoritam koji rešava stabilni problem može da bude bilo numerički stabilan ili numerički nestabilan. Umetnost numeričke analize je da se nađe stabilan algoritam za rešavanje dobro postavljenog matematičkog problema. Na primer, izračunavanje kvadratnog korena iz 2 (koji je oko 1,41421) je stabilan problem. Mnogi algoritmi rešavaju taj problem počevši od inicijalne aproksimacije x1 od , na primer x1=1,4, i zatim izračunavaju poboljšanje pretpostavke x2, x3, etc.. Jedan takav metod je poznati Vavilonski metod, koji je dat sa xk+1 = xk/2 + 1/xk. Još jedan iterativni pristup, koji ćemo zvati Metod X, je dat sa xk + 1 = (xk2−2)2 + xk.[3] Izračunali smo nekoliko iteracija ovog algoritma u donjoj tabeli, sa inicijalnim pretpostavkama x1 = 1,4 i x1 = 1,42.

Vavilonski metod Vavilonski metod Metod X Metod X
x1 = 1.4 x1 = 1.42 x1 = 1.4 x1 = 1.42
x2 = 1.4142857... x2 = 1.41422535... x2 = 1.4016 x2 = 1.42026896
x3 = 1.414213564... x3 = 1.41421356242... x3 = 1.4028614... x3 = 1.42056...
... ...
x1000000 = 1.41421... x28 = 7280.2284...

Može se uočiti da Vaviloniski metod brzo konvergira nezavisno od inicijalne pretpostavke, dok Metod X konvergira ekstremno sporo sa inicijalnom pretpostavkom od 1,4 i divergira počevši od inicijalne pretpostavke 1,42. Stoga je Vavilonski metod numerički stabilan, dok je Metod X numerički nestabilan.

Numerička stabilnost je zavisna od broja značajnih cifara koje data mašina podržava, ako se koristi mašina koja radi sa prve četiri cifre pokretnog zareza dolazi do znatnog gubitka preciznosti
Ako se uporede rezultati od
i
uočava se da gubitak značaja, koji se takođe naziva poništavanja oduzimanjem, ima ogromni efekat na rezultate, mada su funkcije ekvivalentne; da bi se pokazalo da su ekvivalentne jednostavno se polazi od f(x) i završava sa g(x), tako da je
Istinska vrednost rezultata je 11,174755..., što je tačno g(500) = 11,1748 nakon zaokruživanja rezultata na 4 decimalna mesta.
Sad zamislimo da se koristi mnoštvo članova kao što su ove funkcije u programu; greške će se uvećavati tokom rada programa, osim ako se koristi podesna formula za ove dve funkcije svaki put kad se izračunavaju f(x), ili g(x); izbor je zavistan od pariteta  x.
  • Primer je uzet iz: Mathew; Numerical methods using matlab, 3rd ed.

Oblasti izučavanja

The field of numerical analysis includes many sub-disciplines. Some of the major ones are:

Izračunavanje vrednosti funkcija

Interpolation: We have observed the temperature to vary from 20 degrees Celsius at 1:00 to 14 degrees at 3:00. A linear interpolation of this data would conclude that it was 17 degrees at 2:00 and 18.5 degrees at 1:30pm.

Extrapolation: If the gross domestic product of a country has been growing an average of 5% per year and was 100 billion dollars last year, we might extrapolate that it will be 105 billion dollars this year.

A line through 20 points
A line through 20 points

Regression: In linear regression, given n points, we compute a line that passes as close as possible to those n points.

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

Optimization: Say you sell lemonade at a lemonade stand, and notice that at $1, you can sell 197 glasses of lemonade per day, and that for each increase of $0.01, you will sell one glass of lemonade less per day. If you could charge $1.485, you would maximize your profit, but due to the constraint of having to charge a whole cent amount, charging $1.48 or $1.49 per glass will both yield the maximum income of $220.52 per day.

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

Differential equation: If you set up 100 fans to blow air from one end of the room to the other and then you drop a feather into the wind, what happens? The feather will follow the air currents, which may be very complex. One approximation is to measure the speed at which the air is blowing near the feather every second, and advance the simulated feather as if it were moving in a straight line at that same speed for one second, before measuring the wind speed again. This is called the Euler method for solving an ordinary differential equation.

One of the simplest problems is the evaluation of a function at a given point. The most straightforward approach, of just plugging in the number in the formula is sometimes not very efficient. For polynomials, a better approach is using the Horner scheme, since it reduces the necessary number of multiplications and additions. Generally, it is important to estimate and control round-off errors arising from the use of floating point arithmetic.

Interpolacija, ekstrapolacija, i regresija

Interpolation solves the following problem: given the value of some unknown function at a number of points, what value does that function have at some other point between the given points?

Extrapolation is very similar to interpolation, except that now we want to find the value of the unknown function at a point which is outside the given points.

Regression is also similar, but it takes into account that the data is imprecise. Given some points, and a measurement of the value of some function at these points (with an error), we want to determine the unknown function. The least squares-method is one popular way to achieve this.

Rešavanje jednačina i sistema jednačina

Another fundamental problem is computing the solution of some given equation. Two cases are commonly distinguished, depending on whether the equation is linear or not. For instance, the equation is linear while is not.

Much effort has been put in the development of methods for solving systems of linear equations. Standard direct methods, i.e., methods that use some matrix decomposition are Gaussian elimination, LU decomposition, Cholesky decomposition for symmetric (or hermitian) and positive-definite matrix, and QR decomposition for non-square matrices. Iterative methods such as the Jacobi method, Gauss–Seidel method, successive over-relaxation and conjugate gradient method are usually preferred for large systems. General iterative methods can be developed using a matrix splitting.

Root-finding algorithms are used to solve nonlinear equations (they are so named since a root of a function is an argument for which the function yields zero). If the function is differentiable and the derivative is known, then Newton's method is a popular choice. Linearization is another technique for solving nonlinear equations.

Rešavanje svojstvene vrednositi ili singularne vrednosti problema

Several important problems can be phrased in terms of eigenvalue decompositions or singular value decompositions. For instance, the spectral image compression algorithm[4] is based on the singular value decomposition. The corresponding tool in statistics is called principal component analysis.

Optimizacija

Optimization problems ask for the point at which a given function is maximized (or minimized). Often, the point also has to satisfy some constraints.

The field of optimization is further split in several subfields, depending on the form of the objective function and the constraint. For instance, linear programming deals with the case that both the objective function and the constraints are linear. A famous method in linear programming is the simplex method.

The method of Lagrange multipliers can be used to reduce optimization problems with constraints to unconstrained optimization problems.

Diferencijalne jednačine

Numerička analiza se isto tako bavi izračunavanjem (na aproksimativan način) rešenja diferencijalnih jednačina, običnih diferencijalnih jednačina i parcijalnih diferencijalnih jednačina.

Partial differential equations are solved by first discretizing the equation, bringing it into a finite-dimensional subspace. This can be done by a finite element method, a finite difference method, or (particularly in engineering) a finite volume method. The theoretical justification of these methods often involves theorems from functional analysis. This reduces the problem to the solution of an algebraic equation.

Softver

Since the late twentieth century, most algorithms are implemented in a variety of programming languages. The Netlib repository contains various collections of software routines for numerical problems, mostly in Fortran and C. Commercial products implementing many different numerical algorithms include the IMSL and NAG libraries; a free alternative is the GNU Scientific Library.

There are several popular numerical computing applications such as MATLAB, TK Solver, S-PLUS, LabVIEW, and IDL as well as free and open source alternatives such as FreeMat, Scilab, GNU Octave (similar to Matlab), IT++ (a C++ library), R (similar to S-PLUS) and certain variants of Python. Performance varies widely: while vector and matrix operations are usually fast, scalar loops may vary in speed by more than an order of magnitude.[5][6]

Many computer algebra systems such as Mathematica also benefit from the availability of arbitrary precision arithmetic which can provide more accurate results.

Also, any spreadsheet software can be used to solve simple problems relating to numerical analysis.

Numeričko integriranje

Glavni članak: Numerička integracija
Površina ispod funkcije f(x) (označene plavom) aproksimira se površinom trapeza ispod po dijelovima linearne aproksimacije (označene crvenom).

Numerical integration, in some instances also known as numerical quadrature, asks for the value of a definite integral. Popular methods use one of the Newton–Cotes formulas (like the midpoint rule or Simpson's rule) or Gaussian quadrature. These methods rely on a "divide and conquer" strategy, whereby an integral on a relatively large set is broken down into integrals on smaller sets. In higher dimensions, where these methods become prohibitively expensive in terms of computational effort, one may use Monte Carlo or quasi-Monte Carlo methods (see Monte Carlo integration), or, in modestly large dimensions, the method of sparse grids.

Jedan od najčešćih problema s kojima se susrećemo u numeričkoj analizi je računanje vrijednosti određenog integrala .

Dvije osnovne metode numeričke integracije su proširena trapezna formula i proširena Simpsonova formula[7].

Kod proširene trapezne formule, interval integracije [a,b] podijeli se u n podintervala uz slijedeću oznaku: a=x0<x1<...<xn=b. U svim se točkama razdiobe izračunaju vrijednosti podintegralne funkcije yi=f(xi), te se nad svakim podintegralom formira trapez spajanjem točaka Ti(xi,yi) i Ti+1(xi+1,yi+1). Tim se trapezom, čija je površina jednaka Pi=(xi+1-xi)(yi+yi+1)/2, aproksimira stvarna površina ispod funkcije f(x) na tom intervalu. Uz uobičajen postupak ekvidistantne razdiobe, tj razdiobe intervala na n jednakih podintervala (kod kojeg je xi+1-xi=(b-a)/n ), te zbrajanjem površina trapeza konstruiranih nad svim intervalima razdiobe dobijamo trapeznu formulu:

Ocjena greške ove numeričke aproksimacije dana je s:

Površina ispod funkcije f(x) (označene plavom) aproksimira se površinom ispod parabole koja interpolira funkciju u tri zadane točke (označene crvenom).

Proširena Simpsonova formula, kao i trapezna formula počinje razdiobom intervala [a,b] na n, ne nužno, jednakih podintervala. No ovoga puta se na svaka dva podintervala, odnosno kroz točke Ti-1(xi-1,yi-1), Ti(xi,yi) i Ti+1(xi+1,yi+1) povlači jedinstveno određena kvadratna funkcija (parabola). Zbog toga kod provođenja Simpsonove formule imamo dodatni zahtjev da je broj podintervala n paran. Računanjem površina ispod tako kontruiranih parabola, te njihovim zbrajanjem dobijamo proširenu Simpsonovu formulu:

Ocjena greške proširene Simpsonove formule dana je izrazom:

Kako u pravilu parabola bolje aprokisimira nasumične funkcije od pravca, Simpsonova formula u pravilu daje točniji rezultat od trapezne formule.

Numeričko rješavanje diferencijalnih jednadžbi

U numeričku analizu spadaju i metode kojima se traži numeričko aproksimativno rješenje "Cauchyjevog problema"; diferencijalne jednadžbe s zadanim početnim uvjetom. Razvijene su metode za numeričko rješavanje običnih, ali i parcijalnih diferencijalnih jednadžbi. Dvije osnovne metode su Eulerova metoda, i familija Runge-Kutta metoda.

Vidite još

Izvori

  1. Photograph, illustration, and description of the root(2) tablet from the Yale Babylonian Collection
  2. http://web.math.pmf.unizg.hr/~rogina/2001096/num_anal.pdf Pristupljeno: 20. rujna 2013.
  3. This is a fixed point iteration for the equation , whose solutions include . The iterates always move to the right since . Hence converges and diverges.
  4. The Singular Value Decomposition and Its Applications in Image Compression
  5. Speed comparison of various number crunching packages
  6. Comparison of mathematical programs for data analysis Stefan Steinhaus, ScientificWeb.com
  7. http://web.math.pmf.unizg.hr/~rogina/2001096/num_anal.pdf str. 478, pristupljeno: 20. rujna 2013.

Literatura

  • Golub, Gene H. and Charles F. Van Loan (1986). Matrix Computations, Third Edition (Johns Hopkins University Press, ISBN 0-8018-5413-X). 
  • Higham, Nicholas J. (1996). Accuracy and Stability of Numerical Algorithms (Society for Industrial and Applied Mathematics, ISBN 0-89871-355-2). 
  • Hildebrand, F. B. (1974). Introduction to Numerical Analysis (2nd edition izd.). McGraw-Hill. ISBN 0-07-028761-9. 
  • Leader, Jeffery J. (2004). Numerical Analysis and Scientific Computation. Addison Wesley. ISBN 0-201-73499-0. 
  • Wilkinson, J.H. (1965). The Algebraic Eigenvalue Problem (Clarendon Press). 
  • Kahan, W. (1972). "A survey of error-analysis," in Info. Processing 71 (Proc. IFIP Congress 71 in Ljubljana), vol. 2, pp. 1214–39, North-Holland Publishing, Amsterdam.  (examples of the importance of accurate arithmetic).
  • Lloyd N. Trefethen (2006). "Numerical analysis", 20 pages. In: Timothy Gowers and June Barrow-Green (editors), Princeton Companion of Mathematics, Princeton University Press.

Vanjske veze