Articulo de referencia

aritmética de intervalos

Función de tolerancia ( turquesa ) y aproximación con valores de intervalo ( rojo ). La aritmética de intervalos (también conocida como matemáticas de intervalos , análisis de i...

Función de tolerancia ( turquesa ) y aproximación con valores de intervalo ( rojo ).

La aritmética de intervalos (también conocida como matemáticas de intervalos , análisis de intervalos o cálculo de intervalos ) es una técnica matemática que se utiliza para mitigar los errores de redondeo y medición en los cálculos matemáticos mediante el cálculo de límites de funciones . Los métodos numéricos que emplean la aritmética de intervalos pueden garantizar resultados relativamente fiables y matemáticamente correctos. En lugar de representar un valor como un solo número, la aritmética de intervalos o las matemáticas de intervalos representan cada valor como un rango de posibilidades .

Matemáticamente, en lugar de trabajar con una variable real incierta x , la aritmética de intervalos trabaja con un intervalo [ a , b ] que define el rango de valores que puede tener x . En otras palabras, cualquier valor de la variable x se encuentra en el intervalo cerrado entre a y b . Una función f , cuando se aplica a x , produce un intervalo [ c , d ] que incluye todos los valores posibles de f ( x ) para todo x ∈ [ a , b ] .

La aritmética de intervalos es adecuada para diversos fines; su uso más común se da en trabajos científicos, especialmente cuando los cálculos se realizan mediante software, donde se utiliza para controlar los errores de redondeo y las incertidumbres en el conocimiento de los valores exactos de los parámetros físicos y técnicos. Estas últimas suelen deberse a errores de medición y tolerancias de los componentes, o a limitaciones en la precisión computacional. La aritmética de intervalos también ayuda a encontrar soluciones garantizadas para ecuaciones (como ecuaciones diferenciales ) y problemas de optimización .

Introducción

El objetivo principal de la aritmética de intervalos es proporcionar una forma sencilla de calcular los límites superior e inferior del rango de una función en una o más variables. Estos extremos no son necesariamente el supremo o el ínfimo exactos del rango, ya que el cálculo preciso de dichos valores puede ser difícil o imposible; los límites solo necesitan contener el rango de la función como un subconjunto.

Este tratamiento se limita normalmente a intervalos reales, por lo que las cantidades en la forma

[a,b]={incógnitaRaincógnitab},{\displaystyle [a,b]=\{x\in \mathbb {R} \mid a\leq x\leq b\},}

donde se permiten a = −∞ y b = ∞ . Si uno de a o b es infinito, el intervalo sería ilimitado; si ambos son infinitos, el intervalo sería la recta real extendida. Dado que un número real r puede interpretarse como el intervalo [ r , r ] , los intervalos y los números reales pueden combinarse libremente.

Ejemplo

Índice de masa corporal para una persona de 1,80  m de altura en relación con su peso corporal ( en kilogramos).

Consideremos el cálculo del índice de masa corporal (IMC) de una persona. El IMC se calcula dividiendo el peso corporal en kilogramos entre el cuadrado de la altura en metros. Supongamos que una persona utiliza una báscula con una precisión de un kilogramo, donde no se pueden distinguir los valores intermedios y el peso real se redondea al número entero más cercano. Por ejemplo, 79,6  kg y 80,3  kg son indistinguibles, ya que la báscula solo puede mostrar valores al kilogramo más cercano. Es improbable que cuando la báscula marca 80  kg, la persona pese exactamente 80,0  kg. Por lo tanto, la báscula que muestra 80  kg indica un peso entre 79,5  kg y 80,5  kg, o el intervalo [ 79,5, 80,5) .

El IMC de un hombre que pesa 80  kg y mide 1,80  m es aproximadamente 24,7. Un peso de 79,5  kg y la misma altura dan como resultado un IMC de 24,537, mientras que un peso de 80,5  kg da como resultado 24,846. Dado que la masa corporal es continua y siempre aumenta para todos los valores dentro del intervalo de peso especificado, el IMC real debe estar dentro del intervalo [ 24,537, 24,846 ] . Como todo el intervalo es menor que 25, que es el límite entre el peso normal y el excesivo, se puede concluir con certeza que el hombre tiene un peso normal.

El error en este ejemplo no afecta la conclusión (peso normal), pero esto no es una regla general. Si el hombre pesara un poco más, el rango del IMC podría incluir el valor límite de 25. En tal caso, la precisión de la báscula sería insuficiente para llegar a una conclusión definitiva.

El rango de ejemplos de IMC podría reportarse como [ 24.5, 24.9 ], ya que este intervalo es un superconjunto del intervalo calculado. Sin embargo, el rango no podría reportarse como [ 24.6, 24.8 ] , puesto que dicho intervalo no contiene valores posibles de IMC.

Múltiples intervalos

Índice de masa corporal para diferentes pesos en relación con la altura L (en metros)

La altura y el peso corporal afectan el valor del IMC. Aunque el ejemplo anterior solo consideró la variación del peso, la altura también está sujeta a incertidumbre. Las mediciones de altura en metros generalmente se redondean al centímetro más cercano: una medición registrada de 1,79 metros representa una altura en el intervalo [ 1,785, 1,795) . Dado que el IMC aumenta uniformemente con respecto al peso y disminuye con respecto a la altura, el intervalo de error se puede calcular sustituyendo los valores mínimo y máximo de cada intervalo y luego seleccionando los resultados mínimo y máximo como límites. Por lo tanto, el IMC debe existir en el intervalo

[79.5,80.5)[1.785,1.795)2[24.673,25.266].{\displaystyle {\frac {[79.5,80.5)}{[1.785,1.795)^{2}}}\subseteq [24.673,25.266].}

En este caso, el hombre podría tener un peso normal o sobrepeso; las mediciones de peso y altura no fueron lo suficientemente precisas como para llegar a una conclusión definitiva.

Operadores de intervalo

Una operación binaria sobre dos intervalos, como la suma o la multiplicación, se define por

[incógnita1,incógnita2][y1,y2]={incógnitay|incógnita[incógnita1,incógnita2]y[y1,y2]}.{\displaystyle [x_{1},x_{2}]{\,\star \,}[y_{1},y_{2}]=\{x\star y\,|\,x\in [x_{1},x_{2}]\,\land \,y\in [y_{1},y_{2}]\}.}

En otras palabras, es el conjunto de todos los valores posibles de xy , donde x e y están en sus intervalos correspondientes. Si es monótono para cada operando en los intervalos, lo cual ocurre con las cuatro operaciones aritméticas básicas (excepto la división cuando el denominador contiene cero), los valores extremos se producen en los extremos de los intervalos de los operandos. Escribiendo todas las combinaciones, una forma de expresar esto es

[incógnita1,incógnita2][y1,y2]=[min{incógnita1y1,incógnita1y2,incógnita2y1,incógnita2y2},máximo{incógnita1y1,incógnita1y2,incógnita2y1,incógnita2y2}],{\displaystyle [x_{1},x_{2}]\star [y_{1},y_{2}]=\left[\min\{x_{1}\star y_{1},x_{1}\star y_{2},x_{2}\star y_{1},x_{2}\star y_{2}\},\max\{x_{1}\star y_{1},x_{1}\star y_{2},x_{2}\star y_{1},x_{2}\star y_{2}\}\right],}

siempre que xy esté definido para todo x[ x 1 , x 2 ] e y[ y 1 , y 2 ] .

Para aplicaciones prácticas, esto se puede simplificar aún más:

  • Suma :[incógnita1,incógnita2]+[y1,y2]=[incógnita1+y1,incógnita2+y2]{\displaystyle [x_{1},x_{2}]+[y_{1},y_{2}]=[x_{1}+y_{1},x_{2}+y_{2}]}
  • Resta :[incógnita1,incógnita2][y1,y2]=[incógnita1y2,incógnita2y1]{\displaystyle [x_{1},x_{2}]-[y_{1},y_{2}]=[x_{1}-y_{2},x_{2}-y_{1}]}
  • Multiplicación :[incógnita1,incógnita2][y1,y2]=[min{incógnita1y1,incógnita1y2,incógnita2y1,incógnita2y2},máximo{incógnita1y1,incógnita1y2,incógnita2y1,incógnita2y2}]{\displaystyle [x_{1},x_{2}]\cdot [y_{1},y_{2}]=[\min\{x_{1}y_{1},x_{1}y_{2},x_{2}y_{1},x_{2}y_{2}\},\max\{x_{1}y_{1},x_{1}y_{2},x_{2}y_{1},x_{2}y_{2}\}]}
  • División :[incógnita1,incógnita2][y1,y2]=[incógnita1,incógnita2]1[y1,y2],{\displaystyle {\frac {[x_{1},x_{2}]}{[y_{1},y_{2}]}}=[x_{1},x_{2}]\cdot {\frac {1}{[y_{1},y_{2}]}},}dónde1[y1,y2]=[1y2,1y1]si0[y1,y2]1[y1,0]=[,1y1]1[0,y2]=[1y2,]1[y1,y2]=[,1y1][1y2,][,]si0(y1,y2){\displaystyle {\begin{aligned}{\frac {1}{[y_{1},y_{2}]}}&=\left[{\frac {1}{y_{2}}},{\frac {1}{y_{1}}}\right]&&{\textrm {if}}\;0\notin [y_{1},y_{2}]\\{\frac {1}{[y_{1},0]}}&=\left[-\infty ,{\frac {1}{y_{1}}}\right]\\{\frac {1}{[0,y_{2}]}}&=\left[{\frac {1}{y_{2}}},\infty \right]\\{\frac {1}{[y_{1},y_{2}]}}&=\left[-\infty ,{\frac {1}{y_{1}}}\right]\cup \left[{\frac {1}{y_{2}}},\infty \right]\subseteq [-\infty ,\infty ]&&{\textrm {if}}\;0\in (y_{1},y_{2})\end{aligned}}}

El último caso pierde información útil sobre la exclusión de ( 1 / y 1 , 1 / y 2 ) . Por lo tanto, es común trabajar con [ -∞, 1 / y 1 ] y [ 1 / y 2 , ∞ ] como intervalos separados. De manera más general, cuando se trabaja con funciones discontinuas, a veces es útil realizar el cálculo con los llamados multiintervalos de la forma i [ a i , b i ] . La aritmética de multiintervalos correspondiente mantiene un conjunto de intervalos (generalmente disjuntos) y también permite que los intervalos superpuestos se unan. [ 1 ]

Multiplicación de intervalos positivos

La multiplicación de intervalos a menudo solo requiere dos multiplicaciones. Si x 1 , y 1 son no negativos,

[incógnita1,incógnita2][y1,y2]=[incógnita1y1,incógnita2y2], si incógnita1,y10.{\displaystyle [x_{1},x_{2}]\cdot [y_{1},y_{2}]=[x_{1}\cdot y_{1},x_{2}\cdot y_{2}],\qquad {\text{ if }}x_{1},y_{1}\geq 0.}

La multiplicación puede interpretarse como el área de un rectángulo con lados variables. El intervalo resultante abarca todas las áreas posibles, desde la más pequeña hasta la más grande.

Con la ayuda de estas definiciones, ya es posible calcular el rango de funciones simples, como f ( a , b , x ) = ax + b . Por ejemplo, si a = [ 1, 2 ] , b = [ 5, 7 ] y x = [ 2, 3 ] :

F(a,b,incógnita)=[1,2][2,3]+[5,7]=[12,23]+[5,7]=[7,13].{\displaystyle f(a,b,x)=[1,2]\cdot [2,3]+[5,7]=[1\cdot 2,2\cdot 3]+[5,7]=[7,13].}

Notación

Para abreviar la notación de intervalos, se pueden usar corchetes.

[ x ] ≡ [ x 1 , x 2 ] se puede usar para representar un intervalo. Nótese que en esta notación compacta, [ x ] no debe confundirse entre un intervalo de un solo punto [ x 1 , x 1 ] y un intervalo general. Para el conjunto de todos los intervalos, podemos usar

[R]:={[incógnita1,incógnita2]|incógnita1incógnita2 y incógnita1,incógnita2R{,}}{\displaystyle [\mathbb {R} ]:=\left\{\,[x_{1},x_{2}]\,|\,x_{1}\leq x_{2}{\text{ and }}x_{1},x_{2}\in \mathbb {R} \cup \{-\infty ,\infty \}\right\}}

como abreviatura. Para un vector de intervalos podemos usar una fuente en negrita:

[incógnita]=([incógnita]1,,[incógnita]norte)[R]norte.{\displaystyle [\mathbf {x} ]=\left([x]_{1},\ldots ,[x]_{n}\right)\in [\mathbb {R} ]^{n}.}

Funciones elementales

Valores de una función monótona

También se pueden definir funciones de intervalo más allá de los cuatro operadores básicos.

Para funciones monótonas en una variable, el rango de valores es fácil de calcular. Si f  : ℝ → ℝ es monótonamente creciente en el intervalo [ x 1 , x 2 ] , entonces para todo y 1 , y 2[ x 1 , x 2 ] tal que y 1 < y 2 , entonces f ( y 1 ) ≤ f ( y 2 ) (y si f es decreciente, f ( y 1 ) ≥ f ( y 2 ) ).

Por lo tanto, el rango correspondiente al intervalo [ y 1 , y 2 ][ x 1 , x 2 ] se puede calcular aplicando la función a sus extremos:

F([y1,y2])=[min{F(y1),F(y2)},máximo{F(y1),F(y2)}].{\displaystyle f([y_{1},y_{2}])=\left[\min \left\{f(y_{1}),f(y_{2})\right\},\max \left\{f(y_{1}),f(y_{2})\right\}\right].}

A partir de esto, se pueden definir fácilmente las siguientes características básicas para las funciones de intervalo:

  • Función exponencial :a[incógnita1,incógnita2]=[aincógnita1,aincógnita2]para a>1,{\displaystyle a^{[x_{1},x_{2}]}=[a^{x_{1}},a^{x_{2}}]\qquad {\text{for }}a>1,}
  • Logaritmo :registroa[incógnita1,incógnita2]=[registroaincógnita1,registroaincógnita2]para intervalos positivos [incógnita1,incógnita2] y a>1,{\displaystyle \log _{a}[x_{1},x_{2}]=[\log _{a}{x_{1}},\log _{a}{x_{2}}]\quad {\text{for positive intervals }}[x_{1},x_{2}]{\text{ and }}a>1,}
  • Poderes extraños:[incógnita1,incógnita2]norte=[incógnita1norte,incógnita2norte]para impar nortenorte.{\displaystyle [x_{1},x_{2}]^{n}=[x_{1}^{n},x_{2}^{n}]\qquad {\text{for odd }}n\in \mathbb {N} .}

Para potencias pares, el rango de valores considerados es importante y debe tratarse antes de realizar cualquier multiplicación. Por ejemplo, x n para x[ −1, 1 ] debería producir el intervalo [ 0, 1 ] para n ∈ ℕ par . Pero si [ −1, 1 ] n se toma repitiendo la multiplicación de intervalos de la forma [ −1, 1 ] · [ −1, 1 ] · ⋯ · [ −1, 1 ] entonces el resultado es [ −1, 1 ] , más amplio de lo necesario.

En términos más generales , se puede decir que, para funciones monótonas por partes, basta con considerar los extremos x₁ y x₂ de un intervalo, junto con los llamados puntos críticos dentro del intervalo, que son aquellos puntos donde la monotonicidad de la función cambia de dirección. Para las funciones seno y coseno , los puntos críticos se encuentran respectivamente en ( n + 1/2 ) π y , para n ∈ ℤ . Por lo tanto, solo es necesario considerar hasta cinco puntos dentro de un intervalo, ya que el intervalo resultante es [ −1 , 1 ] si incluye al menos dos extremos. Para el seno y el coseno, solo los extremos necesitan una evaluación completa, ya que los puntos críticos conducen a valores fácilmente precalculados: −1, 0 y 1.

Extensiones de intervalo de funciones generales

En general, puede que no sea fácil encontrar una descripción tan simple del intervalo de salida para muchas funciones. Pero aún puede ser posible extender las funciones a la aritmética de intervalos. Si f  : ℝ n → ℝ es una función de un vector real a un número real, entonces [ f ]  : [ℝ] n → [ℝ] se llama una extensión de intervalo de f si

[F]([incógnita]){F(y)y[incógnita]}.{\displaystyle [f]([\mathbf {x} ])\supseteq \{f(\mathbf {y} )\mid \mathbf {y} \in [\mathbf {x} ]\}.}

Esta definición de la extensión de intervalo no proporciona un resultado preciso. Por ejemplo, tanto [ f ]( [ x 1 , x 2 ] ) = [ e x 1 , e x 2 ] como [ g ]( [ x 1 , x 2 ] ) = [ −∞, ∞ ] son ​​extensiones admisibles de la función exponencial. Se prefieren extensiones más ajustadas, aunque deben considerarse los costos relativos de cálculo y la imprecisión; en este caso, se debe elegir [ f ] ya que proporciona el resultado más ajustado posible.

Dada una expresión real, su extensión de intervalo natural se logra utilizando las extensiones de intervalo de cada una de sus subexpresiones, funciones y operadores.

La extensión del intervalo de Taylor (de grado k ) es una función f diferenciable k + 1 veces definida por

[F]([incógnita]):=F(y)+i=1k1i¡DiF(y)([incógnita]y)i+[r]([incógnita],[incógnita],y),{\displaystyle [f]([\mathbf {x} ]):=f(\mathbf {y} )+\sum _{i=1}^{k}{\frac {1}{i!}}\mathrm {D} ^{i}f(\mathbf {y} )\cdot ([\mathbf {x} ]-\mathbf {y} )^{i}+[r]([\mathbf {x} ],[\mathbf {x} ],\mathbf {y} ),}

para algún y ∈ [ x ] , donde D i f ( y ) es el diferencial de orden i de f en el punto y y [ r ] es una extensión de intervalo del resto de Taylor .

r(incógnita,ξ,y)=1(k+1)¡Dk+1F(ξ)(incógnitay)k+1.{\displaystyle r(\mathbf {x} ,{\boldsymbol {\xi }},\mathbf {y} )={\frac {1}{(k+1)!}}\mathrm {D} ^{k+1}f({\boldsymbol {\xi }})\cdot (\mathbf {x} -\mathbf {y} )^{k+1}.}
Forma de valor medio

El vector ξ se encuentra entre x e y, con x , y ∈ [ x ] ; ξ está protegido por [ x ] . Generalmente , y se elige como el punto medio del intervalo y se utiliza la extensión natural del intervalo para calcular el resto.

El caso especial de la extensión del intervalo de Taylor de grado k = 0 también se conoce como la forma del valor medio .

aritmética de intervalos complejos

Un intervalo puede definirse como un conjunto de puntos dentro de una distancia específica del centro, y esta definición puede extenderse de los números reales a los números complejos . [ 2 ] Otra extensión define los intervalos como rectángulos en el plano complejo. Al igual que ocurre con los cálculos con números reales, los cálculos con números complejos implican datos inciertos. Por lo tanto, dado que un número de intervalo es un intervalo real cerrado y un número complejo es un par ordenado de números reales , no hay razón para limitar la aplicación de la aritmética de intervalos a la medición de incertidumbres en cálculos con números reales. [ 3 ] La aritmética de intervalos puede, por lo tanto, extenderse, mediante números de intervalo complejos, para determinar regiones de incertidumbre en cálculos con números complejos. Se puede definir la aritmética de intervalos complejos utilizando rectángulos o discos, cada uno con sus respectivas ventajas y desventajas. [ 3 ]

Las operaciones algebraicas básicas para números de intervalo reales (intervalos cerrados reales) pueden extenderse a números complejos. Por lo tanto, no sorprende que la aritmética de intervalos complejos sea similar a la aritmética compleja ordinaria, pero no idéntica. [ 3 ] Se puede demostrar que, al igual que en la aritmética de intervalos reales, no existe distributividad entre la suma y la multiplicación de números de intervalo complejos, salvo en ciertos casos especiales, y los elementos inversos no siempre existen para los números de intervalo complejos. [ 3 ] Otras dos propiedades útiles de la aritmética compleja ordinaria no se cumplen en la aritmética de intervalos complejos: las propiedades aditivas y multiplicativas de los conjugados complejos ordinarios no se cumplen para los conjugados de intervalos complejos. [ 3 ]

La aritmética de intervalos puede extenderse, de manera análoga, a otros sistemas numéricos multidimensionales como los cuaterniones y los octoniones , pero a costa de sacrificar otras propiedades útiles de la aritmética ordinaria. [ 3 ]

Métodos de intervalo

Los métodos del análisis numérico clásico no se pueden transferir directamente a algoritmos con valores de intervalo, ya que normalmente no se tienen en cuenta las dependencias entre los valores numéricos.

aritmética de intervalos redondeados

Límites exteriores en diferentes niveles de redondeo

Para que funcione eficazmente en una implementación real, los intervalos deben ser compatibles con la computación de punto flotante. Las operaciones anteriores se basaban en aritmética exacta, pero en general, es posible que no se disponga de métodos de solución numérica rápidos para ello. El rango de valores de la función f ( x , y ) = x + y para x[ 0.1, 0.8 ] e y[ 0.06, 0.08 ] es en este ejemplo [ 0.16, 0.88 ] . Cuando el mismo cálculo se realiza con precisión de un dígito, el resultado normalmente sería [ 0.2, 0.9 ] . Pero [ 0.2, 0.9 ][ 0.16, 0.88 ] , por lo que este enfoque contradiría los principios básicos de la aritmética de intervalos, ya que se perdería una parte del dominio de f ( [ 0.1, 0.8 ] , [ 0.06, 0.08 ] ) . En su lugar, se utiliza la solución redondeada hacia afuera [ 0.1, 0.9 ] .

El estándar IEEE 754 para aritmética de punto flotante binario también establece procedimientos para la implementación del redondeo. Un sistema compatible con IEEE 754 permite a los programadores redondear al número de punto flotante más cercano; las alternativas son redondear hacia cero (truncamiento), redondear hacia el infinito positivo (redondeo hacia arriba) o redondear hacia el infinito negativo (redondeo hacia abajo).

El redondeo externo necesario para la aritmética de intervalos se puede lograr modificando la configuración de redondeo del procesador al calcular el límite superior (arriba) y el límite inferior (abajo). Alternativamente, se puede agregar un intervalo pequeño apropiado [ ε 1 , ε 2 ] .

La aritmética de intervalos también se ha implementado utilizando aritmética de punto flotante de precisión arbitraria , donde la precisión es mucho mayor (pero aún finita, por lo que aún requiere redondeo). Los números de precisión arbitraria más grandes son lentos de calcular y requieren una cantidad significativa de espacio para almacenarse. Una variante de la aritmética de intervalos llamadaLa aritmética de bolas almacena un punto medio de alta precisión y un radio de baja precisión en lugar de dos límites inferior y superior de alta precisión como en la aritmética de intervalos convencional (ínfimo-supremo), [ 4 ] reduciendo el costo computacional. [ 5 ]

Problema de dependencia

Estimación aproximada del rango de valores

El llamado problema de dependencia representa un obstáculo importante para la aplicación de la aritmética de intervalos. Si bien los métodos de intervalos permiten determinar con gran precisión el rango de operaciones y funciones aritméticas elementales, esto no siempre se cumple con funciones más complejas. Si un intervalo aparece varias veces en un cálculo con parámetros, y cada aparición se considera de forma independiente, esto puede generar una expansión indeseada de los intervalos resultantes.

Tratar cada ocurrencia de una variable de forma independiente

Como ejemplo, tomemos la función f definida por f ( x ) = x 2 + x . Los valores de esta función en el intervalo [ −1, 1 ] son ​​[1 / 4 , 2 ] . Como extensión natural del intervalo, se calcula como

[1,1]2+[1,1]=[0,1]+[1,1]=[1,2],{\displaystyle [-1,1]^{2}+[-1,1]=[0,1]+[-1,1]=[-1,2],}

que es ligeramente mayor; en su lugar, hemos calculado el ínfimo y el supremo de la función h ( x , y ) = x 2 + y sobre x , y[ −1, 1 ] . Hay una mejor expresión de f en la que la variable x aparece solo una vez, a saber, reescribiendo la cuadrática f ( x ) = x 2 + x completando el cuadrado :

F(incógnita)=(incógnita+12)214.{\displaystyle f(x)=\left(x+{\tfrac {1}{2}}\right)^{2}-{\tfrac {1}{4}}.}

Por lo tanto, el cálculo del intervalo adecuado es

([1,1]+12)214=[12,32]214=[0,94]14=[14,2]{\displaystyle \left([-1,1]+{\tfrac {1}{2}}\right)^{2}-{\tfrac {1}{4}}=\left[-{\tfrac {1}{2}},{\tfrac {3}{2}}\right]^{2}-{\tfrac {1}{4}}=\left[0,{\tfrac {9}{4}}\right]-{\tfrac {1}{4}}=\left[-{\tfrac {1}{4}},2\right]}

y proporciona los valores correctos.

En general, se puede demostrar que se puede obtener el rango exacto de valores si cada variable aparece solo una vez y si f es continua dentro del recuadro. Sin embargo, no todas las funciones se pueden reescribir de esta manera.

Efecto envolvente

La dependencia del problema, que provoca una sobreestimación del rango de valores, puede llegar a abarcar un rango muy amplio, impidiendo obtener conclusiones más significativas.

Un aumento adicional en el rango proviene de la solución de áreas que no toman la forma de un vector de intervalo. El conjunto de soluciones del sistema lineal

{incógnita=pagy=pagpag[1,1]{\displaystyle {\begin{cases}x=p\\y=p\end{cases}}\qquad p\in [-1,1]}

es precisamente la línea entre los puntos (−1, −1) y (1, 1) . Usando métodos de intervalo se obtiene el cuadrado unitario, [ −1, 1 ] × [ −1, 1 ] . Esto se conoce como el efecto de envoltura .

Sistemas de intervalos lineales

Un sistema de intervalos lineal consta de una extensión de intervalo matricial [ A ] ∈ [ℝ] n × m y un vector de intervalo [ b ] ∈ [ℝ] n . Queremos el cuboide más pequeño [ x ] ∈ [ℝ] m , para todos los vectores x ∈ ℝ m que existe un par ( A , b ) con A ∈ [ A ] y b ∈ [ b ] que satisface

Aincógnita=b{\displaystyle \mathbf {A} \cdot \mathbf {x} =\mathbf {b} }.

Para sistemas cuadráticos (es decir, para n = m ), existe un vector de intervalo [ x ] que abarca todas las soluciones posibles, hallado simplemente con el método de Gauss de intervalo. Este método reemplaza las operaciones numéricas, ya que la eliminación gaussiana, un método de álgebra lineal , se convierte en su versión de intervalo. Sin embargo, dado que este método utiliza repetidamente las entidades de intervalo [ A ] y [ b ] en el cálculo, puede producir resultados deficientes para algunos problemas. Por lo tanto, el uso del resultado de Gauss de intervalo solo proporciona estimaciones iniciales aproximadas, puesto que, si bien contiene el conjunto completo de soluciones, también abarca una amplia región fuera de él.

Una solución aproximada [ x ] a menudo puede mejorarse mediante una versión de intervalo del método de Gauss-Seidel . La motivación para esto es que la i -ésima fila de la extensión de intervalo de la ecuación lineal

([a11][a1norte][anorte1][anortenorte])(incógnita1incógnitanorte)=([b1][bnorte]){\displaystyle {\begin{pmatrix}{[a_{11}]}&\cdots &{[a_{1n}]}\\\vdots &\ddots &\vdots \\{[a_{n1}]}&\cdots &{[a_{nn}]}\end{pmatrix}}\cdot {\begin{pmatrix}{x_{1}}\\\vdots \\{x_{n}}\end{pmatrix}}={\begin{pmatrix}{[b_{1}]}\\\vdots \\{[b_{n}]}\end{pmatrix}}}

puede determinarse mediante la variable x i si se permite la división 1 / [ a ii ] . Por lo tanto , es simultáneamente

incógnitaj[incógnitaj]yincógnitaj[bi]kj[aik][incógnitak][aii].{\displaystyle x_{j}\in [x_{j}]\quad {\text{and}}\quad x_{j}\in {\frac {[b_{i}]-\sum \limits _{k\neq j}[a_{ik}]\cdot [x_{k}]}{[a_{ii}]}}.}

Así que ahora podemos reemplazar [ x j ] por

[incógnitaj][bi]kj[aik][incógnitak][aii],{\displaystyle [x_{j}]\cap {\frac {[b_{i}]-\sum \limits _{k\neq j}[a_{ik}]\cdot [x_{k}]}{[a_{ii}]}},}

y así el vector [ x ] por cada elemento.

Dado que el procedimiento es más eficiente para una matriz diagonalmente dominante , en lugar del sistema [ A ] · x = [ b ] , a menudo se puede intentar multiplicarlo por una matriz racional apropiada M con la ecuación matricial resultante.

(METRO[A])incógnita=METRO[b]{\displaystyle (\mathbf {M} \cdot [\mathbf {A} ])\cdot \mathbf {x} =\mathbf {M} \cdot [\mathbf {b} ]}

queda por resolver. Si se elige, por ejemplo, M = A −1 para la matriz central A ∈ [ A ] , entonces M · [ A ] es una extensión exterior de la matriz identidad.

Estos métodos solo funcionan bien si los intervalos son suficientemente pequeños. Para intervalos más amplios, puede ser útil utilizar un sistema lineal de intervalos sobre sistemas lineales equivalentes de números reales finitos (aunque grandes). Si todas las matrices A ∈ [ A ] son ​​invertibles, basta con considerar todas las combinaciones posibles (superiores e inferiores) de los extremos de los intervalos. Los problemas resultantes pueden resolverse mediante métodos numéricos convencionales. La aritmética de intervalos se sigue utilizando para determinar errores de redondeo.

Esto solo es adecuado para sistemas de menor dimensión, ya que con una matriz n × n completamente ocupada, es necesario invertir 2 n × 2 matrices reales, con 2 n vectores para el lado derecho. Este enfoque fue desarrollado por Jiri Rohn y aún se encuentra en desarrollo. [ 6 ]

Método de Newton por intervalos

Reducción del área de búsqueda en el paso de Newton por intervalos en funciones "gruesas".

Una variante de intervalo del método de Newton para encontrar los ceros en un vector de intervalo [ x ] se puede derivar de la extensión del valor promedio. [ 7 ] Para un vector desconocido z ∈ [ x ] aplicado a y ∈ [ x ] , se obtiene

F(z)F(y)+[JF]([incógnita])(zy).{\displaystyle f(\mathbf {z} )\in f(\mathbf {y} )+[J_{f}](\mathbf {[x]} )\cdot (\mathbf {z} -\mathbf {y} ).}

Para un z cero , es decir f ( z ) = 0 , por lo tanto debe satisfacer

F(y)+[JF]([incógnita])(zy)=0.{\displaystyle f(\mathbf {y} )+[J_{f}](\mathbf {[x]} )\cdot (\mathbf {z} -\mathbf {y} )=0.}

Esto es equivalente a

zy[JF]([incógnita])1F(y).{\displaystyle \mathbf {z} \in \mathbf {y} -[J_{f}](\mathbf {[x]} )^{-1}\cdot f(\mathbf {y} ).}

Se puede determinar una estimación externa de [ J f ]([ x ]) −1 · f ( y ) utilizando métodos lineales.

En cada paso del método de Newton de intervalos, un valor inicial aproximado [ x ] ∈ [ℝ] n se reemplaza por

[incógnita](y[JF]([incógnita])1F(y)){\displaystyle [\mathbf {x} ]\cap \left(\mathbf {y} -[J_{f}](\mathbf {[x]} )^{-1}\cdot f(\mathbf {y} )\right)}

y así se puede mejorar el resultado. A diferencia de los métodos tradicionales, el método de intervalos se aproxima al resultado al contener los ceros. Esto garantiza que el resultado produzca ceros en el rango inicial. Por el contrario, demuestra que no había ceros de f en el rango inicial [ x ] si un paso de Newton produce el conjunto vacío.

El método converge en todos los ceros de la región inicial. La división por cero puede conducir a la separación de ceros distintos, aunque la separación puede no ser completa; puede complementarse con el método de bisección .

Como ejemplo, consideremos la función f ( x ) = x 2 − 2 , el rango inicial [ x ] = [ −2, 2 ] , y el punto y = 0 . Entonces tenemos J f ( x ) = 2 x y el primer paso de Newton da

[2,2](012[2,2](02))=[2,2]([,12][12,])=[2,12][12,2].{\displaystyle [-2,2]\cap \left(0-{\frac {1}{2\cdot [-2,2]}}(0-2)\right)=[-2,2]\cap \left(\left[-\infty ,-{\tfrac {1}{2}}\right]\cup \left[{\tfrac {1}{2}},\infty \right]\right)=\left[-2,-{\tfrac {1}{2}}\right]\cup \left[{\tfrac {1}{2}},2\right].}

Se utilizan más pasos de Newton por separado en x[ −2, − 1 / 2 ] y x[ 1 / 2 , 2 ] . Estos convergen a intervalos arbitrariamente pequeños alrededor de 2 y + 2 respectivamente.

El método de Newton de intervalos también se puede utilizar con funciones gruesas como g ( x ) = x 2[ 2, 3 ] , que en cualquier caso tendrían resultados de intervalo. El resultado entonces produce intervalos que contienen [3 , − 2 ][ 2 , 3 ] .

Bisección y cubiertas

Estimación aproximada ( turquesa ) y estimaciones mejoradas mediante "recorte" ( rojo ).

Los distintos métodos de intervalos ofrecen resultados conservadores, ya que no se tienen en cuenta las dependencias entre los tamaños de las diferentes extensiones de intervalo. Sin embargo, el problema de la dependencia se vuelve menos significativo para intervalos más estrechos.

Cubrir un vector de intervalo [ x ] con cajas más pequeñas [ x 1 ], …, [ x k ] , de modo que

[incógnita]=i=1k[incógnitai],{\displaystyle [\mathbf {x} ]=\bigcup _{i=1}^{k}[\mathbf {x} _{i}],}

es entonces válido para el rango de valores.

F([incógnita])=i=1kF([incógnitai]).{\displaystyle f([\mathbf {x} ])=\bigcup _{i=1}^{k}f([\mathbf {x} _{i}]).}

Así pues, para las extensiones de intervalo descritas anteriormente se cumple lo siguiente:

[F]([incógnita])i=1k[F]([incógnitai]).{\displaystyle [f]([\mathbf {x} ])\supseteq \bigcup _{i=1}^{k}[f]([\mathbf {x} _{i}]).}

Dado que [ f ]([ x ]) suele ser un superconjunto genuino del lado derecho, esto generalmente conduce a una estimación mejorada.

Dicha cubierta puede generarse mediante el método de bisección, como por ejemplo los elementos gruesos [ x i 1 , x i 2 ] del vector de intervalo.

[incógnita]=([incógnita11,incógnita12],,[incógnitanorte1,incógnitanorte2]){\displaystyle [\mathbf {x} ]=([x_{11},x_{12}],\ldots ,[x_{n1},x_{n2}])}

al dividirse por el centro en dos intervalos

[incógnitai1,incógnitai1+incógnitai22]y[incógnitai1+incógnitai22,incógnitai2].{\displaystyle \left[x_{i1},{\frac {x_{i1}+x_{i2}}{2}}\right]\quad {\text{and}}\quad \left[{\frac {x_{i1}+x_{i2}}{2}},x_{i2}\right].}

Si el resultado aún no es adecuado, es posible una subdivisión gradual adicional. Una cobertura de 2 r intervalos resulta de r divisiones de elementos vectoriales, lo que aumenta considerablemente los costos de cálculo.

Con intervalos muy amplios, puede ser útil dividirlos en varios subintervalos de ancho constante (y menor), un método conocido como división en segmentos . Esto evita los cálculos de los pasos de bisección intermedios. Ambos métodos solo son adecuados para problemas de baja dimensión.

Solicitud

La aritmética de intervalos se puede utilizar en varias áreas (como la inversión de conjuntos , la planificación de movimientos , la estimación de conjuntos o el análisis de estabilidad) para tratar estimaciones sin un valor numérico exacto. [ 8 ]

Análisis de errores de redondeo

La aritmética de intervalos se utiliza con el análisis de errores para controlar los errores de redondeo que surgen en cada cálculo. La ventaja de la aritmética de intervalos es que, después de cada operación, existe un intervalo que incluye de forma fiable el resultado real. La distancia entre los límites del intervalo proporciona directamente el cálculo actual de los errores de redondeo.

Error = abs( ab ) para un intervalo dado [ a , b ] .

El análisis de intervalos complementa, en lugar de sustituir, los métodos tradicionales para la reducción de errores, como el pivoteo .

Análisis de tolerancia

Durante la simulación de procesos técnicos y físicos, suelen surgir parámetros para los que no se pueden asignar valores exactos. El proceso de producción de componentes técnicos permite ciertas tolerancias, por lo que algunos parámetros fluctúan dentro de ciertos intervalos. Además, muchas constantes fundamentales no se conocen con precisión. [ 1 ]

Si el comportamiento de un sistema afectado por tolerancias satisface, por ejemplo, f ( x , p ) = 0 , para p ∈ [ p ] y x desconocido , entonces el conjunto de posibles soluciones.

{incógnita|pag[pag],F(incógnita,pag)=0}{\displaystyle \{\mathbf {x} \,|\,\exists \mathbf {p} \in [\mathbf {p} ],f(\mathbf {x} ,\mathbf {p} )=0\}},

Se puede encontrar mediante métodos de intervalos. Esto ofrece una alternativa al análisis tradicional de propagación de errores . A diferencia de los métodos puntuales, como la simulación de Monte Carlo , la metodología aritmética de intervalos garantiza que no se pase por alto ninguna parte del área de la solución. Sin embargo, el resultado siempre es un análisis del peor caso para la distribución del error, ya que no se consideran otras distribuciones basadas en probabilidades.

aritmética de intervalos difusos

Aproximación de la distribución normal mediante una secuencia de intervalos.

La aritmética de intervalos también puede utilizarse con funciones de afiliación para cantidades difusas, como se hace en la lógica difusa . Además de las afirmaciones estrictas x ∈ [ x ] y x ∉ [ x ] , también son posibles valores intermedios, a los que se asignan números reales μ[ 0, 1 ] . μ = 1 corresponde a la pertenencia definida, mientras que μ = 0 indica la no pertenencia. Una función de distribución asigna incertidumbre, que puede entenderse como un intervalo adicional.

Para la aritmética difusa [ 9 ] solo se considera un número finito de etapas de afiliación discretas μ i[ 0, 1 ] . La forma de dicha distribución para un valor indistinto puede representarse entonces mediante una secuencia de intervalos.

[incógnita(1)][incógnita(2)][incógnita(k)].{\displaystyle \left[x^{(1)}\right]\supset \left[x^{(2)}\right]\supset \cdots \supset \left[x^{(k)}\right].}

El intervalo [ x ( i ) ] corresponde exactamente al rango de fluctuación para la etapa μ i .

La distribución apropiada para una función f ( x 1 , …, x n ) con respecto a valores indistintos x 1 , …, x n y las secuencias correspondientes

[incógnita1(1)][incógnita1(k)],,[incógnitanorte(1)][incógnitanorte(k)]{\displaystyle \left[x_{1}^{(1)}\right]\supset \cdots \supset \left[x_{1}^{(k)}\right],\ldots ,\left[x_{n}^{(1)}\right]\supset \cdots \supset \left[x_{n}^{(k)}\right]}

puede aproximarse mediante la secuencia

[y(1)][y(k)],{\displaystyle \left[y^{(1)}\right]\supset \cdots \supset \left[y^{(k)}\right],}

dónde

[y(i)]=F([incógnita1(i)],[incógnitanorte(i)]){\displaystyle \left[y^{(i)}\right]=f\left(\left[x_{1}^{(i)}\right],\ldots \left[x_{n}^{(i)}\right]\right)}

y se puede calcular mediante métodos de intervalos. El valor [ y (1) ] corresponde al resultado de un cálculo de intervalos.

Prueba asistida por computadora

Warwick Tucker utilizó la aritmética de intervalos para resolver el 14º de los problemas de Smale , es decir, para demostrar que el atractor de Lorenz es un atractor extraño . [ 10 ] Thomas Hales utilizó la aritmética de intervalos para resolver la conjetura de Kepler .

El sitio web de Fast Library for Number Theory enumera varios usos de la biblioteca de aritmética de bolas FLINT/Arb en artículos publicados y preimpresiones. [ 11 ]

Historia

La aritmética de intervalos no es un fenómeno completamente nuevo en matemáticas; ha aparecido varias veces con diferentes nombres a lo largo de la historia. Por ejemplo, Arquímedes calculó los límites inferior y superior 22³ / < π < / 7 en el siglo III a. C. El cálculo con intervalos no ha sido tan popular como otras técnicas numéricas, pero tampoco ha caído en el olvido.

Las reglas para calcular con intervalos y otros subconjuntos de los números reales se publicaron en una obra de 1931 de Rosalind Cicely Young. [ 12 ] Posteriormente, en un libro de texto de álgebra lineal de 1951 de Paul S. Dwyer , se publicó un trabajo aritmético sobre números de rango para mejorar la fiabilidad de los sistemas digitales ; [ 13 ] los intervalos se utilizaron para medir los errores de redondeo asociados con los números de punto flotante. Teruo Sunaga publicó un artículo exhaustivo sobre álgebra de intervalos en análisis numérico (1958). [ 14 ]

El nacimiento de la aritmética de intervalos moderna estuvo marcado por la aparición del libro Análisis de intervalos de Ramon E. Moore en 1966. [ 15 ] [ 16 ] Tuvo la idea en la primavera de 1958, y un año después publicó un artículo sobre aritmética de intervalos computacional. [ 17 ] Su mérito radicaba en que, partiendo de un principio simple, proporcionaba un método general para el análisis automatizado de errores, no solo los errores resultantes del redondeo.

De forma independiente en 1956, Mieczyslaw Warmus sugirió fórmulas para cálculos con intervalos, [ 18 ] aunque Moore encontró las primeras aplicaciones no triviales.

En los siguientes veinte años, grupos de investigadores alemanes llevaron a cabo trabajos pioneros en torno a Ulrich W. Kulisch [ 19 ] [ 20 ] y Götz Alefeld [ 21 ] en la Universidad de Karlsruhe y posteriormente también en la Universidad Bergische de Wuppertal . Por ejemplo, Karl Nickel exploró implementaciones más efectivas, mientras que los procedimientos de contención mejorados para el conjunto de soluciones de sistemas de ecuaciones se debieron, entre otros, a Arnold Neumaier. En la década de 1960, Eldon R. Hansen se ocupó de las extensiones de intervalos para ecuaciones lineales y luego proporcionó contribuciones cruciales a la optimización global, incluyendo lo que ahora se conoce como el método de Hansen, quizás el algoritmo de intervalos más utilizado. [ 7 ] Los métodos clásicos en esto a menudo tienen el problema de determinar el valor global más grande (o más pequeño), pero solo podían encontrar un óptimo local y no podían encontrar mejores valores; Helmut Ratschek y Jon George Rokne desarrollaron métodos de ramificación y acotación , que hasta entonces solo se habían aplicado a valores enteros, utilizando intervalos para proporcionar aplicaciones a valores continuos.

En 1988, Rudolf Lohner desarrolló un software basado en Fortran para obtener soluciones fiables para problemas de valor inicial mediante ecuaciones diferenciales ordinarias . [ 22 ]

La revista Reliable Computing (originalmente Interval Computations ) se publica desde la década de 1990 y está dedicada a la fiabilidad de los cálculos asistidos por ordenador. Como editor jefe, R. Baker Kearfott, además de su trabajo en optimización global, ha contribuido significativamente a la unificación de la notación y la terminología utilizadas en la aritmética de intervalos. [ 23 ]

En los últimos años, el trabajo se ha concentrado particularmente en la estimación de preimágenes de funciones parametrizadas y en la teoría de control robusto por parte del grupo de trabajo COPRIN del INRIA en Sophia Antipolis en Francia. [ 24 ]

Implementaciones

Existen numerosos paquetes de software que permiten el desarrollo de aplicaciones numéricas mediante aritmética de intervalos. [ 25 ] Estos suelen proporcionarse en forma de bibliotecas de programas. También existen compiladores de C++ y Fortran que manejan tipos de datos de intervalo y operaciones adecuadas como extensión del lenguaje, por lo que la aritmética de intervalos se admite directamente.

Desde 1967, se han desarrollado Extensiones para Computación Científica (XSC) en la Universidad de Karlsruhe para varios lenguajes de programación , como C++, Fortran y Pascal . [ 26 ] La primera plataforma fue un Zuse Z23 , para el cual se puso a disposición un nuevo tipo de datos de intervalo con operadores elementales apropiados. Le siguió en 1976, Pascal-SC , una variante de Pascal en un Zilog Z80 que permitió crear rutinas rápidas y complejas para la verificación automatizada de resultados. Luego llegó ACRITH-XSC basado en Fortran 77 para la arquitectura System/370 (FORTRAN-SC), que más tarde fue entregado por IBM. A partir de 1991 se podía producir código para compiladores de C con Pascal-XSC ; un año más tarde la biblioteca de clases de C++ admitía C-XSC en muchos sistemas informáticos diferentes. En 1997, todas las variantes de XSC se pusieron a disposición bajo la Licencia Pública General de GNU . A principios del año 2000, bajo la dirección del grupo de trabajo de computación científica de la Universidad Bergische de Wuppertal, se lanzó C-XSC 2.0 para que se correspondiera con el estándar C++ mejorado.

En 1993, la Universidad Tecnológica de Hamburgo creó otra biblioteca de clases de C++ llamada Profil/BIAS (Programmer's Runtime Optimized Fast Interval Library, Basic Interval Arithmetic), que hizo que las operaciones habituales con intervalos fueran más fáciles de usar. Esta biblioteca hacía hincapié en el uso eficiente del hardware, la portabilidad y la independencia de la presentación de los intervalos.

La colección Boost de bibliotecas de C++ contiene una clase plantilla para intervalos. Sus autores pretenden incorporar aritmética de intervalos al lenguaje C++ estándar. [ 27 ]

El lenguaje de programación Frink cuenta con una implementación de aritmética de intervalos que maneja números de precisión arbitraria . Los programas escritos en Frink pueden usar intervalos sin necesidad de reescribirlos ni recompilarlos.

GAOL [ 28 ] es otra biblioteca de aritmética de intervalos de C++ que es única porque ofrece los operadores de intervalos relacionales utilizados en la programación de restricciones de intervalos .

La biblioteca Moore [ 29 ] es una implementación eficiente de aritmética de intervalos en C++. Proporciona intervalos con puntos finales de precisión arbitraria y se basa en la característica de conceptos de C++ .

El lenguaje de programación Julia [ 30 ] tiene una implementación de aritmética de intervalos junto con características de alto nivel, como búsqueda de raíces (tanto para funciones de valor real como complejo) y programación de restricciones de intervalos , a través del ValidatedNumerics.jlpaquete. [ 31 ]

Además, los sistemas de álgebra computacional, como Euler Mathematical Toolbox , FriCAS , Maple , Mathematica , Maxima [ 32 ] y MuPAD , pueden manejar intervalos. Una extensión de Matlab, Intlab [ 33 ], se basa en rutinas BLAS , y la caja de herramientas b4mcrea una interfaz Profil/BIAS. [ 33 ] [ 34 ]

Se escribió una biblioteca para el lenguaje funcional OCaml en lenguaje ensamblador y C. [ 35 ]

MPFI es una biblioteca para aritmética de intervalos de precisión arbitraria; está escrita en C y se basa en MPFR . [ 36 ]

Estándar IEEE 1788

Un estándar para aritmética de intervalos, IEEE Std 1788-2015, fue aprobado en junio de 2015. [ 37 ] Dos implementaciones de referencia están disponibles gratuitamente. [ 38 ] Estas han sido desarrolladas por miembros del grupo de trabajo del estándar: la biblioteca libieeep1788 [ 39 ] para C++ y el paquete interval [ 40 ] para GNU Octave .

Un subconjunto mínimo del estándar, IEEE Std 1788.1-2017, fue aprobado en diciembre de 2017 y publicado en febrero de 2018. Debería ser más fácil de implementar y podría acelerar la producción de implementaciones. [ 41 ]

Conferencias y talleres

Cada año se celebran varias conferencias o talleres internacionales en todo el mundo. La principal conferencia es probablemente SCAN (Simposio Internacional sobre Computación Científica, Aritmética Computacional y Computación Numérica Verificada), pero también existen SWIM (Taller Reducido sobre Métodos de Intervalos), PPAM (Conferencia Internacional sobre Procesamiento Paralelo y Matemáticas Aplicadas) y REC (Taller Internacional sobre Computación de Ingeniería Confiable).

Véase también

Referencias

  1. 1 2 Dreyer, Alexander (2003). Análisis de intervalos de circuitos analógicos con tolerancias de componentes . Aquisgrán, Alemania: Shaker Verlag . pág.  15. ISBN 3-8322-4555-3.
  2. Aritmética de intervalos complejos y sus aplicaciones , Miodrag S. Petković , Ljiljana D. Petković, Wiley-VCH , 1998, ISBN 978-3-527-40134-5
  3. 1 2 3 4 5 6 Hend Dawood (2011). Teorías de la aritmética de intervalos: fundamentos matemáticos y aplicaciones . Saarbrücken: LAP LAMBERT Academic Publishing. ISBN 978-3-8465-0154-2.
  4. van der Hoeven, Joris. "Aritmética de bolas" . www.texmacs.org . Nos centramos principalmente en el cálculo automático y eficiente de límites de error de alta calidad, basado en una variante de la aritmética de intervalos que nos gusta llamar "aritmética de bolas".
  5. "Descripción general de las características — Documentación de FLINT 3.5.0-dev" . flintlib.org . En la aritmética de intervalos tradicional (inf–sup), ambos extremos de un intervalo [ a , b ] son ​​números de precisión completa, lo que hace que la aritmética de intervalos sea el doble de costosa que la aritmética de punto flotante. En la aritmética de bola, solo el punto medio m de un intervalo [ m ± r ] es un número de precisión completa, y unos pocos bits bastan para el radio r . Por lo tanto, a alta precisión, la aritmética de bola no es más costosa que la aritmética de punto flotante simple.
  6. "Jiri Rohn, Lista de publicaciones" . Archivado del original el 23 de noviembre de 2008. Consultado el 26 de mayo de 2008 .
  7. ^ Walster , G. William; Hansen, EldonRobert (2004). Optimización global mediante análisis de intervalos (2ª ed.). Nueva York, Estados Unidos: Marcel Dekker. ISBN  0-8247-4059-9.
  8. ^ Jaulín, Luc; Kieffer, Michel; Didrit, Olivier; Walter, Eric (2001). Análisis de intervalos aplicado . Berlín: Springer. ISBN 1-85233-219-0.
  9. Aplicación de la aritmética difusa para cuantificar los efectos de los parámetros inciertos del modelo, Michael Hanss , Universidad de Stuttgart
  10. ^ Tucker, Warwick (1999). El atractor de Lorenz existe. Comptes Rendus de l'Académie des Sciences-Series I-Mathematics, 328(12), 1197-1202.
  11. "Aplicaciones y pruebas comparativas: Computación numérica" . FLINT: Biblioteca rápida para la teoría de números (flintlib.org) .
  12. Young, Rosalind Cicely (1931). El álgebra de cantidades multivaluadas. Mathematische Annalen, 104(1), 260-290. (Nota: Candidata a doctora en la Universidad de Cambridge ).
  13. Dwyer, Paul Sumner (1951). Cálculos lineales. Oxford, Inglaterra: Wiley. ( Universidad de Michigan )
  14. ^ Sunaga, Teruo (1958). "Teoría del álgebra de intervalos y su aplicación al análisis numérico". Memorias RAAG (2): 29– 46.
  15. Moore, Ramon Edgar (1966). Análisis de intervalos . Englewood Cliff, Nueva Jersey, EE. UU.: Prentice-Hall . ISBN 0-13-476853-1.
  16. Cloud, Michael J.; Moore, Ramon Edgar ; Kearfott, R. Baker (2009). Introducción al análisis de intervalos . Filadelfia: Society for Industrial and Applied Mathematics (SIAM). ISBN 978-0-89871-669-6.
  17. Hansen, Eldon Robert (13 de agosto de 2001). "Publicaciones relacionadas con la obra temprana de RE Moore en el período de intervalo" . University of Louisiana at Lafayette Press . Recuperado el 29 de junio de 2015 .
  18. Artículos precursores sobre análisis de intervalos de Mieczyslaw Warmus. Archivados el 18 de abril de 2008 en Wayback Machine.
  19. ^ Kulisch, Ulrich W. (1989). Wissenschaftliches Rechnen mit Ergebnisverifikation. Eine Einführung (en alemán). Wiesbaden: Vieweg-Verlag . ISBN 3-528-08943-1.
  20. ^ Kulisch, Ulrich W. (1969). "Grundzüge der Intervallrechnung". En Laugwitz, Detlef (ed.). Jahrbuch Überblicke Mathematik (en alemán). vol. 2. Mannheim, Alemania: Bibliographisches Institut . págs. 51 a 98.  
  21. Alefeld, Götz [en alemán] ; Herzberger, Jürgen (1974). Einführung in die Intervallrechnung . Reihe Informatik (en alemán). vol. 12. Mannheim, Viena, Zúrich: BI-Wissenschaftsverlag . ISBN  3-411-01466-0.
  22. Límites para ecuaciones diferenciales ordinarias de Rudolf Lohner. Archivado el 11 de mayo de 2018 en Wayback Machine (en alemán).
  23. Bibliografía de R. Baker Kearfott , Universidad de Louisiana en Lafayette
  24. Película Introductoria (mpeg) de losequipos COPRIN del INRIA , Sophia Antipolis
  25. Software para cálculos de intervalos Archivado el 2 de marzo de 2006 en Wayback Machine recopilado por Vladik Kreinovich , Universidad de Texas en El Paso .
  26. Historia de los idiomas XSC Archivado el 29/09/2007 en Wayback Machine
  27. Propuesta para añadir aritmética de intervalos a la biblioteca estándar de C++
  28. Gaol no es solo otra biblioteca de aritmética de intervalos
  29. Moore: Aritmética de intervalos en C++ moderno
  30. El lenguaje de programación Julia
  31. ValidatedNumerics.jl
  32. Aritmética de intervalos para máximos: un breve resumen por Richard J. Fateman.]
  33. 1 2 "Intlab INTerval LABoratory" . Archivado del original el 30-01-2020 . Recuperado el 07-11-2012 .
  34. b4m
  35. Alliot, Jean-Marc; Gotteland, Jean-Baptiste; Vanaret, Charlie; Durand, Nicolas; Gianazza, David (2012). Implementación de una biblioteca de cálculo de intervalos para OCaml en arquitecturas x86/amd64 . 17.ª Conferencia Internacional ACM SIGPLAN sobre Programación Funcional.
  36. MPFI, una biblioteca de aritmética de intervalos de precisión múltiple basada en MPFR
  37. Norma IEEE para aritmética de intervalos
  38. Nathalie Revol (2015). El estándar IEEE 1788 (próximo) futuro para la aritmética de intervalos, diapositivas // SWIM 2015: 8.º Taller breve sobre métodos de intervalos. Praga, 9-11 de junio de 2015
  39. Implementación en C++ del estándar preliminar IEEE P1788 para aritmética de intervalos
  40. Paquete de intervalos de octava de GNU
  41. "IEEE Std 1788.1-2017 - Norma IEEE para aritmética de intervalos (simplificada)" . Norma IEEE . Asociación de Normas IEEE. 2017. Archivado del original el 7 de febrero de 2018. Consultado el 6 de febrero de 2018 .

Lecturas adicionales

  • Hayes, Brian (noviembre-diciembre de 2003). "Un intervalo lúcido" (PDF) . American Scientist . 91 (6). Sigma Xi: 484–488 . doi : 10.1511/2003.6.484 . Archivado del original (PDF) el 27 de agosto de 2021. Consultado el 24 de mayo de 2008 .
  • Tucker, Warwick (2011). Validated numerics: a short introduction to rich computations . Princeton University Press . ISBN 978-1400838974.
  • Wippermann, Hans-Wilm (1968) [15 de junio de 1967, 1966]. "Definición von Schrankenzahlen en Triplex-ALGOL". Computación (en alemán). 3 (2). Karlsruhe, Alemania: Springer: 99– 109. doi : 10.1007/BF02277452 . ISSN 0010-485X . S2CID 36685400 .  (11 páginas) (Nota: Acerca de Triplex-ALGOL Karlsruhe , una implementación de ALGOL 60 (1963) con soporte para números triplex).
  • Aritmética de intervalos (Wolfram Mathworld)
  • Valores numéricos validados para peatones
  • Métodos de intervalos de Arnold Neumaier. Archivado el 2 de diciembre de 2020 en la Wayback Machine de la Universidad de Viena.
  • SWIM (Taller de verano sobre métodos de entrenamiento por intervalos)
  • Conferencia Internacional sobre Procesamiento Paralelo y Matemáticas Aplicadas
  • INTLAB, Instituto de Computación Confiable. Archivado el 30 de enero de 2020 en Wayback Machine , Universidad Tecnológica de Hamburgo.
  • Aritmética de bolas de Joris van der Hoeven
  • kv - una biblioteca de C++ para computación numérica verificada
  • Arb: una biblioteca C para aritmética de bolas de precisión arbitraria.
  • JuliaIntervals en GitHub