Fel

För andra betydelser, se Fel (olika betydelser).

Fel, inom numerisk analys, anger differensen mellan ett värde och dess närmevärde. Fel spelar en stor roll inom kaosteori (icke-linjära ekvationer) där små variationer kan ge totalt olika resultat. Men det är även en central fråga när beräkningar ska utföras på datorer. Fel kan bero på flera olika saker.

En del inledande definitioner i ämnet. Om vi har

  • ett exakt värde: a = 2 = 1 , 4142135623 {\displaystyle a={\sqrt {2}}=1,\!4142135623\ldots }
  • och ett närmevärde: a ¯ = 1 , 414 {\displaystyle {\bar {a}}=1,\!414}

så kan vi definiera följande två begrepp:

  • absolut fel i närmevärdet: Δ a = a ¯ a = 0 , 0002135623 | Δ a | < 0 , 0005 {\displaystyle \Delta a={\bar {a}}-a=-0,\!0002135623\ldots \qquad |\Delta a|<0,\!0005}
  • relativt fel i närmevärdet: Δ a a Δ a a ¯ = 0 , 0002135623 1 , 414 | Δ a | | a | 0 , 0005 1 , 414 < 0 , 0004 {\displaystyle {\Delta a \over a}\approx {\Delta a \over {\bar {a}}}={-0,\!0002135623\ldots \over 1,\!414}\qquad {|\Delta a| \over |a|}\lesssim {0,\!0005 \over 1,\!414}<0,\!0004}

Anledningen att vi tar beloppet av vissa värden här ovanför är att vi oftast bara är intresserade av felets belopp. Om det gäller för beloppet av det absoluta felet att | Δ a | 0 , 5 10 t {\displaystyle |\Delta a|\leq 0,5*10^{-t}} så säger man att närmevärdet a ¯ {\displaystyle {\bar {a}}} har t {\displaystyle t} st korrekta decimaler. Heltalssiffrorna (förutom inledande nollor) och de korrekta decimalerna kallas signifikanta siffror.

Felkällor

Fel i ett resultat kan komma från flera olika källor på grund av olika sorters approximationer. Den första approximationen som görs är oftast i den matematiska modellen, det vill säga att ett problem förenklas och idealiseras. Till exempel att man bortser från energiförluster, luftmotstånd och andra påverkningar.

Uppmätta värden är oftast inte exakta på grund av att mätinstrumenten har en ändlig precision. Det kan också vara så att felet kommer från tidigare beräkningar, från trunkering/diskretisering, det vill säga att man hugger av eller delar upp en oändlig serie, eller från avrundningar.

Bilden illustrerar hur feltyperna kommer in i beräkning av en integral:
   R T   {\displaystyle R_{T}\ } pga metoden

   R X X   {\displaystyle R_{XX}\ } från fel i gränsen

   R X F   {\displaystyle R_{XF}\ } från fel i funktionsvärdena

R B   {\displaystyle R_{B}\ } från avrundning av resultatet.

När man sedan ska göra beräkningar brukar man prata om tre typer av fel:

  1. R X {\displaystyle R_{X}} - Fel i indata är ofta oundvikliga och kan delas in i två undertyper:
    1. R X F {\displaystyle R_{XF}} - Fel som uppstår på grund av fel i använda funktionsvärden
    2. R X X {\displaystyle R_{XX}} - Fel som uppstår på grund av andra fel i indata
  2. R T {\displaystyle R_{T}} - Trunkeringsfel uppstår på grund av en använd approximativ metod, till exempel att en oändlig summa huggs av och ersätts med en ändlig
  3. R B {\displaystyle R_{B}} - Avrundningsfel uppstår då man räknar med ett ändligt antal siffror

Beloppet av det totala felet i ett värde blir | R T O T | | R X X | + | R X F | + | R T | + | R B |   {\displaystyle |R_{TOT}|\leq |R_{XX}|+|R_{XF}|+|R_{T}|+|R_{B}|\ }

Avrundningsfel

Om n = 2 , 1212 ± 0 , 2 {\displaystyle n=2,1212\pm 0,2} så är det onödigt att närmevärdet har fyra decimaler eftersom felet kan vara så stort som 0,2. Då kan vi välja att avrunda närmevärdet till 1 decimal. Vårt nya n blir således n 1 = 2 , 1 {\displaystyle n_{1}=2,1} och vi får ett avrundningsfel | R B | = | n 1 n ¯ | = 0 , 0212 < 0 , 03 {\displaystyle |R_{B}|=|n_{1}-{\bar {n}}|=0,0212<0,03} . För att skriva ut vårt nya n måste vi lägga till avrundningsfelet till den ursprungliga felgränsen så att n = 2 , 1 ± 0 , 23 {\displaystyle n=2,1\pm 0,23} .

Felet vid avrundning är alltid maximalt 0 , 5 10 t {\displaystyle 0,5*10^{-t}} , där t är antalet decimaler efter avrundningen.

Felfortplantning av fel i indata

Om man har tal behäftade med fel, dvs närmevärden, och utför aritmetiska beräkningar på dem blir naturligtvis även svaret behäftat med fel. Den största möjliga storleken på felet kan beräknas med några olika metoder.

  • För addition och subtraktion: det absoluta felet är summan av de absoluta felen i indata.
  • För multiplikation och division: det relativa felet är summan av de relativa felen i indata.

Addition:

y 1 = x 1 + x 2   {\displaystyle y_{1}=x_{1}+x_{2}\ } där Δ x 1 = x ¯ 1 x 1 o c h Δ x 2 = x ¯ 2 x 2 {\displaystyle \Delta x_{1}={\bar {x}}_{1}-x_{1}och\Delta x_{2}={\bar {x}}_{2}-x_{2}} ger

Δ y 1 = y ¯ 1 y 1 = x ¯ 1 + x ¯ 2 ( x 1 + x 2 ) = Δ x 1 + Δ x 2 {\displaystyle \Delta y_{1}={\bar {y}}_{1}-y_{1}={\bar {x}}_{1}+{\bar {x}}_{2}-(x_{1}+x_{2})=\Delta x_{1}+\Delta x_{2}}

Δ y 1 = Δ x 1 + Δ x 2 | Δ y 1 | | Δ x 1 | + | Δ x 2 | {\displaystyle \Delta y_{1}=\Delta x_{1}+\Delta x_{2}\Rightarrow |\Delta y_{1}|\leq |\Delta x_{1}|+|\Delta x_{2}|}

Subtraktion:

y 2 = x 1 x 2   {\displaystyle y_{2}=x_{1}-x_{2}\ }

Δ y 2 = Δ x 1 Δ x 2 | Δ y 2 | | Δ x 1 | + | Δ x 2 | {\displaystyle \Delta y_{2}=\Delta x_{1}-\Delta x_{2}\Rightarrow |\Delta y_{2}|\leq |\Delta x_{1}|+|\Delta x_{2}|}

Särskilt för subtraktion innebär detta att det relativa felet kan bli obegränsat stort om man subtraherar två tal som är ungefär lika stora (till exempel 100±2 - 100±2 = 0±4 vilket skulle ge det relativa felet 4/0). Detta fenomen kallas kancellation. Kancellation kan ibland minskas genom omskrivningar.

Funktion

En mer generellt tillämpbar metod är linearisering som går att applicera på en deriverbar funktion f av en eller flera variabler. Man tar då bara med förstagradstermerna i funktionens Taylorutveckling. Detta ger felfortplantningsformeln:

Δ f f ( x ¯ , y ¯ ) x Δ x + f ( x ¯ , y ¯ ) y Δ y {\displaystyle \Delta f\approx {\partial f({\bar {x}},{\bar {y}}) \over \partial x}\Delta x+{\partial f({\bar {x}},{\bar {y}}) \over \partial y}\Delta y}

Och eftersom vi är intresserade av beloppet på felet kan vi skriva upp en generell maximalfelsuppskattning:

| Δ f | k = 1 n | f x k Δ x k | {\displaystyle |\Delta f|\lesssim \sum _{k=1}^{n}|{\partial f \over \partial x_{k}}\Delta x_{k}|}

Lagring av tal i datorer

De flesta datorer arbetar med en fix informationslängd på tal, ett så kallat ord. Heltal kan lagras exakt i en dator, förutsatt att de inte är för stora, men reella tal kan få fel då de konverteras till basen 2, eller vid avkortningsfel på grund av att datorn jobbar med en fix ordlängd.

Ett reellt tal x lagras i en dator som ett flyttal i normaliserad flytande representation:

x = m β e x p   {\displaystyle x=m*\beta ^{exp}\ } där 1 | m | < β , {\displaystyle 1\leq |m|<\beta ,} β = 2 {\displaystyle \beta =2} (för dator) β = 10 {\displaystyle \beta =10} (för räknedosa)

Totalt fel

Antag att funktionen f(x) beskriver ett fenomen exakt. Om f ^ {\displaystyle {\hat {f}}} är närmevärdet till f {\displaystyle f} (approximationen f ^ {\displaystyle {\hat {f}}} på det verkliga f {\displaystyle f} ) och x ^ {\displaystyle {\hat {x}}} är närmevärdet till x {\displaystyle x} (mätvärde x ^ {\displaystyle {\hat {x}}} till det verkliga värdet x {\displaystyle x} ) kommer totala felet att uppgå till

totalt fel = f ^ ( x ^ ) f ( x ) . {\displaystyle {\mbox{totalt fel}}={\hat {f}}({\hat {x}})-f(x).}

Ovanstående kan även uttryckas med

f ^ ( x ^ ) f ( x ) = [ f ^ ( x ^ ) f ( x ^ ) ] + [ f ( x ^ ) f ( x ) ] , {\displaystyle {\hat {f}}({\hat {x}})-f(x)=[{\hat {f}}({\hat {x}})-f({\hat {x}})]+[f({\hat {x}})-f(x)],}

där

e b = f ^ ( x ^ ) f ( x ^ ) {\displaystyle e_{b}={\hat {f}}({\hat {x}})-f({\hat {x}})}

respektive

e d = f ( x ^ ) f ( x ) {\displaystyle e_{d}=f({\hat {x}})-f(x)}

är beräkningsfel och datafel.

(en. computational error respektive propagated data error.)

Beräkningsfelet är det fel som uppstår då datorer eller miniräknare evaluerar värdet. Datafel är det fel som uppstår som en följd av instrumentets fel och det exakta värdet.

Felmått

Fel kan mätas med två metoder: absolut fel och relativt fel.

Om y {\displaystyle y} är ett reellt tal och y ^ {\displaystyle {\hat {y}}} är dess närmevärde, definieras:

  • absolutfelet i y ^ {\displaystyle {\hat {y}}} som Δ y = y ^ y {\displaystyle \Delta {y}={\hat {y}}-y} samt
  • relativa felet i y ^ {\displaystyle {\hat {y}}} som δ y = Δ y y = y ^ y y {\displaystyle \delta {y}={\frac {\Delta {y}}{y}}={\frac {{\hat {y}}-y}{y}}} om y 0 {\displaystyle y\neq 0}

Relationen mellan absolutfel och relativt fel kan uttryckas med

y ^ = y ( 1 + δ y ) {\displaystyle {\hat {y}}=y\cdot (1+\delta {y})}

(men oftast finns inte det exakta värdet y att utgå från.)

För det mesta används ett mått på det absoluta eller relativa felet i värsta fall. Om ett värde anges till x ^ {\displaystyle {\hat {x}}} och det absoluta felet till Δ x {\displaystyle \Delta {x}} så ligger alltså det verkliga värdet x {\displaystyle x} någonstans mellan x ^ Δ x {\displaystyle {\hat {x}}-\Delta {x}} och x ^ + Δ x {\displaystyle {\hat {x}}+\Delta {x}} .

Källor

  • Lars Eldén och Linde Wittmeyer-Koch (2009). Numeriska beräkningar -- analys och illustrationer med MATLAB (4:7)