Rotunjire

Rotunjirea este procesul de ajustare al unui număr la o valoare aproximativă, mai convenabilă, adesea cu o reprezentare mai scurtă sau mai simplă. De exemplu, înlocuirea lui 23,4476 USD cu 23,45 USD, a fracției 312/937 cu 1/3 sau a expresiei cu 1,414.
Rotunjirea se face adesea pentru a obține o valoare mai ușor de reținut și comunicat decât originalul. Rotunjirea poate fi, de asemenea, importantă pentru a evita falsa impresie de precizie a unui număr calculat, a unei măsurători sau a unei estimări; de exemplu, o cantitate care a fost calculată ca 123456, dar despre care se știe că este exactă doar într-o marjă de câteva sute de unități, este de obicei mai bine exprimată prin „aproximativ 123500”.
Pe de altă parte, rotunjirea numerelor exacte va introduce o oarecare eroare de rotunjire în rezultat. Rotunjirea este aproape inevitabilă atunci când se fac multe calcule – în special atunci când se împart două numere în numere întregi sau în virgulă fixă; când se calculează funcții precum rădăcina pătrată, logaritmi și funcții trigonometrice; sau când se utilizează o reprezentare în virgulă mobilă cu un număr fix de cifre semnificative. Într-o secvență de calcule, aceste erori de rotunjire se acumulează, iar în anumite cazuri rău condiționate(d) pot face ca rezultatul să fie lipsit de sens.
Rotunjirea precisă a funcțiilor transcendente este dificilă deoarece numărul de cifre suplimentare care trebuie calculate pentru a decide dacă rotunjirea trebuie să fie în sus sau în jos nu poate fi cunoscut în avans.
Rotunjirea are multe asemănări cu cuantificarea(d) care are loc atunci când mărimile fizice trebuie codificate prin numere sau semnale digitale.
Uneori pentru a indica rotunjirea la numere exacte se folosește simbolul ≈, aproximativ, de exemplu 9,98 ≈ 10. Aceste semn a fost introdus de Alfred George Greenhill în 1892.[1]
Caracteristici ideale ale metodelor de rotunjire:
- Rotunjirea ar trebui făcută printr-o funcție. În acest fel, atunci când aceeași valoare este rotunjită în momente diferite, rezultatul rămâne neschimbat.
- Rezultatul obținut printr-un calcul cu rotunjire ar trebui să fie apropiat de cel efectuat fără rotunjire.
- Ca urmare a (1) și (2), rezultatul rotunjirii ar trebui să fie apropiat de valoarea inițială, adesea cât mai aproape posibil de o anumită metrică.
- Pentru a fi considerată rotunjire, intervalul unei funcții va fi o submulțime a domeniului unei funcții, adesea o mulțime discretă. Un interval clasic este reprezentat de numerele întregi, Z.
- Rotunjirea ar trebui să păstreze simetriile care există deja între domeniu și interval. Cu precizie finită (sau un domeniu discret), aceasta se traduce prin eliminarea biasului(d).
- O metodă de rotunjire ar trebui să fie utilă în informatică sau în aritmetică umană, unde se utilizează precizia finită, iar viteza este un motiv.
Deoarece de obicei nu este posibil ca o metodă să îndeplinească toate caracteristicile ideale, există multe metode diferite de rotunjire.
Ca regulă generală, rotunjirea este idempotentă(d),[2] adică, odată ce un număr a fost rotunjit, rotunjirea lui din nou la aceeași precizie nu îi va schimba valoarea. Funcțiile de rotunjire sunt monotone, adică rotunjirea a două numere la aceeași precizie absolută nu le va schimba ordinea (dar poate da aceeași valoare). În cazul general al unui interval discret, acestea sunt funcții constante pe porțiuni(d).
Tipuri de rotunjiri
[modificare | modificare sursă]Problemele tipice de rotunjire cuprind:
| Problema de rotunjire | Valoare de rotunjit |
Valoare rotunjită | Criteriu de rotunjire |
|---|---|---|---|
| Aproximarea unui număr irațional printr-o fracție rațională | 22/7 | numitor cu o cifră | |
| Aproximarea unui număr rațional printr-o fracție cu numitor mai mic | 399 / 941 | 3 / 7 | numitor cu o cifră |
| Aproximarea unei fracții ordinare printr-o fracție zecimală | 5 / 3 | 1,6667 | cu 4 zecimale |
| Aproximarea unei fracții zecimale cu una cu mai puține zecimale | 2,1784 | 2,18 | cu 2 zecimale |
| Aproximarea unui număr zecimal întreg cu un număr întreg terminat cu zerouri | 23217 | 23200 | cu 3 cifre semnificative |
| Aproximarea unui număr zecimal întreg mare folosind notația științifică | 300999999 | 3,01 × 108 | cu 3 cifre semnificative |
| Aproximarea unei valori cu un multiplu al unei valori date | 48,2 | 45 | multiplu de 15 |
| Aproximarea fiecărui element dintr-o mulțime finită de numere reale printr-un număr întreg astfel încât suma numerelor rotunjite să fie egală cu suma rotunjită a numerelor[a] | {0, 0, 1} | suma elementelor rotunjite este egală cu suma rotunjită a elementelor |
Rotunjirea la întreg
[modificare | modificare sursă]Cea mai elementară formă de rotunjire este înlocuirea unui număr arbitrar cu un număr întreg. Toate modurile de rotunjire care urmează sunt implementări concrete ale unei proceduri abstracte cu un singur argument, round(). Acestea sunt funcții propriu-zise (cu excepția celor care utilizează numere aleatorii).
Rotunjirea direcționată la întreg
[modificare | modificare sursă]Există patru cazuri de rotunjire direcționată la un număr întreg, deoarece deplasările de la numărul original x la valoarea rotunjită y sunt toate direcționate spre sau dinspre aceeași valoare limită (0, +∞ sau −∞). Rotunjirea direcționată este utilizată în aritmetica intervalelor(d) și este adesea necesară în calculele financiare.
Dacă x este pozitiv, rotunjirea în jos este aceeași cu rotunjirea spre zero, iar rotunjirea în sus este aceeași cu rotunjirea dinspre zero. Dacă x este negativ, rotunjirea în jos este aceeași cu rotunjirea dinspre zero, iar rotunjirea în sus este aceeași cu rotunjirea spre zero. În orice caz, dacă x este un număr întreg, y este chiar x.
În cazul în care multe calcule sunt efectuate în secvență, alegerea metodei de rotunjire poate avea un efect semnificativ asupra rezultatului. Un exemplu faimos a fost un nou indice înființat de Bursa de Valori din Vancouver în 1982. Inițial, acesta a fost stabilit la 1000,000 (cu precizia de trei zecimale), iar după 22 de luni a scăzut la aproximativ 520, deși piața părea să fie în creștere. Problema a fost cauzată de recalcularea indicelui de mii de ori pe zi și de trunchierea (rotunjirea spre zero) întotdeauna la 3 zecimale, astfel încât erorile de rotunjire s-au acumulat. Recalcularea indicelui pentru aceeași perioadă folosind rotunjirea la cea mai apropiată miime, în loc de trunchiere, a corectat valoarea indicelui de la 524,811 la 1098,892.[3][4][5][6]
În exemplele de mai jos sgn(x) se referă la funcția semn aplicată numărului original, x.
Rotunjire în jos
[modificare | modificare sursă]Se poate rotunji în jos[7] sau rotunji prin lipsă[8] sau rotunji spre [7]: y este cel mai mare număr întreg care este mai mic decât x.
De exemplu, rotunjirea în jos a lui 23,7 este 23, iar a lui −23,2 este −24.
Rotunjire în sus
[modificare | modificare sursă]Se poate rotunji în sus[7] sau rotunji prin adaos[8] sau rotunji spre [7]: y este cel mai mic număr întreg care este mai mare decât x.
De exemplu, rotunjirea în sus a lui 23,2 este 24, iar a lui −23,7 este −23.
Rotunjire spre zero
[modificare | modificare sursă]Se poate rotunji spre zero[7] sau trunchia[7]: y este partea întreagă a lui x aflată între 0 și x, fără cifrele fracționare.
De exemplu, rotunjirea spre zero a lui 23,7 este 23, iar a lui −23,7 este −23.
Rotunjire spre infinit
[modificare | modificare sursă]Se poate rotunji spre infinit[7] (în direcția opusă rotunjirii spre zero): y este numărul întreg cel mai apropiat de 0 (sau, echivalent, de x) astfel încât x să fie între 0 și y (inclusiv).
De exemplu, rotunjirea spre infinit a lui 23,2 este 24, iar a lui −23,2 este −24.
Rotunjirea la întreg a jumătății
[modificare | modificare sursă]Rotunjiri directe
[modificare | modificare sursă]Dacă partea fracționară nu este de 0,5 , erorile de rotunjire introduse de metoda de rotunjire la cel mai apropiat întreg ar fi simetrice: pentru fiecare fracție rotunjită în jos (cum ar fi 0,268), există o fracție complementară (și anume, 0,732) care este rotunjită în sus cu aceeași valoare. La rotunjirea unei mulțimi mari de numere în virgulă fixă cu părți fracționare distribuite uniform(d), erorile de rotunjire pentru toate valorile, cu excepția celor care au partea fracționară 0,5 , s-ar compensa statistic reciproc. Aceasta înseamnă că valoarea (medie) așteptată(d) a numerelor rotunjite este egală cu valoarea așteptată a numerelor originale atunci când numerele cu partea fracționară 0,5 sunt eliminate din mulțime.
În practică de obicei se folosesc numere în virgulă mobilă, care au și mai multe nuanțe de calcul deoarece nu sunt spațiate egal.
Rotunjirea la cel mai apropiat număr întreg a unui număr x a cărei parte fracționară este exact 0,5 necesită o regulă de departajare suplimentară. Posibilitățile de rotunjire a numerelor cu partea fracționară exact 0,5 sunt:
- Rotunjirea în sus:
- De exemplu, rotunjirea în sus a lui 23,5 este 24, iar a lui −23,5 este −23.
- Rotunjirea în jos:
- De exemplu, rotunjirea în jos a lui 23,5 este 23, iar a lui −23,5 este −24.
- Decizia pentru rotunjirea în sus sau în jos necesită testarea unui singur bit.
- Rotunjirea spre zero:
- De exemplu, rotunjirea spre zero a lui 23,5 este 23, iar a lui −23,5 este −23.
- Rotunjirea spre infinit:
- De exemplu, rotunjirea spre infinit a lui 23,5 este 24, iar a lui −23,5 este −24.
Aceste metode pot introduce abateri mari în cazul unui număr mare de rotunjiri ale jumătății, care, la rândul lor, apar des la împărțirea cu 2 a numerelor întregi impare.
Rotunjirea jumătății la număr par
[modificare | modificare sursă]Se poate rotunji jumătatea la numărul întreg par, o regulă de departajare fără tendință pozitivă/negativă și fără tendință spre/depărtare de zero. Conform acestei convenții, dacă partea fracțională a lui x este 0,5 , atunci y este numărul întreg par cel mai apropiat de x. Astfel, de exemplu, 23,5 devine 24, la fel ca și 24,5 , respectiv −23,5 devine −24, la fel ca și −24,5. Această funcție minimizează eroarea așteptată la însumarea cifrelor rotunjite, indiferent dacă valorile inițiale sunt majoritar pozitive sau majoritar negative, cu condiția ca acestea să nu fie nici majoritar pare, nici majoritar impare.[9] Este folosită în aplicații bancare.[10][11]
Acesta este modul de rotunjire implicit utilizat în operațiile IEEE 754 pentru rezultatele în formate binare cu virgulă mobilă.
Rotunjirea jumătății la număr impar
[modificare | modificare sursă]Similar, se poate rotunji jumătatea la numărul întreg impar. Conform acestei convenții, dacă partea fracțională a lui x este 0,5 , atunci y este numărul întreg impar cel mai apropiat de x. Astfel, de exemplu, 23,5 devine 23, la fel ca și 22,5 , respectiv −23,5 devine −23, la fel ca și −22,5.
Această metodă este, de asemenea, lipsită de tendințe pozitive/negative și de tendințe spre/depărtare de zero, cu condiția ca numerele care urmează să fie rotunjite să nu fie nici în mare parte pare, nici în mare parte impare. De asemenea, are proprietatea de a distorsiona distribuția originală de la rotunjire de la jumătate la par, deoarece crește probabilitatea numerelor impare în raport cu cele pare. A fost metoda utilizată pentru soldurile bancare din Regatul Unit când a trecut la moneda zecimală.[12]
Rotunjirea alternativă a jumătății
[modificare | modificare sursă]O metodă, mai puțin cunoscută este de a alterna direcția rotunjirii atunci când se rotunjește un număr cu o parte fracționară de 0,5. Toate celelalte sunt rotunjite la cel mai apropiat număr întreg. Ori de câte ori partea fracționară este 0,5, se alternează rotunjirea în sus, respectiv în jos: pentru prima apariție a unei părți fracționare de 0,5, se rotunjește în sus, pentru a doua apariție, se rotunjește în jos și așa mai departe. Prima rotunjire a unei părți fracționare de 0,5 poate fi aleatorie.
Dacă părți fracționare de 0,5 apar semnificativ mai des decât o repornire a „numărării” aparițiilor, atunci metoda este practic fără erori. Cu o eroare zero garantată, este utilă dacă numerele trebuie însumate sau mediate.
Rotunjirea aleatorie a jumătății
[modificare | modificare sursă]Dacă partea fracționară a lui x este 0,5 , se alege y aleatoriu între x + 0,5 și x − 0,5 , cu probabilitate egală. Toate celelalte sunt rotunjite la cel mai apropiat număr întreg.
La fel ca rotunjirile jumătății la număr par, respectiv impar, această regulă este în esență lipsită de orice influență generală și este corectă între valorile y pare și impare. Un avantaj față de metoda alternativă este că ultima direcție de rotunjire a jumătății nu trebuie memorată (dar e nevoie de generarea deciziei aleatorii, care poate consuma mai multe resurse ca simpla memorare).
Note explicative
[modificare | modificare sursă]- ↑ Un caz în care rotunjirea dublă duce întotdeauna la aceeași valoare ca și rotunjirea directă la precizia finală este atunci când baza este impară. Exemple când acest lucru este necesar: [1] pentru reprezentarea proporțională a locurilor pe liste de partid, implementată, de exemplu, prin metoda celei mai mari părți rămase, v. matematica repartizării(d) și [2] pentru distribuirea TVA-ului total al unei facturi pe articolele sale
Note
[modificare | modificare sursă]- ↑ en Isaiah Lankham, Bruno Nachtergaele, Anne Schilling: Linear Algebra as an Introduction to Abstract Mathematics. World Scientific, Singapur 2016, ISBN: 978-981-4730-35-8, p. 186
- ↑ en Kulisch, Ulrich W. (iulie 1977). „Mathematical foundation of computer arithmetic”. IEEE Transactions on Computers. C–26 (7): 610–621. Bibcode:1977ITCmp.100..610K. doi:10.1109/TC.1977.1674893.
- ↑ en Higham, Nicholas John (). Accuracy and stability of numerical algorithms
(ed. 2nd). p. 54. doi:10.1137/1.9780898718027.ch2. ISBN 978-0-89871-521-7. - ↑ en Nievergelt, Yves (). „Rounding Errors to Knock Your Stocks Off”. Mathematics Magazine. 73 (1): 47–48. doi:10.1080/0025570X.2000.11996800. JSTOR 2691491.
- ↑ en Quinn, Kevin (). „Ever had problems rounding off figures? This stock exchange has” (PDF). Wall Street Journal.
- ↑ en Lilley, Wayne (). „Vancouver stock index has right number at last” (PDF). The Toronto Star.
- 1 2 3 4 5 6 7 Baruch, Zoltan Francisc (). „2. Unitatea aritmetică și logică” (PDF). curs, p. 51. Universitatea Tehnică din Cluj-Napoca. Accesat în .
- 1 2 Perianu, Marius; Smărăndoiu, Ștefan; Stănică, Cătălin (). „I”. Matematică: Clasa a V-a (PDF). București: Art Klett. p. 14. ISBN 978-606-076848-7. Accesat în .
- ↑ en Engineering Drafting Standards Manual (NASA), X-673-64-1F, p90
- ↑ en Abbs, Brian; Barker, Chris; Freebairn, Ingrid (). Postcards 4 Language Booster: Workbook with Grammar Builder. Pearson Education. p. 85. ISBN 0-13-093904-8.
Rounding to the nearest even number is also called 'bankers rounding' because the banks use this technique as well.
- ↑ en Microsoft Pascal Compiler for the MS-DOS Operating System User's Guide. Microsoft Corporation. . p. 165.
Bankers' rounding is used when truncating real numbers that end with .5; that is, odd numbers are rounded up to an even integer, even numbers are rounded down to an even integer.
- ↑ en Schedule 1 of the Decimal Currency Act 1969
Legături externe
[modificare | modificare sursă]- en Eric W. Weisstein, Rotunjire la MathWorld.
- en An introduction to different rounding algorithms that is accessible to a general audience but especially useful to those studying computer science and electronics.