juni 22, 2017

Numerieke precisie in Microsoft Excel

Excel gebruikt 15 cijfers voor getallen, maar die zijn niet altijd accuraat: de onderste regel zou hetzelfde moeten zijn als de bovenste regel.

800px-excel_fifteen_figure

Ondanks het gebruik van een 15-cijferige nauwkeurigheid kan Excel op verzoek van de gebruiker veel meer cijfers (tot wel dertig) weergegeven. Maar de weergegeven cijfers worden niet daadwerkelijk in berekeningen gebruikt, en dus kan bijvoorbeeld het verschil tussen twee getallen afwijken van het verschil van de weergegeven waarden. Hoewel dergelijke afwijkingen zich meestal buiten de 15e decimaal bevinden, komen er uitzonderingen voor, met name voor zeer grote of zeer kleine getallen. Er kunnen ernstige fouten optreden als beslissingen worden genomen op basis van het geautomatiseerd vergelijking van getallen (bijvoorbeeld met behulp van de Excel functie IF), omdat de gelijkheid van twee getallen onvoorspelbaar kan zijn.

In de figuur wordt de breuk 1/9000 in Excel weergegeven. Hoewel dit getal een decimale weergave heeft die uit een oneindige reeks enen bestaat, geeft Excel alleen de eerste 15 cijfers weer. In de tweede regel wordt het getal 1 bij de breuk opgeteld, en opnieuw toont Excel slechts 15 cijfers. Op de derde regel wordt in Excel 1 afgetrokken van de som. Omdat het getal in de tweede regel slechts elf enen na de komma heeft, is het verschil wanneer 1 wordt afgetrokken van deze weergegeven waarde drie nullen, gevolgd door een reeks van elf enen. Het door Excel in de derde regel weergegeven verschil is echter drie nullen, gevolgd door een reeks van dertien enen en twee extra incorrecte cijfers. Dat komt doordat Excel met ongeveer een half cijfer meer rekent dan dat het weergeeft.

Excel werkt met een aangepaste 1985-versie van de IEEE 754 specificatie. De implementatie van Excel omvat conversies in tussen binaire en decimale weergaven, wat leidt tot een nauwkeurigheid die gemiddeld beter is dan men zou verwachten van een eenvoudige 15-cijferige nauwkeurigheid, maar het kan nog erger. Zie het hoofdartikel voor meer informatie.

Behalve nauwkeurigheid in berekeningen van gebruikers, kan de vraag over nauwkeurigheid in Excel-functies worden gesteld. Vooral op het gebied van statistische functies wordt Excel bekritiseerd vanwege het opofferen van nauwkeurigheid ten gunste van rekensnelheid.

Omdat veel berekeningen in Excel worden uitgevoerd met behulp van VBA, is de nauwkeurigheid van VBA een extra probleem, dat afhankelijk is van het type variabele en de door de gebruiker gevraagde nauwkeurigheid.

Content autodetectie

In 2004 meldden wetenschappers automatische (en ongewilde) omzetting van gen-nomenclaturen naar gegevens. Een vervolgstudie in 2016 ontdekte dat vele, via peer-review gecontroleerde wetenschappelijk vakbladen waren getroffen en “Van de gekozen vakbladen is het aandeel aan gepubliceerde artikelen met Excel-bestanden met genlijsten die door fouten in gennamen zijn getroffen 19,6%”. Excel ontleedt de gekopieerde en geplakte gegevens en past ze soms aan, afhankelijk van wat het denkt dat het is. Bijvoorbeeld wordt de menselijke proteïne MARCH1 (Membrane Associated Ring-CH-type finger 1) omgezet naar de datum 1 maart (1-Mar) en SEPT2 (Septin 2) wordt omgezet naar 2 september (2-Sept) enz. Terwijl sommige secundaire nieuwsbronnen dit meldden alsof het een fout met Excel betrof, legden de oorspronkelijke auteurs van het rapport uit 2016 de schuld bij de onderzoekers, omdat ze Excel verkeerd gebruikten.

Meer lezen over Microsoft Excel? Klik hier voor hoofdstuk 5hoofdstuk 7 of hier om terug te keren naar de homepagina van onze FlorijnWiki-pagina’s.

WhatsApp Ons whatsapp