Noggrannhetsförlust

Från Wikipedia
(Omdirigerad från Kancellation)
Hoppa till: navigering, sök

Noggrannhetsförlust, eller kancellation, är en typ av beräkningsfel, en noggrannhetsförlust som inträffar då två nästan lika stora tal som har fel subtraheras och kan uppstå på grund av avrundningar eller från fel i indata. Detta beror på att närmevärdet blir litet och att felen i de två talen adderas, man får alltså ett stort relativt fel.

Noggrannhetsförlust kan ske när datorer arbetar med flyttal eftersom tal med för många decimaler måste avrundas och således introducerar fel i talen. För att reducera förlusten av signifikanta siffror beroende på kancellation är det ibland nödvändigt att omformulera beräkningsuttrycken, genom så kallad omskrivning.

Exempel[redigera | redigera wikitext]

När man ska beräkna 1 - \cos(x) för små x så gäller att \cos(x) \approx 1. Dessutom kan inte \cos x beräknas exakt, vilket ger ett fel och alltså kancellation.

Det finns tre typer av omskrivningar för att undvika kancellation, i detta fall kan alla tre appliceras:

  1. Serieutveckling
    1 - \cos(x) = 1 - (1 - {x^2 \over 2!} + {x^4 \over 4!} - ...) = {x^2 \over 2} - {x^4 \over 24}
    Förlängning med konjugatet
    1 - \cos(x) = {(1 - \cos x)(1 + \cos x) \over (1 + \cos x)} = {1 - \cos^2 x \over 1 + \cos x} = {\sin^2 x \over 1 + \cos x}
    Trigonometrisk formel
    1 - \cos(x)  = 2 \sin^2 {x \over 2}

Externa länkar[redigera | redigera wikitext]