Si en un entorno que usa el estándar IEEE Double Precision, se realiza el cálculo $e^{-10}$ mediante el truncamiento de la serie de potencias $$e^x=\displaystyle \sum_{i=0}^{30}\,\dfrac{x^i}{i!} \approx 1+\dfrac{x}{1!}+\dfrac{x^2}{3!}+\dfrac{x^3}{3!}+\ldots+\dfrac{x^{30}}{30!}$$, y el resultado aproximado es $9.703415796025505 \times 10^{-4}$. El error de truncamiento viene dado por $\dfrac{e^\xi}{(n+1)!}$ donde $-10 \prec \xi \prec 0$, y $n=30$, por lo que tomamos el error de dicha aproximación como $E(-10):=\dfrac{1}{31!} \overset{n:=30}{\succ} \dfrac{e^{\xi}}{31!}$.
Ahora bien, el resultado exacto de $e^{-10}$ es igual a $4.539992976248485 \times 10^{-5}$, el error relativo de dicho resultado aproximado es enorme (!): $$\dfrac{|4.539992976248485 \times 10^{-5}-9.703415796025505 \times 10^{-4}|}{4.539992976248485 \times 10^{-5}} \approx 20 = 2\,000\,\% $$ Tal inexactitud se debe a la acumulación de los pequeños errores causados al operar en aritmética finita, los cuales se han magnificado a lo largo del cálculo, por lo que podemos decir que el algoritmo de cálculo que hemos utilizado es muy inestable.
Nota: Tengamos en cuenta que si se calcula $e^{-10}$ de la forma $\dfrac{1}{e^{10}}$, desarrollando en serie de potencias el denominador, se obtiene como resultado $4,539993338712231 \times 10^{-5}$ que es muy próximo al valor exacto $4.539992976248485 \times 10^{-5}$, obteniéndose en ese caso un error relativo
$\dfrac{|4.539992976248485 \times 10^{-5}-4,539993338712231 \times 10^{-5} \times 10^{-4}|}{4.539992976248485 \times 10^{-5}}\approx$
$\approx 8\times 10^{-8}=8\times 10^{-6}\,\%$
En conclusión, la causa de que un procedimiento de cálculo produzca resultados tan imprecisos es debida a la inestabilidad del algoritmo de cálculo ( un error en alguna etapa del cálculo se propaga de manera creciente a las siguientes etapas ). Así que, para evitar tal efecto - los errores debidos a los cálculos en artimética finita de un sistema de cálculo automático son inevitable - es necesario emplear algoritmos estables. $\square$
Mostrando entradas con la etiqueta errores. Mostrar todas las entradas
Mostrando entradas con la etiqueta errores. Mostrar todas las entradas
miércoles, 2 de agosto de 2023
Acerca de los errores de truncamiento empleando representaciones máquina: inestabilidades
Etiquetas:
análisis numérico,
errores,
inestabilidades en los cálculos,
truncamiento
Ejemplo de determinación del error en una representación (máquina) finita
ENUNCIADO.
Si se usa una aritmética con redondeo, en un sistema de representación decimal y de $3$ dígitos de precisión, para realizar la siguiente operación $$\dfrac{a\cdot b-c}{b+2\cdot c}$$ donde $a=1.34$, $b=0.712$, $c=-0.355$, determínese el error cometido en relación a la aritmética real (exacta).
SOLUCIÓN.
Como se usan tres dígitos de precisión ( el número de cifras significativas es $3$ ) tenemos $n:=3$. Por otra parte, como $1 \prec a \prec 2$, el exponente de la potencia en base $10$ (al escribirlo en notación de punto flotante) es $e_a:=1$ ( $1.34=0.13|4\times 10^1$ ); y en cuento a los otros dos: como $0 \prec b \prec 1$, $e_b:=0$ ( $0.712=0.712\times 10^0$ ), y como como $0 \prec |c| \prec 1$, $e_c:=0$ ( $-0.355=-0.355\times 10^0$ ); esto es:
        $a=0.134\times 10^1$, $b=0.712\times 10^0$ y $c=-0.355\times 10^0$
Entonces, los resultados aproximados ( en la aritmética finita o de la máquina ) de las operaciones que componen la operación combinada son:
  $a\cdot b\approx \mathcal{R}(1.34\cdot 0.712)=\mathcal{R}(0.95408)=0.954\times 10^0$
    $a\cdot b-c\approx \mathcal{R}(0.954-(-0.355))=\mathcal{R}(0.1309\times 10^1)=0.131\times 10^1$
      $b+2c\approx \mathcal{R}(0.712+2\cdot (-0.355))=\mathcal{R}(0.002)=0.2\times 10^{-2}$
Por consiguiente,
        $\bar{x}\overset{.}{=}\dfrac{a\cdot b-c}{b+2\cdot c}\approx \mathcal{R}\left(\dfrac{0.131\times 10^1}{0.2\times 10^{-2}}\right)=655=0.655\times 10^3$
Teniendo en cuenta que el resultado exacto e igual $x=654.54=.65454\times 10^3$, el error relativo es $E_{R}\overset{\text{def}}{=}\dfrac{|x-\bar{x}|}{|x|}=\dfrac{|.65454\times 10^3-0.655\times 10^3|}{|.65454\times 10^3|}=0.0007027836 \prec 0.000703 =$ $=0.703\times 10^{-3}=0.703\times 10^{-1}\,\%\sim 0.07\,\%$
Si se usa una aritmética con redondeo, en un sistema de representación decimal y de $3$ dígitos de precisión, para realizar la siguiente operación $$\dfrac{a\cdot b-c}{b+2\cdot c}$$ donde $a=1.34$, $b=0.712$, $c=-0.355$, determínese el error cometido en relación a la aritmética real (exacta).
SOLUCIÓN.
Como se usan tres dígitos de precisión ( el número de cifras significativas es $3$ ) tenemos $n:=3$. Por otra parte, como $1 \prec a \prec 2$, el exponente de la potencia en base $10$ (al escribirlo en notación de punto flotante) es $e_a:=1$ ( $1.34=0.13|4\times 10^1$ ); y en cuento a los otros dos: como $0 \prec b \prec 1$, $e_b:=0$ ( $0.712=0.712\times 10^0$ ), y como como $0 \prec |c| \prec 1$, $e_c:=0$ ( $-0.355=-0.355\times 10^0$ ); esto es:
        $a=0.134\times 10^1$, $b=0.712\times 10^0$ y $c=-0.355\times 10^0$
Entonces, los resultados aproximados ( en la aritmética finita o de la máquina ) de las operaciones que componen la operación combinada son:
  $a\cdot b\approx \mathcal{R}(1.34\cdot 0.712)=\mathcal{R}(0.95408)=0.954\times 10^0$
    $a\cdot b-c\approx \mathcal{R}(0.954-(-0.355))=\mathcal{R}(0.1309\times 10^1)=0.131\times 10^1$
      $b+2c\approx \mathcal{R}(0.712+2\cdot (-0.355))=\mathcal{R}(0.002)=0.2\times 10^{-2}$
Por consiguiente,
        $\bar{x}\overset{.}{=}\dfrac{a\cdot b-c}{b+2\cdot c}\approx \mathcal{R}\left(\dfrac{0.131\times 10^1}{0.2\times 10^{-2}}\right)=655=0.655\times 10^3$
Teniendo en cuenta que el resultado exacto e igual $x=654.54=.65454\times 10^3$, el error relativo es $E_{R}\overset{\text{def}}{=}\dfrac{|x-\bar{x}|}{|x|}=\dfrac{|.65454\times 10^3-0.655\times 10^3|}{|.65454\times 10^3|}=0.0007027836 \prec 0.000703 =$ $=0.703\times 10^{-3}=0.703\times 10^{-1}\,\%\sim 0.07\,\%$
Etiquetas:
errores,
representación finita
Categorías de los errores en el análisis numérico
CATEGORÍAS DE ERRORES EN LOS CÁLCULOS NUMÉRICOS:
1. Errores humanos (elección del método, mala interpretación del mismo, errores en los algoritmos, etcétera)
2. Errores en los datos -> noción de condicionamiento (si un pequeño error en los datos llevar a errores grandes en los resultados, decimos que el problema está mal condicionado)
3. Errores de truncamiento -> noción de convergencia de los métodos numéricos (se deben al truncamiento de series infinitas, por ejemplo)
4. Errores de redondeo -> noción de estabilidad de los métodos numéricos (se deben a la acumulación de los errores de redondeo) Notas:[1]
1. Errores humanos (elección del método, mala interpretación del mismo, errores en los algoritmos, etcétera)
2. Errores en los datos -> noción de condicionamiento (si un pequeño error en los datos llevar a errores grandes en los resultados, decimos que el problema está mal condicionado)
3. Errores de truncamiento -> noción de convergencia de los métodos numéricos (se deben al truncamiento de series infinitas, por ejemplo)
4. Errores de redondeo -> noción de estabilidad de los métodos numéricos (se deben a la acumulación de los errores de redondeo) Notas:[1]
Etiquetas:
análisis numérico,
errores
jueves, 24 de febrero de 2022
Cosas básicas sobre errores en las medidas. Notaciones y tratamiento estadístico
En mi blog de Física, estoy escribiendo un artículito sobre el tratamiento básico del error en la medida de magnitudes físicas. Os invito a echar un vistazo siguiendo este enlace.
Etiquetas:
cálculo numérico,
cota de error absoluto,
cota de error relativo,
error absoluto,
error relativo,
errores,
notación sobre errores
Suscribirse a:
Entradas (Atom)